diff --git a/.gitattributes b/.gitattributes index ee394c8f1a36b3fa1f5ecfa35395109594fb3585..026f4a0ac48be2de0635045f0932430c4106e2b1 100644 --- a/.gitattributes +++ b/.gitattributes @@ -678,3 +678,94 @@ build/testing/cuda/CMakeFiles/thrust.test.cuda.transform_reduce.cdp_0.dir/transf build/testing/cuda/CMakeFiles/thrust.test.cuda.transform_scan.cdp_0.dir/transform_scan.cu.o filter=lfs diff=lfs merge=lfs -text build/testing/cuda/CMakeFiles/thrust.test.cuda.unique.cdp_0.dir/unique.cu.o filter=lfs diff=lfs merge=lfs -text build/testing/cuda/CMakeFiles/thrust.test.cuda.unique_by_key.cdp_0.dir/unique_by_key.cu.o filter=lfs diff=lfs merge=lfs -text +build/Testing/Temporary/LastTest.log.tmp filter=lfs diff=lfs merge=lfs -text +build/bin/thrust.example.arbitrary_transformation filter=lfs diff=lfs merge=lfs -text +build/bin/thrust.example.basic_vector filter=lfs diff=lfs merge=lfs -text +build/bin/thrust.example.bounding_box filter=lfs diff=lfs merge=lfs -text +build/bin/thrust.example.bucket_sort2d filter=lfs diff=lfs merge=lfs -text +build/bin/thrust.example.constant_iterator filter=lfs diff=lfs merge=lfs -text +build/bin/thrust.example.counting_iterator filter=lfs diff=lfs merge=lfs -text +build/bin/thrust.example.cuda.async_reduce filter=lfs diff=lfs merge=lfs -text +build/bin/thrust.example.cuda.custom_temporary_allocation filter=lfs diff=lfs merge=lfs -text +build/bin/thrust.example.cuda.explicit_cuda_stream filter=lfs diff=lfs merge=lfs -text +build/bin/thrust.example.cuda.global_device_vector filter=lfs diff=lfs merge=lfs -text +build/bin/thrust.example.cuda.range_view filter=lfs diff=lfs merge=lfs -text +build/bin/thrust.example.cuda.wrap_pointer filter=lfs diff=lfs merge=lfs -text +build/bin/thrust.example.device_ptr filter=lfs diff=lfs merge=lfs -text +build/bin/thrust.example.discrete_voronoi filter=lfs diff=lfs merge=lfs -text +build/bin/thrust.example.dot_products_with_zip filter=lfs diff=lfs merge=lfs -text +build/bin/thrust.example.expand filter=lfs diff=lfs merge=lfs -text +build/bin/thrust.example.fill_copy_sequence filter=lfs diff=lfs merge=lfs -text +build/bin/thrust.example.histogram filter=lfs diff=lfs merge=lfs -text +build/bin/thrust.example.lambda filter=lfs diff=lfs merge=lfs -text +build/bin/thrust.example.lexicographical_sort filter=lfs diff=lfs merge=lfs -text +build/bin/thrust.example.max_abs_diff filter=lfs diff=lfs merge=lfs -text +build/bin/thrust.example.minimal_custom_backend filter=lfs diff=lfs merge=lfs -text +build/bin/thrust.example.minmax filter=lfs diff=lfs merge=lfs -text +build/bin/thrust.example.mode filter=lfs diff=lfs merge=lfs -text +build/bin/thrust.example.monte_carlo filter=lfs diff=lfs merge=lfs -text +build/bin/thrust.example.monte_carlo_disjoint_sequences filter=lfs diff=lfs merge=lfs -text +build/bin/thrust.example.mr_basic filter=lfs diff=lfs merge=lfs -text +build/bin/thrust.example.norm filter=lfs diff=lfs merge=lfs -text +build/bin/thrust.example.padded_grid_reduction filter=lfs diff=lfs merge=lfs -text +build/bin/thrust.example.permutation_iterator filter=lfs diff=lfs merge=lfs -text +build/bin/thrust.example.raw_reference_cast filter=lfs diff=lfs merge=lfs -text +build/bin/thrust.example.repeated_range filter=lfs diff=lfs merge=lfs -text +build/bin/thrust.example.run_length_decoding filter=lfs diff=lfs merge=lfs -text +build/bin/thrust.example.run_length_encoding filter=lfs diff=lfs merge=lfs -text +build/bin/thrust.example.saxpy filter=lfs diff=lfs merge=lfs -text +build/bin/thrust.example.scan_by_key filter=lfs diff=lfs merge=lfs -text +build/bin/thrust.example.scan_matrix_by_rows filter=lfs diff=lfs merge=lfs -text +build/bin/thrust.example.set_operations filter=lfs diff=lfs merge=lfs -text +build/bin/thrust.example.simple_moving_average filter=lfs diff=lfs merge=lfs -text +build/bin/thrust.example.sort filter=lfs diff=lfs merge=lfs -text +build/bin/thrust.example.sorting_aos_vs_soa filter=lfs diff=lfs merge=lfs -text +build/bin/thrust.example.sparse_vector filter=lfs diff=lfs merge=lfs -text +build/bin/thrust.example.stream_compaction filter=lfs diff=lfs merge=lfs -text +build/bin/thrust.example.strided_range filter=lfs diff=lfs merge=lfs -text +build/bin/thrust.example.sum filter=lfs diff=lfs merge=lfs -text +build/bin/thrust.example.sum_rows filter=lfs diff=lfs merge=lfs -text +build/bin/thrust.example.summary_statistics filter=lfs diff=lfs merge=lfs -text +build/bin/thrust.example.summed_area_table filter=lfs diff=lfs merge=lfs -text +build/bin/thrust.example.tiled_range filter=lfs diff=lfs merge=lfs -text +build/bin/thrust.example.transform_input_output_iterator filter=lfs diff=lfs merge=lfs -text +build/bin/thrust.example.transform_iterator filter=lfs diff=lfs merge=lfs -text +build/bin/thrust.example.transform_output_iterator filter=lfs diff=lfs merge=lfs -text +build/bin/thrust.example.uninitialized_vector filter=lfs diff=lfs merge=lfs -text +build/bin/thrust.example.weld_vertices filter=lfs diff=lfs merge=lfs -text +build/bin/thrust.example.word_count filter=lfs diff=lfs merge=lfs -text +build/examples/CMakeFiles/thrust.example.bounding_box.dir/bounding_box.cu.o filter=lfs diff=lfs merge=lfs -text +build/examples/CMakeFiles/thrust.example.bucket_sort2d.dir/bucket_sort2d.cu.o filter=lfs diff=lfs merge=lfs -text +build/examples/CMakeFiles/thrust.example.device_ptr.dir/device_ptr.cu.o filter=lfs diff=lfs merge=lfs -text +build/examples/CMakeFiles/thrust.example.expand.dir/expand.cu.o filter=lfs diff=lfs merge=lfs -text +build/examples/CMakeFiles/thrust.example.histogram.dir/histogram.cu.o filter=lfs diff=lfs merge=lfs -text +build/examples/CMakeFiles/thrust.example.lexicographical_sort.dir/lexicographical_sort.cu.o filter=lfs diff=lfs merge=lfs -text +build/examples/CMakeFiles/thrust.example.max_abs_diff.dir/max_abs_diff.cu.o filter=lfs diff=lfs merge=lfs -text +build/examples/CMakeFiles/thrust.example.minmax.dir/minmax.cu.o filter=lfs diff=lfs merge=lfs -text +build/examples/CMakeFiles/thrust.example.mode.dir/mode.cu.o filter=lfs diff=lfs merge=lfs -text +build/examples/CMakeFiles/thrust.example.monte_carlo.dir/monte_carlo.cu.o filter=lfs diff=lfs merge=lfs -text +build/examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/monte_carlo_disjoint_sequences.cu.o filter=lfs diff=lfs merge=lfs -text +build/examples/CMakeFiles/thrust.example.norm.dir/norm.cu.o filter=lfs diff=lfs merge=lfs -text +build/examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/padded_grid_reduction.cu.o filter=lfs diff=lfs merge=lfs -text +build/examples/CMakeFiles/thrust.example.permutation_iterator.dir/permutation_iterator.cu.o filter=lfs diff=lfs merge=lfs -text +build/examples/CMakeFiles/thrust.example.run_length_decoding.dir/run_length_decoding.cu.o filter=lfs diff=lfs merge=lfs -text +build/examples/CMakeFiles/thrust.example.run_length_encoding.dir/run_length_encoding.cu.o filter=lfs diff=lfs merge=lfs -text +build/examples/CMakeFiles/thrust.example.scan_by_key.dir/scan_by_key.cu.o filter=lfs diff=lfs merge=lfs -text +build/examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/scan_matrix_by_rows.cu.o filter=lfs diff=lfs merge=lfs -text +build/examples/CMakeFiles/thrust.example.set_operations.dir/set_operations.cu.o filter=lfs diff=lfs merge=lfs -text +build/examples/CMakeFiles/thrust.example.simple_moving_average.dir/simple_moving_average.cu.o filter=lfs diff=lfs merge=lfs -text +build/examples/CMakeFiles/thrust.example.sort.dir/sort.cu.o filter=lfs diff=lfs merge=lfs -text +build/examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/sorting_aos_vs_soa.cu.o filter=lfs diff=lfs merge=lfs -text +build/examples/CMakeFiles/thrust.example.sparse_vector.dir/sparse_vector.cu.o filter=lfs diff=lfs merge=lfs -text +build/examples/CMakeFiles/thrust.example.stream_compaction.dir/stream_compaction.cu.o filter=lfs diff=lfs merge=lfs -text +build/examples/CMakeFiles/thrust.example.strided_range.dir/strided_range.cu.o filter=lfs diff=lfs merge=lfs -text +build/examples/CMakeFiles/thrust.example.sum.dir/sum.cu.o filter=lfs diff=lfs merge=lfs -text +build/examples/CMakeFiles/thrust.example.sum_rows.dir/sum_rows.cu.o filter=lfs diff=lfs merge=lfs -text +build/examples/CMakeFiles/thrust.example.summary_statistics.dir/summary_statistics.cu.o filter=lfs diff=lfs merge=lfs -text +build/examples/CMakeFiles/thrust.example.summed_area_table.dir/summed_area_table.cu.o filter=lfs diff=lfs merge=lfs -text +build/examples/CMakeFiles/thrust.example.transform_iterator.dir/transform_iterator.cu.o filter=lfs diff=lfs merge=lfs -text +build/examples/CMakeFiles/thrust.example.weld_vertices.dir/weld_vertices.cu.o filter=lfs diff=lfs merge=lfs -text +build/examples/CMakeFiles/thrust.example.word_count.dir/word_count.cu.o filter=lfs diff=lfs merge=lfs -text +build/examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/async_reduce.cu.o filter=lfs diff=lfs merge=lfs -text +build/examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/custom_temporary_allocation.cu.o filter=lfs diff=lfs merge=lfs -text +build/examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/explicit_cuda_stream.cu.o filter=lfs diff=lfs merge=lfs -text diff --git a/build/CMakeCache.txt b/build/CMakeCache.txt index 6cbaae8b75fee1e19a94fe743574cc6c9a316a67..c0fc73d17f8234553299284f09f737ca86841e8c 100644 --- a/build/CMakeCache.txt +++ b/build/CMakeCache.txt @@ -721,12 +721,15 @@ THRUST_ENABLE_COMPUTE_90:BOOL=ON THRUST_ENABLE_COMPUTE_FUTURE:BOOL=ON //Build Thrust examples. -THRUST_ENABLE_EXAMPLES:BOOL=OFF +THRUST_ENABLE_EXAMPLES:BOOL=ON //Build all Thrust examples with RDC; examples which require RDC // are not affected by this option. THRUST_ENABLE_EXAMPLES_WITH_RDC:BOOL=OFF +//Check example output with the LLVM FileCheck utility. +THRUST_ENABLE_EXAMPLE_FILECHECK:BOOL=OFF + //Test that all public headers compile. THRUST_ENABLE_HEADER_TESTING:BOOL=ON @@ -926,7 +929,7 @@ CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_NM CMAKE_NM-ADVANCED:INTERNAL=1 //number of local generators -CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=18 +CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=21 //ADVANCED property for variable: CMAKE_OBJCOPY CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 //ADVANCED property for variable: CMAKE_OBJDUMP diff --git a/build/CMakeFiles/Makefile.cmake b/build/CMakeFiles/Makefile.cmake index b63ae4d13b62284f7aaf09f28823bb67496fbfeb..d6015317fa0d28b71f458be4c6f38df0ecd3f41e 100644 --- a/build/CMakeFiles/Makefile.cmake +++ b/build/CMakeFiles/Makefile.cmake @@ -53,6 +53,9 @@ set(CMAKE_MAKEFILE_DEPENDS "/home/ubuntu/thrust/dependencies/libcudacxx/lib/cmake/libcudacxx/libcudacxx-config.cmake" "/home/ubuntu/thrust/dependencies/libcudacxx/lib/cmake/libcudacxx/libcudacxx-header-search.cmake" "/home/ubuntu/thrust/dependencies/libcudacxx/lib/cmake/libcudacxx/libcudacxx-header-search.cmake.in" + "/home/ubuntu/thrust/examples/CMakeLists.txt" + "/home/ubuntu/thrust/examples/cmake/CMakeLists.txt" + "/home/ubuntu/thrust/examples/cuda/CMakeLists.txt" "/home/ubuntu/thrust/testing/CMakeLists.txt" "/home/ubuntu/thrust/testing/async/CMakeLists.txt" "/home/ubuntu/thrust/testing/async_reduce.cmake" @@ -267,6 +270,9 @@ set(CMAKE_MAKEFILE_PRODUCTS "testing/cuda/CMakeFiles/CMakeDirectoryInformation.cmake" "testing/omp/CMakeFiles/CMakeDirectoryInformation.cmake" "testing/regression/CMakeFiles/CMakeDirectoryInformation.cmake" + "examples/CMakeFiles/CMakeDirectoryInformation.cmake" + "examples/cmake/CMakeFiles/CMakeDirectoryInformation.cmake" + "examples/cuda/CMakeFiles/CMakeDirectoryInformation.cmake" "dependencies/cub/headers/agent/agent_adjacent_difference.cuh.cu" "dependencies/cub/headers/agent/agent_batch_memcpy.cuh.cu" "dependencies/cub/headers/agent/agent_histogram.cuh.cu" @@ -933,6 +939,123 @@ set(CMAKE_DEPEND_INFO_FILES "testing/cuda/CMakeFiles/thrust.all.test.cuda.unique.cdp_0.dir/DependInfo.cmake" "testing/cuda/CMakeFiles/thrust.test.cuda.unique_by_key.cdp_0.dir/DependInfo.cmake" "testing/cuda/CMakeFiles/thrust.all.test.cuda.unique_by_key.cdp_0.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.examples.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.all.example.arbitrary_transformation.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.example.basic_vector.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.all.example.basic_vector.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.example.bounding_box.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.all.example.bounding_box.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.example.bucket_sort2d.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.all.example.bucket_sort2d.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.example.constant_iterator.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.all.example.constant_iterator.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.example.counting_iterator.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.all.example.counting_iterator.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.example.device_ptr.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.all.example.device_ptr.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.example.discrete_voronoi.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.all.example.discrete_voronoi.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.all.example.dot_products_with_zip.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.example.expand.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.all.example.expand.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.all.example.fill_copy_sequence.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.example.histogram.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.all.example.histogram.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.example.lambda.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.all.example.lambda.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.example.lexicographical_sort.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.all.example.lexicographical_sort.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.example.max_abs_diff.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.all.example.max_abs_diff.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.all.example.minimal_custom_backend.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.example.minmax.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.all.example.minmax.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.example.mode.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.all.example.mode.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.example.monte_carlo.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.all.example.monte_carlo.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.all.example.monte_carlo_disjoint_sequences.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.example.mr_basic.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.all.example.mr_basic.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.example.norm.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.all.example.norm.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.all.example.padded_grid_reduction.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.example.permutation_iterator.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.all.example.permutation_iterator.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.example.raw_reference_cast.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.all.example.raw_reference_cast.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.example.remove_points2d.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.all.example.remove_points2d.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.example.repeated_range.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.all.example.repeated_range.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.example.run_length_decoding.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.all.example.run_length_decoding.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.example.run_length_encoding.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.all.example.run_length_encoding.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.example.saxpy.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.all.example.saxpy.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.example.scan_by_key.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.all.example.scan_by_key.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.all.example.scan_matrix_by_rows.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.example.set_operations.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.all.example.set_operations.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.example.simple_moving_average.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.all.example.simple_moving_average.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.example.sort.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.all.example.sort.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.all.example.sorting_aos_vs_soa.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.example.sparse_vector.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.all.example.sparse_vector.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.example.stream_compaction.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.all.example.stream_compaction.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.example.strided_range.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.all.example.strided_range.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.example.sum.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.all.example.sum.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.example.sum_rows.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.all.example.sum_rows.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.example.summary_statistics.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.all.example.summary_statistics.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.example.summed_area_table.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.all.example.summed_area_table.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.example.tiled_range.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.all.example.tiled_range.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.all.example.transform_input_output_iterator.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.example.transform_iterator.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.all.example.transform_iterator.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.example.transform_output_iterator.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.all.example.transform_output_iterator.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.example.uninitialized_vector.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.all.example.uninitialized_vector.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.example.version.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.all.example.version.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.example.weld_vertices.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.all.example.weld_vertices.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.example.word_count.dir/DependInfo.cmake" + "examples/CMakeFiles/thrust.all.example.word_count.dir/DependInfo.cmake" + "examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/DependInfo.cmake" + "examples/cuda/CMakeFiles/thrust.all.example.cuda.async_reduce.dir/DependInfo.cmake" + "examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/DependInfo.cmake" + "examples/cuda/CMakeFiles/thrust.all.example.cuda.custom_temporary_allocation.dir/DependInfo.cmake" + "examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/DependInfo.cmake" + "examples/cuda/CMakeFiles/thrust.all.example.cuda.explicit_cuda_stream.dir/DependInfo.cmake" + "examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/DependInfo.cmake" + "examples/cuda/CMakeFiles/thrust.all.example.cuda.global_device_vector.dir/DependInfo.cmake" + "examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/DependInfo.cmake" + "examples/cuda/CMakeFiles/thrust.all.example.cuda.range_view.dir/DependInfo.cmake" + "examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/DependInfo.cmake" + "examples/cuda/CMakeFiles/thrust.all.example.cuda.unwrap_pointer.dir/DependInfo.cmake" + "examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/DependInfo.cmake" + "examples/cuda/CMakeFiles/thrust.all.example.cuda.wrap_pointer.dir/DependInfo.cmake" "dependencies/cub/CMakeFiles/cub.all.dir/DependInfo.cmake" "dependencies/cub/CMakeFiles/cub.cpp14.all.dir/DependInfo.cmake" "dependencies/cub/CMakeFiles/cub.all.headers.dir/DependInfo.cmake" diff --git a/build/CMakeFiles/Makefile2 b/build/CMakeFiles/Makefile2 index b4177d2aa3c322970f4ea8c9b392e7e3573612ea..457ab84fe319017fd6178f3b39283f9a145ec57c 100644 --- a/build/CMakeFiles/Makefile2 +++ b/build/CMakeFiles/Makefile2 @@ -65,11 +65,13 @@ CMAKE_BINARY_DIR = /home/ubuntu/thrust/build # The main recursive "all" target. all: CMakeFiles/thrust.headers.dir/all all: testing/all +all: examples/all all: dependencies/cub/all .PHONY : all # The main recursive "preinstall" target. preinstall: testing/preinstall +preinstall: examples/preinstall preinstall: dependencies/cub/preinstall .PHONY : preinstall @@ -106,6 +108,7 @@ clean: CMakeFiles/ContinuousCoverage.dir/clean clean: CMakeFiles/ContinuousMemCheck.dir/clean clean: CMakeFiles/ContinuousSubmit.dir/clean clean: testing/clean +clean: examples/clean clean: dependencies/cub/clean .PHONY : clean @@ -697,6 +700,227 @@ dependencies/cub/test/cmake/preinstall: dependencies/cub/test/cmake/clean: .PHONY : dependencies/cub/test/cmake/clean +#============================================================================= +# Directory level rules for directory examples + +# Recursive "all" directory target. +examples/all: examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/all +examples/all: examples/CMakeFiles/thrust.example.basic_vector.dir/all +examples/all: examples/CMakeFiles/thrust.example.bounding_box.dir/all +examples/all: examples/CMakeFiles/thrust.example.bucket_sort2d.dir/all +examples/all: examples/CMakeFiles/thrust.example.constant_iterator.dir/all +examples/all: examples/CMakeFiles/thrust.example.counting_iterator.dir/all +examples/all: examples/CMakeFiles/thrust.example.device_ptr.dir/all +examples/all: examples/CMakeFiles/thrust.example.discrete_voronoi.dir/all +examples/all: examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/all +examples/all: examples/CMakeFiles/thrust.example.expand.dir/all +examples/all: examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/all +examples/all: examples/CMakeFiles/thrust.example.histogram.dir/all +examples/all: examples/CMakeFiles/thrust.example.lambda.dir/all +examples/all: examples/CMakeFiles/thrust.example.lexicographical_sort.dir/all +examples/all: examples/CMakeFiles/thrust.example.max_abs_diff.dir/all +examples/all: examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/all +examples/all: examples/CMakeFiles/thrust.example.minmax.dir/all +examples/all: examples/CMakeFiles/thrust.example.mode.dir/all +examples/all: examples/CMakeFiles/thrust.example.monte_carlo.dir/all +examples/all: examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/all +examples/all: examples/CMakeFiles/thrust.example.mr_basic.dir/all +examples/all: examples/CMakeFiles/thrust.example.norm.dir/all +examples/all: examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/all +examples/all: examples/CMakeFiles/thrust.example.permutation_iterator.dir/all +examples/all: examples/CMakeFiles/thrust.example.raw_reference_cast.dir/all +examples/all: examples/CMakeFiles/thrust.example.remove_points2d.dir/all +examples/all: examples/CMakeFiles/thrust.example.repeated_range.dir/all +examples/all: examples/CMakeFiles/thrust.example.run_length_decoding.dir/all +examples/all: examples/CMakeFiles/thrust.example.run_length_encoding.dir/all +examples/all: examples/CMakeFiles/thrust.example.saxpy.dir/all +examples/all: examples/CMakeFiles/thrust.example.scan_by_key.dir/all +examples/all: examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/all +examples/all: examples/CMakeFiles/thrust.example.set_operations.dir/all +examples/all: examples/CMakeFiles/thrust.example.simple_moving_average.dir/all +examples/all: examples/CMakeFiles/thrust.example.sort.dir/all +examples/all: examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/all +examples/all: examples/CMakeFiles/thrust.example.sparse_vector.dir/all +examples/all: examples/CMakeFiles/thrust.example.stream_compaction.dir/all +examples/all: examples/CMakeFiles/thrust.example.strided_range.dir/all +examples/all: examples/CMakeFiles/thrust.example.sum.dir/all +examples/all: examples/CMakeFiles/thrust.example.sum_rows.dir/all +examples/all: examples/CMakeFiles/thrust.example.summary_statistics.dir/all +examples/all: examples/CMakeFiles/thrust.example.summed_area_table.dir/all +examples/all: examples/CMakeFiles/thrust.example.tiled_range.dir/all +examples/all: examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/all +examples/all: examples/CMakeFiles/thrust.example.transform_iterator.dir/all +examples/all: examples/CMakeFiles/thrust.example.transform_output_iterator.dir/all +examples/all: examples/CMakeFiles/thrust.example.uninitialized_vector.dir/all +examples/all: examples/CMakeFiles/thrust.example.version.dir/all +examples/all: examples/CMakeFiles/thrust.example.weld_vertices.dir/all +examples/all: examples/CMakeFiles/thrust.example.word_count.dir/all +examples/all: examples/cmake/all +examples/all: examples/cuda/all +.PHONY : examples/all + +# Recursive "preinstall" directory target. +examples/preinstall: examples/cmake/preinstall +examples/preinstall: examples/cuda/preinstall +.PHONY : examples/preinstall + +# Recursive "clean" directory target. +examples/clean: examples/CMakeFiles/thrust.examples.dir/clean +examples/clean: examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/clean +examples/clean: examples/CMakeFiles/thrust.all.example.arbitrary_transformation.dir/clean +examples/clean: examples/CMakeFiles/thrust.example.basic_vector.dir/clean +examples/clean: examples/CMakeFiles/thrust.all.example.basic_vector.dir/clean +examples/clean: examples/CMakeFiles/thrust.example.bounding_box.dir/clean +examples/clean: examples/CMakeFiles/thrust.all.example.bounding_box.dir/clean +examples/clean: examples/CMakeFiles/thrust.example.bucket_sort2d.dir/clean +examples/clean: examples/CMakeFiles/thrust.all.example.bucket_sort2d.dir/clean +examples/clean: examples/CMakeFiles/thrust.example.constant_iterator.dir/clean +examples/clean: examples/CMakeFiles/thrust.all.example.constant_iterator.dir/clean +examples/clean: examples/CMakeFiles/thrust.example.counting_iterator.dir/clean +examples/clean: examples/CMakeFiles/thrust.all.example.counting_iterator.dir/clean +examples/clean: examples/CMakeFiles/thrust.example.device_ptr.dir/clean +examples/clean: examples/CMakeFiles/thrust.all.example.device_ptr.dir/clean +examples/clean: examples/CMakeFiles/thrust.example.discrete_voronoi.dir/clean +examples/clean: examples/CMakeFiles/thrust.all.example.discrete_voronoi.dir/clean +examples/clean: examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/clean +examples/clean: examples/CMakeFiles/thrust.all.example.dot_products_with_zip.dir/clean +examples/clean: examples/CMakeFiles/thrust.example.expand.dir/clean +examples/clean: examples/CMakeFiles/thrust.all.example.expand.dir/clean +examples/clean: examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/clean +examples/clean: examples/CMakeFiles/thrust.all.example.fill_copy_sequence.dir/clean +examples/clean: examples/CMakeFiles/thrust.example.histogram.dir/clean +examples/clean: examples/CMakeFiles/thrust.all.example.histogram.dir/clean +examples/clean: examples/CMakeFiles/thrust.example.lambda.dir/clean +examples/clean: examples/CMakeFiles/thrust.all.example.lambda.dir/clean +examples/clean: examples/CMakeFiles/thrust.example.lexicographical_sort.dir/clean +examples/clean: examples/CMakeFiles/thrust.all.example.lexicographical_sort.dir/clean +examples/clean: examples/CMakeFiles/thrust.example.max_abs_diff.dir/clean +examples/clean: examples/CMakeFiles/thrust.all.example.max_abs_diff.dir/clean +examples/clean: examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/clean +examples/clean: examples/CMakeFiles/thrust.all.example.minimal_custom_backend.dir/clean +examples/clean: examples/CMakeFiles/thrust.example.minmax.dir/clean +examples/clean: examples/CMakeFiles/thrust.all.example.minmax.dir/clean +examples/clean: examples/CMakeFiles/thrust.example.mode.dir/clean +examples/clean: examples/CMakeFiles/thrust.all.example.mode.dir/clean +examples/clean: examples/CMakeFiles/thrust.example.monte_carlo.dir/clean +examples/clean: examples/CMakeFiles/thrust.all.example.monte_carlo.dir/clean +examples/clean: examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/clean +examples/clean: examples/CMakeFiles/thrust.all.example.monte_carlo_disjoint_sequences.dir/clean +examples/clean: examples/CMakeFiles/thrust.example.mr_basic.dir/clean +examples/clean: examples/CMakeFiles/thrust.all.example.mr_basic.dir/clean +examples/clean: examples/CMakeFiles/thrust.example.norm.dir/clean +examples/clean: examples/CMakeFiles/thrust.all.example.norm.dir/clean +examples/clean: examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/clean +examples/clean: examples/CMakeFiles/thrust.all.example.padded_grid_reduction.dir/clean +examples/clean: examples/CMakeFiles/thrust.example.permutation_iterator.dir/clean +examples/clean: examples/CMakeFiles/thrust.all.example.permutation_iterator.dir/clean +examples/clean: examples/CMakeFiles/thrust.example.raw_reference_cast.dir/clean +examples/clean: examples/CMakeFiles/thrust.all.example.raw_reference_cast.dir/clean +examples/clean: examples/CMakeFiles/thrust.example.remove_points2d.dir/clean +examples/clean: examples/CMakeFiles/thrust.all.example.remove_points2d.dir/clean +examples/clean: examples/CMakeFiles/thrust.example.repeated_range.dir/clean +examples/clean: examples/CMakeFiles/thrust.all.example.repeated_range.dir/clean +examples/clean: examples/CMakeFiles/thrust.example.run_length_decoding.dir/clean +examples/clean: examples/CMakeFiles/thrust.all.example.run_length_decoding.dir/clean +examples/clean: examples/CMakeFiles/thrust.example.run_length_encoding.dir/clean +examples/clean: examples/CMakeFiles/thrust.all.example.run_length_encoding.dir/clean +examples/clean: examples/CMakeFiles/thrust.example.saxpy.dir/clean +examples/clean: examples/CMakeFiles/thrust.all.example.saxpy.dir/clean +examples/clean: examples/CMakeFiles/thrust.example.scan_by_key.dir/clean +examples/clean: examples/CMakeFiles/thrust.all.example.scan_by_key.dir/clean +examples/clean: examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/clean +examples/clean: examples/CMakeFiles/thrust.all.example.scan_matrix_by_rows.dir/clean +examples/clean: examples/CMakeFiles/thrust.example.set_operations.dir/clean +examples/clean: examples/CMakeFiles/thrust.all.example.set_operations.dir/clean +examples/clean: examples/CMakeFiles/thrust.example.simple_moving_average.dir/clean +examples/clean: examples/CMakeFiles/thrust.all.example.simple_moving_average.dir/clean +examples/clean: examples/CMakeFiles/thrust.example.sort.dir/clean +examples/clean: examples/CMakeFiles/thrust.all.example.sort.dir/clean +examples/clean: examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/clean +examples/clean: examples/CMakeFiles/thrust.all.example.sorting_aos_vs_soa.dir/clean +examples/clean: examples/CMakeFiles/thrust.example.sparse_vector.dir/clean +examples/clean: examples/CMakeFiles/thrust.all.example.sparse_vector.dir/clean +examples/clean: examples/CMakeFiles/thrust.example.stream_compaction.dir/clean +examples/clean: examples/CMakeFiles/thrust.all.example.stream_compaction.dir/clean +examples/clean: examples/CMakeFiles/thrust.example.strided_range.dir/clean +examples/clean: examples/CMakeFiles/thrust.all.example.strided_range.dir/clean +examples/clean: examples/CMakeFiles/thrust.example.sum.dir/clean +examples/clean: examples/CMakeFiles/thrust.all.example.sum.dir/clean +examples/clean: examples/CMakeFiles/thrust.example.sum_rows.dir/clean +examples/clean: examples/CMakeFiles/thrust.all.example.sum_rows.dir/clean +examples/clean: examples/CMakeFiles/thrust.example.summary_statistics.dir/clean +examples/clean: examples/CMakeFiles/thrust.all.example.summary_statistics.dir/clean +examples/clean: examples/CMakeFiles/thrust.example.summed_area_table.dir/clean +examples/clean: examples/CMakeFiles/thrust.all.example.summed_area_table.dir/clean +examples/clean: examples/CMakeFiles/thrust.example.tiled_range.dir/clean +examples/clean: examples/CMakeFiles/thrust.all.example.tiled_range.dir/clean +examples/clean: examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/clean +examples/clean: examples/CMakeFiles/thrust.all.example.transform_input_output_iterator.dir/clean +examples/clean: examples/CMakeFiles/thrust.example.transform_iterator.dir/clean +examples/clean: examples/CMakeFiles/thrust.all.example.transform_iterator.dir/clean +examples/clean: examples/CMakeFiles/thrust.example.transform_output_iterator.dir/clean +examples/clean: examples/CMakeFiles/thrust.all.example.transform_output_iterator.dir/clean +examples/clean: examples/CMakeFiles/thrust.example.uninitialized_vector.dir/clean +examples/clean: examples/CMakeFiles/thrust.all.example.uninitialized_vector.dir/clean +examples/clean: examples/CMakeFiles/thrust.example.version.dir/clean +examples/clean: examples/CMakeFiles/thrust.all.example.version.dir/clean +examples/clean: examples/CMakeFiles/thrust.example.weld_vertices.dir/clean +examples/clean: examples/CMakeFiles/thrust.all.example.weld_vertices.dir/clean +examples/clean: examples/CMakeFiles/thrust.example.word_count.dir/clean +examples/clean: examples/CMakeFiles/thrust.all.example.word_count.dir/clean +examples/clean: examples/cmake/clean +examples/clean: examples/cuda/clean +.PHONY : examples/clean + +#============================================================================= +# Directory level rules for directory examples/cmake + +# Recursive "all" directory target. +examples/cmake/all: +.PHONY : examples/cmake/all + +# Recursive "preinstall" directory target. +examples/cmake/preinstall: +.PHONY : examples/cmake/preinstall + +# Recursive "clean" directory target. +examples/cmake/clean: +.PHONY : examples/cmake/clean + +#============================================================================= +# Directory level rules for directory examples/cuda + +# Recursive "all" directory target. +examples/cuda/all: examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/all +examples/cuda/all: examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/all +examples/cuda/all: examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/all +examples/cuda/all: examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/all +examples/cuda/all: examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/all +examples/cuda/all: examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/all +examples/cuda/all: examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/all +.PHONY : examples/cuda/all + +# Recursive "preinstall" directory target. +examples/cuda/preinstall: +.PHONY : examples/cuda/preinstall + +# Recursive "clean" directory target. +examples/cuda/clean: examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/clean +examples/cuda/clean: examples/cuda/CMakeFiles/thrust.all.example.cuda.async_reduce.dir/clean +examples/cuda/clean: examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/clean +examples/cuda/clean: examples/cuda/CMakeFiles/thrust.all.example.cuda.custom_temporary_allocation.dir/clean +examples/cuda/clean: examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/clean +examples/cuda/clean: examples/cuda/CMakeFiles/thrust.all.example.cuda.explicit_cuda_stream.dir/clean +examples/cuda/clean: examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/clean +examples/cuda/clean: examples/cuda/CMakeFiles/thrust.all.example.cuda.global_device_vector.dir/clean +examples/cuda/clean: examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/clean +examples/cuda/clean: examples/cuda/CMakeFiles/thrust.all.example.cuda.range_view.dir/clean +examples/cuda/clean: examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/clean +examples/cuda/clean: examples/cuda/CMakeFiles/thrust.all.example.cuda.unwrap_pointer.dir/clean +examples/cuda/clean: examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/clean +examples/cuda/clean: examples/cuda/CMakeFiles/thrust.all.example.cuda.wrap_pointer.dir/clean +.PHONY : examples/cuda/clean + #============================================================================= # Directory level rules for directory testing @@ -1565,6 +1789,7 @@ testing/unittest/clean: testing/unittest/CMakeFiles/thrust.test.framework.dir/cl # All Build rule for target. CMakeFiles/thrust.all.dir/all: CMakeFiles/thrust.headers.dir/all CMakeFiles/thrust.all.dir/all: testing/CMakeFiles/thrust.tests.dir/all +CMakeFiles/thrust.all.dir/all: examples/CMakeFiles/thrust.examples.dir/all $(MAKE) $(MAKESILENT) -f CMakeFiles/thrust.all.dir/build.make CMakeFiles/thrust.all.dir/depend $(MAKE) $(MAKESILENT) -f CMakeFiles/thrust.all.dir/build.make CMakeFiles/thrust.all.dir/build @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all" @@ -1572,7 +1797,7 @@ CMakeFiles/thrust.all.dir/all: testing/CMakeFiles/thrust.tests.dir/all # Build rule for subdir invocation for target. CMakeFiles/thrust.all.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 56 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 60 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/thrust.all.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : CMakeFiles/thrust.all.dir/rule @@ -1598,7 +1823,7 @@ CMakeFiles/thrust.all.headers.dir/all: CMakeFiles/thrust.headers.dir/all # Build rule for subdir invocation for target. CMakeFiles/thrust.all.headers.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 12 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 11 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/thrust.all.headers.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : CMakeFiles/thrust.all.headers.dir/rule @@ -1619,12 +1844,12 @@ CMakeFiles/thrust.all.headers.dir/clean: CMakeFiles/thrust.headers.dir/all: $(MAKE) $(MAKESILENT) -f CMakeFiles/thrust.headers.dir/build.make CMakeFiles/thrust.headers.dir/depend $(MAKE) $(MAKESILENT) -f CMakeFiles/thrust.headers.dir/build.make CMakeFiles/thrust.headers.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=45,46,47,48,49,50,51,52,53,54,55,56 "Built target thrust.headers" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=50,51,52,53,54,55,56,57,58,59,60 "Built target thrust.headers" .PHONY : CMakeFiles/thrust.headers.dir/all # Build rule for subdir invocation for target. CMakeFiles/thrust.headers.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 12 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 11 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/thrust.headers.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : CMakeFiles/thrust.headers.dir/rule @@ -2618,7 +2843,7 @@ testing/CMakeFiles/thrust.tests.dir/all: testing/cuda/CMakeFiles/thrust.test.cud # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.tests.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 44 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 40 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.tests.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.tests.dir/rule @@ -2644,7 +2869,7 @@ testing/CMakeFiles/thrust.test.adjacent_difference.dir/all: testing/unittest/CMa # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.adjacent_difference.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.adjacent_difference.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.adjacent_difference.dir/rule @@ -2670,7 +2895,7 @@ testing/CMakeFiles/thrust.all.test.adjacent_difference.dir/all: testing/CMakeFil # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.adjacent_difference.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.adjacent_difference.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.adjacent_difference.dir/rule @@ -2696,7 +2921,7 @@ testing/CMakeFiles/thrust.test.advance.dir/all: testing/unittest/CMakeFiles/thru # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.advance.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.advance.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.advance.dir/rule @@ -2722,7 +2947,7 @@ testing/CMakeFiles/thrust.all.test.advance.dir/all: testing/CMakeFiles/thrust.te # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.advance.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.advance.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.advance.dir/rule @@ -2743,12 +2968,12 @@ testing/CMakeFiles/thrust.all.test.advance.dir/clean: testing/CMakeFiles/thrust.test.alignment.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.alignment.dir/build.make testing/CMakeFiles/thrust.test.alignment.dir/depend $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.alignment.dir/build.make testing/CMakeFiles/thrust.test.alignment.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=57 "Built target thrust.test.alignment" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=61 "Built target thrust.test.alignment" .PHONY : testing/CMakeFiles/thrust.test.alignment.dir/all # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.alignment.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.alignment.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.alignment.dir/rule @@ -2774,7 +2999,7 @@ testing/CMakeFiles/thrust.all.test.alignment.dir/all: testing/CMakeFiles/thrust. # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.alignment.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.alignment.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.alignment.dir/rule @@ -2800,7 +3025,7 @@ testing/CMakeFiles/thrust.test.allocator.dir/all: testing/unittest/CMakeFiles/th # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.allocator.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.allocator.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.allocator.dir/rule @@ -2826,7 +3051,7 @@ testing/CMakeFiles/thrust.all.test.allocator.dir/all: testing/CMakeFiles/thrust. # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.allocator.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.allocator.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.allocator.dir/rule @@ -2852,7 +3077,7 @@ testing/CMakeFiles/thrust.test.allocator_aware_policies.dir/all: testing/unittes # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.allocator_aware_policies.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.allocator_aware_policies.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.allocator_aware_policies.dir/rule @@ -2878,7 +3103,7 @@ testing/CMakeFiles/thrust.all.test.allocator_aware_policies.dir/all: testing/CMa # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.allocator_aware_policies.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.allocator_aware_policies.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.allocator_aware_policies.dir/rule @@ -2899,7 +3124,7 @@ testing/CMakeFiles/thrust.all.test.allocator_aware_policies.dir/clean: testing/CMakeFiles/thrust.test.async_copy.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.async_copy.dir/build.make testing/CMakeFiles/thrust.test.async_copy.dir/depend $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.async_copy.dir/build.make testing/CMakeFiles/thrust.test.async_copy.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.async_copy" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=64 "Built target thrust.test.async_copy" .PHONY : testing/CMakeFiles/thrust.test.async_copy.dir/all # Build rule for subdir invocation for target. @@ -2956,7 +3181,7 @@ testing/CMakeFiles/thrust.test.async_for_each.dir/all: testing/unittest/CMakeFil # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.async_for_each.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.async_for_each.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.async_for_each.dir/rule @@ -2982,7 +3207,7 @@ testing/CMakeFiles/thrust.all.test.async_for_each.dir/all: testing/CMakeFiles/th # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.async_for_each.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.async_for_each.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.async_for_each.dir/rule @@ -3008,7 +3233,7 @@ testing/CMakeFiles/thrust.test.async_reduce.dir/all: testing/unittest/CMakeFiles # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.async_reduce.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.async_reduce.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.async_reduce.dir/rule @@ -3034,7 +3259,7 @@ testing/CMakeFiles/thrust.all.test.async_reduce.dir/all: testing/CMakeFiles/thru # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.async_reduce.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.async_reduce.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.async_reduce.dir/rule @@ -3060,7 +3285,7 @@ testing/CMakeFiles/thrust.test.async_reduce_into.dir/all: testing/unittest/CMake # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.async_reduce_into.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.async_reduce_into.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.async_reduce_into.dir/rule @@ -3086,7 +3311,7 @@ testing/CMakeFiles/thrust.all.test.async_reduce_into.dir/all: testing/CMakeFiles # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.async_reduce_into.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.async_reduce_into.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.async_reduce_into.dir/rule @@ -3107,12 +3332,12 @@ testing/CMakeFiles/thrust.all.test.async_reduce_into.dir/clean: testing/CMakeFiles/thrust.test.async_sort.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.async_sort.dir/build.make testing/CMakeFiles/thrust.test.async_sort.dir/depend $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.async_sort.dir/build.make testing/CMakeFiles/thrust.test.async_sort.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=61 "Built target thrust.test.async_sort" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.async_sort" .PHONY : testing/CMakeFiles/thrust.test.async_sort.dir/all # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.async_sort.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.async_sort.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.async_sort.dir/rule @@ -3138,7 +3363,7 @@ testing/CMakeFiles/thrust.all.test.async_sort.dir/all: testing/CMakeFiles/thrust # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.async_sort.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.async_sort.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.async_sort.dir/rule @@ -3164,7 +3389,7 @@ testing/CMakeFiles/thrust.test.async_transform.dir/all: testing/unittest/CMakeFi # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.async_transform.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.async_transform.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.async_transform.dir/rule @@ -3190,7 +3415,7 @@ testing/CMakeFiles/thrust.all.test.async_transform.dir/all: testing/CMakeFiles/t # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.async_transform.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.async_transform.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.async_transform.dir/rule @@ -3211,7 +3436,7 @@ testing/CMakeFiles/thrust.all.test.async_transform.dir/clean: testing/CMakeFiles/thrust.test.binary_search.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.binary_search.dir/build.make testing/CMakeFiles/thrust.test.binary_search.dir/depend $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.binary_search.dir/build.make testing/CMakeFiles/thrust.test.binary_search.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.binary_search" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=65 "Built target thrust.test.binary_search" .PHONY : testing/CMakeFiles/thrust.test.binary_search.dir/all # Build rule for subdir invocation for target. @@ -3268,7 +3493,7 @@ testing/CMakeFiles/thrust.test.binary_search_descending.dir/all: testing/unittes # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.binary_search_descending.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.binary_search_descending.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.binary_search_descending.dir/rule @@ -3294,7 +3519,7 @@ testing/CMakeFiles/thrust.all.test.binary_search_descending.dir/all: testing/CMa # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.binary_search_descending.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.binary_search_descending.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.binary_search_descending.dir/rule @@ -3320,7 +3545,7 @@ testing/CMakeFiles/thrust.test.binary_search_vector.dir/all: testing/unittest/CM # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.binary_search_vector.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.binary_search_vector.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.binary_search_vector.dir/rule @@ -3346,7 +3571,7 @@ testing/CMakeFiles/thrust.all.test.binary_search_vector.dir/all: testing/CMakeFi # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.binary_search_vector.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.binary_search_vector.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.binary_search_vector.dir/rule @@ -3367,12 +3592,12 @@ testing/CMakeFiles/thrust.all.test.binary_search_vector.dir/clean: testing/CMakeFiles/thrust.test.binary_search_vector_descending.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.binary_search_vector_descending.dir/build.make testing/CMakeFiles/thrust.test.binary_search_vector_descending.dir/depend $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.binary_search_vector_descending.dir/build.make testing/CMakeFiles/thrust.test.binary_search_vector_descending.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=62 "Built target thrust.test.binary_search_vector_descending" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.binary_search_vector_descending" .PHONY : testing/CMakeFiles/thrust.test.binary_search_vector_descending.dir/all # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.binary_search_vector_descending.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.binary_search_vector_descending.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.binary_search_vector_descending.dir/rule @@ -3398,7 +3623,7 @@ testing/CMakeFiles/thrust.all.test.binary_search_vector_descending.dir/all: test # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.binary_search_vector_descending.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.binary_search_vector_descending.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.binary_search_vector_descending.dir/rule @@ -3424,7 +3649,7 @@ testing/CMakeFiles/thrust.test.caching_allocator.dir/all: testing/unittest/CMake # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.caching_allocator.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.caching_allocator.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.caching_allocator.dir/rule @@ -3450,7 +3675,7 @@ testing/CMakeFiles/thrust.all.test.caching_allocator.dir/all: testing/CMakeFiles # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.caching_allocator.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.caching_allocator.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.caching_allocator.dir/rule @@ -3476,7 +3701,7 @@ testing/CMakeFiles/thrust.test.complex.dir/all: testing/unittest/CMakeFiles/thru # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.complex.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.complex.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.complex.dir/rule @@ -3502,7 +3727,7 @@ testing/CMakeFiles/thrust.all.test.complex.dir/all: testing/CMakeFiles/thrust.te # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.complex.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.complex.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.complex.dir/rule @@ -3523,7 +3748,7 @@ testing/CMakeFiles/thrust.all.test.complex.dir/clean: testing/CMakeFiles/thrust.test.complex_transform.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.complex_transform.dir/build.make testing/CMakeFiles/thrust.test.complex_transform.dir/depend $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.complex_transform.dir/build.make testing/CMakeFiles/thrust.test.complex_transform.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.complex_transform" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=66 "Built target thrust.test.complex_transform" .PHONY : testing/CMakeFiles/thrust.test.complex_transform.dir/all # Build rule for subdir invocation for target. @@ -3580,7 +3805,7 @@ testing/CMakeFiles/thrust.test.constant_iterator.dir/all: testing/unittest/CMake # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.constant_iterator.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.constant_iterator.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.constant_iterator.dir/rule @@ -3606,7 +3831,7 @@ testing/CMakeFiles/thrust.all.test.constant_iterator.dir/all: testing/CMakeFiles # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.constant_iterator.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.constant_iterator.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.constant_iterator.dir/rule @@ -3632,7 +3857,7 @@ testing/CMakeFiles/thrust.test.copy.dir/all: testing/unittest/CMakeFiles/thrust. # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.copy.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.copy.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.copy.dir/rule @@ -3658,7 +3883,7 @@ testing/CMakeFiles/thrust.all.test.copy.dir/all: testing/CMakeFiles/thrust.test. # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.copy.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.copy.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.copy.dir/rule @@ -3679,12 +3904,12 @@ testing/CMakeFiles/thrust.all.test.copy.dir/clean: testing/CMakeFiles/thrust.test.copy_n.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.copy_n.dir/build.make testing/CMakeFiles/thrust.test.copy_n.dir/depend $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.copy_n.dir/build.make testing/CMakeFiles/thrust.test.copy_n.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=63 "Built target thrust.test.copy_n" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.copy_n" .PHONY : testing/CMakeFiles/thrust.test.copy_n.dir/all # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.copy_n.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.copy_n.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.copy_n.dir/rule @@ -3710,7 +3935,7 @@ testing/CMakeFiles/thrust.all.test.copy_n.dir/all: testing/CMakeFiles/thrust.tes # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.copy_n.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.copy_n.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.copy_n.dir/rule @@ -3736,7 +3961,7 @@ testing/CMakeFiles/thrust.test.count.dir/all: testing/unittest/CMakeFiles/thrust # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.count.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.count.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.count.dir/rule @@ -3762,7 +3987,7 @@ testing/CMakeFiles/thrust.all.test.count.dir/all: testing/CMakeFiles/thrust.test # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.count.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.count.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.count.dir/rule @@ -3788,7 +4013,7 @@ testing/CMakeFiles/thrust.test.counting_iterator.dir/all: testing/unittest/CMake # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.counting_iterator.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.counting_iterator.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.counting_iterator.dir/rule @@ -3814,7 +4039,7 @@ testing/CMakeFiles/thrust.all.test.counting_iterator.dir/all: testing/CMakeFiles # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.counting_iterator.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.counting_iterator.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.counting_iterator.dir/rule @@ -3835,7 +4060,7 @@ testing/CMakeFiles/thrust.all.test.counting_iterator.dir/clean: testing/CMakeFiles/thrust.test.cstdint.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.cstdint.dir/build.make testing/CMakeFiles/thrust.test.cstdint.dir/depend $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.cstdint.dir/build.make testing/CMakeFiles/thrust.test.cstdint.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.cstdint" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=67 "Built target thrust.test.cstdint" .PHONY : testing/CMakeFiles/thrust.test.cstdint.dir/all # Build rule for subdir invocation for target. @@ -3887,7 +4112,7 @@ testing/CMakeFiles/thrust.all.test.cstdint.dir/clean: testing/CMakeFiles/thrust.test.decompose.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.decompose.dir/build.make testing/CMakeFiles/thrust.test.decompose.dir/depend $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.decompose.dir/build.make testing/CMakeFiles/thrust.test.decompose.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.decompose" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=77 "Built target thrust.test.decompose" .PHONY : testing/CMakeFiles/thrust.test.decompose.dir/all # Build rule for subdir invocation for target. @@ -3944,7 +4169,7 @@ testing/CMakeFiles/thrust.test.dependencies_aware_policies.dir/all: testing/unit # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.dependencies_aware_policies.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.dependencies_aware_policies.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.dependencies_aware_policies.dir/rule @@ -3970,7 +4195,7 @@ testing/CMakeFiles/thrust.all.test.dependencies_aware_policies.dir/all: testing/ # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.dependencies_aware_policies.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.dependencies_aware_policies.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.dependencies_aware_policies.dir/rule @@ -3991,12 +4216,12 @@ testing/CMakeFiles/thrust.all.test.dependencies_aware_policies.dir/clean: testing/CMakeFiles/thrust.test.dereference.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.dereference.dir/build.make testing/CMakeFiles/thrust.test.dereference.dir/depend $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.dereference.dir/build.make testing/CMakeFiles/thrust.test.dereference.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=75 "Built target thrust.test.dereference" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.dereference" .PHONY : testing/CMakeFiles/thrust.test.dereference.dir/all # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.dereference.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.dereference.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.dereference.dir/rule @@ -4022,7 +4247,7 @@ testing/CMakeFiles/thrust.all.test.dereference.dir/all: testing/CMakeFiles/thrus # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.dereference.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.dereference.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.dereference.dir/rule @@ -4048,7 +4273,7 @@ testing/CMakeFiles/thrust.test.device_delete.dir/all: testing/unittest/CMakeFile # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.device_delete.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.device_delete.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.device_delete.dir/rule @@ -4074,7 +4299,7 @@ testing/CMakeFiles/thrust.all.test.device_delete.dir/all: testing/CMakeFiles/thr # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.device_delete.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.device_delete.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.device_delete.dir/rule @@ -4100,7 +4325,7 @@ testing/CMakeFiles/thrust.test.device_ptr.dir/all: testing/unittest/CMakeFiles/t # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.device_ptr.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.device_ptr.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.device_ptr.dir/rule @@ -4126,7 +4351,7 @@ testing/CMakeFiles/thrust.all.test.device_ptr.dir/all: testing/CMakeFiles/thrust # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.device_ptr.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.device_ptr.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.device_ptr.dir/rule @@ -4152,7 +4377,7 @@ testing/CMakeFiles/thrust.test.device_reference.dir/all: testing/unittest/CMakeF # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.device_reference.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.device_reference.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.device_reference.dir/rule @@ -4178,7 +4403,7 @@ testing/CMakeFiles/thrust.all.test.device_reference.dir/all: testing/CMakeFiles/ # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.device_reference.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.device_reference.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.device_reference.dir/rule @@ -4199,7 +4424,7 @@ testing/CMakeFiles/thrust.all.test.device_reference.dir/clean: testing/CMakeFiles/thrust.test.discard_iterator.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.discard_iterator.dir/build.make testing/CMakeFiles/thrust.test.discard_iterator.dir/depend $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.discard_iterator.dir/build.make testing/CMakeFiles/thrust.test.discard_iterator.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.discard_iterator" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=78 "Built target thrust.test.discard_iterator" .PHONY : testing/CMakeFiles/thrust.test.discard_iterator.dir/all # Build rule for subdir invocation for target. @@ -4251,12 +4476,12 @@ testing/CMakeFiles/thrust.all.test.discard_iterator.dir/clean: testing/CMakeFiles/thrust.test.distance.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.distance.dir/build.make testing/CMakeFiles/thrust.test.distance.dir/depend $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.distance.dir/build.make testing/CMakeFiles/thrust.test.distance.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=76 "Built target thrust.test.distance" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.distance" .PHONY : testing/CMakeFiles/thrust.test.distance.dir/all # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.distance.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.distance.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.distance.dir/rule @@ -4282,7 +4507,7 @@ testing/CMakeFiles/thrust.all.test.distance.dir/all: testing/CMakeFiles/thrust.t # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.distance.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.distance.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.distance.dir/rule @@ -4308,7 +4533,7 @@ testing/CMakeFiles/thrust.test.equal.dir/all: testing/unittest/CMakeFiles/thrust # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.equal.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.equal.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.equal.dir/rule @@ -4334,7 +4559,7 @@ testing/CMakeFiles/thrust.all.test.equal.dir/all: testing/CMakeFiles/thrust.test # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.equal.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.equal.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.equal.dir/rule @@ -4360,7 +4585,7 @@ testing/CMakeFiles/thrust.test.event.dir/all: testing/unittest/CMakeFiles/thrust # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.event.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.event.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.event.dir/rule @@ -4386,7 +4611,7 @@ testing/CMakeFiles/thrust.all.test.event.dir/all: testing/CMakeFiles/thrust.test # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.event.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.event.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.event.dir/rule @@ -4412,7 +4637,7 @@ testing/CMakeFiles/thrust.test.fill.dir/all: testing/unittest/CMakeFiles/thrust. # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.fill.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.fill.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.fill.dir/rule @@ -4438,7 +4663,7 @@ testing/CMakeFiles/thrust.all.test.fill.dir/all: testing/CMakeFiles/thrust.test. # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.fill.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.fill.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.fill.dir/rule @@ -4464,7 +4689,7 @@ testing/CMakeFiles/thrust.test.find.dir/all: testing/unittest/CMakeFiles/thrust. # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.find.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.find.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.find.dir/rule @@ -4490,7 +4715,7 @@ testing/CMakeFiles/thrust.all.test.find.dir/all: testing/CMakeFiles/thrust.test. # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.find.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.find.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.find.dir/rule @@ -4511,7 +4736,7 @@ testing/CMakeFiles/thrust.all.test.find.dir/clean: testing/CMakeFiles/thrust.test.for_each.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.for_each.dir/build.make testing/CMakeFiles/thrust.test.for_each.dir/depend $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.for_each.dir/build.make testing/CMakeFiles/thrust.test.for_each.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.for_each" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=79 "Built target thrust.test.for_each" .PHONY : testing/CMakeFiles/thrust.test.for_each.dir/all # Build rule for subdir invocation for target. @@ -4568,7 +4793,7 @@ testing/CMakeFiles/thrust.test.functional.dir/all: testing/unittest/CMakeFiles/t # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.functional.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.functional.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.functional.dir/rule @@ -4594,7 +4819,7 @@ testing/CMakeFiles/thrust.all.test.functional.dir/all: testing/CMakeFiles/thrust # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.functional.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.functional.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.functional.dir/rule @@ -4620,7 +4845,7 @@ testing/CMakeFiles/thrust.test.functional_arithmetic.dir/all: testing/unittest/C # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.functional_arithmetic.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.functional_arithmetic.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.functional_arithmetic.dir/rule @@ -4646,7 +4871,7 @@ testing/CMakeFiles/thrust.all.test.functional_arithmetic.dir/all: testing/CMakeF # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.functional_arithmetic.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.functional_arithmetic.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.functional_arithmetic.dir/rule @@ -4672,7 +4897,7 @@ testing/CMakeFiles/thrust.test.functional_bitwise.dir/all: testing/unittest/CMak # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.functional_bitwise.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.functional_bitwise.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.functional_bitwise.dir/rule @@ -4698,7 +4923,7 @@ testing/CMakeFiles/thrust.all.test.functional_bitwise.dir/all: testing/CMakeFile # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.functional_bitwise.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.functional_bitwise.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.functional_bitwise.dir/rule @@ -4719,7 +4944,7 @@ testing/CMakeFiles/thrust.all.test.functional_bitwise.dir/clean: testing/CMakeFiles/thrust.test.functional_logical.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.functional_logical.dir/build.make testing/CMakeFiles/thrust.test.functional_logical.dir/depend $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.functional_logical.dir/build.make testing/CMakeFiles/thrust.test.functional_logical.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.functional_logical" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=80 "Built target thrust.test.functional_logical" .PHONY : testing/CMakeFiles/thrust.test.functional_logical.dir/all # Build rule for subdir invocation for target. @@ -4771,12 +4996,12 @@ testing/CMakeFiles/thrust.all.test.functional_logical.dir/clean: testing/CMakeFiles/thrust.test.functional_placeholders_arithmetic.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.functional_placeholders_arithmetic.dir/build.make testing/CMakeFiles/thrust.test.functional_placeholders_arithmetic.dir/depend $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.functional_placeholders_arithmetic.dir/build.make testing/CMakeFiles/thrust.test.functional_placeholders_arithmetic.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=78 "Built target thrust.test.functional_placeholders_arithmetic" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.functional_placeholders_arithmetic" .PHONY : testing/CMakeFiles/thrust.test.functional_placeholders_arithmetic.dir/all # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.functional_placeholders_arithmetic.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.functional_placeholders_arithmetic.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.functional_placeholders_arithmetic.dir/rule @@ -4802,7 +5027,7 @@ testing/CMakeFiles/thrust.all.test.functional_placeholders_arithmetic.dir/all: t # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.functional_placeholders_arithmetic.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.functional_placeholders_arithmetic.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.functional_placeholders_arithmetic.dir/rule @@ -4828,7 +5053,7 @@ testing/CMakeFiles/thrust.test.functional_placeholders_bitwise.dir/all: testing/ # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.functional_placeholders_bitwise.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.functional_placeholders_bitwise.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.functional_placeholders_bitwise.dir/rule @@ -4854,7 +5079,7 @@ testing/CMakeFiles/thrust.all.test.functional_placeholders_bitwise.dir/all: test # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.functional_placeholders_bitwise.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.functional_placeholders_bitwise.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.functional_placeholders_bitwise.dir/rule @@ -4880,7 +5105,7 @@ testing/CMakeFiles/thrust.test.functional_placeholders_compound_assignment.dir/a # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.functional_placeholders_compound_assignment.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.functional_placeholders_compound_assignment.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.functional_placeholders_compound_assignment.dir/rule @@ -4906,7 +5131,7 @@ testing/CMakeFiles/thrust.all.test.functional_placeholders_compound_assignment.d # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.functional_placeholders_compound_assignment.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.functional_placeholders_compound_assignment.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.functional_placeholders_compound_assignment.dir/rule @@ -4932,7 +5157,7 @@ testing/CMakeFiles/thrust.test.functional_placeholders_logical.dir/all: testing/ # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.functional_placeholders_logical.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.functional_placeholders_logical.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.functional_placeholders_logical.dir/rule @@ -4958,7 +5183,7 @@ testing/CMakeFiles/thrust.all.test.functional_placeholders_logical.dir/all: test # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.functional_placeholders_logical.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.functional_placeholders_logical.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.functional_placeholders_logical.dir/rule @@ -4984,7 +5209,7 @@ testing/CMakeFiles/thrust.test.functional_placeholders_miscellaneous.dir/all: te # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.functional_placeholders_miscellaneous.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.functional_placeholders_miscellaneous.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.functional_placeholders_miscellaneous.dir/rule @@ -5010,7 +5235,7 @@ testing/CMakeFiles/thrust.all.test.functional_placeholders_miscellaneous.dir/all # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.functional_placeholders_miscellaneous.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.functional_placeholders_miscellaneous.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.functional_placeholders_miscellaneous.dir/rule @@ -5036,7 +5261,7 @@ testing/CMakeFiles/thrust.test.functional_placeholders_relational.dir/all: testi # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.functional_placeholders_relational.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.functional_placeholders_relational.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.functional_placeholders_relational.dir/rule @@ -5062,7 +5287,7 @@ testing/CMakeFiles/thrust.all.test.functional_placeholders_relational.dir/all: t # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.functional_placeholders_relational.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.functional_placeholders_relational.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.functional_placeholders_relational.dir/rule @@ -5083,12 +5308,12 @@ testing/CMakeFiles/thrust.all.test.functional_placeholders_relational.dir/clean: testing/CMakeFiles/thrust.test.future.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.future.dir/build.make testing/CMakeFiles/thrust.test.future.dir/depend $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.future.dir/build.make testing/CMakeFiles/thrust.test.future.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=79 "Built target thrust.test.future" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=81 "Built target thrust.test.future" .PHONY : testing/CMakeFiles/thrust.test.future.dir/all # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.future.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.future.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.future.dir/rule @@ -5114,7 +5339,7 @@ testing/CMakeFiles/thrust.all.test.future.dir/all: testing/CMakeFiles/thrust.tes # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.future.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.future.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.future.dir/rule @@ -5140,7 +5365,7 @@ testing/CMakeFiles/thrust.test.gather.dir/all: testing/unittest/CMakeFiles/thrus # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.gather.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.gather.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.gather.dir/rule @@ -5166,7 +5391,7 @@ testing/CMakeFiles/thrust.all.test.gather.dir/all: testing/CMakeFiles/thrust.tes # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.gather.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.gather.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.gather.dir/rule @@ -5192,7 +5417,7 @@ testing/CMakeFiles/thrust.test.generate.dir/all: testing/unittest/CMakeFiles/thr # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.generate.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.generate.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.generate.dir/rule @@ -5218,7 +5443,7 @@ testing/CMakeFiles/thrust.all.test.generate.dir/all: testing/CMakeFiles/thrust.t # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.generate.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.generate.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.generate.dir/rule @@ -5244,7 +5469,7 @@ testing/CMakeFiles/thrust.test.generate_const_iterators.dir/all: testing/unittes # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.generate_const_iterators.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.generate_const_iterators.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.generate_const_iterators.dir/rule @@ -5270,7 +5495,7 @@ testing/CMakeFiles/thrust.all.test.generate_const_iterators.dir/all: testing/CMa # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.generate_const_iterators.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.generate_const_iterators.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.generate_const_iterators.dir/rule @@ -5296,7 +5521,7 @@ testing/CMakeFiles/thrust.test.inner_product.dir/all: testing/unittest/CMakeFile # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.inner_product.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.inner_product.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.inner_product.dir/rule @@ -5322,7 +5547,7 @@ testing/CMakeFiles/thrust.all.test.inner_product.dir/all: testing/CMakeFiles/thr # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.inner_product.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.inner_product.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.inner_product.dir/rule @@ -5343,12 +5568,12 @@ testing/CMakeFiles/thrust.all.test.inner_product.dir/clean: testing/CMakeFiles/thrust.test.is_contiguous_iterator.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.is_contiguous_iterator.dir/build.make testing/CMakeFiles/thrust.test.is_contiguous_iterator.dir/depend $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.is_contiguous_iterator.dir/build.make testing/CMakeFiles/thrust.test.is_contiguous_iterator.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=80 "Built target thrust.test.is_contiguous_iterator" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.is_contiguous_iterator" .PHONY : testing/CMakeFiles/thrust.test.is_contiguous_iterator.dir/all # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.is_contiguous_iterator.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.is_contiguous_iterator.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.is_contiguous_iterator.dir/rule @@ -5374,7 +5599,7 @@ testing/CMakeFiles/thrust.all.test.is_contiguous_iterator.dir/all: testing/CMake # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.is_contiguous_iterator.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.is_contiguous_iterator.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.is_contiguous_iterator.dir/rule @@ -5395,7 +5620,7 @@ testing/CMakeFiles/thrust.all.test.is_contiguous_iterator.dir/clean: testing/CMakeFiles/thrust.test.is_operator_function_object.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.is_operator_function_object.dir/build.make testing/CMakeFiles/thrust.test.is_operator_function_object.dir/depend $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.is_operator_function_object.dir/build.make testing/CMakeFiles/thrust.test.is_operator_function_object.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.is_operator_function_object" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=82 "Built target thrust.test.is_operator_function_object" .PHONY : testing/CMakeFiles/thrust.test.is_operator_function_object.dir/all # Build rule for subdir invocation for target. @@ -5452,7 +5677,7 @@ testing/CMakeFiles/thrust.test.is_partitioned.dir/all: testing/unittest/CMakeFil # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.is_partitioned.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.is_partitioned.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.is_partitioned.dir/rule @@ -5478,7 +5703,7 @@ testing/CMakeFiles/thrust.all.test.is_partitioned.dir/all: testing/CMakeFiles/th # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.is_partitioned.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.is_partitioned.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.is_partitioned.dir/rule @@ -5504,7 +5729,7 @@ testing/CMakeFiles/thrust.test.is_sorted.dir/all: testing/unittest/CMakeFiles/th # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.is_sorted.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.is_sorted.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.is_sorted.dir/rule @@ -5530,7 +5755,7 @@ testing/CMakeFiles/thrust.all.test.is_sorted.dir/all: testing/CMakeFiles/thrust. # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.is_sorted.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.is_sorted.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.is_sorted.dir/rule @@ -5556,7 +5781,7 @@ testing/CMakeFiles/thrust.test.is_sorted_until.dir/all: testing/unittest/CMakeFi # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.is_sorted_until.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.is_sorted_until.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.is_sorted_until.dir/rule @@ -5582,7 +5807,7 @@ testing/CMakeFiles/thrust.all.test.is_sorted_until.dir/all: testing/CMakeFiles/t # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.is_sorted_until.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.is_sorted_until.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.is_sorted_until.dir/rule @@ -5608,7 +5833,7 @@ testing/CMakeFiles/thrust.test.logical.dir/all: testing/unittest/CMakeFiles/thru # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.logical.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.logical.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.logical.dir/rule @@ -5634,7 +5859,7 @@ testing/CMakeFiles/thrust.all.test.logical.dir/all: testing/CMakeFiles/thrust.te # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.logical.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.logical.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.logical.dir/rule @@ -5655,12 +5880,12 @@ testing/CMakeFiles/thrust.all.test.logical.dir/clean: testing/CMakeFiles/thrust.test.max_element.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.max_element.dir/build.make testing/CMakeFiles/thrust.test.max_element.dir/depend $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.max_element.dir/build.make testing/CMakeFiles/thrust.test.max_element.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=81 "Built target thrust.test.max_element" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.max_element" .PHONY : testing/CMakeFiles/thrust.test.max_element.dir/all # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.max_element.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.max_element.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.max_element.dir/rule @@ -5686,7 +5911,7 @@ testing/CMakeFiles/thrust.all.test.max_element.dir/all: testing/CMakeFiles/thrus # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.max_element.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.max_element.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.max_element.dir/rule @@ -5707,7 +5932,7 @@ testing/CMakeFiles/thrust.all.test.max_element.dir/clean: testing/CMakeFiles/thrust.test.memory.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.memory.dir/build.make testing/CMakeFiles/thrust.test.memory.dir/depend $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.memory.dir/build.make testing/CMakeFiles/thrust.test.memory.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.memory" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=83 "Built target thrust.test.memory" .PHONY : testing/CMakeFiles/thrust.test.memory.dir/all # Build rule for subdir invocation for target. @@ -5764,7 +5989,7 @@ testing/CMakeFiles/thrust.test.merge.dir/all: testing/unittest/CMakeFiles/thrust # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.merge.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.merge.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.merge.dir/rule @@ -5790,7 +6015,7 @@ testing/CMakeFiles/thrust.all.test.merge.dir/all: testing/CMakeFiles/thrust.test # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.merge.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.merge.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.merge.dir/rule @@ -5816,7 +6041,7 @@ testing/CMakeFiles/thrust.test.merge_by_key.dir/all: testing/unittest/CMakeFiles # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.merge_by_key.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.merge_by_key.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.merge_by_key.dir/rule @@ -5842,7 +6067,7 @@ testing/CMakeFiles/thrust.all.test.merge_by_key.dir/all: testing/CMakeFiles/thru # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.merge_by_key.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.merge_by_key.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.merge_by_key.dir/rule @@ -5868,7 +6093,7 @@ testing/CMakeFiles/thrust.test.merge_key_value.dir/all: testing/unittest/CMakeFi # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.merge_key_value.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.merge_key_value.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.merge_key_value.dir/rule @@ -5894,7 +6119,7 @@ testing/CMakeFiles/thrust.all.test.merge_key_value.dir/all: testing/CMakeFiles/t # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.merge_key_value.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.merge_key_value.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.merge_key_value.dir/rule @@ -5915,12 +6140,12 @@ testing/CMakeFiles/thrust.all.test.merge_key_value.dir/clean: testing/CMakeFiles/thrust.test.metaprogamming.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.metaprogamming.dir/build.make testing/CMakeFiles/thrust.test.metaprogamming.dir/depend $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.metaprogamming.dir/build.make testing/CMakeFiles/thrust.test.metaprogamming.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=82 "Built target thrust.test.metaprogamming" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.metaprogamming" .PHONY : testing/CMakeFiles/thrust.test.metaprogamming.dir/all # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.metaprogamming.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.metaprogamming.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.metaprogamming.dir/rule @@ -5946,7 +6171,7 @@ testing/CMakeFiles/thrust.all.test.metaprogamming.dir/all: testing/CMakeFiles/th # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.metaprogamming.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.metaprogamming.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.metaprogamming.dir/rule @@ -5972,7 +6197,7 @@ testing/CMakeFiles/thrust.test.min_and_max.dir/all: testing/unittest/CMakeFiles/ # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.min_and_max.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.min_and_max.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.min_and_max.dir/rule @@ -5998,7 +6223,7 @@ testing/CMakeFiles/thrust.all.test.min_and_max.dir/all: testing/CMakeFiles/thrus # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.min_and_max.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.min_and_max.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.min_and_max.dir/rule @@ -6019,7 +6244,7 @@ testing/CMakeFiles/thrust.all.test.min_and_max.dir/clean: testing/CMakeFiles/thrust.test.min_element.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.min_element.dir/build.make testing/CMakeFiles/thrust.test.min_element.dir/depend $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.min_element.dir/build.make testing/CMakeFiles/thrust.test.min_element.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.min_element" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=84 "Built target thrust.test.min_element" .PHONY : testing/CMakeFiles/thrust.test.min_element.dir/all # Build rule for subdir invocation for target. @@ -6076,7 +6301,7 @@ testing/CMakeFiles/thrust.test.minmax_element.dir/all: testing/unittest/CMakeFil # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.minmax_element.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.minmax_element.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.minmax_element.dir/rule @@ -6102,7 +6327,7 @@ testing/CMakeFiles/thrust.all.test.minmax_element.dir/all: testing/CMakeFiles/th # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.minmax_element.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.minmax_element.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.minmax_element.dir/rule @@ -6128,7 +6353,7 @@ testing/CMakeFiles/thrust.test.mismatch.dir/all: testing/unittest/CMakeFiles/thr # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.mismatch.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.mismatch.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.mismatch.dir/rule @@ -6154,7 +6379,7 @@ testing/CMakeFiles/thrust.all.test.mismatch.dir/all: testing/CMakeFiles/thrust.t # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.mismatch.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.mismatch.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.mismatch.dir/rule @@ -6180,7 +6405,7 @@ testing/CMakeFiles/thrust.test.mr_disjoint_pool.dir/all: testing/unittest/CMakeF # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.mr_disjoint_pool.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.mr_disjoint_pool.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.mr_disjoint_pool.dir/rule @@ -6206,7 +6431,7 @@ testing/CMakeFiles/thrust.all.test.mr_disjoint_pool.dir/all: testing/CMakeFiles/ # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.mr_disjoint_pool.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.mr_disjoint_pool.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.mr_disjoint_pool.dir/rule @@ -6227,12 +6452,12 @@ testing/CMakeFiles/thrust.all.test.mr_disjoint_pool.dir/clean: testing/CMakeFiles/thrust.test.mr_new.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.mr_new.dir/build.make testing/CMakeFiles/thrust.test.mr_new.dir/depend $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.mr_new.dir/build.make testing/CMakeFiles/thrust.test.mr_new.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=83 "Built target thrust.test.mr_new" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.mr_new" .PHONY : testing/CMakeFiles/thrust.test.mr_new.dir/all # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.mr_new.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.mr_new.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.mr_new.dir/rule @@ -6258,7 +6483,7 @@ testing/CMakeFiles/thrust.all.test.mr_new.dir/all: testing/CMakeFiles/thrust.tes # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.mr_new.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.mr_new.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.mr_new.dir/rule @@ -6284,7 +6509,7 @@ testing/CMakeFiles/thrust.test.mr_pool.dir/all: testing/unittest/CMakeFiles/thru # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.mr_pool.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.mr_pool.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.mr_pool.dir/rule @@ -6310,7 +6535,7 @@ testing/CMakeFiles/thrust.all.test.mr_pool.dir/all: testing/CMakeFiles/thrust.te # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.mr_pool.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.mr_pool.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.mr_pool.dir/rule @@ -6331,7 +6556,7 @@ testing/CMakeFiles/thrust.all.test.mr_pool.dir/clean: testing/CMakeFiles/thrust.test.mr_pool_options.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.mr_pool_options.dir/build.make testing/CMakeFiles/thrust.test.mr_pool_options.dir/depend $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.mr_pool_options.dir/build.make testing/CMakeFiles/thrust.test.mr_pool_options.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.mr_pool_options" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=85 "Built target thrust.test.mr_pool_options" .PHONY : testing/CMakeFiles/thrust.test.mr_pool_options.dir/all # Build rule for subdir invocation for target. @@ -6388,7 +6613,7 @@ testing/CMakeFiles/thrust.test.namespace_wrapped.dir/all: testing/unittest/CMake # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.namespace_wrapped.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.namespace_wrapped.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.namespace_wrapped.dir/rule @@ -6414,7 +6639,7 @@ testing/CMakeFiles/thrust.all.test.namespace_wrapped.dir/all: testing/CMakeFiles # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.namespace_wrapped.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.namespace_wrapped.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.namespace_wrapped.dir/rule @@ -6440,7 +6665,7 @@ testing/CMakeFiles/thrust.test.out_of_memory_recovery.dir/all: testing/unittest/ # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.out_of_memory_recovery.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.out_of_memory_recovery.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.out_of_memory_recovery.dir/rule @@ -6466,7 +6691,7 @@ testing/CMakeFiles/thrust.all.test.out_of_memory_recovery.dir/all: testing/CMake # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.out_of_memory_recovery.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.out_of_memory_recovery.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.out_of_memory_recovery.dir/rule @@ -6487,12 +6712,12 @@ testing/CMakeFiles/thrust.all.test.out_of_memory_recovery.dir/clean: testing/CMakeFiles/thrust.test.pair.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.pair.dir/build.make testing/CMakeFiles/thrust.test.pair.dir/depend $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.pair.dir/build.make testing/CMakeFiles/thrust.test.pair.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=84 "Built target thrust.test.pair" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.pair" .PHONY : testing/CMakeFiles/thrust.test.pair.dir/all # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.pair.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.pair.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.pair.dir/rule @@ -6518,7 +6743,7 @@ testing/CMakeFiles/thrust.all.test.pair.dir/all: testing/CMakeFiles/thrust.test. # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.pair.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.pair.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.pair.dir/rule @@ -6544,7 +6769,7 @@ testing/CMakeFiles/thrust.test.pair_reduce.dir/all: testing/unittest/CMakeFiles/ # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.pair_reduce.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.pair_reduce.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.pair_reduce.dir/rule @@ -6570,7 +6795,7 @@ testing/CMakeFiles/thrust.all.test.pair_reduce.dir/all: testing/CMakeFiles/thrus # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.pair_reduce.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.pair_reduce.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.pair_reduce.dir/rule @@ -6596,7 +6821,7 @@ testing/CMakeFiles/thrust.test.pair_scan.dir/all: testing/unittest/CMakeFiles/th # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.pair_scan.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.pair_scan.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.pair_scan.dir/rule @@ -6622,7 +6847,7 @@ testing/CMakeFiles/thrust.all.test.pair_scan.dir/all: testing/CMakeFiles/thrust. # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.pair_scan.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.pair_scan.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.pair_scan.dir/rule @@ -6643,7 +6868,7 @@ testing/CMakeFiles/thrust.all.test.pair_scan.dir/clean: testing/CMakeFiles/thrust.test.pair_scan_by_key.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.pair_scan_by_key.dir/build.make testing/CMakeFiles/thrust.test.pair_scan_by_key.dir/depend $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.pair_scan_by_key.dir/build.make testing/CMakeFiles/thrust.test.pair_scan_by_key.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.pair_scan_by_key" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=86 "Built target thrust.test.pair_scan_by_key" .PHONY : testing/CMakeFiles/thrust.test.pair_scan_by_key.dir/all # Build rule for subdir invocation for target. @@ -6700,7 +6925,7 @@ testing/CMakeFiles/thrust.test.pair_sort.dir/all: testing/unittest/CMakeFiles/th # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.pair_sort.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.pair_sort.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.pair_sort.dir/rule @@ -6726,7 +6951,7 @@ testing/CMakeFiles/thrust.all.test.pair_sort.dir/all: testing/CMakeFiles/thrust. # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.pair_sort.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.pair_sort.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.pair_sort.dir/rule @@ -6752,7 +6977,7 @@ testing/CMakeFiles/thrust.test.pair_sort_by_key.dir/all: testing/unittest/CMakeF # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.pair_sort_by_key.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.pair_sort_by_key.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.pair_sort_by_key.dir/rule @@ -6778,7 +7003,7 @@ testing/CMakeFiles/thrust.all.test.pair_sort_by_key.dir/all: testing/CMakeFiles/ # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.pair_sort_by_key.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.pair_sort_by_key.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.pair_sort_by_key.dir/rule @@ -6799,12 +7024,12 @@ testing/CMakeFiles/thrust.all.test.pair_sort_by_key.dir/clean: testing/CMakeFiles/thrust.test.pair_transform.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.pair_transform.dir/build.make testing/CMakeFiles/thrust.test.pair_transform.dir/depend $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.pair_transform.dir/build.make testing/CMakeFiles/thrust.test.pair_transform.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=85 "Built target thrust.test.pair_transform" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.pair_transform" .PHONY : testing/CMakeFiles/thrust.test.pair_transform.dir/all # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.pair_transform.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.pair_transform.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.pair_transform.dir/rule @@ -6830,7 +7055,7 @@ testing/CMakeFiles/thrust.all.test.pair_transform.dir/all: testing/CMakeFiles/th # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.pair_transform.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.pair_transform.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.pair_transform.dir/rule @@ -6856,7 +7081,7 @@ testing/CMakeFiles/thrust.test.partition.dir/all: testing/unittest/CMakeFiles/th # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.partition.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.partition.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.partition.dir/rule @@ -6882,7 +7107,7 @@ testing/CMakeFiles/thrust.all.test.partition.dir/all: testing/CMakeFiles/thrust. # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.partition.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.partition.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.partition.dir/rule @@ -6908,7 +7133,7 @@ testing/CMakeFiles/thrust.test.partition_point.dir/all: testing/unittest/CMakeFi # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.partition_point.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.partition_point.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.partition_point.dir/rule @@ -6934,7 +7159,7 @@ testing/CMakeFiles/thrust.all.test.partition_point.dir/all: testing/CMakeFiles/t # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.partition_point.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.partition_point.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.partition_point.dir/rule @@ -6960,7 +7185,7 @@ testing/CMakeFiles/thrust.test.permutation_iterator.dir/all: testing/unittest/CM # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.permutation_iterator.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.permutation_iterator.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.permutation_iterator.dir/rule @@ -6986,7 +7211,7 @@ testing/CMakeFiles/thrust.all.test.permutation_iterator.dir/all: testing/CMakeFi # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.permutation_iterator.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.permutation_iterator.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.permutation_iterator.dir/rule @@ -7007,7 +7232,7 @@ testing/CMakeFiles/thrust.all.test.permutation_iterator.dir/clean: testing/CMakeFiles/thrust.test.preprocessor.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.preprocessor.dir/build.make testing/CMakeFiles/thrust.test.preprocessor.dir/depend $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.preprocessor.dir/build.make testing/CMakeFiles/thrust.test.preprocessor.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.preprocessor" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=87 "Built target thrust.test.preprocessor" .PHONY : testing/CMakeFiles/thrust.test.preprocessor.dir/all # Build rule for subdir invocation for target. @@ -7064,7 +7289,7 @@ testing/CMakeFiles/thrust.test.random.dir/all: testing/unittest/CMakeFiles/thrus # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.random.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.random.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.random.dir/rule @@ -7090,7 +7315,7 @@ testing/CMakeFiles/thrust.all.test.random.dir/all: testing/CMakeFiles/thrust.tes # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.random.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.random.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.random.dir/rule @@ -7111,12 +7336,12 @@ testing/CMakeFiles/thrust.all.test.random.dir/clean: testing/CMakeFiles/thrust.test.reduce.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.reduce.dir/build.make testing/CMakeFiles/thrust.test.reduce.dir/depend $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.reduce.dir/build.make testing/CMakeFiles/thrust.test.reduce.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=86 "Built target thrust.test.reduce" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.reduce" .PHONY : testing/CMakeFiles/thrust.test.reduce.dir/all # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.reduce.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.reduce.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.reduce.dir/rule @@ -7142,7 +7367,7 @@ testing/CMakeFiles/thrust.all.test.reduce.dir/all: testing/CMakeFiles/thrust.tes # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.reduce.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.reduce.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.reduce.dir/rule @@ -7168,7 +7393,7 @@ testing/CMakeFiles/thrust.test.reduce_by_key.dir/all: testing/unittest/CMakeFile # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.reduce_by_key.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.reduce_by_key.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.reduce_by_key.dir/rule @@ -7194,7 +7419,7 @@ testing/CMakeFiles/thrust.all.test.reduce_by_key.dir/all: testing/CMakeFiles/thr # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.reduce_by_key.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.reduce_by_key.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.reduce_by_key.dir/rule @@ -7220,7 +7445,7 @@ testing/CMakeFiles/thrust.test.reduce_large.dir/all: testing/unittest/CMakeFiles # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.reduce_large.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.reduce_large.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.reduce_large.dir/rule @@ -7246,7 +7471,7 @@ testing/CMakeFiles/thrust.all.test.reduce_large.dir/all: testing/CMakeFiles/thru # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.reduce_large.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.reduce_large.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.reduce_large.dir/rule @@ -7272,7 +7497,7 @@ testing/CMakeFiles/thrust.test.remove.dir/all: testing/unittest/CMakeFiles/thrus # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.remove.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.remove.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.remove.dir/rule @@ -7298,7 +7523,7 @@ testing/CMakeFiles/thrust.all.test.remove.dir/all: testing/CMakeFiles/thrust.tes # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.remove.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.remove.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.remove.dir/rule @@ -7319,7 +7544,7 @@ testing/CMakeFiles/thrust.all.test.remove.dir/clean: testing/CMakeFiles/thrust.test.replace.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.replace.dir/build.make testing/CMakeFiles/thrust.test.replace.dir/depend $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.replace.dir/build.make testing/CMakeFiles/thrust.test.replace.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.replace" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=88 "Built target thrust.test.replace" .PHONY : testing/CMakeFiles/thrust.test.replace.dir/all # Build rule for subdir invocation for target. @@ -7371,12 +7596,12 @@ testing/CMakeFiles/thrust.all.test.replace.dir/clean: testing/CMakeFiles/thrust.test.reverse.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.reverse.dir/build.make testing/CMakeFiles/thrust.test.reverse.dir/depend $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.reverse.dir/build.make testing/CMakeFiles/thrust.test.reverse.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=87 "Built target thrust.test.reverse" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.reverse" .PHONY : testing/CMakeFiles/thrust.test.reverse.dir/all # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.reverse.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.reverse.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.reverse.dir/rule @@ -7402,7 +7627,7 @@ testing/CMakeFiles/thrust.all.test.reverse.dir/all: testing/CMakeFiles/thrust.te # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.reverse.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.reverse.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.reverse.dir/rule @@ -7428,7 +7653,7 @@ testing/CMakeFiles/thrust.test.reverse_iterator.dir/all: testing/unittest/CMakeF # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.reverse_iterator.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.reverse_iterator.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.reverse_iterator.dir/rule @@ -7454,7 +7679,7 @@ testing/CMakeFiles/thrust.all.test.reverse_iterator.dir/all: testing/CMakeFiles/ # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.reverse_iterator.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.reverse_iterator.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.reverse_iterator.dir/rule @@ -7480,7 +7705,7 @@ testing/CMakeFiles/thrust.test.scan.dir/all: testing/unittest/CMakeFiles/thrust. # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.scan.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.scan.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.scan.dir/rule @@ -7506,7 +7731,7 @@ testing/CMakeFiles/thrust.all.test.scan.dir/all: testing/CMakeFiles/thrust.test. # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.scan.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.scan.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.scan.dir/rule @@ -7532,7 +7757,7 @@ testing/CMakeFiles/thrust.test.scan_by_key.exclusive.dir/all: testing/unittest/C # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.scan_by_key.exclusive.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.scan_by_key.exclusive.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.scan_by_key.exclusive.dir/rule @@ -7558,7 +7783,7 @@ testing/CMakeFiles/thrust.all.test.scan_by_key.exclusive.dir/all: testing/CMakeF # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.scan_by_key.exclusive.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.scan_by_key.exclusive.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.scan_by_key.exclusive.dir/rule @@ -7584,7 +7809,7 @@ testing/CMakeFiles/thrust.test.scan_by_key.inclusive.dir/all: testing/unittest/C # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.scan_by_key.inclusive.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.scan_by_key.inclusive.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.scan_by_key.inclusive.dir/rule @@ -7610,7 +7835,7 @@ testing/CMakeFiles/thrust.all.test.scan_by_key.inclusive.dir/all: testing/CMakeF # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.scan_by_key.inclusive.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.scan_by_key.inclusive.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.scan_by_key.inclusive.dir/rule @@ -7631,7 +7856,7 @@ testing/CMakeFiles/thrust.all.test.scan_by_key.inclusive.dir/clean: testing/CMakeFiles/thrust.test.scatter.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.scatter.dir/build.make testing/CMakeFiles/thrust.test.scatter.dir/depend $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.scatter.dir/build.make testing/CMakeFiles/thrust.test.scatter.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.scatter" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=89 "Built target thrust.test.scatter" .PHONY : testing/CMakeFiles/thrust.test.scatter.dir/all # Build rule for subdir invocation for target. @@ -7683,12 +7908,12 @@ testing/CMakeFiles/thrust.all.test.scatter.dir/clean: testing/CMakeFiles/thrust.test.sequence.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.sequence.dir/build.make testing/CMakeFiles/thrust.test.sequence.dir/depend $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.sequence.dir/build.make testing/CMakeFiles/thrust.test.sequence.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=88 "Built target thrust.test.sequence" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.sequence" .PHONY : testing/CMakeFiles/thrust.test.sequence.dir/all # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.sequence.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.sequence.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.sequence.dir/rule @@ -7714,7 +7939,7 @@ testing/CMakeFiles/thrust.all.test.sequence.dir/all: testing/CMakeFiles/thrust.t # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.sequence.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.sequence.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.sequence.dir/rule @@ -7740,7 +7965,7 @@ testing/CMakeFiles/thrust.test.set_difference.dir/all: testing/unittest/CMakeFil # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.set_difference.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.set_difference.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.set_difference.dir/rule @@ -7766,7 +7991,7 @@ testing/CMakeFiles/thrust.all.test.set_difference.dir/all: testing/CMakeFiles/th # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.set_difference.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.set_difference.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.set_difference.dir/rule @@ -7792,7 +8017,7 @@ testing/CMakeFiles/thrust.test.set_difference_by_key.dir/all: testing/unittest/C # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.set_difference_by_key.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.set_difference_by_key.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.set_difference_by_key.dir/rule @@ -7818,7 +8043,7 @@ testing/CMakeFiles/thrust.all.test.set_difference_by_key.dir/all: testing/CMakeF # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.set_difference_by_key.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.set_difference_by_key.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.set_difference_by_key.dir/rule @@ -7844,7 +8069,7 @@ testing/CMakeFiles/thrust.test.set_difference_by_key_descending.dir/all: testing # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.set_difference_by_key_descending.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.set_difference_by_key_descending.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.set_difference_by_key_descending.dir/rule @@ -7870,7 +8095,7 @@ testing/CMakeFiles/thrust.all.test.set_difference_by_key_descending.dir/all: tes # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.set_difference_by_key_descending.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.set_difference_by_key_descending.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.set_difference_by_key_descending.dir/rule @@ -7896,7 +8121,7 @@ testing/CMakeFiles/thrust.test.set_difference_descending.dir/all: testing/unitte # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.set_difference_descending.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.set_difference_descending.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.set_difference_descending.dir/rule @@ -7922,7 +8147,7 @@ testing/CMakeFiles/thrust.all.test.set_difference_descending.dir/all: testing/CM # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.set_difference_descending.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.set_difference_descending.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.set_difference_descending.dir/rule @@ -7943,12 +8168,12 @@ testing/CMakeFiles/thrust.all.test.set_difference_descending.dir/clean: testing/CMakeFiles/thrust.test.set_difference_key_value.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.set_difference_key_value.dir/build.make testing/CMakeFiles/thrust.test.set_difference_key_value.dir/depend $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.set_difference_key_value.dir/build.make testing/CMakeFiles/thrust.test.set_difference_key_value.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=89 "Built target thrust.test.set_difference_key_value" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=90 "Built target thrust.test.set_difference_key_value" .PHONY : testing/CMakeFiles/thrust.test.set_difference_key_value.dir/all # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.set_difference_key_value.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.set_difference_key_value.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.set_difference_key_value.dir/rule @@ -7974,7 +8199,7 @@ testing/CMakeFiles/thrust.all.test.set_difference_key_value.dir/all: testing/CMa # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.set_difference_key_value.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.set_difference_key_value.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.set_difference_key_value.dir/rule @@ -8000,7 +8225,7 @@ testing/CMakeFiles/thrust.test.set_intersection.dir/all: testing/unittest/CMakeF # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.set_intersection.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.set_intersection.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.set_intersection.dir/rule @@ -8026,7 +8251,7 @@ testing/CMakeFiles/thrust.all.test.set_intersection.dir/all: testing/CMakeFiles/ # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.set_intersection.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.set_intersection.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.set_intersection.dir/rule @@ -8052,7 +8277,7 @@ testing/CMakeFiles/thrust.test.set_intersection_by_key.dir/all: testing/unittest # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.set_intersection_by_key.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.set_intersection_by_key.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.set_intersection_by_key.dir/rule @@ -8078,7 +8303,7 @@ testing/CMakeFiles/thrust.all.test.set_intersection_by_key.dir/all: testing/CMak # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.set_intersection_by_key.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.set_intersection_by_key.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.set_intersection_by_key.dir/rule @@ -8104,7 +8329,7 @@ testing/CMakeFiles/thrust.test.set_intersection_by_key_descending.dir/all: testi # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.set_intersection_by_key_descending.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.set_intersection_by_key_descending.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.set_intersection_by_key_descending.dir/rule @@ -8130,7 +8355,7 @@ testing/CMakeFiles/thrust.all.test.set_intersection_by_key_descending.dir/all: t # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.set_intersection_by_key_descending.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.set_intersection_by_key_descending.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.set_intersection_by_key_descending.dir/rule @@ -8156,7 +8381,7 @@ testing/CMakeFiles/thrust.test.set_intersection_descending.dir/all: testing/unit # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.set_intersection_descending.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.set_intersection_descending.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.set_intersection_descending.dir/rule @@ -8182,7 +8407,7 @@ testing/CMakeFiles/thrust.all.test.set_intersection_descending.dir/all: testing/ # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.set_intersection_descending.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.set_intersection_descending.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.set_intersection_descending.dir/rule @@ -8208,7 +8433,7 @@ testing/CMakeFiles/thrust.test.set_intersection_key_value.dir/all: testing/unitt # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.set_intersection_key_value.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.set_intersection_key_value.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.set_intersection_key_value.dir/rule @@ -8234,7 +8459,7 @@ testing/CMakeFiles/thrust.all.test.set_intersection_key_value.dir/all: testing/C # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.set_intersection_key_value.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.set_intersection_key_value.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.set_intersection_key_value.dir/rule @@ -8255,12 +8480,12 @@ testing/CMakeFiles/thrust.all.test.set_intersection_key_value.dir/clean: testing/CMakeFiles/thrust.test.set_symmetric_difference.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.set_symmetric_difference.dir/build.make testing/CMakeFiles/thrust.test.set_symmetric_difference.dir/depend $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.set_symmetric_difference.dir/build.make testing/CMakeFiles/thrust.test.set_symmetric_difference.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=90 "Built target thrust.test.set_symmetric_difference" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=91 "Built target thrust.test.set_symmetric_difference" .PHONY : testing/CMakeFiles/thrust.test.set_symmetric_difference.dir/all # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.set_symmetric_difference.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.set_symmetric_difference.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.set_symmetric_difference.dir/rule @@ -8286,7 +8511,7 @@ testing/CMakeFiles/thrust.all.test.set_symmetric_difference.dir/all: testing/CMa # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.set_symmetric_difference.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.set_symmetric_difference.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.set_symmetric_difference.dir/rule @@ -8312,7 +8537,7 @@ testing/CMakeFiles/thrust.test.set_symmetric_difference_by_key.dir/all: testing/ # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.set_symmetric_difference_by_key.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.set_symmetric_difference_by_key.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.set_symmetric_difference_by_key.dir/rule @@ -8338,7 +8563,7 @@ testing/CMakeFiles/thrust.all.test.set_symmetric_difference_by_key.dir/all: test # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.set_symmetric_difference_by_key.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.set_symmetric_difference_by_key.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.set_symmetric_difference_by_key.dir/rule @@ -8364,7 +8589,7 @@ testing/CMakeFiles/thrust.test.set_symmetric_difference_by_key_descending.dir/al # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.set_symmetric_difference_by_key_descending.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.set_symmetric_difference_by_key_descending.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.set_symmetric_difference_by_key_descending.dir/rule @@ -8390,7 +8615,7 @@ testing/CMakeFiles/thrust.all.test.set_symmetric_difference_by_key_descending.di # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.set_symmetric_difference_by_key_descending.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.set_symmetric_difference_by_key_descending.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.set_symmetric_difference_by_key_descending.dir/rule @@ -8416,7 +8641,7 @@ testing/CMakeFiles/thrust.test.set_symmetric_difference_descending.dir/all: test # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.set_symmetric_difference_descending.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.set_symmetric_difference_descending.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.set_symmetric_difference_descending.dir/rule @@ -8442,7 +8667,7 @@ testing/CMakeFiles/thrust.all.test.set_symmetric_difference_descending.dir/all: # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.set_symmetric_difference_descending.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.set_symmetric_difference_descending.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.set_symmetric_difference_descending.dir/rule @@ -8468,7 +8693,7 @@ testing/CMakeFiles/thrust.test.set_union.dir/all: testing/unittest/CMakeFiles/th # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.set_union.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.set_union.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.set_union.dir/rule @@ -8494,7 +8719,7 @@ testing/CMakeFiles/thrust.all.test.set_union.dir/all: testing/CMakeFiles/thrust. # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.set_union.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.set_union.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.set_union.dir/rule @@ -8515,12 +8740,12 @@ testing/CMakeFiles/thrust.all.test.set_union.dir/clean: testing/CMakeFiles/thrust.test.set_union_by_key.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.set_union_by_key.dir/build.make testing/CMakeFiles/thrust.test.set_union_by_key.dir/depend $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.set_union_by_key.dir/build.make testing/CMakeFiles/thrust.test.set_union_by_key.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=91 "Built target thrust.test.set_union_by_key" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.set_union_by_key" .PHONY : testing/CMakeFiles/thrust.test.set_union_by_key.dir/all # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.set_union_by_key.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.set_union_by_key.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.set_union_by_key.dir/rule @@ -8546,7 +8771,7 @@ testing/CMakeFiles/thrust.all.test.set_union_by_key.dir/all: testing/CMakeFiles/ # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.set_union_by_key.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.set_union_by_key.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.set_union_by_key.dir/rule @@ -8567,7 +8792,7 @@ testing/CMakeFiles/thrust.all.test.set_union_by_key.dir/clean: testing/CMakeFiles/thrust.test.set_union_by_key_descending.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.set_union_by_key_descending.dir/build.make testing/CMakeFiles/thrust.test.set_union_by_key_descending.dir/depend $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.set_union_by_key_descending.dir/build.make testing/CMakeFiles/thrust.test.set_union_by_key_descending.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.set_union_by_key_descending" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=92 "Built target thrust.test.set_union_by_key_descending" .PHONY : testing/CMakeFiles/thrust.test.set_union_by_key_descending.dir/all # Build rule for subdir invocation for target. @@ -8624,7 +8849,7 @@ testing/CMakeFiles/thrust.test.set_union_descending.dir/all: testing/unittest/CM # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.set_union_descending.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.set_union_descending.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.set_union_descending.dir/rule @@ -8650,7 +8875,7 @@ testing/CMakeFiles/thrust.all.test.set_union_descending.dir/all: testing/CMakeFi # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.set_union_descending.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.set_union_descending.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.set_union_descending.dir/rule @@ -8676,7 +8901,7 @@ testing/CMakeFiles/thrust.test.set_union_key_value.dir/all: testing/unittest/CMa # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.set_union_key_value.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.set_union_key_value.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.set_union_key_value.dir/rule @@ -8702,7 +8927,7 @@ testing/CMakeFiles/thrust.all.test.set_union_key_value.dir/all: testing/CMakeFil # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.set_union_key_value.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.set_union_key_value.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.set_union_key_value.dir/rule @@ -8728,7 +8953,7 @@ testing/CMakeFiles/thrust.test.shuffle.dir/all: testing/unittest/CMakeFiles/thru # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.shuffle.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.shuffle.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.shuffle.dir/rule @@ -8754,7 +8979,7 @@ testing/CMakeFiles/thrust.all.test.shuffle.dir/all: testing/CMakeFiles/thrust.te # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.shuffle.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.shuffle.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.shuffle.dir/rule @@ -8780,7 +9005,7 @@ testing/CMakeFiles/thrust.test.sort.dir/all: testing/unittest/CMakeFiles/thrust. # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.sort.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.sort.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.sort.dir/rule @@ -8806,7 +9031,7 @@ testing/CMakeFiles/thrust.all.test.sort.dir/all: testing/CMakeFiles/thrust.test. # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.sort.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.sort.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.sort.dir/rule @@ -8827,12 +9052,12 @@ testing/CMakeFiles/thrust.all.test.sort.dir/clean: testing/CMakeFiles/thrust.test.sort_by_key.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.sort_by_key.dir/build.make testing/CMakeFiles/thrust.test.sort_by_key.dir/depend $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.sort_by_key.dir/build.make testing/CMakeFiles/thrust.test.sort_by_key.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=92 "Built target thrust.test.sort_by_key" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.sort_by_key" .PHONY : testing/CMakeFiles/thrust.test.sort_by_key.dir/all # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.sort_by_key.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.sort_by_key.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.sort_by_key.dir/rule @@ -8858,7 +9083,7 @@ testing/CMakeFiles/thrust.all.test.sort_by_key.dir/all: testing/CMakeFiles/thrus # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.sort_by_key.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.sort_by_key.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.sort_by_key.dir/rule @@ -8879,7 +9104,7 @@ testing/CMakeFiles/thrust.all.test.sort_by_key.dir/clean: testing/CMakeFiles/thrust.test.sort_by_key_variable_bits.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.sort_by_key_variable_bits.dir/build.make testing/CMakeFiles/thrust.test.sort_by_key_variable_bits.dir/depend $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.sort_by_key_variable_bits.dir/build.make testing/CMakeFiles/thrust.test.sort_by_key_variable_bits.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.sort_by_key_variable_bits" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=93 "Built target thrust.test.sort_by_key_variable_bits" .PHONY : testing/CMakeFiles/thrust.test.sort_by_key_variable_bits.dir/all # Build rule for subdir invocation for target. @@ -8936,7 +9161,7 @@ testing/CMakeFiles/thrust.test.sort_permutation_iterator.dir/all: testing/unitte # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.sort_permutation_iterator.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.sort_permutation_iterator.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.sort_permutation_iterator.dir/rule @@ -8962,7 +9187,7 @@ testing/CMakeFiles/thrust.all.test.sort_permutation_iterator.dir/all: testing/CM # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.sort_permutation_iterator.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.sort_permutation_iterator.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.sort_permutation_iterator.dir/rule @@ -8988,7 +9213,7 @@ testing/CMakeFiles/thrust.test.sort_variable_bits.dir/all: testing/unittest/CMak # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.sort_variable_bits.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.sort_variable_bits.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.sort_variable_bits.dir/rule @@ -9014,7 +9239,7 @@ testing/CMakeFiles/thrust.all.test.sort_variable_bits.dir/all: testing/CMakeFile # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.sort_variable_bits.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.sort_variable_bits.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.sort_variable_bits.dir/rule @@ -9040,7 +9265,7 @@ testing/CMakeFiles/thrust.test.stable_sort.dir/all: testing/unittest/CMakeFiles/ # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.stable_sort.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.stable_sort.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.stable_sort.dir/rule @@ -9066,7 +9291,7 @@ testing/CMakeFiles/thrust.all.test.stable_sort.dir/all: testing/CMakeFiles/thrus # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.stable_sort.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.stable_sort.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.stable_sort.dir/rule @@ -9092,7 +9317,7 @@ testing/CMakeFiles/thrust.test.stable_sort_by_key.dir/all: testing/unittest/CMak # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.stable_sort_by_key.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.stable_sort_by_key.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.stable_sort_by_key.dir/rule @@ -9118,7 +9343,7 @@ testing/CMakeFiles/thrust.all.test.stable_sort_by_key.dir/all: testing/CMakeFile # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.stable_sort_by_key.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.stable_sort_by_key.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.stable_sort_by_key.dir/rule @@ -9139,12 +9364,12 @@ testing/CMakeFiles/thrust.all.test.stable_sort_by_key.dir/clean: testing/CMakeFiles/thrust.test.stable_sort_by_key_large_keys.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.stable_sort_by_key_large_keys.dir/build.make testing/CMakeFiles/thrust.test.stable_sort_by_key_large_keys.dir/depend $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.stable_sort_by_key_large_keys.dir/build.make testing/CMakeFiles/thrust.test.stable_sort_by_key_large_keys.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=93 "Built target thrust.test.stable_sort_by_key_large_keys" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.stable_sort_by_key_large_keys" .PHONY : testing/CMakeFiles/thrust.test.stable_sort_by_key_large_keys.dir/all # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.stable_sort_by_key_large_keys.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.stable_sort_by_key_large_keys.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.stable_sort_by_key_large_keys.dir/rule @@ -9170,7 +9395,7 @@ testing/CMakeFiles/thrust.all.test.stable_sort_by_key_large_keys.dir/all: testin # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.stable_sort_by_key_large_keys.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.stable_sort_by_key_large_keys.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.stable_sort_by_key_large_keys.dir/rule @@ -9196,7 +9421,7 @@ testing/CMakeFiles/thrust.test.stable_sort_by_key_large_keys_and_values.dir/all: # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.stable_sort_by_key_large_keys_and_values.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.stable_sort_by_key_large_keys_and_values.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.stable_sort_by_key_large_keys_and_values.dir/rule @@ -9222,7 +9447,7 @@ testing/CMakeFiles/thrust.all.test.stable_sort_by_key_large_keys_and_values.dir/ # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.stable_sort_by_key_large_keys_and_values.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.stable_sort_by_key_large_keys_and_values.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.stable_sort_by_key_large_keys_and_values.dir/rule @@ -9243,7 +9468,7 @@ testing/CMakeFiles/thrust.all.test.stable_sort_by_key_large_keys_and_values.dir/ testing/CMakeFiles/thrust.test.stable_sort_by_key_large_values.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.stable_sort_by_key_large_values.dir/build.make testing/CMakeFiles/thrust.test.stable_sort_by_key_large_values.dir/depend $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.stable_sort_by_key_large_values.dir/build.make testing/CMakeFiles/thrust.test.stable_sort_by_key_large_values.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.stable_sort_by_key_large_values" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=94 "Built target thrust.test.stable_sort_by_key_large_values" .PHONY : testing/CMakeFiles/thrust.test.stable_sort_by_key_large_values.dir/all # Build rule for subdir invocation for target. @@ -9300,7 +9525,7 @@ testing/CMakeFiles/thrust.test.stable_sort_large.dir/all: testing/unittest/CMake # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.stable_sort_large.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.stable_sort_large.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.stable_sort_large.dir/rule @@ -9326,7 +9551,7 @@ testing/CMakeFiles/thrust.all.test.stable_sort_large.dir/all: testing/CMakeFiles # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.stable_sort_large.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.stable_sort_large.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.stable_sort_large.dir/rule @@ -9352,7 +9577,7 @@ testing/CMakeFiles/thrust.test.swap_ranges.dir/all: testing/unittest/CMakeFiles/ # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.swap_ranges.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.swap_ranges.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.swap_ranges.dir/rule @@ -9378,7 +9603,7 @@ testing/CMakeFiles/thrust.all.test.swap_ranges.dir/all: testing/CMakeFiles/thrus # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.swap_ranges.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.swap_ranges.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.swap_ranges.dir/rule @@ -9399,12 +9624,12 @@ testing/CMakeFiles/thrust.all.test.swap_ranges.dir/clean: testing/CMakeFiles/thrust.test.tabulate.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.tabulate.dir/build.make testing/CMakeFiles/thrust.test.tabulate.dir/depend $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.tabulate.dir/build.make testing/CMakeFiles/thrust.test.tabulate.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=94 "Built target thrust.test.tabulate" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.tabulate" .PHONY : testing/CMakeFiles/thrust.test.tabulate.dir/all # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.tabulate.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.tabulate.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.tabulate.dir/rule @@ -9430,7 +9655,7 @@ testing/CMakeFiles/thrust.all.test.tabulate.dir/all: testing/CMakeFiles/thrust.t # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.tabulate.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.tabulate.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.tabulate.dir/rule @@ -9456,7 +9681,7 @@ testing/CMakeFiles/thrust.test.transform.dir/all: testing/unittest/CMakeFiles/th # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.transform.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.transform.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.transform.dir/rule @@ -9482,7 +9707,7 @@ testing/CMakeFiles/thrust.all.test.transform.dir/all: testing/CMakeFiles/thrust. # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.transform.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.transform.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.transform.dir/rule @@ -9508,7 +9733,7 @@ testing/CMakeFiles/thrust.test.transform_input_output_iterator.dir/all: testing/ # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.transform_input_output_iterator.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.transform_input_output_iterator.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.transform_input_output_iterator.dir/rule @@ -9534,7 +9759,7 @@ testing/CMakeFiles/thrust.all.test.transform_input_output_iterator.dir/all: test # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.transform_input_output_iterator.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.transform_input_output_iterator.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.transform_input_output_iterator.dir/rule @@ -9555,7 +9780,7 @@ testing/CMakeFiles/thrust.all.test.transform_input_output_iterator.dir/clean: testing/CMakeFiles/thrust.test.transform_iterator.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.transform_iterator.dir/build.make testing/CMakeFiles/thrust.test.transform_iterator.dir/depend $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.transform_iterator.dir/build.make testing/CMakeFiles/thrust.test.transform_iterator.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.transform_iterator" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=95 "Built target thrust.test.transform_iterator" .PHONY : testing/CMakeFiles/thrust.test.transform_iterator.dir/all # Build rule for subdir invocation for target. @@ -9612,7 +9837,7 @@ testing/CMakeFiles/thrust.test.transform_output_iterator.dir/all: testing/unitte # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.transform_output_iterator.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.transform_output_iterator.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.transform_output_iterator.dir/rule @@ -9638,7 +9863,7 @@ testing/CMakeFiles/thrust.all.test.transform_output_iterator.dir/all: testing/CM # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.transform_output_iterator.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.transform_output_iterator.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.transform_output_iterator.dir/rule @@ -9664,7 +9889,7 @@ testing/CMakeFiles/thrust.test.transform_output_iterator_reduce_by_key.dir/all: # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.transform_output_iterator_reduce_by_key.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.transform_output_iterator_reduce_by_key.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.transform_output_iterator_reduce_by_key.dir/rule @@ -9690,7 +9915,7 @@ testing/CMakeFiles/thrust.all.test.transform_output_iterator_reduce_by_key.dir/a # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.transform_output_iterator_reduce_by_key.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.transform_output_iterator_reduce_by_key.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.transform_output_iterator_reduce_by_key.dir/rule @@ -9711,12 +9936,12 @@ testing/CMakeFiles/thrust.all.test.transform_output_iterator_reduce_by_key.dir/c testing/CMakeFiles/thrust.test.transform_reduce.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.transform_reduce.dir/build.make testing/CMakeFiles/thrust.test.transform_reduce.dir/depend $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.transform_reduce.dir/build.make testing/CMakeFiles/thrust.test.transform_reduce.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=95 "Built target thrust.test.transform_reduce" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.transform_reduce" .PHONY : testing/CMakeFiles/thrust.test.transform_reduce.dir/all # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.transform_reduce.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.transform_reduce.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.transform_reduce.dir/rule @@ -9742,7 +9967,7 @@ testing/CMakeFiles/thrust.all.test.transform_reduce.dir/all: testing/CMakeFiles/ # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.transform_reduce.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.transform_reduce.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.transform_reduce.dir/rule @@ -9768,7 +9993,7 @@ testing/CMakeFiles/thrust.test.transform_scan.dir/all: testing/unittest/CMakeFil # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.transform_scan.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.transform_scan.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.transform_scan.dir/rule @@ -9794,7 +10019,7 @@ testing/CMakeFiles/thrust.all.test.transform_scan.dir/all: testing/CMakeFiles/th # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.transform_scan.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.transform_scan.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.transform_scan.dir/rule @@ -9820,7 +10045,7 @@ testing/CMakeFiles/thrust.test.trivial_sequence.dir/all: testing/unittest/CMakeF # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.trivial_sequence.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.trivial_sequence.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.trivial_sequence.dir/rule @@ -9846,7 +10071,7 @@ testing/CMakeFiles/thrust.all.test.trivial_sequence.dir/all: testing/CMakeFiles/ # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.trivial_sequence.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.trivial_sequence.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.trivial_sequence.dir/rule @@ -9867,7 +10092,7 @@ testing/CMakeFiles/thrust.all.test.trivial_sequence.dir/clean: testing/CMakeFiles/thrust.test.tuple.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.tuple.dir/build.make testing/CMakeFiles/thrust.test.tuple.dir/depend $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.tuple.dir/build.make testing/CMakeFiles/thrust.test.tuple.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.tuple" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=96 "Built target thrust.test.tuple" .PHONY : testing/CMakeFiles/thrust.test.tuple.dir/all # Build rule for subdir invocation for target. @@ -9924,7 +10149,7 @@ testing/CMakeFiles/thrust.test.tuple_algorithms.dir/all: testing/unittest/CMakeF # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.tuple_algorithms.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.tuple_algorithms.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.tuple_algorithms.dir/rule @@ -9950,7 +10175,7 @@ testing/CMakeFiles/thrust.all.test.tuple_algorithms.dir/all: testing/CMakeFiles/ # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.tuple_algorithms.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.tuple_algorithms.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.tuple_algorithms.dir/rule @@ -9971,12 +10196,12 @@ testing/CMakeFiles/thrust.all.test.tuple_algorithms.dir/clean: testing/CMakeFiles/thrust.test.tuple_reduce.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.tuple_reduce.dir/build.make testing/CMakeFiles/thrust.test.tuple_reduce.dir/depend $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.tuple_reduce.dir/build.make testing/CMakeFiles/thrust.test.tuple_reduce.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=96 "Built target thrust.test.tuple_reduce" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.tuple_reduce" .PHONY : testing/CMakeFiles/thrust.test.tuple_reduce.dir/all # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.tuple_reduce.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.tuple_reduce.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.tuple_reduce.dir/rule @@ -10002,7 +10227,7 @@ testing/CMakeFiles/thrust.all.test.tuple_reduce.dir/all: testing/CMakeFiles/thru # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.tuple_reduce.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.tuple_reduce.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.tuple_reduce.dir/rule @@ -10028,7 +10253,7 @@ testing/CMakeFiles/thrust.test.tuple_scan.dir/all: testing/unittest/CMakeFiles/t # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.tuple_scan.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.tuple_scan.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.tuple_scan.dir/rule @@ -10054,7 +10279,7 @@ testing/CMakeFiles/thrust.all.test.tuple_scan.dir/all: testing/CMakeFiles/thrust # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.tuple_scan.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.tuple_scan.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.tuple_scan.dir/rule @@ -10080,7 +10305,7 @@ testing/CMakeFiles/thrust.test.tuple_sort.dir/all: testing/unittest/CMakeFiles/t # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.tuple_sort.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.tuple_sort.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.tuple_sort.dir/rule @@ -10106,7 +10331,7 @@ testing/CMakeFiles/thrust.all.test.tuple_sort.dir/all: testing/CMakeFiles/thrust # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.tuple_sort.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.tuple_sort.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.tuple_sort.dir/rule @@ -10132,7 +10357,7 @@ testing/CMakeFiles/thrust.test.tuple_transform.dir/all: testing/unittest/CMakeFi # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.tuple_transform.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.tuple_transform.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.tuple_transform.dir/rule @@ -10158,7 +10383,7 @@ testing/CMakeFiles/thrust.all.test.tuple_transform.dir/all: testing/CMakeFiles/t # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.tuple_transform.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.tuple_transform.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.tuple_transform.dir/rule @@ -10179,7 +10404,7 @@ testing/CMakeFiles/thrust.all.test.tuple_transform.dir/clean: testing/CMakeFiles/thrust.test.type_traits.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.type_traits.dir/build.make testing/CMakeFiles/thrust.test.type_traits.dir/depend $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.type_traits.dir/build.make testing/CMakeFiles/thrust.test.type_traits.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.type_traits" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=97 "Built target thrust.test.type_traits" .PHONY : testing/CMakeFiles/thrust.test.type_traits.dir/all # Build rule for subdir invocation for target. @@ -10236,7 +10461,7 @@ testing/CMakeFiles/thrust.test.uninitialized_copy.dir/all: testing/unittest/CMak # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.uninitialized_copy.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.uninitialized_copy.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.uninitialized_copy.dir/rule @@ -10262,7 +10487,7 @@ testing/CMakeFiles/thrust.all.test.uninitialized_copy.dir/all: testing/CMakeFile # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.uninitialized_copy.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.uninitialized_copy.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.uninitialized_copy.dir/rule @@ -10283,12 +10508,12 @@ testing/CMakeFiles/thrust.all.test.uninitialized_copy.dir/clean: testing/CMakeFiles/thrust.test.uninitialized_fill.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.uninitialized_fill.dir/build.make testing/CMakeFiles/thrust.test.uninitialized_fill.dir/depend $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.uninitialized_fill.dir/build.make testing/CMakeFiles/thrust.test.uninitialized_fill.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=97 "Built target thrust.test.uninitialized_fill" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.uninitialized_fill" .PHONY : testing/CMakeFiles/thrust.test.uninitialized_fill.dir/all # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.uninitialized_fill.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.uninitialized_fill.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.uninitialized_fill.dir/rule @@ -10314,7 +10539,7 @@ testing/CMakeFiles/thrust.all.test.uninitialized_fill.dir/all: testing/CMakeFile # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.uninitialized_fill.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.uninitialized_fill.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.uninitialized_fill.dir/rule @@ -10340,7 +10565,7 @@ testing/CMakeFiles/thrust.test.unique.dir/all: testing/unittest/CMakeFiles/thrus # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.unique.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.unique.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.unique.dir/rule @@ -10366,7 +10591,7 @@ testing/CMakeFiles/thrust.all.test.unique.dir/all: testing/CMakeFiles/thrust.tes # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.unique.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.unique.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.unique.dir/rule @@ -10392,7 +10617,7 @@ testing/CMakeFiles/thrust.test.unique_by_key.dir/all: testing/unittest/CMakeFile # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.unique_by_key.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.unique_by_key.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.unique_by_key.dir/rule @@ -10418,7 +10643,7 @@ testing/CMakeFiles/thrust.all.test.unique_by_key.dir/all: testing/CMakeFiles/thr # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.unique_by_key.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.unique_by_key.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.unique_by_key.dir/rule @@ -10444,7 +10669,7 @@ testing/CMakeFiles/thrust.test.unittest_static_assert.dir/all: testing/unittest/ # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.unittest_static_assert.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.unittest_static_assert.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.unittest_static_assert.dir/rule @@ -10470,7 +10695,7 @@ testing/CMakeFiles/thrust.all.test.unittest_static_assert.dir/all: testing/CMake # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.unittest_static_assert.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.unittest_static_assert.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.unittest_static_assert.dir/rule @@ -10491,7 +10716,7 @@ testing/CMakeFiles/thrust.all.test.unittest_static_assert.dir/clean: testing/CMakeFiles/thrust.test.unittest_tester.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.unittest_tester.dir/build.make testing/CMakeFiles/thrust.test.unittest_tester.dir/depend $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.unittest_tester.dir/build.make testing/CMakeFiles/thrust.test.unittest_tester.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.unittest_tester" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=98 "Built target thrust.test.unittest_tester" .PHONY : testing/CMakeFiles/thrust.test.unittest_tester.dir/all # Build rule for subdir invocation for target. @@ -10543,12 +10768,12 @@ testing/CMakeFiles/thrust.all.test.unittest_tester.dir/clean: testing/CMakeFiles/thrust.test.universal_memory.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.universal_memory.dir/build.make testing/CMakeFiles/thrust.test.universal_memory.dir/depend $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.universal_memory.dir/build.make testing/CMakeFiles/thrust.test.universal_memory.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=98 "Built target thrust.test.universal_memory" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.universal_memory" .PHONY : testing/CMakeFiles/thrust.test.universal_memory.dir/all # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.universal_memory.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.universal_memory.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.universal_memory.dir/rule @@ -10574,7 +10799,7 @@ testing/CMakeFiles/thrust.all.test.universal_memory.dir/all: testing/CMakeFiles/ # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.universal_memory.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.universal_memory.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.universal_memory.dir/rule @@ -10600,7 +10825,7 @@ testing/CMakeFiles/thrust.test.vector.dir/all: testing/unittest/CMakeFiles/thrus # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.vector.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.vector.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.vector.dir/rule @@ -10626,7 +10851,7 @@ testing/CMakeFiles/thrust.all.test.vector.dir/all: testing/CMakeFiles/thrust.tes # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.vector.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.vector.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.vector.dir/rule @@ -10652,7 +10877,7 @@ testing/CMakeFiles/thrust.test.vector_allocators.dir/all: testing/unittest/CMake # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.vector_allocators.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.vector_allocators.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.vector_allocators.dir/rule @@ -10678,7 +10903,7 @@ testing/CMakeFiles/thrust.all.test.vector_allocators.dir/all: testing/CMakeFiles # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.vector_allocators.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.vector_allocators.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.vector_allocators.dir/rule @@ -10704,7 +10929,7 @@ testing/CMakeFiles/thrust.test.vector_insert.dir/all: testing/unittest/CMakeFile # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.vector_insert.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.vector_insert.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.vector_insert.dir/rule @@ -10730,7 +10955,7 @@ testing/CMakeFiles/thrust.all.test.vector_insert.dir/all: testing/CMakeFiles/thr # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.vector_insert.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.vector_insert.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.vector_insert.dir/rule @@ -10756,7 +10981,7 @@ testing/CMakeFiles/thrust.test.vector_manipulation.dir/all: testing/unittest/CMa # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.vector_manipulation.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.vector_manipulation.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.vector_manipulation.dir/rule @@ -10782,7 +11007,7 @@ testing/CMakeFiles/thrust.all.test.vector_manipulation.dir/all: testing/CMakeFil # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.vector_manipulation.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.vector_manipulation.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.vector_manipulation.dir/rule @@ -10803,7 +11028,7 @@ testing/CMakeFiles/thrust.all.test.vector_manipulation.dir/clean: testing/CMakeFiles/thrust.test.zip_function.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.zip_function.dir/build.make testing/CMakeFiles/thrust.test.zip_function.dir/depend $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.zip_function.dir/build.make testing/CMakeFiles/thrust.test.zip_function.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.zip_function" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=99 "Built target thrust.test.zip_function" .PHONY : testing/CMakeFiles/thrust.test.zip_function.dir/all # Build rule for subdir invocation for target. @@ -10855,12 +11080,12 @@ testing/CMakeFiles/thrust.all.test.zip_function.dir/clean: testing/CMakeFiles/thrust.test.zip_iterator.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.zip_iterator.dir/build.make testing/CMakeFiles/thrust.test.zip_iterator.dir/depend $(MAKE) $(MAKESILENT) -f testing/CMakeFiles/thrust.test.zip_iterator.dir/build.make testing/CMakeFiles/thrust.test.zip_iterator.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=99 "Built target thrust.test.zip_iterator" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.zip_iterator" .PHONY : testing/CMakeFiles/thrust.test.zip_iterator.dir/all # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.zip_iterator.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.zip_iterator.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.zip_iterator.dir/rule @@ -10886,7 +11111,7 @@ testing/CMakeFiles/thrust.all.test.zip_iterator.dir/all: testing/CMakeFiles/thru # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.zip_iterator.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.zip_iterator.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.zip_iterator.dir/rule @@ -10912,7 +11137,7 @@ testing/CMakeFiles/thrust.test.zip_iterator_reduce.dir/all: testing/unittest/CMa # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.zip_iterator_reduce.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.zip_iterator_reduce.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.zip_iterator_reduce.dir/rule @@ -10938,7 +11163,7 @@ testing/CMakeFiles/thrust.all.test.zip_iterator_reduce.dir/all: testing/CMakeFil # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.zip_iterator_reduce.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.zip_iterator_reduce.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.zip_iterator_reduce.dir/rule @@ -10964,7 +11189,7 @@ testing/CMakeFiles/thrust.test.zip_iterator_reduce_by_key.dir/all: testing/unitt # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.zip_iterator_reduce_by_key.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.zip_iterator_reduce_by_key.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.zip_iterator_reduce_by_key.dir/rule @@ -10990,7 +11215,7 @@ testing/CMakeFiles/thrust.all.test.zip_iterator_reduce_by_key.dir/all: testing/C # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.zip_iterator_reduce_by_key.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.zip_iterator_reduce_by_key.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.zip_iterator_reduce_by_key.dir/rule @@ -11016,7 +11241,7 @@ testing/CMakeFiles/thrust.test.zip_iterator_scan.dir/all: testing/unittest/CMake # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.zip_iterator_scan.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.zip_iterator_scan.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.zip_iterator_scan.dir/rule @@ -11042,7 +11267,7 @@ testing/CMakeFiles/thrust.all.test.zip_iterator_scan.dir/all: testing/CMakeFiles # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.zip_iterator_scan.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.zip_iterator_scan.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.zip_iterator_scan.dir/rule @@ -11068,7 +11293,7 @@ testing/CMakeFiles/thrust.test.zip_iterator_sort.dir/all: testing/unittest/CMake # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.zip_iterator_sort.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.zip_iterator_sort.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.zip_iterator_sort.dir/rule @@ -11094,7 +11319,7 @@ testing/CMakeFiles/thrust.all.test.zip_iterator_sort.dir/all: testing/CMakeFiles # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.zip_iterator_sort.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.zip_iterator_sort.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.zip_iterator_sort.dir/rule @@ -11120,7 +11345,7 @@ testing/CMakeFiles/thrust.test.zip_iterator_sort_by_key.dir/all: testing/unittes # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.test.zip_iterator_sort_by_key.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.test.zip_iterator_sort_by_key.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.test.zip_iterator_sort_by_key.dir/rule @@ -11146,7 +11371,7 @@ testing/CMakeFiles/thrust.all.test.zip_iterator_sort_by_key.dir/all: testing/CMa # Build rule for subdir invocation for target. testing/CMakeFiles/thrust.all.test.zip_iterator_sort_by_key.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/CMakeFiles/thrust.all.test.zip_iterator_sort_by_key.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/CMakeFiles/thrust.all.test.zip_iterator_sort_by_key.dir/rule @@ -11167,12 +11392,12 @@ testing/CMakeFiles/thrust.all.test.zip_iterator_sort_by_key.dir/clean: testing/unittest/CMakeFiles/thrust.test.framework.dir/all: $(MAKE) $(MAKESILENT) -f testing/unittest/CMakeFiles/thrust.test.framework.dir/build.make testing/unittest/CMakeFiles/thrust.test.framework.dir/depend $(MAKE) $(MAKESILENT) -f testing/unittest/CMakeFiles/thrust.test.framework.dir/build.make testing/unittest/CMakeFiles/thrust.test.framework.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=77 "Built target thrust.test.framework" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.framework" .PHONY : testing/unittest/CMakeFiles/thrust.test.framework.dir/all # Build rule for subdir invocation for target. testing/unittest/CMakeFiles/thrust.test.framework.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/unittest/CMakeFiles/thrust.test.framework.dir/rule @@ -11198,7 +11423,7 @@ testing/async/CMakeFiles/thrust.all.test.async.exclusive_scan.all.dir/all: testi # Build rule for subdir invocation for target. testing/async/CMakeFiles/thrust.all.test.async.exclusive_scan.all.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/async/CMakeFiles/thrust.all.test.async.exclusive_scan.all.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/async/CMakeFiles/thrust.all.test.async.exclusive_scan.all.dir/rule @@ -11231,7 +11456,7 @@ testing/async/CMakeFiles/thrust.test.async.exclusive_scan.all.dir/all: testing/a # Build rule for subdir invocation for target. testing/async/CMakeFiles/thrust.test.async.exclusive_scan.all.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/async/CMakeFiles/thrust.test.async.exclusive_scan.all.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/async/CMakeFiles/thrust.test.async.exclusive_scan.all.dir/rule @@ -11257,7 +11482,7 @@ testing/async/CMakeFiles/thrust.test.async.exclusive_scan.counting_iterator.dir/ # Build rule for subdir invocation for target. testing/async/CMakeFiles/thrust.test.async.exclusive_scan.counting_iterator.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/async/CMakeFiles/thrust.test.async.exclusive_scan.counting_iterator.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/async/CMakeFiles/thrust.test.async.exclusive_scan.counting_iterator.dir/rule @@ -11283,7 +11508,7 @@ testing/async/CMakeFiles/thrust.all.test.async.exclusive_scan.counting_iterator. # Build rule for subdir invocation for target. testing/async/CMakeFiles/thrust.all.test.async.exclusive_scan.counting_iterator.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/async/CMakeFiles/thrust.all.test.async.exclusive_scan.counting_iterator.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/async/CMakeFiles/thrust.all.test.async.exclusive_scan.counting_iterator.dir/rule @@ -11309,7 +11534,7 @@ testing/async/CMakeFiles/thrust.test.async.exclusive_scan.discard_output.dir/all # Build rule for subdir invocation for target. testing/async/CMakeFiles/thrust.test.async.exclusive_scan.discard_output.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/async/CMakeFiles/thrust.test.async.exclusive_scan.discard_output.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/async/CMakeFiles/thrust.test.async.exclusive_scan.discard_output.dir/rule @@ -11335,7 +11560,7 @@ testing/async/CMakeFiles/thrust.all.test.async.exclusive_scan.discard_output.dir # Build rule for subdir invocation for target. testing/async/CMakeFiles/thrust.all.test.async.exclusive_scan.discard_output.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/async/CMakeFiles/thrust.all.test.async.exclusive_scan.discard_output.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/async/CMakeFiles/thrust.all.test.async.exclusive_scan.discard_output.dir/rule @@ -11361,7 +11586,7 @@ testing/async/CMakeFiles/thrust.test.async.exclusive_scan.large_indices.dir/all: # Build rule for subdir invocation for target. testing/async/CMakeFiles/thrust.test.async.exclusive_scan.large_indices.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/async/CMakeFiles/thrust.test.async.exclusive_scan.large_indices.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/async/CMakeFiles/thrust.test.async.exclusive_scan.large_indices.dir/rule @@ -11387,7 +11612,7 @@ testing/async/CMakeFiles/thrust.all.test.async.exclusive_scan.large_indices.dir/ # Build rule for subdir invocation for target. testing/async/CMakeFiles/thrust.all.test.async.exclusive_scan.large_indices.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/async/CMakeFiles/thrust.all.test.async.exclusive_scan.large_indices.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/async/CMakeFiles/thrust.all.test.async.exclusive_scan.large_indices.dir/rule @@ -11408,12 +11633,12 @@ testing/async/CMakeFiles/thrust.all.test.async.exclusive_scan.large_indices.dir/ testing/async/CMakeFiles/thrust.test.async.exclusive_scan.large_types.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/async/CMakeFiles/thrust.test.async.exclusive_scan.large_types.dir/build.make testing/async/CMakeFiles/thrust.test.async.exclusive_scan.large_types.dir/depend $(MAKE) $(MAKESILENT) -f testing/async/CMakeFiles/thrust.test.async.exclusive_scan.large_types.dir/build.make testing/async/CMakeFiles/thrust.test.async.exclusive_scan.large_types.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=58 "Built target thrust.test.async.exclusive_scan.large_types" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=62 "Built target thrust.test.async.exclusive_scan.large_types" .PHONY : testing/async/CMakeFiles/thrust.test.async.exclusive_scan.large_types.dir/all # Build rule for subdir invocation for target. testing/async/CMakeFiles/thrust.test.async.exclusive_scan.large_types.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/async/CMakeFiles/thrust.test.async.exclusive_scan.large_types.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/async/CMakeFiles/thrust.test.async.exclusive_scan.large_types.dir/rule @@ -11439,7 +11664,7 @@ testing/async/CMakeFiles/thrust.all.test.async.exclusive_scan.large_types.dir/al # Build rule for subdir invocation for target. testing/async/CMakeFiles/thrust.all.test.async.exclusive_scan.large_types.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/async/CMakeFiles/thrust.all.test.async.exclusive_scan.large_types.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/async/CMakeFiles/thrust.all.test.async.exclusive_scan.large_types.dir/rule @@ -11465,7 +11690,7 @@ testing/async/CMakeFiles/thrust.test.async.exclusive_scan.mixed_types.dir/all: t # Build rule for subdir invocation for target. testing/async/CMakeFiles/thrust.test.async.exclusive_scan.mixed_types.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/async/CMakeFiles/thrust.test.async.exclusive_scan.mixed_types.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/async/CMakeFiles/thrust.test.async.exclusive_scan.mixed_types.dir/rule @@ -11491,7 +11716,7 @@ testing/async/CMakeFiles/thrust.all.test.async.exclusive_scan.mixed_types.dir/al # Build rule for subdir invocation for target. testing/async/CMakeFiles/thrust.all.test.async.exclusive_scan.mixed_types.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/async/CMakeFiles/thrust.all.test.async.exclusive_scan.mixed_types.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/async/CMakeFiles/thrust.all.test.async.exclusive_scan.mixed_types.dir/rule @@ -11517,7 +11742,7 @@ testing/async/CMakeFiles/thrust.test.async.exclusive_scan.simple.dir/all: testin # Build rule for subdir invocation for target. testing/async/CMakeFiles/thrust.test.async.exclusive_scan.simple.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/async/CMakeFiles/thrust.test.async.exclusive_scan.simple.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/async/CMakeFiles/thrust.test.async.exclusive_scan.simple.dir/rule @@ -11543,7 +11768,7 @@ testing/async/CMakeFiles/thrust.all.test.async.exclusive_scan.simple.dir/all: te # Build rule for subdir invocation for target. testing/async/CMakeFiles/thrust.all.test.async.exclusive_scan.simple.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/async/CMakeFiles/thrust.all.test.async.exclusive_scan.simple.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/async/CMakeFiles/thrust.all.test.async.exclusive_scan.simple.dir/rule @@ -11569,7 +11794,7 @@ testing/async/CMakeFiles/thrust.test.async.exclusive_scan.stateful_operator.dir/ # Build rule for subdir invocation for target. testing/async/CMakeFiles/thrust.test.async.exclusive_scan.stateful_operator.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/async/CMakeFiles/thrust.test.async.exclusive_scan.stateful_operator.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/async/CMakeFiles/thrust.test.async.exclusive_scan.stateful_operator.dir/rule @@ -11595,7 +11820,7 @@ testing/async/CMakeFiles/thrust.all.test.async.exclusive_scan.stateful_operator. # Build rule for subdir invocation for target. testing/async/CMakeFiles/thrust.all.test.async.exclusive_scan.stateful_operator.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/async/CMakeFiles/thrust.all.test.async.exclusive_scan.stateful_operator.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/async/CMakeFiles/thrust.all.test.async.exclusive_scan.stateful_operator.dir/rule @@ -11621,7 +11846,7 @@ testing/async/CMakeFiles/thrust.test.async.exclusive_scan.using_vs_adl.dir/all: # Build rule for subdir invocation for target. testing/async/CMakeFiles/thrust.test.async.exclusive_scan.using_vs_adl.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/async/CMakeFiles/thrust.test.async.exclusive_scan.using_vs_adl.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/async/CMakeFiles/thrust.test.async.exclusive_scan.using_vs_adl.dir/rule @@ -11647,7 +11872,7 @@ testing/async/CMakeFiles/thrust.all.test.async.exclusive_scan.using_vs_adl.dir/a # Build rule for subdir invocation for target. testing/async/CMakeFiles/thrust.all.test.async.exclusive_scan.using_vs_adl.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/async/CMakeFiles/thrust.all.test.async.exclusive_scan.using_vs_adl.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/async/CMakeFiles/thrust.all.test.async.exclusive_scan.using_vs_adl.dir/rule @@ -11673,7 +11898,7 @@ testing/async/CMakeFiles/thrust.all.test.async.inclusive_scan.all.dir/all: testi # Build rule for subdir invocation for target. testing/async/CMakeFiles/thrust.all.test.async.inclusive_scan.all.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 3 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/async/CMakeFiles/thrust.all.test.async.inclusive_scan.all.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/async/CMakeFiles/thrust.all.test.async.inclusive_scan.all.dir/rule @@ -11706,7 +11931,7 @@ testing/async/CMakeFiles/thrust.test.async.inclusive_scan.all.dir/all: testing/a # Build rule for subdir invocation for target. testing/async/CMakeFiles/thrust.test.async.inclusive_scan.all.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 3 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/async/CMakeFiles/thrust.test.async.inclusive_scan.all.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/async/CMakeFiles/thrust.test.async.inclusive_scan.all.dir/rule @@ -11732,7 +11957,7 @@ testing/async/CMakeFiles/thrust.test.async.inclusive_scan.counting_iterator.dir/ # Build rule for subdir invocation for target. testing/async/CMakeFiles/thrust.test.async.inclusive_scan.counting_iterator.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/async/CMakeFiles/thrust.test.async.inclusive_scan.counting_iterator.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/async/CMakeFiles/thrust.test.async.inclusive_scan.counting_iterator.dir/rule @@ -11758,7 +11983,7 @@ testing/async/CMakeFiles/thrust.all.test.async.inclusive_scan.counting_iterator. # Build rule for subdir invocation for target. testing/async/CMakeFiles/thrust.all.test.async.inclusive_scan.counting_iterator.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/async/CMakeFiles/thrust.all.test.async.inclusive_scan.counting_iterator.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/async/CMakeFiles/thrust.all.test.async.inclusive_scan.counting_iterator.dir/rule @@ -11779,12 +12004,12 @@ testing/async/CMakeFiles/thrust.all.test.async.inclusive_scan.counting_iterator. testing/async/CMakeFiles/thrust.test.async.inclusive_scan.discard_output.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/async/CMakeFiles/thrust.test.async.inclusive_scan.discard_output.dir/build.make testing/async/CMakeFiles/thrust.test.async.inclusive_scan.discard_output.dir/depend $(MAKE) $(MAKESILENT) -f testing/async/CMakeFiles/thrust.test.async.inclusive_scan.discard_output.dir/build.make testing/async/CMakeFiles/thrust.test.async.inclusive_scan.discard_output.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=59 "Built target thrust.test.async.inclusive_scan.discard_output" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=63 "Built target thrust.test.async.inclusive_scan.discard_output" .PHONY : testing/async/CMakeFiles/thrust.test.async.inclusive_scan.discard_output.dir/all # Build rule for subdir invocation for target. testing/async/CMakeFiles/thrust.test.async.inclusive_scan.discard_output.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/async/CMakeFiles/thrust.test.async.inclusive_scan.discard_output.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/async/CMakeFiles/thrust.test.async.inclusive_scan.discard_output.dir/rule @@ -11810,7 +12035,7 @@ testing/async/CMakeFiles/thrust.all.test.async.inclusive_scan.discard_output.dir # Build rule for subdir invocation for target. testing/async/CMakeFiles/thrust.all.test.async.inclusive_scan.discard_output.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/async/CMakeFiles/thrust.all.test.async.inclusive_scan.discard_output.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/async/CMakeFiles/thrust.all.test.async.inclusive_scan.discard_output.dir/rule @@ -11836,7 +12061,7 @@ testing/async/CMakeFiles/thrust.test.async.inclusive_scan.large_indices.dir/all: # Build rule for subdir invocation for target. testing/async/CMakeFiles/thrust.test.async.inclusive_scan.large_indices.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/async/CMakeFiles/thrust.test.async.inclusive_scan.large_indices.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/async/CMakeFiles/thrust.test.async.inclusive_scan.large_indices.dir/rule @@ -11862,7 +12087,7 @@ testing/async/CMakeFiles/thrust.all.test.async.inclusive_scan.large_indices.dir/ # Build rule for subdir invocation for target. testing/async/CMakeFiles/thrust.all.test.async.inclusive_scan.large_indices.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/async/CMakeFiles/thrust.all.test.async.inclusive_scan.large_indices.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/async/CMakeFiles/thrust.all.test.async.inclusive_scan.large_indices.dir/rule @@ -11888,7 +12113,7 @@ testing/async/CMakeFiles/thrust.test.async.inclusive_scan.large_types.dir/all: t # Build rule for subdir invocation for target. testing/async/CMakeFiles/thrust.test.async.inclusive_scan.large_types.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/async/CMakeFiles/thrust.test.async.inclusive_scan.large_types.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/async/CMakeFiles/thrust.test.async.inclusive_scan.large_types.dir/rule @@ -11914,7 +12139,7 @@ testing/async/CMakeFiles/thrust.all.test.async.inclusive_scan.large_types.dir/al # Build rule for subdir invocation for target. testing/async/CMakeFiles/thrust.all.test.async.inclusive_scan.large_types.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/async/CMakeFiles/thrust.all.test.async.inclusive_scan.large_types.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/async/CMakeFiles/thrust.all.test.async.inclusive_scan.large_types.dir/rule @@ -11940,7 +12165,7 @@ testing/async/CMakeFiles/thrust.test.async.inclusive_scan.mixed_types.dir/all: t # Build rule for subdir invocation for target. testing/async/CMakeFiles/thrust.test.async.inclusive_scan.mixed_types.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/async/CMakeFiles/thrust.test.async.inclusive_scan.mixed_types.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/async/CMakeFiles/thrust.test.async.inclusive_scan.mixed_types.dir/rule @@ -11966,7 +12191,7 @@ testing/async/CMakeFiles/thrust.all.test.async.inclusive_scan.mixed_types.dir/al # Build rule for subdir invocation for target. testing/async/CMakeFiles/thrust.all.test.async.inclusive_scan.mixed_types.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/async/CMakeFiles/thrust.all.test.async.inclusive_scan.mixed_types.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/async/CMakeFiles/thrust.all.test.async.inclusive_scan.mixed_types.dir/rule @@ -11992,7 +12217,7 @@ testing/async/CMakeFiles/thrust.test.async.inclusive_scan.simple.dir/all: testin # Build rule for subdir invocation for target. testing/async/CMakeFiles/thrust.test.async.inclusive_scan.simple.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/async/CMakeFiles/thrust.test.async.inclusive_scan.simple.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/async/CMakeFiles/thrust.test.async.inclusive_scan.simple.dir/rule @@ -12018,7 +12243,7 @@ testing/async/CMakeFiles/thrust.all.test.async.inclusive_scan.simple.dir/all: te # Build rule for subdir invocation for target. testing/async/CMakeFiles/thrust.all.test.async.inclusive_scan.simple.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/async/CMakeFiles/thrust.all.test.async.inclusive_scan.simple.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/async/CMakeFiles/thrust.all.test.async.inclusive_scan.simple.dir/rule @@ -12039,12 +12264,12 @@ testing/async/CMakeFiles/thrust.all.test.async.inclusive_scan.simple.dir/clean: testing/async/CMakeFiles/thrust.test.async.inclusive_scan.stateful_operator.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/async/CMakeFiles/thrust.test.async.inclusive_scan.stateful_operator.dir/build.make testing/async/CMakeFiles/thrust.test.async.inclusive_scan.stateful_operator.dir/depend $(MAKE) $(MAKESILENT) -f testing/async/CMakeFiles/thrust.test.async.inclusive_scan.stateful_operator.dir/build.make testing/async/CMakeFiles/thrust.test.async.inclusive_scan.stateful_operator.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=60 "Built target thrust.test.async.inclusive_scan.stateful_operator" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.async.inclusive_scan.stateful_operator" .PHONY : testing/async/CMakeFiles/thrust.test.async.inclusive_scan.stateful_operator.dir/all # Build rule for subdir invocation for target. testing/async/CMakeFiles/thrust.test.async.inclusive_scan.stateful_operator.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/async/CMakeFiles/thrust.test.async.inclusive_scan.stateful_operator.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/async/CMakeFiles/thrust.test.async.inclusive_scan.stateful_operator.dir/rule @@ -12070,7 +12295,7 @@ testing/async/CMakeFiles/thrust.all.test.async.inclusive_scan.stateful_operator. # Build rule for subdir invocation for target. testing/async/CMakeFiles/thrust.all.test.async.inclusive_scan.stateful_operator.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/async/CMakeFiles/thrust.all.test.async.inclusive_scan.stateful_operator.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/async/CMakeFiles/thrust.all.test.async.inclusive_scan.stateful_operator.dir/rule @@ -12096,7 +12321,7 @@ testing/async/CMakeFiles/thrust.test.async.inclusive_scan.using_vs_adl.dir/all: # Build rule for subdir invocation for target. testing/async/CMakeFiles/thrust.test.async.inclusive_scan.using_vs_adl.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/async/CMakeFiles/thrust.test.async.inclusive_scan.using_vs_adl.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/async/CMakeFiles/thrust.test.async.inclusive_scan.using_vs_adl.dir/rule @@ -12122,7 +12347,7 @@ testing/async/CMakeFiles/thrust.all.test.async.inclusive_scan.using_vs_adl.dir/a # Build rule for subdir invocation for target. testing/async/CMakeFiles/thrust.all.test.async.inclusive_scan.using_vs_adl.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/async/CMakeFiles/thrust.all.test.async.inclusive_scan.using_vs_adl.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/async/CMakeFiles/thrust.all.test.async.inclusive_scan.using_vs_adl.dir/rule @@ -12148,7 +12373,7 @@ testing/cuda/CMakeFiles/thrust.test.cuda.adjacent_difference.cdp_0.dir/all: test # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.test.cuda.adjacent_difference.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.adjacent_difference.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.adjacent_difference.cdp_0.dir/rule @@ -12174,7 +12399,7 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.adjacent_difference.cdp_0.dir/all: # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.all.test.cuda.adjacent_difference.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.adjacent_difference.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.adjacent_difference.cdp_0.dir/rule @@ -12195,12 +12420,12 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.adjacent_difference.cdp_0.dir/clean testing/cuda/CMakeFiles/thrust.test.cuda.binary_search.cdp_0.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.binary_search.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.binary_search.cdp_0.dir/depend $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.binary_search.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.binary_search.cdp_0.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=64 "Built target thrust.test.cuda.binary_search.cdp_0" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.cuda.binary_search.cdp_0" .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.binary_search.cdp_0.dir/all # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.test.cuda.binary_search.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.binary_search.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.binary_search.cdp_0.dir/rule @@ -12226,7 +12451,7 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.binary_search.cdp_0.dir/all: testin # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.all.test.cuda.binary_search.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.binary_search.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.binary_search.cdp_0.dir/rule @@ -12252,7 +12477,7 @@ testing/cuda/CMakeFiles/thrust.test.cuda.complex.cdp_0.dir/all: testing/unittest # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.test.cuda.complex.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.complex.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.complex.cdp_0.dir/rule @@ -12278,7 +12503,7 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.complex.cdp_0.dir/all: testing/cuda # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.all.test.cuda.complex.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.complex.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.complex.cdp_0.dir/rule @@ -12304,7 +12529,7 @@ testing/cuda/CMakeFiles/thrust.test.cuda.copy.cdp_0.dir/all: testing/unittest/CM # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.test.cuda.copy.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.copy.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.copy.cdp_0.dir/rule @@ -12330,7 +12555,7 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.copy.cdp_0.dir/all: testing/cuda/CM # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.all.test.cuda.copy.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.copy.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.copy.cdp_0.dir/rule @@ -12356,7 +12581,7 @@ testing/cuda/CMakeFiles/thrust.test.cuda.copy_if.cdp_0.dir/all: testing/unittest # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.test.cuda.copy_if.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.copy_if.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.copy_if.cdp_0.dir/rule @@ -12382,7 +12607,7 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.copy_if.cdp_0.dir/all: testing/cuda # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.all.test.cuda.copy_if.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.copy_if.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.copy_if.cdp_0.dir/rule @@ -12403,7 +12628,7 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.copy_if.cdp_0.dir/clean: testing/cuda/CMakeFiles/thrust.test.cuda.count.cdp_0.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.count.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.count.cdp_0.dir/depend $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.count.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.count.cdp_0.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.cuda.count.cdp_0" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=68 "Built target thrust.test.cuda.count.cdp_0" .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.count.cdp_0.dir/all # Build rule for subdir invocation for target. @@ -12460,7 +12685,7 @@ testing/cuda/CMakeFiles/thrust.test.cuda.cudart.cdp_0.dir/all: testing/unittest/ # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.test.cuda.cudart.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.cudart.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.cudart.cdp_0.dir/rule @@ -12486,7 +12711,7 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.cudart.cdp_0.dir/all: testing/cuda/ # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.all.test.cuda.cudart.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.cudart.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.cudart.cdp_0.dir/rule @@ -12507,12 +12732,12 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.cudart.cdp_0.dir/clean: testing/cuda/CMakeFiles/thrust.test.cuda.device_side_universal_vector.cdp_0.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.device_side_universal_vector.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.device_side_universal_vector.cdp_0.dir/depend $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.device_side_universal_vector.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.device_side_universal_vector.cdp_0.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=65 "Built target thrust.test.cuda.device_side_universal_vector.cdp_0" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.cuda.device_side_universal_vector.cdp_0" .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.device_side_universal_vector.cdp_0.dir/all # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.test.cuda.device_side_universal_vector.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.device_side_universal_vector.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.device_side_universal_vector.cdp_0.dir/rule @@ -12538,7 +12763,7 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.device_side_universal_vector.cdp_0. # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.all.test.cuda.device_side_universal_vector.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.device_side_universal_vector.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.device_side_universal_vector.cdp_0.dir/rule @@ -12564,7 +12789,7 @@ testing/cuda/CMakeFiles/thrust.test.cuda.equal.cdp_0.dir/all: testing/unittest/C # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.test.cuda.equal.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.equal.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.equal.cdp_0.dir/rule @@ -12590,7 +12815,7 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.equal.cdp_0.dir/all: testing/cuda/C # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.all.test.cuda.equal.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.equal.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.equal.cdp_0.dir/rule @@ -12616,7 +12841,7 @@ testing/cuda/CMakeFiles/thrust.test.cuda.fill.cdp_0.dir/all: testing/unittest/CM # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.test.cuda.fill.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.fill.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.fill.cdp_0.dir/rule @@ -12642,7 +12867,7 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.fill.cdp_0.dir/all: testing/cuda/CM # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.all.test.cuda.fill.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.fill.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.fill.cdp_0.dir/rule @@ -12668,7 +12893,7 @@ testing/cuda/CMakeFiles/thrust.test.cuda.find.cdp_0.dir/all: testing/unittest/CM # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.test.cuda.find.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.find.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.find.cdp_0.dir/rule @@ -12694,7 +12919,7 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.find.cdp_0.dir/all: testing/cuda/CM # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.all.test.cuda.find.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.find.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.find.cdp_0.dir/rule @@ -12715,7 +12940,7 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.find.cdp_0.dir/clean: testing/cuda/CMakeFiles/thrust.test.cuda.for_each.cdp_0.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.for_each.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.for_each.cdp_0.dir/depend $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.for_each.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.for_each.cdp_0.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.cuda.for_each.cdp_0" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=69 "Built target thrust.test.cuda.for_each.cdp_0" .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.for_each.cdp_0.dir/all # Build rule for subdir invocation for target. @@ -12772,7 +12997,7 @@ testing/cuda/CMakeFiles/thrust.test.cuda.gather.cdp_0.dir/all: testing/unittest/ # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.test.cuda.gather.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.gather.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.gather.cdp_0.dir/rule @@ -12798,7 +13023,7 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.gather.cdp_0.dir/all: testing/cuda/ # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.all.test.cuda.gather.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.gather.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.gather.cdp_0.dir/rule @@ -12819,12 +13044,12 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.gather.cdp_0.dir/clean: testing/cuda/CMakeFiles/thrust.test.cuda.generate.cdp_0.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.generate.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.generate.cdp_0.dir/depend $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.generate.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.generate.cdp_0.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=66 "Built target thrust.test.cuda.generate.cdp_0" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.cuda.generate.cdp_0" .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.generate.cdp_0.dir/all # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.test.cuda.generate.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.generate.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.generate.cdp_0.dir/rule @@ -12850,7 +13075,7 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.generate.cdp_0.dir/all: testing/cud # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.all.test.cuda.generate.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.generate.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.generate.cdp_0.dir/rule @@ -12876,7 +13101,7 @@ testing/cuda/CMakeFiles/thrust.test.cuda.inner_product.cdp_0.dir/all: testing/un # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.test.cuda.inner_product.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.inner_product.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.inner_product.cdp_0.dir/rule @@ -12902,7 +13127,7 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.inner_product.cdp_0.dir/all: testin # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.all.test.cuda.inner_product.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.inner_product.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.inner_product.cdp_0.dir/rule @@ -12928,7 +13153,7 @@ testing/cuda/CMakeFiles/thrust.test.cuda.is_partitioned.cdp_0.dir/all: testing/u # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.test.cuda.is_partitioned.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.is_partitioned.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.is_partitioned.cdp_0.dir/rule @@ -12954,7 +13179,7 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.is_partitioned.cdp_0.dir/all: testi # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.all.test.cuda.is_partitioned.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.is_partitioned.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.is_partitioned.cdp_0.dir/rule @@ -12980,7 +13205,7 @@ testing/cuda/CMakeFiles/thrust.test.cuda.is_sorted.cdp_0.dir/all: testing/unitte # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.test.cuda.is_sorted.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.is_sorted.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.is_sorted.cdp_0.dir/rule @@ -13006,7 +13231,7 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.is_sorted.cdp_0.dir/all: testing/cu # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.all.test.cuda.is_sorted.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.is_sorted.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.is_sorted.cdp_0.dir/rule @@ -13027,7 +13252,7 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.is_sorted.cdp_0.dir/clean: testing/cuda/CMakeFiles/thrust.test.cuda.is_sorted_until.cdp_0.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.is_sorted_until.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.is_sorted_until.cdp_0.dir/depend $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.is_sorted_until.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.is_sorted_until.cdp_0.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.cuda.is_sorted_until.cdp_0" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=70 "Built target thrust.test.cuda.is_sorted_until.cdp_0" .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.is_sorted_until.cdp_0.dir/all # Build rule for subdir invocation for target. @@ -13079,12 +13304,12 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.is_sorted_until.cdp_0.dir/clean: testing/cuda/CMakeFiles/thrust.test.cuda.logical.cdp_0.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.logical.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.logical.cdp_0.dir/depend $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.logical.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.logical.cdp_0.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=67 "Built target thrust.test.cuda.logical.cdp_0" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.cuda.logical.cdp_0" .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.logical.cdp_0.dir/all # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.test.cuda.logical.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.logical.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.logical.cdp_0.dir/rule @@ -13110,7 +13335,7 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.logical.cdp_0.dir/all: testing/cuda # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.all.test.cuda.logical.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.logical.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.logical.cdp_0.dir/rule @@ -13136,7 +13361,7 @@ testing/cuda/CMakeFiles/thrust.test.cuda.max_element.cdp_0.dir/all: testing/unit # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.test.cuda.max_element.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.max_element.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.max_element.cdp_0.dir/rule @@ -13162,7 +13387,7 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.max_element.cdp_0.dir/all: testing/ # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.all.test.cuda.max_element.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.max_element.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.max_element.cdp_0.dir/rule @@ -13188,7 +13413,7 @@ testing/cuda/CMakeFiles/thrust.test.cuda.memory.cdp_0.dir/all: testing/unittest/ # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.test.cuda.memory.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.memory.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.memory.cdp_0.dir/rule @@ -13214,7 +13439,7 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.memory.cdp_0.dir/all: testing/cuda/ # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.all.test.cuda.memory.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.memory.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.memory.cdp_0.dir/rule @@ -13240,7 +13465,7 @@ testing/cuda/CMakeFiles/thrust.test.cuda.merge.cdp_0.dir/all: testing/unittest/C # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.test.cuda.merge.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.merge.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.merge.cdp_0.dir/rule @@ -13266,7 +13491,7 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.merge.cdp_0.dir/all: testing/cuda/C # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.all.test.cuda.merge.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.merge.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.merge.cdp_0.dir/rule @@ -13292,7 +13517,7 @@ testing/cuda/CMakeFiles/thrust.test.cuda.merge_by_key.cdp_0.dir/all: testing/uni # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.test.cuda.merge_by_key.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.merge_by_key.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.merge_by_key.cdp_0.dir/rule @@ -13318,7 +13543,7 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.merge_by_key.cdp_0.dir/all: testing # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.all.test.cuda.merge_by_key.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.merge_by_key.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.merge_by_key.cdp_0.dir/rule @@ -13344,7 +13569,7 @@ testing/cuda/CMakeFiles/thrust.test.cuda.merge_sort.cdp_0.dir/all: testing/unitt # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.test.cuda.merge_sort.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.merge_sort.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.merge_sort.cdp_0.dir/rule @@ -13370,7 +13595,7 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.merge_sort.cdp_0.dir/all: testing/c # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.all.test.cuda.merge_sort.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.merge_sort.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.merge_sort.cdp_0.dir/rule @@ -13391,12 +13616,12 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.merge_sort.cdp_0.dir/clean: testing/cuda/CMakeFiles/thrust.test.cuda.min_element.cdp_0.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.min_element.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.min_element.cdp_0.dir/depend $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.min_element.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.min_element.cdp_0.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=68 "Built target thrust.test.cuda.min_element.cdp_0" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=71 "Built target thrust.test.cuda.min_element.cdp_0" .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.min_element.cdp_0.dir/all # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.test.cuda.min_element.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.min_element.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.min_element.cdp_0.dir/rule @@ -13422,7 +13647,7 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.min_element.cdp_0.dir/all: testing/ # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.all.test.cuda.min_element.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.min_element.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.min_element.cdp_0.dir/rule @@ -13448,7 +13673,7 @@ testing/cuda/CMakeFiles/thrust.test.cuda.minmax_element.cdp_0.dir/all: testing/u # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.test.cuda.minmax_element.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.minmax_element.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.minmax_element.cdp_0.dir/rule @@ -13474,7 +13699,7 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.minmax_element.cdp_0.dir/all: testi # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.all.test.cuda.minmax_element.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.minmax_element.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.minmax_element.cdp_0.dir/rule @@ -13500,7 +13725,7 @@ testing/cuda/CMakeFiles/thrust.test.cuda.mismatch.cdp_0.dir/all: testing/unittes # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.test.cuda.mismatch.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.mismatch.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.mismatch.cdp_0.dir/rule @@ -13526,7 +13751,7 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.mismatch.cdp_0.dir/all: testing/cud # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.all.test.cuda.mismatch.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.mismatch.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.mismatch.cdp_0.dir/rule @@ -13552,7 +13777,7 @@ testing/cuda/CMakeFiles/thrust.test.cuda.pair_sort.cdp_0.dir/all: testing/unitte # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.test.cuda.pair_sort.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.pair_sort.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.pair_sort.cdp_0.dir/rule @@ -13578,7 +13803,7 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.pair_sort.cdp_0.dir/all: testing/cu # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.all.test.cuda.pair_sort.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.pair_sort.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.pair_sort.cdp_0.dir/rule @@ -13604,7 +13829,7 @@ testing/cuda/CMakeFiles/thrust.test.cuda.pair_sort_by_key.cdp_0.dir/all: testing # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.test.cuda.pair_sort_by_key.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.pair_sort_by_key.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.pair_sort_by_key.cdp_0.dir/rule @@ -13630,7 +13855,7 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.pair_sort_by_key.cdp_0.dir/all: tes # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.all.test.cuda.pair_sort_by_key.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.pair_sort_by_key.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.pair_sort_by_key.cdp_0.dir/rule @@ -13651,12 +13876,12 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.pair_sort_by_key.cdp_0.dir/clean: testing/cuda/CMakeFiles/thrust.test.cuda.partition.cdp_0.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.partition.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.partition.cdp_0.dir/depend $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.partition.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.partition.cdp_0.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=69 "Built target thrust.test.cuda.partition.cdp_0" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.cuda.partition.cdp_0" .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.partition.cdp_0.dir/all # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.test.cuda.partition.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.partition.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.partition.cdp_0.dir/rule @@ -13682,7 +13907,7 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.partition.cdp_0.dir/all: testing/cu # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.all.test.cuda.partition.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.partition.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.partition.cdp_0.dir/rule @@ -13703,7 +13928,7 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.partition.cdp_0.dir/clean: testing/cuda/CMakeFiles/thrust.test.cuda.partition_point.cdp_0.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.partition_point.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.partition_point.cdp_0.dir/depend $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.partition_point.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.partition_point.cdp_0.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.cuda.partition_point.cdp_0" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=72 "Built target thrust.test.cuda.partition_point.cdp_0" .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.partition_point.cdp_0.dir/all # Build rule for subdir invocation for target. @@ -13760,7 +13985,7 @@ testing/cuda/CMakeFiles/thrust.test.cuda.reduce.cdp_0.dir/all: testing/unittest/ # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.test.cuda.reduce.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.reduce.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.reduce.cdp_0.dir/rule @@ -13786,7 +14011,7 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.reduce.cdp_0.dir/all: testing/cuda/ # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.all.test.cuda.reduce.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.reduce.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.reduce.cdp_0.dir/rule @@ -13812,7 +14037,7 @@ testing/cuda/CMakeFiles/thrust.test.cuda.reduce_by_key.cdp_0.dir/all: testing/un # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.test.cuda.reduce_by_key.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.reduce_by_key.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.reduce_by_key.cdp_0.dir/rule @@ -13838,7 +14063,7 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.reduce_by_key.cdp_0.dir/all: testin # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.all.test.cuda.reduce_by_key.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.reduce_by_key.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.reduce_by_key.cdp_0.dir/rule @@ -13864,7 +14089,7 @@ testing/cuda/CMakeFiles/thrust.test.cuda.remove.cdp_0.dir/all: testing/unittest/ # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.test.cuda.remove.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.remove.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.remove.cdp_0.dir/rule @@ -13890,7 +14115,7 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.remove.cdp_0.dir/all: testing/cuda/ # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.all.test.cuda.remove.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.remove.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.remove.cdp_0.dir/rule @@ -13916,7 +14141,7 @@ testing/cuda/CMakeFiles/thrust.test.cuda.replace.cdp_0.dir/all: testing/unittest # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.test.cuda.replace.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.replace.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.replace.cdp_0.dir/rule @@ -13942,7 +14167,7 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.replace.cdp_0.dir/all: testing/cuda # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.all.test.cuda.replace.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.replace.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.replace.cdp_0.dir/rule @@ -13963,12 +14188,12 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.replace.cdp_0.dir/clean: testing/cuda/CMakeFiles/thrust.test.cuda.reverse.cdp_0.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.reverse.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.reverse.cdp_0.dir/depend $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.reverse.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.reverse.cdp_0.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=70 "Built target thrust.test.cuda.reverse.cdp_0" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.cuda.reverse.cdp_0" .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.reverse.cdp_0.dir/all # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.test.cuda.reverse.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.reverse.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.reverse.cdp_0.dir/rule @@ -13994,7 +14219,7 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.reverse.cdp_0.dir/all: testing/cuda # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.all.test.cuda.reverse.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.reverse.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.reverse.cdp_0.dir/rule @@ -14015,7 +14240,7 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.reverse.cdp_0.dir/clean: testing/cuda/CMakeFiles/thrust.test.cuda.scan.cdp_0.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.scan.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.scan.cdp_0.dir/depend $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.scan.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.scan.cdp_0.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.cuda.scan.cdp_0" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=73 "Built target thrust.test.cuda.scan.cdp_0" .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.scan.cdp_0.dir/all # Build rule for subdir invocation for target. @@ -14072,7 +14297,7 @@ testing/cuda/CMakeFiles/thrust.test.cuda.scan_by_key.cdp_0.dir/all: testing/unit # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.test.cuda.scan_by_key.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.scan_by_key.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.scan_by_key.cdp_0.dir/rule @@ -14098,7 +14323,7 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.scan_by_key.cdp_0.dir/all: testing/ # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.all.test.cuda.scan_by_key.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.scan_by_key.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.scan_by_key.cdp_0.dir/rule @@ -14124,7 +14349,7 @@ testing/cuda/CMakeFiles/thrust.test.cuda.scatter.cdp_0.dir/all: testing/unittest # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.test.cuda.scatter.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.scatter.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.scatter.cdp_0.dir/rule @@ -14150,7 +14375,7 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.scatter.cdp_0.dir/all: testing/cuda # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.all.test.cuda.scatter.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.scatter.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.scatter.cdp_0.dir/rule @@ -14176,7 +14401,7 @@ testing/cuda/CMakeFiles/thrust.test.cuda.sequence.cdp_0.dir/all: testing/unittes # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.test.cuda.sequence.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.sequence.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.sequence.cdp_0.dir/rule @@ -14202,7 +14427,7 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.sequence.cdp_0.dir/all: testing/cud # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.all.test.cuda.sequence.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.sequence.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.sequence.cdp_0.dir/rule @@ -14223,12 +14448,12 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.sequence.cdp_0.dir/clean: testing/cuda/CMakeFiles/thrust.test.cuda.set_difference.cdp_0.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.set_difference.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.set_difference.cdp_0.dir/depend $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.set_difference.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.set_difference.cdp_0.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=71 "Built target thrust.test.cuda.set_difference.cdp_0" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.cuda.set_difference.cdp_0" .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.set_difference.cdp_0.dir/all # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.test.cuda.set_difference.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.set_difference.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.set_difference.cdp_0.dir/rule @@ -14254,7 +14479,7 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.set_difference.cdp_0.dir/all: testi # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.all.test.cuda.set_difference.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.set_difference.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.set_difference.cdp_0.dir/rule @@ -14280,7 +14505,7 @@ testing/cuda/CMakeFiles/thrust.test.cuda.set_difference_by_key.cdp_0.dir/all: te # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.test.cuda.set_difference_by_key.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.set_difference_by_key.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.set_difference_by_key.cdp_0.dir/rule @@ -14306,7 +14531,7 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.set_difference_by_key.cdp_0.dir/all # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.all.test.cuda.set_difference_by_key.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.set_difference_by_key.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.set_difference_by_key.cdp_0.dir/rule @@ -14327,7 +14552,7 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.set_difference_by_key.cdp_0.dir/cle testing/cuda/CMakeFiles/thrust.test.cuda.set_intersection.cdp_0.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.set_intersection.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.set_intersection.cdp_0.dir/depend $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.set_intersection.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.set_intersection.cdp_0.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.cuda.set_intersection.cdp_0" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=74 "Built target thrust.test.cuda.set_intersection.cdp_0" .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.set_intersection.cdp_0.dir/all # Build rule for subdir invocation for target. @@ -14384,7 +14609,7 @@ testing/cuda/CMakeFiles/thrust.test.cuda.set_intersection_by_key.cdp_0.dir/all: # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.test.cuda.set_intersection_by_key.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.set_intersection_by_key.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.set_intersection_by_key.cdp_0.dir/rule @@ -14410,7 +14635,7 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.set_intersection_by_key.cdp_0.dir/a # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.all.test.cuda.set_intersection_by_key.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.set_intersection_by_key.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.set_intersection_by_key.cdp_0.dir/rule @@ -14436,7 +14661,7 @@ testing/cuda/CMakeFiles/thrust.test.cuda.set_symmetric_difference.cdp_0.dir/all: # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.test.cuda.set_symmetric_difference.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.set_symmetric_difference.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.set_symmetric_difference.cdp_0.dir/rule @@ -14462,7 +14687,7 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.set_symmetric_difference.cdp_0.dir/ # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.all.test.cuda.set_symmetric_difference.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.set_symmetric_difference.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.set_symmetric_difference.cdp_0.dir/rule @@ -14488,7 +14713,7 @@ testing/cuda/CMakeFiles/thrust.test.cuda.set_symmetric_difference_by_key.cdp_0.d # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.test.cuda.set_symmetric_difference_by_key.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.set_symmetric_difference_by_key.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.set_symmetric_difference_by_key.cdp_0.dir/rule @@ -14514,7 +14739,7 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.set_symmetric_difference_by_key.cdp # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.all.test.cuda.set_symmetric_difference_by_key.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.set_symmetric_difference_by_key.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.set_symmetric_difference_by_key.cdp_0.dir/rule @@ -14535,12 +14760,12 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.set_symmetric_difference_by_key.cdp testing/cuda/CMakeFiles/thrust.test.cuda.set_union.cdp_0.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.set_union.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.set_union.cdp_0.dir/depend $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.set_union.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.set_union.cdp_0.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=72 "Built target thrust.test.cuda.set_union.cdp_0" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.cuda.set_union.cdp_0" .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.set_union.cdp_0.dir/all # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.test.cuda.set_union.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.set_union.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.set_union.cdp_0.dir/rule @@ -14566,7 +14791,7 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.set_union.cdp_0.dir/all: testing/cu # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.all.test.cuda.set_union.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.set_union.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.set_union.cdp_0.dir/rule @@ -14592,7 +14817,7 @@ testing/cuda/CMakeFiles/thrust.test.cuda.set_union_by_key.cdp_0.dir/all: testing # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.test.cuda.set_union_by_key.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.set_union_by_key.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.set_union_by_key.cdp_0.dir/rule @@ -14618,7 +14843,7 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.set_union_by_key.cdp_0.dir/all: tes # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.all.test.cuda.set_union_by_key.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.set_union_by_key.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.set_union_by_key.cdp_0.dir/rule @@ -14639,7 +14864,7 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.set_union_by_key.cdp_0.dir/clean: testing/cuda/CMakeFiles/thrust.test.cuda.sort.cdp_0.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.sort.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.sort.cdp_0.dir/depend $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.sort.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.sort.cdp_0.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.cuda.sort.cdp_0" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=75 "Built target thrust.test.cuda.sort.cdp_0" .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.sort.cdp_0.dir/all # Build rule for subdir invocation for target. @@ -14696,7 +14921,7 @@ testing/cuda/CMakeFiles/thrust.test.cuda.sort_by_key.cdp_0.dir/all: testing/unit # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.test.cuda.sort_by_key.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.sort_by_key.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.sort_by_key.cdp_0.dir/rule @@ -14722,7 +14947,7 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.sort_by_key.cdp_0.dir/all: testing/ # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.all.test.cuda.sort_by_key.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.sort_by_key.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.sort_by_key.cdp_0.dir/rule @@ -14748,7 +14973,7 @@ testing/cuda/CMakeFiles/thrust.test.cuda.stream_legacy.cdp_0.dir/all: testing/un # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.test.cuda.stream_legacy.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.stream_legacy.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.stream_legacy.cdp_0.dir/rule @@ -14774,7 +14999,7 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.stream_legacy.cdp_0.dir/all: testin # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.all.test.cuda.stream_legacy.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.stream_legacy.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.stream_legacy.cdp_0.dir/rule @@ -14800,7 +15025,7 @@ testing/cuda/CMakeFiles/thrust.test.cuda.stream_per_thread.cdp_0.dir/all: testin # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.test.cuda.stream_per_thread.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.stream_per_thread.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.stream_per_thread.cdp_0.dir/rule @@ -14826,7 +15051,7 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.stream_per_thread.cdp_0.dir/all: te # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.all.test.cuda.stream_per_thread.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.stream_per_thread.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.stream_per_thread.cdp_0.dir/rule @@ -14847,12 +15072,12 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.stream_per_thread.cdp_0.dir/clean: testing/cuda/CMakeFiles/thrust.test.cuda.swap_ranges.cdp_0.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.swap_ranges.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.swap_ranges.cdp_0.dir/depend $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.swap_ranges.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.swap_ranges.cdp_0.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=73 "Built target thrust.test.cuda.swap_ranges.cdp_0" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.cuda.swap_ranges.cdp_0" .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.swap_ranges.cdp_0.dir/all # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.test.cuda.swap_ranges.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.swap_ranges.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.swap_ranges.cdp_0.dir/rule @@ -14878,7 +15103,7 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.swap_ranges.cdp_0.dir/all: testing/ # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.all.test.cuda.swap_ranges.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.swap_ranges.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.swap_ranges.cdp_0.dir/rule @@ -14904,7 +15129,7 @@ testing/cuda/CMakeFiles/thrust.test.cuda.tabulate.cdp_0.dir/all: testing/unittes # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.test.cuda.tabulate.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.tabulate.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.tabulate.cdp_0.dir/rule @@ -14930,7 +15155,7 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.tabulate.cdp_0.dir/all: testing/cud # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.all.test.cuda.tabulate.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.tabulate.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.tabulate.cdp_0.dir/rule @@ -14951,7 +15176,7 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.tabulate.cdp_0.dir/clean: testing/cuda/CMakeFiles/thrust.test.cuda.transform.cdp_0.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.transform.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.transform.cdp_0.dir/depend $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.transform.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.transform.cdp_0.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.cuda.transform.cdp_0" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=76 "Built target thrust.test.cuda.transform.cdp_0" .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.transform.cdp_0.dir/all # Build rule for subdir invocation for target. @@ -15008,7 +15233,7 @@ testing/cuda/CMakeFiles/thrust.test.cuda.transform_reduce.cdp_0.dir/all: testing # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.test.cuda.transform_reduce.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.transform_reduce.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.transform_reduce.cdp_0.dir/rule @@ -15034,7 +15259,7 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.transform_reduce.cdp_0.dir/all: tes # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.all.test.cuda.transform_reduce.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.transform_reduce.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.transform_reduce.cdp_0.dir/rule @@ -15060,7 +15285,7 @@ testing/cuda/CMakeFiles/thrust.test.cuda.transform_scan.cdp_0.dir/all: testing/u # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.test.cuda.transform_scan.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.transform_scan.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.transform_scan.cdp_0.dir/rule @@ -15086,227 +15311,3326 @@ testing/cuda/CMakeFiles/thrust.all.test.cuda.transform_scan.cdp_0.dir/all: testi # Build rule for subdir invocation for target. testing/cuda/CMakeFiles/thrust.all.test.cuda.transform_scan.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.transform_scan.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 -.PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.transform_scan.cdp_0.dir/rule +.PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.transform_scan.cdp_0.dir/rule + +# Convenience name for target. +thrust.all.test.cuda.transform_scan.cdp_0: testing/cuda/CMakeFiles/thrust.all.test.cuda.transform_scan.cdp_0.dir/rule +.PHONY : thrust.all.test.cuda.transform_scan.cdp_0 + +# clean rule for target. +testing/cuda/CMakeFiles/thrust.all.test.cuda.transform_scan.cdp_0.dir/clean: + $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.all.test.cuda.transform_scan.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.all.test.cuda.transform_scan.cdp_0.dir/clean +.PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.transform_scan.cdp_0.dir/clean + +#============================================================================= +# Target rules for target testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_copy.cdp_0.dir + +# All Build rule for target. +testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_copy.cdp_0.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all + $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_copy.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_copy.cdp_0.dir/depend + $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_copy.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_copy.cdp_0.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.cuda.uninitialized_copy.cdp_0" +.PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_copy.cdp_0.dir/all + +# Build rule for subdir invocation for target. +testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_copy.cdp_0.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_copy.cdp_0.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_copy.cdp_0.dir/rule + +# Convenience name for target. +thrust.test.cuda.uninitialized_copy.cdp_0: testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_copy.cdp_0.dir/rule +.PHONY : thrust.test.cuda.uninitialized_copy.cdp_0 + +# clean rule for target. +testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_copy.cdp_0.dir/clean: + $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_copy.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_copy.cdp_0.dir/clean +.PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_copy.cdp_0.dir/clean + +#============================================================================= +# Target rules for target testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_copy.cdp_0.dir + +# All Build rule for target. +testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_copy.cdp_0.dir/all: testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_copy.cdp_0.dir/all + $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_copy.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_copy.cdp_0.dir/depend + $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_copy.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_copy.cdp_0.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.test.cuda.uninitialized_copy.cdp_0" +.PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_copy.cdp_0.dir/all + +# Build rule for subdir invocation for target. +testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_copy.cdp_0.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_copy.cdp_0.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_copy.cdp_0.dir/rule + +# Convenience name for target. +thrust.all.test.cuda.uninitialized_copy.cdp_0: testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_copy.cdp_0.dir/rule +.PHONY : thrust.all.test.cuda.uninitialized_copy.cdp_0 + +# clean rule for target. +testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_copy.cdp_0.dir/clean: + $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_copy.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_copy.cdp_0.dir/clean +.PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_copy.cdp_0.dir/clean + +#============================================================================= +# Target rules for target testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_fill.cdp_0.dir + +# All Build rule for target. +testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_fill.cdp_0.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all + $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_fill.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_fill.cdp_0.dir/depend + $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_fill.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_fill.cdp_0.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.cuda.uninitialized_fill.cdp_0" +.PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_fill.cdp_0.dir/all + +# Build rule for subdir invocation for target. +testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_fill.cdp_0.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_fill.cdp_0.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_fill.cdp_0.dir/rule + +# Convenience name for target. +thrust.test.cuda.uninitialized_fill.cdp_0: testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_fill.cdp_0.dir/rule +.PHONY : thrust.test.cuda.uninitialized_fill.cdp_0 + +# clean rule for target. +testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_fill.cdp_0.dir/clean: + $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_fill.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_fill.cdp_0.dir/clean +.PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_fill.cdp_0.dir/clean + +#============================================================================= +# Target rules for target testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_fill.cdp_0.dir + +# All Build rule for target. +testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_fill.cdp_0.dir/all: testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_fill.cdp_0.dir/all + $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_fill.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_fill.cdp_0.dir/depend + $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_fill.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_fill.cdp_0.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.test.cuda.uninitialized_fill.cdp_0" +.PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_fill.cdp_0.dir/all + +# Build rule for subdir invocation for target. +testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_fill.cdp_0.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_fill.cdp_0.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_fill.cdp_0.dir/rule + +# Convenience name for target. +thrust.all.test.cuda.uninitialized_fill.cdp_0: testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_fill.cdp_0.dir/rule +.PHONY : thrust.all.test.cuda.uninitialized_fill.cdp_0 + +# clean rule for target. +testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_fill.cdp_0.dir/clean: + $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_fill.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_fill.cdp_0.dir/clean +.PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_fill.cdp_0.dir/clean + +#============================================================================= +# Target rules for target testing/cuda/CMakeFiles/thrust.test.cuda.unique.cdp_0.dir + +# All Build rule for target. +testing/cuda/CMakeFiles/thrust.test.cuda.unique.cdp_0.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all + $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.unique.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.unique.cdp_0.dir/depend + $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.unique.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.unique.cdp_0.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.cuda.unique.cdp_0" +.PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.unique.cdp_0.dir/all + +# Build rule for subdir invocation for target. +testing/cuda/CMakeFiles/thrust.test.cuda.unique.cdp_0.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.unique.cdp_0.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.unique.cdp_0.dir/rule + +# Convenience name for target. +thrust.test.cuda.unique.cdp_0: testing/cuda/CMakeFiles/thrust.test.cuda.unique.cdp_0.dir/rule +.PHONY : thrust.test.cuda.unique.cdp_0 + +# clean rule for target. +testing/cuda/CMakeFiles/thrust.test.cuda.unique.cdp_0.dir/clean: + $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.unique.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.unique.cdp_0.dir/clean +.PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.unique.cdp_0.dir/clean + +#============================================================================= +# Target rules for target testing/cuda/CMakeFiles/thrust.all.test.cuda.unique.cdp_0.dir + +# All Build rule for target. +testing/cuda/CMakeFiles/thrust.all.test.cuda.unique.cdp_0.dir/all: testing/cuda/CMakeFiles/thrust.test.cuda.unique.cdp_0.dir/all + $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.all.test.cuda.unique.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.all.test.cuda.unique.cdp_0.dir/depend + $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.all.test.cuda.unique.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.all.test.cuda.unique.cdp_0.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.test.cuda.unique.cdp_0" +.PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.unique.cdp_0.dir/all + +# Build rule for subdir invocation for target. +testing/cuda/CMakeFiles/thrust.all.test.cuda.unique.cdp_0.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.unique.cdp_0.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.unique.cdp_0.dir/rule + +# Convenience name for target. +thrust.all.test.cuda.unique.cdp_0: testing/cuda/CMakeFiles/thrust.all.test.cuda.unique.cdp_0.dir/rule +.PHONY : thrust.all.test.cuda.unique.cdp_0 + +# clean rule for target. +testing/cuda/CMakeFiles/thrust.all.test.cuda.unique.cdp_0.dir/clean: + $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.all.test.cuda.unique.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.all.test.cuda.unique.cdp_0.dir/clean +.PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.unique.cdp_0.dir/clean + +#============================================================================= +# Target rules for target testing/cuda/CMakeFiles/thrust.test.cuda.unique_by_key.cdp_0.dir + +# All Build rule for target. +testing/cuda/CMakeFiles/thrust.test.cuda.unique_by_key.cdp_0.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all + $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.unique_by_key.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.unique_by_key.cdp_0.dir/depend + $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.unique_by_key.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.unique_by_key.cdp_0.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.cuda.unique_by_key.cdp_0" +.PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.unique_by_key.cdp_0.dir/all + +# Build rule for subdir invocation for target. +testing/cuda/CMakeFiles/thrust.test.cuda.unique_by_key.cdp_0.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.unique_by_key.cdp_0.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.unique_by_key.cdp_0.dir/rule + +# Convenience name for target. +thrust.test.cuda.unique_by_key.cdp_0: testing/cuda/CMakeFiles/thrust.test.cuda.unique_by_key.cdp_0.dir/rule +.PHONY : thrust.test.cuda.unique_by_key.cdp_0 + +# clean rule for target. +testing/cuda/CMakeFiles/thrust.test.cuda.unique_by_key.cdp_0.dir/clean: + $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.unique_by_key.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.unique_by_key.cdp_0.dir/clean +.PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.unique_by_key.cdp_0.dir/clean + +#============================================================================= +# Target rules for target testing/cuda/CMakeFiles/thrust.all.test.cuda.unique_by_key.cdp_0.dir + +# All Build rule for target. +testing/cuda/CMakeFiles/thrust.all.test.cuda.unique_by_key.cdp_0.dir/all: testing/cuda/CMakeFiles/thrust.test.cuda.unique_by_key.cdp_0.dir/all + $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.all.test.cuda.unique_by_key.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.all.test.cuda.unique_by_key.cdp_0.dir/depend + $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.all.test.cuda.unique_by_key.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.all.test.cuda.unique_by_key.cdp_0.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.test.cuda.unique_by_key.cdp_0" +.PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.unique_by_key.cdp_0.dir/all + +# Build rule for subdir invocation for target. +testing/cuda/CMakeFiles/thrust.all.test.cuda.unique_by_key.cdp_0.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.unique_by_key.cdp_0.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.unique_by_key.cdp_0.dir/rule + +# Convenience name for target. +thrust.all.test.cuda.unique_by_key.cdp_0: testing/cuda/CMakeFiles/thrust.all.test.cuda.unique_by_key.cdp_0.dir/rule +.PHONY : thrust.all.test.cuda.unique_by_key.cdp_0 + +# clean rule for target. +testing/cuda/CMakeFiles/thrust.all.test.cuda.unique_by_key.cdp_0.dir/clean: + $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.all.test.cuda.unique_by_key.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.all.test.cuda.unique_by_key.cdp_0.dir/clean +.PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.unique_by_key.cdp_0.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.examples.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.examples.dir/all: examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/CMakeFiles/thrust.example.basic_vector.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/CMakeFiles/thrust.example.bounding_box.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/CMakeFiles/thrust.example.bucket_sort2d.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/CMakeFiles/thrust.example.constant_iterator.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/CMakeFiles/thrust.example.counting_iterator.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/CMakeFiles/thrust.example.device_ptr.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/CMakeFiles/thrust.example.discrete_voronoi.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/CMakeFiles/thrust.example.expand.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/CMakeFiles/thrust.example.histogram.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/CMakeFiles/thrust.example.lambda.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/CMakeFiles/thrust.example.lexicographical_sort.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/CMakeFiles/thrust.example.max_abs_diff.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/CMakeFiles/thrust.example.minmax.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/CMakeFiles/thrust.example.mode.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/CMakeFiles/thrust.example.monte_carlo.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/CMakeFiles/thrust.example.mr_basic.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/CMakeFiles/thrust.example.norm.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/CMakeFiles/thrust.example.permutation_iterator.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/CMakeFiles/thrust.example.raw_reference_cast.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/CMakeFiles/thrust.example.remove_points2d.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/CMakeFiles/thrust.example.repeated_range.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/CMakeFiles/thrust.example.run_length_decoding.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/CMakeFiles/thrust.example.run_length_encoding.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/CMakeFiles/thrust.example.saxpy.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/CMakeFiles/thrust.example.scan_by_key.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/CMakeFiles/thrust.example.set_operations.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/CMakeFiles/thrust.example.simple_moving_average.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/CMakeFiles/thrust.example.sort.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/CMakeFiles/thrust.example.sparse_vector.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/CMakeFiles/thrust.example.stream_compaction.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/CMakeFiles/thrust.example.strided_range.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/CMakeFiles/thrust.example.sum.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/CMakeFiles/thrust.example.sum_rows.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/CMakeFiles/thrust.example.summary_statistics.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/CMakeFiles/thrust.example.summed_area_table.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/CMakeFiles/thrust.example.tiled_range.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/CMakeFiles/thrust.example.transform_iterator.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/CMakeFiles/thrust.example.transform_output_iterator.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/CMakeFiles/thrust.example.uninitialized_vector.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/CMakeFiles/thrust.example.version.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/CMakeFiles/thrust.example.weld_vertices.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/CMakeFiles/thrust.example.word_count.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/all +examples/CMakeFiles/thrust.examples.dir/all: examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/all + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.examples.dir/build.make examples/CMakeFiles/thrust.examples.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.examples.dir/build.make examples/CMakeFiles/thrust.examples.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.examples" +.PHONY : examples/CMakeFiles/thrust.examples.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.examples.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 9 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.examples.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.examples.dir/rule + +# Convenience name for target. +thrust.examples: examples/CMakeFiles/thrust.examples.dir/rule +.PHONY : thrust.examples + +# clean rule for target. +examples/CMakeFiles/thrust.examples.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.examples.dir/build.make examples/CMakeFiles/thrust.examples.dir/clean +.PHONY : examples/CMakeFiles/thrust.examples.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.example.arbitrary_transformation.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/all: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/build.make examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/build.make examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.example.arbitrary_transformation" +.PHONY : examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/rule + +# Convenience name for target. +thrust.example.arbitrary_transformation: examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/rule +.PHONY : thrust.example.arbitrary_transformation + +# clean rule for target. +examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/build.make examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/clean +.PHONY : examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.all.example.arbitrary_transformation.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.all.example.arbitrary_transformation.dir/all: examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/all + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.arbitrary_transformation.dir/build.make examples/CMakeFiles/thrust.all.example.arbitrary_transformation.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.arbitrary_transformation.dir/build.make examples/CMakeFiles/thrust.all.example.arbitrary_transformation.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.arbitrary_transformation" +.PHONY : examples/CMakeFiles/thrust.all.example.arbitrary_transformation.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.all.example.arbitrary_transformation.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.arbitrary_transformation.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.all.example.arbitrary_transformation.dir/rule + +# Convenience name for target. +thrust.all.example.arbitrary_transformation: examples/CMakeFiles/thrust.all.example.arbitrary_transformation.dir/rule +.PHONY : thrust.all.example.arbitrary_transformation + +# clean rule for target. +examples/CMakeFiles/thrust.all.example.arbitrary_transformation.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.arbitrary_transformation.dir/build.make examples/CMakeFiles/thrust.all.example.arbitrary_transformation.dir/clean +.PHONY : examples/CMakeFiles/thrust.all.example.arbitrary_transformation.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.example.basic_vector.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.example.basic_vector.dir/all: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.basic_vector.dir/build.make examples/CMakeFiles/thrust.example.basic_vector.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.basic_vector.dir/build.make examples/CMakeFiles/thrust.example.basic_vector.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.example.basic_vector" +.PHONY : examples/CMakeFiles/thrust.example.basic_vector.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.example.basic_vector.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.basic_vector.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.example.basic_vector.dir/rule + +# Convenience name for target. +thrust.example.basic_vector: examples/CMakeFiles/thrust.example.basic_vector.dir/rule +.PHONY : thrust.example.basic_vector + +# clean rule for target. +examples/CMakeFiles/thrust.example.basic_vector.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.basic_vector.dir/build.make examples/CMakeFiles/thrust.example.basic_vector.dir/clean +.PHONY : examples/CMakeFiles/thrust.example.basic_vector.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.all.example.basic_vector.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.all.example.basic_vector.dir/all: examples/CMakeFiles/thrust.example.basic_vector.dir/all + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.basic_vector.dir/build.make examples/CMakeFiles/thrust.all.example.basic_vector.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.basic_vector.dir/build.make examples/CMakeFiles/thrust.all.example.basic_vector.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.basic_vector" +.PHONY : examples/CMakeFiles/thrust.all.example.basic_vector.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.all.example.basic_vector.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.basic_vector.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.all.example.basic_vector.dir/rule + +# Convenience name for target. +thrust.all.example.basic_vector: examples/CMakeFiles/thrust.all.example.basic_vector.dir/rule +.PHONY : thrust.all.example.basic_vector + +# clean rule for target. +examples/CMakeFiles/thrust.all.example.basic_vector.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.basic_vector.dir/build.make examples/CMakeFiles/thrust.all.example.basic_vector.dir/clean +.PHONY : examples/CMakeFiles/thrust.all.example.basic_vector.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.example.bounding_box.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.example.bounding_box.dir/all: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.bounding_box.dir/build.make examples/CMakeFiles/thrust.example.bounding_box.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.bounding_box.dir/build.make examples/CMakeFiles/thrust.example.bounding_box.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.example.bounding_box" +.PHONY : examples/CMakeFiles/thrust.example.bounding_box.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.example.bounding_box.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.bounding_box.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.example.bounding_box.dir/rule + +# Convenience name for target. +thrust.example.bounding_box: examples/CMakeFiles/thrust.example.bounding_box.dir/rule +.PHONY : thrust.example.bounding_box + +# clean rule for target. +examples/CMakeFiles/thrust.example.bounding_box.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.bounding_box.dir/build.make examples/CMakeFiles/thrust.example.bounding_box.dir/clean +.PHONY : examples/CMakeFiles/thrust.example.bounding_box.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.all.example.bounding_box.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.all.example.bounding_box.dir/all: examples/CMakeFiles/thrust.example.bounding_box.dir/all + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.bounding_box.dir/build.make examples/CMakeFiles/thrust.all.example.bounding_box.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.bounding_box.dir/build.make examples/CMakeFiles/thrust.all.example.bounding_box.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.bounding_box" +.PHONY : examples/CMakeFiles/thrust.all.example.bounding_box.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.all.example.bounding_box.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.bounding_box.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.all.example.bounding_box.dir/rule + +# Convenience name for target. +thrust.all.example.bounding_box: examples/CMakeFiles/thrust.all.example.bounding_box.dir/rule +.PHONY : thrust.all.example.bounding_box + +# clean rule for target. +examples/CMakeFiles/thrust.all.example.bounding_box.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.bounding_box.dir/build.make examples/CMakeFiles/thrust.all.example.bounding_box.dir/clean +.PHONY : examples/CMakeFiles/thrust.all.example.bounding_box.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.example.bucket_sort2d.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.example.bucket_sort2d.dir/all: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.bucket_sort2d.dir/build.make examples/CMakeFiles/thrust.example.bucket_sort2d.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.bucket_sort2d.dir/build.make examples/CMakeFiles/thrust.example.bucket_sort2d.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.example.bucket_sort2d" +.PHONY : examples/CMakeFiles/thrust.example.bucket_sort2d.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.example.bucket_sort2d.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.bucket_sort2d.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.example.bucket_sort2d.dir/rule + +# Convenience name for target. +thrust.example.bucket_sort2d: examples/CMakeFiles/thrust.example.bucket_sort2d.dir/rule +.PHONY : thrust.example.bucket_sort2d + +# clean rule for target. +examples/CMakeFiles/thrust.example.bucket_sort2d.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.bucket_sort2d.dir/build.make examples/CMakeFiles/thrust.example.bucket_sort2d.dir/clean +.PHONY : examples/CMakeFiles/thrust.example.bucket_sort2d.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.all.example.bucket_sort2d.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.all.example.bucket_sort2d.dir/all: examples/CMakeFiles/thrust.example.bucket_sort2d.dir/all + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.bucket_sort2d.dir/build.make examples/CMakeFiles/thrust.all.example.bucket_sort2d.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.bucket_sort2d.dir/build.make examples/CMakeFiles/thrust.all.example.bucket_sort2d.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.bucket_sort2d" +.PHONY : examples/CMakeFiles/thrust.all.example.bucket_sort2d.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.all.example.bucket_sort2d.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.bucket_sort2d.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.all.example.bucket_sort2d.dir/rule + +# Convenience name for target. +thrust.all.example.bucket_sort2d: examples/CMakeFiles/thrust.all.example.bucket_sort2d.dir/rule +.PHONY : thrust.all.example.bucket_sort2d + +# clean rule for target. +examples/CMakeFiles/thrust.all.example.bucket_sort2d.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.bucket_sort2d.dir/build.make examples/CMakeFiles/thrust.all.example.bucket_sort2d.dir/clean +.PHONY : examples/CMakeFiles/thrust.all.example.bucket_sort2d.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.example.constant_iterator.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.example.constant_iterator.dir/all: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.constant_iterator.dir/build.make examples/CMakeFiles/thrust.example.constant_iterator.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.constant_iterator.dir/build.make examples/CMakeFiles/thrust.example.constant_iterator.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.example.constant_iterator" +.PHONY : examples/CMakeFiles/thrust.example.constant_iterator.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.example.constant_iterator.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.constant_iterator.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.example.constant_iterator.dir/rule + +# Convenience name for target. +thrust.example.constant_iterator: examples/CMakeFiles/thrust.example.constant_iterator.dir/rule +.PHONY : thrust.example.constant_iterator + +# clean rule for target. +examples/CMakeFiles/thrust.example.constant_iterator.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.constant_iterator.dir/build.make examples/CMakeFiles/thrust.example.constant_iterator.dir/clean +.PHONY : examples/CMakeFiles/thrust.example.constant_iterator.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.all.example.constant_iterator.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.all.example.constant_iterator.dir/all: examples/CMakeFiles/thrust.example.constant_iterator.dir/all + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.constant_iterator.dir/build.make examples/CMakeFiles/thrust.all.example.constant_iterator.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.constant_iterator.dir/build.make examples/CMakeFiles/thrust.all.example.constant_iterator.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.constant_iterator" +.PHONY : examples/CMakeFiles/thrust.all.example.constant_iterator.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.all.example.constant_iterator.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.constant_iterator.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.all.example.constant_iterator.dir/rule + +# Convenience name for target. +thrust.all.example.constant_iterator: examples/CMakeFiles/thrust.all.example.constant_iterator.dir/rule +.PHONY : thrust.all.example.constant_iterator + +# clean rule for target. +examples/CMakeFiles/thrust.all.example.constant_iterator.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.constant_iterator.dir/build.make examples/CMakeFiles/thrust.all.example.constant_iterator.dir/clean +.PHONY : examples/CMakeFiles/thrust.all.example.constant_iterator.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.example.counting_iterator.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.example.counting_iterator.dir/all: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.counting_iterator.dir/build.make examples/CMakeFiles/thrust.example.counting_iterator.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.counting_iterator.dir/build.make examples/CMakeFiles/thrust.example.counting_iterator.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=41 "Built target thrust.example.counting_iterator" +.PHONY : examples/CMakeFiles/thrust.example.counting_iterator.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.example.counting_iterator.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.counting_iterator.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.example.counting_iterator.dir/rule + +# Convenience name for target. +thrust.example.counting_iterator: examples/CMakeFiles/thrust.example.counting_iterator.dir/rule +.PHONY : thrust.example.counting_iterator + +# clean rule for target. +examples/CMakeFiles/thrust.example.counting_iterator.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.counting_iterator.dir/build.make examples/CMakeFiles/thrust.example.counting_iterator.dir/clean +.PHONY : examples/CMakeFiles/thrust.example.counting_iterator.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.all.example.counting_iterator.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.all.example.counting_iterator.dir/all: examples/CMakeFiles/thrust.example.counting_iterator.dir/all + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.counting_iterator.dir/build.make examples/CMakeFiles/thrust.all.example.counting_iterator.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.counting_iterator.dir/build.make examples/CMakeFiles/thrust.all.example.counting_iterator.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.counting_iterator" +.PHONY : examples/CMakeFiles/thrust.all.example.counting_iterator.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.all.example.counting_iterator.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.counting_iterator.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.all.example.counting_iterator.dir/rule + +# Convenience name for target. +thrust.all.example.counting_iterator: examples/CMakeFiles/thrust.all.example.counting_iterator.dir/rule +.PHONY : thrust.all.example.counting_iterator + +# clean rule for target. +examples/CMakeFiles/thrust.all.example.counting_iterator.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.counting_iterator.dir/build.make examples/CMakeFiles/thrust.all.example.counting_iterator.dir/clean +.PHONY : examples/CMakeFiles/thrust.all.example.counting_iterator.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.example.device_ptr.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.example.device_ptr.dir/all: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.device_ptr.dir/build.make examples/CMakeFiles/thrust.example.device_ptr.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.device_ptr.dir/build.make examples/CMakeFiles/thrust.example.device_ptr.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.example.device_ptr" +.PHONY : examples/CMakeFiles/thrust.example.device_ptr.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.example.device_ptr.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.device_ptr.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.example.device_ptr.dir/rule + +# Convenience name for target. +thrust.example.device_ptr: examples/CMakeFiles/thrust.example.device_ptr.dir/rule +.PHONY : thrust.example.device_ptr + +# clean rule for target. +examples/CMakeFiles/thrust.example.device_ptr.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.device_ptr.dir/build.make examples/CMakeFiles/thrust.example.device_ptr.dir/clean +.PHONY : examples/CMakeFiles/thrust.example.device_ptr.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.all.example.device_ptr.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.all.example.device_ptr.dir/all: examples/CMakeFiles/thrust.example.device_ptr.dir/all + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.device_ptr.dir/build.make examples/CMakeFiles/thrust.all.example.device_ptr.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.device_ptr.dir/build.make examples/CMakeFiles/thrust.all.example.device_ptr.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.device_ptr" +.PHONY : examples/CMakeFiles/thrust.all.example.device_ptr.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.all.example.device_ptr.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.device_ptr.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.all.example.device_ptr.dir/rule + +# Convenience name for target. +thrust.all.example.device_ptr: examples/CMakeFiles/thrust.all.example.device_ptr.dir/rule +.PHONY : thrust.all.example.device_ptr + +# clean rule for target. +examples/CMakeFiles/thrust.all.example.device_ptr.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.device_ptr.dir/build.make examples/CMakeFiles/thrust.all.example.device_ptr.dir/clean +.PHONY : examples/CMakeFiles/thrust.all.example.device_ptr.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.example.discrete_voronoi.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.example.discrete_voronoi.dir/all: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.discrete_voronoi.dir/build.make examples/CMakeFiles/thrust.example.discrete_voronoi.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.discrete_voronoi.dir/build.make examples/CMakeFiles/thrust.example.discrete_voronoi.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.example.discrete_voronoi" +.PHONY : examples/CMakeFiles/thrust.example.discrete_voronoi.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.example.discrete_voronoi.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.discrete_voronoi.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.example.discrete_voronoi.dir/rule + +# Convenience name for target. +thrust.example.discrete_voronoi: examples/CMakeFiles/thrust.example.discrete_voronoi.dir/rule +.PHONY : thrust.example.discrete_voronoi + +# clean rule for target. +examples/CMakeFiles/thrust.example.discrete_voronoi.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.discrete_voronoi.dir/build.make examples/CMakeFiles/thrust.example.discrete_voronoi.dir/clean +.PHONY : examples/CMakeFiles/thrust.example.discrete_voronoi.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.all.example.discrete_voronoi.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.all.example.discrete_voronoi.dir/all: examples/CMakeFiles/thrust.example.discrete_voronoi.dir/all + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.discrete_voronoi.dir/build.make examples/CMakeFiles/thrust.all.example.discrete_voronoi.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.discrete_voronoi.dir/build.make examples/CMakeFiles/thrust.all.example.discrete_voronoi.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.discrete_voronoi" +.PHONY : examples/CMakeFiles/thrust.all.example.discrete_voronoi.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.all.example.discrete_voronoi.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.discrete_voronoi.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.all.example.discrete_voronoi.dir/rule + +# Convenience name for target. +thrust.all.example.discrete_voronoi: examples/CMakeFiles/thrust.all.example.discrete_voronoi.dir/rule +.PHONY : thrust.all.example.discrete_voronoi + +# clean rule for target. +examples/CMakeFiles/thrust.all.example.discrete_voronoi.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.discrete_voronoi.dir/build.make examples/CMakeFiles/thrust.all.example.discrete_voronoi.dir/clean +.PHONY : examples/CMakeFiles/thrust.all.example.discrete_voronoi.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.example.dot_products_with_zip.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/all: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/build.make examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/build.make examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.example.dot_products_with_zip" +.PHONY : examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/rule + +# Convenience name for target. +thrust.example.dot_products_with_zip: examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/rule +.PHONY : thrust.example.dot_products_with_zip + +# clean rule for target. +examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/build.make examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/clean +.PHONY : examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.all.example.dot_products_with_zip.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.all.example.dot_products_with_zip.dir/all: examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/all + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.dot_products_with_zip.dir/build.make examples/CMakeFiles/thrust.all.example.dot_products_with_zip.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.dot_products_with_zip.dir/build.make examples/CMakeFiles/thrust.all.example.dot_products_with_zip.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.dot_products_with_zip" +.PHONY : examples/CMakeFiles/thrust.all.example.dot_products_with_zip.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.all.example.dot_products_with_zip.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.dot_products_with_zip.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.all.example.dot_products_with_zip.dir/rule + +# Convenience name for target. +thrust.all.example.dot_products_with_zip: examples/CMakeFiles/thrust.all.example.dot_products_with_zip.dir/rule +.PHONY : thrust.all.example.dot_products_with_zip + +# clean rule for target. +examples/CMakeFiles/thrust.all.example.dot_products_with_zip.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.dot_products_with_zip.dir/build.make examples/CMakeFiles/thrust.all.example.dot_products_with_zip.dir/clean +.PHONY : examples/CMakeFiles/thrust.all.example.dot_products_with_zip.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.example.expand.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.example.expand.dir/all: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.expand.dir/build.make examples/CMakeFiles/thrust.example.expand.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.expand.dir/build.make examples/CMakeFiles/thrust.example.expand.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.example.expand" +.PHONY : examples/CMakeFiles/thrust.example.expand.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.example.expand.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.expand.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.example.expand.dir/rule + +# Convenience name for target. +thrust.example.expand: examples/CMakeFiles/thrust.example.expand.dir/rule +.PHONY : thrust.example.expand + +# clean rule for target. +examples/CMakeFiles/thrust.example.expand.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.expand.dir/build.make examples/CMakeFiles/thrust.example.expand.dir/clean +.PHONY : examples/CMakeFiles/thrust.example.expand.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.all.example.expand.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.all.example.expand.dir/all: examples/CMakeFiles/thrust.example.expand.dir/all + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.expand.dir/build.make examples/CMakeFiles/thrust.all.example.expand.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.expand.dir/build.make examples/CMakeFiles/thrust.all.example.expand.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.expand" +.PHONY : examples/CMakeFiles/thrust.all.example.expand.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.all.example.expand.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.expand.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.all.example.expand.dir/rule + +# Convenience name for target. +thrust.all.example.expand: examples/CMakeFiles/thrust.all.example.expand.dir/rule +.PHONY : thrust.all.example.expand + +# clean rule for target. +examples/CMakeFiles/thrust.all.example.expand.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.expand.dir/build.make examples/CMakeFiles/thrust.all.example.expand.dir/clean +.PHONY : examples/CMakeFiles/thrust.all.example.expand.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.example.fill_copy_sequence.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/all: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/build.make examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/build.make examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=43 "Built target thrust.example.fill_copy_sequence" +.PHONY : examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/rule + +# Convenience name for target. +thrust.example.fill_copy_sequence: examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/rule +.PHONY : thrust.example.fill_copy_sequence + +# clean rule for target. +examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/build.make examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/clean +.PHONY : examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.all.example.fill_copy_sequence.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.all.example.fill_copy_sequence.dir/all: examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/all + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.fill_copy_sequence.dir/build.make examples/CMakeFiles/thrust.all.example.fill_copy_sequence.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.fill_copy_sequence.dir/build.make examples/CMakeFiles/thrust.all.example.fill_copy_sequence.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.fill_copy_sequence" +.PHONY : examples/CMakeFiles/thrust.all.example.fill_copy_sequence.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.all.example.fill_copy_sequence.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.fill_copy_sequence.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.all.example.fill_copy_sequence.dir/rule + +# Convenience name for target. +thrust.all.example.fill_copy_sequence: examples/CMakeFiles/thrust.all.example.fill_copy_sequence.dir/rule +.PHONY : thrust.all.example.fill_copy_sequence + +# clean rule for target. +examples/CMakeFiles/thrust.all.example.fill_copy_sequence.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.fill_copy_sequence.dir/build.make examples/CMakeFiles/thrust.all.example.fill_copy_sequence.dir/clean +.PHONY : examples/CMakeFiles/thrust.all.example.fill_copy_sequence.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.example.histogram.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.example.histogram.dir/all: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.histogram.dir/build.make examples/CMakeFiles/thrust.example.histogram.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.histogram.dir/build.make examples/CMakeFiles/thrust.example.histogram.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.example.histogram" +.PHONY : examples/CMakeFiles/thrust.example.histogram.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.example.histogram.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.histogram.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.example.histogram.dir/rule + +# Convenience name for target. +thrust.example.histogram: examples/CMakeFiles/thrust.example.histogram.dir/rule +.PHONY : thrust.example.histogram + +# clean rule for target. +examples/CMakeFiles/thrust.example.histogram.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.histogram.dir/build.make examples/CMakeFiles/thrust.example.histogram.dir/clean +.PHONY : examples/CMakeFiles/thrust.example.histogram.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.all.example.histogram.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.all.example.histogram.dir/all: examples/CMakeFiles/thrust.example.histogram.dir/all + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.histogram.dir/build.make examples/CMakeFiles/thrust.all.example.histogram.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.histogram.dir/build.make examples/CMakeFiles/thrust.all.example.histogram.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.histogram" +.PHONY : examples/CMakeFiles/thrust.all.example.histogram.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.all.example.histogram.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.histogram.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.all.example.histogram.dir/rule + +# Convenience name for target. +thrust.all.example.histogram: examples/CMakeFiles/thrust.all.example.histogram.dir/rule +.PHONY : thrust.all.example.histogram + +# clean rule for target. +examples/CMakeFiles/thrust.all.example.histogram.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.histogram.dir/build.make examples/CMakeFiles/thrust.all.example.histogram.dir/clean +.PHONY : examples/CMakeFiles/thrust.all.example.histogram.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.example.lambda.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.example.lambda.dir/all: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.lambda.dir/build.make examples/CMakeFiles/thrust.example.lambda.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.lambda.dir/build.make examples/CMakeFiles/thrust.example.lambda.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.example.lambda" +.PHONY : examples/CMakeFiles/thrust.example.lambda.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.example.lambda.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.lambda.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.example.lambda.dir/rule + +# Convenience name for target. +thrust.example.lambda: examples/CMakeFiles/thrust.example.lambda.dir/rule +.PHONY : thrust.example.lambda + +# clean rule for target. +examples/CMakeFiles/thrust.example.lambda.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.lambda.dir/build.make examples/CMakeFiles/thrust.example.lambda.dir/clean +.PHONY : examples/CMakeFiles/thrust.example.lambda.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.all.example.lambda.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.all.example.lambda.dir/all: examples/CMakeFiles/thrust.example.lambda.dir/all + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.lambda.dir/build.make examples/CMakeFiles/thrust.all.example.lambda.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.lambda.dir/build.make examples/CMakeFiles/thrust.all.example.lambda.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.lambda" +.PHONY : examples/CMakeFiles/thrust.all.example.lambda.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.all.example.lambda.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.lambda.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.all.example.lambda.dir/rule + +# Convenience name for target. +thrust.all.example.lambda: examples/CMakeFiles/thrust.all.example.lambda.dir/rule +.PHONY : thrust.all.example.lambda + +# clean rule for target. +examples/CMakeFiles/thrust.all.example.lambda.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.lambda.dir/build.make examples/CMakeFiles/thrust.all.example.lambda.dir/clean +.PHONY : examples/CMakeFiles/thrust.all.example.lambda.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.example.lexicographical_sort.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.example.lexicographical_sort.dir/all: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.lexicographical_sort.dir/build.make examples/CMakeFiles/thrust.example.lexicographical_sort.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.lexicographical_sort.dir/build.make examples/CMakeFiles/thrust.example.lexicographical_sort.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.example.lexicographical_sort" +.PHONY : examples/CMakeFiles/thrust.example.lexicographical_sort.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.example.lexicographical_sort.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.lexicographical_sort.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.example.lexicographical_sort.dir/rule + +# Convenience name for target. +thrust.example.lexicographical_sort: examples/CMakeFiles/thrust.example.lexicographical_sort.dir/rule +.PHONY : thrust.example.lexicographical_sort + +# clean rule for target. +examples/CMakeFiles/thrust.example.lexicographical_sort.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.lexicographical_sort.dir/build.make examples/CMakeFiles/thrust.example.lexicographical_sort.dir/clean +.PHONY : examples/CMakeFiles/thrust.example.lexicographical_sort.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.all.example.lexicographical_sort.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.all.example.lexicographical_sort.dir/all: examples/CMakeFiles/thrust.example.lexicographical_sort.dir/all + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.lexicographical_sort.dir/build.make examples/CMakeFiles/thrust.all.example.lexicographical_sort.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.lexicographical_sort.dir/build.make examples/CMakeFiles/thrust.all.example.lexicographical_sort.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.lexicographical_sort" +.PHONY : examples/CMakeFiles/thrust.all.example.lexicographical_sort.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.all.example.lexicographical_sort.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.lexicographical_sort.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.all.example.lexicographical_sort.dir/rule + +# Convenience name for target. +thrust.all.example.lexicographical_sort: examples/CMakeFiles/thrust.all.example.lexicographical_sort.dir/rule +.PHONY : thrust.all.example.lexicographical_sort + +# clean rule for target. +examples/CMakeFiles/thrust.all.example.lexicographical_sort.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.lexicographical_sort.dir/build.make examples/CMakeFiles/thrust.all.example.lexicographical_sort.dir/clean +.PHONY : examples/CMakeFiles/thrust.all.example.lexicographical_sort.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.example.max_abs_diff.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.example.max_abs_diff.dir/all: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.max_abs_diff.dir/build.make examples/CMakeFiles/thrust.example.max_abs_diff.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.max_abs_diff.dir/build.make examples/CMakeFiles/thrust.example.max_abs_diff.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.example.max_abs_diff" +.PHONY : examples/CMakeFiles/thrust.example.max_abs_diff.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.example.max_abs_diff.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.max_abs_diff.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.example.max_abs_diff.dir/rule + +# Convenience name for target. +thrust.example.max_abs_diff: examples/CMakeFiles/thrust.example.max_abs_diff.dir/rule +.PHONY : thrust.example.max_abs_diff + +# clean rule for target. +examples/CMakeFiles/thrust.example.max_abs_diff.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.max_abs_diff.dir/build.make examples/CMakeFiles/thrust.example.max_abs_diff.dir/clean +.PHONY : examples/CMakeFiles/thrust.example.max_abs_diff.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.all.example.max_abs_diff.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.all.example.max_abs_diff.dir/all: examples/CMakeFiles/thrust.example.max_abs_diff.dir/all + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.max_abs_diff.dir/build.make examples/CMakeFiles/thrust.all.example.max_abs_diff.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.max_abs_diff.dir/build.make examples/CMakeFiles/thrust.all.example.max_abs_diff.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.max_abs_diff" +.PHONY : examples/CMakeFiles/thrust.all.example.max_abs_diff.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.all.example.max_abs_diff.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.max_abs_diff.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.all.example.max_abs_diff.dir/rule + +# Convenience name for target. +thrust.all.example.max_abs_diff: examples/CMakeFiles/thrust.all.example.max_abs_diff.dir/rule +.PHONY : thrust.all.example.max_abs_diff + +# clean rule for target. +examples/CMakeFiles/thrust.all.example.max_abs_diff.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.max_abs_diff.dir/build.make examples/CMakeFiles/thrust.all.example.max_abs_diff.dir/clean +.PHONY : examples/CMakeFiles/thrust.all.example.max_abs_diff.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.example.minimal_custom_backend.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/all: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/build.make examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/build.make examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.example.minimal_custom_backend" +.PHONY : examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/rule + +# Convenience name for target. +thrust.example.minimal_custom_backend: examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/rule +.PHONY : thrust.example.minimal_custom_backend + +# clean rule for target. +examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/build.make examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/clean +.PHONY : examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.all.example.minimal_custom_backend.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.all.example.minimal_custom_backend.dir/all: examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/all + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.minimal_custom_backend.dir/build.make examples/CMakeFiles/thrust.all.example.minimal_custom_backend.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.minimal_custom_backend.dir/build.make examples/CMakeFiles/thrust.all.example.minimal_custom_backend.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.minimal_custom_backend" +.PHONY : examples/CMakeFiles/thrust.all.example.minimal_custom_backend.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.all.example.minimal_custom_backend.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.minimal_custom_backend.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.all.example.minimal_custom_backend.dir/rule + +# Convenience name for target. +thrust.all.example.minimal_custom_backend: examples/CMakeFiles/thrust.all.example.minimal_custom_backend.dir/rule +.PHONY : thrust.all.example.minimal_custom_backend + +# clean rule for target. +examples/CMakeFiles/thrust.all.example.minimal_custom_backend.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.minimal_custom_backend.dir/build.make examples/CMakeFiles/thrust.all.example.minimal_custom_backend.dir/clean +.PHONY : examples/CMakeFiles/thrust.all.example.minimal_custom_backend.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.example.minmax.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.example.minmax.dir/all: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.minmax.dir/build.make examples/CMakeFiles/thrust.example.minmax.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.minmax.dir/build.make examples/CMakeFiles/thrust.example.minmax.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.example.minmax" +.PHONY : examples/CMakeFiles/thrust.example.minmax.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.example.minmax.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.minmax.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.example.minmax.dir/rule + +# Convenience name for target. +thrust.example.minmax: examples/CMakeFiles/thrust.example.minmax.dir/rule +.PHONY : thrust.example.minmax + +# clean rule for target. +examples/CMakeFiles/thrust.example.minmax.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.minmax.dir/build.make examples/CMakeFiles/thrust.example.minmax.dir/clean +.PHONY : examples/CMakeFiles/thrust.example.minmax.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.all.example.minmax.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.all.example.minmax.dir/all: examples/CMakeFiles/thrust.example.minmax.dir/all + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.minmax.dir/build.make examples/CMakeFiles/thrust.all.example.minmax.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.minmax.dir/build.make examples/CMakeFiles/thrust.all.example.minmax.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.minmax" +.PHONY : examples/CMakeFiles/thrust.all.example.minmax.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.all.example.minmax.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.minmax.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.all.example.minmax.dir/rule + +# Convenience name for target. +thrust.all.example.minmax: examples/CMakeFiles/thrust.all.example.minmax.dir/rule +.PHONY : thrust.all.example.minmax + +# clean rule for target. +examples/CMakeFiles/thrust.all.example.minmax.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.minmax.dir/build.make examples/CMakeFiles/thrust.all.example.minmax.dir/clean +.PHONY : examples/CMakeFiles/thrust.all.example.minmax.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.example.mode.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.example.mode.dir/all: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.mode.dir/build.make examples/CMakeFiles/thrust.example.mode.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.mode.dir/build.make examples/CMakeFiles/thrust.example.mode.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=44 "Built target thrust.example.mode" +.PHONY : examples/CMakeFiles/thrust.example.mode.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.example.mode.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.mode.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.example.mode.dir/rule + +# Convenience name for target. +thrust.example.mode: examples/CMakeFiles/thrust.example.mode.dir/rule +.PHONY : thrust.example.mode + +# clean rule for target. +examples/CMakeFiles/thrust.example.mode.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.mode.dir/build.make examples/CMakeFiles/thrust.example.mode.dir/clean +.PHONY : examples/CMakeFiles/thrust.example.mode.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.all.example.mode.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.all.example.mode.dir/all: examples/CMakeFiles/thrust.example.mode.dir/all + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.mode.dir/build.make examples/CMakeFiles/thrust.all.example.mode.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.mode.dir/build.make examples/CMakeFiles/thrust.all.example.mode.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.mode" +.PHONY : examples/CMakeFiles/thrust.all.example.mode.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.all.example.mode.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.mode.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.all.example.mode.dir/rule + +# Convenience name for target. +thrust.all.example.mode: examples/CMakeFiles/thrust.all.example.mode.dir/rule +.PHONY : thrust.all.example.mode + +# clean rule for target. +examples/CMakeFiles/thrust.all.example.mode.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.mode.dir/build.make examples/CMakeFiles/thrust.all.example.mode.dir/clean +.PHONY : examples/CMakeFiles/thrust.all.example.mode.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.example.monte_carlo.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.example.monte_carlo.dir/all: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.monte_carlo.dir/build.make examples/CMakeFiles/thrust.example.monte_carlo.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.monte_carlo.dir/build.make examples/CMakeFiles/thrust.example.monte_carlo.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.example.monte_carlo" +.PHONY : examples/CMakeFiles/thrust.example.monte_carlo.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.example.monte_carlo.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.monte_carlo.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.example.monte_carlo.dir/rule + +# Convenience name for target. +thrust.example.monte_carlo: examples/CMakeFiles/thrust.example.monte_carlo.dir/rule +.PHONY : thrust.example.monte_carlo + +# clean rule for target. +examples/CMakeFiles/thrust.example.monte_carlo.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.monte_carlo.dir/build.make examples/CMakeFiles/thrust.example.monte_carlo.dir/clean +.PHONY : examples/CMakeFiles/thrust.example.monte_carlo.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.all.example.monte_carlo.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.all.example.monte_carlo.dir/all: examples/CMakeFiles/thrust.example.monte_carlo.dir/all + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.monte_carlo.dir/build.make examples/CMakeFiles/thrust.all.example.monte_carlo.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.monte_carlo.dir/build.make examples/CMakeFiles/thrust.all.example.monte_carlo.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.monte_carlo" +.PHONY : examples/CMakeFiles/thrust.all.example.monte_carlo.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.all.example.monte_carlo.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.monte_carlo.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.all.example.monte_carlo.dir/rule + +# Convenience name for target. +thrust.all.example.monte_carlo: examples/CMakeFiles/thrust.all.example.monte_carlo.dir/rule +.PHONY : thrust.all.example.monte_carlo + +# clean rule for target. +examples/CMakeFiles/thrust.all.example.monte_carlo.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.monte_carlo.dir/build.make examples/CMakeFiles/thrust.all.example.monte_carlo.dir/clean +.PHONY : examples/CMakeFiles/thrust.all.example.monte_carlo.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/all: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/build.make examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/build.make examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.example.monte_carlo_disjoint_sequences" +.PHONY : examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/rule + +# Convenience name for target. +thrust.example.monte_carlo_disjoint_sequences: examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/rule +.PHONY : thrust.example.monte_carlo_disjoint_sequences + +# clean rule for target. +examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/build.make examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/clean +.PHONY : examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.all.example.monte_carlo_disjoint_sequences.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.all.example.monte_carlo_disjoint_sequences.dir/all: examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/all + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.monte_carlo_disjoint_sequences.dir/build.make examples/CMakeFiles/thrust.all.example.monte_carlo_disjoint_sequences.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.monte_carlo_disjoint_sequences.dir/build.make examples/CMakeFiles/thrust.all.example.monte_carlo_disjoint_sequences.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.monte_carlo_disjoint_sequences" +.PHONY : examples/CMakeFiles/thrust.all.example.monte_carlo_disjoint_sequences.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.all.example.monte_carlo_disjoint_sequences.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.monte_carlo_disjoint_sequences.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.all.example.monte_carlo_disjoint_sequences.dir/rule + +# Convenience name for target. +thrust.all.example.monte_carlo_disjoint_sequences: examples/CMakeFiles/thrust.all.example.monte_carlo_disjoint_sequences.dir/rule +.PHONY : thrust.all.example.monte_carlo_disjoint_sequences + +# clean rule for target. +examples/CMakeFiles/thrust.all.example.monte_carlo_disjoint_sequences.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.monte_carlo_disjoint_sequences.dir/build.make examples/CMakeFiles/thrust.all.example.monte_carlo_disjoint_sequences.dir/clean +.PHONY : examples/CMakeFiles/thrust.all.example.monte_carlo_disjoint_sequences.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.example.mr_basic.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.example.mr_basic.dir/all: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.mr_basic.dir/build.make examples/CMakeFiles/thrust.example.mr_basic.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.mr_basic.dir/build.make examples/CMakeFiles/thrust.example.mr_basic.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.example.mr_basic" +.PHONY : examples/CMakeFiles/thrust.example.mr_basic.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.example.mr_basic.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.mr_basic.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.example.mr_basic.dir/rule + +# Convenience name for target. +thrust.example.mr_basic: examples/CMakeFiles/thrust.example.mr_basic.dir/rule +.PHONY : thrust.example.mr_basic + +# clean rule for target. +examples/CMakeFiles/thrust.example.mr_basic.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.mr_basic.dir/build.make examples/CMakeFiles/thrust.example.mr_basic.dir/clean +.PHONY : examples/CMakeFiles/thrust.example.mr_basic.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.all.example.mr_basic.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.all.example.mr_basic.dir/all: examples/CMakeFiles/thrust.example.mr_basic.dir/all + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.mr_basic.dir/build.make examples/CMakeFiles/thrust.all.example.mr_basic.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.mr_basic.dir/build.make examples/CMakeFiles/thrust.all.example.mr_basic.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.mr_basic" +.PHONY : examples/CMakeFiles/thrust.all.example.mr_basic.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.all.example.mr_basic.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.mr_basic.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.all.example.mr_basic.dir/rule + +# Convenience name for target. +thrust.all.example.mr_basic: examples/CMakeFiles/thrust.all.example.mr_basic.dir/rule +.PHONY : thrust.all.example.mr_basic + +# clean rule for target. +examples/CMakeFiles/thrust.all.example.mr_basic.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.mr_basic.dir/build.make examples/CMakeFiles/thrust.all.example.mr_basic.dir/clean +.PHONY : examples/CMakeFiles/thrust.all.example.mr_basic.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.example.norm.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.example.norm.dir/all: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.norm.dir/build.make examples/CMakeFiles/thrust.example.norm.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.norm.dir/build.make examples/CMakeFiles/thrust.example.norm.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.example.norm" +.PHONY : examples/CMakeFiles/thrust.example.norm.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.example.norm.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.norm.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.example.norm.dir/rule + +# Convenience name for target. +thrust.example.norm: examples/CMakeFiles/thrust.example.norm.dir/rule +.PHONY : thrust.example.norm + +# clean rule for target. +examples/CMakeFiles/thrust.example.norm.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.norm.dir/build.make examples/CMakeFiles/thrust.example.norm.dir/clean +.PHONY : examples/CMakeFiles/thrust.example.norm.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.all.example.norm.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.all.example.norm.dir/all: examples/CMakeFiles/thrust.example.norm.dir/all + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.norm.dir/build.make examples/CMakeFiles/thrust.all.example.norm.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.norm.dir/build.make examples/CMakeFiles/thrust.all.example.norm.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.norm" +.PHONY : examples/CMakeFiles/thrust.all.example.norm.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.all.example.norm.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.norm.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.all.example.norm.dir/rule + +# Convenience name for target. +thrust.all.example.norm: examples/CMakeFiles/thrust.all.example.norm.dir/rule +.PHONY : thrust.all.example.norm + +# clean rule for target. +examples/CMakeFiles/thrust.all.example.norm.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.norm.dir/build.make examples/CMakeFiles/thrust.all.example.norm.dir/clean +.PHONY : examples/CMakeFiles/thrust.all.example.norm.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.example.padded_grid_reduction.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/all: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/build.make examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/build.make examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.example.padded_grid_reduction" +.PHONY : examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/rule + +# Convenience name for target. +thrust.example.padded_grid_reduction: examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/rule +.PHONY : thrust.example.padded_grid_reduction + +# clean rule for target. +examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/build.make examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/clean +.PHONY : examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.all.example.padded_grid_reduction.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.all.example.padded_grid_reduction.dir/all: examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/all + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.padded_grid_reduction.dir/build.make examples/CMakeFiles/thrust.all.example.padded_grid_reduction.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.padded_grid_reduction.dir/build.make examples/CMakeFiles/thrust.all.example.padded_grid_reduction.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.padded_grid_reduction" +.PHONY : examples/CMakeFiles/thrust.all.example.padded_grid_reduction.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.all.example.padded_grid_reduction.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.padded_grid_reduction.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.all.example.padded_grid_reduction.dir/rule + +# Convenience name for target. +thrust.all.example.padded_grid_reduction: examples/CMakeFiles/thrust.all.example.padded_grid_reduction.dir/rule +.PHONY : thrust.all.example.padded_grid_reduction + +# clean rule for target. +examples/CMakeFiles/thrust.all.example.padded_grid_reduction.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.padded_grid_reduction.dir/build.make examples/CMakeFiles/thrust.all.example.padded_grid_reduction.dir/clean +.PHONY : examples/CMakeFiles/thrust.all.example.padded_grid_reduction.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.example.permutation_iterator.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.example.permutation_iterator.dir/all: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.permutation_iterator.dir/build.make examples/CMakeFiles/thrust.example.permutation_iterator.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.permutation_iterator.dir/build.make examples/CMakeFiles/thrust.example.permutation_iterator.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=45 "Built target thrust.example.permutation_iterator" +.PHONY : examples/CMakeFiles/thrust.example.permutation_iterator.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.example.permutation_iterator.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.permutation_iterator.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.example.permutation_iterator.dir/rule + +# Convenience name for target. +thrust.example.permutation_iterator: examples/CMakeFiles/thrust.example.permutation_iterator.dir/rule +.PHONY : thrust.example.permutation_iterator + +# clean rule for target. +examples/CMakeFiles/thrust.example.permutation_iterator.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.permutation_iterator.dir/build.make examples/CMakeFiles/thrust.example.permutation_iterator.dir/clean +.PHONY : examples/CMakeFiles/thrust.example.permutation_iterator.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.all.example.permutation_iterator.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.all.example.permutation_iterator.dir/all: examples/CMakeFiles/thrust.example.permutation_iterator.dir/all + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.permutation_iterator.dir/build.make examples/CMakeFiles/thrust.all.example.permutation_iterator.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.permutation_iterator.dir/build.make examples/CMakeFiles/thrust.all.example.permutation_iterator.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.permutation_iterator" +.PHONY : examples/CMakeFiles/thrust.all.example.permutation_iterator.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.all.example.permutation_iterator.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.permutation_iterator.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.all.example.permutation_iterator.dir/rule + +# Convenience name for target. +thrust.all.example.permutation_iterator: examples/CMakeFiles/thrust.all.example.permutation_iterator.dir/rule +.PHONY : thrust.all.example.permutation_iterator + +# clean rule for target. +examples/CMakeFiles/thrust.all.example.permutation_iterator.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.permutation_iterator.dir/build.make examples/CMakeFiles/thrust.all.example.permutation_iterator.dir/clean +.PHONY : examples/CMakeFiles/thrust.all.example.permutation_iterator.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.example.raw_reference_cast.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.example.raw_reference_cast.dir/all: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.raw_reference_cast.dir/build.make examples/CMakeFiles/thrust.example.raw_reference_cast.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.raw_reference_cast.dir/build.make examples/CMakeFiles/thrust.example.raw_reference_cast.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.example.raw_reference_cast" +.PHONY : examples/CMakeFiles/thrust.example.raw_reference_cast.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.example.raw_reference_cast.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.raw_reference_cast.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.example.raw_reference_cast.dir/rule + +# Convenience name for target. +thrust.example.raw_reference_cast: examples/CMakeFiles/thrust.example.raw_reference_cast.dir/rule +.PHONY : thrust.example.raw_reference_cast + +# clean rule for target. +examples/CMakeFiles/thrust.example.raw_reference_cast.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.raw_reference_cast.dir/build.make examples/CMakeFiles/thrust.example.raw_reference_cast.dir/clean +.PHONY : examples/CMakeFiles/thrust.example.raw_reference_cast.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.all.example.raw_reference_cast.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.all.example.raw_reference_cast.dir/all: examples/CMakeFiles/thrust.example.raw_reference_cast.dir/all + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.raw_reference_cast.dir/build.make examples/CMakeFiles/thrust.all.example.raw_reference_cast.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.raw_reference_cast.dir/build.make examples/CMakeFiles/thrust.all.example.raw_reference_cast.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.raw_reference_cast" +.PHONY : examples/CMakeFiles/thrust.all.example.raw_reference_cast.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.all.example.raw_reference_cast.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.raw_reference_cast.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.all.example.raw_reference_cast.dir/rule + +# Convenience name for target. +thrust.all.example.raw_reference_cast: examples/CMakeFiles/thrust.all.example.raw_reference_cast.dir/rule +.PHONY : thrust.all.example.raw_reference_cast + +# clean rule for target. +examples/CMakeFiles/thrust.all.example.raw_reference_cast.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.raw_reference_cast.dir/build.make examples/CMakeFiles/thrust.all.example.raw_reference_cast.dir/clean +.PHONY : examples/CMakeFiles/thrust.all.example.raw_reference_cast.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.example.remove_points2d.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.example.remove_points2d.dir/all: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.remove_points2d.dir/build.make examples/CMakeFiles/thrust.example.remove_points2d.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.remove_points2d.dir/build.make examples/CMakeFiles/thrust.example.remove_points2d.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.example.remove_points2d" +.PHONY : examples/CMakeFiles/thrust.example.remove_points2d.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.example.remove_points2d.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.remove_points2d.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.example.remove_points2d.dir/rule + +# Convenience name for target. +thrust.example.remove_points2d: examples/CMakeFiles/thrust.example.remove_points2d.dir/rule +.PHONY : thrust.example.remove_points2d + +# clean rule for target. +examples/CMakeFiles/thrust.example.remove_points2d.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.remove_points2d.dir/build.make examples/CMakeFiles/thrust.example.remove_points2d.dir/clean +.PHONY : examples/CMakeFiles/thrust.example.remove_points2d.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.all.example.remove_points2d.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.all.example.remove_points2d.dir/all: examples/CMakeFiles/thrust.example.remove_points2d.dir/all + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.remove_points2d.dir/build.make examples/CMakeFiles/thrust.all.example.remove_points2d.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.remove_points2d.dir/build.make examples/CMakeFiles/thrust.all.example.remove_points2d.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.remove_points2d" +.PHONY : examples/CMakeFiles/thrust.all.example.remove_points2d.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.all.example.remove_points2d.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.remove_points2d.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.all.example.remove_points2d.dir/rule + +# Convenience name for target. +thrust.all.example.remove_points2d: examples/CMakeFiles/thrust.all.example.remove_points2d.dir/rule +.PHONY : thrust.all.example.remove_points2d + +# clean rule for target. +examples/CMakeFiles/thrust.all.example.remove_points2d.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.remove_points2d.dir/build.make examples/CMakeFiles/thrust.all.example.remove_points2d.dir/clean +.PHONY : examples/CMakeFiles/thrust.all.example.remove_points2d.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.example.repeated_range.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.example.repeated_range.dir/all: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.repeated_range.dir/build.make examples/CMakeFiles/thrust.example.repeated_range.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.repeated_range.dir/build.make examples/CMakeFiles/thrust.example.repeated_range.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.example.repeated_range" +.PHONY : examples/CMakeFiles/thrust.example.repeated_range.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.example.repeated_range.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.repeated_range.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.example.repeated_range.dir/rule + +# Convenience name for target. +thrust.example.repeated_range: examples/CMakeFiles/thrust.example.repeated_range.dir/rule +.PHONY : thrust.example.repeated_range + +# clean rule for target. +examples/CMakeFiles/thrust.example.repeated_range.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.repeated_range.dir/build.make examples/CMakeFiles/thrust.example.repeated_range.dir/clean +.PHONY : examples/CMakeFiles/thrust.example.repeated_range.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.all.example.repeated_range.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.all.example.repeated_range.dir/all: examples/CMakeFiles/thrust.example.repeated_range.dir/all + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.repeated_range.dir/build.make examples/CMakeFiles/thrust.all.example.repeated_range.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.repeated_range.dir/build.make examples/CMakeFiles/thrust.all.example.repeated_range.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.repeated_range" +.PHONY : examples/CMakeFiles/thrust.all.example.repeated_range.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.all.example.repeated_range.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.repeated_range.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.all.example.repeated_range.dir/rule + +# Convenience name for target. +thrust.all.example.repeated_range: examples/CMakeFiles/thrust.all.example.repeated_range.dir/rule +.PHONY : thrust.all.example.repeated_range + +# clean rule for target. +examples/CMakeFiles/thrust.all.example.repeated_range.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.repeated_range.dir/build.make examples/CMakeFiles/thrust.all.example.repeated_range.dir/clean +.PHONY : examples/CMakeFiles/thrust.all.example.repeated_range.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.example.run_length_decoding.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.example.run_length_decoding.dir/all: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.run_length_decoding.dir/build.make examples/CMakeFiles/thrust.example.run_length_decoding.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.run_length_decoding.dir/build.make examples/CMakeFiles/thrust.example.run_length_decoding.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.example.run_length_decoding" +.PHONY : examples/CMakeFiles/thrust.example.run_length_decoding.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.example.run_length_decoding.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.run_length_decoding.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.example.run_length_decoding.dir/rule + +# Convenience name for target. +thrust.example.run_length_decoding: examples/CMakeFiles/thrust.example.run_length_decoding.dir/rule +.PHONY : thrust.example.run_length_decoding + +# clean rule for target. +examples/CMakeFiles/thrust.example.run_length_decoding.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.run_length_decoding.dir/build.make examples/CMakeFiles/thrust.example.run_length_decoding.dir/clean +.PHONY : examples/CMakeFiles/thrust.example.run_length_decoding.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.all.example.run_length_decoding.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.all.example.run_length_decoding.dir/all: examples/CMakeFiles/thrust.example.run_length_decoding.dir/all + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.run_length_decoding.dir/build.make examples/CMakeFiles/thrust.all.example.run_length_decoding.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.run_length_decoding.dir/build.make examples/CMakeFiles/thrust.all.example.run_length_decoding.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.run_length_decoding" +.PHONY : examples/CMakeFiles/thrust.all.example.run_length_decoding.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.all.example.run_length_decoding.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.run_length_decoding.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.all.example.run_length_decoding.dir/rule + +# Convenience name for target. +thrust.all.example.run_length_decoding: examples/CMakeFiles/thrust.all.example.run_length_decoding.dir/rule +.PHONY : thrust.all.example.run_length_decoding + +# clean rule for target. +examples/CMakeFiles/thrust.all.example.run_length_decoding.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.run_length_decoding.dir/build.make examples/CMakeFiles/thrust.all.example.run_length_decoding.dir/clean +.PHONY : examples/CMakeFiles/thrust.all.example.run_length_decoding.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.example.run_length_encoding.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.example.run_length_encoding.dir/all: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.run_length_encoding.dir/build.make examples/CMakeFiles/thrust.example.run_length_encoding.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.run_length_encoding.dir/build.make examples/CMakeFiles/thrust.example.run_length_encoding.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.example.run_length_encoding" +.PHONY : examples/CMakeFiles/thrust.example.run_length_encoding.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.example.run_length_encoding.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.run_length_encoding.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.example.run_length_encoding.dir/rule + +# Convenience name for target. +thrust.example.run_length_encoding: examples/CMakeFiles/thrust.example.run_length_encoding.dir/rule +.PHONY : thrust.example.run_length_encoding + +# clean rule for target. +examples/CMakeFiles/thrust.example.run_length_encoding.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.run_length_encoding.dir/build.make examples/CMakeFiles/thrust.example.run_length_encoding.dir/clean +.PHONY : examples/CMakeFiles/thrust.example.run_length_encoding.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.all.example.run_length_encoding.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.all.example.run_length_encoding.dir/all: examples/CMakeFiles/thrust.example.run_length_encoding.dir/all + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.run_length_encoding.dir/build.make examples/CMakeFiles/thrust.all.example.run_length_encoding.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.run_length_encoding.dir/build.make examples/CMakeFiles/thrust.all.example.run_length_encoding.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.run_length_encoding" +.PHONY : examples/CMakeFiles/thrust.all.example.run_length_encoding.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.all.example.run_length_encoding.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.run_length_encoding.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.all.example.run_length_encoding.dir/rule + +# Convenience name for target. +thrust.all.example.run_length_encoding: examples/CMakeFiles/thrust.all.example.run_length_encoding.dir/rule +.PHONY : thrust.all.example.run_length_encoding + +# clean rule for target. +examples/CMakeFiles/thrust.all.example.run_length_encoding.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.run_length_encoding.dir/build.make examples/CMakeFiles/thrust.all.example.run_length_encoding.dir/clean +.PHONY : examples/CMakeFiles/thrust.all.example.run_length_encoding.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.example.saxpy.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.example.saxpy.dir/all: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.saxpy.dir/build.make examples/CMakeFiles/thrust.example.saxpy.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.saxpy.dir/build.make examples/CMakeFiles/thrust.example.saxpy.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=46 "Built target thrust.example.saxpy" +.PHONY : examples/CMakeFiles/thrust.example.saxpy.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.example.saxpy.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.saxpy.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.example.saxpy.dir/rule + +# Convenience name for target. +thrust.example.saxpy: examples/CMakeFiles/thrust.example.saxpy.dir/rule +.PHONY : thrust.example.saxpy + +# clean rule for target. +examples/CMakeFiles/thrust.example.saxpy.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.saxpy.dir/build.make examples/CMakeFiles/thrust.example.saxpy.dir/clean +.PHONY : examples/CMakeFiles/thrust.example.saxpy.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.all.example.saxpy.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.all.example.saxpy.dir/all: examples/CMakeFiles/thrust.example.saxpy.dir/all + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.saxpy.dir/build.make examples/CMakeFiles/thrust.all.example.saxpy.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.saxpy.dir/build.make examples/CMakeFiles/thrust.all.example.saxpy.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.saxpy" +.PHONY : examples/CMakeFiles/thrust.all.example.saxpy.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.all.example.saxpy.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.saxpy.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.all.example.saxpy.dir/rule + +# Convenience name for target. +thrust.all.example.saxpy: examples/CMakeFiles/thrust.all.example.saxpy.dir/rule +.PHONY : thrust.all.example.saxpy + +# clean rule for target. +examples/CMakeFiles/thrust.all.example.saxpy.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.saxpy.dir/build.make examples/CMakeFiles/thrust.all.example.saxpy.dir/clean +.PHONY : examples/CMakeFiles/thrust.all.example.saxpy.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.example.scan_by_key.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.example.scan_by_key.dir/all: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.scan_by_key.dir/build.make examples/CMakeFiles/thrust.example.scan_by_key.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.scan_by_key.dir/build.make examples/CMakeFiles/thrust.example.scan_by_key.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.example.scan_by_key" +.PHONY : examples/CMakeFiles/thrust.example.scan_by_key.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.example.scan_by_key.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.scan_by_key.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.example.scan_by_key.dir/rule + +# Convenience name for target. +thrust.example.scan_by_key: examples/CMakeFiles/thrust.example.scan_by_key.dir/rule +.PHONY : thrust.example.scan_by_key + +# clean rule for target. +examples/CMakeFiles/thrust.example.scan_by_key.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.scan_by_key.dir/build.make examples/CMakeFiles/thrust.example.scan_by_key.dir/clean +.PHONY : examples/CMakeFiles/thrust.example.scan_by_key.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.all.example.scan_by_key.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.all.example.scan_by_key.dir/all: examples/CMakeFiles/thrust.example.scan_by_key.dir/all + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.scan_by_key.dir/build.make examples/CMakeFiles/thrust.all.example.scan_by_key.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.scan_by_key.dir/build.make examples/CMakeFiles/thrust.all.example.scan_by_key.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.scan_by_key" +.PHONY : examples/CMakeFiles/thrust.all.example.scan_by_key.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.all.example.scan_by_key.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.scan_by_key.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.all.example.scan_by_key.dir/rule + +# Convenience name for target. +thrust.all.example.scan_by_key: examples/CMakeFiles/thrust.all.example.scan_by_key.dir/rule +.PHONY : thrust.all.example.scan_by_key + +# clean rule for target. +examples/CMakeFiles/thrust.all.example.scan_by_key.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.scan_by_key.dir/build.make examples/CMakeFiles/thrust.all.example.scan_by_key.dir/clean +.PHONY : examples/CMakeFiles/thrust.all.example.scan_by_key.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/all: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/build.make examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/build.make examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.example.scan_matrix_by_rows" +.PHONY : examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/rule + +# Convenience name for target. +thrust.example.scan_matrix_by_rows: examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/rule +.PHONY : thrust.example.scan_matrix_by_rows + +# clean rule for target. +examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/build.make examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/clean +.PHONY : examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.all.example.scan_matrix_by_rows.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.all.example.scan_matrix_by_rows.dir/all: examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/all + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.scan_matrix_by_rows.dir/build.make examples/CMakeFiles/thrust.all.example.scan_matrix_by_rows.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.scan_matrix_by_rows.dir/build.make examples/CMakeFiles/thrust.all.example.scan_matrix_by_rows.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.scan_matrix_by_rows" +.PHONY : examples/CMakeFiles/thrust.all.example.scan_matrix_by_rows.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.all.example.scan_matrix_by_rows.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.scan_matrix_by_rows.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.all.example.scan_matrix_by_rows.dir/rule + +# Convenience name for target. +thrust.all.example.scan_matrix_by_rows: examples/CMakeFiles/thrust.all.example.scan_matrix_by_rows.dir/rule +.PHONY : thrust.all.example.scan_matrix_by_rows + +# clean rule for target. +examples/CMakeFiles/thrust.all.example.scan_matrix_by_rows.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.scan_matrix_by_rows.dir/build.make examples/CMakeFiles/thrust.all.example.scan_matrix_by_rows.dir/clean +.PHONY : examples/CMakeFiles/thrust.all.example.scan_matrix_by_rows.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.example.set_operations.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.example.set_operations.dir/all: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.set_operations.dir/build.make examples/CMakeFiles/thrust.example.set_operations.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.set_operations.dir/build.make examples/CMakeFiles/thrust.example.set_operations.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.example.set_operations" +.PHONY : examples/CMakeFiles/thrust.example.set_operations.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.example.set_operations.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.set_operations.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.example.set_operations.dir/rule + +# Convenience name for target. +thrust.example.set_operations: examples/CMakeFiles/thrust.example.set_operations.dir/rule +.PHONY : thrust.example.set_operations + +# clean rule for target. +examples/CMakeFiles/thrust.example.set_operations.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.set_operations.dir/build.make examples/CMakeFiles/thrust.example.set_operations.dir/clean +.PHONY : examples/CMakeFiles/thrust.example.set_operations.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.all.example.set_operations.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.all.example.set_operations.dir/all: examples/CMakeFiles/thrust.example.set_operations.dir/all + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.set_operations.dir/build.make examples/CMakeFiles/thrust.all.example.set_operations.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.set_operations.dir/build.make examples/CMakeFiles/thrust.all.example.set_operations.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.set_operations" +.PHONY : examples/CMakeFiles/thrust.all.example.set_operations.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.all.example.set_operations.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.set_operations.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.all.example.set_operations.dir/rule + +# Convenience name for target. +thrust.all.example.set_operations: examples/CMakeFiles/thrust.all.example.set_operations.dir/rule +.PHONY : thrust.all.example.set_operations + +# clean rule for target. +examples/CMakeFiles/thrust.all.example.set_operations.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.set_operations.dir/build.make examples/CMakeFiles/thrust.all.example.set_operations.dir/clean +.PHONY : examples/CMakeFiles/thrust.all.example.set_operations.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.example.simple_moving_average.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.example.simple_moving_average.dir/all: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.simple_moving_average.dir/build.make examples/CMakeFiles/thrust.example.simple_moving_average.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.simple_moving_average.dir/build.make examples/CMakeFiles/thrust.example.simple_moving_average.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.example.simple_moving_average" +.PHONY : examples/CMakeFiles/thrust.example.simple_moving_average.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.example.simple_moving_average.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.simple_moving_average.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.example.simple_moving_average.dir/rule + +# Convenience name for target. +thrust.example.simple_moving_average: examples/CMakeFiles/thrust.example.simple_moving_average.dir/rule +.PHONY : thrust.example.simple_moving_average + +# clean rule for target. +examples/CMakeFiles/thrust.example.simple_moving_average.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.simple_moving_average.dir/build.make examples/CMakeFiles/thrust.example.simple_moving_average.dir/clean +.PHONY : examples/CMakeFiles/thrust.example.simple_moving_average.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.all.example.simple_moving_average.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.all.example.simple_moving_average.dir/all: examples/CMakeFiles/thrust.example.simple_moving_average.dir/all + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.simple_moving_average.dir/build.make examples/CMakeFiles/thrust.all.example.simple_moving_average.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.simple_moving_average.dir/build.make examples/CMakeFiles/thrust.all.example.simple_moving_average.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.simple_moving_average" +.PHONY : examples/CMakeFiles/thrust.all.example.simple_moving_average.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.all.example.simple_moving_average.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.simple_moving_average.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.all.example.simple_moving_average.dir/rule + +# Convenience name for target. +thrust.all.example.simple_moving_average: examples/CMakeFiles/thrust.all.example.simple_moving_average.dir/rule +.PHONY : thrust.all.example.simple_moving_average + +# clean rule for target. +examples/CMakeFiles/thrust.all.example.simple_moving_average.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.simple_moving_average.dir/build.make examples/CMakeFiles/thrust.all.example.simple_moving_average.dir/clean +.PHONY : examples/CMakeFiles/thrust.all.example.simple_moving_average.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.example.sort.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.example.sort.dir/all: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.sort.dir/build.make examples/CMakeFiles/thrust.example.sort.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.sort.dir/build.make examples/CMakeFiles/thrust.example.sort.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.example.sort" +.PHONY : examples/CMakeFiles/thrust.example.sort.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.example.sort.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.sort.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.example.sort.dir/rule + +# Convenience name for target. +thrust.example.sort: examples/CMakeFiles/thrust.example.sort.dir/rule +.PHONY : thrust.example.sort + +# clean rule for target. +examples/CMakeFiles/thrust.example.sort.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.sort.dir/build.make examples/CMakeFiles/thrust.example.sort.dir/clean +.PHONY : examples/CMakeFiles/thrust.example.sort.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.all.example.sort.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.all.example.sort.dir/all: examples/CMakeFiles/thrust.example.sort.dir/all + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.sort.dir/build.make examples/CMakeFiles/thrust.all.example.sort.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.sort.dir/build.make examples/CMakeFiles/thrust.all.example.sort.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.sort" +.PHONY : examples/CMakeFiles/thrust.all.example.sort.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.all.example.sort.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.sort.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.all.example.sort.dir/rule + +# Convenience name for target. +thrust.all.example.sort: examples/CMakeFiles/thrust.all.example.sort.dir/rule +.PHONY : thrust.all.example.sort + +# clean rule for target. +examples/CMakeFiles/thrust.all.example.sort.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.sort.dir/build.make examples/CMakeFiles/thrust.all.example.sort.dir/clean +.PHONY : examples/CMakeFiles/thrust.all.example.sort.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/all: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/build.make examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/build.make examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=47 "Built target thrust.example.sorting_aos_vs_soa" +.PHONY : examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/rule + +# Convenience name for target. +thrust.example.sorting_aos_vs_soa: examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/rule +.PHONY : thrust.example.sorting_aos_vs_soa + +# clean rule for target. +examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/build.make examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/clean +.PHONY : examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.all.example.sorting_aos_vs_soa.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.all.example.sorting_aos_vs_soa.dir/all: examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/all + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.sorting_aos_vs_soa.dir/build.make examples/CMakeFiles/thrust.all.example.sorting_aos_vs_soa.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.sorting_aos_vs_soa.dir/build.make examples/CMakeFiles/thrust.all.example.sorting_aos_vs_soa.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.sorting_aos_vs_soa" +.PHONY : examples/CMakeFiles/thrust.all.example.sorting_aos_vs_soa.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.all.example.sorting_aos_vs_soa.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.sorting_aos_vs_soa.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.all.example.sorting_aos_vs_soa.dir/rule + +# Convenience name for target. +thrust.all.example.sorting_aos_vs_soa: examples/CMakeFiles/thrust.all.example.sorting_aos_vs_soa.dir/rule +.PHONY : thrust.all.example.sorting_aos_vs_soa + +# clean rule for target. +examples/CMakeFiles/thrust.all.example.sorting_aos_vs_soa.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.sorting_aos_vs_soa.dir/build.make examples/CMakeFiles/thrust.all.example.sorting_aos_vs_soa.dir/clean +.PHONY : examples/CMakeFiles/thrust.all.example.sorting_aos_vs_soa.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.example.sparse_vector.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.example.sparse_vector.dir/all: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.sparse_vector.dir/build.make examples/CMakeFiles/thrust.example.sparse_vector.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.sparse_vector.dir/build.make examples/CMakeFiles/thrust.example.sparse_vector.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.example.sparse_vector" +.PHONY : examples/CMakeFiles/thrust.example.sparse_vector.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.example.sparse_vector.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.sparse_vector.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.example.sparse_vector.dir/rule + +# Convenience name for target. +thrust.example.sparse_vector: examples/CMakeFiles/thrust.example.sparse_vector.dir/rule +.PHONY : thrust.example.sparse_vector + +# clean rule for target. +examples/CMakeFiles/thrust.example.sparse_vector.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.sparse_vector.dir/build.make examples/CMakeFiles/thrust.example.sparse_vector.dir/clean +.PHONY : examples/CMakeFiles/thrust.example.sparse_vector.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.all.example.sparse_vector.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.all.example.sparse_vector.dir/all: examples/CMakeFiles/thrust.example.sparse_vector.dir/all + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.sparse_vector.dir/build.make examples/CMakeFiles/thrust.all.example.sparse_vector.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.sparse_vector.dir/build.make examples/CMakeFiles/thrust.all.example.sparse_vector.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.sparse_vector" +.PHONY : examples/CMakeFiles/thrust.all.example.sparse_vector.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.all.example.sparse_vector.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.sparse_vector.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.all.example.sparse_vector.dir/rule + +# Convenience name for target. +thrust.all.example.sparse_vector: examples/CMakeFiles/thrust.all.example.sparse_vector.dir/rule +.PHONY : thrust.all.example.sparse_vector + +# clean rule for target. +examples/CMakeFiles/thrust.all.example.sparse_vector.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.sparse_vector.dir/build.make examples/CMakeFiles/thrust.all.example.sparse_vector.dir/clean +.PHONY : examples/CMakeFiles/thrust.all.example.sparse_vector.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.example.stream_compaction.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.example.stream_compaction.dir/all: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.stream_compaction.dir/build.make examples/CMakeFiles/thrust.example.stream_compaction.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.stream_compaction.dir/build.make examples/CMakeFiles/thrust.example.stream_compaction.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.example.stream_compaction" +.PHONY : examples/CMakeFiles/thrust.example.stream_compaction.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.example.stream_compaction.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.stream_compaction.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.example.stream_compaction.dir/rule + +# Convenience name for target. +thrust.example.stream_compaction: examples/CMakeFiles/thrust.example.stream_compaction.dir/rule +.PHONY : thrust.example.stream_compaction + +# clean rule for target. +examples/CMakeFiles/thrust.example.stream_compaction.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.stream_compaction.dir/build.make examples/CMakeFiles/thrust.example.stream_compaction.dir/clean +.PHONY : examples/CMakeFiles/thrust.example.stream_compaction.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.all.example.stream_compaction.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.all.example.stream_compaction.dir/all: examples/CMakeFiles/thrust.example.stream_compaction.dir/all + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.stream_compaction.dir/build.make examples/CMakeFiles/thrust.all.example.stream_compaction.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.stream_compaction.dir/build.make examples/CMakeFiles/thrust.all.example.stream_compaction.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.stream_compaction" +.PHONY : examples/CMakeFiles/thrust.all.example.stream_compaction.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.all.example.stream_compaction.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.stream_compaction.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.all.example.stream_compaction.dir/rule + +# Convenience name for target. +thrust.all.example.stream_compaction: examples/CMakeFiles/thrust.all.example.stream_compaction.dir/rule +.PHONY : thrust.all.example.stream_compaction + +# clean rule for target. +examples/CMakeFiles/thrust.all.example.stream_compaction.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.stream_compaction.dir/build.make examples/CMakeFiles/thrust.all.example.stream_compaction.dir/clean +.PHONY : examples/CMakeFiles/thrust.all.example.stream_compaction.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.example.strided_range.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.example.strided_range.dir/all: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.strided_range.dir/build.make examples/CMakeFiles/thrust.example.strided_range.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.strided_range.dir/build.make examples/CMakeFiles/thrust.example.strided_range.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.example.strided_range" +.PHONY : examples/CMakeFiles/thrust.example.strided_range.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.example.strided_range.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.strided_range.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.example.strided_range.dir/rule + +# Convenience name for target. +thrust.example.strided_range: examples/CMakeFiles/thrust.example.strided_range.dir/rule +.PHONY : thrust.example.strided_range + +# clean rule for target. +examples/CMakeFiles/thrust.example.strided_range.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.strided_range.dir/build.make examples/CMakeFiles/thrust.example.strided_range.dir/clean +.PHONY : examples/CMakeFiles/thrust.example.strided_range.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.all.example.strided_range.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.all.example.strided_range.dir/all: examples/CMakeFiles/thrust.example.strided_range.dir/all + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.strided_range.dir/build.make examples/CMakeFiles/thrust.all.example.strided_range.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.strided_range.dir/build.make examples/CMakeFiles/thrust.all.example.strided_range.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.strided_range" +.PHONY : examples/CMakeFiles/thrust.all.example.strided_range.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.all.example.strided_range.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.strided_range.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.all.example.strided_range.dir/rule + +# Convenience name for target. +thrust.all.example.strided_range: examples/CMakeFiles/thrust.all.example.strided_range.dir/rule +.PHONY : thrust.all.example.strided_range + +# clean rule for target. +examples/CMakeFiles/thrust.all.example.strided_range.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.strided_range.dir/build.make examples/CMakeFiles/thrust.all.example.strided_range.dir/clean +.PHONY : examples/CMakeFiles/thrust.all.example.strided_range.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.example.sum.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.example.sum.dir/all: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.sum.dir/build.make examples/CMakeFiles/thrust.example.sum.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.sum.dir/build.make examples/CMakeFiles/thrust.example.sum.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.example.sum" +.PHONY : examples/CMakeFiles/thrust.example.sum.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.example.sum.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.sum.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.example.sum.dir/rule + +# Convenience name for target. +thrust.example.sum: examples/CMakeFiles/thrust.example.sum.dir/rule +.PHONY : thrust.example.sum + +# clean rule for target. +examples/CMakeFiles/thrust.example.sum.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.sum.dir/build.make examples/CMakeFiles/thrust.example.sum.dir/clean +.PHONY : examples/CMakeFiles/thrust.example.sum.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.all.example.sum.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.all.example.sum.dir/all: examples/CMakeFiles/thrust.example.sum.dir/all + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.sum.dir/build.make examples/CMakeFiles/thrust.all.example.sum.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.sum.dir/build.make examples/CMakeFiles/thrust.all.example.sum.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.sum" +.PHONY : examples/CMakeFiles/thrust.all.example.sum.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.all.example.sum.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.sum.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.all.example.sum.dir/rule + +# Convenience name for target. +thrust.all.example.sum: examples/CMakeFiles/thrust.all.example.sum.dir/rule +.PHONY : thrust.all.example.sum + +# clean rule for target. +examples/CMakeFiles/thrust.all.example.sum.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.sum.dir/build.make examples/CMakeFiles/thrust.all.example.sum.dir/clean +.PHONY : examples/CMakeFiles/thrust.all.example.sum.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.example.sum_rows.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.example.sum_rows.dir/all: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.sum_rows.dir/build.make examples/CMakeFiles/thrust.example.sum_rows.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.sum_rows.dir/build.make examples/CMakeFiles/thrust.example.sum_rows.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.example.sum_rows" +.PHONY : examples/CMakeFiles/thrust.example.sum_rows.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.example.sum_rows.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.sum_rows.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.example.sum_rows.dir/rule + +# Convenience name for target. +thrust.example.sum_rows: examples/CMakeFiles/thrust.example.sum_rows.dir/rule +.PHONY : thrust.example.sum_rows + +# clean rule for target. +examples/CMakeFiles/thrust.example.sum_rows.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.sum_rows.dir/build.make examples/CMakeFiles/thrust.example.sum_rows.dir/clean +.PHONY : examples/CMakeFiles/thrust.example.sum_rows.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.all.example.sum_rows.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.all.example.sum_rows.dir/all: examples/CMakeFiles/thrust.example.sum_rows.dir/all + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.sum_rows.dir/build.make examples/CMakeFiles/thrust.all.example.sum_rows.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.sum_rows.dir/build.make examples/CMakeFiles/thrust.all.example.sum_rows.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.sum_rows" +.PHONY : examples/CMakeFiles/thrust.all.example.sum_rows.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.all.example.sum_rows.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.sum_rows.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.all.example.sum_rows.dir/rule + +# Convenience name for target. +thrust.all.example.sum_rows: examples/CMakeFiles/thrust.all.example.sum_rows.dir/rule +.PHONY : thrust.all.example.sum_rows + +# clean rule for target. +examples/CMakeFiles/thrust.all.example.sum_rows.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.sum_rows.dir/build.make examples/CMakeFiles/thrust.all.example.sum_rows.dir/clean +.PHONY : examples/CMakeFiles/thrust.all.example.sum_rows.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.example.summary_statistics.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.example.summary_statistics.dir/all: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.summary_statistics.dir/build.make examples/CMakeFiles/thrust.example.summary_statistics.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.summary_statistics.dir/build.make examples/CMakeFiles/thrust.example.summary_statistics.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=48 "Built target thrust.example.summary_statistics" +.PHONY : examples/CMakeFiles/thrust.example.summary_statistics.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.example.summary_statistics.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.summary_statistics.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.example.summary_statistics.dir/rule + +# Convenience name for target. +thrust.example.summary_statistics: examples/CMakeFiles/thrust.example.summary_statistics.dir/rule +.PHONY : thrust.example.summary_statistics + +# clean rule for target. +examples/CMakeFiles/thrust.example.summary_statistics.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.summary_statistics.dir/build.make examples/CMakeFiles/thrust.example.summary_statistics.dir/clean +.PHONY : examples/CMakeFiles/thrust.example.summary_statistics.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.all.example.summary_statistics.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.all.example.summary_statistics.dir/all: examples/CMakeFiles/thrust.example.summary_statistics.dir/all + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.summary_statistics.dir/build.make examples/CMakeFiles/thrust.all.example.summary_statistics.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.summary_statistics.dir/build.make examples/CMakeFiles/thrust.all.example.summary_statistics.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.summary_statistics" +.PHONY : examples/CMakeFiles/thrust.all.example.summary_statistics.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.all.example.summary_statistics.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.summary_statistics.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.all.example.summary_statistics.dir/rule + +# Convenience name for target. +thrust.all.example.summary_statistics: examples/CMakeFiles/thrust.all.example.summary_statistics.dir/rule +.PHONY : thrust.all.example.summary_statistics + +# clean rule for target. +examples/CMakeFiles/thrust.all.example.summary_statistics.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.summary_statistics.dir/build.make examples/CMakeFiles/thrust.all.example.summary_statistics.dir/clean +.PHONY : examples/CMakeFiles/thrust.all.example.summary_statistics.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.example.summed_area_table.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.example.summed_area_table.dir/all: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.summed_area_table.dir/build.make examples/CMakeFiles/thrust.example.summed_area_table.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.summed_area_table.dir/build.make examples/CMakeFiles/thrust.example.summed_area_table.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.example.summed_area_table" +.PHONY : examples/CMakeFiles/thrust.example.summed_area_table.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.example.summed_area_table.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.summed_area_table.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.example.summed_area_table.dir/rule + +# Convenience name for target. +thrust.example.summed_area_table: examples/CMakeFiles/thrust.example.summed_area_table.dir/rule +.PHONY : thrust.example.summed_area_table + +# clean rule for target. +examples/CMakeFiles/thrust.example.summed_area_table.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.summed_area_table.dir/build.make examples/CMakeFiles/thrust.example.summed_area_table.dir/clean +.PHONY : examples/CMakeFiles/thrust.example.summed_area_table.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.all.example.summed_area_table.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.all.example.summed_area_table.dir/all: examples/CMakeFiles/thrust.example.summed_area_table.dir/all + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.summed_area_table.dir/build.make examples/CMakeFiles/thrust.all.example.summed_area_table.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.summed_area_table.dir/build.make examples/CMakeFiles/thrust.all.example.summed_area_table.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.summed_area_table" +.PHONY : examples/CMakeFiles/thrust.all.example.summed_area_table.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.all.example.summed_area_table.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.summed_area_table.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.all.example.summed_area_table.dir/rule + +# Convenience name for target. +thrust.all.example.summed_area_table: examples/CMakeFiles/thrust.all.example.summed_area_table.dir/rule +.PHONY : thrust.all.example.summed_area_table + +# clean rule for target. +examples/CMakeFiles/thrust.all.example.summed_area_table.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.summed_area_table.dir/build.make examples/CMakeFiles/thrust.all.example.summed_area_table.dir/clean +.PHONY : examples/CMakeFiles/thrust.all.example.summed_area_table.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.example.tiled_range.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.example.tiled_range.dir/all: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.tiled_range.dir/build.make examples/CMakeFiles/thrust.example.tiled_range.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.tiled_range.dir/build.make examples/CMakeFiles/thrust.example.tiled_range.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.example.tiled_range" +.PHONY : examples/CMakeFiles/thrust.example.tiled_range.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.example.tiled_range.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.tiled_range.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.example.tiled_range.dir/rule + +# Convenience name for target. +thrust.example.tiled_range: examples/CMakeFiles/thrust.example.tiled_range.dir/rule +.PHONY : thrust.example.tiled_range + +# clean rule for target. +examples/CMakeFiles/thrust.example.tiled_range.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.tiled_range.dir/build.make examples/CMakeFiles/thrust.example.tiled_range.dir/clean +.PHONY : examples/CMakeFiles/thrust.example.tiled_range.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.all.example.tiled_range.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.all.example.tiled_range.dir/all: examples/CMakeFiles/thrust.example.tiled_range.dir/all + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.tiled_range.dir/build.make examples/CMakeFiles/thrust.all.example.tiled_range.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.tiled_range.dir/build.make examples/CMakeFiles/thrust.all.example.tiled_range.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.tiled_range" +.PHONY : examples/CMakeFiles/thrust.all.example.tiled_range.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.all.example.tiled_range.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.tiled_range.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.all.example.tiled_range.dir/rule + +# Convenience name for target. +thrust.all.example.tiled_range: examples/CMakeFiles/thrust.all.example.tiled_range.dir/rule +.PHONY : thrust.all.example.tiled_range + +# clean rule for target. +examples/CMakeFiles/thrust.all.example.tiled_range.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.tiled_range.dir/build.make examples/CMakeFiles/thrust.all.example.tiled_range.dir/clean +.PHONY : examples/CMakeFiles/thrust.all.example.tiled_range.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/all: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/build.make examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/build.make examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.example.transform_input_output_iterator" +.PHONY : examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/rule + +# Convenience name for target. +thrust.example.transform_input_output_iterator: examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/rule +.PHONY : thrust.example.transform_input_output_iterator + +# clean rule for target. +examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/build.make examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/clean +.PHONY : examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.all.example.transform_input_output_iterator.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.all.example.transform_input_output_iterator.dir/all: examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/all + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.transform_input_output_iterator.dir/build.make examples/CMakeFiles/thrust.all.example.transform_input_output_iterator.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.transform_input_output_iterator.dir/build.make examples/CMakeFiles/thrust.all.example.transform_input_output_iterator.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.transform_input_output_iterator" +.PHONY : examples/CMakeFiles/thrust.all.example.transform_input_output_iterator.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.all.example.transform_input_output_iterator.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.transform_input_output_iterator.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.all.example.transform_input_output_iterator.dir/rule + +# Convenience name for target. +thrust.all.example.transform_input_output_iterator: examples/CMakeFiles/thrust.all.example.transform_input_output_iterator.dir/rule +.PHONY : thrust.all.example.transform_input_output_iterator + +# clean rule for target. +examples/CMakeFiles/thrust.all.example.transform_input_output_iterator.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.transform_input_output_iterator.dir/build.make examples/CMakeFiles/thrust.all.example.transform_input_output_iterator.dir/clean +.PHONY : examples/CMakeFiles/thrust.all.example.transform_input_output_iterator.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.example.transform_iterator.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.example.transform_iterator.dir/all: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.transform_iterator.dir/build.make examples/CMakeFiles/thrust.example.transform_iterator.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.transform_iterator.dir/build.make examples/CMakeFiles/thrust.example.transform_iterator.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.example.transform_iterator" +.PHONY : examples/CMakeFiles/thrust.example.transform_iterator.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.example.transform_iterator.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.transform_iterator.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.example.transform_iterator.dir/rule + +# Convenience name for target. +thrust.example.transform_iterator: examples/CMakeFiles/thrust.example.transform_iterator.dir/rule +.PHONY : thrust.example.transform_iterator + +# clean rule for target. +examples/CMakeFiles/thrust.example.transform_iterator.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.transform_iterator.dir/build.make examples/CMakeFiles/thrust.example.transform_iterator.dir/clean +.PHONY : examples/CMakeFiles/thrust.example.transform_iterator.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.all.example.transform_iterator.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.all.example.transform_iterator.dir/all: examples/CMakeFiles/thrust.example.transform_iterator.dir/all + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.transform_iterator.dir/build.make examples/CMakeFiles/thrust.all.example.transform_iterator.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.transform_iterator.dir/build.make examples/CMakeFiles/thrust.all.example.transform_iterator.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.transform_iterator" +.PHONY : examples/CMakeFiles/thrust.all.example.transform_iterator.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.all.example.transform_iterator.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.transform_iterator.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.all.example.transform_iterator.dir/rule + +# Convenience name for target. +thrust.all.example.transform_iterator: examples/CMakeFiles/thrust.all.example.transform_iterator.dir/rule +.PHONY : thrust.all.example.transform_iterator + +# clean rule for target. +examples/CMakeFiles/thrust.all.example.transform_iterator.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.transform_iterator.dir/build.make examples/CMakeFiles/thrust.all.example.transform_iterator.dir/clean +.PHONY : examples/CMakeFiles/thrust.all.example.transform_iterator.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.example.transform_output_iterator.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.example.transform_output_iterator.dir/all: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.transform_output_iterator.dir/build.make examples/CMakeFiles/thrust.example.transform_output_iterator.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.transform_output_iterator.dir/build.make examples/CMakeFiles/thrust.example.transform_output_iterator.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.example.transform_output_iterator" +.PHONY : examples/CMakeFiles/thrust.example.transform_output_iterator.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.example.transform_output_iterator.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.transform_output_iterator.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.example.transform_output_iterator.dir/rule + +# Convenience name for target. +thrust.example.transform_output_iterator: examples/CMakeFiles/thrust.example.transform_output_iterator.dir/rule +.PHONY : thrust.example.transform_output_iterator + +# clean rule for target. +examples/CMakeFiles/thrust.example.transform_output_iterator.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.transform_output_iterator.dir/build.make examples/CMakeFiles/thrust.example.transform_output_iterator.dir/clean +.PHONY : examples/CMakeFiles/thrust.example.transform_output_iterator.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.all.example.transform_output_iterator.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.all.example.transform_output_iterator.dir/all: examples/CMakeFiles/thrust.example.transform_output_iterator.dir/all + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.transform_output_iterator.dir/build.make examples/CMakeFiles/thrust.all.example.transform_output_iterator.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.transform_output_iterator.dir/build.make examples/CMakeFiles/thrust.all.example.transform_output_iterator.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.transform_output_iterator" +.PHONY : examples/CMakeFiles/thrust.all.example.transform_output_iterator.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.all.example.transform_output_iterator.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.transform_output_iterator.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.all.example.transform_output_iterator.dir/rule + +# Convenience name for target. +thrust.all.example.transform_output_iterator: examples/CMakeFiles/thrust.all.example.transform_output_iterator.dir/rule +.PHONY : thrust.all.example.transform_output_iterator + +# clean rule for target. +examples/CMakeFiles/thrust.all.example.transform_output_iterator.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.transform_output_iterator.dir/build.make examples/CMakeFiles/thrust.all.example.transform_output_iterator.dir/clean +.PHONY : examples/CMakeFiles/thrust.all.example.transform_output_iterator.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.example.uninitialized_vector.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.example.uninitialized_vector.dir/all: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.uninitialized_vector.dir/build.make examples/CMakeFiles/thrust.example.uninitialized_vector.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.uninitialized_vector.dir/build.make examples/CMakeFiles/thrust.example.uninitialized_vector.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=49 "Built target thrust.example.uninitialized_vector" +.PHONY : examples/CMakeFiles/thrust.example.uninitialized_vector.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.example.uninitialized_vector.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.uninitialized_vector.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.example.uninitialized_vector.dir/rule + +# Convenience name for target. +thrust.example.uninitialized_vector: examples/CMakeFiles/thrust.example.uninitialized_vector.dir/rule +.PHONY : thrust.example.uninitialized_vector + +# clean rule for target. +examples/CMakeFiles/thrust.example.uninitialized_vector.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.uninitialized_vector.dir/build.make examples/CMakeFiles/thrust.example.uninitialized_vector.dir/clean +.PHONY : examples/CMakeFiles/thrust.example.uninitialized_vector.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.all.example.uninitialized_vector.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.all.example.uninitialized_vector.dir/all: examples/CMakeFiles/thrust.example.uninitialized_vector.dir/all + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.uninitialized_vector.dir/build.make examples/CMakeFiles/thrust.all.example.uninitialized_vector.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.uninitialized_vector.dir/build.make examples/CMakeFiles/thrust.all.example.uninitialized_vector.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.uninitialized_vector" +.PHONY : examples/CMakeFiles/thrust.all.example.uninitialized_vector.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.all.example.uninitialized_vector.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.uninitialized_vector.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.all.example.uninitialized_vector.dir/rule + +# Convenience name for target. +thrust.all.example.uninitialized_vector: examples/CMakeFiles/thrust.all.example.uninitialized_vector.dir/rule +.PHONY : thrust.all.example.uninitialized_vector + +# clean rule for target. +examples/CMakeFiles/thrust.all.example.uninitialized_vector.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.uninitialized_vector.dir/build.make examples/CMakeFiles/thrust.all.example.uninitialized_vector.dir/clean +.PHONY : examples/CMakeFiles/thrust.all.example.uninitialized_vector.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.example.version.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.example.version.dir/all: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.version.dir/build.make examples/CMakeFiles/thrust.example.version.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.version.dir/build.make examples/CMakeFiles/thrust.example.version.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.example.version" +.PHONY : examples/CMakeFiles/thrust.example.version.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.example.version.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.version.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.example.version.dir/rule + +# Convenience name for target. +thrust.example.version: examples/CMakeFiles/thrust.example.version.dir/rule +.PHONY : thrust.example.version + +# clean rule for target. +examples/CMakeFiles/thrust.example.version.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.version.dir/build.make examples/CMakeFiles/thrust.example.version.dir/clean +.PHONY : examples/CMakeFiles/thrust.example.version.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.all.example.version.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.all.example.version.dir/all: examples/CMakeFiles/thrust.example.version.dir/all + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.version.dir/build.make examples/CMakeFiles/thrust.all.example.version.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.version.dir/build.make examples/CMakeFiles/thrust.all.example.version.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.version" +.PHONY : examples/CMakeFiles/thrust.all.example.version.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.all.example.version.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.version.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.all.example.version.dir/rule + +# Convenience name for target. +thrust.all.example.version: examples/CMakeFiles/thrust.all.example.version.dir/rule +.PHONY : thrust.all.example.version + +# clean rule for target. +examples/CMakeFiles/thrust.all.example.version.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.version.dir/build.make examples/CMakeFiles/thrust.all.example.version.dir/clean +.PHONY : examples/CMakeFiles/thrust.all.example.version.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.example.weld_vertices.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.example.weld_vertices.dir/all: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.weld_vertices.dir/build.make examples/CMakeFiles/thrust.example.weld_vertices.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.weld_vertices.dir/build.make examples/CMakeFiles/thrust.example.weld_vertices.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.example.weld_vertices" +.PHONY : examples/CMakeFiles/thrust.example.weld_vertices.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.example.weld_vertices.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.weld_vertices.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.example.weld_vertices.dir/rule + +# Convenience name for target. +thrust.example.weld_vertices: examples/CMakeFiles/thrust.example.weld_vertices.dir/rule +.PHONY : thrust.example.weld_vertices + +# clean rule for target. +examples/CMakeFiles/thrust.example.weld_vertices.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.weld_vertices.dir/build.make examples/CMakeFiles/thrust.example.weld_vertices.dir/clean +.PHONY : examples/CMakeFiles/thrust.example.weld_vertices.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.all.example.weld_vertices.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.all.example.weld_vertices.dir/all: examples/CMakeFiles/thrust.example.weld_vertices.dir/all + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.weld_vertices.dir/build.make examples/CMakeFiles/thrust.all.example.weld_vertices.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.weld_vertices.dir/build.make examples/CMakeFiles/thrust.all.example.weld_vertices.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.weld_vertices" +.PHONY : examples/CMakeFiles/thrust.all.example.weld_vertices.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.all.example.weld_vertices.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.weld_vertices.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.all.example.weld_vertices.dir/rule + +# Convenience name for target. +thrust.all.example.weld_vertices: examples/CMakeFiles/thrust.all.example.weld_vertices.dir/rule +.PHONY : thrust.all.example.weld_vertices + +# clean rule for target. +examples/CMakeFiles/thrust.all.example.weld_vertices.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.weld_vertices.dir/build.make examples/CMakeFiles/thrust.all.example.weld_vertices.dir/clean +.PHONY : examples/CMakeFiles/thrust.all.example.weld_vertices.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.example.word_count.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.example.word_count.dir/all: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.word_count.dir/build.make examples/CMakeFiles/thrust.example.word_count.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.word_count.dir/build.make examples/CMakeFiles/thrust.example.word_count.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.example.word_count" +.PHONY : examples/CMakeFiles/thrust.example.word_count.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.example.word_count.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.word_count.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.example.word_count.dir/rule + +# Convenience name for target. +thrust.example.word_count: examples/CMakeFiles/thrust.example.word_count.dir/rule +.PHONY : thrust.example.word_count + +# clean rule for target. +examples/CMakeFiles/thrust.example.word_count.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.word_count.dir/build.make examples/CMakeFiles/thrust.example.word_count.dir/clean +.PHONY : examples/CMakeFiles/thrust.example.word_count.dir/clean + +#============================================================================= +# Target rules for target examples/CMakeFiles/thrust.all.example.word_count.dir + +# All Build rule for target. +examples/CMakeFiles/thrust.all.example.word_count.dir/all: examples/CMakeFiles/thrust.example.word_count.dir/all + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.word_count.dir/build.make examples/CMakeFiles/thrust.all.example.word_count.dir/depend + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.word_count.dir/build.make examples/CMakeFiles/thrust.all.example.word_count.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.word_count" +.PHONY : examples/CMakeFiles/thrust.all.example.word_count.dir/all + +# Build rule for subdir invocation for target. +examples/CMakeFiles/thrust.all.example.word_count.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.word_count.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/CMakeFiles/thrust.all.example.word_count.dir/rule + +# Convenience name for target. +thrust.all.example.word_count: examples/CMakeFiles/thrust.all.example.word_count.dir/rule +.PHONY : thrust.all.example.word_count + +# clean rule for target. +examples/CMakeFiles/thrust.all.example.word_count.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.word_count.dir/build.make examples/CMakeFiles/thrust.all.example.word_count.dir/clean +.PHONY : examples/CMakeFiles/thrust.all.example.word_count.dir/clean + +#============================================================================= +# Target rules for target examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir + +# All Build rule for target. +examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/all: + $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/build.make examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/depend + $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/build.make examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.example.cuda.async_reduce" +.PHONY : examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/all + +# Build rule for subdir invocation for target. +examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/rule + +# Convenience name for target. +thrust.example.cuda.async_reduce: examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/rule +.PHONY : thrust.example.cuda.async_reduce + +# clean rule for target. +examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/build.make examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/clean +.PHONY : examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/clean + +#============================================================================= +# Target rules for target examples/cuda/CMakeFiles/thrust.all.example.cuda.async_reduce.dir + +# All Build rule for target. +examples/cuda/CMakeFiles/thrust.all.example.cuda.async_reduce.dir/all: examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/all + $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.all.example.cuda.async_reduce.dir/build.make examples/cuda/CMakeFiles/thrust.all.example.cuda.async_reduce.dir/depend + $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.all.example.cuda.async_reduce.dir/build.make examples/cuda/CMakeFiles/thrust.all.example.cuda.async_reduce.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.cuda.async_reduce" +.PHONY : examples/cuda/CMakeFiles/thrust.all.example.cuda.async_reduce.dir/all + +# Build rule for subdir invocation for target. +examples/cuda/CMakeFiles/thrust.all.example.cuda.async_reduce.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/cuda/CMakeFiles/thrust.all.example.cuda.async_reduce.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/cuda/CMakeFiles/thrust.all.example.cuda.async_reduce.dir/rule + +# Convenience name for target. +thrust.all.example.cuda.async_reduce: examples/cuda/CMakeFiles/thrust.all.example.cuda.async_reduce.dir/rule +.PHONY : thrust.all.example.cuda.async_reduce + +# clean rule for target. +examples/cuda/CMakeFiles/thrust.all.example.cuda.async_reduce.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.all.example.cuda.async_reduce.dir/build.make examples/cuda/CMakeFiles/thrust.all.example.cuda.async_reduce.dir/clean +.PHONY : examples/cuda/CMakeFiles/thrust.all.example.cuda.async_reduce.dir/clean + +#============================================================================= +# Target rules for target examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir + +# All Build rule for target. +examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/all: + $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/build.make examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/depend + $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/build.make examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.example.cuda.custom_temporary_allocation" +.PHONY : examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/all + +# Build rule for subdir invocation for target. +examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/rule + +# Convenience name for target. +thrust.example.cuda.custom_temporary_allocation: examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/rule +.PHONY : thrust.example.cuda.custom_temporary_allocation + +# clean rule for target. +examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/build.make examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/clean +.PHONY : examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/clean + +#============================================================================= +# Target rules for target examples/cuda/CMakeFiles/thrust.all.example.cuda.custom_temporary_allocation.dir + +# All Build rule for target. +examples/cuda/CMakeFiles/thrust.all.example.cuda.custom_temporary_allocation.dir/all: examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/all + $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.all.example.cuda.custom_temporary_allocation.dir/build.make examples/cuda/CMakeFiles/thrust.all.example.cuda.custom_temporary_allocation.dir/depend + $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.all.example.cuda.custom_temporary_allocation.dir/build.make examples/cuda/CMakeFiles/thrust.all.example.cuda.custom_temporary_allocation.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.cuda.custom_temporary_allocation" +.PHONY : examples/cuda/CMakeFiles/thrust.all.example.cuda.custom_temporary_allocation.dir/all + +# Build rule for subdir invocation for target. +examples/cuda/CMakeFiles/thrust.all.example.cuda.custom_temporary_allocation.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/cuda/CMakeFiles/thrust.all.example.cuda.custom_temporary_allocation.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/cuda/CMakeFiles/thrust.all.example.cuda.custom_temporary_allocation.dir/rule + +# Convenience name for target. +thrust.all.example.cuda.custom_temporary_allocation: examples/cuda/CMakeFiles/thrust.all.example.cuda.custom_temporary_allocation.dir/rule +.PHONY : thrust.all.example.cuda.custom_temporary_allocation + +# clean rule for target. +examples/cuda/CMakeFiles/thrust.all.example.cuda.custom_temporary_allocation.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.all.example.cuda.custom_temporary_allocation.dir/build.make examples/cuda/CMakeFiles/thrust.all.example.cuda.custom_temporary_allocation.dir/clean +.PHONY : examples/cuda/CMakeFiles/thrust.all.example.cuda.custom_temporary_allocation.dir/clean + +#============================================================================= +# Target rules for target examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir + +# All Build rule for target. +examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/all: + $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/build.make examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/depend + $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/build.make examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.example.cuda.explicit_cuda_stream" +.PHONY : examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/all + +# Build rule for subdir invocation for target. +examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/rule + +# Convenience name for target. +thrust.example.cuda.explicit_cuda_stream: examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/rule +.PHONY : thrust.example.cuda.explicit_cuda_stream + +# clean rule for target. +examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/build.make examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/clean +.PHONY : examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/clean + +#============================================================================= +# Target rules for target examples/cuda/CMakeFiles/thrust.all.example.cuda.explicit_cuda_stream.dir + +# All Build rule for target. +examples/cuda/CMakeFiles/thrust.all.example.cuda.explicit_cuda_stream.dir/all: examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/all + $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.all.example.cuda.explicit_cuda_stream.dir/build.make examples/cuda/CMakeFiles/thrust.all.example.cuda.explicit_cuda_stream.dir/depend + $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.all.example.cuda.explicit_cuda_stream.dir/build.make examples/cuda/CMakeFiles/thrust.all.example.cuda.explicit_cuda_stream.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.cuda.explicit_cuda_stream" +.PHONY : examples/cuda/CMakeFiles/thrust.all.example.cuda.explicit_cuda_stream.dir/all + +# Build rule for subdir invocation for target. +examples/cuda/CMakeFiles/thrust.all.example.cuda.explicit_cuda_stream.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/cuda/CMakeFiles/thrust.all.example.cuda.explicit_cuda_stream.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/cuda/CMakeFiles/thrust.all.example.cuda.explicit_cuda_stream.dir/rule # Convenience name for target. -thrust.all.test.cuda.transform_scan.cdp_0: testing/cuda/CMakeFiles/thrust.all.test.cuda.transform_scan.cdp_0.dir/rule -.PHONY : thrust.all.test.cuda.transform_scan.cdp_0 +thrust.all.example.cuda.explicit_cuda_stream: examples/cuda/CMakeFiles/thrust.all.example.cuda.explicit_cuda_stream.dir/rule +.PHONY : thrust.all.example.cuda.explicit_cuda_stream # clean rule for target. -testing/cuda/CMakeFiles/thrust.all.test.cuda.transform_scan.cdp_0.dir/clean: - $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.all.test.cuda.transform_scan.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.all.test.cuda.transform_scan.cdp_0.dir/clean -.PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.transform_scan.cdp_0.dir/clean +examples/cuda/CMakeFiles/thrust.all.example.cuda.explicit_cuda_stream.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.all.example.cuda.explicit_cuda_stream.dir/build.make examples/cuda/CMakeFiles/thrust.all.example.cuda.explicit_cuda_stream.dir/clean +.PHONY : examples/cuda/CMakeFiles/thrust.all.example.cuda.explicit_cuda_stream.dir/clean #============================================================================= -# Target rules for target testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_copy.cdp_0.dir +# Target rules for target examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir # All Build rule for target. -testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_copy.cdp_0.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all - $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_copy.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_copy.cdp_0.dir/depend - $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_copy.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_copy.cdp_0.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=74 "Built target thrust.test.cuda.uninitialized_copy.cdp_0" -.PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_copy.cdp_0.dir/all +examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/all: + $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/build.make examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/depend + $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/build.make examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.example.cuda.global_device_vector" +.PHONY : examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/all # Build rule for subdir invocation for target. -testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_copy.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_copy.cdp_0.dir/all +examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/rule: cmake_check_build_system $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 -.PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_copy.cdp_0.dir/rule + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/rule # Convenience name for target. -thrust.test.cuda.uninitialized_copy.cdp_0: testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_copy.cdp_0.dir/rule -.PHONY : thrust.test.cuda.uninitialized_copy.cdp_0 +thrust.example.cuda.global_device_vector: examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/rule +.PHONY : thrust.example.cuda.global_device_vector # clean rule for target. -testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_copy.cdp_0.dir/clean: - $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_copy.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_copy.cdp_0.dir/clean -.PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_copy.cdp_0.dir/clean +examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/build.make examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/clean +.PHONY : examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/clean #============================================================================= -# Target rules for target testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_copy.cdp_0.dir +# Target rules for target examples/cuda/CMakeFiles/thrust.all.example.cuda.global_device_vector.dir # All Build rule for target. -testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_copy.cdp_0.dir/all: testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_copy.cdp_0.dir/all - $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_copy.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_copy.cdp_0.dir/depend - $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_copy.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_copy.cdp_0.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.test.cuda.uninitialized_copy.cdp_0" -.PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_copy.cdp_0.dir/all +examples/cuda/CMakeFiles/thrust.all.example.cuda.global_device_vector.dir/all: examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/all + $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.all.example.cuda.global_device_vector.dir/build.make examples/cuda/CMakeFiles/thrust.all.example.cuda.global_device_vector.dir/depend + $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.all.example.cuda.global_device_vector.dir/build.make examples/cuda/CMakeFiles/thrust.all.example.cuda.global_device_vector.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.cuda.global_device_vector" +.PHONY : examples/cuda/CMakeFiles/thrust.all.example.cuda.global_device_vector.dir/all # Build rule for subdir invocation for target. -testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_copy.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_copy.cdp_0.dir/all +examples/cuda/CMakeFiles/thrust.all.example.cuda.global_device_vector.dir/rule: cmake_check_build_system $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 -.PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_copy.cdp_0.dir/rule + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/cuda/CMakeFiles/thrust.all.example.cuda.global_device_vector.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/cuda/CMakeFiles/thrust.all.example.cuda.global_device_vector.dir/rule # Convenience name for target. -thrust.all.test.cuda.uninitialized_copy.cdp_0: testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_copy.cdp_0.dir/rule -.PHONY : thrust.all.test.cuda.uninitialized_copy.cdp_0 +thrust.all.example.cuda.global_device_vector: examples/cuda/CMakeFiles/thrust.all.example.cuda.global_device_vector.dir/rule +.PHONY : thrust.all.example.cuda.global_device_vector # clean rule for target. -testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_copy.cdp_0.dir/clean: - $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_copy.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_copy.cdp_0.dir/clean -.PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_copy.cdp_0.dir/clean +examples/cuda/CMakeFiles/thrust.all.example.cuda.global_device_vector.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.all.example.cuda.global_device_vector.dir/build.make examples/cuda/CMakeFiles/thrust.all.example.cuda.global_device_vector.dir/clean +.PHONY : examples/cuda/CMakeFiles/thrust.all.example.cuda.global_device_vector.dir/clean #============================================================================= -# Target rules for target testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_fill.cdp_0.dir +# Target rules for target examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir # All Build rule for target. -testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_fill.cdp_0.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all - $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_fill.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_fill.cdp_0.dir/depend - $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_fill.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_fill.cdp_0.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.cuda.uninitialized_fill.cdp_0" -.PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_fill.cdp_0.dir/all +examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/all: + $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/build.make examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/depend + $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/build.make examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.example.cuda.range_view" +.PHONY : examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/all # Build rule for subdir invocation for target. -testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_fill.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_fill.cdp_0.dir/all +examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/rule: cmake_check_build_system $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 -.PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_fill.cdp_0.dir/rule + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/rule # Convenience name for target. -thrust.test.cuda.uninitialized_fill.cdp_0: testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_fill.cdp_0.dir/rule -.PHONY : thrust.test.cuda.uninitialized_fill.cdp_0 +thrust.example.cuda.range_view: examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/rule +.PHONY : thrust.example.cuda.range_view # clean rule for target. -testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_fill.cdp_0.dir/clean: - $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_fill.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_fill.cdp_0.dir/clean -.PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_fill.cdp_0.dir/clean +examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/build.make examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/clean +.PHONY : examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/clean #============================================================================= -# Target rules for target testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_fill.cdp_0.dir +# Target rules for target examples/cuda/CMakeFiles/thrust.all.example.cuda.range_view.dir # All Build rule for target. -testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_fill.cdp_0.dir/all: testing/cuda/CMakeFiles/thrust.test.cuda.uninitialized_fill.cdp_0.dir/all - $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_fill.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_fill.cdp_0.dir/depend - $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_fill.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_fill.cdp_0.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.test.cuda.uninitialized_fill.cdp_0" -.PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_fill.cdp_0.dir/all +examples/cuda/CMakeFiles/thrust.all.example.cuda.range_view.dir/all: examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/all + $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.all.example.cuda.range_view.dir/build.make examples/cuda/CMakeFiles/thrust.all.example.cuda.range_view.dir/depend + $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.all.example.cuda.range_view.dir/build.make examples/cuda/CMakeFiles/thrust.all.example.cuda.range_view.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.cuda.range_view" +.PHONY : examples/cuda/CMakeFiles/thrust.all.example.cuda.range_view.dir/all # Build rule for subdir invocation for target. -testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_fill.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_fill.cdp_0.dir/all +examples/cuda/CMakeFiles/thrust.all.example.cuda.range_view.dir/rule: cmake_check_build_system $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 -.PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_fill.cdp_0.dir/rule + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/cuda/CMakeFiles/thrust.all.example.cuda.range_view.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/cuda/CMakeFiles/thrust.all.example.cuda.range_view.dir/rule # Convenience name for target. -thrust.all.test.cuda.uninitialized_fill.cdp_0: testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_fill.cdp_0.dir/rule -.PHONY : thrust.all.test.cuda.uninitialized_fill.cdp_0 +thrust.all.example.cuda.range_view: examples/cuda/CMakeFiles/thrust.all.example.cuda.range_view.dir/rule +.PHONY : thrust.all.example.cuda.range_view # clean rule for target. -testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_fill.cdp_0.dir/clean: - $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_fill.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_fill.cdp_0.dir/clean -.PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.uninitialized_fill.cdp_0.dir/clean +examples/cuda/CMakeFiles/thrust.all.example.cuda.range_view.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.all.example.cuda.range_view.dir/build.make examples/cuda/CMakeFiles/thrust.all.example.cuda.range_view.dir/clean +.PHONY : examples/cuda/CMakeFiles/thrust.all.example.cuda.range_view.dir/clean #============================================================================= -# Target rules for target testing/cuda/CMakeFiles/thrust.test.cuda.unique.cdp_0.dir +# Target rules for target examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir # All Build rule for target. -testing/cuda/CMakeFiles/thrust.test.cuda.unique.cdp_0.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all - $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.unique.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.unique.cdp_0.dir/depend - $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.unique.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.unique.cdp_0.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.cuda.unique.cdp_0" -.PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.unique.cdp_0.dir/all +examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/all: + $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/build.make examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/depend + $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/build.make examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=42 "Built target thrust.example.cuda.unwrap_pointer" +.PHONY : examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/all # Build rule for subdir invocation for target. -testing/cuda/CMakeFiles/thrust.test.cuda.unique.cdp_0.dir/rule: cmake_check_build_system +examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/rule: cmake_check_build_system $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.unique.cdp_0.dir/all + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 -.PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.unique.cdp_0.dir/rule +.PHONY : examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/rule # Convenience name for target. -thrust.test.cuda.unique.cdp_0: testing/cuda/CMakeFiles/thrust.test.cuda.unique.cdp_0.dir/rule -.PHONY : thrust.test.cuda.unique.cdp_0 +thrust.example.cuda.unwrap_pointer: examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/rule +.PHONY : thrust.example.cuda.unwrap_pointer # clean rule for target. -testing/cuda/CMakeFiles/thrust.test.cuda.unique.cdp_0.dir/clean: - $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.unique.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.unique.cdp_0.dir/clean -.PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.unique.cdp_0.dir/clean +examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/build.make examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/clean +.PHONY : examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/clean #============================================================================= -# Target rules for target testing/cuda/CMakeFiles/thrust.all.test.cuda.unique.cdp_0.dir +# Target rules for target examples/cuda/CMakeFiles/thrust.all.example.cuda.unwrap_pointer.dir # All Build rule for target. -testing/cuda/CMakeFiles/thrust.all.test.cuda.unique.cdp_0.dir/all: testing/cuda/CMakeFiles/thrust.test.cuda.unique.cdp_0.dir/all - $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.all.test.cuda.unique.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.all.test.cuda.unique.cdp_0.dir/depend - $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.all.test.cuda.unique.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.all.test.cuda.unique.cdp_0.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.test.cuda.unique.cdp_0" -.PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.unique.cdp_0.dir/all +examples/cuda/CMakeFiles/thrust.all.example.cuda.unwrap_pointer.dir/all: examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/all + $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.all.example.cuda.unwrap_pointer.dir/build.make examples/cuda/CMakeFiles/thrust.all.example.cuda.unwrap_pointer.dir/depend + $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.all.example.cuda.unwrap_pointer.dir/build.make examples/cuda/CMakeFiles/thrust.all.example.cuda.unwrap_pointer.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.cuda.unwrap_pointer" +.PHONY : examples/cuda/CMakeFiles/thrust.all.example.cuda.unwrap_pointer.dir/all # Build rule for subdir invocation for target. -testing/cuda/CMakeFiles/thrust.all.test.cuda.unique.cdp_0.dir/rule: cmake_check_build_system +examples/cuda/CMakeFiles/thrust.all.example.cuda.unwrap_pointer.dir/rule: cmake_check_build_system $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.unique.cdp_0.dir/all + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/cuda/CMakeFiles/thrust.all.example.cuda.unwrap_pointer.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 -.PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.unique.cdp_0.dir/rule +.PHONY : examples/cuda/CMakeFiles/thrust.all.example.cuda.unwrap_pointer.dir/rule # Convenience name for target. -thrust.all.test.cuda.unique.cdp_0: testing/cuda/CMakeFiles/thrust.all.test.cuda.unique.cdp_0.dir/rule -.PHONY : thrust.all.test.cuda.unique.cdp_0 +thrust.all.example.cuda.unwrap_pointer: examples/cuda/CMakeFiles/thrust.all.example.cuda.unwrap_pointer.dir/rule +.PHONY : thrust.all.example.cuda.unwrap_pointer # clean rule for target. -testing/cuda/CMakeFiles/thrust.all.test.cuda.unique.cdp_0.dir/clean: - $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.all.test.cuda.unique.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.all.test.cuda.unique.cdp_0.dir/clean -.PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.unique.cdp_0.dir/clean +examples/cuda/CMakeFiles/thrust.all.example.cuda.unwrap_pointer.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.all.example.cuda.unwrap_pointer.dir/build.make examples/cuda/CMakeFiles/thrust.all.example.cuda.unwrap_pointer.dir/clean +.PHONY : examples/cuda/CMakeFiles/thrust.all.example.cuda.unwrap_pointer.dir/clean #============================================================================= -# Target rules for target testing/cuda/CMakeFiles/thrust.test.cuda.unique_by_key.cdp_0.dir +# Target rules for target examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir # All Build rule for target. -testing/cuda/CMakeFiles/thrust.test.cuda.unique_by_key.cdp_0.dir/all: testing/unittest/CMakeFiles/thrust.test.framework.dir/all - $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.unique_by_key.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.unique_by_key.cdp_0.dir/depend - $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.unique_by_key.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.unique_by_key.cdp_0.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.test.cuda.unique_by_key.cdp_0" -.PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.unique_by_key.cdp_0.dir/all +examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/all: + $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/build.make examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/depend + $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/build.make examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.example.cuda.wrap_pointer" +.PHONY : examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/all # Build rule for subdir invocation for target. -testing/cuda/CMakeFiles/thrust.test.cuda.unique_by_key.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.test.cuda.unique_by_key.cdp_0.dir/all +examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/rule: cmake_check_build_system $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 -.PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.unique_by_key.cdp_0.dir/rule + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/rule # Convenience name for target. -thrust.test.cuda.unique_by_key.cdp_0: testing/cuda/CMakeFiles/thrust.test.cuda.unique_by_key.cdp_0.dir/rule -.PHONY : thrust.test.cuda.unique_by_key.cdp_0 +thrust.example.cuda.wrap_pointer: examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/rule +.PHONY : thrust.example.cuda.wrap_pointer # clean rule for target. -testing/cuda/CMakeFiles/thrust.test.cuda.unique_by_key.cdp_0.dir/clean: - $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.test.cuda.unique_by_key.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.test.cuda.unique_by_key.cdp_0.dir/clean -.PHONY : testing/cuda/CMakeFiles/thrust.test.cuda.unique_by_key.cdp_0.dir/clean +examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/build.make examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/clean +.PHONY : examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/clean #============================================================================= -# Target rules for target testing/cuda/CMakeFiles/thrust.all.test.cuda.unique_by_key.cdp_0.dir +# Target rules for target examples/cuda/CMakeFiles/thrust.all.example.cuda.wrap_pointer.dir # All Build rule for target. -testing/cuda/CMakeFiles/thrust.all.test.cuda.unique_by_key.cdp_0.dir/all: testing/cuda/CMakeFiles/thrust.test.cuda.unique_by_key.cdp_0.dir/all - $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.all.test.cuda.unique_by_key.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.all.test.cuda.unique_by_key.cdp_0.dir/depend - $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.all.test.cuda.unique_by_key.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.all.test.cuda.unique_by_key.cdp_0.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.test.cuda.unique_by_key.cdp_0" -.PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.unique_by_key.cdp_0.dir/all +examples/cuda/CMakeFiles/thrust.all.example.cuda.wrap_pointer.dir/all: examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/all + $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.all.example.cuda.wrap_pointer.dir/build.make examples/cuda/CMakeFiles/thrust.all.example.cuda.wrap_pointer.dir/depend + $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.all.example.cuda.wrap_pointer.dir/build.make examples/cuda/CMakeFiles/thrust.all.example.cuda.wrap_pointer.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target thrust.all.example.cuda.wrap_pointer" +.PHONY : examples/cuda/CMakeFiles/thrust.all.example.cuda.wrap_pointer.dir/all # Build rule for subdir invocation for target. -testing/cuda/CMakeFiles/thrust.all.test.cuda.unique_by_key.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 testing/cuda/CMakeFiles/thrust.all.test.cuda.unique_by_key.cdp_0.dir/all +examples/cuda/CMakeFiles/thrust.all.example.cuda.wrap_pointer.dir/rule: cmake_check_build_system $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 -.PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.unique_by_key.cdp_0.dir/rule + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/cuda/CMakeFiles/thrust.all.example.cuda.wrap_pointer.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : examples/cuda/CMakeFiles/thrust.all.example.cuda.wrap_pointer.dir/rule # Convenience name for target. -thrust.all.test.cuda.unique_by_key.cdp_0: testing/cuda/CMakeFiles/thrust.all.test.cuda.unique_by_key.cdp_0.dir/rule -.PHONY : thrust.all.test.cuda.unique_by_key.cdp_0 +thrust.all.example.cuda.wrap_pointer: examples/cuda/CMakeFiles/thrust.all.example.cuda.wrap_pointer.dir/rule +.PHONY : thrust.all.example.cuda.wrap_pointer # clean rule for target. -testing/cuda/CMakeFiles/thrust.all.test.cuda.unique_by_key.cdp_0.dir/clean: - $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.all.test.cuda.unique_by_key.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.all.test.cuda.unique_by_key.cdp_0.dir/clean -.PHONY : testing/cuda/CMakeFiles/thrust.all.test.cuda.unique_by_key.cdp_0.dir/clean +examples/cuda/CMakeFiles/thrust.all.example.cuda.wrap_pointer.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.all.example.cuda.wrap_pointer.dir/build.make examples/cuda/CMakeFiles/thrust.all.example.cuda.wrap_pointer.dir/clean +.PHONY : examples/cuda/CMakeFiles/thrust.all.example.cuda.wrap_pointer.dir/clean #============================================================================= # Target rules for target dependencies/cub/CMakeFiles/cub.all.dir @@ -15320,7 +18644,7 @@ dependencies/cub/CMakeFiles/cub.all.dir/all: dependencies/cub/CMakeFiles/cub.cpp # Build rule for subdir invocation for target. dependencies/cub/CMakeFiles/cub.all.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 44 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 40 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/CMakeFiles/cub.all.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/CMakeFiles/cub.all.dir/rule @@ -15349,7 +18673,7 @@ dependencies/cub/CMakeFiles/cub.cpp14.all.dir/all: dependencies/cub/examples/CMa # Build rule for subdir invocation for target. dependencies/cub/CMakeFiles/cub.cpp14.all.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 44 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 40 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/CMakeFiles/cub.cpp14.all.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/CMakeFiles/cub.cpp14.all.dir/rule @@ -15376,7 +18700,7 @@ dependencies/cub/CMakeFiles/cub.all.headers.dir/all: dependencies/cub/CMakeFiles # Build rule for subdir invocation for target. dependencies/cub/CMakeFiles/cub.all.headers.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 24 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 21 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/CMakeFiles/cub.all.headers.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/CMakeFiles/cub.all.headers.dir/rule @@ -15397,12 +18721,12 @@ dependencies/cub/CMakeFiles/cub.all.headers.dir/clean: dependencies/cub/CMakeFiles/cub.cpp14.headers.base.dir/all: $(MAKE) $(MAKESILENT) -f dependencies/cub/CMakeFiles/cub.cpp14.headers.base.dir/build.make dependencies/cub/CMakeFiles/cub.cpp14.headers.base.dir/depend $(MAKE) $(MAKESILENT) -f dependencies/cub/CMakeFiles/cub.cpp14.headers.base.dir/build.make dependencies/cub/CMakeFiles/cub.cpp14.headers.base.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=3,4,5,6,7,8,9,10,11,12,13,14 "Built target cub.cpp14.headers.base" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=3,4,5,6,7,8,9,10,11,12,13 "Built target cub.cpp14.headers.base" .PHONY : dependencies/cub/CMakeFiles/cub.cpp14.headers.base.dir/all # Build rule for subdir invocation for target. dependencies/cub/CMakeFiles/cub.cpp14.headers.base.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 12 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 11 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/CMakeFiles/cub.cpp14.headers.base.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/CMakeFiles/cub.cpp14.headers.base.dir/rule @@ -15423,12 +18747,12 @@ dependencies/cub/CMakeFiles/cub.cpp14.headers.base.dir/clean: dependencies/cub/CMakeFiles/cub.cpp14.headers.bf16.dir/all: $(MAKE) $(MAKESILENT) -f dependencies/cub/CMakeFiles/cub.cpp14.headers.bf16.dir/build.make dependencies/cub/CMakeFiles/cub.cpp14.headers.bf16.dir/depend $(MAKE) $(MAKESILENT) -f dependencies/cub/CMakeFiles/cub.cpp14.headers.bf16.dir/build.make dependencies/cub/CMakeFiles/cub.cpp14.headers.bf16.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=15,16,17,18,19,20,21,22,23,24,25,26 "Built target cub.cpp14.headers.bf16" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=14,15,16,17,18,19,20,21,22,23 "Built target cub.cpp14.headers.bf16" .PHONY : dependencies/cub/CMakeFiles/cub.cpp14.headers.bf16.dir/all # Build rule for subdir invocation for target. dependencies/cub/CMakeFiles/cub.cpp14.headers.bf16.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 12 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 10 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/CMakeFiles/cub.cpp14.headers.bf16.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/CMakeFiles/cub.cpp14.headers.bf16.dir/rule @@ -15511,7 +18835,7 @@ dependencies/cub/test/CMakeFiles/cub.cpp14.tests.dir/all: dependencies/cub/test/ # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.cpp14.tests.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 18 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 17 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.cpp14.tests.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.tests.dir/rule @@ -15538,7 +18862,7 @@ dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_adjacent_difference.all.di # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_adjacent_difference.all.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_adjacent_difference.all.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_adjacent_difference.all.dir/rule @@ -15565,7 +18889,7 @@ dependencies/cub/test/CMakeFiles/cub.all.test.block_adjacent_difference.all.dir/ # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.all.test.block_adjacent_difference.all.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.all.test.block_adjacent_difference.all.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.all.test.block_adjacent_difference.all.dir/rule @@ -15751,12 +19075,12 @@ dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_adjacent_difference.bs_256 dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_adjacent_difference.bs_256.dir/all: _deps/metal-build/CMakeFiles/Metal.bundle.dir/all $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_adjacent_difference.bs_256.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_adjacent_difference.bs_256.dir/depend $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_adjacent_difference.bs_256.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_adjacent_difference.bs_256.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target cub.cpp14.test.block_adjacent_difference.bs_256" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=24 "Built target cub.cpp14.test.block_adjacent_difference.bs_256" .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_adjacent_difference.bs_256.dir/all # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_adjacent_difference.bs_256.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_adjacent_difference.bs_256.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_adjacent_difference.bs_256.dir/rule @@ -15920,7 +19244,7 @@ dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_load.all.dir/all: dependen # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_load.all.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_load.all.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_load.all.dir/rule @@ -15947,7 +19271,7 @@ dependencies/cub/test/CMakeFiles/cub.all.test.block_load.all.dir/all: dependenci # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.all.test.block_load.all.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.all.test.block_load.all.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.all.test.block_load.all.dir/rule @@ -15969,12 +19293,12 @@ dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_load.it_1.dir/all: depende dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_load.it_1.dir/all: _deps/metal-build/CMakeFiles/Metal.bundle.dir/all $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_load.it_1.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_load.it_1.dir/depend $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_load.it_1.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_load.it_1.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=27 "Built target cub.cpp14.test.block_load.it_1" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target cub.cpp14.test.block_load.it_1" .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_load.it_1.dir/all # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_load.it_1.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_load.it_1.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_load.it_1.dir/rule @@ -16150,7 +19474,7 @@ dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_radix_sort.all.dir/all: de # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_radix_sort.all.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_radix_sort.all.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_radix_sort.all.dir/rule @@ -16191,7 +19515,7 @@ dependencies/cub/test/CMakeFiles/cub.all.test.block_radix_sort.all.dir/all: depe # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.all.test.block_radix_sort.all.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.all.test.block_radix_sort.all.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.all.test.block_radix_sort.all.dir/rule @@ -16213,12 +19537,12 @@ dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_radix_sort.mem_0.alg_0.ipt dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_radix_sort.mem_0.alg_0.ipt_1.ipt_32.dir/all: _deps/metal-build/CMakeFiles/Metal.bundle.dir/all $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_radix_sort.mem_0.alg_0.ipt_1.ipt_32.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_radix_sort.mem_0.alg_0.ipt_1.ipt_32.dir/depend $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_radix_sort.mem_0.alg_0.ipt_1.ipt_32.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_radix_sort.mem_0.alg_0.ipt_1.ipt_32.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target cub.cpp14.test.block_radix_sort.mem_0.alg_0.ipt_1.ipt_32" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=25 "Built target cub.cpp14.test.block_radix_sort.mem_0.alg_0.ipt_1.ipt_32" .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_radix_sort.mem_0.alg_0.ipt_1.ipt_32.dir/all # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_radix_sort.mem_0.alg_0.ipt_1.ipt_32.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_radix_sort.mem_0.alg_0.ipt_1.ipt_32.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_radix_sort.mem_0.alg_0.ipt_1.ipt_32.dir/rule @@ -16321,12 +19645,12 @@ dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_radix_sort.mem_0.alg_1.ipt dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_radix_sort.mem_0.alg_1.ipt_1.ipt_32.dir/all: _deps/metal-build/CMakeFiles/Metal.bundle.dir/all $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_radix_sort.mem_0.alg_1.ipt_1.ipt_32.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_radix_sort.mem_0.alg_1.ipt_1.ipt_32.dir/depend $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_radix_sort.mem_0.alg_1.ipt_1.ipt_32.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_radix_sort.mem_0.alg_1.ipt_1.ipt_32.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=28 "Built target cub.cpp14.test.block_radix_sort.mem_0.alg_1.ipt_1.ipt_32" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target cub.cpp14.test.block_radix_sort.mem_0.alg_1.ipt_1.ipt_32" .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_radix_sort.mem_0.alg_1.ipt_1.ipt_32.dir/all # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_radix_sort.mem_0.alg_1.ipt_1.ipt_32.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_radix_sort.mem_0.alg_1.ipt_1.ipt_32.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_radix_sort.mem_0.alg_1.ipt_1.ipt_32.dir/rule @@ -16537,12 +19861,12 @@ dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_radix_sort.mem_1.alg_1.ipt dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_radix_sort.mem_1.alg_1.ipt_1.ipt_32.dir/all: _deps/metal-build/CMakeFiles/Metal.bundle.dir/all $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_radix_sort.mem_1.alg_1.ipt_1.ipt_32.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_radix_sort.mem_1.alg_1.ipt_1.ipt_32.dir/depend $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_radix_sort.mem_1.alg_1.ipt_1.ipt_32.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_radix_sort.mem_1.alg_1.ipt_1.ipt_32.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target cub.cpp14.test.block_radix_sort.mem_1.alg_1.ipt_1.ipt_32" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=26 "Built target cub.cpp14.test.block_radix_sort.mem_1.alg_1.ipt_1.ipt_32" .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_radix_sort.mem_1.alg_1.ipt_1.ipt_32.dir/all # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_radix_sort.mem_1.alg_1.ipt_1.ipt_32.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_radix_sort.mem_1.alg_1.ipt_1.ipt_32.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_radix_sort.mem_1.alg_1.ipt_1.ipt_32.dir/rule @@ -16683,7 +20007,7 @@ dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_reduce.all.dir/all: depend # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_reduce.all.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_reduce.all.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_reduce.all.dir/rule @@ -16716,7 +20040,7 @@ dependencies/cub/test/CMakeFiles/cub.all.test.block_reduce.all.dir/all: dependen # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.all.test.block_reduce.all.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.all.test.block_reduce.all.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.all.test.block_reduce.all.dir/rule @@ -16900,12 +20224,12 @@ dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_reduce.dimx_128.dimyz_1.di dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_reduce.dimx_128.dimyz_1.dir/all: _deps/metal-build/CMakeFiles/Metal.bundle.dir/all $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_reduce.dimx_128.dimyz_1.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_reduce.dimx_128.dimyz_1.dir/depend $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_reduce.dimx_128.dimyz_1.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_reduce.dimx_128.dimyz_1.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=29 "Built target cub.cpp14.test.block_reduce.dimx_128.dimyz_1" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target cub.cpp14.test.block_reduce.dimx_128.dimyz_1" .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_reduce.dimx_128.dimyz_1.dir/all # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_reduce.dimx_128.dimyz_1.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_reduce.dimx_128.dimyz_1.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_reduce.dimx_128.dimyz_1.dir/rule @@ -17043,12 +20367,12 @@ dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_scan.alg_0.mode_0.dir/all: dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_scan.alg_0.mode_0.dir/all: _deps/metal-build/CMakeFiles/Metal.bundle.dir/all $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_scan.alg_0.mode_0.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_scan.alg_0.mode_0.dir/depend $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_scan.alg_0.mode_0.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_scan.alg_0.mode_0.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target cub.cpp14.test.block_scan.alg_0.mode_0" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=27 "Built target cub.cpp14.test.block_scan.alg_0.mode_0" .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_scan.alg_0.mode_0.dir/all # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_scan.alg_0.mode_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_scan.alg_0.mode_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_scan.alg_0.mode_0.dir/rule @@ -17097,12 +20421,12 @@ dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_scan.alg_1.mode_0.dir/all: dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_scan.alg_1.mode_0.dir/all: _deps/metal-build/CMakeFiles/Metal.bundle.dir/all $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_scan.alg_1.mode_0.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_scan.alg_1.mode_0.dir/depend $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_scan.alg_1.mode_0.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_scan.alg_1.mode_0.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=30 "Built target cub.cpp14.test.block_scan.alg_1.mode_0" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target cub.cpp14.test.block_scan.alg_1.mode_0" .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_scan.alg_1.mode_0.dir/all # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_scan.alg_1.mode_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_scan.alg_1.mode_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_scan.alg_1.mode_0.dir/rule @@ -17483,12 +20807,12 @@ dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_store.it_1.dir/all: depend dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_store.it_1.dir/all: _deps/metal-build/CMakeFiles/Metal.bundle.dir/all $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_store.it_1.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_store.it_1.dir/depend $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_store.it_1.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_store.it_1.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target cub.cpp14.test.block_store.it_1" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=28 "Built target cub.cpp14.test.block_store.it_1" .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_store.it_1.dir/all # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_store.it_1.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_store.it_1.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_store.it_1.dir/rule @@ -17510,12 +20834,12 @@ dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_store.it_11.dir/all: depen dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_store.it_11.dir/all: _deps/metal-build/CMakeFiles/Metal.bundle.dir/all $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_store.it_11.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_store.it_11.dir/depend $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_store.it_11.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_store.it_11.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=31 "Built target cub.cpp14.test.block_store.it_11" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target cub.cpp14.test.block_store.it_11" .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_store.it_11.dir/all # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_store.it_11.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_store.it_11.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_store.it_11.dir/rule @@ -17722,12 +21046,12 @@ dependencies/cub/test/CMakeFiles/cub.cpp14.test.printing.dir/all: dependencies/c dependencies/cub/test/CMakeFiles/cub.cpp14.test.printing.dir/all: _deps/metal-build/CMakeFiles/Metal.bundle.dir/all $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.printing.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.printing.dir/depend $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.printing.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.printing.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target cub.cpp14.test.printing" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=37 "Built target cub.cpp14.test.printing" .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.printing.dir/all # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.cpp14.test.printing.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.cpp14.test.printing.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.printing.dir/rule @@ -17749,12 +21073,12 @@ dependencies/cub/test/CMakeFiles/cub.cpp14.test.radix_operations.dir/all: depend dependencies/cub/test/CMakeFiles/cub.cpp14.test.radix_operations.dir/all: _deps/metal-build/CMakeFiles/Metal.bundle.dir/all $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.radix_operations.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.radix_operations.dir/depend $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.radix_operations.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.radix_operations.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=41 "Built target cub.cpp14.test.radix_operations" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target cub.cpp14.test.radix_operations" .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.radix_operations.dir/all # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.cpp14.test.radix_operations.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.cpp14.test.radix_operations.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.radix_operations.dir/rule @@ -18066,7 +21390,7 @@ dependencies/cub/test/CMakeFiles/cub.cpp14.test.warp_load.lwt_16.alg_2.dir/all: dependencies/cub/test/CMakeFiles/cub.cpp14.test.warp_load.lwt_16.alg_2.dir/all: _deps/metal-build/CMakeFiles/Metal.bundle.dir/all $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.warp_load.lwt_16.alg_2.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.warp_load.lwt_16.alg_2.dir/depend $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.warp_load.lwt_16.alg_2.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.warp_load.lwt_16.alg_2.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=42 "Built target cub.cpp14.test.warp_load.lwt_16.alg_2" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=38 "Built target cub.cpp14.test.warp_load.lwt_16.alg_2" .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.warp_load.lwt_16.alg_2.dir/all # Build rule for subdir invocation for target. @@ -18282,7 +21606,7 @@ dependencies/cub/test/CMakeFiles/cub.cpp14.test.warp_reduce.dir/all: dependencie dependencies/cub/test/CMakeFiles/cub.cpp14.test.warp_reduce.dir/all: _deps/metal-build/CMakeFiles/Metal.bundle.dir/all $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.warp_reduce.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.warp_reduce.dir/depend $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.warp_reduce.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.warp_reduce.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=43 "Built target cub.cpp14.test.warp_reduce" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=39 "Built target cub.cpp14.test.warp_reduce" .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.warp_reduce.dir/all # Build rule for subdir invocation for target. @@ -18437,12 +21761,12 @@ dependencies/cub/test/CMakeFiles/cub.cpp14.test.warp_store.lwt_4.alg_1.dir/all: dependencies/cub/test/CMakeFiles/cub.cpp14.test.warp_store.lwt_4.alg_1.dir/all: _deps/metal-build/CMakeFiles/Metal.bundle.dir/all $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.warp_store.lwt_4.alg_1.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.warp_store.lwt_4.alg_1.dir/depend $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.warp_store.lwt_4.alg_1.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.warp_store.lwt_4.alg_1.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=44 "Built target cub.cpp14.test.warp_store.lwt_4.alg_1" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target cub.cpp14.test.warp_store.lwt_4.alg_1" .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.warp_store.lwt_4.alg_1.dir/all # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.cpp14.test.warp_store.lwt_4.alg_1.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.cpp14.test.warp_store.lwt_4.alg_1.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.warp_store.lwt_4.alg_1.dir/rule @@ -18464,12 +21788,12 @@ dependencies/cub/test/CMakeFiles/cub.cpp14.test.warp_store.lwt_4.alg_2.dir/all: dependencies/cub/test/CMakeFiles/cub.cpp14.test.warp_store.lwt_4.alg_2.dir/all: _deps/metal-build/CMakeFiles/Metal.bundle.dir/all $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.warp_store.lwt_4.alg_2.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.warp_store.lwt_4.alg_2.dir/depend $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.warp_store.lwt_4.alg_2.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.warp_store.lwt_4.alg_2.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target cub.cpp14.test.warp_store.lwt_4.alg_2" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=40 "Built target cub.cpp14.test.warp_store.lwt_4.alg_2" .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.warp_store.lwt_4.alg_2.dir/all # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.cpp14.test.warp_store.lwt_4.alg_2.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.cpp14.test.warp_store.lwt_4.alg_2.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.warp_store.lwt_4.alg_2.dir/rule @@ -19045,7 +22369,7 @@ dependencies/cub/test/CMakeFiles/cub.all.test.device_batch_copy.dir/clean: dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_batch_memcpy.dir/all: $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_batch_memcpy.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_batch_memcpy.dir/depend $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_batch_memcpy.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_batch_memcpy.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=32 "Built target cub.cpp14.test.device_batch_memcpy" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=29 "Built target cub.cpp14.test.device_batch_memcpy" .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_batch_memcpy.dir/all # Build rule for subdir invocation for target. @@ -19225,7 +22549,7 @@ dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.all.dir/all: d # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.all.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 4 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 3 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.all.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.all.dir/rule @@ -19270,7 +22594,7 @@ dependencies/cub/test/CMakeFiles/cub.all.test.device_radix_sort.all.dir/all: dep # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.all.test.device_radix_sort.all.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 4 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 3 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.all.test.device_radix_sort.all.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.all.test.device_radix_sort.all.dir/rule @@ -19395,12 +22719,12 @@ dependencies/cub/test/CMakeFiles/cub.all.test.device_radix_sort.cdp_0.bytes_1.pa dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_1.pairs_2.dir/all: $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_1.pairs_2.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_1.pairs_2.dir/depend $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_1.pairs_2.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_1.pairs_2.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=33 "Built target cub.cpp14.test.device_radix_sort.cdp_0.bytes_1.pairs_2" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target cub.cpp14.test.device_radix_sort.cdp_0.bytes_1.pairs_2" .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_1.pairs_2.dir/all # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_1.pairs_2.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_1.pairs_2.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_1.pairs_2.dir/rule @@ -19426,7 +22750,7 @@ dependencies/cub/test/CMakeFiles/cub.all.test.device_radix_sort.cdp_0.bytes_1.pa # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.all.test.device_radix_sort.cdp_0.bytes_1.pairs_2.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.all.test.device_radix_sort.cdp_0.bytes_1.pairs_2.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.all.test.device_radix_sort.cdp_0.bytes_1.pairs_2.dir/rule @@ -19447,12 +22771,12 @@ dependencies/cub/test/CMakeFiles/cub.all.test.device_radix_sort.cdp_0.bytes_1.pa dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_1.pairs_3.dir/all: $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_1.pairs_3.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_1.pairs_3.dir/depend $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_1.pairs_3.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_1.pairs_3.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target cub.cpp14.test.device_radix_sort.cdp_0.bytes_1.pairs_3" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=30 "Built target cub.cpp14.test.device_radix_sort.cdp_0.bytes_1.pairs_3" .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_1.pairs_3.dir/all # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_1.pairs_3.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_1.pairs_3.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_1.pairs_3.dir/rule @@ -19478,7 +22802,7 @@ dependencies/cub/test/CMakeFiles/cub.all.test.device_radix_sort.cdp_0.bytes_1.pa # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.all.test.device_radix_sort.cdp_0.bytes_1.pairs_3.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.all.test.device_radix_sort.cdp_0.bytes_1.pairs_3.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.all.test.device_radix_sort.cdp_0.bytes_1.pairs_3.dir/rule @@ -19499,12 +22823,12 @@ dependencies/cub/test/CMakeFiles/cub.all.test.device_radix_sort.cdp_0.bytes_1.pa dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_2.pairs_0.dir/all: $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_2.pairs_0.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_2.pairs_0.dir/depend $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_2.pairs_0.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_2.pairs_0.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=34 "Built target cub.cpp14.test.device_radix_sort.cdp_0.bytes_2.pairs_0" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target cub.cpp14.test.device_radix_sort.cdp_0.bytes_2.pairs_0" .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_2.pairs_0.dir/all # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_2.pairs_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_2.pairs_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_2.pairs_0.dir/rule @@ -19530,7 +22854,7 @@ dependencies/cub/test/CMakeFiles/cub.all.test.device_radix_sort.cdp_0.bytes_2.pa # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.all.test.device_radix_sort.cdp_0.bytes_2.pairs_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.all.test.device_radix_sort.cdp_0.bytes_2.pairs_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.all.test.device_radix_sort.cdp_0.bytes_2.pairs_0.dir/rule @@ -19551,12 +22875,12 @@ dependencies/cub/test/CMakeFiles/cub.all.test.device_radix_sort.cdp_0.bytes_2.pa dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_2.pairs_1.dir/all: $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_2.pairs_1.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_2.pairs_1.dir/depend $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_2.pairs_1.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_2.pairs_1.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target cub.cpp14.test.device_radix_sort.cdp_0.bytes_2.pairs_1" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=31 "Built target cub.cpp14.test.device_radix_sort.cdp_0.bytes_2.pairs_1" .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_2.pairs_1.dir/all # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_2.pairs_1.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_2.pairs_1.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_2.pairs_1.dir/rule @@ -19582,7 +22906,7 @@ dependencies/cub/test/CMakeFiles/cub.all.test.device_radix_sort.cdp_0.bytes_2.pa # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.all.test.device_radix_sort.cdp_0.bytes_2.pairs_1.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.all.test.device_radix_sort.cdp_0.bytes_2.pairs_1.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.all.test.device_radix_sort.cdp_0.bytes_2.pairs_1.dir/rule @@ -19759,12 +23083,12 @@ dependencies/cub/test/CMakeFiles/cub.all.test.device_radix_sort.cdp_0.bytes_4.pa dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_4.pairs_1.dir/all: $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_4.pairs_1.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_4.pairs_1.dir/depend $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_4.pairs_1.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_4.pairs_1.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=35 "Built target cub.cpp14.test.device_radix_sort.cdp_0.bytes_4.pairs_1" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target cub.cpp14.test.device_radix_sort.cdp_0.bytes_4.pairs_1" .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_4.pairs_1.dir/all # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_4.pairs_1.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_4.pairs_1.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_4.pairs_1.dir/rule @@ -19790,7 +23114,7 @@ dependencies/cub/test/CMakeFiles/cub.all.test.device_radix_sort.cdp_0.bytes_4.pa # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.all.test.device_radix_sort.cdp_0.bytes_4.pairs_1.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.all.test.device_radix_sort.cdp_0.bytes_4.pairs_1.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.all.test.device_radix_sort.cdp_0.bytes_4.pairs_1.dir/rule @@ -19863,12 +23187,12 @@ dependencies/cub/test/CMakeFiles/cub.all.test.device_radix_sort.cdp_0.bytes_4.pa dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_4.pairs_3.dir/all: $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_4.pairs_3.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_4.pairs_3.dir/depend $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_4.pairs_3.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_4.pairs_3.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target cub.cpp14.test.device_radix_sort.cdp_0.bytes_4.pairs_3" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=32 "Built target cub.cpp14.test.device_radix_sort.cdp_0.bytes_4.pairs_3" .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_4.pairs_3.dir/all # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_4.pairs_3.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_4.pairs_3.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_4.pairs_3.dir/rule @@ -19894,7 +23218,7 @@ dependencies/cub/test/CMakeFiles/cub.all.test.device_radix_sort.cdp_0.bytes_4.pa # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.all.test.device_radix_sort.cdp_0.bytes_4.pairs_3.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.all.test.device_radix_sort.cdp_0.bytes_4.pairs_3.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.all.test.device_radix_sort.cdp_0.bytes_4.pairs_3.dir/rule @@ -20071,12 +23395,12 @@ dependencies/cub/test/CMakeFiles/cub.all.test.device_radix_sort.cdp_0.bytes_8.pa dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_8.pairs_3.dir/all: $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_8.pairs_3.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_8.pairs_3.dir/depend $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_8.pairs_3.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_8.pairs_3.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=36 "Built target cub.cpp14.test.device_radix_sort.cdp_0.bytes_8.pairs_3" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target cub.cpp14.test.device_radix_sort.cdp_0.bytes_8.pairs_3" .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_8.pairs_3.dir/all # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_8.pairs_3.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_8.pairs_3.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_8.pairs_3.dir/rule @@ -20102,7 +23426,7 @@ dependencies/cub/test/CMakeFiles/cub.all.test.device_radix_sort.cdp_0.bytes_8.pa # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.all.test.device_radix_sort.cdp_0.bytes_8.pairs_3.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.all.test.device_radix_sort.cdp_0.bytes_8.pairs_3.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.all.test.device_radix_sort.cdp_0.bytes_8.pairs_3.dir/rule @@ -20443,12 +23767,12 @@ dependencies/cub/test/CMakeFiles/cub.all.test.device_reduce.cdp_0.types_0.dir/cl dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_reduce.cdp_0.types_1.dir/all: $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_reduce.cdp_0.types_1.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_reduce.cdp_0.types_1.dir/depend $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_reduce.cdp_0.types_1.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_reduce.cdp_0.types_1.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target cub.cpp14.test.device_reduce.cdp_0.types_1" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=33 "Built target cub.cpp14.test.device_reduce.cdp_0.types_1" .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_reduce.cdp_0.types_1.dir/all # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_reduce.cdp_0.types_1.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_reduce.cdp_0.types_1.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_reduce.cdp_0.types_1.dir/rule @@ -20474,7 +23798,7 @@ dependencies/cub/test/CMakeFiles/cub.all.test.device_reduce.cdp_0.types_1.dir/al # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.all.test.device_reduce.cdp_0.types_1.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.all.test.device_reduce.cdp_0.types_1.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.all.test.device_reduce.cdp_0.types_1.dir/rule @@ -20599,12 +23923,12 @@ dependencies/cub/test/CMakeFiles/cub.all.test.device_reduce.cdp_0.types_3.dir/cl dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_reduce.cdp_0.types_4.dir/all: $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_reduce.cdp_0.types_4.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_reduce.cdp_0.types_4.dir/depend $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_reduce.cdp_0.types_4.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_reduce.cdp_0.types_4.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=37 "Built target cub.cpp14.test.device_reduce.cdp_0.types_4" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target cub.cpp14.test.device_reduce.cdp_0.types_4" .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_reduce.cdp_0.types_4.dir/all # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_reduce.cdp_0.types_4.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_reduce.cdp_0.types_4.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_reduce.cdp_0.types_4.dir/rule @@ -20630,7 +23954,7 @@ dependencies/cub/test/CMakeFiles/cub.all.test.device_reduce.cdp_0.types_4.dir/al # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.all.test.device_reduce.cdp_0.types_4.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.all.test.device_reduce.cdp_0.types_4.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.all.test.device_reduce.cdp_0.types_4.dir/rule @@ -20866,7 +24190,7 @@ dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan.all.dir/all: depende # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan.all.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan.all.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan.all.dir/rule @@ -20894,7 +24218,7 @@ dependencies/cub/test/CMakeFiles/cub.all.test.device_scan.all.dir/all: dependenc # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.all.test.device_scan.all.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.all.test.device_scan.all.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.all.test.device_scan.all.dir/rule @@ -20915,12 +24239,12 @@ dependencies/cub/test/CMakeFiles/cub.all.test.device_scan.all.dir/clean: dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan.cdp_0.types_0.dir/all: $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan.cdp_0.types_0.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan.cdp_0.types_0.dir/depend $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan.cdp_0.types_0.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan.cdp_0.types_0.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target cub.cpp14.test.device_scan.cdp_0.types_0" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=34 "Built target cub.cpp14.test.device_scan.cdp_0.types_0" .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan.cdp_0.types_0.dir/all # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan.cdp_0.types_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan.cdp_0.types_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan.cdp_0.types_0.dir/rule @@ -20946,7 +24270,7 @@ dependencies/cub/test/CMakeFiles/cub.all.test.device_scan.cdp_0.types_0.dir/all: # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.all.test.device_scan.cdp_0.types_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.all.test.device_scan.cdp_0.types_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.all.test.device_scan.cdp_0.types_0.dir/rule @@ -21081,7 +24405,7 @@ dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan_by_key.all.dir/all: # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan_by_key.all.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan_by_key.all.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan_by_key.all.dir/rule @@ -21112,7 +24436,7 @@ dependencies/cub/test/CMakeFiles/cub.all.test.device_scan_by_key.all.dir/all: de # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.all.test.device_scan_by_key.all.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 2 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.all.test.device_scan_by_key.all.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.all.test.device_scan_by_key.all.dir/rule @@ -21133,12 +24457,12 @@ dependencies/cub/test/CMakeFiles/cub.all.test.device_scan_by_key.all.dir/clean: dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan_by_key.cdp_0.types_0.dir/all: $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan_by_key.cdp_0.types_0.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan_by_key.cdp_0.types_0.dir/depend $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan_by_key.cdp_0.types_0.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan_by_key.cdp_0.types_0.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=38 "Built target cub.cpp14.test.device_scan_by_key.cdp_0.types_0" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target cub.cpp14.test.device_scan_by_key.cdp_0.types_0" .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan_by_key.cdp_0.types_0.dir/all # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan_by_key.cdp_0.types_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan_by_key.cdp_0.types_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan_by_key.cdp_0.types_0.dir/rule @@ -21164,7 +24488,7 @@ dependencies/cub/test/CMakeFiles/cub.all.test.device_scan_by_key.cdp_0.types_0.d # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.all.test.device_scan_by_key.cdp_0.types_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.all.test.device_scan_by_key.cdp_0.types_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.all.test.device_scan_by_key.cdp_0.types_0.dir/rule @@ -21289,12 +24613,12 @@ dependencies/cub/test/CMakeFiles/cub.all.test.device_scan_by_key.cdp_0.types_2.d dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan_by_key.cdp_0.types_3.dir/all: $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan_by_key.cdp_0.types_3.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan_by_key.cdp_0.types_3.dir/depend $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan_by_key.cdp_0.types_3.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan_by_key.cdp_0.types_3.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target cub.cpp14.test.device_scan_by_key.cdp_0.types_3" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=35 "Built target cub.cpp14.test.device_scan_by_key.cdp_0.types_3" .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan_by_key.cdp_0.types_3.dir/all # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan_by_key.cdp_0.types_3.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan_by_key.cdp_0.types_3.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan_by_key.cdp_0.types_3.dir/rule @@ -21320,7 +24644,7 @@ dependencies/cub/test/CMakeFiles/cub.all.test.device_scan_by_key.cdp_0.types_3.d # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.all.test.device_scan_by_key.cdp_0.types_3.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.all.test.device_scan_by_key.cdp_0.types_3.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.all.test.device_scan_by_key.cdp_0.types_3.dir/rule @@ -21393,12 +24717,12 @@ dependencies/cub/test/CMakeFiles/cub.all.test.device_scan_by_key.cdp_0.types_4.d dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan_by_key.cdp_0.types_5.dir/all: $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan_by_key.cdp_0.types_5.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan_by_key.cdp_0.types_5.dir/depend $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan_by_key.cdp_0.types_5.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan_by_key.cdp_0.types_5.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=39 "Built target cub.cpp14.test.device_scan_by_key.cdp_0.types_5" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target cub.cpp14.test.device_scan_by_key.cdp_0.types_5" .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan_by_key.cdp_0.types_5.dir/all # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan_by_key.cdp_0.types_5.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan_by_key.cdp_0.types_5.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan_by_key.cdp_0.types_5.dir/rule @@ -21424,7 +24748,7 @@ dependencies/cub/test/CMakeFiles/cub.all.test.device_scan_by_key.cdp_0.types_5.d # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.all.test.device_scan_by_key.cdp_0.types_5.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.all.test.device_scan_by_key.cdp_0.types_5.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.all.test.device_scan_by_key.cdp_0.types_5.dir/rule @@ -21762,7 +25086,7 @@ dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_select_unique_by_key.all. # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_select_unique_by_key.all.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_select_unique_by_key.all.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_select_unique_by_key.all.dir/rule @@ -21788,7 +25112,7 @@ dependencies/cub/test/CMakeFiles/cub.all.test.device_select_unique_by_key.all.di # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.all.test.device_select_unique_by_key.all.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.all.test.device_select_unique_by_key.all.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.all.test.device_select_unique_by_key.all.dir/rule @@ -21809,12 +25133,12 @@ dependencies/cub/test/CMakeFiles/cub.all.test.device_select_unique_by_key.all.di dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_select_unique_by_key.cdp_0.dir/all: $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_select_unique_by_key.cdp_0.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_select_unique_by_key.cdp_0.dir/depend $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_select_unique_by_key.cdp_0.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_select_unique_by_key.cdp_0.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target cub.cpp14.test.device_select_unique_by_key.cdp_0" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=36 "Built target cub.cpp14.test.device_select_unique_by_key.cdp_0" .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_select_unique_by_key.cdp_0.dir/all # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_select_unique_by_key.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_select_unique_by_key.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_select_unique_by_key.cdp_0.dir/rule @@ -21840,7 +25164,7 @@ dependencies/cub/test/CMakeFiles/cub.all.test.device_select_unique_by_key.cdp_0. # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.all.test.device_select_unique_by_key.cdp_0.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.all.test.device_select_unique_by_key.cdp_0.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.all.test.device_select_unique_by_key.cdp_0.dir/rule @@ -21913,12 +25237,12 @@ dependencies/cub/test/CMakeFiles/cub.all.test.device_spmv.dir/clean: dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_three_way_partition.dir/all: $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_three_way_partition.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_three_way_partition.dir/depend $(MAKE) $(MAKESILENT) -f dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_three_way_partition.dir/build.make dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_three_way_partition.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=40 "Built target cub.cpp14.test.device_three_way_partition" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target cub.cpp14.test.device_three_way_partition" .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_three_way_partition.dir/all # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_three_way_partition.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_three_way_partition.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_three_way_partition.dir/rule @@ -21944,7 +25268,7 @@ dependencies/cub/test/CMakeFiles/cub.all.test.device_three_way_partition.dir/all # Build rule for subdir invocation for target. dependencies/cub/test/CMakeFiles/cub.all.test.device_three_way_partition.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/test/CMakeFiles/cub.all.test.device_three_way_partition.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/test/CMakeFiles/cub.all.test.device_three_way_partition.dir/rule @@ -22889,12 +26213,12 @@ dependencies/cub/examples/device/CMakeFiles/cub.all.example.device.radix_sort_cu dependencies/cub/examples/device/CMakeFiles/cub.cpp14.example.device.reduce.dir/all: $(MAKE) $(MAKESILENT) -f dependencies/cub/examples/device/CMakeFiles/cub.cpp14.example.device.reduce.dir/build.make dependencies/cub/examples/device/CMakeFiles/cub.cpp14.example.device.reduce.dir/depend $(MAKE) $(MAKESILENT) -f dependencies/cub/examples/device/CMakeFiles/cub.cpp14.example.device.reduce.dir/build.make dependencies/cub/examples/device/CMakeFiles/cub.cpp14.example.device.reduce.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=2 "Built target cub.cpp14.example.device.reduce" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target cub.cpp14.example.device.reduce" .PHONY : dependencies/cub/examples/device/CMakeFiles/cub.cpp14.example.device.reduce.dir/all # Build rule for subdir invocation for target. dependencies/cub/examples/device/CMakeFiles/cub.cpp14.example.device.reduce.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/examples/device/CMakeFiles/cub.cpp14.example.device.reduce.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/examples/device/CMakeFiles/cub.cpp14.example.device.reduce.dir/rule @@ -22920,7 +26244,7 @@ dependencies/cub/examples/device/CMakeFiles/cub.all.example.device.reduce.dir/al # Build rule for subdir invocation for target. dependencies/cub/examples/device/CMakeFiles/cub.all.example.device.reduce.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/examples/device/CMakeFiles/cub.all.example.device.reduce.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/examples/device/CMakeFiles/cub.all.example.device.reduce.dir/rule @@ -22941,12 +26265,12 @@ dependencies/cub/examples/device/CMakeFiles/cub.all.example.device.reduce.dir/cl dependencies/cub/examples/device/CMakeFiles/cub.cpp14.example.device.scan.dir/all: $(MAKE) $(MAKESILENT) -f dependencies/cub/examples/device/CMakeFiles/cub.cpp14.example.device.scan.dir/build.make dependencies/cub/examples/device/CMakeFiles/cub.cpp14.example.device.scan.dir/depend $(MAKE) $(MAKESILENT) -f dependencies/cub/examples/device/CMakeFiles/cub.cpp14.example.device.scan.dir/build.make dependencies/cub/examples/device/CMakeFiles/cub.cpp14.example.device.scan.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num= "Built target cub.cpp14.example.device.scan" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=2 "Built target cub.cpp14.example.device.scan" .PHONY : dependencies/cub/examples/device/CMakeFiles/cub.cpp14.example.device.scan.dir/all # Build rule for subdir invocation for target. dependencies/cub/examples/device/CMakeFiles/cub.cpp14.example.device.scan.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/examples/device/CMakeFiles/cub.cpp14.example.device.scan.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/examples/device/CMakeFiles/cub.cpp14.example.device.scan.dir/rule @@ -22972,7 +26296,7 @@ dependencies/cub/examples/device/CMakeFiles/cub.all.example.device.scan.dir/all: # Build rule for subdir invocation for target. dependencies/cub/examples/device/CMakeFiles/cub.all.example.device.scan.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 1 $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dependencies/cub/examples/device/CMakeFiles/cub.all.example.device.scan.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 .PHONY : dependencies/cub/examples/device/CMakeFiles/cub.all.example.device.scan.dir/rule diff --git a/build/CMakeFiles/TargetDirectories.txt b/build/CMakeFiles/TargetDirectories.txt index ab3dc47dd86af2818828684b90e3a21f7f063e47..8effb9761e7f291fcc8a5956537b4b5272448873 100644 --- a/build/CMakeFiles/TargetDirectories.txt +++ b/build/CMakeFiles/TargetDirectories.txt @@ -580,6 +580,144 @@ /home/ubuntu/thrust/build/testing/regression/CMakeFiles/install.dir /home/ubuntu/thrust/build/testing/regression/CMakeFiles/install/local.dir /home/ubuntu/thrust/build/testing/regression/CMakeFiles/install/strip.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.examples.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.arbitrary_transformation.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.arbitrary_transformation.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.basic_vector.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.basic_vector.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.bounding_box.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.bounding_box.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.bucket_sort2d.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.bucket_sort2d.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.constant_iterator.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.constant_iterator.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.counting_iterator.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.counting_iterator.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.device_ptr.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.device_ptr.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.discrete_voronoi.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.discrete_voronoi.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.dot_products_with_zip.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.dot_products_with_zip.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.expand.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.expand.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.fill_copy_sequence.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.fill_copy_sequence.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.histogram.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.histogram.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.lambda.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.lambda.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.lexicographical_sort.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.lexicographical_sort.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.max_abs_diff.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.max_abs_diff.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.minimal_custom_backend.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.minimal_custom_backend.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.minmax.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.minmax.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.mode.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.mode.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.monte_carlo.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.monte_carlo.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.monte_carlo_disjoint_sequences.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.mr_basic.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.mr_basic.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.norm.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.norm.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.padded_grid_reduction.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.padded_grid_reduction.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.permutation_iterator.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.permutation_iterator.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.raw_reference_cast.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.raw_reference_cast.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.remove_points2d.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.remove_points2d.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.repeated_range.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.repeated_range.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.run_length_decoding.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.run_length_decoding.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.run_length_encoding.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.run_length_encoding.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.saxpy.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.saxpy.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.scan_by_key.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.scan_by_key.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.scan_matrix_by_rows.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.set_operations.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.set_operations.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.simple_moving_average.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.simple_moving_average.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.sort.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.sort.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.sorting_aos_vs_soa.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.sparse_vector.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.sparse_vector.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.stream_compaction.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.stream_compaction.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.strided_range.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.strided_range.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.sum.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.sum.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.sum_rows.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.sum_rows.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.summary_statistics.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.summary_statistics.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.summed_area_table.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.summed_area_table.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.tiled_range.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.tiled_range.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.transform_input_output_iterator.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.transform_iterator.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.transform_iterator.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.transform_output_iterator.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.transform_output_iterator.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.uninitialized_vector.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.uninitialized_vector.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.version.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.version.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.weld_vertices.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.weld_vertices.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.word_count.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.word_count.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/test.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/edit_cache.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/rebuild_cache.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/list_install_components.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/install.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/install/local.dir +/home/ubuntu/thrust/build/examples/CMakeFiles/install/strip.dir +/home/ubuntu/thrust/build/examples/cmake/CMakeFiles/test.dir +/home/ubuntu/thrust/build/examples/cmake/CMakeFiles/edit_cache.dir +/home/ubuntu/thrust/build/examples/cmake/CMakeFiles/rebuild_cache.dir +/home/ubuntu/thrust/build/examples/cmake/CMakeFiles/list_install_components.dir +/home/ubuntu/thrust/build/examples/cmake/CMakeFiles/install.dir +/home/ubuntu/thrust/build/examples/cmake/CMakeFiles/install/local.dir +/home/ubuntu/thrust/build/examples/cmake/CMakeFiles/install/strip.dir +/home/ubuntu/thrust/build/examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir +/home/ubuntu/thrust/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.async_reduce.dir +/home/ubuntu/thrust/build/examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir +/home/ubuntu/thrust/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.custom_temporary_allocation.dir +/home/ubuntu/thrust/build/examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir +/home/ubuntu/thrust/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.explicit_cuda_stream.dir +/home/ubuntu/thrust/build/examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir +/home/ubuntu/thrust/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.global_device_vector.dir +/home/ubuntu/thrust/build/examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir +/home/ubuntu/thrust/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.range_view.dir +/home/ubuntu/thrust/build/examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir +/home/ubuntu/thrust/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.unwrap_pointer.dir +/home/ubuntu/thrust/build/examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir +/home/ubuntu/thrust/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.wrap_pointer.dir +/home/ubuntu/thrust/build/examples/cuda/CMakeFiles/test.dir +/home/ubuntu/thrust/build/examples/cuda/CMakeFiles/edit_cache.dir +/home/ubuntu/thrust/build/examples/cuda/CMakeFiles/rebuild_cache.dir +/home/ubuntu/thrust/build/examples/cuda/CMakeFiles/list_install_components.dir +/home/ubuntu/thrust/build/examples/cuda/CMakeFiles/install.dir +/home/ubuntu/thrust/build/examples/cuda/CMakeFiles/install/local.dir +/home/ubuntu/thrust/build/examples/cuda/CMakeFiles/install/strip.dir /home/ubuntu/thrust/build/dependencies/cub/CMakeFiles/cub.all.dir /home/ubuntu/thrust/build/dependencies/cub/CMakeFiles/cub.cpp14.all.dir /home/ubuntu/thrust/build/dependencies/cub/CMakeFiles/cub.all.headers.dir diff --git a/build/CMakeFiles/VerifyGlobs.cmake b/build/CMakeFiles/VerifyGlobs.cmake index 2f7ea666e1720699c1c076f2359742a916ed1c67..4379395491b649de23382832b348338369d394fd 100644 --- a/build/CMakeFiles/VerifyGlobs.cmake +++ b/build/CMakeFiles/VerifyGlobs.cmake @@ -85,6 +85,100 @@ if(NOT "${NEW_GLOB}" STREQUAL "${OLD_GLOB}") file(TOUCH_NOCREATE "/home/ubuntu/thrust/build/CMakeFiles/cmake.verify_globs") endif() +# example_srcs at examples/CMakeLists.txt:143 (file) +file(GLOB NEW_GLOB LIST_DIRECTORIES true RELATIVE "/home/ubuntu/thrust/examples" "/home/ubuntu/thrust/examples/*.cpp") +set(OLD_GLOB + ) +if(NOT "${NEW_GLOB}" STREQUAL "${OLD_GLOB}") + message("-- GLOB mismatch!") + file(TOUCH_NOCREATE "/home/ubuntu/thrust/build/CMakeFiles/cmake.verify_globs") +endif() + +# example_srcs at examples/CMakeLists.txt:143 (file) +file(GLOB NEW_GLOB LIST_DIRECTORIES true RELATIVE "/home/ubuntu/thrust/examples" "/home/ubuntu/thrust/examples/*.cu") +set(OLD_GLOB + "arbitrary_transformation.cu" + "basic_vector.cu" + "bounding_box.cu" + "bucket_sort2d.cu" + "constant_iterator.cu" + "counting_iterator.cu" + "device_ptr.cu" + "discrete_voronoi.cu" + "dot_products_with_zip.cu" + "expand.cu" + "fill_copy_sequence.cu" + "histogram.cu" + "lambda.cu" + "lexicographical_sort.cu" + "max_abs_diff.cu" + "minimal_custom_backend.cu" + "minmax.cu" + "mode.cu" + "monte_carlo.cu" + "monte_carlo_disjoint_sequences.cu" + "mr_basic.cu" + "norm.cu" + "padded_grid_reduction.cu" + "permutation_iterator.cu" + "raw_reference_cast.cu" + "remove_points2d.cu" + "repeated_range.cu" + "run_length_decoding.cu" + "run_length_encoding.cu" + "saxpy.cu" + "scan_by_key.cu" + "scan_matrix_by_rows.cu" + "set_operations.cu" + "simple_moving_average.cu" + "sort.cu" + "sorting_aos_vs_soa.cu" + "sparse_vector.cu" + "stream_compaction.cu" + "strided_range.cu" + "sum.cu" + "sum_rows.cu" + "summary_statistics.cu" + "summed_area_table.cu" + "tiled_range.cu" + "transform_input_output_iterator.cu" + "transform_iterator.cu" + "transform_output_iterator.cu" + "uninitialized_vector.cu" + "version.cu" + "weld_vertices.cu" + "word_count.cu" + ) +if(NOT "${NEW_GLOB}" STREQUAL "${OLD_GLOB}") + message("-- GLOB mismatch!") + file(TOUCH_NOCREATE "/home/ubuntu/thrust/build/CMakeFiles/cmake.verify_globs") +endif() + +# example_srcs at examples/cuda/CMakeLists.txt:1 (file) +file(GLOB NEW_GLOB LIST_DIRECTORIES true RELATIVE "/home/ubuntu/thrust/examples/cuda}" "/home/ubuntu/thrust/examples/cuda/*.cpp") +set(OLD_GLOB + ) +if(NOT "${NEW_GLOB}" STREQUAL "${OLD_GLOB}") + message("-- GLOB mismatch!") + file(TOUCH_NOCREATE "/home/ubuntu/thrust/build/CMakeFiles/cmake.verify_globs") +endif() + +# example_srcs at examples/cuda/CMakeLists.txt:1 (file) +file(GLOB NEW_GLOB LIST_DIRECTORIES true RELATIVE "/home/ubuntu/thrust/examples/cuda}" "/home/ubuntu/thrust/examples/cuda/*.cu") +set(OLD_GLOB + "../cuda/async_reduce.cu" + "../cuda/custom_temporary_allocation.cu" + "../cuda/explicit_cuda_stream.cu" + "../cuda/global_device_vector.cu" + "../cuda/range_view.cu" + "../cuda/unwrap_pointer.cu" + "../cuda/wrap_pointer.cu" + ) +if(NOT "${NEW_GLOB}" STREQUAL "${OLD_GLOB}") + message("-- GLOB mismatch!") + file(TOUCH_NOCREATE "/home/ubuntu/thrust/build/CMakeFiles/cmake.verify_globs") +endif() + # test_srcs at testing/CMakeLists.txt:131 (file) file(GLOB NEW_GLOB LIST_DIRECTORIES true RELATIVE "/home/ubuntu/thrust/testing" "/home/ubuntu/thrust/testing/*.cpp") set(OLD_GLOB diff --git a/build/CMakeFiles/thrust.headers.dir/progress.make b/build/CMakeFiles/thrust.headers.dir/progress.make index dc2f7e5d9875d5676b5e2dee826613bb80bf2035..ac2324b8c7932c69149d57cc2b83c019ab8f2e18 100644 --- a/build/CMakeFiles/thrust.headers.dir/progress.make +++ b/build/CMakeFiles/thrust.headers.dir/progress.make @@ -3,10 +3,10 @@ CMAKE_PROGRESS_2 = CMAKE_PROGRESS_3 = CMAKE_PROGRESS_4 = CMAKE_PROGRESS_5 = -CMAKE_PROGRESS_6 = +CMAKE_PROGRESS_6 = 50 CMAKE_PROGRESS_7 = CMAKE_PROGRESS_8 = -CMAKE_PROGRESS_9 = 45 +CMAKE_PROGRESS_9 = CMAKE_PROGRESS_10 = CMAKE_PROGRESS_11 = CMAKE_PROGRESS_12 = @@ -16,8 +16,8 @@ CMAKE_PROGRESS_15 = CMAKE_PROGRESS_16 = CMAKE_PROGRESS_17 = CMAKE_PROGRESS_18 = -CMAKE_PROGRESS_19 = -CMAKE_PROGRESS_20 = 46 +CMAKE_PROGRESS_19 = 51 +CMAKE_PROGRESS_20 = CMAKE_PROGRESS_21 = CMAKE_PROGRESS_22 = CMAKE_PROGRESS_23 = @@ -28,7 +28,7 @@ CMAKE_PROGRESS_27 = CMAKE_PROGRESS_28 = CMAKE_PROGRESS_29 = CMAKE_PROGRESS_30 = -CMAKE_PROGRESS_31 = 47 +CMAKE_PROGRESS_31 = 52 CMAKE_PROGRESS_32 = CMAKE_PROGRESS_33 = CMAKE_PROGRESS_34 = @@ -39,8 +39,8 @@ CMAKE_PROGRESS_38 = CMAKE_PROGRESS_39 = CMAKE_PROGRESS_40 = CMAKE_PROGRESS_41 = -CMAKE_PROGRESS_42 = 48 -CMAKE_PROGRESS_43 = +CMAKE_PROGRESS_42 = +CMAKE_PROGRESS_43 = 53 CMAKE_PROGRESS_44 = CMAKE_PROGRESS_45 = CMAKE_PROGRESS_46 = @@ -50,10 +50,10 @@ CMAKE_PROGRESS_49 = CMAKE_PROGRESS_50 = CMAKE_PROGRESS_51 = CMAKE_PROGRESS_52 = -CMAKE_PROGRESS_53 = 49 +CMAKE_PROGRESS_53 = CMAKE_PROGRESS_54 = CMAKE_PROGRESS_55 = -CMAKE_PROGRESS_56 = +CMAKE_PROGRESS_56 = 54 CMAKE_PROGRESS_57 = CMAKE_PROGRESS_58 = CMAKE_PROGRESS_59 = @@ -61,11 +61,11 @@ CMAKE_PROGRESS_60 = CMAKE_PROGRESS_61 = CMAKE_PROGRESS_62 = CMAKE_PROGRESS_63 = -CMAKE_PROGRESS_64 = 50 +CMAKE_PROGRESS_64 = CMAKE_PROGRESS_65 = CMAKE_PROGRESS_66 = CMAKE_PROGRESS_67 = -CMAKE_PROGRESS_68 = +CMAKE_PROGRESS_68 = 55 CMAKE_PROGRESS_69 = CMAKE_PROGRESS_70 = CMAKE_PROGRESS_71 = @@ -73,40 +73,40 @@ CMAKE_PROGRESS_72 = CMAKE_PROGRESS_73 = CMAKE_PROGRESS_74 = CMAKE_PROGRESS_75 = -CMAKE_PROGRESS_76 = 51 +CMAKE_PROGRESS_76 = CMAKE_PROGRESS_77 = CMAKE_PROGRESS_78 = CMAKE_PROGRESS_79 = -CMAKE_PROGRESS_80 = +CMAKE_PROGRESS_80 = 56 CMAKE_PROGRESS_81 = CMAKE_PROGRESS_82 = CMAKE_PROGRESS_83 = CMAKE_PROGRESS_84 = CMAKE_PROGRESS_85 = CMAKE_PROGRESS_86 = -CMAKE_PROGRESS_87 = 52 +CMAKE_PROGRESS_87 = CMAKE_PROGRESS_88 = CMAKE_PROGRESS_89 = CMAKE_PROGRESS_90 = CMAKE_PROGRESS_91 = CMAKE_PROGRESS_92 = -CMAKE_PROGRESS_93 = +CMAKE_PROGRESS_93 = 57 CMAKE_PROGRESS_94 = CMAKE_PROGRESS_95 = CMAKE_PROGRESS_96 = CMAKE_PROGRESS_97 = -CMAKE_PROGRESS_98 = 53 +CMAKE_PROGRESS_98 = CMAKE_PROGRESS_99 = CMAKE_PROGRESS_100 = CMAKE_PROGRESS_101 = CMAKE_PROGRESS_102 = CMAKE_PROGRESS_103 = CMAKE_PROGRESS_104 = -CMAKE_PROGRESS_105 = +CMAKE_PROGRESS_105 = 58 CMAKE_PROGRESS_106 = CMAKE_PROGRESS_107 = CMAKE_PROGRESS_108 = -CMAKE_PROGRESS_109 = 54 +CMAKE_PROGRESS_109 = CMAKE_PROGRESS_110 = CMAKE_PROGRESS_111 = CMAKE_PROGRESS_112 = @@ -114,10 +114,10 @@ CMAKE_PROGRESS_113 = CMAKE_PROGRESS_114 = CMAKE_PROGRESS_115 = CMAKE_PROGRESS_116 = -CMAKE_PROGRESS_117 = +CMAKE_PROGRESS_117 = 59 CMAKE_PROGRESS_118 = CMAKE_PROGRESS_119 = -CMAKE_PROGRESS_120 = 55 +CMAKE_PROGRESS_120 = CMAKE_PROGRESS_121 = CMAKE_PROGRESS_122 = CMAKE_PROGRESS_123 = @@ -126,9 +126,9 @@ CMAKE_PROGRESS_125 = CMAKE_PROGRESS_126 = CMAKE_PROGRESS_127 = CMAKE_PROGRESS_128 = -CMAKE_PROGRESS_129 = +CMAKE_PROGRESS_129 = 60 CMAKE_PROGRESS_130 = -CMAKE_PROGRESS_131 = 56 +CMAKE_PROGRESS_131 = CMAKE_PROGRESS_132 = CMAKE_PROGRESS_133 = CMAKE_PROGRESS_134 = diff --git a/build/CTestTestfile.cmake b/build/CTestTestfile.cmake index f5a42112d61371a6caee82dbdb4d3f9dd27137da..969d080b425eec36baa578f7334d77ede0c8f2df 100644 --- a/build/CTestTestfile.cmake +++ b/build/CTestTestfile.cmake @@ -5,4 +5,5 @@ # This file includes the relevant testing commands required for # testing this directory and lists subdirectories to be tested as well. subdirs("testing") +subdirs("examples") subdirs("dependencies/cub") diff --git a/build/Makefile b/build/Makefile index c1777e96a2d0241dbf12b415c06489057720afdf..d1726c6201f85eca2e69cd888cbb3a96c7511365 100644 --- a/build/Makefile +++ b/build/Makefile @@ -6919,6 +6919,1527 @@ thrust.all.test.cuda.unique_by_key.cdp_0/fast: $(MAKE) $(MAKESILENT) -f testing/cuda/CMakeFiles/thrust.all.test.cuda.unique_by_key.cdp_0.dir/build.make testing/cuda/CMakeFiles/thrust.all.test.cuda.unique_by_key.cdp_0.dir/build .PHONY : thrust.all.test.cuda.unique_by_key.cdp_0/fast +#============================================================================= +# Target rules for targets named thrust.examples + +# Build rule for target. +thrust.examples: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.examples +.PHONY : thrust.examples + +# fast build rule for target. +thrust.examples/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.examples.dir/build.make examples/CMakeFiles/thrust.examples.dir/build +.PHONY : thrust.examples/fast + +#============================================================================= +# Target rules for targets named thrust.example.arbitrary_transformation + +# Build rule for target. +thrust.example.arbitrary_transformation: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.arbitrary_transformation +.PHONY : thrust.example.arbitrary_transformation + +# fast build rule for target. +thrust.example.arbitrary_transformation/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/build.make examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/build +.PHONY : thrust.example.arbitrary_transformation/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.arbitrary_transformation + +# Build rule for target. +thrust.all.example.arbitrary_transformation: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.arbitrary_transformation +.PHONY : thrust.all.example.arbitrary_transformation + +# fast build rule for target. +thrust.all.example.arbitrary_transformation/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.arbitrary_transformation.dir/build.make examples/CMakeFiles/thrust.all.example.arbitrary_transformation.dir/build +.PHONY : thrust.all.example.arbitrary_transformation/fast + +#============================================================================= +# Target rules for targets named thrust.example.basic_vector + +# Build rule for target. +thrust.example.basic_vector: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.basic_vector +.PHONY : thrust.example.basic_vector + +# fast build rule for target. +thrust.example.basic_vector/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.basic_vector.dir/build.make examples/CMakeFiles/thrust.example.basic_vector.dir/build +.PHONY : thrust.example.basic_vector/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.basic_vector + +# Build rule for target. +thrust.all.example.basic_vector: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.basic_vector +.PHONY : thrust.all.example.basic_vector + +# fast build rule for target. +thrust.all.example.basic_vector/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.basic_vector.dir/build.make examples/CMakeFiles/thrust.all.example.basic_vector.dir/build +.PHONY : thrust.all.example.basic_vector/fast + +#============================================================================= +# Target rules for targets named thrust.example.bounding_box + +# Build rule for target. +thrust.example.bounding_box: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.bounding_box +.PHONY : thrust.example.bounding_box + +# fast build rule for target. +thrust.example.bounding_box/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.bounding_box.dir/build.make examples/CMakeFiles/thrust.example.bounding_box.dir/build +.PHONY : thrust.example.bounding_box/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.bounding_box + +# Build rule for target. +thrust.all.example.bounding_box: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.bounding_box +.PHONY : thrust.all.example.bounding_box + +# fast build rule for target. +thrust.all.example.bounding_box/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.bounding_box.dir/build.make examples/CMakeFiles/thrust.all.example.bounding_box.dir/build +.PHONY : thrust.all.example.bounding_box/fast + +#============================================================================= +# Target rules for targets named thrust.example.bucket_sort2d + +# Build rule for target. +thrust.example.bucket_sort2d: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.bucket_sort2d +.PHONY : thrust.example.bucket_sort2d + +# fast build rule for target. +thrust.example.bucket_sort2d/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.bucket_sort2d.dir/build.make examples/CMakeFiles/thrust.example.bucket_sort2d.dir/build +.PHONY : thrust.example.bucket_sort2d/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.bucket_sort2d + +# Build rule for target. +thrust.all.example.bucket_sort2d: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.bucket_sort2d +.PHONY : thrust.all.example.bucket_sort2d + +# fast build rule for target. +thrust.all.example.bucket_sort2d/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.bucket_sort2d.dir/build.make examples/CMakeFiles/thrust.all.example.bucket_sort2d.dir/build +.PHONY : thrust.all.example.bucket_sort2d/fast + +#============================================================================= +# Target rules for targets named thrust.example.constant_iterator + +# Build rule for target. +thrust.example.constant_iterator: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.constant_iterator +.PHONY : thrust.example.constant_iterator + +# fast build rule for target. +thrust.example.constant_iterator/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.constant_iterator.dir/build.make examples/CMakeFiles/thrust.example.constant_iterator.dir/build +.PHONY : thrust.example.constant_iterator/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.constant_iterator + +# Build rule for target. +thrust.all.example.constant_iterator: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.constant_iterator +.PHONY : thrust.all.example.constant_iterator + +# fast build rule for target. +thrust.all.example.constant_iterator/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.constant_iterator.dir/build.make examples/CMakeFiles/thrust.all.example.constant_iterator.dir/build +.PHONY : thrust.all.example.constant_iterator/fast + +#============================================================================= +# Target rules for targets named thrust.example.counting_iterator + +# Build rule for target. +thrust.example.counting_iterator: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.counting_iterator +.PHONY : thrust.example.counting_iterator + +# fast build rule for target. +thrust.example.counting_iterator/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.counting_iterator.dir/build.make examples/CMakeFiles/thrust.example.counting_iterator.dir/build +.PHONY : thrust.example.counting_iterator/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.counting_iterator + +# Build rule for target. +thrust.all.example.counting_iterator: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.counting_iterator +.PHONY : thrust.all.example.counting_iterator + +# fast build rule for target. +thrust.all.example.counting_iterator/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.counting_iterator.dir/build.make examples/CMakeFiles/thrust.all.example.counting_iterator.dir/build +.PHONY : thrust.all.example.counting_iterator/fast + +#============================================================================= +# Target rules for targets named thrust.example.device_ptr + +# Build rule for target. +thrust.example.device_ptr: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.device_ptr +.PHONY : thrust.example.device_ptr + +# fast build rule for target. +thrust.example.device_ptr/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.device_ptr.dir/build.make examples/CMakeFiles/thrust.example.device_ptr.dir/build +.PHONY : thrust.example.device_ptr/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.device_ptr + +# Build rule for target. +thrust.all.example.device_ptr: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.device_ptr +.PHONY : thrust.all.example.device_ptr + +# fast build rule for target. +thrust.all.example.device_ptr/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.device_ptr.dir/build.make examples/CMakeFiles/thrust.all.example.device_ptr.dir/build +.PHONY : thrust.all.example.device_ptr/fast + +#============================================================================= +# Target rules for targets named thrust.example.discrete_voronoi + +# Build rule for target. +thrust.example.discrete_voronoi: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.discrete_voronoi +.PHONY : thrust.example.discrete_voronoi + +# fast build rule for target. +thrust.example.discrete_voronoi/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.discrete_voronoi.dir/build.make examples/CMakeFiles/thrust.example.discrete_voronoi.dir/build +.PHONY : thrust.example.discrete_voronoi/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.discrete_voronoi + +# Build rule for target. +thrust.all.example.discrete_voronoi: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.discrete_voronoi +.PHONY : thrust.all.example.discrete_voronoi + +# fast build rule for target. +thrust.all.example.discrete_voronoi/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.discrete_voronoi.dir/build.make examples/CMakeFiles/thrust.all.example.discrete_voronoi.dir/build +.PHONY : thrust.all.example.discrete_voronoi/fast + +#============================================================================= +# Target rules for targets named thrust.example.dot_products_with_zip + +# Build rule for target. +thrust.example.dot_products_with_zip: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.dot_products_with_zip +.PHONY : thrust.example.dot_products_with_zip + +# fast build rule for target. +thrust.example.dot_products_with_zip/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/build.make examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/build +.PHONY : thrust.example.dot_products_with_zip/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.dot_products_with_zip + +# Build rule for target. +thrust.all.example.dot_products_with_zip: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.dot_products_with_zip +.PHONY : thrust.all.example.dot_products_with_zip + +# fast build rule for target. +thrust.all.example.dot_products_with_zip/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.dot_products_with_zip.dir/build.make examples/CMakeFiles/thrust.all.example.dot_products_with_zip.dir/build +.PHONY : thrust.all.example.dot_products_with_zip/fast + +#============================================================================= +# Target rules for targets named thrust.example.expand + +# Build rule for target. +thrust.example.expand: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.expand +.PHONY : thrust.example.expand + +# fast build rule for target. +thrust.example.expand/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.expand.dir/build.make examples/CMakeFiles/thrust.example.expand.dir/build +.PHONY : thrust.example.expand/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.expand + +# Build rule for target. +thrust.all.example.expand: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.expand +.PHONY : thrust.all.example.expand + +# fast build rule for target. +thrust.all.example.expand/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.expand.dir/build.make examples/CMakeFiles/thrust.all.example.expand.dir/build +.PHONY : thrust.all.example.expand/fast + +#============================================================================= +# Target rules for targets named thrust.example.fill_copy_sequence + +# Build rule for target. +thrust.example.fill_copy_sequence: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.fill_copy_sequence +.PHONY : thrust.example.fill_copy_sequence + +# fast build rule for target. +thrust.example.fill_copy_sequence/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/build.make examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/build +.PHONY : thrust.example.fill_copy_sequence/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.fill_copy_sequence + +# Build rule for target. +thrust.all.example.fill_copy_sequence: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.fill_copy_sequence +.PHONY : thrust.all.example.fill_copy_sequence + +# fast build rule for target. +thrust.all.example.fill_copy_sequence/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.fill_copy_sequence.dir/build.make examples/CMakeFiles/thrust.all.example.fill_copy_sequence.dir/build +.PHONY : thrust.all.example.fill_copy_sequence/fast + +#============================================================================= +# Target rules for targets named thrust.example.histogram + +# Build rule for target. +thrust.example.histogram: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.histogram +.PHONY : thrust.example.histogram + +# fast build rule for target. +thrust.example.histogram/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.histogram.dir/build.make examples/CMakeFiles/thrust.example.histogram.dir/build +.PHONY : thrust.example.histogram/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.histogram + +# Build rule for target. +thrust.all.example.histogram: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.histogram +.PHONY : thrust.all.example.histogram + +# fast build rule for target. +thrust.all.example.histogram/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.histogram.dir/build.make examples/CMakeFiles/thrust.all.example.histogram.dir/build +.PHONY : thrust.all.example.histogram/fast + +#============================================================================= +# Target rules for targets named thrust.example.lambda + +# Build rule for target. +thrust.example.lambda: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.lambda +.PHONY : thrust.example.lambda + +# fast build rule for target. +thrust.example.lambda/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.lambda.dir/build.make examples/CMakeFiles/thrust.example.lambda.dir/build +.PHONY : thrust.example.lambda/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.lambda + +# Build rule for target. +thrust.all.example.lambda: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.lambda +.PHONY : thrust.all.example.lambda + +# fast build rule for target. +thrust.all.example.lambda/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.lambda.dir/build.make examples/CMakeFiles/thrust.all.example.lambda.dir/build +.PHONY : thrust.all.example.lambda/fast + +#============================================================================= +# Target rules for targets named thrust.example.lexicographical_sort + +# Build rule for target. +thrust.example.lexicographical_sort: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.lexicographical_sort +.PHONY : thrust.example.lexicographical_sort + +# fast build rule for target. +thrust.example.lexicographical_sort/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.lexicographical_sort.dir/build.make examples/CMakeFiles/thrust.example.lexicographical_sort.dir/build +.PHONY : thrust.example.lexicographical_sort/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.lexicographical_sort + +# Build rule for target. +thrust.all.example.lexicographical_sort: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.lexicographical_sort +.PHONY : thrust.all.example.lexicographical_sort + +# fast build rule for target. +thrust.all.example.lexicographical_sort/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.lexicographical_sort.dir/build.make examples/CMakeFiles/thrust.all.example.lexicographical_sort.dir/build +.PHONY : thrust.all.example.lexicographical_sort/fast + +#============================================================================= +# Target rules for targets named thrust.example.max_abs_diff + +# Build rule for target. +thrust.example.max_abs_diff: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.max_abs_diff +.PHONY : thrust.example.max_abs_diff + +# fast build rule for target. +thrust.example.max_abs_diff/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.max_abs_diff.dir/build.make examples/CMakeFiles/thrust.example.max_abs_diff.dir/build +.PHONY : thrust.example.max_abs_diff/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.max_abs_diff + +# Build rule for target. +thrust.all.example.max_abs_diff: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.max_abs_diff +.PHONY : thrust.all.example.max_abs_diff + +# fast build rule for target. +thrust.all.example.max_abs_diff/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.max_abs_diff.dir/build.make examples/CMakeFiles/thrust.all.example.max_abs_diff.dir/build +.PHONY : thrust.all.example.max_abs_diff/fast + +#============================================================================= +# Target rules for targets named thrust.example.minimal_custom_backend + +# Build rule for target. +thrust.example.minimal_custom_backend: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.minimal_custom_backend +.PHONY : thrust.example.minimal_custom_backend + +# fast build rule for target. +thrust.example.minimal_custom_backend/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/build.make examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/build +.PHONY : thrust.example.minimal_custom_backend/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.minimal_custom_backend + +# Build rule for target. +thrust.all.example.minimal_custom_backend: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.minimal_custom_backend +.PHONY : thrust.all.example.minimal_custom_backend + +# fast build rule for target. +thrust.all.example.minimal_custom_backend/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.minimal_custom_backend.dir/build.make examples/CMakeFiles/thrust.all.example.minimal_custom_backend.dir/build +.PHONY : thrust.all.example.minimal_custom_backend/fast + +#============================================================================= +# Target rules for targets named thrust.example.minmax + +# Build rule for target. +thrust.example.minmax: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.minmax +.PHONY : thrust.example.minmax + +# fast build rule for target. +thrust.example.minmax/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.minmax.dir/build.make examples/CMakeFiles/thrust.example.minmax.dir/build +.PHONY : thrust.example.minmax/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.minmax + +# Build rule for target. +thrust.all.example.minmax: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.minmax +.PHONY : thrust.all.example.minmax + +# fast build rule for target. +thrust.all.example.minmax/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.minmax.dir/build.make examples/CMakeFiles/thrust.all.example.minmax.dir/build +.PHONY : thrust.all.example.minmax/fast + +#============================================================================= +# Target rules for targets named thrust.example.mode + +# Build rule for target. +thrust.example.mode: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.mode +.PHONY : thrust.example.mode + +# fast build rule for target. +thrust.example.mode/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.mode.dir/build.make examples/CMakeFiles/thrust.example.mode.dir/build +.PHONY : thrust.example.mode/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.mode + +# Build rule for target. +thrust.all.example.mode: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.mode +.PHONY : thrust.all.example.mode + +# fast build rule for target. +thrust.all.example.mode/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.mode.dir/build.make examples/CMakeFiles/thrust.all.example.mode.dir/build +.PHONY : thrust.all.example.mode/fast + +#============================================================================= +# Target rules for targets named thrust.example.monte_carlo + +# Build rule for target. +thrust.example.monte_carlo: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.monte_carlo +.PHONY : thrust.example.monte_carlo + +# fast build rule for target. +thrust.example.monte_carlo/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.monte_carlo.dir/build.make examples/CMakeFiles/thrust.example.monte_carlo.dir/build +.PHONY : thrust.example.monte_carlo/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.monte_carlo + +# Build rule for target. +thrust.all.example.monte_carlo: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.monte_carlo +.PHONY : thrust.all.example.monte_carlo + +# fast build rule for target. +thrust.all.example.monte_carlo/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.monte_carlo.dir/build.make examples/CMakeFiles/thrust.all.example.monte_carlo.dir/build +.PHONY : thrust.all.example.monte_carlo/fast + +#============================================================================= +# Target rules for targets named thrust.example.monte_carlo_disjoint_sequences + +# Build rule for target. +thrust.example.monte_carlo_disjoint_sequences: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.monte_carlo_disjoint_sequences +.PHONY : thrust.example.monte_carlo_disjoint_sequences + +# fast build rule for target. +thrust.example.monte_carlo_disjoint_sequences/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/build.make examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/build +.PHONY : thrust.example.monte_carlo_disjoint_sequences/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.monte_carlo_disjoint_sequences + +# Build rule for target. +thrust.all.example.monte_carlo_disjoint_sequences: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.monte_carlo_disjoint_sequences +.PHONY : thrust.all.example.monte_carlo_disjoint_sequences + +# fast build rule for target. +thrust.all.example.monte_carlo_disjoint_sequences/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.monte_carlo_disjoint_sequences.dir/build.make examples/CMakeFiles/thrust.all.example.monte_carlo_disjoint_sequences.dir/build +.PHONY : thrust.all.example.monte_carlo_disjoint_sequences/fast + +#============================================================================= +# Target rules for targets named thrust.example.mr_basic + +# Build rule for target. +thrust.example.mr_basic: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.mr_basic +.PHONY : thrust.example.mr_basic + +# fast build rule for target. +thrust.example.mr_basic/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.mr_basic.dir/build.make examples/CMakeFiles/thrust.example.mr_basic.dir/build +.PHONY : thrust.example.mr_basic/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.mr_basic + +# Build rule for target. +thrust.all.example.mr_basic: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.mr_basic +.PHONY : thrust.all.example.mr_basic + +# fast build rule for target. +thrust.all.example.mr_basic/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.mr_basic.dir/build.make examples/CMakeFiles/thrust.all.example.mr_basic.dir/build +.PHONY : thrust.all.example.mr_basic/fast + +#============================================================================= +# Target rules for targets named thrust.example.norm + +# Build rule for target. +thrust.example.norm: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.norm +.PHONY : thrust.example.norm + +# fast build rule for target. +thrust.example.norm/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.norm.dir/build.make examples/CMakeFiles/thrust.example.norm.dir/build +.PHONY : thrust.example.norm/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.norm + +# Build rule for target. +thrust.all.example.norm: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.norm +.PHONY : thrust.all.example.norm + +# fast build rule for target. +thrust.all.example.norm/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.norm.dir/build.make examples/CMakeFiles/thrust.all.example.norm.dir/build +.PHONY : thrust.all.example.norm/fast + +#============================================================================= +# Target rules for targets named thrust.example.padded_grid_reduction + +# Build rule for target. +thrust.example.padded_grid_reduction: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.padded_grid_reduction +.PHONY : thrust.example.padded_grid_reduction + +# fast build rule for target. +thrust.example.padded_grid_reduction/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/build.make examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/build +.PHONY : thrust.example.padded_grid_reduction/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.padded_grid_reduction + +# Build rule for target. +thrust.all.example.padded_grid_reduction: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.padded_grid_reduction +.PHONY : thrust.all.example.padded_grid_reduction + +# fast build rule for target. +thrust.all.example.padded_grid_reduction/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.padded_grid_reduction.dir/build.make examples/CMakeFiles/thrust.all.example.padded_grid_reduction.dir/build +.PHONY : thrust.all.example.padded_grid_reduction/fast + +#============================================================================= +# Target rules for targets named thrust.example.permutation_iterator + +# Build rule for target. +thrust.example.permutation_iterator: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.permutation_iterator +.PHONY : thrust.example.permutation_iterator + +# fast build rule for target. +thrust.example.permutation_iterator/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.permutation_iterator.dir/build.make examples/CMakeFiles/thrust.example.permutation_iterator.dir/build +.PHONY : thrust.example.permutation_iterator/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.permutation_iterator + +# Build rule for target. +thrust.all.example.permutation_iterator: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.permutation_iterator +.PHONY : thrust.all.example.permutation_iterator + +# fast build rule for target. +thrust.all.example.permutation_iterator/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.permutation_iterator.dir/build.make examples/CMakeFiles/thrust.all.example.permutation_iterator.dir/build +.PHONY : thrust.all.example.permutation_iterator/fast + +#============================================================================= +# Target rules for targets named thrust.example.raw_reference_cast + +# Build rule for target. +thrust.example.raw_reference_cast: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.raw_reference_cast +.PHONY : thrust.example.raw_reference_cast + +# fast build rule for target. +thrust.example.raw_reference_cast/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.raw_reference_cast.dir/build.make examples/CMakeFiles/thrust.example.raw_reference_cast.dir/build +.PHONY : thrust.example.raw_reference_cast/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.raw_reference_cast + +# Build rule for target. +thrust.all.example.raw_reference_cast: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.raw_reference_cast +.PHONY : thrust.all.example.raw_reference_cast + +# fast build rule for target. +thrust.all.example.raw_reference_cast/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.raw_reference_cast.dir/build.make examples/CMakeFiles/thrust.all.example.raw_reference_cast.dir/build +.PHONY : thrust.all.example.raw_reference_cast/fast + +#============================================================================= +# Target rules for targets named thrust.example.remove_points2d + +# Build rule for target. +thrust.example.remove_points2d: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.remove_points2d +.PHONY : thrust.example.remove_points2d + +# fast build rule for target. +thrust.example.remove_points2d/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.remove_points2d.dir/build.make examples/CMakeFiles/thrust.example.remove_points2d.dir/build +.PHONY : thrust.example.remove_points2d/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.remove_points2d + +# Build rule for target. +thrust.all.example.remove_points2d: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.remove_points2d +.PHONY : thrust.all.example.remove_points2d + +# fast build rule for target. +thrust.all.example.remove_points2d/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.remove_points2d.dir/build.make examples/CMakeFiles/thrust.all.example.remove_points2d.dir/build +.PHONY : thrust.all.example.remove_points2d/fast + +#============================================================================= +# Target rules for targets named thrust.example.repeated_range + +# Build rule for target. +thrust.example.repeated_range: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.repeated_range +.PHONY : thrust.example.repeated_range + +# fast build rule for target. +thrust.example.repeated_range/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.repeated_range.dir/build.make examples/CMakeFiles/thrust.example.repeated_range.dir/build +.PHONY : thrust.example.repeated_range/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.repeated_range + +# Build rule for target. +thrust.all.example.repeated_range: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.repeated_range +.PHONY : thrust.all.example.repeated_range + +# fast build rule for target. +thrust.all.example.repeated_range/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.repeated_range.dir/build.make examples/CMakeFiles/thrust.all.example.repeated_range.dir/build +.PHONY : thrust.all.example.repeated_range/fast + +#============================================================================= +# Target rules for targets named thrust.example.run_length_decoding + +# Build rule for target. +thrust.example.run_length_decoding: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.run_length_decoding +.PHONY : thrust.example.run_length_decoding + +# fast build rule for target. +thrust.example.run_length_decoding/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.run_length_decoding.dir/build.make examples/CMakeFiles/thrust.example.run_length_decoding.dir/build +.PHONY : thrust.example.run_length_decoding/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.run_length_decoding + +# Build rule for target. +thrust.all.example.run_length_decoding: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.run_length_decoding +.PHONY : thrust.all.example.run_length_decoding + +# fast build rule for target. +thrust.all.example.run_length_decoding/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.run_length_decoding.dir/build.make examples/CMakeFiles/thrust.all.example.run_length_decoding.dir/build +.PHONY : thrust.all.example.run_length_decoding/fast + +#============================================================================= +# Target rules for targets named thrust.example.run_length_encoding + +# Build rule for target. +thrust.example.run_length_encoding: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.run_length_encoding +.PHONY : thrust.example.run_length_encoding + +# fast build rule for target. +thrust.example.run_length_encoding/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.run_length_encoding.dir/build.make examples/CMakeFiles/thrust.example.run_length_encoding.dir/build +.PHONY : thrust.example.run_length_encoding/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.run_length_encoding + +# Build rule for target. +thrust.all.example.run_length_encoding: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.run_length_encoding +.PHONY : thrust.all.example.run_length_encoding + +# fast build rule for target. +thrust.all.example.run_length_encoding/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.run_length_encoding.dir/build.make examples/CMakeFiles/thrust.all.example.run_length_encoding.dir/build +.PHONY : thrust.all.example.run_length_encoding/fast + +#============================================================================= +# Target rules for targets named thrust.example.saxpy + +# Build rule for target. +thrust.example.saxpy: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.saxpy +.PHONY : thrust.example.saxpy + +# fast build rule for target. +thrust.example.saxpy/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.saxpy.dir/build.make examples/CMakeFiles/thrust.example.saxpy.dir/build +.PHONY : thrust.example.saxpy/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.saxpy + +# Build rule for target. +thrust.all.example.saxpy: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.saxpy +.PHONY : thrust.all.example.saxpy + +# fast build rule for target. +thrust.all.example.saxpy/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.saxpy.dir/build.make examples/CMakeFiles/thrust.all.example.saxpy.dir/build +.PHONY : thrust.all.example.saxpy/fast + +#============================================================================= +# Target rules for targets named thrust.example.scan_by_key + +# Build rule for target. +thrust.example.scan_by_key: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.scan_by_key +.PHONY : thrust.example.scan_by_key + +# fast build rule for target. +thrust.example.scan_by_key/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.scan_by_key.dir/build.make examples/CMakeFiles/thrust.example.scan_by_key.dir/build +.PHONY : thrust.example.scan_by_key/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.scan_by_key + +# Build rule for target. +thrust.all.example.scan_by_key: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.scan_by_key +.PHONY : thrust.all.example.scan_by_key + +# fast build rule for target. +thrust.all.example.scan_by_key/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.scan_by_key.dir/build.make examples/CMakeFiles/thrust.all.example.scan_by_key.dir/build +.PHONY : thrust.all.example.scan_by_key/fast + +#============================================================================= +# Target rules for targets named thrust.example.scan_matrix_by_rows + +# Build rule for target. +thrust.example.scan_matrix_by_rows: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.scan_matrix_by_rows +.PHONY : thrust.example.scan_matrix_by_rows + +# fast build rule for target. +thrust.example.scan_matrix_by_rows/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/build.make examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/build +.PHONY : thrust.example.scan_matrix_by_rows/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.scan_matrix_by_rows + +# Build rule for target. +thrust.all.example.scan_matrix_by_rows: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.scan_matrix_by_rows +.PHONY : thrust.all.example.scan_matrix_by_rows + +# fast build rule for target. +thrust.all.example.scan_matrix_by_rows/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.scan_matrix_by_rows.dir/build.make examples/CMakeFiles/thrust.all.example.scan_matrix_by_rows.dir/build +.PHONY : thrust.all.example.scan_matrix_by_rows/fast + +#============================================================================= +# Target rules for targets named thrust.example.set_operations + +# Build rule for target. +thrust.example.set_operations: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.set_operations +.PHONY : thrust.example.set_operations + +# fast build rule for target. +thrust.example.set_operations/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.set_operations.dir/build.make examples/CMakeFiles/thrust.example.set_operations.dir/build +.PHONY : thrust.example.set_operations/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.set_operations + +# Build rule for target. +thrust.all.example.set_operations: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.set_operations +.PHONY : thrust.all.example.set_operations + +# fast build rule for target. +thrust.all.example.set_operations/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.set_operations.dir/build.make examples/CMakeFiles/thrust.all.example.set_operations.dir/build +.PHONY : thrust.all.example.set_operations/fast + +#============================================================================= +# Target rules for targets named thrust.example.simple_moving_average + +# Build rule for target. +thrust.example.simple_moving_average: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.simple_moving_average +.PHONY : thrust.example.simple_moving_average + +# fast build rule for target. +thrust.example.simple_moving_average/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.simple_moving_average.dir/build.make examples/CMakeFiles/thrust.example.simple_moving_average.dir/build +.PHONY : thrust.example.simple_moving_average/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.simple_moving_average + +# Build rule for target. +thrust.all.example.simple_moving_average: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.simple_moving_average +.PHONY : thrust.all.example.simple_moving_average + +# fast build rule for target. +thrust.all.example.simple_moving_average/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.simple_moving_average.dir/build.make examples/CMakeFiles/thrust.all.example.simple_moving_average.dir/build +.PHONY : thrust.all.example.simple_moving_average/fast + +#============================================================================= +# Target rules for targets named thrust.example.sort + +# Build rule for target. +thrust.example.sort: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.sort +.PHONY : thrust.example.sort + +# fast build rule for target. +thrust.example.sort/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.sort.dir/build.make examples/CMakeFiles/thrust.example.sort.dir/build +.PHONY : thrust.example.sort/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.sort + +# Build rule for target. +thrust.all.example.sort: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.sort +.PHONY : thrust.all.example.sort + +# fast build rule for target. +thrust.all.example.sort/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.sort.dir/build.make examples/CMakeFiles/thrust.all.example.sort.dir/build +.PHONY : thrust.all.example.sort/fast + +#============================================================================= +# Target rules for targets named thrust.example.sorting_aos_vs_soa + +# Build rule for target. +thrust.example.sorting_aos_vs_soa: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.sorting_aos_vs_soa +.PHONY : thrust.example.sorting_aos_vs_soa + +# fast build rule for target. +thrust.example.sorting_aos_vs_soa/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/build.make examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/build +.PHONY : thrust.example.sorting_aos_vs_soa/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.sorting_aos_vs_soa + +# Build rule for target. +thrust.all.example.sorting_aos_vs_soa: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.sorting_aos_vs_soa +.PHONY : thrust.all.example.sorting_aos_vs_soa + +# fast build rule for target. +thrust.all.example.sorting_aos_vs_soa/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.sorting_aos_vs_soa.dir/build.make examples/CMakeFiles/thrust.all.example.sorting_aos_vs_soa.dir/build +.PHONY : thrust.all.example.sorting_aos_vs_soa/fast + +#============================================================================= +# Target rules for targets named thrust.example.sparse_vector + +# Build rule for target. +thrust.example.sparse_vector: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.sparse_vector +.PHONY : thrust.example.sparse_vector + +# fast build rule for target. +thrust.example.sparse_vector/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.sparse_vector.dir/build.make examples/CMakeFiles/thrust.example.sparse_vector.dir/build +.PHONY : thrust.example.sparse_vector/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.sparse_vector + +# Build rule for target. +thrust.all.example.sparse_vector: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.sparse_vector +.PHONY : thrust.all.example.sparse_vector + +# fast build rule for target. +thrust.all.example.sparse_vector/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.sparse_vector.dir/build.make examples/CMakeFiles/thrust.all.example.sparse_vector.dir/build +.PHONY : thrust.all.example.sparse_vector/fast + +#============================================================================= +# Target rules for targets named thrust.example.stream_compaction + +# Build rule for target. +thrust.example.stream_compaction: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.stream_compaction +.PHONY : thrust.example.stream_compaction + +# fast build rule for target. +thrust.example.stream_compaction/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.stream_compaction.dir/build.make examples/CMakeFiles/thrust.example.stream_compaction.dir/build +.PHONY : thrust.example.stream_compaction/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.stream_compaction + +# Build rule for target. +thrust.all.example.stream_compaction: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.stream_compaction +.PHONY : thrust.all.example.stream_compaction + +# fast build rule for target. +thrust.all.example.stream_compaction/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.stream_compaction.dir/build.make examples/CMakeFiles/thrust.all.example.stream_compaction.dir/build +.PHONY : thrust.all.example.stream_compaction/fast + +#============================================================================= +# Target rules for targets named thrust.example.strided_range + +# Build rule for target. +thrust.example.strided_range: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.strided_range +.PHONY : thrust.example.strided_range + +# fast build rule for target. +thrust.example.strided_range/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.strided_range.dir/build.make examples/CMakeFiles/thrust.example.strided_range.dir/build +.PHONY : thrust.example.strided_range/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.strided_range + +# Build rule for target. +thrust.all.example.strided_range: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.strided_range +.PHONY : thrust.all.example.strided_range + +# fast build rule for target. +thrust.all.example.strided_range/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.strided_range.dir/build.make examples/CMakeFiles/thrust.all.example.strided_range.dir/build +.PHONY : thrust.all.example.strided_range/fast + +#============================================================================= +# Target rules for targets named thrust.example.sum + +# Build rule for target. +thrust.example.sum: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.sum +.PHONY : thrust.example.sum + +# fast build rule for target. +thrust.example.sum/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.sum.dir/build.make examples/CMakeFiles/thrust.example.sum.dir/build +.PHONY : thrust.example.sum/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.sum + +# Build rule for target. +thrust.all.example.sum: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.sum +.PHONY : thrust.all.example.sum + +# fast build rule for target. +thrust.all.example.sum/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.sum.dir/build.make examples/CMakeFiles/thrust.all.example.sum.dir/build +.PHONY : thrust.all.example.sum/fast + +#============================================================================= +# Target rules for targets named thrust.example.sum_rows + +# Build rule for target. +thrust.example.sum_rows: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.sum_rows +.PHONY : thrust.example.sum_rows + +# fast build rule for target. +thrust.example.sum_rows/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.sum_rows.dir/build.make examples/CMakeFiles/thrust.example.sum_rows.dir/build +.PHONY : thrust.example.sum_rows/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.sum_rows + +# Build rule for target. +thrust.all.example.sum_rows: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.sum_rows +.PHONY : thrust.all.example.sum_rows + +# fast build rule for target. +thrust.all.example.sum_rows/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.sum_rows.dir/build.make examples/CMakeFiles/thrust.all.example.sum_rows.dir/build +.PHONY : thrust.all.example.sum_rows/fast + +#============================================================================= +# Target rules for targets named thrust.example.summary_statistics + +# Build rule for target. +thrust.example.summary_statistics: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.summary_statistics +.PHONY : thrust.example.summary_statistics + +# fast build rule for target. +thrust.example.summary_statistics/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.summary_statistics.dir/build.make examples/CMakeFiles/thrust.example.summary_statistics.dir/build +.PHONY : thrust.example.summary_statistics/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.summary_statistics + +# Build rule for target. +thrust.all.example.summary_statistics: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.summary_statistics +.PHONY : thrust.all.example.summary_statistics + +# fast build rule for target. +thrust.all.example.summary_statistics/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.summary_statistics.dir/build.make examples/CMakeFiles/thrust.all.example.summary_statistics.dir/build +.PHONY : thrust.all.example.summary_statistics/fast + +#============================================================================= +# Target rules for targets named thrust.example.summed_area_table + +# Build rule for target. +thrust.example.summed_area_table: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.summed_area_table +.PHONY : thrust.example.summed_area_table + +# fast build rule for target. +thrust.example.summed_area_table/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.summed_area_table.dir/build.make examples/CMakeFiles/thrust.example.summed_area_table.dir/build +.PHONY : thrust.example.summed_area_table/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.summed_area_table + +# Build rule for target. +thrust.all.example.summed_area_table: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.summed_area_table +.PHONY : thrust.all.example.summed_area_table + +# fast build rule for target. +thrust.all.example.summed_area_table/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.summed_area_table.dir/build.make examples/CMakeFiles/thrust.all.example.summed_area_table.dir/build +.PHONY : thrust.all.example.summed_area_table/fast + +#============================================================================= +# Target rules for targets named thrust.example.tiled_range + +# Build rule for target. +thrust.example.tiled_range: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.tiled_range +.PHONY : thrust.example.tiled_range + +# fast build rule for target. +thrust.example.tiled_range/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.tiled_range.dir/build.make examples/CMakeFiles/thrust.example.tiled_range.dir/build +.PHONY : thrust.example.tiled_range/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.tiled_range + +# Build rule for target. +thrust.all.example.tiled_range: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.tiled_range +.PHONY : thrust.all.example.tiled_range + +# fast build rule for target. +thrust.all.example.tiled_range/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.tiled_range.dir/build.make examples/CMakeFiles/thrust.all.example.tiled_range.dir/build +.PHONY : thrust.all.example.tiled_range/fast + +#============================================================================= +# Target rules for targets named thrust.example.transform_input_output_iterator + +# Build rule for target. +thrust.example.transform_input_output_iterator: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.transform_input_output_iterator +.PHONY : thrust.example.transform_input_output_iterator + +# fast build rule for target. +thrust.example.transform_input_output_iterator/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/build.make examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/build +.PHONY : thrust.example.transform_input_output_iterator/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.transform_input_output_iterator + +# Build rule for target. +thrust.all.example.transform_input_output_iterator: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.transform_input_output_iterator +.PHONY : thrust.all.example.transform_input_output_iterator + +# fast build rule for target. +thrust.all.example.transform_input_output_iterator/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.transform_input_output_iterator.dir/build.make examples/CMakeFiles/thrust.all.example.transform_input_output_iterator.dir/build +.PHONY : thrust.all.example.transform_input_output_iterator/fast + +#============================================================================= +# Target rules for targets named thrust.example.transform_iterator + +# Build rule for target. +thrust.example.transform_iterator: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.transform_iterator +.PHONY : thrust.example.transform_iterator + +# fast build rule for target. +thrust.example.transform_iterator/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.transform_iterator.dir/build.make examples/CMakeFiles/thrust.example.transform_iterator.dir/build +.PHONY : thrust.example.transform_iterator/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.transform_iterator + +# Build rule for target. +thrust.all.example.transform_iterator: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.transform_iterator +.PHONY : thrust.all.example.transform_iterator + +# fast build rule for target. +thrust.all.example.transform_iterator/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.transform_iterator.dir/build.make examples/CMakeFiles/thrust.all.example.transform_iterator.dir/build +.PHONY : thrust.all.example.transform_iterator/fast + +#============================================================================= +# Target rules for targets named thrust.example.transform_output_iterator + +# Build rule for target. +thrust.example.transform_output_iterator: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.transform_output_iterator +.PHONY : thrust.example.transform_output_iterator + +# fast build rule for target. +thrust.example.transform_output_iterator/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.transform_output_iterator.dir/build.make examples/CMakeFiles/thrust.example.transform_output_iterator.dir/build +.PHONY : thrust.example.transform_output_iterator/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.transform_output_iterator + +# Build rule for target. +thrust.all.example.transform_output_iterator: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.transform_output_iterator +.PHONY : thrust.all.example.transform_output_iterator + +# fast build rule for target. +thrust.all.example.transform_output_iterator/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.transform_output_iterator.dir/build.make examples/CMakeFiles/thrust.all.example.transform_output_iterator.dir/build +.PHONY : thrust.all.example.transform_output_iterator/fast + +#============================================================================= +# Target rules for targets named thrust.example.uninitialized_vector + +# Build rule for target. +thrust.example.uninitialized_vector: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.uninitialized_vector +.PHONY : thrust.example.uninitialized_vector + +# fast build rule for target. +thrust.example.uninitialized_vector/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.uninitialized_vector.dir/build.make examples/CMakeFiles/thrust.example.uninitialized_vector.dir/build +.PHONY : thrust.example.uninitialized_vector/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.uninitialized_vector + +# Build rule for target. +thrust.all.example.uninitialized_vector: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.uninitialized_vector +.PHONY : thrust.all.example.uninitialized_vector + +# fast build rule for target. +thrust.all.example.uninitialized_vector/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.uninitialized_vector.dir/build.make examples/CMakeFiles/thrust.all.example.uninitialized_vector.dir/build +.PHONY : thrust.all.example.uninitialized_vector/fast + +#============================================================================= +# Target rules for targets named thrust.example.version + +# Build rule for target. +thrust.example.version: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.version +.PHONY : thrust.example.version + +# fast build rule for target. +thrust.example.version/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.version.dir/build.make examples/CMakeFiles/thrust.example.version.dir/build +.PHONY : thrust.example.version/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.version + +# Build rule for target. +thrust.all.example.version: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.version +.PHONY : thrust.all.example.version + +# fast build rule for target. +thrust.all.example.version/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.version.dir/build.make examples/CMakeFiles/thrust.all.example.version.dir/build +.PHONY : thrust.all.example.version/fast + +#============================================================================= +# Target rules for targets named thrust.example.weld_vertices + +# Build rule for target. +thrust.example.weld_vertices: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.weld_vertices +.PHONY : thrust.example.weld_vertices + +# fast build rule for target. +thrust.example.weld_vertices/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.weld_vertices.dir/build.make examples/CMakeFiles/thrust.example.weld_vertices.dir/build +.PHONY : thrust.example.weld_vertices/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.weld_vertices + +# Build rule for target. +thrust.all.example.weld_vertices: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.weld_vertices +.PHONY : thrust.all.example.weld_vertices + +# fast build rule for target. +thrust.all.example.weld_vertices/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.weld_vertices.dir/build.make examples/CMakeFiles/thrust.all.example.weld_vertices.dir/build +.PHONY : thrust.all.example.weld_vertices/fast + +#============================================================================= +# Target rules for targets named thrust.example.word_count + +# Build rule for target. +thrust.example.word_count: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.word_count +.PHONY : thrust.example.word_count + +# fast build rule for target. +thrust.example.word_count/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.word_count.dir/build.make examples/CMakeFiles/thrust.example.word_count.dir/build +.PHONY : thrust.example.word_count/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.word_count + +# Build rule for target. +thrust.all.example.word_count: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.word_count +.PHONY : thrust.all.example.word_count + +# fast build rule for target. +thrust.all.example.word_count/fast: + $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.word_count.dir/build.make examples/CMakeFiles/thrust.all.example.word_count.dir/build +.PHONY : thrust.all.example.word_count/fast + +#============================================================================= +# Target rules for targets named thrust.example.cuda.async_reduce + +# Build rule for target. +thrust.example.cuda.async_reduce: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.cuda.async_reduce +.PHONY : thrust.example.cuda.async_reduce + +# fast build rule for target. +thrust.example.cuda.async_reduce/fast: + $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/build.make examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/build +.PHONY : thrust.example.cuda.async_reduce/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.cuda.async_reduce + +# Build rule for target. +thrust.all.example.cuda.async_reduce: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.cuda.async_reduce +.PHONY : thrust.all.example.cuda.async_reduce + +# fast build rule for target. +thrust.all.example.cuda.async_reduce/fast: + $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.all.example.cuda.async_reduce.dir/build.make examples/cuda/CMakeFiles/thrust.all.example.cuda.async_reduce.dir/build +.PHONY : thrust.all.example.cuda.async_reduce/fast + +#============================================================================= +# Target rules for targets named thrust.example.cuda.custom_temporary_allocation + +# Build rule for target. +thrust.example.cuda.custom_temporary_allocation: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.cuda.custom_temporary_allocation +.PHONY : thrust.example.cuda.custom_temporary_allocation + +# fast build rule for target. +thrust.example.cuda.custom_temporary_allocation/fast: + $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/build.make examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/build +.PHONY : thrust.example.cuda.custom_temporary_allocation/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.cuda.custom_temporary_allocation + +# Build rule for target. +thrust.all.example.cuda.custom_temporary_allocation: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.cuda.custom_temporary_allocation +.PHONY : thrust.all.example.cuda.custom_temporary_allocation + +# fast build rule for target. +thrust.all.example.cuda.custom_temporary_allocation/fast: + $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.all.example.cuda.custom_temporary_allocation.dir/build.make examples/cuda/CMakeFiles/thrust.all.example.cuda.custom_temporary_allocation.dir/build +.PHONY : thrust.all.example.cuda.custom_temporary_allocation/fast + +#============================================================================= +# Target rules for targets named thrust.example.cuda.explicit_cuda_stream + +# Build rule for target. +thrust.example.cuda.explicit_cuda_stream: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.cuda.explicit_cuda_stream +.PHONY : thrust.example.cuda.explicit_cuda_stream + +# fast build rule for target. +thrust.example.cuda.explicit_cuda_stream/fast: + $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/build.make examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/build +.PHONY : thrust.example.cuda.explicit_cuda_stream/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.cuda.explicit_cuda_stream + +# Build rule for target. +thrust.all.example.cuda.explicit_cuda_stream: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.cuda.explicit_cuda_stream +.PHONY : thrust.all.example.cuda.explicit_cuda_stream + +# fast build rule for target. +thrust.all.example.cuda.explicit_cuda_stream/fast: + $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.all.example.cuda.explicit_cuda_stream.dir/build.make examples/cuda/CMakeFiles/thrust.all.example.cuda.explicit_cuda_stream.dir/build +.PHONY : thrust.all.example.cuda.explicit_cuda_stream/fast + +#============================================================================= +# Target rules for targets named thrust.example.cuda.global_device_vector + +# Build rule for target. +thrust.example.cuda.global_device_vector: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.cuda.global_device_vector +.PHONY : thrust.example.cuda.global_device_vector + +# fast build rule for target. +thrust.example.cuda.global_device_vector/fast: + $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/build.make examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/build +.PHONY : thrust.example.cuda.global_device_vector/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.cuda.global_device_vector + +# Build rule for target. +thrust.all.example.cuda.global_device_vector: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.cuda.global_device_vector +.PHONY : thrust.all.example.cuda.global_device_vector + +# fast build rule for target. +thrust.all.example.cuda.global_device_vector/fast: + $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.all.example.cuda.global_device_vector.dir/build.make examples/cuda/CMakeFiles/thrust.all.example.cuda.global_device_vector.dir/build +.PHONY : thrust.all.example.cuda.global_device_vector/fast + +#============================================================================= +# Target rules for targets named thrust.example.cuda.range_view + +# Build rule for target. +thrust.example.cuda.range_view: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.cuda.range_view +.PHONY : thrust.example.cuda.range_view + +# fast build rule for target. +thrust.example.cuda.range_view/fast: + $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/build.make examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/build +.PHONY : thrust.example.cuda.range_view/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.cuda.range_view + +# Build rule for target. +thrust.all.example.cuda.range_view: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.cuda.range_view +.PHONY : thrust.all.example.cuda.range_view + +# fast build rule for target. +thrust.all.example.cuda.range_view/fast: + $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.all.example.cuda.range_view.dir/build.make examples/cuda/CMakeFiles/thrust.all.example.cuda.range_view.dir/build +.PHONY : thrust.all.example.cuda.range_view/fast + +#============================================================================= +# Target rules for targets named thrust.example.cuda.unwrap_pointer + +# Build rule for target. +thrust.example.cuda.unwrap_pointer: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.cuda.unwrap_pointer +.PHONY : thrust.example.cuda.unwrap_pointer + +# fast build rule for target. +thrust.example.cuda.unwrap_pointer/fast: + $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/build.make examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/build +.PHONY : thrust.example.cuda.unwrap_pointer/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.cuda.unwrap_pointer + +# Build rule for target. +thrust.all.example.cuda.unwrap_pointer: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.cuda.unwrap_pointer +.PHONY : thrust.all.example.cuda.unwrap_pointer + +# fast build rule for target. +thrust.all.example.cuda.unwrap_pointer/fast: + $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.all.example.cuda.unwrap_pointer.dir/build.make examples/cuda/CMakeFiles/thrust.all.example.cuda.unwrap_pointer.dir/build +.PHONY : thrust.all.example.cuda.unwrap_pointer/fast + +#============================================================================= +# Target rules for targets named thrust.example.cuda.wrap_pointer + +# Build rule for target. +thrust.example.cuda.wrap_pointer: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.example.cuda.wrap_pointer +.PHONY : thrust.example.cuda.wrap_pointer + +# fast build rule for target. +thrust.example.cuda.wrap_pointer/fast: + $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/build.make examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/build +.PHONY : thrust.example.cuda.wrap_pointer/fast + +#============================================================================= +# Target rules for targets named thrust.all.example.cuda.wrap_pointer + +# Build rule for target. +thrust.all.example.cuda.wrap_pointer: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 thrust.all.example.cuda.wrap_pointer +.PHONY : thrust.all.example.cuda.wrap_pointer + +# fast build rule for target. +thrust.all.example.cuda.wrap_pointer/fast: + $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.all.example.cuda.wrap_pointer.dir/build.make examples/cuda/CMakeFiles/thrust.all.example.cuda.wrap_pointer.dir/build +.PHONY : thrust.all.example.cuda.wrap_pointer/fast + #============================================================================= # Target rules for targets named cub.all @@ -14083,6 +15604,64 @@ help: @echo "... cub.cpp14.test.warp_store.all" @echo "... cub.cpp14.tests" @echo "... thrust.all" + @echo "... thrust.all.example.arbitrary_transformation" + @echo "... thrust.all.example.basic_vector" + @echo "... thrust.all.example.bounding_box" + @echo "... thrust.all.example.bucket_sort2d" + @echo "... thrust.all.example.constant_iterator" + @echo "... thrust.all.example.counting_iterator" + @echo "... thrust.all.example.cuda.async_reduce" + @echo "... thrust.all.example.cuda.custom_temporary_allocation" + @echo "... thrust.all.example.cuda.explicit_cuda_stream" + @echo "... thrust.all.example.cuda.global_device_vector" + @echo "... thrust.all.example.cuda.range_view" + @echo "... thrust.all.example.cuda.unwrap_pointer" + @echo "... thrust.all.example.cuda.wrap_pointer" + @echo "... thrust.all.example.device_ptr" + @echo "... thrust.all.example.discrete_voronoi" + @echo "... thrust.all.example.dot_products_with_zip" + @echo "... thrust.all.example.expand" + @echo "... thrust.all.example.fill_copy_sequence" + @echo "... thrust.all.example.histogram" + @echo "... thrust.all.example.lambda" + @echo "... thrust.all.example.lexicographical_sort" + @echo "... thrust.all.example.max_abs_diff" + @echo "... thrust.all.example.minimal_custom_backend" + @echo "... thrust.all.example.minmax" + @echo "... thrust.all.example.mode" + @echo "... thrust.all.example.monte_carlo" + @echo "... thrust.all.example.monte_carlo_disjoint_sequences" + @echo "... thrust.all.example.mr_basic" + @echo "... thrust.all.example.norm" + @echo "... thrust.all.example.padded_grid_reduction" + @echo "... thrust.all.example.permutation_iterator" + @echo "... thrust.all.example.raw_reference_cast" + @echo "... thrust.all.example.remove_points2d" + @echo "... thrust.all.example.repeated_range" + @echo "... thrust.all.example.run_length_decoding" + @echo "... thrust.all.example.run_length_encoding" + @echo "... thrust.all.example.saxpy" + @echo "... thrust.all.example.scan_by_key" + @echo "... thrust.all.example.scan_matrix_by_rows" + @echo "... thrust.all.example.set_operations" + @echo "... thrust.all.example.simple_moving_average" + @echo "... thrust.all.example.sort" + @echo "... thrust.all.example.sorting_aos_vs_soa" + @echo "... thrust.all.example.sparse_vector" + @echo "... thrust.all.example.stream_compaction" + @echo "... thrust.all.example.strided_range" + @echo "... thrust.all.example.sum" + @echo "... thrust.all.example.sum_rows" + @echo "... thrust.all.example.summary_statistics" + @echo "... thrust.all.example.summed_area_table" + @echo "... thrust.all.example.tiled_range" + @echo "... thrust.all.example.transform_input_output_iterator" + @echo "... thrust.all.example.transform_iterator" + @echo "... thrust.all.example.transform_output_iterator" + @echo "... thrust.all.example.uninitialized_vector" + @echo "... thrust.all.example.version" + @echo "... thrust.all.example.weld_vertices" + @echo "... thrust.all.example.word_count" @echo "... thrust.all.headers" @echo "... thrust.all.test.adjacent_difference" @echo "... thrust.all.test.advance" @@ -14327,6 +15906,7 @@ help: @echo "... thrust.all.test.zip_iterator_scan" @echo "... thrust.all.test.zip_iterator_sort" @echo "... thrust.all.test.zip_iterator_sort_by_key" + @echo "... thrust.examples" @echo "... thrust.test.async.exclusive_scan.all" @echo "... thrust.test.async.inclusive_scan.all" @echo "... thrust.tests" @@ -14490,6 +16070,64 @@ help: @echo "... cub.cpp14.test.warp_store.lwt_4.alg_1" @echo "... cub.cpp14.test.warp_store.lwt_4.alg_2" @echo "... cub.cpp14.test.warp_store.lwt_4.alg_3" + @echo "... thrust.example.arbitrary_transformation" + @echo "... thrust.example.basic_vector" + @echo "... thrust.example.bounding_box" + @echo "... thrust.example.bucket_sort2d" + @echo "... thrust.example.constant_iterator" + @echo "... thrust.example.counting_iterator" + @echo "... thrust.example.cuda.async_reduce" + @echo "... thrust.example.cuda.custom_temporary_allocation" + @echo "... thrust.example.cuda.explicit_cuda_stream" + @echo "... thrust.example.cuda.global_device_vector" + @echo "... thrust.example.cuda.range_view" + @echo "... thrust.example.cuda.unwrap_pointer" + @echo "... thrust.example.cuda.wrap_pointer" + @echo "... thrust.example.device_ptr" + @echo "... thrust.example.discrete_voronoi" + @echo "... thrust.example.dot_products_with_zip" + @echo "... thrust.example.expand" + @echo "... thrust.example.fill_copy_sequence" + @echo "... thrust.example.histogram" + @echo "... thrust.example.lambda" + @echo "... thrust.example.lexicographical_sort" + @echo "... thrust.example.max_abs_diff" + @echo "... thrust.example.minimal_custom_backend" + @echo "... thrust.example.minmax" + @echo "... thrust.example.mode" + @echo "... thrust.example.monte_carlo" + @echo "... thrust.example.monte_carlo_disjoint_sequences" + @echo "... thrust.example.mr_basic" + @echo "... thrust.example.norm" + @echo "... thrust.example.padded_grid_reduction" + @echo "... thrust.example.permutation_iterator" + @echo "... thrust.example.raw_reference_cast" + @echo "... thrust.example.remove_points2d" + @echo "... thrust.example.repeated_range" + @echo "... thrust.example.run_length_decoding" + @echo "... thrust.example.run_length_encoding" + @echo "... thrust.example.saxpy" + @echo "... thrust.example.scan_by_key" + @echo "... thrust.example.scan_matrix_by_rows" + @echo "... thrust.example.set_operations" + @echo "... thrust.example.simple_moving_average" + @echo "... thrust.example.sort" + @echo "... thrust.example.sorting_aos_vs_soa" + @echo "... thrust.example.sparse_vector" + @echo "... thrust.example.stream_compaction" + @echo "... thrust.example.strided_range" + @echo "... thrust.example.sum" + @echo "... thrust.example.sum_rows" + @echo "... thrust.example.summary_statistics" + @echo "... thrust.example.summed_area_table" + @echo "... thrust.example.tiled_range" + @echo "... thrust.example.transform_input_output_iterator" + @echo "... thrust.example.transform_iterator" + @echo "... thrust.example.transform_output_iterator" + @echo "... thrust.example.uninitialized_vector" + @echo "... thrust.example.version" + @echo "... thrust.example.weld_vertices" + @echo "... thrust.example.word_count" @echo "... thrust.headers" @echo "... thrust.test.adjacent_difference" @echo "... thrust.test.advance" diff --git a/build/Testing/Temporary/CTestCheckpoint.txt b/build/Testing/Temporary/CTestCheckpoint.txt new file mode 100644 index 0000000000000000000000000000000000000000..81fa0b3908a011f92708269884da39fd4c9e6832 --- /dev/null +++ b/build/Testing/Temporary/CTestCheckpoint.txt @@ -0,0 +1,259 @@ +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237 +238 +239 +240 +241 +242 +243 +244 +245 +246 +247 +248 +249 +250 +251 +252 +253 +254 +255 +256 +257 +258 +259 diff --git a/build/Testing/Temporary/LastTest.log.tmp b/build/Testing/Temporary/LastTest.log.tmp new file mode 100644 index 0000000000000000000000000000000000000000..19b6c5e434b030817387feac5e502200836ddd69 --- /dev/null +++ b/build/Testing/Temporary/LastTest.log.tmp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:84c3ea91b0e59f72444ec80a1ece9042265cc3f695a4b1582aa507679de80d25 +size 12545099 diff --git a/build/_deps/catch2-subbuild/install_manifest.txt b/build/_deps/catch2-subbuild/install_manifest.txt new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/build/_deps/metal-subbuild/install_manifest.txt b/build/_deps/metal-subbuild/install_manifest.txt new file mode 100644 index 0000000000000000000000000000000000000000..3a1f0d186573a3226cb98ca10d76191bfc9ca10c --- /dev/null +++ b/build/_deps/metal-subbuild/install_manifest.txt @@ -0,0 +1,4 @@ +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/lib/cmake/Metal/MetalConfig.cmake +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/lib/cmake/Metal/MetalConfigVersion.cmake +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/lib/cmake/Metal/MetalTargets.cmake +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/metal.hpp \ No newline at end of file diff --git a/build/bin/thrust.example.arbitrary_transformation b/build/bin/thrust.example.arbitrary_transformation new file mode 100644 index 0000000000000000000000000000000000000000..a514c59bacf0fc3d4789b830a0c4dd3161b76c91 --- /dev/null +++ b/build/bin/thrust.example.arbitrary_transformation @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:34bed734f2b37ab684bb6f99129c230d755d049cf1c6e3767315b2bb1357879c +size 1216592 diff --git a/build/bin/thrust.example.basic_vector b/build/bin/thrust.example.basic_vector new file mode 100644 index 0000000000000000000000000000000000000000..c29eb419c4d9329604c64062bfacad8272d24884 --- /dev/null +++ b/build/bin/thrust.example.basic_vector @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:029dc964db410edeb06e84fe7c57a11c90a053972e9781e3c9d3aa475f2a0010 +size 1034424 diff --git a/build/bin/thrust.example.bounding_box b/build/bin/thrust.example.bounding_box new file mode 100644 index 0000000000000000000000000000000000000000..343be9b81eeef31557ebc4fead9ba61fbc050faf --- /dev/null +++ b/build/bin/thrust.example.bounding_box @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d1167cafa4cbb422f18b953cb94183618553dfa21b22cb95d55ae231a6476441 +size 2525712 diff --git a/build/bin/thrust.example.bucket_sort2d b/build/bin/thrust.example.bucket_sort2d new file mode 100644 index 0000000000000000000000000000000000000000..3e7ccd977b9d57d2e7e62941aaeef152449af3b3 --- /dev/null +++ b/build/bin/thrust.example.bucket_sort2d @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2bf8ec0177d3f3fdc1d7a84e1a40b382c0774fb945187fe45a72e610fe795133 +size 9012400 diff --git a/build/bin/thrust.example.constant_iterator b/build/bin/thrust.example.constant_iterator new file mode 100644 index 0000000000000000000000000000000000000000..b8864be31ba3e70525ffd95cd5c0a0ba36b622c9 --- /dev/null +++ b/build/bin/thrust.example.constant_iterator @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f720bc2b3b11acd8d90edcc8f221387d94ea6c83b603b7a727320ce4efa621d3 +size 1150304 diff --git a/build/bin/thrust.example.counting_iterator b/build/bin/thrust.example.counting_iterator new file mode 100644 index 0000000000000000000000000000000000000000..3aefb54c066964604ab5a53b70ac927336125ec5 --- /dev/null +++ b/build/bin/thrust.example.counting_iterator @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:37b419cee844b62464b60623f9077080ef7c09e85d5a0d28b18b0954483c10f3 +size 1684184 diff --git a/build/bin/thrust.example.cuda.async_reduce b/build/bin/thrust.example.cuda.async_reduce new file mode 100644 index 0000000000000000000000000000000000000000..1a122fdea1924aee340bb1430334e0542778de22 --- /dev/null +++ b/build/bin/thrust.example.cuda.async_reduce @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:685d6f162f7a79c7b21e24b7b8d5126c470b81a2b98cd7903d7440469fcdcd9d +size 3488392 diff --git a/build/bin/thrust.example.cuda.custom_temporary_allocation b/build/bin/thrust.example.cuda.custom_temporary_allocation new file mode 100644 index 0000000000000000000000000000000000000000..6be5bf7773cab018db419b8a8b6eee1e50bc824e --- /dev/null +++ b/build/bin/thrust.example.cuda.custom_temporary_allocation @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:34deae8664cd2834320c62f32347423ab634c838ca723b206834a86d232e9dfc +size 4793320 diff --git a/build/bin/thrust.example.cuda.explicit_cuda_stream b/build/bin/thrust.example.cuda.explicit_cuda_stream new file mode 100644 index 0000000000000000000000000000000000000000..16d2ecf76d31ccd1ebc288d49353e4b05cff6bf4 --- /dev/null +++ b/build/bin/thrust.example.cuda.explicit_cuda_stream @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7579ea844ec0e3d1f74fa4b0d364cb9449e06031785b27099c08d91fb5382527 +size 1868856 diff --git a/build/bin/thrust.example.cuda.global_device_vector b/build/bin/thrust.example.cuda.global_device_vector new file mode 100644 index 0000000000000000000000000000000000000000..0c16712fa8d893d8012e058ab0a2bb2ce14cdab0 --- /dev/null +++ b/build/bin/thrust.example.cuda.global_device_vector @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c512b4bf57f7f2abc72b53b97596d9cfe12e46da19ee473b2185e179ce2e6fa7 +size 1270896 diff --git a/build/bin/thrust.example.cuda.range_view b/build/bin/thrust.example.cuda.range_view new file mode 100644 index 0000000000000000000000000000000000000000..ef6a5dd9e20f1e30de179872614c13ecb675725d --- /dev/null +++ b/build/bin/thrust.example.cuda.range_view @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0d51b75482e6c155f1f076d1971bbe930f4bab2db7ce7887a7c0c8f5583d7a55 +size 1109168 diff --git a/build/bin/thrust.example.cuda.unwrap_pointer b/build/bin/thrust.example.cuda.unwrap_pointer new file mode 100644 index 0000000000000000000000000000000000000000..3890d1efcc6a8421f4d737411b84383ded1efde9 Binary files /dev/null and b/build/bin/thrust.example.cuda.unwrap_pointer differ diff --git a/build/bin/thrust.example.cuda.wrap_pointer b/build/bin/thrust.example.cuda.wrap_pointer new file mode 100644 index 0000000000000000000000000000000000000000..3239e0f6a7dd4c0750ac2e7971fb87204519dbf8 --- /dev/null +++ b/build/bin/thrust.example.cuda.wrap_pointer @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:68fc6eb252f0982163fce0cc5adc306d740592fed6468be0d1c207e2815134c3 +size 1010936 diff --git a/build/bin/thrust.example.device_ptr b/build/bin/thrust.example.device_ptr new file mode 100644 index 0000000000000000000000000000000000000000..b38aa82b2856baceb4ce19868006f1b468592bb6 --- /dev/null +++ b/build/bin/thrust.example.device_ptr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e4438b55916c000b62a3b84fe83e503f84c156e89f98fb9c9af7fdf6840f1d0b +size 2219568 diff --git a/build/bin/thrust.example.discrete_voronoi b/build/bin/thrust.example.discrete_voronoi new file mode 100644 index 0000000000000000000000000000000000000000..cad0f1fc54883a0f0989cb165b3739db2d483640 --- /dev/null +++ b/build/bin/thrust.example.discrete_voronoi @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a9039a4ddf01154588876b8d8a51b059e416d5440e136d83a3ea17aa2ccdde1c +size 1514392 diff --git a/build/bin/thrust.example.dot_products_with_zip b/build/bin/thrust.example.dot_products_with_zip new file mode 100644 index 0000000000000000000000000000000000000000..f1a6add6d6ea1eb3a7cdadefc9282abbe3ec7f9e --- /dev/null +++ b/build/bin/thrust.example.dot_products_with_zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:db6fc31ce2cd74062e0735aa5893de39e078a9a8342c2514318f8ec48ba22d39 +size 1171664 diff --git a/build/bin/thrust.example.expand b/build/bin/thrust.example.expand new file mode 100644 index 0000000000000000000000000000000000000000..f1b832cc4db91e52840827e06d9d4e8c58f1f31e --- /dev/null +++ b/build/bin/thrust.example.expand @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c1c0144b75f2ae61a53aaca0db5ce6d716ba70ef55f3d40db5ac6b51f15911bc +size 4016224 diff --git a/build/bin/thrust.example.fill_copy_sequence b/build/bin/thrust.example.fill_copy_sequence new file mode 100644 index 0000000000000000000000000000000000000000..09ec3ca651d8ce54523b34ea14f94d085f06e597 --- /dev/null +++ b/build/bin/thrust.example.fill_copy_sequence @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e382487b4160726941daf60e9d8a92c48b87916f6482a5a7ac1fd101e99f126c +size 1125712 diff --git a/build/bin/thrust.example.histogram b/build/bin/thrust.example.histogram new file mode 100644 index 0000000000000000000000000000000000000000..0e9de599cb0449ef7d3b58027ca2a377e32c01a7 --- /dev/null +++ b/build/bin/thrust.example.histogram @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f70379d79f169c508677868533323d498404d119523db32675970b9fed46a172 +size 8825776 diff --git a/build/bin/thrust.example.lambda b/build/bin/thrust.example.lambda new file mode 100644 index 0000000000000000000000000000000000000000..c4ef526fa0a3b5aa53c8dcaa540f3f8f803d169a --- /dev/null +++ b/build/bin/thrust.example.lambda @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:50776ce9f79be0a7038922f7ddb9ec28106613b352282e2b0364b28c5f76c2e2 +size 1183832 diff --git a/build/bin/thrust.example.lexicographical_sort b/build/bin/thrust.example.lexicographical_sort new file mode 100644 index 0000000000000000000000000000000000000000..057aba679fb4b83b7487c8c17ea7d3bd5ee7574d --- /dev/null +++ b/build/bin/thrust.example.lexicographical_sort @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ec25fde564991bea430b2b9a117ec6ae79f81b4aad58c3ffe5b573277bbba6bc +size 5477216 diff --git a/build/bin/thrust.example.max_abs_diff b/build/bin/thrust.example.max_abs_diff new file mode 100644 index 0000000000000000000000000000000000000000..d15cfbdebbde15eb6b9011530ce2806b23437349 --- /dev/null +++ b/build/bin/thrust.example.max_abs_diff @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:afacaf7d1052b394caa9c35598c11daa240689770b10acbc347f3ae94744d46f +size 2746704 diff --git a/build/bin/thrust.example.minimal_custom_backend b/build/bin/thrust.example.minimal_custom_backend new file mode 100644 index 0000000000000000000000000000000000000000..f37007d17260e3908e6ffc4ddaf23fecaab0c23b --- /dev/null +++ b/build/bin/thrust.example.minimal_custom_backend @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c37061c2b765407334a0faf414b68bc9207d07cf69b4fb975616044080482d58 +size 1133960 diff --git a/build/bin/thrust.example.minmax b/build/bin/thrust.example.minmax new file mode 100644 index 0000000000000000000000000000000000000000..b5558a5971875468645b439297d1481ec622b4f4 --- /dev/null +++ b/build/bin/thrust.example.minmax @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ec9a3945f3726ed973ed2ed6bc24f8ffb0171b5bdd15f2095bfdb40bc718097b +size 2312552 diff --git a/build/bin/thrust.example.mode b/build/bin/thrust.example.mode new file mode 100644 index 0000000000000000000000000000000000000000..a1fa04f5593ba334604d2499ebee6ad704971278 --- /dev/null +++ b/build/bin/thrust.example.mode @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aad39eb3f2874d3cc0d99fc74e9c6fddfb4042f9ca4b7f9f6aefcd2a22edcee2 +size 10258800 diff --git a/build/bin/thrust.example.monte_carlo b/build/bin/thrust.example.monte_carlo new file mode 100644 index 0000000000000000000000000000000000000000..9d91331ef3ec2f4a4f36054df8aa62fdbe3a51a8 --- /dev/null +++ b/build/bin/thrust.example.monte_carlo @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:707811599b089b7da5c5f8ba81a7b49cced19463a472d8f211610d597b5f2209 +size 8907512 diff --git a/build/bin/thrust.example.monte_carlo_disjoint_sequences b/build/bin/thrust.example.monte_carlo_disjoint_sequences new file mode 100644 index 0000000000000000000000000000000000000000..dbcc42703169a968f3ac2060642f934ec85e4be0 --- /dev/null +++ b/build/bin/thrust.example.monte_carlo_disjoint_sequences @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7651618e062af3eb4e4c64c388c6edd32032fe8816a4ba84327a0a669c145bad +size 11590376 diff --git a/build/bin/thrust.example.mr_basic b/build/bin/thrust.example.mr_basic new file mode 100644 index 0000000000000000000000000000000000000000..d9f3d8018b68b283446f0d76a9c1d75e6b80e44b --- /dev/null +++ b/build/bin/thrust.example.mr_basic @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b82c8c5cebeaf4f55b3aee6cc84aa5e82dde3c474b8ff0044404514a1536fae4 +size 1504360 diff --git a/build/bin/thrust.example.norm b/build/bin/thrust.example.norm new file mode 100644 index 0000000000000000000000000000000000000000..4a9e0ba10175619716bcd6bd7040e49cf4c755ff --- /dev/null +++ b/build/bin/thrust.example.norm @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d1e3a7ea47735c98af10cab6fb649b3b9b7edf073ba1440673e5e30b30537389 +size 2250560 diff --git a/build/bin/thrust.example.padded_grid_reduction b/build/bin/thrust.example.padded_grid_reduction new file mode 100644 index 0000000000000000000000000000000000000000..4155c5986320b102053babbd87bd7257967f917c --- /dev/null +++ b/build/bin/thrust.example.padded_grid_reduction @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:175910277f1494bcd05b7a39fd7a74440093934ee7e4ab54e24992d1aab69f20 +size 3763464 diff --git a/build/bin/thrust.example.permutation_iterator b/build/bin/thrust.example.permutation_iterator new file mode 100644 index 0000000000000000000000000000000000000000..4d411e4cb5cf5fb389cb87faeeecd51564904ed8 --- /dev/null +++ b/build/bin/thrust.example.permutation_iterator @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b6d5667bc42a002ed2185065b3eea76868cff0494141b443ad67aa97a3428262 +size 2480112 diff --git a/build/bin/thrust.example.raw_reference_cast b/build/bin/thrust.example.raw_reference_cast new file mode 100644 index 0000000000000000000000000000000000000000..a87239d602c77da232579c38f486551f477bbdf4 --- /dev/null +++ b/build/bin/thrust.example.raw_reference_cast @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dec0f379d30655f7426615fc3b1d9cbf8a01f69c16ee49a93caab92ec6fa20f8 +size 1299152 diff --git a/build/bin/thrust.example.remove_points2d b/build/bin/thrust.example.remove_points2d new file mode 100644 index 0000000000000000000000000000000000000000..9b375212c1d4eb20d0b4ac4d3bcd8dc247b2a48b Binary files /dev/null and b/build/bin/thrust.example.remove_points2d differ diff --git a/build/bin/thrust.example.repeated_range b/build/bin/thrust.example.repeated_range new file mode 100644 index 0000000000000000000000000000000000000000..906281b38a1bbdc3f3e05fa52076a6bb58466539 --- /dev/null +++ b/build/bin/thrust.example.repeated_range @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1b38bbdb9ac3a8fe797fb141c21a9818dc7fd309c8fb95d7f21d2e1be63812b5 +size 1229312 diff --git a/build/bin/thrust.example.run_length_decoding b/build/bin/thrust.example.run_length_decoding new file mode 100644 index 0000000000000000000000000000000000000000..40ee50435335c98dab5ad4e1b778c077c4cdc668 --- /dev/null +++ b/build/bin/thrust.example.run_length_decoding @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b7f312ff956939f22d4db2b6961615e0f3939045a5abe491cae8df11374ad5a9 +size 2127616 diff --git a/build/bin/thrust.example.run_length_encoding b/build/bin/thrust.example.run_length_encoding new file mode 100644 index 0000000000000000000000000000000000000000..6a3815c85f5bbc69fed1f2544b8ef32040913bc6 --- /dev/null +++ b/build/bin/thrust.example.run_length_encoding @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:54e8c01eb9b225fa4b9193533a38fe8c48f70779657e3cdb4dc179cd86cd0163 +size 2920624 diff --git a/build/bin/thrust.example.saxpy b/build/bin/thrust.example.saxpy new file mode 100644 index 0000000000000000000000000000000000000000..15b7a95f499fec5ac0b4b31a267ee5a9433f0896 --- /dev/null +++ b/build/bin/thrust.example.saxpy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:713ba3a8c3cfdbd036ab6d2d2f7f3b5c13680cd04ac8095be41c8cd29a5bffb4 +size 1249752 diff --git a/build/bin/thrust.example.scan_by_key b/build/bin/thrust.example.scan_by_key new file mode 100644 index 0000000000000000000000000000000000000000..b536fb34dec8fc1c0d53aa51c751b0b637f3f791 --- /dev/null +++ b/build/bin/thrust.example.scan_by_key @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6cfa42d0d7fba0e9c4cf3b2870f5a6a74345546fa88d9c4724ddfc25b7ddb3c7 +size 4976320 diff --git a/build/bin/thrust.example.scan_matrix_by_rows b/build/bin/thrust.example.scan_matrix_by_rows new file mode 100644 index 0000000000000000000000000000000000000000..9c61ad13b71ca465636060e5edffd4b87df54fe3 --- /dev/null +++ b/build/bin/thrust.example.scan_matrix_by_rows @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e13a61f7929a2bf928fce4ae355d18c664de3d957549841d93633b1f5d890cc +size 3021480 diff --git a/build/bin/thrust.example.set_operations b/build/bin/thrust.example.set_operations new file mode 100644 index 0000000000000000000000000000000000000000..bd853a34e9d6108ffb7f19ddb36f64dec45bfbd7 --- /dev/null +++ b/build/bin/thrust.example.set_operations @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0a97d6caf819f0d4f9ee0bb04b07be3afac9787b2116b91647dbef0a3d1f49a3 +size 8725600 diff --git a/build/bin/thrust.example.simple_moving_average b/build/bin/thrust.example.simple_moving_average new file mode 100644 index 0000000000000000000000000000000000000000..3b94ae6c8eee80933cde76dfdf3e96e2cb63a9e9 --- /dev/null +++ b/build/bin/thrust.example.simple_moving_average @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1b4206edb23d0c934c1479129a6578a07ff88fd3bf05087ac9889ac38bdd80c3 +size 1865344 diff --git a/build/bin/thrust.example.sort b/build/bin/thrust.example.sort new file mode 100644 index 0000000000000000000000000000000000000000..61ff6cfb9f316bd04acdf010ce5d7305457e6883 --- /dev/null +++ b/build/bin/thrust.example.sort @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7fbc231e360defe9a9e294b0998182c26066766d506a9a3fbd99e4650e312f89 +size 23056176 diff --git a/build/bin/thrust.example.sorting_aos_vs_soa b/build/bin/thrust.example.sorting_aos_vs_soa new file mode 100644 index 0000000000000000000000000000000000000000..6a5ee9213ef8b0facb6778ae32b73641da7bff76 --- /dev/null +++ b/build/bin/thrust.example.sorting_aos_vs_soa @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:90f52feaf12fc4007de5b74a06f0d36dc0287dae4e045350a9c65a186d231e9c +size 10619752 diff --git a/build/bin/thrust.example.sparse_vector b/build/bin/thrust.example.sparse_vector new file mode 100644 index 0000000000000000000000000000000000000000..5bede856a0696338fab74f1da2a3cbd9c986b20c --- /dev/null +++ b/build/bin/thrust.example.sparse_vector @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:01557121c62268d19e2fea965c9f040711c6be208a59c8ffe45749c01b1d47a2 +size 5426568 diff --git a/build/bin/thrust.example.stream_compaction b/build/bin/thrust.example.stream_compaction new file mode 100644 index 0000000000000000000000000000000000000000..a412248e8e2048d892a9a434b5bd61e25b07eae0 --- /dev/null +++ b/build/bin/thrust.example.stream_compaction @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2d6f8621572be1f85b8cce45ab81eaa657137e51514a4ace59fc57db99b3bd14 +size 3924856 diff --git a/build/bin/thrust.example.strided_range b/build/bin/thrust.example.strided_range new file mode 100644 index 0000000000000000000000000000000000000000..9f4a9b485768906d4814c4d71c9a2cdb82ca0a56 --- /dev/null +++ b/build/bin/thrust.example.strided_range @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a9180b006f69d082567489668b231a837a32cc130f174159ee35758f83ce1a0d +size 2814848 diff --git a/build/bin/thrust.example.sum b/build/bin/thrust.example.sum new file mode 100644 index 0000000000000000000000000000000000000000..3d0fc8682f044ec059176ee3451b030fcca2f2c1 --- /dev/null +++ b/build/bin/thrust.example.sum @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e37c1531fc9aa4048dce3d37afd686373bd513bc4f5897f0ed2eac2d4923eb30 +size 2156096 diff --git a/build/bin/thrust.example.sum_rows b/build/bin/thrust.example.sum_rows new file mode 100644 index 0000000000000000000000000000000000000000..3fe6c42746cafdffe389bfccfe196a1beccfbe61 --- /dev/null +++ b/build/bin/thrust.example.sum_rows @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7d6985a66fca0ed68e49c713f6f7aaff3625c4f394c622de1159a93d50127e62 +size 2942608 diff --git a/build/bin/thrust.example.summary_statistics b/build/bin/thrust.example.summary_statistics new file mode 100644 index 0000000000000000000000000000000000000000..39e5d30698a034aaf0ceb9cfa09f416050ee8653 --- /dev/null +++ b/build/bin/thrust.example.summary_statistics @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6ccf9107b19cc188e70c2ce986d57d8ec387900f3b8340b1c35c845cece921b0 +size 9600664 diff --git a/build/bin/thrust.example.summed_area_table b/build/bin/thrust.example.summed_area_table new file mode 100644 index 0000000000000000000000000000000000000000..00aeaf0979347ab1f62fae5966a7d40afb04d70d --- /dev/null +++ b/build/bin/thrust.example.summed_area_table @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:024d53b41a1ec83dff6d534d15dba382958ea1a69353feb9a2c0a29abc0707bd +size 2708488 diff --git a/build/bin/thrust.example.tiled_range b/build/bin/thrust.example.tiled_range new file mode 100644 index 0000000000000000000000000000000000000000..e6c50593c407de6d3052ee2ec4ba4137a4e4e6ca --- /dev/null +++ b/build/bin/thrust.example.tiled_range @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4c4e21189f41a97a5d8b5a19b169de930dffcc34b3af296c081f4be47b623ba9 +size 1225200 diff --git a/build/bin/thrust.example.transform_input_output_iterator b/build/bin/thrust.example.transform_input_output_iterator new file mode 100644 index 0000000000000000000000000000000000000000..3fecb5495a27ad4afcd9f0a7724e76291414ada4 --- /dev/null +++ b/build/bin/thrust.example.transform_input_output_iterator @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9b4b00172982377da9745e92a5d839b86a34376a5da78709fdb7f6ef353e3c95 +size 1241392 diff --git a/build/bin/thrust.example.transform_iterator b/build/bin/thrust.example.transform_iterator new file mode 100644 index 0000000000000000000000000000000000000000..5dbc52bafb64538808b1efa190b70109730783b9 --- /dev/null +++ b/build/bin/thrust.example.transform_iterator @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e0d53865fde623e282a1f736411cc9fec86dcf9e1a3cd86170f8239389406d46 +size 2697904 diff --git a/build/bin/thrust.example.transform_output_iterator b/build/bin/thrust.example.transform_output_iterator new file mode 100644 index 0000000000000000000000000000000000000000..d7d73a481115b5e2c58e9cb09d2b734c9419f607 --- /dev/null +++ b/build/bin/thrust.example.transform_output_iterator @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a99442eac38eaa31a8b1a06c0ea03266e41956226e51bce01dae67fde835be02 +size 1221104 diff --git a/build/bin/thrust.example.uninitialized_vector b/build/bin/thrust.example.uninitialized_vector new file mode 100644 index 0000000000000000000000000000000000000000..6ec264391e4f3a5529bd3457d1ed1aa9adcdd09f --- /dev/null +++ b/build/bin/thrust.example.uninitialized_vector @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2577289197a0202ceb5f3878a3817efcc6261efc4233498d4b3717c9a392c885 +size 1402752 diff --git a/build/bin/thrust.example.version b/build/bin/thrust.example.version new file mode 100644 index 0000000000000000000000000000000000000000..52cc262b35daf7b3da6dfb622ba5908719bcb61c Binary files /dev/null and b/build/bin/thrust.example.version differ diff --git a/build/bin/thrust.example.weld_vertices b/build/bin/thrust.example.weld_vertices new file mode 100644 index 0000000000000000000000000000000000000000..fe11fb701e7cb34a2527da0cdd38b97fa4e12d47 --- /dev/null +++ b/build/bin/thrust.example.weld_vertices @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2ddf7b97078661711ede565819970075cdd1e2a2a3956bae74d334b584efd327 +size 3695832 diff --git a/build/bin/thrust.example.word_count b/build/bin/thrust.example.word_count new file mode 100644 index 0000000000000000000000000000000000000000..75682068a25535c1aad7a0b731e82319fcc8caa1 --- /dev/null +++ b/build/bin/thrust.example.word_count @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0f9e2c9430d71e0d836c2064606fc483212318b220014416ae342f157a065bdc +size 2377872 diff --git a/build/cmake_install.cmake b/build/cmake_install.cmake index 64577ccfef3086655ec8edb7d5b16a7cabd9aa8b..dd12ff122b0c3c3ca9974673db4ec84f194a2b65 100644 --- a/build/cmake_install.cmake +++ b/build/cmake_install.cmake @@ -87,6 +87,11 @@ if(NOT CMAKE_INSTALL_LOCAL_ONLY) include("/home/ubuntu/thrust/build/testing/cmake_install.cmake") endif() +if(NOT CMAKE_INSTALL_LOCAL_ONLY) + # Include the install script for the subdirectory. + include("/home/ubuntu/thrust/build/examples/cmake_install.cmake") +endif() + if(NOT CMAKE_INSTALL_LOCAL_ONLY) # Include the install script for the subdirectory. include("/home/ubuntu/thrust/build/dependencies/cub/cmake_install.cmake") diff --git a/build/dependencies/cub/CMakeFiles/cub.cpp14.headers.base.dir/progress.make b/build/dependencies/cub/CMakeFiles/cub.cpp14.headers.base.dir/progress.make index 6883a66f7c62d25e11b34560bc01ed528d0d8a84..05e183c963055c15bb385f472c23247417300ade 100644 --- a/build/dependencies/cub/CMakeFiles/cub.cpp14.headers.base.dir/progress.make +++ b/build/dependencies/cub/CMakeFiles/cub.cpp14.headers.base.dir/progress.make @@ -1,7 +1,7 @@ -CMAKE_PROGRESS_1 = 3 +CMAKE_PROGRESS_1 = CMAKE_PROGRESS_2 = CMAKE_PROGRESS_3 = -CMAKE_PROGRESS_4 = +CMAKE_PROGRESS_4 = 3 CMAKE_PROGRESS_5 = CMAKE_PROGRESS_6 = CMAKE_PROGRESS_7 = @@ -9,40 +9,40 @@ CMAKE_PROGRESS_8 = CMAKE_PROGRESS_9 = CMAKE_PROGRESS_10 = CMAKE_PROGRESS_11 = -CMAKE_PROGRESS_12 = 4 +CMAKE_PROGRESS_12 = CMAKE_PROGRESS_13 = CMAKE_PROGRESS_14 = CMAKE_PROGRESS_15 = CMAKE_PROGRESS_16 = -CMAKE_PROGRESS_17 = +CMAKE_PROGRESS_17 = 4 CMAKE_PROGRESS_18 = CMAKE_PROGRESS_19 = CMAKE_PROGRESS_20 = CMAKE_PROGRESS_21 = CMAKE_PROGRESS_22 = -CMAKE_PROGRESS_23 = 5 +CMAKE_PROGRESS_23 = CMAKE_PROGRESS_24 = CMAKE_PROGRESS_25 = CMAKE_PROGRESS_26 = CMAKE_PROGRESS_27 = CMAKE_PROGRESS_28 = -CMAKE_PROGRESS_29 = +CMAKE_PROGRESS_29 = 5 CMAKE_PROGRESS_30 = CMAKE_PROGRESS_31 = CMAKE_PROGRESS_32 = CMAKE_PROGRESS_33 = -CMAKE_PROGRESS_34 = 6 +CMAKE_PROGRESS_34 = CMAKE_PROGRESS_35 = CMAKE_PROGRESS_36 = CMAKE_PROGRESS_37 = CMAKE_PROGRESS_38 = CMAKE_PROGRESS_39 = CMAKE_PROGRESS_40 = -CMAKE_PROGRESS_41 = +CMAKE_PROGRESS_41 = 6 CMAKE_PROGRESS_42 = CMAKE_PROGRESS_43 = CMAKE_PROGRESS_44 = -CMAKE_PROGRESS_45 = 7 +CMAKE_PROGRESS_45 = CMAKE_PROGRESS_46 = CMAKE_PROGRESS_47 = CMAKE_PROGRESS_48 = @@ -51,10 +51,10 @@ CMAKE_PROGRESS_50 = CMAKE_PROGRESS_51 = CMAKE_PROGRESS_52 = CMAKE_PROGRESS_53 = -CMAKE_PROGRESS_54 = +CMAKE_PROGRESS_54 = 7 CMAKE_PROGRESS_55 = CMAKE_PROGRESS_56 = -CMAKE_PROGRESS_57 = 8 +CMAKE_PROGRESS_57 = CMAKE_PROGRESS_58 = CMAKE_PROGRESS_59 = CMAKE_PROGRESS_60 = @@ -63,9 +63,9 @@ CMAKE_PROGRESS_62 = CMAKE_PROGRESS_63 = CMAKE_PROGRESS_64 = CMAKE_PROGRESS_65 = -CMAKE_PROGRESS_66 = +CMAKE_PROGRESS_66 = 8 CMAKE_PROGRESS_67 = -CMAKE_PROGRESS_68 = 9 +CMAKE_PROGRESS_68 = CMAKE_PROGRESS_69 = CMAKE_PROGRESS_70 = CMAKE_PROGRESS_71 = @@ -75,8 +75,8 @@ CMAKE_PROGRESS_74 = CMAKE_PROGRESS_75 = CMAKE_PROGRESS_76 = CMAKE_PROGRESS_77 = -CMAKE_PROGRESS_78 = -CMAKE_PROGRESS_79 = 10 +CMAKE_PROGRESS_78 = 9 +CMAKE_PROGRESS_79 = CMAKE_PROGRESS_80 = CMAKE_PROGRESS_81 = CMAKE_PROGRESS_82 = @@ -87,7 +87,7 @@ CMAKE_PROGRESS_86 = CMAKE_PROGRESS_87 = CMAKE_PROGRESS_88 = CMAKE_PROGRESS_89 = -CMAKE_PROGRESS_90 = 11 +CMAKE_PROGRESS_90 = 10 CMAKE_PROGRESS_91 = CMAKE_PROGRESS_92 = CMAKE_PROGRESS_93 = @@ -98,9 +98,9 @@ CMAKE_PROGRESS_97 = CMAKE_PROGRESS_98 = CMAKE_PROGRESS_99 = CMAKE_PROGRESS_100 = -CMAKE_PROGRESS_101 = 12 +CMAKE_PROGRESS_101 = CMAKE_PROGRESS_102 = -CMAKE_PROGRESS_103 = +CMAKE_PROGRESS_103 = 11 CMAKE_PROGRESS_104 = CMAKE_PROGRESS_105 = CMAKE_PROGRESS_106 = @@ -109,10 +109,10 @@ CMAKE_PROGRESS_108 = CMAKE_PROGRESS_109 = CMAKE_PROGRESS_110 = CMAKE_PROGRESS_111 = -CMAKE_PROGRESS_112 = 13 +CMAKE_PROGRESS_112 = CMAKE_PROGRESS_113 = CMAKE_PROGRESS_114 = -CMAKE_PROGRESS_115 = +CMAKE_PROGRESS_115 = 12 CMAKE_PROGRESS_116 = CMAKE_PROGRESS_117 = CMAKE_PROGRESS_118 = @@ -120,11 +120,11 @@ CMAKE_PROGRESS_119 = CMAKE_PROGRESS_120 = CMAKE_PROGRESS_121 = CMAKE_PROGRESS_122 = -CMAKE_PROGRESS_123 = 14 +CMAKE_PROGRESS_123 = CMAKE_PROGRESS_124 = CMAKE_PROGRESS_125 = CMAKE_PROGRESS_126 = -CMAKE_PROGRESS_127 = +CMAKE_PROGRESS_127 = 13 CMAKE_PROGRESS_128 = CMAKE_PROGRESS_129 = CMAKE_PROGRESS_130 = diff --git a/build/dependencies/cub/CMakeFiles/cub.cpp14.headers.bf16.dir/progress.make b/build/dependencies/cub/CMakeFiles/cub.cpp14.headers.bf16.dir/progress.make index 73a9a511b7a222ad4186a84ddb684b615944f4fa..e304e18f20dd328e4ff4485526e3285add01ebe8 100644 --- a/build/dependencies/cub/CMakeFiles/cub.cpp14.headers.bf16.dir/progress.make +++ b/build/dependencies/cub/CMakeFiles/cub.cpp14.headers.bf16.dir/progress.make @@ -2,40 +2,40 @@ CMAKE_PROGRESS_1 = CMAKE_PROGRESS_2 = CMAKE_PROGRESS_3 = CMAKE_PROGRESS_4 = -CMAKE_PROGRESS_5 = 15 +CMAKE_PROGRESS_5 = CMAKE_PROGRESS_6 = CMAKE_PROGRESS_7 = CMAKE_PROGRESS_8 = CMAKE_PROGRESS_9 = -CMAKE_PROGRESS_10 = +CMAKE_PROGRESS_10 = 14 CMAKE_PROGRESS_11 = CMAKE_PROGRESS_12 = CMAKE_PROGRESS_13 = CMAKE_PROGRESS_14 = CMAKE_PROGRESS_15 = -CMAKE_PROGRESS_16 = 16 +CMAKE_PROGRESS_16 = CMAKE_PROGRESS_17 = CMAKE_PROGRESS_18 = CMAKE_PROGRESS_19 = CMAKE_PROGRESS_20 = CMAKE_PROGRESS_21 = -CMAKE_PROGRESS_22 = +CMAKE_PROGRESS_22 = 15 CMAKE_PROGRESS_23 = CMAKE_PROGRESS_24 = CMAKE_PROGRESS_25 = CMAKE_PROGRESS_26 = -CMAKE_PROGRESS_27 = 17 +CMAKE_PROGRESS_27 = CMAKE_PROGRESS_28 = CMAKE_PROGRESS_29 = CMAKE_PROGRESS_30 = CMAKE_PROGRESS_31 = CMAKE_PROGRESS_32 = CMAKE_PROGRESS_33 = -CMAKE_PROGRESS_34 = +CMAKE_PROGRESS_34 = 16 CMAKE_PROGRESS_35 = CMAKE_PROGRESS_36 = CMAKE_PROGRESS_37 = -CMAKE_PROGRESS_38 = 18 +CMAKE_PROGRESS_38 = CMAKE_PROGRESS_39 = CMAKE_PROGRESS_40 = CMAKE_PROGRESS_41 = @@ -44,9 +44,9 @@ CMAKE_PROGRESS_43 = CMAKE_PROGRESS_44 = CMAKE_PROGRESS_45 = CMAKE_PROGRESS_46 = -CMAKE_PROGRESS_47 = +CMAKE_PROGRESS_47 = 17 CMAKE_PROGRESS_48 = -CMAKE_PROGRESS_49 = 19 +CMAKE_PROGRESS_49 = CMAKE_PROGRESS_50 = CMAKE_PROGRESS_51 = CMAKE_PROGRESS_52 = @@ -56,8 +56,8 @@ CMAKE_PROGRESS_55 = CMAKE_PROGRESS_56 = CMAKE_PROGRESS_57 = CMAKE_PROGRESS_58 = -CMAKE_PROGRESS_59 = -CMAKE_PROGRESS_60 = 20 +CMAKE_PROGRESS_59 = 18 +CMAKE_PROGRESS_60 = CMAKE_PROGRESS_61 = CMAKE_PROGRESS_62 = CMAKE_PROGRESS_63 = @@ -68,7 +68,7 @@ CMAKE_PROGRESS_67 = CMAKE_PROGRESS_68 = CMAKE_PROGRESS_69 = CMAKE_PROGRESS_70 = -CMAKE_PROGRESS_71 = 21 +CMAKE_PROGRESS_71 = 19 CMAKE_PROGRESS_72 = CMAKE_PROGRESS_73 = CMAKE_PROGRESS_74 = @@ -80,7 +80,7 @@ CMAKE_PROGRESS_79 = CMAKE_PROGRESS_80 = CMAKE_PROGRESS_81 = CMAKE_PROGRESS_82 = -CMAKE_PROGRESS_83 = 22 +CMAKE_PROGRESS_83 = 20 CMAKE_PROGRESS_84 = CMAKE_PROGRESS_85 = CMAKE_PROGRESS_86 = @@ -91,9 +91,9 @@ CMAKE_PROGRESS_90 = CMAKE_PROGRESS_91 = CMAKE_PROGRESS_92 = CMAKE_PROGRESS_93 = -CMAKE_PROGRESS_94 = 23 +CMAKE_PROGRESS_94 = CMAKE_PROGRESS_95 = -CMAKE_PROGRESS_96 = +CMAKE_PROGRESS_96 = 21 CMAKE_PROGRESS_97 = CMAKE_PROGRESS_98 = CMAKE_PROGRESS_99 = @@ -102,10 +102,10 @@ CMAKE_PROGRESS_101 = CMAKE_PROGRESS_102 = CMAKE_PROGRESS_103 = CMAKE_PROGRESS_104 = -CMAKE_PROGRESS_105 = 24 +CMAKE_PROGRESS_105 = CMAKE_PROGRESS_106 = CMAKE_PROGRESS_107 = -CMAKE_PROGRESS_108 = +CMAKE_PROGRESS_108 = 22 CMAKE_PROGRESS_109 = CMAKE_PROGRESS_110 = CMAKE_PROGRESS_111 = @@ -113,18 +113,18 @@ CMAKE_PROGRESS_112 = CMAKE_PROGRESS_113 = CMAKE_PROGRESS_114 = CMAKE_PROGRESS_115 = -CMAKE_PROGRESS_116 = 25 +CMAKE_PROGRESS_116 = CMAKE_PROGRESS_117 = CMAKE_PROGRESS_118 = CMAKE_PROGRESS_119 = -CMAKE_PROGRESS_120 = +CMAKE_PROGRESS_120 = 23 CMAKE_PROGRESS_121 = CMAKE_PROGRESS_122 = CMAKE_PROGRESS_123 = CMAKE_PROGRESS_124 = CMAKE_PROGRESS_125 = CMAKE_PROGRESS_126 = -CMAKE_PROGRESS_127 = 26 +CMAKE_PROGRESS_127 = CMAKE_PROGRESS_128 = CMAKE_PROGRESS_129 = CMAKE_PROGRESS_130 = diff --git a/build/dependencies/cub/CMakeFiles/progress.marks b/build/dependencies/cub/CMakeFiles/progress.marks index c739b42c4d2ce23786c5350641d0adbf5fa7d6b2..425151f3a411f5e088d7753e7c8d016303b1b9d1 100644 --- a/build/dependencies/cub/CMakeFiles/progress.marks +++ b/build/dependencies/cub/CMakeFiles/progress.marks @@ -1 +1 @@ -44 +40 diff --git a/build/dependencies/cub/examples/device/CMakeFiles/cub.cpp14.example.device.decoupled_look_back.dir/progress.make b/build/dependencies/cub/examples/device/CMakeFiles/cub.cpp14.example.device.decoupled_look_back.dir/progress.make index b8573d022880abbedaff66e204fd8b9e0ef493c2..2271fbb3764b29d42d2ae77bf68438ca43287d97 100644 --- a/build/dependencies/cub/examples/device/CMakeFiles/cub.cpp14.example.device.decoupled_look_back.dir/progress.make +++ b/build/dependencies/cub/examples/device/CMakeFiles/cub.cpp14.example.device.decoupled_look_back.dir/progress.make @@ -1,3 +1,3 @@ -CMAKE_PROGRESS_1 = 1 -CMAKE_PROGRESS_2 = +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = 1 diff --git a/build/dependencies/cub/examples/device/CMakeFiles/cub.cpp14.example.device.reduce.dir/progress.make b/build/dependencies/cub/examples/device/CMakeFiles/cub.cpp14.example.device.reduce.dir/progress.make index 7fbee5208e37f27e23f60a5f7256d77060ef6770..6c287f17b23171ee8abc97d23b8f8a3bfa7225de 100644 --- a/build/dependencies/cub/examples/device/CMakeFiles/cub.cpp14.example.device.reduce.dir/progress.make +++ b/build/dependencies/cub/examples/device/CMakeFiles/cub.cpp14.example.device.reduce.dir/progress.make @@ -1,3 +1,3 @@ CMAKE_PROGRESS_1 = -CMAKE_PROGRESS_2 = 2 +CMAKE_PROGRESS_2 = diff --git a/build/dependencies/cub/examples/device/CMakeFiles/cub.cpp14.example.device.scan.dir/progress.make b/build/dependencies/cub/examples/device/CMakeFiles/cub.cpp14.example.device.scan.dir/progress.make index 6c287f17b23171ee8abc97d23b8f8a3bfa7225de..7fbee5208e37f27e23f60a5f7256d77060ef6770 100644 --- a/build/dependencies/cub/examples/device/CMakeFiles/cub.cpp14.example.device.scan.dir/progress.make +++ b/build/dependencies/cub/examples/device/CMakeFiles/cub.cpp14.example.device.scan.dir/progress.make @@ -1,3 +1,3 @@ CMAKE_PROGRESS_1 = -CMAKE_PROGRESS_2 = +CMAKE_PROGRESS_2 = 2 diff --git a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_adjacent_difference.bs_256.dir/progress.make b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_adjacent_difference.bs_256.dir/progress.make index 225de343d65c51fd774bbe0e1adee2d439eb81dc..44101e16063db08b96958288820ad27130cc25f4 100644 --- a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_adjacent_difference.bs_256.dir/progress.make +++ b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_adjacent_difference.bs_256.dir/progress.make @@ -1,2 +1,2 @@ -CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_1 = 24 diff --git a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_load.it_1.dir/progress.make b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_load.it_1.dir/progress.make index 6e61838c631fb5c9889c31c620bb1513eefe01a1..225de343d65c51fd774bbe0e1adee2d439eb81dc 100644 --- a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_load.it_1.dir/progress.make +++ b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_load.it_1.dir/progress.make @@ -1,2 +1,2 @@ -CMAKE_PROGRESS_1 = 27 +CMAKE_PROGRESS_1 = diff --git a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_radix_sort.mem_0.alg_0.ipt_1.ipt_32.dir/progress.make b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_radix_sort.mem_0.alg_0.ipt_1.ipt_32.dir/progress.make index 225de343d65c51fd774bbe0e1adee2d439eb81dc..1c95e00552891709e5f02b6eb1a74423a404993f 100644 --- a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_radix_sort.mem_0.alg_0.ipt_1.ipt_32.dir/progress.make +++ b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_radix_sort.mem_0.alg_0.ipt_1.ipt_32.dir/progress.make @@ -1,2 +1,2 @@ -CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_1 = 25 diff --git a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_radix_sort.mem_0.alg_1.ipt_1.ipt_32.dir/progress.make b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_radix_sort.mem_0.alg_1.ipt_1.ipt_32.dir/progress.make index f3290adb809016b7d2c5d8ca56fc1356f732fe9a..225de343d65c51fd774bbe0e1adee2d439eb81dc 100644 --- a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_radix_sort.mem_0.alg_1.ipt_1.ipt_32.dir/progress.make +++ b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_radix_sort.mem_0.alg_1.ipt_1.ipt_32.dir/progress.make @@ -1,2 +1,2 @@ -CMAKE_PROGRESS_1 = 28 +CMAKE_PROGRESS_1 = diff --git a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_radix_sort.mem_1.alg_1.ipt_1.ipt_32.dir/progress.make b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_radix_sort.mem_1.alg_1.ipt_1.ipt_32.dir/progress.make index 225de343d65c51fd774bbe0e1adee2d439eb81dc..fbba2b3e66ee9fb4a7ff5c87a749fb0027cf45ef 100644 --- a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_radix_sort.mem_1.alg_1.ipt_1.ipt_32.dir/progress.make +++ b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_radix_sort.mem_1.alg_1.ipt_1.ipt_32.dir/progress.make @@ -1,2 +1,2 @@ -CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_1 = 26 diff --git a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_reduce.dimx_128.dimyz_1.dir/progress.make b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_reduce.dimx_128.dimyz_1.dir/progress.make index c7c4328fe05772ca9c52fd08581b4acce3aa6ad2..225de343d65c51fd774bbe0e1adee2d439eb81dc 100644 --- a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_reduce.dimx_128.dimyz_1.dir/progress.make +++ b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_reduce.dimx_128.dimyz_1.dir/progress.make @@ -1,2 +1,2 @@ -CMAKE_PROGRESS_1 = 29 +CMAKE_PROGRESS_1 = diff --git a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_scan.alg_0.mode_0.dir/progress.make b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_scan.alg_0.mode_0.dir/progress.make index 225de343d65c51fd774bbe0e1adee2d439eb81dc..6e61838c631fb5c9889c31c620bb1513eefe01a1 100644 --- a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_scan.alg_0.mode_0.dir/progress.make +++ b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_scan.alg_0.mode_0.dir/progress.make @@ -1,2 +1,2 @@ -CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_1 = 27 diff --git a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_scan.alg_1.mode_0.dir/progress.make b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_scan.alg_1.mode_0.dir/progress.make index 3040898ab1747399d82f5f713fd3dbf75f141b59..225de343d65c51fd774bbe0e1adee2d439eb81dc 100644 --- a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_scan.alg_1.mode_0.dir/progress.make +++ b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_scan.alg_1.mode_0.dir/progress.make @@ -1,2 +1,2 @@ -CMAKE_PROGRESS_1 = 30 +CMAKE_PROGRESS_1 = diff --git a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_store.it_1.dir/progress.make b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_store.it_1.dir/progress.make index 225de343d65c51fd774bbe0e1adee2d439eb81dc..f3290adb809016b7d2c5d8ca56fc1356f732fe9a 100644 --- a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_store.it_1.dir/progress.make +++ b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_store.it_1.dir/progress.make @@ -1,2 +1,2 @@ -CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_1 = 28 diff --git a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_store.it_11.dir/progress.make b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_store.it_11.dir/progress.make index a3100dd4e8632a7ee188b1592ae57e9eabfe3172..225de343d65c51fd774bbe0e1adee2d439eb81dc 100644 --- a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_store.it_11.dir/progress.make +++ b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.block_store.it_11.dir/progress.make @@ -1,2 +1,2 @@ -CMAKE_PROGRESS_1 = 31 +CMAKE_PROGRESS_1 = diff --git a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_batch_memcpy.dir/progress.make b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_batch_memcpy.dir/progress.make index 67f3ae8fb20c5bbc0bcd4bca72ef320babc9f8cc..b2fb3ce841abcc556e57c9fecf7a3bdebe37a45a 100644 --- a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_batch_memcpy.dir/progress.make +++ b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_batch_memcpy.dir/progress.make @@ -1,3 +1,3 @@ CMAKE_PROGRESS_1 = -CMAKE_PROGRESS_2 = 32 +CMAKE_PROGRESS_2 = 29 diff --git a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_1.pairs_2.dir/progress.make b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_1.pairs_2.dir/progress.make index 1b6d3a4d412096790974e849f31cc8dfa94c4b48..6c287f17b23171ee8abc97d23b8f8a3bfa7225de 100644 --- a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_1.pairs_2.dir/progress.make +++ b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_1.pairs_2.dir/progress.make @@ -1,3 +1,3 @@ CMAKE_PROGRESS_1 = -CMAKE_PROGRESS_2 = 33 +CMAKE_PROGRESS_2 = diff --git a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_1.pairs_3.dir/progress.make b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_1.pairs_3.dir/progress.make index 6c287f17b23171ee8abc97d23b8f8a3bfa7225de..d599d1b4aea650e3787ae7b43a8f473fae183d69 100644 --- a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_1.pairs_3.dir/progress.make +++ b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_1.pairs_3.dir/progress.make @@ -1,3 +1,3 @@ -CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_1 = 30 CMAKE_PROGRESS_2 = diff --git a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_2.pairs_0.dir/progress.make b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_2.pairs_0.dir/progress.make index 527b7e9489bab7a000d5dffceeee2ce046f12c73..6c287f17b23171ee8abc97d23b8f8a3bfa7225de 100644 --- a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_2.pairs_0.dir/progress.make +++ b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_2.pairs_0.dir/progress.make @@ -1,3 +1,3 @@ -CMAKE_PROGRESS_1 = 34 +CMAKE_PROGRESS_1 = CMAKE_PROGRESS_2 = diff --git a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_2.pairs_1.dir/progress.make b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_2.pairs_1.dir/progress.make index 6c287f17b23171ee8abc97d23b8f8a3bfa7225de..eda664886c5c82416667ed3a619dd9ef67560893 100644 --- a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_2.pairs_1.dir/progress.make +++ b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_2.pairs_1.dir/progress.make @@ -1,3 +1,3 @@ CMAKE_PROGRESS_1 = -CMAKE_PROGRESS_2 = +CMAKE_PROGRESS_2 = 31 diff --git a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_4.pairs_1.dir/progress.make b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_4.pairs_1.dir/progress.make index e803f3f77f76219dd72066f60d75bbbdea17e994..6c287f17b23171ee8abc97d23b8f8a3bfa7225de 100644 --- a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_4.pairs_1.dir/progress.make +++ b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_4.pairs_1.dir/progress.make @@ -1,3 +1,3 @@ CMAKE_PROGRESS_1 = -CMAKE_PROGRESS_2 = 35 +CMAKE_PROGRESS_2 = diff --git a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_4.pairs_3.dir/progress.make b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_4.pairs_3.dir/progress.make index 6c287f17b23171ee8abc97d23b8f8a3bfa7225de..67f3ae8fb20c5bbc0bcd4bca72ef320babc9f8cc 100644 --- a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_4.pairs_3.dir/progress.make +++ b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_4.pairs_3.dir/progress.make @@ -1,3 +1,3 @@ CMAKE_PROGRESS_1 = -CMAKE_PROGRESS_2 = +CMAKE_PROGRESS_2 = 32 diff --git a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_8.pairs_3.dir/progress.make b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_8.pairs_3.dir/progress.make index 5fe70d78640e96d4ad2d78aa1df6656e59ee517f..6c287f17b23171ee8abc97d23b8f8a3bfa7225de 100644 --- a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_8.pairs_3.dir/progress.make +++ b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_radix_sort.cdp_0.bytes_8.pairs_3.dir/progress.make @@ -1,3 +1,3 @@ CMAKE_PROGRESS_1 = -CMAKE_PROGRESS_2 = 36 +CMAKE_PROGRESS_2 = diff --git a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_reduce.cdp_0.types_1.dir/progress.make b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_reduce.cdp_0.types_1.dir/progress.make index 6c287f17b23171ee8abc97d23b8f8a3bfa7225de..72822cee9991aab9e9e971e0b74aa004ae559819 100644 --- a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_reduce.cdp_0.types_1.dir/progress.make +++ b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_reduce.cdp_0.types_1.dir/progress.make @@ -1,3 +1,3 @@ -CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_1 = 33 CMAKE_PROGRESS_2 = diff --git a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_reduce.cdp_0.types_4.dir/progress.make b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_reduce.cdp_0.types_4.dir/progress.make index cf9bccfccdcfadbd26f5deff01bbbdc464648b92..6c287f17b23171ee8abc97d23b8f8a3bfa7225de 100644 --- a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_reduce.cdp_0.types_4.dir/progress.make +++ b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_reduce.cdp_0.types_4.dir/progress.make @@ -1,3 +1,3 @@ CMAKE_PROGRESS_1 = -CMAKE_PROGRESS_2 = 37 +CMAKE_PROGRESS_2 = diff --git a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan.cdp_0.types_0.dir/progress.make b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan.cdp_0.types_0.dir/progress.make index 6c287f17b23171ee8abc97d23b8f8a3bfa7225de..7f64d5421878aa3911c247b51ff5e47f59b82b6b 100644 --- a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan.cdp_0.types_0.dir/progress.make +++ b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan.cdp_0.types_0.dir/progress.make @@ -1,3 +1,3 @@ CMAKE_PROGRESS_1 = -CMAKE_PROGRESS_2 = +CMAKE_PROGRESS_2 = 34 diff --git a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan_by_key.cdp_0.types_0.dir/progress.make b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan_by_key.cdp_0.types_0.dir/progress.make index cb5873d4ffbc0362c52c9884afd4bf5b87d02212..6c287f17b23171ee8abc97d23b8f8a3bfa7225de 100644 --- a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan_by_key.cdp_0.types_0.dir/progress.make +++ b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan_by_key.cdp_0.types_0.dir/progress.make @@ -1,3 +1,3 @@ -CMAKE_PROGRESS_1 = 38 +CMAKE_PROGRESS_1 = CMAKE_PROGRESS_2 = diff --git a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan_by_key.cdp_0.types_3.dir/progress.make b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan_by_key.cdp_0.types_3.dir/progress.make index 6c287f17b23171ee8abc97d23b8f8a3bfa7225de..e803f3f77f76219dd72066f60d75bbbdea17e994 100644 --- a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan_by_key.cdp_0.types_3.dir/progress.make +++ b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan_by_key.cdp_0.types_3.dir/progress.make @@ -1,3 +1,3 @@ CMAKE_PROGRESS_1 = -CMAKE_PROGRESS_2 = +CMAKE_PROGRESS_2 = 35 diff --git a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan_by_key.cdp_0.types_5.dir/progress.make b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan_by_key.cdp_0.types_5.dir/progress.make index 6ef9ffe7ac7f69cd852f3f43bac016a4508653a2..6c287f17b23171ee8abc97d23b8f8a3bfa7225de 100644 --- a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan_by_key.cdp_0.types_5.dir/progress.make +++ b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_scan_by_key.cdp_0.types_5.dir/progress.make @@ -1,3 +1,3 @@ CMAKE_PROGRESS_1 = -CMAKE_PROGRESS_2 = 39 +CMAKE_PROGRESS_2 = diff --git a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_select_unique_by_key.cdp_0.dir/progress.make b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_select_unique_by_key.cdp_0.dir/progress.make index 6c287f17b23171ee8abc97d23b8f8a3bfa7225de..5fe70d78640e96d4ad2d78aa1df6656e59ee517f 100644 --- a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_select_unique_by_key.cdp_0.dir/progress.make +++ b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_select_unique_by_key.cdp_0.dir/progress.make @@ -1,3 +1,3 @@ CMAKE_PROGRESS_1 = -CMAKE_PROGRESS_2 = +CMAKE_PROGRESS_2 = 36 diff --git a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_three_way_partition.dir/progress.make b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_three_way_partition.dir/progress.make index d0499d02dd18e47f0211752787c65690af22e974..6c287f17b23171ee8abc97d23b8f8a3bfa7225de 100644 --- a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_three_way_partition.dir/progress.make +++ b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.device_three_way_partition.dir/progress.make @@ -1,3 +1,3 @@ -CMAKE_PROGRESS_1 = 40 +CMAKE_PROGRESS_1 = CMAKE_PROGRESS_2 = diff --git a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.printing.dir/progress.make b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.printing.dir/progress.make index 225de343d65c51fd774bbe0e1adee2d439eb81dc..673b9bc5d94de466e0bc25eebeec8a3de5c1efda 100644 --- a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.printing.dir/progress.make +++ b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.printing.dir/progress.make @@ -1,2 +1,2 @@ -CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_1 = 37 diff --git a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.radix_operations.dir/progress.make b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.radix_operations.dir/progress.make index b390e26dbddf5f09c27da3e243a48ca092209a20..225de343d65c51fd774bbe0e1adee2d439eb81dc 100644 --- a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.radix_operations.dir/progress.make +++ b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.radix_operations.dir/progress.make @@ -1,2 +1,2 @@ -CMAKE_PROGRESS_1 = 41 +CMAKE_PROGRESS_1 = diff --git a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.warp_load.lwt_16.alg_2.dir/progress.make b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.warp_load.lwt_16.alg_2.dir/progress.make index 08da5aab92eeaf73bb81045cb0bad4b6211ca903..b43f43dee91a61d15ce5bb81794f04c9ce9d9688 100644 --- a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.warp_load.lwt_16.alg_2.dir/progress.make +++ b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.warp_load.lwt_16.alg_2.dir/progress.make @@ -1,2 +1,2 @@ -CMAKE_PROGRESS_1 = 42 +CMAKE_PROGRESS_1 = 38 diff --git a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.warp_reduce.dir/progress.make b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.warp_reduce.dir/progress.make index 109d64a88140830de45be700397cada756f86772..303dfaf60d6a7714beb445197b1798763dee049f 100644 --- a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.warp_reduce.dir/progress.make +++ b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.warp_reduce.dir/progress.make @@ -1,2 +1,2 @@ -CMAKE_PROGRESS_1 = 43 +CMAKE_PROGRESS_1 = 39 diff --git a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.warp_store.lwt_4.alg_1.dir/progress.make b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.warp_store.lwt_4.alg_1.dir/progress.make index d0a4df875e22621368a612daa2fad65499e524a7..225de343d65c51fd774bbe0e1adee2d439eb81dc 100644 --- a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.warp_store.lwt_4.alg_1.dir/progress.make +++ b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.warp_store.lwt_4.alg_1.dir/progress.make @@ -1,2 +1,2 @@ -CMAKE_PROGRESS_1 = 44 +CMAKE_PROGRESS_1 = diff --git a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.warp_store.lwt_4.alg_2.dir/progress.make b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.warp_store.lwt_4.alg_2.dir/progress.make index 225de343d65c51fd774bbe0e1adee2d439eb81dc..764444fd06eec3484622350473d674cb57bffebc 100644 --- a/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.warp_store.lwt_4.alg_2.dir/progress.make +++ b/build/dependencies/cub/test/CMakeFiles/cub.cpp14.test.warp_store.lwt_4.alg_2.dir/progress.make @@ -1,2 +1,2 @@ -CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_1 = 40 diff --git a/build/dependencies/cub/test/CMakeFiles/progress.marks b/build/dependencies/cub/test/CMakeFiles/progress.marks index 3c032078a4a21c5c51d3c93d91717c1dabbb8cd0..98d9bcb75a685dfbfd60f611c309410152935b3d 100644 --- a/build/dependencies/cub/test/CMakeFiles/progress.marks +++ b/build/dependencies/cub/test/CMakeFiles/progress.marks @@ -1 +1 @@ -18 +17 diff --git a/build/examples/CMakeFiles/CMakeDirectoryInformation.cmake b/build/examples/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000000000000000000000000000000000000..74b1d39ac9b197e2512037e48d664f5d71d95776 --- /dev/null +++ b/build/examples/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/ubuntu/thrust") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/ubuntu/thrust/build") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/build/examples/CMakeFiles/progress.marks b/build/examples/CMakeFiles/progress.marks new file mode 100644 index 0000000000000000000000000000000000000000..ec635144f60048986bc560c5576355344005e6e7 --- /dev/null +++ b/build/examples/CMakeFiles/progress.marks @@ -0,0 +1 @@ +9 diff --git a/build/examples/CMakeFiles/thrust.all.example.arbitrary_transformation.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.all.example.arbitrary_transformation.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.arbitrary_transformation.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.all.example.arbitrary_transformation.dir/build.make b/build/examples/CMakeFiles/thrust.all.example.arbitrary_transformation.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..e8af04711378c8a7801cf5379bafc3e2869366b4 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.arbitrary_transformation.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.arbitrary_transformation. + +# Include any custom commands dependencies for this target. +include examples/CMakeFiles/thrust.all.example.arbitrary_transformation.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.all.example.arbitrary_transformation.dir/progress.make + +thrust.all.example.arbitrary_transformation: examples/CMakeFiles/thrust.all.example.arbitrary_transformation.dir/build.make +.PHONY : thrust.all.example.arbitrary_transformation + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.all.example.arbitrary_transformation.dir/build: thrust.all.example.arbitrary_transformation +.PHONY : examples/CMakeFiles/thrust.all.example.arbitrary_transformation.dir/build + +examples/CMakeFiles/thrust.all.example.arbitrary_transformation.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.arbitrary_transformation.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.all.example.arbitrary_transformation.dir/clean + +examples/CMakeFiles/thrust.all.example.arbitrary_transformation.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.arbitrary_transformation.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.all.example.arbitrary_transformation.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.all.example.arbitrary_transformation.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.all.example.arbitrary_transformation.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..435814be930a6e52c4b4351f3e073065a0e5d345 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.arbitrary_transformation.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.arbitrary_transformation.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.all.example.arbitrary_transformation.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.all.example.arbitrary_transformation.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..4fe949cc6ca69c6c024bfc95ca786a34859dc921 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.arbitrary_transformation.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.arbitrary_transformation. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.all.example.arbitrary_transformation.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.all.example.arbitrary_transformation.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..bb32085cf57235dcdb668279af4ead8d6b9a01c3 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.arbitrary_transformation.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.arbitrary_transformation. diff --git a/build/examples/CMakeFiles/thrust.all.example.arbitrary_transformation.dir/progress.make b/build/examples/CMakeFiles/thrust.all.example.arbitrary_transformation.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.arbitrary_transformation.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/CMakeFiles/thrust.all.example.basic_vector.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.all.example.basic_vector.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.basic_vector.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.all.example.basic_vector.dir/build.make b/build/examples/CMakeFiles/thrust.all.example.basic_vector.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..97330db6ca8e8798bd74d178e931d1f9ac49f5af --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.basic_vector.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.basic_vector. + +# Include any custom commands dependencies for this target. +include examples/CMakeFiles/thrust.all.example.basic_vector.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.all.example.basic_vector.dir/progress.make + +thrust.all.example.basic_vector: examples/CMakeFiles/thrust.all.example.basic_vector.dir/build.make +.PHONY : thrust.all.example.basic_vector + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.all.example.basic_vector.dir/build: thrust.all.example.basic_vector +.PHONY : examples/CMakeFiles/thrust.all.example.basic_vector.dir/build + +examples/CMakeFiles/thrust.all.example.basic_vector.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.basic_vector.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.all.example.basic_vector.dir/clean + +examples/CMakeFiles/thrust.all.example.basic_vector.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.basic_vector.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.all.example.basic_vector.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.all.example.basic_vector.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.all.example.basic_vector.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..da9beba7b6ea8681e78e2197ecbf1354b6cf8270 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.basic_vector.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.basic_vector.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.all.example.basic_vector.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.all.example.basic_vector.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..31f49bb04d21e52a46314c49ac226b96d778b08c --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.basic_vector.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.basic_vector. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.all.example.basic_vector.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.all.example.basic_vector.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..513644cd84d7fedcda04c01f23d3126561ff2847 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.basic_vector.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.basic_vector. diff --git a/build/examples/CMakeFiles/thrust.all.example.basic_vector.dir/progress.make b/build/examples/CMakeFiles/thrust.all.example.basic_vector.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.basic_vector.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/CMakeFiles/thrust.all.example.bounding_box.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.all.example.bounding_box.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.bounding_box.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.all.example.bounding_box.dir/build.make b/build/examples/CMakeFiles/thrust.all.example.bounding_box.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..e97c546dad115c6b2e07acc6cd223c4baa0c5e64 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.bounding_box.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.bounding_box. + +# Include any custom commands dependencies for this target. +include examples/CMakeFiles/thrust.all.example.bounding_box.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.all.example.bounding_box.dir/progress.make + +thrust.all.example.bounding_box: examples/CMakeFiles/thrust.all.example.bounding_box.dir/build.make +.PHONY : thrust.all.example.bounding_box + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.all.example.bounding_box.dir/build: thrust.all.example.bounding_box +.PHONY : examples/CMakeFiles/thrust.all.example.bounding_box.dir/build + +examples/CMakeFiles/thrust.all.example.bounding_box.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.bounding_box.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.all.example.bounding_box.dir/clean + +examples/CMakeFiles/thrust.all.example.bounding_box.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.bounding_box.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.all.example.bounding_box.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.all.example.bounding_box.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.all.example.bounding_box.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..5627ea30fb53f073f5feb80cd19ab8dab99ef173 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.bounding_box.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.bounding_box.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.all.example.bounding_box.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.all.example.bounding_box.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..56fee1f8eb8ff9731f2636015251b40289bc02f5 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.bounding_box.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.bounding_box. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.all.example.bounding_box.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.all.example.bounding_box.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..afab8de420c8816e7895ee5dfee8b52aab808162 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.bounding_box.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.bounding_box. diff --git a/build/examples/CMakeFiles/thrust.all.example.bounding_box.dir/progress.make b/build/examples/CMakeFiles/thrust.all.example.bounding_box.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.bounding_box.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/CMakeFiles/thrust.all.example.bucket_sort2d.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.all.example.bucket_sort2d.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.bucket_sort2d.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.all.example.bucket_sort2d.dir/build.make b/build/examples/CMakeFiles/thrust.all.example.bucket_sort2d.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..5e1d7f9cada73acc2a38d93cedbfa2a5e2082d55 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.bucket_sort2d.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.bucket_sort2d. + +# Include any custom commands dependencies for this target. +include examples/CMakeFiles/thrust.all.example.bucket_sort2d.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.all.example.bucket_sort2d.dir/progress.make + +thrust.all.example.bucket_sort2d: examples/CMakeFiles/thrust.all.example.bucket_sort2d.dir/build.make +.PHONY : thrust.all.example.bucket_sort2d + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.all.example.bucket_sort2d.dir/build: thrust.all.example.bucket_sort2d +.PHONY : examples/CMakeFiles/thrust.all.example.bucket_sort2d.dir/build + +examples/CMakeFiles/thrust.all.example.bucket_sort2d.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.bucket_sort2d.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.all.example.bucket_sort2d.dir/clean + +examples/CMakeFiles/thrust.all.example.bucket_sort2d.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.bucket_sort2d.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.all.example.bucket_sort2d.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.all.example.bucket_sort2d.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.all.example.bucket_sort2d.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..8e3fab6f50c31c5d2b43c236f5ddd074172e64e7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.bucket_sort2d.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.bucket_sort2d.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.all.example.bucket_sort2d.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.all.example.bucket_sort2d.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..b476471e37f2df0b1e49ac24fed66d3d264dfe09 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.bucket_sort2d.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.bucket_sort2d. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.all.example.bucket_sort2d.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.all.example.bucket_sort2d.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..0793d74ea55d08ca37dad53579421ee30751167c --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.bucket_sort2d.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.bucket_sort2d. diff --git a/build/examples/CMakeFiles/thrust.all.example.bucket_sort2d.dir/progress.make b/build/examples/CMakeFiles/thrust.all.example.bucket_sort2d.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.bucket_sort2d.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/CMakeFiles/thrust.all.example.constant_iterator.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.all.example.constant_iterator.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.constant_iterator.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.all.example.constant_iterator.dir/build.make b/build/examples/CMakeFiles/thrust.all.example.constant_iterator.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..36ce4105852885541051a726cbb92e380017c9c3 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.constant_iterator.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.constant_iterator. + +# Include any custom commands dependencies for this target. +include examples/CMakeFiles/thrust.all.example.constant_iterator.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.all.example.constant_iterator.dir/progress.make + +thrust.all.example.constant_iterator: examples/CMakeFiles/thrust.all.example.constant_iterator.dir/build.make +.PHONY : thrust.all.example.constant_iterator + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.all.example.constant_iterator.dir/build: thrust.all.example.constant_iterator +.PHONY : examples/CMakeFiles/thrust.all.example.constant_iterator.dir/build + +examples/CMakeFiles/thrust.all.example.constant_iterator.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.constant_iterator.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.all.example.constant_iterator.dir/clean + +examples/CMakeFiles/thrust.all.example.constant_iterator.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.constant_iterator.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.all.example.constant_iterator.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.all.example.constant_iterator.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.all.example.constant_iterator.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..bc27f38a39300dacfa61c2c845a381c5820d09d5 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.constant_iterator.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.constant_iterator.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.all.example.constant_iterator.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.all.example.constant_iterator.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..b2d7aa0a0918450820e7d87f304975a4d941d122 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.constant_iterator.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.constant_iterator. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.all.example.constant_iterator.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.all.example.constant_iterator.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..391a85c6659d44618f33593bafea9336bbf3e872 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.constant_iterator.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.constant_iterator. diff --git a/build/examples/CMakeFiles/thrust.all.example.constant_iterator.dir/progress.make b/build/examples/CMakeFiles/thrust.all.example.constant_iterator.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.constant_iterator.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/CMakeFiles/thrust.all.example.counting_iterator.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.all.example.counting_iterator.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.counting_iterator.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.all.example.counting_iterator.dir/build.make b/build/examples/CMakeFiles/thrust.all.example.counting_iterator.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..8f94baf754ff925037de6f8206dc4dfb153bfb6d --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.counting_iterator.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.counting_iterator. + +# Include any custom commands dependencies for this target. +include examples/CMakeFiles/thrust.all.example.counting_iterator.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.all.example.counting_iterator.dir/progress.make + +thrust.all.example.counting_iterator: examples/CMakeFiles/thrust.all.example.counting_iterator.dir/build.make +.PHONY : thrust.all.example.counting_iterator + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.all.example.counting_iterator.dir/build: thrust.all.example.counting_iterator +.PHONY : examples/CMakeFiles/thrust.all.example.counting_iterator.dir/build + +examples/CMakeFiles/thrust.all.example.counting_iterator.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.counting_iterator.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.all.example.counting_iterator.dir/clean + +examples/CMakeFiles/thrust.all.example.counting_iterator.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.counting_iterator.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.all.example.counting_iterator.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.all.example.counting_iterator.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.all.example.counting_iterator.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..e71dd13c01be63dfc28b4c2fd06ec72bdf791fd0 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.counting_iterator.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.counting_iterator.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.all.example.counting_iterator.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.all.example.counting_iterator.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..1b138ca5e143adb0f1d1c7347b743124aa506abc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.counting_iterator.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.counting_iterator. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.all.example.counting_iterator.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.all.example.counting_iterator.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..352b1cf0ead51f8e6a8d4fb9bd51123391564151 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.counting_iterator.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.counting_iterator. diff --git a/build/examples/CMakeFiles/thrust.all.example.counting_iterator.dir/progress.make b/build/examples/CMakeFiles/thrust.all.example.counting_iterator.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.counting_iterator.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/CMakeFiles/thrust.all.example.device_ptr.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.all.example.device_ptr.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.device_ptr.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.all.example.device_ptr.dir/build.make b/build/examples/CMakeFiles/thrust.all.example.device_ptr.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..d962685377b168d33604bfa798949be564e3eef5 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.device_ptr.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.device_ptr. + +# Include any custom commands dependencies for this target. +include examples/CMakeFiles/thrust.all.example.device_ptr.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.all.example.device_ptr.dir/progress.make + +thrust.all.example.device_ptr: examples/CMakeFiles/thrust.all.example.device_ptr.dir/build.make +.PHONY : thrust.all.example.device_ptr + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.all.example.device_ptr.dir/build: thrust.all.example.device_ptr +.PHONY : examples/CMakeFiles/thrust.all.example.device_ptr.dir/build + +examples/CMakeFiles/thrust.all.example.device_ptr.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.device_ptr.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.all.example.device_ptr.dir/clean + +examples/CMakeFiles/thrust.all.example.device_ptr.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.device_ptr.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.all.example.device_ptr.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.all.example.device_ptr.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.all.example.device_ptr.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..f534b655f8742444512efa30f33156b0096c4351 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.device_ptr.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.device_ptr.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.all.example.device_ptr.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.all.example.device_ptr.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..d785e9dd176c0a913bd60cae7350bb2230bd666c --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.device_ptr.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.device_ptr. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.all.example.device_ptr.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.all.example.device_ptr.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..ecff5ef0f9e4702ab50dedda8ab483516d484cfa --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.device_ptr.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.device_ptr. diff --git a/build/examples/CMakeFiles/thrust.all.example.device_ptr.dir/progress.make b/build/examples/CMakeFiles/thrust.all.example.device_ptr.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.device_ptr.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/CMakeFiles/thrust.all.example.discrete_voronoi.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.all.example.discrete_voronoi.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.discrete_voronoi.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.all.example.discrete_voronoi.dir/build.make b/build/examples/CMakeFiles/thrust.all.example.discrete_voronoi.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..d019b5e4c9cdc9b95d14f2e0b5903c5db1ecb880 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.discrete_voronoi.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.discrete_voronoi. + +# Include any custom commands dependencies for this target. +include examples/CMakeFiles/thrust.all.example.discrete_voronoi.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.all.example.discrete_voronoi.dir/progress.make + +thrust.all.example.discrete_voronoi: examples/CMakeFiles/thrust.all.example.discrete_voronoi.dir/build.make +.PHONY : thrust.all.example.discrete_voronoi + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.all.example.discrete_voronoi.dir/build: thrust.all.example.discrete_voronoi +.PHONY : examples/CMakeFiles/thrust.all.example.discrete_voronoi.dir/build + +examples/CMakeFiles/thrust.all.example.discrete_voronoi.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.discrete_voronoi.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.all.example.discrete_voronoi.dir/clean + +examples/CMakeFiles/thrust.all.example.discrete_voronoi.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.discrete_voronoi.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.all.example.discrete_voronoi.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.all.example.discrete_voronoi.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.all.example.discrete_voronoi.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..87bac7e8691f8c38db94fff3a27b4d5808a690a7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.discrete_voronoi.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.discrete_voronoi.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.all.example.discrete_voronoi.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.all.example.discrete_voronoi.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..7b2109f7d8ee9a358e56c9691d0be80ace15f865 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.discrete_voronoi.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.discrete_voronoi. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.all.example.discrete_voronoi.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.all.example.discrete_voronoi.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..7f80bb64df796ede2cec96edb19af815c32db9cf --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.discrete_voronoi.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.discrete_voronoi. diff --git a/build/examples/CMakeFiles/thrust.all.example.discrete_voronoi.dir/progress.make b/build/examples/CMakeFiles/thrust.all.example.discrete_voronoi.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.discrete_voronoi.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/CMakeFiles/thrust.all.example.dot_products_with_zip.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.all.example.dot_products_with_zip.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.dot_products_with_zip.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.all.example.dot_products_with_zip.dir/build.make b/build/examples/CMakeFiles/thrust.all.example.dot_products_with_zip.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..b1299bf3adc0261f66207b5d81356a5d5665b13c --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.dot_products_with_zip.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.dot_products_with_zip. + +# Include any custom commands dependencies for this target. +include examples/CMakeFiles/thrust.all.example.dot_products_with_zip.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.all.example.dot_products_with_zip.dir/progress.make + +thrust.all.example.dot_products_with_zip: examples/CMakeFiles/thrust.all.example.dot_products_with_zip.dir/build.make +.PHONY : thrust.all.example.dot_products_with_zip + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.all.example.dot_products_with_zip.dir/build: thrust.all.example.dot_products_with_zip +.PHONY : examples/CMakeFiles/thrust.all.example.dot_products_with_zip.dir/build + +examples/CMakeFiles/thrust.all.example.dot_products_with_zip.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.dot_products_with_zip.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.all.example.dot_products_with_zip.dir/clean + +examples/CMakeFiles/thrust.all.example.dot_products_with_zip.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.dot_products_with_zip.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.all.example.dot_products_with_zip.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.all.example.dot_products_with_zip.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.all.example.dot_products_with_zip.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..543969056a90f6070f9d80b8d514c64adffe8711 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.dot_products_with_zip.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.dot_products_with_zip.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.all.example.dot_products_with_zip.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.all.example.dot_products_with_zip.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..1d4f93bc9866c27944296dfc38fd1563b8ec0e5e --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.dot_products_with_zip.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.dot_products_with_zip. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.all.example.dot_products_with_zip.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.all.example.dot_products_with_zip.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..93d00a5dbd6265bf197668e0e3a0eeddf65615c6 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.dot_products_with_zip.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.dot_products_with_zip. diff --git a/build/examples/CMakeFiles/thrust.all.example.dot_products_with_zip.dir/progress.make b/build/examples/CMakeFiles/thrust.all.example.dot_products_with_zip.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.dot_products_with_zip.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/CMakeFiles/thrust.all.example.expand.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.all.example.expand.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.expand.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.all.example.expand.dir/build.make b/build/examples/CMakeFiles/thrust.all.example.expand.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..895d07fbf7df2d34394516f7830a17270d2ed479 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.expand.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.expand. + +# Include any custom commands dependencies for this target. +include examples/CMakeFiles/thrust.all.example.expand.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.all.example.expand.dir/progress.make + +thrust.all.example.expand: examples/CMakeFiles/thrust.all.example.expand.dir/build.make +.PHONY : thrust.all.example.expand + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.all.example.expand.dir/build: thrust.all.example.expand +.PHONY : examples/CMakeFiles/thrust.all.example.expand.dir/build + +examples/CMakeFiles/thrust.all.example.expand.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.expand.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.all.example.expand.dir/clean + +examples/CMakeFiles/thrust.all.example.expand.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.expand.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.all.example.expand.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.all.example.expand.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.all.example.expand.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..2ab8e86b8bdb92271dddd7c9f81165091c91def8 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.expand.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.expand.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.all.example.expand.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.all.example.expand.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..7d76a15b6ae40c3cbe5372d36804709c36eb092b --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.expand.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.expand. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.all.example.expand.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.all.example.expand.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..f75794c8d8341c3bb4539846233a6fb08f704ea4 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.expand.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.expand. diff --git a/build/examples/CMakeFiles/thrust.all.example.expand.dir/progress.make b/build/examples/CMakeFiles/thrust.all.example.expand.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.expand.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/CMakeFiles/thrust.all.example.fill_copy_sequence.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.all.example.fill_copy_sequence.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.fill_copy_sequence.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.all.example.fill_copy_sequence.dir/build.make b/build/examples/CMakeFiles/thrust.all.example.fill_copy_sequence.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..e6e4ff68e8f86bf99cd19a3805f6803707719a20 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.fill_copy_sequence.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.fill_copy_sequence. + +# Include any custom commands dependencies for this target. +include examples/CMakeFiles/thrust.all.example.fill_copy_sequence.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.all.example.fill_copy_sequence.dir/progress.make + +thrust.all.example.fill_copy_sequence: examples/CMakeFiles/thrust.all.example.fill_copy_sequence.dir/build.make +.PHONY : thrust.all.example.fill_copy_sequence + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.all.example.fill_copy_sequence.dir/build: thrust.all.example.fill_copy_sequence +.PHONY : examples/CMakeFiles/thrust.all.example.fill_copy_sequence.dir/build + +examples/CMakeFiles/thrust.all.example.fill_copy_sequence.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.fill_copy_sequence.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.all.example.fill_copy_sequence.dir/clean + +examples/CMakeFiles/thrust.all.example.fill_copy_sequence.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.fill_copy_sequence.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.all.example.fill_copy_sequence.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.all.example.fill_copy_sequence.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.all.example.fill_copy_sequence.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..aae2e6ceb0764bd86912981144f84f21ebb27ce7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.fill_copy_sequence.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.fill_copy_sequence.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.all.example.fill_copy_sequence.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.all.example.fill_copy_sequence.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..079cb00d586fb3fe5348e199d3bad3e783e2e362 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.fill_copy_sequence.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.fill_copy_sequence. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.all.example.fill_copy_sequence.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.all.example.fill_copy_sequence.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..6b6a691bd620f2b945208c0081f5ecf572b2001a --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.fill_copy_sequence.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.fill_copy_sequence. diff --git a/build/examples/CMakeFiles/thrust.all.example.fill_copy_sequence.dir/progress.make b/build/examples/CMakeFiles/thrust.all.example.fill_copy_sequence.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.fill_copy_sequence.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/CMakeFiles/thrust.all.example.histogram.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.all.example.histogram.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.histogram.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.all.example.histogram.dir/build.make b/build/examples/CMakeFiles/thrust.all.example.histogram.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..d03f4edaf8b51eea42b4b3e3e48e8bf8473d25d2 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.histogram.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.histogram. + +# Include any custom commands dependencies for this target. +include examples/CMakeFiles/thrust.all.example.histogram.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.all.example.histogram.dir/progress.make + +thrust.all.example.histogram: examples/CMakeFiles/thrust.all.example.histogram.dir/build.make +.PHONY : thrust.all.example.histogram + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.all.example.histogram.dir/build: thrust.all.example.histogram +.PHONY : examples/CMakeFiles/thrust.all.example.histogram.dir/build + +examples/CMakeFiles/thrust.all.example.histogram.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.histogram.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.all.example.histogram.dir/clean + +examples/CMakeFiles/thrust.all.example.histogram.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.histogram.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.all.example.histogram.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.all.example.histogram.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.all.example.histogram.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..fee5d5e77e6f71e98b99c4e5c13d933ac41dd01e --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.histogram.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.histogram.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.all.example.histogram.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.all.example.histogram.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..9d1db174f4e34ec0c86ff7002a104aa658fc02c9 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.histogram.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.histogram. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.all.example.histogram.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.all.example.histogram.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..93529db35c25c01a7be2bcef7bbb410002ed4931 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.histogram.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.histogram. diff --git a/build/examples/CMakeFiles/thrust.all.example.histogram.dir/progress.make b/build/examples/CMakeFiles/thrust.all.example.histogram.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.histogram.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/CMakeFiles/thrust.all.example.lambda.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.all.example.lambda.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.lambda.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.all.example.lambda.dir/build.make b/build/examples/CMakeFiles/thrust.all.example.lambda.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..376cd3cb8b3fd748d4ce13bf4495e128a28a77b2 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.lambda.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.lambda. + +# Include any custom commands dependencies for this target. +include examples/CMakeFiles/thrust.all.example.lambda.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.all.example.lambda.dir/progress.make + +thrust.all.example.lambda: examples/CMakeFiles/thrust.all.example.lambda.dir/build.make +.PHONY : thrust.all.example.lambda + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.all.example.lambda.dir/build: thrust.all.example.lambda +.PHONY : examples/CMakeFiles/thrust.all.example.lambda.dir/build + +examples/CMakeFiles/thrust.all.example.lambda.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.lambda.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.all.example.lambda.dir/clean + +examples/CMakeFiles/thrust.all.example.lambda.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.lambda.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.all.example.lambda.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.all.example.lambda.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.all.example.lambda.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..51b8e630f942e2cd53908da9efa3135dac11a7fe --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.lambda.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.lambda.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.all.example.lambda.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.all.example.lambda.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..93ae19f4663b18f0519f3f7bea807db8785bd73d --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.lambda.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.lambda. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.all.example.lambda.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.all.example.lambda.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..513f0a646486e0cd6fc10362811460ddd9a74c13 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.lambda.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.lambda. diff --git a/build/examples/CMakeFiles/thrust.all.example.lambda.dir/progress.make b/build/examples/CMakeFiles/thrust.all.example.lambda.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.lambda.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/CMakeFiles/thrust.all.example.lexicographical_sort.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.all.example.lexicographical_sort.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.lexicographical_sort.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.all.example.lexicographical_sort.dir/build.make b/build/examples/CMakeFiles/thrust.all.example.lexicographical_sort.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..c1bef078763722bba5cfb3699ad59f6409f0e4a5 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.lexicographical_sort.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.lexicographical_sort. + +# Include any custom commands dependencies for this target. +include examples/CMakeFiles/thrust.all.example.lexicographical_sort.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.all.example.lexicographical_sort.dir/progress.make + +thrust.all.example.lexicographical_sort: examples/CMakeFiles/thrust.all.example.lexicographical_sort.dir/build.make +.PHONY : thrust.all.example.lexicographical_sort + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.all.example.lexicographical_sort.dir/build: thrust.all.example.lexicographical_sort +.PHONY : examples/CMakeFiles/thrust.all.example.lexicographical_sort.dir/build + +examples/CMakeFiles/thrust.all.example.lexicographical_sort.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.lexicographical_sort.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.all.example.lexicographical_sort.dir/clean + +examples/CMakeFiles/thrust.all.example.lexicographical_sort.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.lexicographical_sort.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.all.example.lexicographical_sort.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.all.example.lexicographical_sort.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.all.example.lexicographical_sort.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..c5249d7c640cfe2619b63fd5c3262dcf08c52680 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.lexicographical_sort.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.lexicographical_sort.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.all.example.lexicographical_sort.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.all.example.lexicographical_sort.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..4b93771adf6cfdb2a5c911cb538c1f199542cf5f --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.lexicographical_sort.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.lexicographical_sort. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.all.example.lexicographical_sort.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.all.example.lexicographical_sort.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..d57908a49d2a7f5574507ad6f3213246b15b93bf --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.lexicographical_sort.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.lexicographical_sort. diff --git a/build/examples/CMakeFiles/thrust.all.example.lexicographical_sort.dir/progress.make b/build/examples/CMakeFiles/thrust.all.example.lexicographical_sort.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.lexicographical_sort.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/CMakeFiles/thrust.all.example.max_abs_diff.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.all.example.max_abs_diff.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.max_abs_diff.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.all.example.max_abs_diff.dir/build.make b/build/examples/CMakeFiles/thrust.all.example.max_abs_diff.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..ea0f719f8211e22998e5ba6a1dee3ed4ca7005d9 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.max_abs_diff.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.max_abs_diff. + +# Include any custom commands dependencies for this target. +include examples/CMakeFiles/thrust.all.example.max_abs_diff.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.all.example.max_abs_diff.dir/progress.make + +thrust.all.example.max_abs_diff: examples/CMakeFiles/thrust.all.example.max_abs_diff.dir/build.make +.PHONY : thrust.all.example.max_abs_diff + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.all.example.max_abs_diff.dir/build: thrust.all.example.max_abs_diff +.PHONY : examples/CMakeFiles/thrust.all.example.max_abs_diff.dir/build + +examples/CMakeFiles/thrust.all.example.max_abs_diff.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.max_abs_diff.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.all.example.max_abs_diff.dir/clean + +examples/CMakeFiles/thrust.all.example.max_abs_diff.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.max_abs_diff.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.all.example.max_abs_diff.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.all.example.max_abs_diff.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.all.example.max_abs_diff.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..7ee635b11ca41667b66c152e920bc185d3f1f2f6 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.max_abs_diff.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.max_abs_diff.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.all.example.max_abs_diff.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.all.example.max_abs_diff.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..85b7f4a8ce05a64d7327b15c13f24c4daec4edf9 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.max_abs_diff.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.max_abs_diff. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.all.example.max_abs_diff.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.all.example.max_abs_diff.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..b98c5ca9f49de301cf781a636e326d2c71fb5da8 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.max_abs_diff.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.max_abs_diff. diff --git a/build/examples/CMakeFiles/thrust.all.example.max_abs_diff.dir/progress.make b/build/examples/CMakeFiles/thrust.all.example.max_abs_diff.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.max_abs_diff.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/CMakeFiles/thrust.all.example.minimal_custom_backend.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.all.example.minimal_custom_backend.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.minimal_custom_backend.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.all.example.minimal_custom_backend.dir/build.make b/build/examples/CMakeFiles/thrust.all.example.minimal_custom_backend.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..12cb8200870c6369d2525e5336cfbae9f12b3835 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.minimal_custom_backend.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.minimal_custom_backend. + +# Include any custom commands dependencies for this target. +include examples/CMakeFiles/thrust.all.example.minimal_custom_backend.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.all.example.minimal_custom_backend.dir/progress.make + +thrust.all.example.minimal_custom_backend: examples/CMakeFiles/thrust.all.example.minimal_custom_backend.dir/build.make +.PHONY : thrust.all.example.minimal_custom_backend + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.all.example.minimal_custom_backend.dir/build: thrust.all.example.minimal_custom_backend +.PHONY : examples/CMakeFiles/thrust.all.example.minimal_custom_backend.dir/build + +examples/CMakeFiles/thrust.all.example.minimal_custom_backend.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.minimal_custom_backend.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.all.example.minimal_custom_backend.dir/clean + +examples/CMakeFiles/thrust.all.example.minimal_custom_backend.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.minimal_custom_backend.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.all.example.minimal_custom_backend.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.all.example.minimal_custom_backend.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.all.example.minimal_custom_backend.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..1e19d7a8a666d497c6ee239bcc77a0554770071e --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.minimal_custom_backend.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.minimal_custom_backend.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.all.example.minimal_custom_backend.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.all.example.minimal_custom_backend.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..3805ca51615ffb205bc649a1603de94be78969be --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.minimal_custom_backend.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.minimal_custom_backend. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.all.example.minimal_custom_backend.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.all.example.minimal_custom_backend.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..374a263630f5a4d598806a361ad7294530d54496 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.minimal_custom_backend.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.minimal_custom_backend. diff --git a/build/examples/CMakeFiles/thrust.all.example.minimal_custom_backend.dir/progress.make b/build/examples/CMakeFiles/thrust.all.example.minimal_custom_backend.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.minimal_custom_backend.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/CMakeFiles/thrust.all.example.minmax.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.all.example.minmax.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.minmax.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.all.example.minmax.dir/build.make b/build/examples/CMakeFiles/thrust.all.example.minmax.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..d0b3b54665efc3d3a41039f1f5857e062b333527 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.minmax.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.minmax. + +# Include any custom commands dependencies for this target. +include examples/CMakeFiles/thrust.all.example.minmax.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.all.example.minmax.dir/progress.make + +thrust.all.example.minmax: examples/CMakeFiles/thrust.all.example.minmax.dir/build.make +.PHONY : thrust.all.example.minmax + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.all.example.minmax.dir/build: thrust.all.example.minmax +.PHONY : examples/CMakeFiles/thrust.all.example.minmax.dir/build + +examples/CMakeFiles/thrust.all.example.minmax.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.minmax.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.all.example.minmax.dir/clean + +examples/CMakeFiles/thrust.all.example.minmax.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.minmax.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.all.example.minmax.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.all.example.minmax.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.all.example.minmax.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..f14476c28c7760c0635912da890e5f4366b90ba2 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.minmax.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.minmax.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.all.example.minmax.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.all.example.minmax.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..af8b71d3ae244598ee0fd3c327275c6943b3b2c7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.minmax.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.minmax. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.all.example.minmax.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.all.example.minmax.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..0d79c3e41ba5b67b38d11dc1e3b14594f7a20bf5 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.minmax.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.minmax. diff --git a/build/examples/CMakeFiles/thrust.all.example.minmax.dir/progress.make b/build/examples/CMakeFiles/thrust.all.example.minmax.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.minmax.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/CMakeFiles/thrust.all.example.mode.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.all.example.mode.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.mode.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.all.example.mode.dir/build.make b/build/examples/CMakeFiles/thrust.all.example.mode.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..450edb333fb5b54881d41c9fa07326a14775927a --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.mode.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.mode. + +# Include any custom commands dependencies for this target. +include examples/CMakeFiles/thrust.all.example.mode.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.all.example.mode.dir/progress.make + +thrust.all.example.mode: examples/CMakeFiles/thrust.all.example.mode.dir/build.make +.PHONY : thrust.all.example.mode + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.all.example.mode.dir/build: thrust.all.example.mode +.PHONY : examples/CMakeFiles/thrust.all.example.mode.dir/build + +examples/CMakeFiles/thrust.all.example.mode.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.mode.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.all.example.mode.dir/clean + +examples/CMakeFiles/thrust.all.example.mode.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.mode.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.all.example.mode.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.all.example.mode.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.all.example.mode.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..bf21e5a1fe135b2210efd05889f446c6adc6f5b6 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.mode.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.mode.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.all.example.mode.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.all.example.mode.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..cdc4c776467c42ee2cca15da26e826893779c2e6 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.mode.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.mode. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.all.example.mode.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.all.example.mode.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..78a663aec28439c0cb303f310f85eb150467b248 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.mode.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.mode. diff --git a/build/examples/CMakeFiles/thrust.all.example.mode.dir/progress.make b/build/examples/CMakeFiles/thrust.all.example.mode.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.mode.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/CMakeFiles/thrust.all.example.monte_carlo.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.all.example.monte_carlo.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.monte_carlo.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.all.example.monte_carlo.dir/build.make b/build/examples/CMakeFiles/thrust.all.example.monte_carlo.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..2507ddb4072127197635893d6b1415cd9b2830ba --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.monte_carlo.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.monte_carlo. + +# Include any custom commands dependencies for this target. +include examples/CMakeFiles/thrust.all.example.monte_carlo.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.all.example.monte_carlo.dir/progress.make + +thrust.all.example.monte_carlo: examples/CMakeFiles/thrust.all.example.monte_carlo.dir/build.make +.PHONY : thrust.all.example.monte_carlo + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.all.example.monte_carlo.dir/build: thrust.all.example.monte_carlo +.PHONY : examples/CMakeFiles/thrust.all.example.monte_carlo.dir/build + +examples/CMakeFiles/thrust.all.example.monte_carlo.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.monte_carlo.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.all.example.monte_carlo.dir/clean + +examples/CMakeFiles/thrust.all.example.monte_carlo.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.monte_carlo.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.all.example.monte_carlo.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.all.example.monte_carlo.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.all.example.monte_carlo.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..1420a30fe79e8142b898e858d448ff9039c24c1f --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.monte_carlo.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.monte_carlo.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.all.example.monte_carlo.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.all.example.monte_carlo.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..34d4c30b8178bbf071c66422e68a477b63b75183 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.monte_carlo.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.monte_carlo. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.all.example.monte_carlo.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.all.example.monte_carlo.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..0daa759d640849b097f46d76936ed60bd5cdf3a2 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.monte_carlo.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.monte_carlo. diff --git a/build/examples/CMakeFiles/thrust.all.example.monte_carlo.dir/progress.make b/build/examples/CMakeFiles/thrust.all.example.monte_carlo.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.monte_carlo.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/CMakeFiles/thrust.all.example.monte_carlo_disjoint_sequences.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.all.example.monte_carlo_disjoint_sequences.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.monte_carlo_disjoint_sequences.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.all.example.monte_carlo_disjoint_sequences.dir/build.make b/build/examples/CMakeFiles/thrust.all.example.monte_carlo_disjoint_sequences.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..beb098124bbb608bc51be2ba32113d5fdbd5aad4 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.monte_carlo_disjoint_sequences.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.monte_carlo_disjoint_sequences. + +# Include any custom commands dependencies for this target. +include examples/CMakeFiles/thrust.all.example.monte_carlo_disjoint_sequences.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.all.example.monte_carlo_disjoint_sequences.dir/progress.make + +thrust.all.example.monte_carlo_disjoint_sequences: examples/CMakeFiles/thrust.all.example.monte_carlo_disjoint_sequences.dir/build.make +.PHONY : thrust.all.example.monte_carlo_disjoint_sequences + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.all.example.monte_carlo_disjoint_sequences.dir/build: thrust.all.example.monte_carlo_disjoint_sequences +.PHONY : examples/CMakeFiles/thrust.all.example.monte_carlo_disjoint_sequences.dir/build + +examples/CMakeFiles/thrust.all.example.monte_carlo_disjoint_sequences.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.monte_carlo_disjoint_sequences.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.all.example.monte_carlo_disjoint_sequences.dir/clean + +examples/CMakeFiles/thrust.all.example.monte_carlo_disjoint_sequences.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.monte_carlo_disjoint_sequences.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.all.example.monte_carlo_disjoint_sequences.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.all.example.monte_carlo_disjoint_sequences.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.all.example.monte_carlo_disjoint_sequences.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..52669b15afc4ff2abda06718cbb165169b494539 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.monte_carlo_disjoint_sequences.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.monte_carlo_disjoint_sequences.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.all.example.monte_carlo_disjoint_sequences.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.all.example.monte_carlo_disjoint_sequences.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..3d8fd18a656152edfb9b75558abffd3c5a39811d --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.monte_carlo_disjoint_sequences.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.monte_carlo_disjoint_sequences. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.all.example.monte_carlo_disjoint_sequences.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.all.example.monte_carlo_disjoint_sequences.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..52ba160cc5305a88e2c6bfc4494a7aa73a409626 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.monte_carlo_disjoint_sequences.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.monte_carlo_disjoint_sequences. diff --git a/build/examples/CMakeFiles/thrust.all.example.monte_carlo_disjoint_sequences.dir/progress.make b/build/examples/CMakeFiles/thrust.all.example.monte_carlo_disjoint_sequences.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.monte_carlo_disjoint_sequences.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/CMakeFiles/thrust.all.example.mr_basic.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.all.example.mr_basic.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.mr_basic.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.all.example.mr_basic.dir/build.make b/build/examples/CMakeFiles/thrust.all.example.mr_basic.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..3d0febf3269548362ec23b0cc0f1b7573abbfc70 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.mr_basic.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.mr_basic. + +# Include any custom commands dependencies for this target. +include examples/CMakeFiles/thrust.all.example.mr_basic.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.all.example.mr_basic.dir/progress.make + +thrust.all.example.mr_basic: examples/CMakeFiles/thrust.all.example.mr_basic.dir/build.make +.PHONY : thrust.all.example.mr_basic + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.all.example.mr_basic.dir/build: thrust.all.example.mr_basic +.PHONY : examples/CMakeFiles/thrust.all.example.mr_basic.dir/build + +examples/CMakeFiles/thrust.all.example.mr_basic.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.mr_basic.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.all.example.mr_basic.dir/clean + +examples/CMakeFiles/thrust.all.example.mr_basic.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.mr_basic.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.all.example.mr_basic.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.all.example.mr_basic.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.all.example.mr_basic.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..18ddcf6b2271f1ed614e471f8c3fbbb6a2d98e9b --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.mr_basic.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.mr_basic.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.all.example.mr_basic.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.all.example.mr_basic.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..996191edfe29a86088c33e1882c6a428a304b28e --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.mr_basic.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.mr_basic. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.all.example.mr_basic.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.all.example.mr_basic.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..70961fa2af9c7429de4ed88cc5c5c14a191e3191 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.mr_basic.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.mr_basic. diff --git a/build/examples/CMakeFiles/thrust.all.example.mr_basic.dir/progress.make b/build/examples/CMakeFiles/thrust.all.example.mr_basic.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.mr_basic.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/CMakeFiles/thrust.all.example.norm.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.all.example.norm.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.norm.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.all.example.norm.dir/build.make b/build/examples/CMakeFiles/thrust.all.example.norm.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..5463803844207c4a3b08eae8cb1c758d4e64de93 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.norm.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.norm. + +# Include any custom commands dependencies for this target. +include examples/CMakeFiles/thrust.all.example.norm.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.all.example.norm.dir/progress.make + +thrust.all.example.norm: examples/CMakeFiles/thrust.all.example.norm.dir/build.make +.PHONY : thrust.all.example.norm + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.all.example.norm.dir/build: thrust.all.example.norm +.PHONY : examples/CMakeFiles/thrust.all.example.norm.dir/build + +examples/CMakeFiles/thrust.all.example.norm.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.norm.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.all.example.norm.dir/clean + +examples/CMakeFiles/thrust.all.example.norm.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.norm.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.all.example.norm.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.all.example.norm.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.all.example.norm.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..552b9594c403fec7a39d0cda6035d43fe31bbfdf --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.norm.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.norm.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.all.example.norm.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.all.example.norm.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..165c60187f5d1c06e14e063f32c12ec4abfa562d --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.norm.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.norm. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.all.example.norm.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.all.example.norm.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..8efed79b1290721dcb48d78ead44224dcbc51b03 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.norm.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.norm. diff --git a/build/examples/CMakeFiles/thrust.all.example.norm.dir/progress.make b/build/examples/CMakeFiles/thrust.all.example.norm.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.norm.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/CMakeFiles/thrust.all.example.padded_grid_reduction.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.all.example.padded_grid_reduction.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.padded_grid_reduction.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.all.example.padded_grid_reduction.dir/build.make b/build/examples/CMakeFiles/thrust.all.example.padded_grid_reduction.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..19ee7972f26233eac446ff12fa6ed239869f1a9e --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.padded_grid_reduction.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.padded_grid_reduction. + +# Include any custom commands dependencies for this target. +include examples/CMakeFiles/thrust.all.example.padded_grid_reduction.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.all.example.padded_grid_reduction.dir/progress.make + +thrust.all.example.padded_grid_reduction: examples/CMakeFiles/thrust.all.example.padded_grid_reduction.dir/build.make +.PHONY : thrust.all.example.padded_grid_reduction + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.all.example.padded_grid_reduction.dir/build: thrust.all.example.padded_grid_reduction +.PHONY : examples/CMakeFiles/thrust.all.example.padded_grid_reduction.dir/build + +examples/CMakeFiles/thrust.all.example.padded_grid_reduction.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.padded_grid_reduction.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.all.example.padded_grid_reduction.dir/clean + +examples/CMakeFiles/thrust.all.example.padded_grid_reduction.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.padded_grid_reduction.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.all.example.padded_grid_reduction.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.all.example.padded_grid_reduction.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.all.example.padded_grid_reduction.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..22c390a3ebc0d1c69a150e6baab8e13f710636eb --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.padded_grid_reduction.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.padded_grid_reduction.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.all.example.padded_grid_reduction.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.all.example.padded_grid_reduction.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..53f7c8137ed7397ff6b3aebd5ff0fcc5903900b5 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.padded_grid_reduction.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.padded_grid_reduction. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.all.example.padded_grid_reduction.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.all.example.padded_grid_reduction.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..be42fb312a1f8c9b15656cbd4f59702e562d4260 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.padded_grid_reduction.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.padded_grid_reduction. diff --git a/build/examples/CMakeFiles/thrust.all.example.padded_grid_reduction.dir/progress.make b/build/examples/CMakeFiles/thrust.all.example.padded_grid_reduction.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.padded_grid_reduction.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/CMakeFiles/thrust.all.example.permutation_iterator.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.all.example.permutation_iterator.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.permutation_iterator.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.all.example.permutation_iterator.dir/build.make b/build/examples/CMakeFiles/thrust.all.example.permutation_iterator.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..5e6aa895d5a4e1a9a81412f3975d8015e97f3bcd --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.permutation_iterator.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.permutation_iterator. + +# Include any custom commands dependencies for this target. +include examples/CMakeFiles/thrust.all.example.permutation_iterator.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.all.example.permutation_iterator.dir/progress.make + +thrust.all.example.permutation_iterator: examples/CMakeFiles/thrust.all.example.permutation_iterator.dir/build.make +.PHONY : thrust.all.example.permutation_iterator + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.all.example.permutation_iterator.dir/build: thrust.all.example.permutation_iterator +.PHONY : examples/CMakeFiles/thrust.all.example.permutation_iterator.dir/build + +examples/CMakeFiles/thrust.all.example.permutation_iterator.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.permutation_iterator.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.all.example.permutation_iterator.dir/clean + +examples/CMakeFiles/thrust.all.example.permutation_iterator.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.permutation_iterator.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.all.example.permutation_iterator.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.all.example.permutation_iterator.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.all.example.permutation_iterator.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..2468934f6d877afb2eec97bd9660c423d9728d59 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.permutation_iterator.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.permutation_iterator.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.all.example.permutation_iterator.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.all.example.permutation_iterator.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..1226130ff8b46b88b25259dac13cd186e8c881bc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.permutation_iterator.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.permutation_iterator. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.all.example.permutation_iterator.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.all.example.permutation_iterator.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..678e9a7483dea37fcf36a62effd4790f1d1c4478 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.permutation_iterator.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.permutation_iterator. diff --git a/build/examples/CMakeFiles/thrust.all.example.permutation_iterator.dir/progress.make b/build/examples/CMakeFiles/thrust.all.example.permutation_iterator.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.permutation_iterator.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/CMakeFiles/thrust.all.example.raw_reference_cast.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.all.example.raw_reference_cast.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.raw_reference_cast.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.all.example.raw_reference_cast.dir/build.make b/build/examples/CMakeFiles/thrust.all.example.raw_reference_cast.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..47ee4eed97f43b9aa9caaf483c8b05adabf90a67 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.raw_reference_cast.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.raw_reference_cast. + +# Include any custom commands dependencies for this target. +include examples/CMakeFiles/thrust.all.example.raw_reference_cast.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.all.example.raw_reference_cast.dir/progress.make + +thrust.all.example.raw_reference_cast: examples/CMakeFiles/thrust.all.example.raw_reference_cast.dir/build.make +.PHONY : thrust.all.example.raw_reference_cast + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.all.example.raw_reference_cast.dir/build: thrust.all.example.raw_reference_cast +.PHONY : examples/CMakeFiles/thrust.all.example.raw_reference_cast.dir/build + +examples/CMakeFiles/thrust.all.example.raw_reference_cast.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.raw_reference_cast.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.all.example.raw_reference_cast.dir/clean + +examples/CMakeFiles/thrust.all.example.raw_reference_cast.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.raw_reference_cast.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.all.example.raw_reference_cast.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.all.example.raw_reference_cast.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.all.example.raw_reference_cast.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..abc2e1c9b84b98b6c8f33c03155db5827daa744d --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.raw_reference_cast.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.raw_reference_cast.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.all.example.raw_reference_cast.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.all.example.raw_reference_cast.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..33be4697a09034f4b91fa4e3ceae92bdc0215290 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.raw_reference_cast.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.raw_reference_cast. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.all.example.raw_reference_cast.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.all.example.raw_reference_cast.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..74f8a6ea87d60ceb540b362075e18b695e0aaa0e --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.raw_reference_cast.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.raw_reference_cast. diff --git a/build/examples/CMakeFiles/thrust.all.example.raw_reference_cast.dir/progress.make b/build/examples/CMakeFiles/thrust.all.example.raw_reference_cast.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.raw_reference_cast.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/CMakeFiles/thrust.all.example.remove_points2d.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.all.example.remove_points2d.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.remove_points2d.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.all.example.remove_points2d.dir/build.make b/build/examples/CMakeFiles/thrust.all.example.remove_points2d.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..f9ad50077b3bd7b425cb7c54537094a12746cbbc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.remove_points2d.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.remove_points2d. + +# Include any custom commands dependencies for this target. +include examples/CMakeFiles/thrust.all.example.remove_points2d.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.all.example.remove_points2d.dir/progress.make + +thrust.all.example.remove_points2d: examples/CMakeFiles/thrust.all.example.remove_points2d.dir/build.make +.PHONY : thrust.all.example.remove_points2d + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.all.example.remove_points2d.dir/build: thrust.all.example.remove_points2d +.PHONY : examples/CMakeFiles/thrust.all.example.remove_points2d.dir/build + +examples/CMakeFiles/thrust.all.example.remove_points2d.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.remove_points2d.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.all.example.remove_points2d.dir/clean + +examples/CMakeFiles/thrust.all.example.remove_points2d.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.remove_points2d.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.all.example.remove_points2d.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.all.example.remove_points2d.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.all.example.remove_points2d.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..6ed5d0da98e3d3da14ffdfffac674f6e9db3890d --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.remove_points2d.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.remove_points2d.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.all.example.remove_points2d.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.all.example.remove_points2d.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..beb88aed788f6d5310ce7d1f898ba9f0854a4da2 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.remove_points2d.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.remove_points2d. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.all.example.remove_points2d.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.all.example.remove_points2d.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..95745e32b928a25284bcb532e4e81a766c3195e5 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.remove_points2d.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.remove_points2d. diff --git a/build/examples/CMakeFiles/thrust.all.example.remove_points2d.dir/progress.make b/build/examples/CMakeFiles/thrust.all.example.remove_points2d.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.remove_points2d.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/CMakeFiles/thrust.all.example.repeated_range.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.all.example.repeated_range.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.repeated_range.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.all.example.repeated_range.dir/build.make b/build/examples/CMakeFiles/thrust.all.example.repeated_range.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..11c865873ad3199405c34445e7c89619a7634374 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.repeated_range.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.repeated_range. + +# Include any custom commands dependencies for this target. +include examples/CMakeFiles/thrust.all.example.repeated_range.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.all.example.repeated_range.dir/progress.make + +thrust.all.example.repeated_range: examples/CMakeFiles/thrust.all.example.repeated_range.dir/build.make +.PHONY : thrust.all.example.repeated_range + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.all.example.repeated_range.dir/build: thrust.all.example.repeated_range +.PHONY : examples/CMakeFiles/thrust.all.example.repeated_range.dir/build + +examples/CMakeFiles/thrust.all.example.repeated_range.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.repeated_range.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.all.example.repeated_range.dir/clean + +examples/CMakeFiles/thrust.all.example.repeated_range.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.repeated_range.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.all.example.repeated_range.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.all.example.repeated_range.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.all.example.repeated_range.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..68a639ccb8d43de5e73575a4f8cd0c602b9cb834 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.repeated_range.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.repeated_range.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.all.example.repeated_range.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.all.example.repeated_range.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..3e8676cd3b80db98b3ce102eff677178d9a51cd2 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.repeated_range.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.repeated_range. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.all.example.repeated_range.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.all.example.repeated_range.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..e41b83906fe88d8c59791c47c038e10b51eb7987 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.repeated_range.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.repeated_range. diff --git a/build/examples/CMakeFiles/thrust.all.example.repeated_range.dir/progress.make b/build/examples/CMakeFiles/thrust.all.example.repeated_range.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.repeated_range.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/CMakeFiles/thrust.all.example.run_length_decoding.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.all.example.run_length_decoding.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.run_length_decoding.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.all.example.run_length_decoding.dir/build.make b/build/examples/CMakeFiles/thrust.all.example.run_length_decoding.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..41cf1ecca919272876b8d8fc0381ec3b9ea02e2d --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.run_length_decoding.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.run_length_decoding. + +# Include any custom commands dependencies for this target. +include examples/CMakeFiles/thrust.all.example.run_length_decoding.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.all.example.run_length_decoding.dir/progress.make + +thrust.all.example.run_length_decoding: examples/CMakeFiles/thrust.all.example.run_length_decoding.dir/build.make +.PHONY : thrust.all.example.run_length_decoding + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.all.example.run_length_decoding.dir/build: thrust.all.example.run_length_decoding +.PHONY : examples/CMakeFiles/thrust.all.example.run_length_decoding.dir/build + +examples/CMakeFiles/thrust.all.example.run_length_decoding.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.run_length_decoding.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.all.example.run_length_decoding.dir/clean + +examples/CMakeFiles/thrust.all.example.run_length_decoding.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.run_length_decoding.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.all.example.run_length_decoding.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.all.example.run_length_decoding.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.all.example.run_length_decoding.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..f9ad13757225f5ce9ab07d6f1a5551abe2d825aa --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.run_length_decoding.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.run_length_decoding.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.all.example.run_length_decoding.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.all.example.run_length_decoding.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..91ebf320263cf8556e0410406aba4e965feb55ad --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.run_length_decoding.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.run_length_decoding. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.all.example.run_length_decoding.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.all.example.run_length_decoding.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..621398b8b6b691887d93733bee0be3fdbecd9455 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.run_length_decoding.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.run_length_decoding. diff --git a/build/examples/CMakeFiles/thrust.all.example.run_length_decoding.dir/progress.make b/build/examples/CMakeFiles/thrust.all.example.run_length_decoding.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.run_length_decoding.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/CMakeFiles/thrust.all.example.run_length_encoding.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.all.example.run_length_encoding.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.run_length_encoding.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.all.example.run_length_encoding.dir/build.make b/build/examples/CMakeFiles/thrust.all.example.run_length_encoding.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..2eaf3711e3f43b2443b87dc4ede961772a2584a0 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.run_length_encoding.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.run_length_encoding. + +# Include any custom commands dependencies for this target. +include examples/CMakeFiles/thrust.all.example.run_length_encoding.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.all.example.run_length_encoding.dir/progress.make + +thrust.all.example.run_length_encoding: examples/CMakeFiles/thrust.all.example.run_length_encoding.dir/build.make +.PHONY : thrust.all.example.run_length_encoding + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.all.example.run_length_encoding.dir/build: thrust.all.example.run_length_encoding +.PHONY : examples/CMakeFiles/thrust.all.example.run_length_encoding.dir/build + +examples/CMakeFiles/thrust.all.example.run_length_encoding.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.run_length_encoding.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.all.example.run_length_encoding.dir/clean + +examples/CMakeFiles/thrust.all.example.run_length_encoding.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.run_length_encoding.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.all.example.run_length_encoding.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.all.example.run_length_encoding.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.all.example.run_length_encoding.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..a63d7953bf3a220ef9cecf5b9a17bde8347d4eab --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.run_length_encoding.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.run_length_encoding.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.all.example.run_length_encoding.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.all.example.run_length_encoding.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..f15e64d024625bb73779fc83ca4faf5f3c57373e --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.run_length_encoding.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.run_length_encoding. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.all.example.run_length_encoding.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.all.example.run_length_encoding.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..13b9243c6fe142722a539df4838e3f9e0606e8be --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.run_length_encoding.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.run_length_encoding. diff --git a/build/examples/CMakeFiles/thrust.all.example.run_length_encoding.dir/progress.make b/build/examples/CMakeFiles/thrust.all.example.run_length_encoding.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.run_length_encoding.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/CMakeFiles/thrust.all.example.saxpy.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.all.example.saxpy.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.saxpy.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.all.example.saxpy.dir/build.make b/build/examples/CMakeFiles/thrust.all.example.saxpy.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..944935c2baee88287da57da7d2b90c654fda6191 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.saxpy.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.saxpy. + +# Include any custom commands dependencies for this target. +include examples/CMakeFiles/thrust.all.example.saxpy.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.all.example.saxpy.dir/progress.make + +thrust.all.example.saxpy: examples/CMakeFiles/thrust.all.example.saxpy.dir/build.make +.PHONY : thrust.all.example.saxpy + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.all.example.saxpy.dir/build: thrust.all.example.saxpy +.PHONY : examples/CMakeFiles/thrust.all.example.saxpy.dir/build + +examples/CMakeFiles/thrust.all.example.saxpy.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.saxpy.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.all.example.saxpy.dir/clean + +examples/CMakeFiles/thrust.all.example.saxpy.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.saxpy.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.all.example.saxpy.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.all.example.saxpy.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.all.example.saxpy.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..cc3f8852e999042a957dfde67584340db567d720 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.saxpy.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.saxpy.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.all.example.saxpy.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.all.example.saxpy.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..2e8bacf64dc594cd784bc5fc1a4798428d95bae0 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.saxpy.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.saxpy. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.all.example.saxpy.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.all.example.saxpy.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..e82fa966ad5a9dbe87c1012feef6569deeafb753 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.saxpy.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.saxpy. diff --git a/build/examples/CMakeFiles/thrust.all.example.saxpy.dir/progress.make b/build/examples/CMakeFiles/thrust.all.example.saxpy.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.saxpy.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/CMakeFiles/thrust.all.example.scan_by_key.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.all.example.scan_by_key.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.scan_by_key.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.all.example.scan_by_key.dir/build.make b/build/examples/CMakeFiles/thrust.all.example.scan_by_key.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..37a7e2ada946eae24faa2e2354b9a0a13930d2c7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.scan_by_key.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.scan_by_key. + +# Include any custom commands dependencies for this target. +include examples/CMakeFiles/thrust.all.example.scan_by_key.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.all.example.scan_by_key.dir/progress.make + +thrust.all.example.scan_by_key: examples/CMakeFiles/thrust.all.example.scan_by_key.dir/build.make +.PHONY : thrust.all.example.scan_by_key + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.all.example.scan_by_key.dir/build: thrust.all.example.scan_by_key +.PHONY : examples/CMakeFiles/thrust.all.example.scan_by_key.dir/build + +examples/CMakeFiles/thrust.all.example.scan_by_key.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.scan_by_key.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.all.example.scan_by_key.dir/clean + +examples/CMakeFiles/thrust.all.example.scan_by_key.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.scan_by_key.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.all.example.scan_by_key.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.all.example.scan_by_key.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.all.example.scan_by_key.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..9bd0b560a493420f55b0eb0b9bf610539969b5dd --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.scan_by_key.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.scan_by_key.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.all.example.scan_by_key.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.all.example.scan_by_key.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..328316b040389761173e88714ee22fbcb8df4fde --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.scan_by_key.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.scan_by_key. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.all.example.scan_by_key.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.all.example.scan_by_key.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..5ca3f36d3a91eb0b7b59005c35295b3736474a48 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.scan_by_key.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.scan_by_key. diff --git a/build/examples/CMakeFiles/thrust.all.example.scan_by_key.dir/progress.make b/build/examples/CMakeFiles/thrust.all.example.scan_by_key.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.scan_by_key.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/CMakeFiles/thrust.all.example.scan_matrix_by_rows.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.all.example.scan_matrix_by_rows.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.scan_matrix_by_rows.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.all.example.scan_matrix_by_rows.dir/build.make b/build/examples/CMakeFiles/thrust.all.example.scan_matrix_by_rows.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..6302e13465a17a680fa0a62711ec9b852b1b12f2 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.scan_matrix_by_rows.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.scan_matrix_by_rows. + +# Include any custom commands dependencies for this target. +include examples/CMakeFiles/thrust.all.example.scan_matrix_by_rows.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.all.example.scan_matrix_by_rows.dir/progress.make + +thrust.all.example.scan_matrix_by_rows: examples/CMakeFiles/thrust.all.example.scan_matrix_by_rows.dir/build.make +.PHONY : thrust.all.example.scan_matrix_by_rows + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.all.example.scan_matrix_by_rows.dir/build: thrust.all.example.scan_matrix_by_rows +.PHONY : examples/CMakeFiles/thrust.all.example.scan_matrix_by_rows.dir/build + +examples/CMakeFiles/thrust.all.example.scan_matrix_by_rows.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.scan_matrix_by_rows.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.all.example.scan_matrix_by_rows.dir/clean + +examples/CMakeFiles/thrust.all.example.scan_matrix_by_rows.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.scan_matrix_by_rows.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.all.example.scan_matrix_by_rows.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.all.example.scan_matrix_by_rows.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.all.example.scan_matrix_by_rows.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..9bcc9e54f9ff81c770a8fadafbf3ade3327a2e2d --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.scan_matrix_by_rows.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.scan_matrix_by_rows.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.all.example.scan_matrix_by_rows.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.all.example.scan_matrix_by_rows.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..0b62f73880dcbb58568b208a93cf17ef7c525476 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.scan_matrix_by_rows.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.scan_matrix_by_rows. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.all.example.scan_matrix_by_rows.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.all.example.scan_matrix_by_rows.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..a08368cdf77ccd263d8add95dd5e524a98974fd4 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.scan_matrix_by_rows.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.scan_matrix_by_rows. diff --git a/build/examples/CMakeFiles/thrust.all.example.scan_matrix_by_rows.dir/progress.make b/build/examples/CMakeFiles/thrust.all.example.scan_matrix_by_rows.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.scan_matrix_by_rows.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/CMakeFiles/thrust.all.example.set_operations.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.all.example.set_operations.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.set_operations.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.all.example.set_operations.dir/build.make b/build/examples/CMakeFiles/thrust.all.example.set_operations.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..69083eef0b44b4d587afd531e23b9549f4f8bba2 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.set_operations.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.set_operations. + +# Include any custom commands dependencies for this target. +include examples/CMakeFiles/thrust.all.example.set_operations.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.all.example.set_operations.dir/progress.make + +thrust.all.example.set_operations: examples/CMakeFiles/thrust.all.example.set_operations.dir/build.make +.PHONY : thrust.all.example.set_operations + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.all.example.set_operations.dir/build: thrust.all.example.set_operations +.PHONY : examples/CMakeFiles/thrust.all.example.set_operations.dir/build + +examples/CMakeFiles/thrust.all.example.set_operations.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.set_operations.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.all.example.set_operations.dir/clean + +examples/CMakeFiles/thrust.all.example.set_operations.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.set_operations.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.all.example.set_operations.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.all.example.set_operations.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.all.example.set_operations.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..e3a4eedbf140e787c9716f9fdfc6f363b92199d2 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.set_operations.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.set_operations.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.all.example.set_operations.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.all.example.set_operations.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..38b518acc2967c02349d52a929833f1c6b69f102 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.set_operations.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.set_operations. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.all.example.set_operations.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.all.example.set_operations.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..af745022ad170618c465548f8fd06a7e91f76923 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.set_operations.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.set_operations. diff --git a/build/examples/CMakeFiles/thrust.all.example.set_operations.dir/progress.make b/build/examples/CMakeFiles/thrust.all.example.set_operations.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.set_operations.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/CMakeFiles/thrust.all.example.simple_moving_average.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.all.example.simple_moving_average.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.simple_moving_average.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.all.example.simple_moving_average.dir/build.make b/build/examples/CMakeFiles/thrust.all.example.simple_moving_average.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..645040a5a8d9af7a1b6373608e75a85e2e8f4cd5 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.simple_moving_average.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.simple_moving_average. + +# Include any custom commands dependencies for this target. +include examples/CMakeFiles/thrust.all.example.simple_moving_average.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.all.example.simple_moving_average.dir/progress.make + +thrust.all.example.simple_moving_average: examples/CMakeFiles/thrust.all.example.simple_moving_average.dir/build.make +.PHONY : thrust.all.example.simple_moving_average + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.all.example.simple_moving_average.dir/build: thrust.all.example.simple_moving_average +.PHONY : examples/CMakeFiles/thrust.all.example.simple_moving_average.dir/build + +examples/CMakeFiles/thrust.all.example.simple_moving_average.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.simple_moving_average.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.all.example.simple_moving_average.dir/clean + +examples/CMakeFiles/thrust.all.example.simple_moving_average.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.simple_moving_average.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.all.example.simple_moving_average.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.all.example.simple_moving_average.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.all.example.simple_moving_average.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..ee21fd24985036dd56b924936ec605882174a735 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.simple_moving_average.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.simple_moving_average.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.all.example.simple_moving_average.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.all.example.simple_moving_average.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..cf7c354995982f5575758ce4d06f1d9d58ac1f90 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.simple_moving_average.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.simple_moving_average. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.all.example.simple_moving_average.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.all.example.simple_moving_average.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..06b178c5e150e6d1c363673dbc27f2cb69764fe4 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.simple_moving_average.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.simple_moving_average. diff --git a/build/examples/CMakeFiles/thrust.all.example.simple_moving_average.dir/progress.make b/build/examples/CMakeFiles/thrust.all.example.simple_moving_average.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.simple_moving_average.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/CMakeFiles/thrust.all.example.sort.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.all.example.sort.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.sort.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.all.example.sort.dir/build.make b/build/examples/CMakeFiles/thrust.all.example.sort.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..7a5ad864eb7a0b2fc8eb93643efaba4ae15c134d --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.sort.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.sort. + +# Include any custom commands dependencies for this target. +include examples/CMakeFiles/thrust.all.example.sort.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.all.example.sort.dir/progress.make + +thrust.all.example.sort: examples/CMakeFiles/thrust.all.example.sort.dir/build.make +.PHONY : thrust.all.example.sort + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.all.example.sort.dir/build: thrust.all.example.sort +.PHONY : examples/CMakeFiles/thrust.all.example.sort.dir/build + +examples/CMakeFiles/thrust.all.example.sort.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.sort.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.all.example.sort.dir/clean + +examples/CMakeFiles/thrust.all.example.sort.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.sort.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.all.example.sort.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.all.example.sort.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.all.example.sort.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..df3227435343d70a05c6ed127138347cc6dca7f8 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.sort.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.sort.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.all.example.sort.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.all.example.sort.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..251364aee4d9cd10e5855c0f8fcf611a15cf3a8f --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.sort.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.sort. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.all.example.sort.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.all.example.sort.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..99eb958a051a3a32c1703781fbb1f8e0c65db563 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.sort.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.sort. diff --git a/build/examples/CMakeFiles/thrust.all.example.sort.dir/progress.make b/build/examples/CMakeFiles/thrust.all.example.sort.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.sort.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/CMakeFiles/thrust.all.example.sorting_aos_vs_soa.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.all.example.sorting_aos_vs_soa.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.sorting_aos_vs_soa.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.all.example.sorting_aos_vs_soa.dir/build.make b/build/examples/CMakeFiles/thrust.all.example.sorting_aos_vs_soa.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..80b936e679ab6f219d5b9f1bd0ac2e03bb43b7ba --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.sorting_aos_vs_soa.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.sorting_aos_vs_soa. + +# Include any custom commands dependencies for this target. +include examples/CMakeFiles/thrust.all.example.sorting_aos_vs_soa.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.all.example.sorting_aos_vs_soa.dir/progress.make + +thrust.all.example.sorting_aos_vs_soa: examples/CMakeFiles/thrust.all.example.sorting_aos_vs_soa.dir/build.make +.PHONY : thrust.all.example.sorting_aos_vs_soa + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.all.example.sorting_aos_vs_soa.dir/build: thrust.all.example.sorting_aos_vs_soa +.PHONY : examples/CMakeFiles/thrust.all.example.sorting_aos_vs_soa.dir/build + +examples/CMakeFiles/thrust.all.example.sorting_aos_vs_soa.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.sorting_aos_vs_soa.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.all.example.sorting_aos_vs_soa.dir/clean + +examples/CMakeFiles/thrust.all.example.sorting_aos_vs_soa.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.sorting_aos_vs_soa.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.all.example.sorting_aos_vs_soa.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.all.example.sorting_aos_vs_soa.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.all.example.sorting_aos_vs_soa.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..c9f17e678dac8714a91681b924fb46c8d90423fa --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.sorting_aos_vs_soa.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.sorting_aos_vs_soa.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.all.example.sorting_aos_vs_soa.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.all.example.sorting_aos_vs_soa.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..64c9b0d7220a72d1a174baa4eca7d33c3d52de1c --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.sorting_aos_vs_soa.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.sorting_aos_vs_soa. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.all.example.sorting_aos_vs_soa.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.all.example.sorting_aos_vs_soa.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..7897ea8f8a2e8b57f562b4c8e62c73176fb53367 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.sorting_aos_vs_soa.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.sorting_aos_vs_soa. diff --git a/build/examples/CMakeFiles/thrust.all.example.sorting_aos_vs_soa.dir/progress.make b/build/examples/CMakeFiles/thrust.all.example.sorting_aos_vs_soa.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.sorting_aos_vs_soa.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/CMakeFiles/thrust.all.example.sparse_vector.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.all.example.sparse_vector.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.sparse_vector.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.all.example.sparse_vector.dir/build.make b/build/examples/CMakeFiles/thrust.all.example.sparse_vector.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..0f8e45d496b5cf7a88c2bc25cafaf163565e42ed --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.sparse_vector.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.sparse_vector. + +# Include any custom commands dependencies for this target. +include examples/CMakeFiles/thrust.all.example.sparse_vector.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.all.example.sparse_vector.dir/progress.make + +thrust.all.example.sparse_vector: examples/CMakeFiles/thrust.all.example.sparse_vector.dir/build.make +.PHONY : thrust.all.example.sparse_vector + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.all.example.sparse_vector.dir/build: thrust.all.example.sparse_vector +.PHONY : examples/CMakeFiles/thrust.all.example.sparse_vector.dir/build + +examples/CMakeFiles/thrust.all.example.sparse_vector.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.sparse_vector.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.all.example.sparse_vector.dir/clean + +examples/CMakeFiles/thrust.all.example.sparse_vector.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.sparse_vector.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.all.example.sparse_vector.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.all.example.sparse_vector.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.all.example.sparse_vector.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..a30c99c57387abe3407bcf2028c769d468c013c9 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.sparse_vector.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.sparse_vector.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.all.example.sparse_vector.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.all.example.sparse_vector.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..7ec5225a2520fc5b77ff84a9ed773d028f3b33d5 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.sparse_vector.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.sparse_vector. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.all.example.sparse_vector.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.all.example.sparse_vector.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..64b96856e7110f0c6586ce3bdd07a26f84b35a83 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.sparse_vector.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.sparse_vector. diff --git a/build/examples/CMakeFiles/thrust.all.example.sparse_vector.dir/progress.make b/build/examples/CMakeFiles/thrust.all.example.sparse_vector.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.sparse_vector.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/CMakeFiles/thrust.all.example.stream_compaction.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.all.example.stream_compaction.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.stream_compaction.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.all.example.stream_compaction.dir/build.make b/build/examples/CMakeFiles/thrust.all.example.stream_compaction.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..ad84ad42dfe56b6d372ce7f49d5fa7c1038f2b04 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.stream_compaction.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.stream_compaction. + +# Include any custom commands dependencies for this target. +include examples/CMakeFiles/thrust.all.example.stream_compaction.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.all.example.stream_compaction.dir/progress.make + +thrust.all.example.stream_compaction: examples/CMakeFiles/thrust.all.example.stream_compaction.dir/build.make +.PHONY : thrust.all.example.stream_compaction + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.all.example.stream_compaction.dir/build: thrust.all.example.stream_compaction +.PHONY : examples/CMakeFiles/thrust.all.example.stream_compaction.dir/build + +examples/CMakeFiles/thrust.all.example.stream_compaction.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.stream_compaction.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.all.example.stream_compaction.dir/clean + +examples/CMakeFiles/thrust.all.example.stream_compaction.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.stream_compaction.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.all.example.stream_compaction.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.all.example.stream_compaction.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.all.example.stream_compaction.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..893d8a6d5d9e6148ca543befa2da9cd928f329b7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.stream_compaction.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.stream_compaction.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.all.example.stream_compaction.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.all.example.stream_compaction.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..8822ae97ebe0b0b23d77c24047cca7a4a8511528 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.stream_compaction.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.stream_compaction. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.all.example.stream_compaction.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.all.example.stream_compaction.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..63acb3399bd5d6cf3168afcdd03ed2d03949c4cf --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.stream_compaction.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.stream_compaction. diff --git a/build/examples/CMakeFiles/thrust.all.example.stream_compaction.dir/progress.make b/build/examples/CMakeFiles/thrust.all.example.stream_compaction.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.stream_compaction.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/CMakeFiles/thrust.all.example.strided_range.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.all.example.strided_range.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.strided_range.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.all.example.strided_range.dir/build.make b/build/examples/CMakeFiles/thrust.all.example.strided_range.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..e89911e201fc0b83555969995998862fa8eee0f6 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.strided_range.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.strided_range. + +# Include any custom commands dependencies for this target. +include examples/CMakeFiles/thrust.all.example.strided_range.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.all.example.strided_range.dir/progress.make + +thrust.all.example.strided_range: examples/CMakeFiles/thrust.all.example.strided_range.dir/build.make +.PHONY : thrust.all.example.strided_range + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.all.example.strided_range.dir/build: thrust.all.example.strided_range +.PHONY : examples/CMakeFiles/thrust.all.example.strided_range.dir/build + +examples/CMakeFiles/thrust.all.example.strided_range.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.strided_range.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.all.example.strided_range.dir/clean + +examples/CMakeFiles/thrust.all.example.strided_range.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.strided_range.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.all.example.strided_range.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.all.example.strided_range.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.all.example.strided_range.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..11dfc4a7f15d7336b3083318511372d9dc45a37c --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.strided_range.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.strided_range.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.all.example.strided_range.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.all.example.strided_range.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..41e0802dd440a5529db6a51e12579aeff6adfdfb --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.strided_range.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.strided_range. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.all.example.strided_range.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.all.example.strided_range.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..55f2a6b6a2bfff46d5390e44b6d139efaddd1d46 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.strided_range.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.strided_range. diff --git a/build/examples/CMakeFiles/thrust.all.example.strided_range.dir/progress.make b/build/examples/CMakeFiles/thrust.all.example.strided_range.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.strided_range.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/CMakeFiles/thrust.all.example.sum.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.all.example.sum.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.sum.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.all.example.sum.dir/build.make b/build/examples/CMakeFiles/thrust.all.example.sum.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..f1aa30de933e1ad360b889d2b4fcecb4bcfee9c0 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.sum.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.sum. + +# Include any custom commands dependencies for this target. +include examples/CMakeFiles/thrust.all.example.sum.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.all.example.sum.dir/progress.make + +thrust.all.example.sum: examples/CMakeFiles/thrust.all.example.sum.dir/build.make +.PHONY : thrust.all.example.sum + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.all.example.sum.dir/build: thrust.all.example.sum +.PHONY : examples/CMakeFiles/thrust.all.example.sum.dir/build + +examples/CMakeFiles/thrust.all.example.sum.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.sum.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.all.example.sum.dir/clean + +examples/CMakeFiles/thrust.all.example.sum.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.sum.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.all.example.sum.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.all.example.sum.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.all.example.sum.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..caf8046c78d642e1a58dc7ab99e3ba07d9a25378 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.sum.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.sum.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.all.example.sum.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.all.example.sum.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..9bd11159e6d817f097a340b714d021af54e2a90e --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.sum.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.sum. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.all.example.sum.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.all.example.sum.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..bdd36f6fb5b95672f941207ef3d2ca36dc5c8d16 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.sum.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.sum. diff --git a/build/examples/CMakeFiles/thrust.all.example.sum.dir/progress.make b/build/examples/CMakeFiles/thrust.all.example.sum.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.sum.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/CMakeFiles/thrust.all.example.sum_rows.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.all.example.sum_rows.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.sum_rows.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.all.example.sum_rows.dir/build.make b/build/examples/CMakeFiles/thrust.all.example.sum_rows.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..7e3e5cc07304a1cd3218de672be7e836b92d08d2 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.sum_rows.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.sum_rows. + +# Include any custom commands dependencies for this target. +include examples/CMakeFiles/thrust.all.example.sum_rows.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.all.example.sum_rows.dir/progress.make + +thrust.all.example.sum_rows: examples/CMakeFiles/thrust.all.example.sum_rows.dir/build.make +.PHONY : thrust.all.example.sum_rows + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.all.example.sum_rows.dir/build: thrust.all.example.sum_rows +.PHONY : examples/CMakeFiles/thrust.all.example.sum_rows.dir/build + +examples/CMakeFiles/thrust.all.example.sum_rows.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.sum_rows.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.all.example.sum_rows.dir/clean + +examples/CMakeFiles/thrust.all.example.sum_rows.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.sum_rows.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.all.example.sum_rows.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.all.example.sum_rows.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.all.example.sum_rows.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..439617ef2d602f1b8d6f75def0c4db70256da7df --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.sum_rows.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.sum_rows.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.all.example.sum_rows.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.all.example.sum_rows.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..58e6b12876dd91564787c6ad2ca571562c3cda89 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.sum_rows.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.sum_rows. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.all.example.sum_rows.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.all.example.sum_rows.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..dd895ac9bc2c09ba9381e5f44c75bcec11e7755a --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.sum_rows.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.sum_rows. diff --git a/build/examples/CMakeFiles/thrust.all.example.sum_rows.dir/progress.make b/build/examples/CMakeFiles/thrust.all.example.sum_rows.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.sum_rows.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/CMakeFiles/thrust.all.example.summary_statistics.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.all.example.summary_statistics.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.summary_statistics.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.all.example.summary_statistics.dir/build.make b/build/examples/CMakeFiles/thrust.all.example.summary_statistics.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..b74875d82bb7046f2674c3aaa991697b74ff682b --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.summary_statistics.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.summary_statistics. + +# Include any custom commands dependencies for this target. +include examples/CMakeFiles/thrust.all.example.summary_statistics.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.all.example.summary_statistics.dir/progress.make + +thrust.all.example.summary_statistics: examples/CMakeFiles/thrust.all.example.summary_statistics.dir/build.make +.PHONY : thrust.all.example.summary_statistics + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.all.example.summary_statistics.dir/build: thrust.all.example.summary_statistics +.PHONY : examples/CMakeFiles/thrust.all.example.summary_statistics.dir/build + +examples/CMakeFiles/thrust.all.example.summary_statistics.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.summary_statistics.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.all.example.summary_statistics.dir/clean + +examples/CMakeFiles/thrust.all.example.summary_statistics.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.summary_statistics.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.all.example.summary_statistics.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.all.example.summary_statistics.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.all.example.summary_statistics.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..f091e222ba8d54b03a82e3edb1c6b671ede7cdc6 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.summary_statistics.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.summary_statistics.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.all.example.summary_statistics.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.all.example.summary_statistics.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..db46ffda22325bec9f4e72a367cd6fd8daa18f4a --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.summary_statistics.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.summary_statistics. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.all.example.summary_statistics.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.all.example.summary_statistics.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..f9cb841c68c88f4473307fbb17c993c6d06da164 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.summary_statistics.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.summary_statistics. diff --git a/build/examples/CMakeFiles/thrust.all.example.summary_statistics.dir/progress.make b/build/examples/CMakeFiles/thrust.all.example.summary_statistics.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.summary_statistics.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/CMakeFiles/thrust.all.example.summed_area_table.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.all.example.summed_area_table.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.summed_area_table.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.all.example.summed_area_table.dir/build.make b/build/examples/CMakeFiles/thrust.all.example.summed_area_table.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..6e35238dcdc5bc08134f4ea34b4b8d26a57600e2 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.summed_area_table.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.summed_area_table. + +# Include any custom commands dependencies for this target. +include examples/CMakeFiles/thrust.all.example.summed_area_table.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.all.example.summed_area_table.dir/progress.make + +thrust.all.example.summed_area_table: examples/CMakeFiles/thrust.all.example.summed_area_table.dir/build.make +.PHONY : thrust.all.example.summed_area_table + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.all.example.summed_area_table.dir/build: thrust.all.example.summed_area_table +.PHONY : examples/CMakeFiles/thrust.all.example.summed_area_table.dir/build + +examples/CMakeFiles/thrust.all.example.summed_area_table.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.summed_area_table.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.all.example.summed_area_table.dir/clean + +examples/CMakeFiles/thrust.all.example.summed_area_table.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.summed_area_table.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.all.example.summed_area_table.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.all.example.summed_area_table.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.all.example.summed_area_table.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..e7bce5e019a0bfffbdca12d548f64f8f8e3308dc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.summed_area_table.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.summed_area_table.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.all.example.summed_area_table.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.all.example.summed_area_table.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..6896d1d1e68958e4ca55d9c86ba1f6a8a4a29f3c --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.summed_area_table.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.summed_area_table. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.all.example.summed_area_table.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.all.example.summed_area_table.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..cbb703c47af1bb699a5f4f25a0f232e9b7a06a7b --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.summed_area_table.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.summed_area_table. diff --git a/build/examples/CMakeFiles/thrust.all.example.summed_area_table.dir/progress.make b/build/examples/CMakeFiles/thrust.all.example.summed_area_table.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.summed_area_table.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/CMakeFiles/thrust.all.example.tiled_range.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.all.example.tiled_range.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.tiled_range.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.all.example.tiled_range.dir/build.make b/build/examples/CMakeFiles/thrust.all.example.tiled_range.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..33c08f06f0522ac0f9dbc1bcff2d3f25cb53d913 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.tiled_range.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.tiled_range. + +# Include any custom commands dependencies for this target. +include examples/CMakeFiles/thrust.all.example.tiled_range.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.all.example.tiled_range.dir/progress.make + +thrust.all.example.tiled_range: examples/CMakeFiles/thrust.all.example.tiled_range.dir/build.make +.PHONY : thrust.all.example.tiled_range + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.all.example.tiled_range.dir/build: thrust.all.example.tiled_range +.PHONY : examples/CMakeFiles/thrust.all.example.tiled_range.dir/build + +examples/CMakeFiles/thrust.all.example.tiled_range.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.tiled_range.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.all.example.tiled_range.dir/clean + +examples/CMakeFiles/thrust.all.example.tiled_range.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.tiled_range.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.all.example.tiled_range.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.all.example.tiled_range.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.all.example.tiled_range.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..8fb3fa842a7ab02502d4dd51398f45eeded3b506 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.tiled_range.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.tiled_range.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.all.example.tiled_range.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.all.example.tiled_range.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..add1c57d36600cdf27cad59e64da1be4d2c0f9e1 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.tiled_range.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.tiled_range. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.all.example.tiled_range.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.all.example.tiled_range.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..c57808bd55cab7f5330dceca032d98675d6060c9 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.tiled_range.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.tiled_range. diff --git a/build/examples/CMakeFiles/thrust.all.example.tiled_range.dir/progress.make b/build/examples/CMakeFiles/thrust.all.example.tiled_range.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.tiled_range.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/CMakeFiles/thrust.all.example.transform_input_output_iterator.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.all.example.transform_input_output_iterator.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.transform_input_output_iterator.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.all.example.transform_input_output_iterator.dir/build.make b/build/examples/CMakeFiles/thrust.all.example.transform_input_output_iterator.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..ef6abaed72c480794aa58314d34a9e5cf881cb86 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.transform_input_output_iterator.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.transform_input_output_iterator. + +# Include any custom commands dependencies for this target. +include examples/CMakeFiles/thrust.all.example.transform_input_output_iterator.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.all.example.transform_input_output_iterator.dir/progress.make + +thrust.all.example.transform_input_output_iterator: examples/CMakeFiles/thrust.all.example.transform_input_output_iterator.dir/build.make +.PHONY : thrust.all.example.transform_input_output_iterator + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.all.example.transform_input_output_iterator.dir/build: thrust.all.example.transform_input_output_iterator +.PHONY : examples/CMakeFiles/thrust.all.example.transform_input_output_iterator.dir/build + +examples/CMakeFiles/thrust.all.example.transform_input_output_iterator.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.transform_input_output_iterator.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.all.example.transform_input_output_iterator.dir/clean + +examples/CMakeFiles/thrust.all.example.transform_input_output_iterator.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.transform_input_output_iterator.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.all.example.transform_input_output_iterator.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.all.example.transform_input_output_iterator.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.all.example.transform_input_output_iterator.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..9ad0130b98ecf72e06c567df798160e49953b7eb --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.transform_input_output_iterator.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.transform_input_output_iterator.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.all.example.transform_input_output_iterator.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.all.example.transform_input_output_iterator.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..b231a69264a0d210c384dee2d13fd7c3e8cba8dc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.transform_input_output_iterator.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.transform_input_output_iterator. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.all.example.transform_input_output_iterator.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.all.example.transform_input_output_iterator.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..533e535377f90bce2c851b8bf58adb2b6e41d393 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.transform_input_output_iterator.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.transform_input_output_iterator. diff --git a/build/examples/CMakeFiles/thrust.all.example.transform_input_output_iterator.dir/progress.make b/build/examples/CMakeFiles/thrust.all.example.transform_input_output_iterator.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.transform_input_output_iterator.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/CMakeFiles/thrust.all.example.transform_iterator.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.all.example.transform_iterator.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.transform_iterator.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.all.example.transform_iterator.dir/build.make b/build/examples/CMakeFiles/thrust.all.example.transform_iterator.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..1d2a71be1b374fcda554d9c71eca39d21de97c58 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.transform_iterator.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.transform_iterator. + +# Include any custom commands dependencies for this target. +include examples/CMakeFiles/thrust.all.example.transform_iterator.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.all.example.transform_iterator.dir/progress.make + +thrust.all.example.transform_iterator: examples/CMakeFiles/thrust.all.example.transform_iterator.dir/build.make +.PHONY : thrust.all.example.transform_iterator + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.all.example.transform_iterator.dir/build: thrust.all.example.transform_iterator +.PHONY : examples/CMakeFiles/thrust.all.example.transform_iterator.dir/build + +examples/CMakeFiles/thrust.all.example.transform_iterator.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.transform_iterator.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.all.example.transform_iterator.dir/clean + +examples/CMakeFiles/thrust.all.example.transform_iterator.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.transform_iterator.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.all.example.transform_iterator.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.all.example.transform_iterator.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.all.example.transform_iterator.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..8a80a1078f5901c330ecc2e069842180813f034e --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.transform_iterator.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.transform_iterator.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.all.example.transform_iterator.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.all.example.transform_iterator.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..7c3c23785bed4340a0c61951dd9c19e974cdf003 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.transform_iterator.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.transform_iterator. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.all.example.transform_iterator.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.all.example.transform_iterator.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..3b3c70711ffa281212621715af48ec5cffe71066 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.transform_iterator.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.transform_iterator. diff --git a/build/examples/CMakeFiles/thrust.all.example.transform_iterator.dir/progress.make b/build/examples/CMakeFiles/thrust.all.example.transform_iterator.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.transform_iterator.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/CMakeFiles/thrust.all.example.transform_output_iterator.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.all.example.transform_output_iterator.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.transform_output_iterator.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.all.example.transform_output_iterator.dir/build.make b/build/examples/CMakeFiles/thrust.all.example.transform_output_iterator.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..b29c6b68db825e6b1d6b658aa707be588cd5797f --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.transform_output_iterator.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.transform_output_iterator. + +# Include any custom commands dependencies for this target. +include examples/CMakeFiles/thrust.all.example.transform_output_iterator.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.all.example.transform_output_iterator.dir/progress.make + +thrust.all.example.transform_output_iterator: examples/CMakeFiles/thrust.all.example.transform_output_iterator.dir/build.make +.PHONY : thrust.all.example.transform_output_iterator + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.all.example.transform_output_iterator.dir/build: thrust.all.example.transform_output_iterator +.PHONY : examples/CMakeFiles/thrust.all.example.transform_output_iterator.dir/build + +examples/CMakeFiles/thrust.all.example.transform_output_iterator.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.transform_output_iterator.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.all.example.transform_output_iterator.dir/clean + +examples/CMakeFiles/thrust.all.example.transform_output_iterator.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.transform_output_iterator.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.all.example.transform_output_iterator.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.all.example.transform_output_iterator.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.all.example.transform_output_iterator.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..d9c3036d3f3d2d90507f07438ef786211da23155 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.transform_output_iterator.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.transform_output_iterator.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.all.example.transform_output_iterator.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.all.example.transform_output_iterator.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..d9f4b1bec42542f138e0356ce7fdf746cf5144e3 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.transform_output_iterator.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.transform_output_iterator. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.all.example.transform_output_iterator.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.all.example.transform_output_iterator.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..f9b8dfe38f90597908faacbd94183ee2893bdc9c --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.transform_output_iterator.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.transform_output_iterator. diff --git a/build/examples/CMakeFiles/thrust.all.example.transform_output_iterator.dir/progress.make b/build/examples/CMakeFiles/thrust.all.example.transform_output_iterator.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.transform_output_iterator.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/CMakeFiles/thrust.all.example.uninitialized_vector.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.all.example.uninitialized_vector.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.uninitialized_vector.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.all.example.uninitialized_vector.dir/build.make b/build/examples/CMakeFiles/thrust.all.example.uninitialized_vector.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..452a0e416eabdfa7253b9dced60d64d600530166 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.uninitialized_vector.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.uninitialized_vector. + +# Include any custom commands dependencies for this target. +include examples/CMakeFiles/thrust.all.example.uninitialized_vector.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.all.example.uninitialized_vector.dir/progress.make + +thrust.all.example.uninitialized_vector: examples/CMakeFiles/thrust.all.example.uninitialized_vector.dir/build.make +.PHONY : thrust.all.example.uninitialized_vector + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.all.example.uninitialized_vector.dir/build: thrust.all.example.uninitialized_vector +.PHONY : examples/CMakeFiles/thrust.all.example.uninitialized_vector.dir/build + +examples/CMakeFiles/thrust.all.example.uninitialized_vector.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.uninitialized_vector.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.all.example.uninitialized_vector.dir/clean + +examples/CMakeFiles/thrust.all.example.uninitialized_vector.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.uninitialized_vector.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.all.example.uninitialized_vector.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.all.example.uninitialized_vector.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.all.example.uninitialized_vector.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..d86064f228c5d71ea97efda3f9d27fdf3d340456 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.uninitialized_vector.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.uninitialized_vector.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.all.example.uninitialized_vector.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.all.example.uninitialized_vector.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..ffb66c26c312a6f2a6a5d8613e0cff2719001f75 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.uninitialized_vector.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.uninitialized_vector. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.all.example.uninitialized_vector.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.all.example.uninitialized_vector.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..ee4b59b90a9b8c471ce53be5f52c1734ffaf0067 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.uninitialized_vector.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.uninitialized_vector. diff --git a/build/examples/CMakeFiles/thrust.all.example.uninitialized_vector.dir/progress.make b/build/examples/CMakeFiles/thrust.all.example.uninitialized_vector.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.uninitialized_vector.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/CMakeFiles/thrust.all.example.version.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.all.example.version.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.version.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.all.example.version.dir/build.make b/build/examples/CMakeFiles/thrust.all.example.version.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..7a900088a9bf0a9da5637a45b97c533cce153c6c --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.version.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.version. + +# Include any custom commands dependencies for this target. +include examples/CMakeFiles/thrust.all.example.version.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.all.example.version.dir/progress.make + +thrust.all.example.version: examples/CMakeFiles/thrust.all.example.version.dir/build.make +.PHONY : thrust.all.example.version + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.all.example.version.dir/build: thrust.all.example.version +.PHONY : examples/CMakeFiles/thrust.all.example.version.dir/build + +examples/CMakeFiles/thrust.all.example.version.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.version.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.all.example.version.dir/clean + +examples/CMakeFiles/thrust.all.example.version.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.version.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.all.example.version.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.all.example.version.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.all.example.version.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3651300ef507065fe8de73c79019d57b5a77e442 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.version.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.version.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.all.example.version.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.all.example.version.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..4902ec4bae15a468fba422224b8c024c740eb3a2 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.version.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.version. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.all.example.version.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.all.example.version.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..a031271cda7d98563429111650c78c72fb3ce2ca --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.version.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.version. diff --git a/build/examples/CMakeFiles/thrust.all.example.version.dir/progress.make b/build/examples/CMakeFiles/thrust.all.example.version.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.version.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/CMakeFiles/thrust.all.example.weld_vertices.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.all.example.weld_vertices.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.weld_vertices.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.all.example.weld_vertices.dir/build.make b/build/examples/CMakeFiles/thrust.all.example.weld_vertices.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..096e4ce539e4e7b3cd11de01af513700312a0d0b --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.weld_vertices.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.weld_vertices. + +# Include any custom commands dependencies for this target. +include examples/CMakeFiles/thrust.all.example.weld_vertices.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.all.example.weld_vertices.dir/progress.make + +thrust.all.example.weld_vertices: examples/CMakeFiles/thrust.all.example.weld_vertices.dir/build.make +.PHONY : thrust.all.example.weld_vertices + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.all.example.weld_vertices.dir/build: thrust.all.example.weld_vertices +.PHONY : examples/CMakeFiles/thrust.all.example.weld_vertices.dir/build + +examples/CMakeFiles/thrust.all.example.weld_vertices.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.weld_vertices.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.all.example.weld_vertices.dir/clean + +examples/CMakeFiles/thrust.all.example.weld_vertices.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.weld_vertices.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.all.example.weld_vertices.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.all.example.weld_vertices.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.all.example.weld_vertices.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..01982be19705ab4624ff1d4b11306c045f9578f4 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.weld_vertices.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.weld_vertices.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.all.example.weld_vertices.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.all.example.weld_vertices.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..67f66590172f31df3ef3506fb3d5a4953b2926b2 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.weld_vertices.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.weld_vertices. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.all.example.weld_vertices.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.all.example.weld_vertices.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..de6b134d889031e5ac0fafe294061b769958df83 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.weld_vertices.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.weld_vertices. diff --git a/build/examples/CMakeFiles/thrust.all.example.weld_vertices.dir/progress.make b/build/examples/CMakeFiles/thrust.all.example.weld_vertices.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.weld_vertices.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/CMakeFiles/thrust.all.example.word_count.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.all.example.word_count.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.word_count.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.all.example.word_count.dir/build.make b/build/examples/CMakeFiles/thrust.all.example.word_count.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..1221958822d06ac8258daccba149bc68b74099ac --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.word_count.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.word_count. + +# Include any custom commands dependencies for this target. +include examples/CMakeFiles/thrust.all.example.word_count.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.all.example.word_count.dir/progress.make + +thrust.all.example.word_count: examples/CMakeFiles/thrust.all.example.word_count.dir/build.make +.PHONY : thrust.all.example.word_count + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.all.example.word_count.dir/build: thrust.all.example.word_count +.PHONY : examples/CMakeFiles/thrust.all.example.word_count.dir/build + +examples/CMakeFiles/thrust.all.example.word_count.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.word_count.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.all.example.word_count.dir/clean + +examples/CMakeFiles/thrust.all.example.word_count.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.all.example.word_count.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.all.example.word_count.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.all.example.word_count.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.all.example.word_count.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..8ebe62efe98fb0f5397ee8610379c1ce68d7f326 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.word_count.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.word_count.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.all.example.word_count.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.all.example.word_count.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..569755fbc364b7eb2d8aaa47fd8852c9bdf0d34f --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.word_count.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.word_count. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.all.example.word_count.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.all.example.word_count.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..3c1e4aaf25dab6eb3afb08db65d036089931489b --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.word_count.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.word_count. diff --git a/build/examples/CMakeFiles/thrust.all.example.word_count.dir/progress.make b/build/examples/CMakeFiles/thrust.all.example.word_count.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.all.example.word_count.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..e341634fb3b040e5a27c3df54eb15e72d8c324f9 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/arbitrary_transformation.cu" "examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/arbitrary_transformation.cu.o" "gcc" "examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/arbitrary_transformation.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/arbitrary_transformation.cu.o b/build/examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/arbitrary_transformation.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..dbaa1aefa2e494f7abaaa5f083a4a1953fff35a8 Binary files /dev/null and b/build/examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/arbitrary_transformation.cu.o differ diff --git a/build/examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/arbitrary_transformation.cu.o.d b/build/examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/arbitrary_transformation.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..f0004652451264d3791d9ea0ed3724814e0cecfa --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/arbitrary_transformation.cu.o.d @@ -0,0 +1,769 @@ +examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/arbitrary_transformation.cu.o : /home/ubuntu/thrust/examples/arbitrary_transformation.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cstdio \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/invoke.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /usr/include/c++/9/iostream \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/c++/9/limits \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/reverse_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /usr/include/c++/9/vector \ + /usr/include/c++/9/bits/stl_vector.h \ + /usr/include/c++/9/bits/stl_bvector.h \ + /usr/include/c++/9/bits/vector.tcc \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/overlapped_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/iterator/is_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/permutation_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/permutation_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cstdint.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/dispatch.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/single_pass_scan_operators.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/cpp_compatibility.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_queue.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_math.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_discontinuity.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/minmax.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mpl/math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/make_unsigned_special.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/choose_offset.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking_commutative_only.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_warp_reductions.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_even_share.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_mapping.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/arg_index_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/constant_input_iterator.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/counting_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/counting_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/numeric_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_ptr.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/validator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/polymorphic_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/device_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/host_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/new.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/fancy_pointer_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/zip_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/modern_gcc_required.h diff --git a/build/examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/build.make b/build/examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..c6d15996b79814232f655e96bf3aab783edc1a4d --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/flags.make + +examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/arbitrary_transformation.cu.o: examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/flags.make +examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/arbitrary_transformation.cu.o: examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/includes_CUDA.rsp +examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/arbitrary_transformation.cu.o: /home/ubuntu/thrust/examples/arbitrary_transformation.cu +examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/arbitrary_transformation.cu.o: examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/arbitrary_transformation.cu.o" + cd /home/ubuntu/thrust/build/examples && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/arbitrary_transformation.cu.o -MF CMakeFiles/thrust.example.arbitrary_transformation.dir/arbitrary_transformation.cu.o.d -x cu -c /home/ubuntu/thrust/examples/arbitrary_transformation.cu -o CMakeFiles/thrust.example.arbitrary_transformation.dir/arbitrary_transformation.cu.o + +examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/arbitrary_transformation.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.arbitrary_transformation.dir/arbitrary_transformation.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/arbitrary_transformation.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.arbitrary_transformation.dir/arbitrary_transformation.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.arbitrary_transformation +thrust_example_arbitrary_transformation_OBJECTS = \ +"CMakeFiles/thrust.example.arbitrary_transformation.dir/arbitrary_transformation.cu.o" + +# External object files for target thrust.example.arbitrary_transformation +thrust_example_arbitrary_transformation_EXTERNAL_OBJECTS = + +bin/thrust.example.arbitrary_transformation: examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/arbitrary_transformation.cu.o +bin/thrust.example.arbitrary_transformation: examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/build.make +bin/thrust.example.arbitrary_transformation: examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/linkLibs.rsp +bin/thrust.example.arbitrary_transformation: examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/objects1.rsp +bin/thrust.example.arbitrary_transformation: examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../bin/thrust.example.arbitrary_transformation" + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.arbitrary_transformation.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/build: bin/thrust.example.arbitrary_transformation +.PHONY : examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/build + +examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.arbitrary_transformation.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/clean + +examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..08fbbe62967a1396c46d424a6deb3a1765bf9811 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../bin/thrust.example.arbitrary_transformation" + "../bin/thrust.example.arbitrary_transformation.pdb" + "CMakeFiles/thrust.example.arbitrary_transformation.dir/arbitrary_transformation.cu.o" + "CMakeFiles/thrust.example.arbitrary_transformation.dir/arbitrary_transformation.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.arbitrary_transformation.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..2dd585677efba671ddd186f51cd31feded397c23 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.arbitrary_transformation. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..8624d159c15ed88538678ce1332d63a31340ecde --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.arbitrary_transformation. diff --git a/build/examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/depend.make b/build/examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..d80ecf35af5d6975bbebd6a78ec567d7bc0861aa --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.arbitrary_transformation. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/flags.make b/build/examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..13faf114cd47d5f665e751cd074e60b45636d31c --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.arbitrary_transformation.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/includes_CUDA.rsp b/build/examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/link.txt b/build/examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..a0d02c7cd63edfe78cfd385dff85f6a401649381 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.arbitrary_transformation.dir/objects1.rsp -o ../bin/thrust.example.arbitrary_transformation @CMakeFiles/thrust.example.arbitrary_transformation.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/linkLibs.rsp b/build/examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/objects1.rsp b/build/examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..4b6fd647d67f5715c2f6ca8c0cf0eabbbff9e04e --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.arbitrary_transformation.dir/arbitrary_transformation.cu.o diff --git a/build/examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/progress.make b/build/examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..6c287f17b23171ee8abc97d23b8f8a3bfa7225de --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = + diff --git a/build/examples/CMakeFiles/thrust.example.basic_vector.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.example.basic_vector.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..c5eb3229584ea480ffebab5d8d28ef92e73acdce --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.basic_vector.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/basic_vector.cu" "examples/CMakeFiles/thrust.example.basic_vector.dir/basic_vector.cu.o" "gcc" "examples/CMakeFiles/thrust.example.basic_vector.dir/basic_vector.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.example.basic_vector.dir/basic_vector.cu.o b/build/examples/CMakeFiles/thrust.example.basic_vector.dir/basic_vector.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..74b90a94bd90464db5153dd145f89310178b1cb5 Binary files /dev/null and b/build/examples/CMakeFiles/thrust.example.basic_vector.dir/basic_vector.cu.o differ diff --git a/build/examples/CMakeFiles/thrust.example.basic_vector.dir/basic_vector.cu.o.d b/build/examples/CMakeFiles/thrust.example.basic_vector.dir/basic_vector.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..5e47814a85cbcc8080bea354622b070abf52f71f --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.basic_vector.dir/basic_vector.cu.o.d @@ -0,0 +1,768 @@ +examples/CMakeFiles/thrust.example.basic_vector.dir/basic_vector.cu.o : /home/ubuntu/thrust/examples/basic_vector.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/host_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cstdio \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/invoke.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/reverse_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /usr/include/c++/9/limits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /usr/include/c++/9/iostream \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /usr/include/c++/9/vector \ + /usr/include/c++/9/bits/stl_vector.h \ + /usr/include/c++/9/bits/stl_bvector.h \ + /usr/include/c++/9/bits/vector.tcc \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/overlapped_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/iterator/is_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/permutation_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/permutation_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cstdint.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/dispatch.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/single_pass_scan_operators.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/cpp_compatibility.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_queue.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_math.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_discontinuity.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/minmax.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mpl/math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/make_unsigned_special.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/choose_offset.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking_commutative_only.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_warp_reductions.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_even_share.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_mapping.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/arg_index_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/constant_input_iterator.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/counting_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/counting_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/numeric_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_ptr.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/validator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/polymorphic_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/device_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/host_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/new.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/fancy_pointer_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/pointer.h diff --git a/build/examples/CMakeFiles/thrust.example.basic_vector.dir/build.make b/build/examples/CMakeFiles/thrust.example.basic_vector.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..68707082b3716e195fb6619225facbbb37e0a4c3 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.basic_vector.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/CMakeFiles/thrust.example.basic_vector.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/CMakeFiles/thrust.example.basic_vector.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.example.basic_vector.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/CMakeFiles/thrust.example.basic_vector.dir/flags.make + +examples/CMakeFiles/thrust.example.basic_vector.dir/basic_vector.cu.o: examples/CMakeFiles/thrust.example.basic_vector.dir/flags.make +examples/CMakeFiles/thrust.example.basic_vector.dir/basic_vector.cu.o: examples/CMakeFiles/thrust.example.basic_vector.dir/includes_CUDA.rsp +examples/CMakeFiles/thrust.example.basic_vector.dir/basic_vector.cu.o: /home/ubuntu/thrust/examples/basic_vector.cu +examples/CMakeFiles/thrust.example.basic_vector.dir/basic_vector.cu.o: examples/CMakeFiles/thrust.example.basic_vector.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/CMakeFiles/thrust.example.basic_vector.dir/basic_vector.cu.o" + cd /home/ubuntu/thrust/build/examples && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/CMakeFiles/thrust.example.basic_vector.dir/basic_vector.cu.o -MF CMakeFiles/thrust.example.basic_vector.dir/basic_vector.cu.o.d -x cu -c /home/ubuntu/thrust/examples/basic_vector.cu -o CMakeFiles/thrust.example.basic_vector.dir/basic_vector.cu.o + +examples/CMakeFiles/thrust.example.basic_vector.dir/basic_vector.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.basic_vector.dir/basic_vector.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/CMakeFiles/thrust.example.basic_vector.dir/basic_vector.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.basic_vector.dir/basic_vector.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.basic_vector +thrust_example_basic_vector_OBJECTS = \ +"CMakeFiles/thrust.example.basic_vector.dir/basic_vector.cu.o" + +# External object files for target thrust.example.basic_vector +thrust_example_basic_vector_EXTERNAL_OBJECTS = + +bin/thrust.example.basic_vector: examples/CMakeFiles/thrust.example.basic_vector.dir/basic_vector.cu.o +bin/thrust.example.basic_vector: examples/CMakeFiles/thrust.example.basic_vector.dir/build.make +bin/thrust.example.basic_vector: examples/CMakeFiles/thrust.example.basic_vector.dir/linkLibs.rsp +bin/thrust.example.basic_vector: examples/CMakeFiles/thrust.example.basic_vector.dir/objects1.rsp +bin/thrust.example.basic_vector: examples/CMakeFiles/thrust.example.basic_vector.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../bin/thrust.example.basic_vector" + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.basic_vector.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.example.basic_vector.dir/build: bin/thrust.example.basic_vector +.PHONY : examples/CMakeFiles/thrust.example.basic_vector.dir/build + +examples/CMakeFiles/thrust.example.basic_vector.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.basic_vector.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.example.basic_vector.dir/clean + +examples/CMakeFiles/thrust.example.basic_vector.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.basic_vector.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.example.basic_vector.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.example.basic_vector.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.example.basic_vector.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..9d0c5583e92c4868c56383f0388cb3d2facd69f7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.basic_vector.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../bin/thrust.example.basic_vector" + "../bin/thrust.example.basic_vector.pdb" + "CMakeFiles/thrust.example.basic_vector.dir/basic_vector.cu.o" + "CMakeFiles/thrust.example.basic_vector.dir/basic_vector.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.basic_vector.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.example.basic_vector.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.example.basic_vector.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..d69922f03b0f6ce46ece4d94a29715b8bda32bfa --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.basic_vector.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.basic_vector. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.basic_vector.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.example.basic_vector.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..9e6330d068b1d8cb79696dae9577bacc3e7215bb --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.basic_vector.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.basic_vector. diff --git a/build/examples/CMakeFiles/thrust.example.basic_vector.dir/depend.make b/build/examples/CMakeFiles/thrust.example.basic_vector.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..3e6792a613857b54281539896cfaac136a4da9b0 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.basic_vector.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.basic_vector. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.basic_vector.dir/flags.make b/build/examples/CMakeFiles/thrust.example.basic_vector.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..c8302bf1b8d0b6d4475e44820e69897e2f10fc40 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.basic_vector.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.basic_vector.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/CMakeFiles/thrust.example.basic_vector.dir/includes_CUDA.rsp b/build/examples/CMakeFiles/thrust.example.basic_vector.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.basic_vector.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/CMakeFiles/thrust.example.basic_vector.dir/link.txt b/build/examples/CMakeFiles/thrust.example.basic_vector.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..7604d14b2182c8083c2eebdd76ddec3071d63908 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.basic_vector.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.basic_vector.dir/objects1.rsp -o ../bin/thrust.example.basic_vector @CMakeFiles/thrust.example.basic_vector.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/CMakeFiles/thrust.example.basic_vector.dir/linkLibs.rsp b/build/examples/CMakeFiles/thrust.example.basic_vector.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.basic_vector.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/CMakeFiles/thrust.example.basic_vector.dir/objects1.rsp b/build/examples/CMakeFiles/thrust.example.basic_vector.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..0b05c6d72f491b50bc08ec25a6cfe5fcf1b9870d --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.basic_vector.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.basic_vector.dir/basic_vector.cu.o diff --git a/build/examples/CMakeFiles/thrust.example.basic_vector.dir/progress.make b/build/examples/CMakeFiles/thrust.example.basic_vector.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..6c287f17b23171ee8abc97d23b8f8a3bfa7225de --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.basic_vector.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = + diff --git a/build/examples/CMakeFiles/thrust.example.bounding_box.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.example.bounding_box.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..79699b2ddb349924cdd726681da30d2560cab003 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.bounding_box.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/bounding_box.cu" "examples/CMakeFiles/thrust.example.bounding_box.dir/bounding_box.cu.o" "gcc" "examples/CMakeFiles/thrust.example.bounding_box.dir/bounding_box.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.example.bounding_box.dir/bounding_box.cu.o b/build/examples/CMakeFiles/thrust.example.bounding_box.dir/bounding_box.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..cd62fe5fd609e3f9d4e6bf989ba03e9b35bf41e6 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.bounding_box.dir/bounding_box.cu.o @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b277c017436a9510340545a3b0b1e6d951397d15a201ce206d41ce8e7aae316 +size 1793968 diff --git a/build/examples/CMakeFiles/thrust.example.bounding_box.dir/bounding_box.cu.o.d b/build/examples/CMakeFiles/thrust.example.bounding_box.dir/bounding_box.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..b1716a9353b4f12dcae7b70f9264a92fa600490a --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.bounding_box.dir/bounding_box.cu.o.d @@ -0,0 +1,866 @@ +examples/CMakeFiles/thrust.example.bounding_box.dir/bounding_box.cu.o : /home/ubuntu/thrust/examples/bounding_box.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform_reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cstdio \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/invoke.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform_reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/iterator/is_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /usr/include/c++/9/iostream \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/c++/9/limits \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/permutation_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/permutation_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cstdint.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/dispatch.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/single_pass_scan_operators.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/cpp_compatibility.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_queue.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_math.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_discontinuity.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/minmax.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mpl/math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/make_unsigned_special.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/choose_offset.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking_commutative_only.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_warp_reductions.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_even_share.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_mapping.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/arg_index_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/constant_input_iterator.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/reverse_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator.inl \ + /usr/include/c++/9/vector \ + /usr/include/c++/9/bits/stl_vector.h \ + /usr/include/c++/9/bits/stl_bvector.h \ + /usr/include/c++/9/bits/vector.tcc \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/overlapped_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/counting_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/counting_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/numeric_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_ptr.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/validator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/polymorphic_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/device_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/host_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/new.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/fancy_pointer_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/discard_block_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/random_core_access.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/discard_block_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/linear_congruential_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_congruential_engine_discard.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/mod.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_congruential_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/linear_feedback_shift_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_feedback_shift_engine_wordmask.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_feedback_shift_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/subtract_with_carry_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/subtract_with_carry_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/xor_combine_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/xor_combine_engine_max.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/xor_combine_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/uniform_int_distribution.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/uniform_int_distribution.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/uniform_real_distribution.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/uniform_real_distribution.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/normal_distribution.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/normal_distribution_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/normal_distribution.inl \ + /usr/include/math_constants.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/extrema.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/extrema.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/get_iterator_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/adjacent_difference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/adjacent_difference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/merge.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/partition.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/partition.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/remove.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/remove.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/set_operations.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/set_operations.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reverse.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reverse.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_merge_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_merge_sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/merge.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/merge.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/insertion_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy_backward.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_primitive_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_primitive_sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_radix_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_radix_sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy_if.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_select.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_unique_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_unique_by_key.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/unique.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/unique.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/unique_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/unique_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/extrema.h diff --git a/build/examples/CMakeFiles/thrust.example.bounding_box.dir/build.make b/build/examples/CMakeFiles/thrust.example.bounding_box.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..d16af11bd2aa36310c0389c0470d075ae539dc01 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.bounding_box.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/CMakeFiles/thrust.example.bounding_box.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/CMakeFiles/thrust.example.bounding_box.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.example.bounding_box.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/CMakeFiles/thrust.example.bounding_box.dir/flags.make + +examples/CMakeFiles/thrust.example.bounding_box.dir/bounding_box.cu.o: examples/CMakeFiles/thrust.example.bounding_box.dir/flags.make +examples/CMakeFiles/thrust.example.bounding_box.dir/bounding_box.cu.o: examples/CMakeFiles/thrust.example.bounding_box.dir/includes_CUDA.rsp +examples/CMakeFiles/thrust.example.bounding_box.dir/bounding_box.cu.o: /home/ubuntu/thrust/examples/bounding_box.cu +examples/CMakeFiles/thrust.example.bounding_box.dir/bounding_box.cu.o: examples/CMakeFiles/thrust.example.bounding_box.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/CMakeFiles/thrust.example.bounding_box.dir/bounding_box.cu.o" + cd /home/ubuntu/thrust/build/examples && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/CMakeFiles/thrust.example.bounding_box.dir/bounding_box.cu.o -MF CMakeFiles/thrust.example.bounding_box.dir/bounding_box.cu.o.d -x cu -c /home/ubuntu/thrust/examples/bounding_box.cu -o CMakeFiles/thrust.example.bounding_box.dir/bounding_box.cu.o + +examples/CMakeFiles/thrust.example.bounding_box.dir/bounding_box.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.bounding_box.dir/bounding_box.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/CMakeFiles/thrust.example.bounding_box.dir/bounding_box.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.bounding_box.dir/bounding_box.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.bounding_box +thrust_example_bounding_box_OBJECTS = \ +"CMakeFiles/thrust.example.bounding_box.dir/bounding_box.cu.o" + +# External object files for target thrust.example.bounding_box +thrust_example_bounding_box_EXTERNAL_OBJECTS = + +bin/thrust.example.bounding_box: examples/CMakeFiles/thrust.example.bounding_box.dir/bounding_box.cu.o +bin/thrust.example.bounding_box: examples/CMakeFiles/thrust.example.bounding_box.dir/build.make +bin/thrust.example.bounding_box: examples/CMakeFiles/thrust.example.bounding_box.dir/linkLibs.rsp +bin/thrust.example.bounding_box: examples/CMakeFiles/thrust.example.bounding_box.dir/objects1.rsp +bin/thrust.example.bounding_box: examples/CMakeFiles/thrust.example.bounding_box.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../bin/thrust.example.bounding_box" + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.bounding_box.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.example.bounding_box.dir/build: bin/thrust.example.bounding_box +.PHONY : examples/CMakeFiles/thrust.example.bounding_box.dir/build + +examples/CMakeFiles/thrust.example.bounding_box.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.bounding_box.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.example.bounding_box.dir/clean + +examples/CMakeFiles/thrust.example.bounding_box.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.bounding_box.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.example.bounding_box.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.example.bounding_box.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.example.bounding_box.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..a3fe3bd43ead1c1d7c92086a7d2df4b0cf99bad2 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.bounding_box.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../bin/thrust.example.bounding_box" + "../bin/thrust.example.bounding_box.pdb" + "CMakeFiles/thrust.example.bounding_box.dir/bounding_box.cu.o" + "CMakeFiles/thrust.example.bounding_box.dir/bounding_box.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.bounding_box.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.example.bounding_box.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.example.bounding_box.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..773a9951e7e4d4c84ffced2363d49a9caa386f38 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.bounding_box.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.bounding_box. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.bounding_box.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.example.bounding_box.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..34942b9dfe68a55cdeafee1130fc0f266c3baa3d --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.bounding_box.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.bounding_box. diff --git a/build/examples/CMakeFiles/thrust.example.bounding_box.dir/depend.make b/build/examples/CMakeFiles/thrust.example.bounding_box.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..0382523fdec8dff0a884f8b13d3415575181ba22 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.bounding_box.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.bounding_box. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.bounding_box.dir/flags.make b/build/examples/CMakeFiles/thrust.example.bounding_box.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..9bb1758d696f818b0b0599615ffeb39f375f1e5a --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.bounding_box.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.bounding_box.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/CMakeFiles/thrust.example.bounding_box.dir/includes_CUDA.rsp b/build/examples/CMakeFiles/thrust.example.bounding_box.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.bounding_box.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/CMakeFiles/thrust.example.bounding_box.dir/link.txt b/build/examples/CMakeFiles/thrust.example.bounding_box.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..fd882645e08d7c66ef928e61fe0dcf0cb3c9f397 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.bounding_box.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.bounding_box.dir/objects1.rsp -o ../bin/thrust.example.bounding_box @CMakeFiles/thrust.example.bounding_box.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/CMakeFiles/thrust.example.bounding_box.dir/linkLibs.rsp b/build/examples/CMakeFiles/thrust.example.bounding_box.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.bounding_box.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/CMakeFiles/thrust.example.bounding_box.dir/objects1.rsp b/build/examples/CMakeFiles/thrust.example.bounding_box.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..201134a96da136309f005c8f69a3b43334fe23de --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.bounding_box.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.bounding_box.dir/bounding_box.cu.o diff --git a/build/examples/CMakeFiles/thrust.example.bounding_box.dir/progress.make b/build/examples/CMakeFiles/thrust.example.bounding_box.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..6c287f17b23171ee8abc97d23b8f8a3bfa7225de --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.bounding_box.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = + diff --git a/build/examples/CMakeFiles/thrust.example.bucket_sort2d.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.example.bucket_sort2d.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..dcd5d66ef02ebad2c4ce25eccf1507e3c1aba489 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.bucket_sort2d.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/bucket_sort2d.cu" "examples/CMakeFiles/thrust.example.bucket_sort2d.dir/bucket_sort2d.cu.o" "gcc" "examples/CMakeFiles/thrust.example.bucket_sort2d.dir/bucket_sort2d.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.example.bucket_sort2d.dir/bucket_sort2d.cu.o b/build/examples/CMakeFiles/thrust.example.bucket_sort2d.dir/bucket_sort2d.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..11fd1e347acae7c8e6d3aea5713a77f309755c29 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.bucket_sort2d.dir/bucket_sort2d.cu.o @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b8af084059cd23f8ee92a67c152e86f459046d2b0d832686d849714115af0bc4 +size 8331216 diff --git a/build/examples/CMakeFiles/thrust.example.bucket_sort2d.dir/bucket_sort2d.cu.o.d b/build/examples/CMakeFiles/thrust.example.bucket_sort2d.dir/bucket_sort2d.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..0a9fae127d54163ac64baa1d0f2cd0ae8662e115 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.bucket_sort2d.dir/bucket_sort2d.cu.o.d @@ -0,0 +1,925 @@ +examples/CMakeFiles/thrust.example.bucket_sort2d.dir/bucket_sort2d.cu.o : /home/ubuntu/thrust/examples/bucket_sort2d.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /usr/include/c++/9/cstdio \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/invoke.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/reverse_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /usr/include/c++/9/limits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /usr/include/c++/9/iostream \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /usr/include/c++/9/vector \ + /usr/include/c++/9/bits/stl_vector.h \ + /usr/include/c++/9/bits/stl_bvector.h \ + /usr/include/c++/9/bits/vector.tcc \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/overlapped_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/iterator/is_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/permutation_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/permutation_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cstdint.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/dispatch.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/single_pass_scan_operators.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/cpp_compatibility.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_queue.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_math.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_discontinuity.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/minmax.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mpl/math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/make_unsigned_special.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/choose_offset.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking_commutative_only.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_warp_reductions.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_even_share.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_mapping.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/arg_index_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/constant_input_iterator.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/counting_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/counting_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/numeric_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_ptr.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/validator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/polymorphic_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/device_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/host_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/new.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/fancy_pointer_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/host_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reverse.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reverse.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_merge_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_merge_sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/merge.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/merge.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/merge.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/extrema.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/extrema.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/get_iterator_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/adjacent_difference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/adjacent_difference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/partition.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/partition.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/remove.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/remove.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/set_operations.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/set_operations.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/unique.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/unique.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/unique_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/unique_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform_reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform_reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/insertion_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy_backward.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_primitive_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_primitive_sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_radix_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_radix_sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy_if.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_select.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_unique_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_unique_by_key.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/sequence.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/sequence.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tabulate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tabulate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/trivial_sequence.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_radix_sort.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_radix_sort.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_radix_sort_downsweep.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_radix_rank.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/radix_rank_sort_operations.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/tuple \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_radix_sort_histogram.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_radix_sort_onesweep.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_radix_sort_upsweep.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_radix_sort.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_merge_sort.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_merge_sort.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_merge_sort.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/../block/block_merge_sort.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_sort.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/binary_search.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/binary_search.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scalar/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scalar/binary_search.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/discard_block_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/random_core_access.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/discard_block_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/linear_congruential_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_congruential_engine_discard.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/mod.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_congruential_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/linear_feedback_shift_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_feedback_shift_engine_wordmask.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_feedback_shift_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/subtract_with_carry_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/subtract_with_carry_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/xor_combine_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/xor_combine_engine_max.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/xor_combine_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/uniform_int_distribution.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/uniform_int_distribution.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/uniform_real_distribution.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/uniform_real_distribution.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/normal_distribution.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/normal_distribution_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/normal_distribution.inl \ + /usr/include/math_constants.h \ + /usr/include/c++/9/iomanip \ + /usr/include/c++/9/locale \ + /usr/include/c++/9/bits/locale_facets_nonio.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/time_members.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/messages_members.h \ + /usr/include/libintl.h \ + /usr/include/c++/9/bits/codecvt.h \ + /usr/include/c++/9/bits/locale_facets_nonio.tcc \ + /usr/include/c++/9/bits/locale_conv.h \ + /usr/include/c++/9/bits/quoted_string.h \ + /usr/include/c++/9/sstream \ + /usr/include/c++/9/bits/sstream.tcc diff --git a/build/examples/CMakeFiles/thrust.example.bucket_sort2d.dir/build.make b/build/examples/CMakeFiles/thrust.example.bucket_sort2d.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..2288ac289f598907d3a3967f1cd803740ad37797 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.bucket_sort2d.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/CMakeFiles/thrust.example.bucket_sort2d.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/CMakeFiles/thrust.example.bucket_sort2d.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.example.bucket_sort2d.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/CMakeFiles/thrust.example.bucket_sort2d.dir/flags.make + +examples/CMakeFiles/thrust.example.bucket_sort2d.dir/bucket_sort2d.cu.o: examples/CMakeFiles/thrust.example.bucket_sort2d.dir/flags.make +examples/CMakeFiles/thrust.example.bucket_sort2d.dir/bucket_sort2d.cu.o: examples/CMakeFiles/thrust.example.bucket_sort2d.dir/includes_CUDA.rsp +examples/CMakeFiles/thrust.example.bucket_sort2d.dir/bucket_sort2d.cu.o: /home/ubuntu/thrust/examples/bucket_sort2d.cu +examples/CMakeFiles/thrust.example.bucket_sort2d.dir/bucket_sort2d.cu.o: examples/CMakeFiles/thrust.example.bucket_sort2d.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/CMakeFiles/thrust.example.bucket_sort2d.dir/bucket_sort2d.cu.o" + cd /home/ubuntu/thrust/build/examples && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/CMakeFiles/thrust.example.bucket_sort2d.dir/bucket_sort2d.cu.o -MF CMakeFiles/thrust.example.bucket_sort2d.dir/bucket_sort2d.cu.o.d -x cu -c /home/ubuntu/thrust/examples/bucket_sort2d.cu -o CMakeFiles/thrust.example.bucket_sort2d.dir/bucket_sort2d.cu.o + +examples/CMakeFiles/thrust.example.bucket_sort2d.dir/bucket_sort2d.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.bucket_sort2d.dir/bucket_sort2d.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/CMakeFiles/thrust.example.bucket_sort2d.dir/bucket_sort2d.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.bucket_sort2d.dir/bucket_sort2d.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.bucket_sort2d +thrust_example_bucket_sort2d_OBJECTS = \ +"CMakeFiles/thrust.example.bucket_sort2d.dir/bucket_sort2d.cu.o" + +# External object files for target thrust.example.bucket_sort2d +thrust_example_bucket_sort2d_EXTERNAL_OBJECTS = + +bin/thrust.example.bucket_sort2d: examples/CMakeFiles/thrust.example.bucket_sort2d.dir/bucket_sort2d.cu.o +bin/thrust.example.bucket_sort2d: examples/CMakeFiles/thrust.example.bucket_sort2d.dir/build.make +bin/thrust.example.bucket_sort2d: examples/CMakeFiles/thrust.example.bucket_sort2d.dir/linkLibs.rsp +bin/thrust.example.bucket_sort2d: examples/CMakeFiles/thrust.example.bucket_sort2d.dir/objects1.rsp +bin/thrust.example.bucket_sort2d: examples/CMakeFiles/thrust.example.bucket_sort2d.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../bin/thrust.example.bucket_sort2d" + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.bucket_sort2d.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.example.bucket_sort2d.dir/build: bin/thrust.example.bucket_sort2d +.PHONY : examples/CMakeFiles/thrust.example.bucket_sort2d.dir/build + +examples/CMakeFiles/thrust.example.bucket_sort2d.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.bucket_sort2d.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.example.bucket_sort2d.dir/clean + +examples/CMakeFiles/thrust.example.bucket_sort2d.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.bucket_sort2d.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.example.bucket_sort2d.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.example.bucket_sort2d.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.example.bucket_sort2d.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..24522974338b9ddb94118ddee7cd8bd7373d4813 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.bucket_sort2d.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../bin/thrust.example.bucket_sort2d" + "../bin/thrust.example.bucket_sort2d.pdb" + "CMakeFiles/thrust.example.bucket_sort2d.dir/bucket_sort2d.cu.o" + "CMakeFiles/thrust.example.bucket_sort2d.dir/bucket_sort2d.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.bucket_sort2d.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.example.bucket_sort2d.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.example.bucket_sort2d.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..7914a5f6a1ae1e4b8980b8f799f40a149a5ff3f5 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.bucket_sort2d.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.bucket_sort2d. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.bucket_sort2d.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.example.bucket_sort2d.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..2faaf058c7653e08b6c685f3b04ca1585210ec54 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.bucket_sort2d.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.bucket_sort2d. diff --git a/build/examples/CMakeFiles/thrust.example.bucket_sort2d.dir/depend.make b/build/examples/CMakeFiles/thrust.example.bucket_sort2d.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..75db93e73378228f4dc48c083efe5b118d26648d --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.bucket_sort2d.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.bucket_sort2d. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.bucket_sort2d.dir/flags.make b/build/examples/CMakeFiles/thrust.example.bucket_sort2d.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..ea588ba69f312169f412954a7fe609270938c39c --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.bucket_sort2d.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.bucket_sort2d.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/CMakeFiles/thrust.example.bucket_sort2d.dir/includes_CUDA.rsp b/build/examples/CMakeFiles/thrust.example.bucket_sort2d.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.bucket_sort2d.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/CMakeFiles/thrust.example.bucket_sort2d.dir/link.txt b/build/examples/CMakeFiles/thrust.example.bucket_sort2d.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..60e1106c2a6d372ebb8dbf9d81a3d193eec9e051 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.bucket_sort2d.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.bucket_sort2d.dir/objects1.rsp -o ../bin/thrust.example.bucket_sort2d @CMakeFiles/thrust.example.bucket_sort2d.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/CMakeFiles/thrust.example.bucket_sort2d.dir/linkLibs.rsp b/build/examples/CMakeFiles/thrust.example.bucket_sort2d.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.bucket_sort2d.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/CMakeFiles/thrust.example.bucket_sort2d.dir/objects1.rsp b/build/examples/CMakeFiles/thrust.example.bucket_sort2d.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..1865c7f8b68776f2d56947400607663cdda4f65b --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.bucket_sort2d.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.bucket_sort2d.dir/bucket_sort2d.cu.o diff --git a/build/examples/CMakeFiles/thrust.example.bucket_sort2d.dir/progress.make b/build/examples/CMakeFiles/thrust.example.bucket_sort2d.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..6c287f17b23171ee8abc97d23b8f8a3bfa7225de --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.bucket_sort2d.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = + diff --git a/build/examples/CMakeFiles/thrust.example.constant_iterator.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.example.constant_iterator.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..2413ad52d5d5e83061a5467ecb30f5e7217e6db9 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.constant_iterator.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/constant_iterator.cu" "examples/CMakeFiles/thrust.example.constant_iterator.dir/constant_iterator.cu.o" "gcc" "examples/CMakeFiles/thrust.example.constant_iterator.dir/constant_iterator.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.example.constant_iterator.dir/build.make b/build/examples/CMakeFiles/thrust.example.constant_iterator.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..0b2e6177cc38b2b826084e79d2576ae513e3f79d --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.constant_iterator.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/CMakeFiles/thrust.example.constant_iterator.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/CMakeFiles/thrust.example.constant_iterator.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.example.constant_iterator.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/CMakeFiles/thrust.example.constant_iterator.dir/flags.make + +examples/CMakeFiles/thrust.example.constant_iterator.dir/constant_iterator.cu.o: examples/CMakeFiles/thrust.example.constant_iterator.dir/flags.make +examples/CMakeFiles/thrust.example.constant_iterator.dir/constant_iterator.cu.o: examples/CMakeFiles/thrust.example.constant_iterator.dir/includes_CUDA.rsp +examples/CMakeFiles/thrust.example.constant_iterator.dir/constant_iterator.cu.o: /home/ubuntu/thrust/examples/constant_iterator.cu +examples/CMakeFiles/thrust.example.constant_iterator.dir/constant_iterator.cu.o: examples/CMakeFiles/thrust.example.constant_iterator.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/CMakeFiles/thrust.example.constant_iterator.dir/constant_iterator.cu.o" + cd /home/ubuntu/thrust/build/examples && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/CMakeFiles/thrust.example.constant_iterator.dir/constant_iterator.cu.o -MF CMakeFiles/thrust.example.constant_iterator.dir/constant_iterator.cu.o.d -x cu -c /home/ubuntu/thrust/examples/constant_iterator.cu -o CMakeFiles/thrust.example.constant_iterator.dir/constant_iterator.cu.o + +examples/CMakeFiles/thrust.example.constant_iterator.dir/constant_iterator.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.constant_iterator.dir/constant_iterator.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/CMakeFiles/thrust.example.constant_iterator.dir/constant_iterator.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.constant_iterator.dir/constant_iterator.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.constant_iterator +thrust_example_constant_iterator_OBJECTS = \ +"CMakeFiles/thrust.example.constant_iterator.dir/constant_iterator.cu.o" + +# External object files for target thrust.example.constant_iterator +thrust_example_constant_iterator_EXTERNAL_OBJECTS = + +bin/thrust.example.constant_iterator: examples/CMakeFiles/thrust.example.constant_iterator.dir/constant_iterator.cu.o +bin/thrust.example.constant_iterator: examples/CMakeFiles/thrust.example.constant_iterator.dir/build.make +bin/thrust.example.constant_iterator: examples/CMakeFiles/thrust.example.constant_iterator.dir/linkLibs.rsp +bin/thrust.example.constant_iterator: examples/CMakeFiles/thrust.example.constant_iterator.dir/objects1.rsp +bin/thrust.example.constant_iterator: examples/CMakeFiles/thrust.example.constant_iterator.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../bin/thrust.example.constant_iterator" + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.constant_iterator.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.example.constant_iterator.dir/build: bin/thrust.example.constant_iterator +.PHONY : examples/CMakeFiles/thrust.example.constant_iterator.dir/build + +examples/CMakeFiles/thrust.example.constant_iterator.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.constant_iterator.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.example.constant_iterator.dir/clean + +examples/CMakeFiles/thrust.example.constant_iterator.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.constant_iterator.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.example.constant_iterator.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.example.constant_iterator.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.example.constant_iterator.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..08ab62c9f8e34bcd81899293d85cf4a9acacc3d5 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.constant_iterator.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../bin/thrust.example.constant_iterator" + "../bin/thrust.example.constant_iterator.pdb" + "CMakeFiles/thrust.example.constant_iterator.dir/constant_iterator.cu.o" + "CMakeFiles/thrust.example.constant_iterator.dir/constant_iterator.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.constant_iterator.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.example.constant_iterator.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.example.constant_iterator.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..e65a27ac6b7ef5660b3dc1c41165f43321ee7918 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.constant_iterator.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.constant_iterator. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.constant_iterator.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.example.constant_iterator.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..60aa345c8e9904294ad7e06e0cbda7997fec9390 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.constant_iterator.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.constant_iterator. diff --git a/build/examples/CMakeFiles/thrust.example.constant_iterator.dir/constant_iterator.cu.o b/build/examples/CMakeFiles/thrust.example.constant_iterator.dir/constant_iterator.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..77aa17323c8b0dccf4bfd7a9b0cb8574b7fe9e47 Binary files /dev/null and b/build/examples/CMakeFiles/thrust.example.constant_iterator.dir/constant_iterator.cu.o differ diff --git a/build/examples/CMakeFiles/thrust.example.constant_iterator.dir/constant_iterator.cu.o.d b/build/examples/CMakeFiles/thrust.example.constant_iterator.dir/constant_iterator.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..37392767a3ba1fc860f864ff54f2839b2a426c7b --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.constant_iterator.dir/constant_iterator.cu.o.d @@ -0,0 +1,783 @@ +examples/CMakeFiles/thrust.example.constant_iterator.dir/constant_iterator.cu.o : /home/ubuntu/thrust/examples/constant_iterator.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/constant_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/constant_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/counting_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /usr/include/c++/9/cstdio \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/invoke.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/counting_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/numeric_traits.h \ + /usr/include/c++/9/limits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /usr/include/c++/9/iostream \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/reverse_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /usr/include/c++/9/vector \ + /usr/include/c++/9/bits/stl_vector.h \ + /usr/include/c++/9/bits/stl_bvector.h \ + /usr/include/c++/9/bits/vector.tcc \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/overlapped_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/iterator/is_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/permutation_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/permutation_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cstdint.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/dispatch.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/single_pass_scan_operators.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/cpp_compatibility.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_queue.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_math.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_discontinuity.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/minmax.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mpl/math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/make_unsigned_special.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/choose_offset.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking_commutative_only.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_warp_reductions.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_even_share.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_mapping.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/arg_index_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/constant_input_iterator.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_ptr.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/validator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/polymorphic_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/device_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/host_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/new.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/fancy_pointer_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy_if.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_select.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_unique_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_unique_by_key.cuh diff --git a/build/examples/CMakeFiles/thrust.example.constant_iterator.dir/depend.make b/build/examples/CMakeFiles/thrust.example.constant_iterator.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..c218d1080002b8cb2484337cd7e901fc2f0614d5 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.constant_iterator.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.constant_iterator. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.constant_iterator.dir/flags.make b/build/examples/CMakeFiles/thrust.example.constant_iterator.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..a0c7dcecdf4716b109c6a3479d669b2421e802dd --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.constant_iterator.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.constant_iterator.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/CMakeFiles/thrust.example.constant_iterator.dir/includes_CUDA.rsp b/build/examples/CMakeFiles/thrust.example.constant_iterator.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.constant_iterator.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/CMakeFiles/thrust.example.constant_iterator.dir/link.txt b/build/examples/CMakeFiles/thrust.example.constant_iterator.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..5725a9c54b8d5e5a2585c1f618f23fa2a56fc5d7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.constant_iterator.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.constant_iterator.dir/objects1.rsp -o ../bin/thrust.example.constant_iterator @CMakeFiles/thrust.example.constant_iterator.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/CMakeFiles/thrust.example.constant_iterator.dir/linkLibs.rsp b/build/examples/CMakeFiles/thrust.example.constant_iterator.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.constant_iterator.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/CMakeFiles/thrust.example.constant_iterator.dir/objects1.rsp b/build/examples/CMakeFiles/thrust.example.constant_iterator.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..3db2fc0fda961aad327ba3b6f4f966e974cb54e6 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.constant_iterator.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.constant_iterator.dir/constant_iterator.cu.o diff --git a/build/examples/CMakeFiles/thrust.example.constant_iterator.dir/progress.make b/build/examples/CMakeFiles/thrust.example.constant_iterator.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..6c287f17b23171ee8abc97d23b8f8a3bfa7225de --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.constant_iterator.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = + diff --git a/build/examples/CMakeFiles/thrust.example.counting_iterator.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.example.counting_iterator.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..93baaf65c8165a3263d325c739488ea5ebf70dea --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.counting_iterator.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/counting_iterator.cu" "examples/CMakeFiles/thrust.example.counting_iterator.dir/counting_iterator.cu.o" "gcc" "examples/CMakeFiles/thrust.example.counting_iterator.dir/counting_iterator.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.example.counting_iterator.dir/build.make b/build/examples/CMakeFiles/thrust.example.counting_iterator.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..bba36fc3696ae703640b0c3c6679a0fbf43f7f07 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.counting_iterator.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/CMakeFiles/thrust.example.counting_iterator.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/CMakeFiles/thrust.example.counting_iterator.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.example.counting_iterator.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/CMakeFiles/thrust.example.counting_iterator.dir/flags.make + +examples/CMakeFiles/thrust.example.counting_iterator.dir/counting_iterator.cu.o: examples/CMakeFiles/thrust.example.counting_iterator.dir/flags.make +examples/CMakeFiles/thrust.example.counting_iterator.dir/counting_iterator.cu.o: examples/CMakeFiles/thrust.example.counting_iterator.dir/includes_CUDA.rsp +examples/CMakeFiles/thrust.example.counting_iterator.dir/counting_iterator.cu.o: /home/ubuntu/thrust/examples/counting_iterator.cu +examples/CMakeFiles/thrust.example.counting_iterator.dir/counting_iterator.cu.o: examples/CMakeFiles/thrust.example.counting_iterator.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/CMakeFiles/thrust.example.counting_iterator.dir/counting_iterator.cu.o" + cd /home/ubuntu/thrust/build/examples && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/CMakeFiles/thrust.example.counting_iterator.dir/counting_iterator.cu.o -MF CMakeFiles/thrust.example.counting_iterator.dir/counting_iterator.cu.o.d -x cu -c /home/ubuntu/thrust/examples/counting_iterator.cu -o CMakeFiles/thrust.example.counting_iterator.dir/counting_iterator.cu.o + +examples/CMakeFiles/thrust.example.counting_iterator.dir/counting_iterator.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.counting_iterator.dir/counting_iterator.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/CMakeFiles/thrust.example.counting_iterator.dir/counting_iterator.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.counting_iterator.dir/counting_iterator.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.counting_iterator +thrust_example_counting_iterator_OBJECTS = \ +"CMakeFiles/thrust.example.counting_iterator.dir/counting_iterator.cu.o" + +# External object files for target thrust.example.counting_iterator +thrust_example_counting_iterator_EXTERNAL_OBJECTS = + +bin/thrust.example.counting_iterator: examples/CMakeFiles/thrust.example.counting_iterator.dir/counting_iterator.cu.o +bin/thrust.example.counting_iterator: examples/CMakeFiles/thrust.example.counting_iterator.dir/build.make +bin/thrust.example.counting_iterator: examples/CMakeFiles/thrust.example.counting_iterator.dir/linkLibs.rsp +bin/thrust.example.counting_iterator: examples/CMakeFiles/thrust.example.counting_iterator.dir/objects1.rsp +bin/thrust.example.counting_iterator: examples/CMakeFiles/thrust.example.counting_iterator.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../bin/thrust.example.counting_iterator" + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.counting_iterator.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.example.counting_iterator.dir/build: bin/thrust.example.counting_iterator +.PHONY : examples/CMakeFiles/thrust.example.counting_iterator.dir/build + +examples/CMakeFiles/thrust.example.counting_iterator.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.counting_iterator.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.example.counting_iterator.dir/clean + +examples/CMakeFiles/thrust.example.counting_iterator.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.counting_iterator.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.example.counting_iterator.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.example.counting_iterator.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.example.counting_iterator.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..dbd7deb1b8cda2218baa94db351c79a3a24067f5 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.counting_iterator.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../bin/thrust.example.counting_iterator" + "../bin/thrust.example.counting_iterator.pdb" + "CMakeFiles/thrust.example.counting_iterator.dir/counting_iterator.cu.o" + "CMakeFiles/thrust.example.counting_iterator.dir/counting_iterator.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.counting_iterator.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.example.counting_iterator.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.example.counting_iterator.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..a32285b658b8ba7c2ae199318cd4942970d3a187 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.counting_iterator.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.counting_iterator. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.counting_iterator.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.example.counting_iterator.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..b278b1e50c63677597460a3d5c7ccd78e0168fa5 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.counting_iterator.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.counting_iterator. diff --git a/build/examples/CMakeFiles/thrust.example.counting_iterator.dir/counting_iterator.cu.o b/build/examples/CMakeFiles/thrust.example.counting_iterator.dir/counting_iterator.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..507d6851d4339f4832134c85846c570d9a2a611e Binary files /dev/null and b/build/examples/CMakeFiles/thrust.example.counting_iterator.dir/counting_iterator.cu.o differ diff --git a/build/examples/CMakeFiles/thrust.example.counting_iterator.dir/counting_iterator.cu.o.d b/build/examples/CMakeFiles/thrust.example.counting_iterator.dir/counting_iterator.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..85eede8d07d41c98d19b408d169db342819ea298 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.counting_iterator.dir/counting_iterator.cu.o.d @@ -0,0 +1,781 @@ +examples/CMakeFiles/thrust.example.counting_iterator.dir/counting_iterator.cu.o : /home/ubuntu/thrust/examples/counting_iterator.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/counting_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /usr/include/c++/9/cstdio \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/invoke.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/counting_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/numeric_traits.h \ + /usr/include/c++/9/limits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /usr/include/c++/9/iostream \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/iterator/is_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cstdint.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/dispatch.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/single_pass_scan_operators.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/cpp_compatibility.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_queue.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_math.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_discontinuity.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/minmax.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mpl/math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/permutation_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/permutation_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy_if.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_select.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_unique_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_unique_by_key.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/reverse_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator.inl \ + /usr/include/c++/9/vector \ + /usr/include/c++/9/bits/stl_vector.h \ + /usr/include/c++/9/bits/stl_bvector.h \ + /usr/include/c++/9/bits/vector.tcc \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/overlapped_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/make_unsigned_special.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/choose_offset.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking_commutative_only.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_warp_reductions.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_even_share.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_mapping.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/arg_index_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/constant_input_iterator.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_ptr.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/validator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/polymorphic_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/device_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/host_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/new.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/fancy_pointer_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/pointer.h diff --git a/build/examples/CMakeFiles/thrust.example.counting_iterator.dir/depend.make b/build/examples/CMakeFiles/thrust.example.counting_iterator.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..f9649fd277f94602524ce3a3d074d66837bb662b --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.counting_iterator.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.counting_iterator. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.counting_iterator.dir/flags.make b/build/examples/CMakeFiles/thrust.example.counting_iterator.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..3af35ee05d5bc6403a21bd78876c8ed09ba37497 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.counting_iterator.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.counting_iterator.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/CMakeFiles/thrust.example.counting_iterator.dir/includes_CUDA.rsp b/build/examples/CMakeFiles/thrust.example.counting_iterator.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.counting_iterator.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/CMakeFiles/thrust.example.counting_iterator.dir/link.txt b/build/examples/CMakeFiles/thrust.example.counting_iterator.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..d2ebb51005e73330d4e988ebbabb9adcfed08fe3 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.counting_iterator.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.counting_iterator.dir/objects1.rsp -o ../bin/thrust.example.counting_iterator @CMakeFiles/thrust.example.counting_iterator.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/CMakeFiles/thrust.example.counting_iterator.dir/linkLibs.rsp b/build/examples/CMakeFiles/thrust.example.counting_iterator.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.counting_iterator.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/CMakeFiles/thrust.example.counting_iterator.dir/objects1.rsp b/build/examples/CMakeFiles/thrust.example.counting_iterator.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..597448aaed8763f8f16c4ebd389ea569a72bbbca --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.counting_iterator.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.counting_iterator.dir/counting_iterator.cu.o diff --git a/build/examples/CMakeFiles/thrust.example.counting_iterator.dir/progress.make b/build/examples/CMakeFiles/thrust.example.counting_iterator.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..b1f50d925dce7c5e5e5fd1608191a1190a942a7a --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.counting_iterator.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = 41 + diff --git a/build/examples/CMakeFiles/thrust.example.device_ptr.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.example.device_ptr.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..354c9e9e6b10988cb758b5ade5a54383a3cb203e --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.device_ptr.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/device_ptr.cu" "examples/CMakeFiles/thrust.example.device_ptr.dir/device_ptr.cu.o" "gcc" "examples/CMakeFiles/thrust.example.device_ptr.dir/device_ptr.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.example.device_ptr.dir/build.make b/build/examples/CMakeFiles/thrust.example.device_ptr.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..9392e811bf6a8d7ce942757e5f88d9d34265e863 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.device_ptr.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/CMakeFiles/thrust.example.device_ptr.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/CMakeFiles/thrust.example.device_ptr.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.example.device_ptr.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/CMakeFiles/thrust.example.device_ptr.dir/flags.make + +examples/CMakeFiles/thrust.example.device_ptr.dir/device_ptr.cu.o: examples/CMakeFiles/thrust.example.device_ptr.dir/flags.make +examples/CMakeFiles/thrust.example.device_ptr.dir/device_ptr.cu.o: examples/CMakeFiles/thrust.example.device_ptr.dir/includes_CUDA.rsp +examples/CMakeFiles/thrust.example.device_ptr.dir/device_ptr.cu.o: /home/ubuntu/thrust/examples/device_ptr.cu +examples/CMakeFiles/thrust.example.device_ptr.dir/device_ptr.cu.o: examples/CMakeFiles/thrust.example.device_ptr.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/CMakeFiles/thrust.example.device_ptr.dir/device_ptr.cu.o" + cd /home/ubuntu/thrust/build/examples && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/CMakeFiles/thrust.example.device_ptr.dir/device_ptr.cu.o -MF CMakeFiles/thrust.example.device_ptr.dir/device_ptr.cu.o.d -x cu -c /home/ubuntu/thrust/examples/device_ptr.cu -o CMakeFiles/thrust.example.device_ptr.dir/device_ptr.cu.o + +examples/CMakeFiles/thrust.example.device_ptr.dir/device_ptr.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.device_ptr.dir/device_ptr.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/CMakeFiles/thrust.example.device_ptr.dir/device_ptr.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.device_ptr.dir/device_ptr.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.device_ptr +thrust_example_device_ptr_OBJECTS = \ +"CMakeFiles/thrust.example.device_ptr.dir/device_ptr.cu.o" + +# External object files for target thrust.example.device_ptr +thrust_example_device_ptr_EXTERNAL_OBJECTS = + +bin/thrust.example.device_ptr: examples/CMakeFiles/thrust.example.device_ptr.dir/device_ptr.cu.o +bin/thrust.example.device_ptr: examples/CMakeFiles/thrust.example.device_ptr.dir/build.make +bin/thrust.example.device_ptr: examples/CMakeFiles/thrust.example.device_ptr.dir/linkLibs.rsp +bin/thrust.example.device_ptr: examples/CMakeFiles/thrust.example.device_ptr.dir/objects1.rsp +bin/thrust.example.device_ptr: examples/CMakeFiles/thrust.example.device_ptr.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../bin/thrust.example.device_ptr" + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.device_ptr.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.example.device_ptr.dir/build: bin/thrust.example.device_ptr +.PHONY : examples/CMakeFiles/thrust.example.device_ptr.dir/build + +examples/CMakeFiles/thrust.example.device_ptr.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.device_ptr.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.example.device_ptr.dir/clean + +examples/CMakeFiles/thrust.example.device_ptr.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.device_ptr.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.example.device_ptr.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.example.device_ptr.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.example.device_ptr.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..2f16a637005c199d67331fd8cc8306eb278357e3 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.device_ptr.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../bin/thrust.example.device_ptr" + "../bin/thrust.example.device_ptr.pdb" + "CMakeFiles/thrust.example.device_ptr.dir/device_ptr.cu.o" + "CMakeFiles/thrust.example.device_ptr.dir/device_ptr.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.device_ptr.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.example.device_ptr.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.example.device_ptr.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..29c20df873e28b87588030309f0a5a3968261b87 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.device_ptr.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.device_ptr. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.device_ptr.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.example.device_ptr.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..c0aa606660a20b01c1dda3af71359d9729fea79b --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.device_ptr.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.device_ptr. diff --git a/build/examples/CMakeFiles/thrust.example.device_ptr.dir/depend.make b/build/examples/CMakeFiles/thrust.example.device_ptr.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..790aeeb76bd8f374f242471c9280c21839ea9a5a --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.device_ptr.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.device_ptr. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.device_ptr.dir/device_ptr.cu.o b/build/examples/CMakeFiles/thrust.example.device_ptr.dir/device_ptr.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..9bc22725ba20011e096b812fe4a316b5053069c1 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.device_ptr.dir/device_ptr.cu.o @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:40e89c50cf149a72c620943c7d76a699b75e57a8aae33925ee2631b94d8239b2 +size 1465584 diff --git a/build/examples/CMakeFiles/thrust.example.device_ptr.dir/device_ptr.cu.o.d b/build/examples/CMakeFiles/thrust.example.device_ptr.dir/device_ptr.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..57a091f68d3eb525393022913c7e243d0a248c1b --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.device_ptr.dir/device_ptr.cu.o.d @@ -0,0 +1,736 @@ +examples/CMakeFiles/thrust.example.device_ptr.dir/device_ptr.cu.o : /home/ubuntu/thrust/examples/device_ptr.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cstdio \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/invoke.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /usr/include/c++/9/iostream \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/c++/9/limits \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_ptr.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_malloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_malloc.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_free.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/sequence.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/sequence.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tabulate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tabulate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/counting_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/counting_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/numeric_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/iterator/is_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/permutation_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/permutation_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cstdint.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/dispatch.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/single_pass_scan_operators.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/cpp_compatibility.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_queue.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_math.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_discontinuity.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/minmax.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mpl/math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/make_unsigned_special.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/choose_offset.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking_commutative_only.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_warp_reductions.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_even_share.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_mapping.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/arg_index_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/constant_input_iterator.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce_by_key.h diff --git a/build/examples/CMakeFiles/thrust.example.device_ptr.dir/flags.make b/build/examples/CMakeFiles/thrust.example.device_ptr.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..f9e98e834df45b78c08b9b971037f197aac9b288 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.device_ptr.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.device_ptr.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/CMakeFiles/thrust.example.device_ptr.dir/includes_CUDA.rsp b/build/examples/CMakeFiles/thrust.example.device_ptr.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.device_ptr.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/CMakeFiles/thrust.example.device_ptr.dir/link.txt b/build/examples/CMakeFiles/thrust.example.device_ptr.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..b2878e2264d8bb7a335bab7dac2414e9162d7f79 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.device_ptr.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.device_ptr.dir/objects1.rsp -o ../bin/thrust.example.device_ptr @CMakeFiles/thrust.example.device_ptr.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/CMakeFiles/thrust.example.device_ptr.dir/linkLibs.rsp b/build/examples/CMakeFiles/thrust.example.device_ptr.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.device_ptr.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/CMakeFiles/thrust.example.device_ptr.dir/objects1.rsp b/build/examples/CMakeFiles/thrust.example.device_ptr.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..f296b1bded60586178b20a410299415e10dfb5a6 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.device_ptr.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.device_ptr.dir/device_ptr.cu.o diff --git a/build/examples/CMakeFiles/thrust.example.device_ptr.dir/progress.make b/build/examples/CMakeFiles/thrust.example.device_ptr.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..6c287f17b23171ee8abc97d23b8f8a3bfa7225de --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.device_ptr.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = + diff --git a/build/examples/CMakeFiles/thrust.example.discrete_voronoi.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.example.discrete_voronoi.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..fce4707627bcc5df1f1f0b40b68cdc2328f3645d --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.discrete_voronoi.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/discrete_voronoi.cu" "examples/CMakeFiles/thrust.example.discrete_voronoi.dir/discrete_voronoi.cu.o" "gcc" "examples/CMakeFiles/thrust.example.discrete_voronoi.dir/discrete_voronoi.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.example.discrete_voronoi.dir/build.make b/build/examples/CMakeFiles/thrust.example.discrete_voronoi.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..1746ce6ebebe25cf48a21b555a4889a42863474f --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.discrete_voronoi.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/CMakeFiles/thrust.example.discrete_voronoi.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/CMakeFiles/thrust.example.discrete_voronoi.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.example.discrete_voronoi.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/CMakeFiles/thrust.example.discrete_voronoi.dir/flags.make + +examples/CMakeFiles/thrust.example.discrete_voronoi.dir/discrete_voronoi.cu.o: examples/CMakeFiles/thrust.example.discrete_voronoi.dir/flags.make +examples/CMakeFiles/thrust.example.discrete_voronoi.dir/discrete_voronoi.cu.o: examples/CMakeFiles/thrust.example.discrete_voronoi.dir/includes_CUDA.rsp +examples/CMakeFiles/thrust.example.discrete_voronoi.dir/discrete_voronoi.cu.o: /home/ubuntu/thrust/examples/discrete_voronoi.cu +examples/CMakeFiles/thrust.example.discrete_voronoi.dir/discrete_voronoi.cu.o: examples/CMakeFiles/thrust.example.discrete_voronoi.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/CMakeFiles/thrust.example.discrete_voronoi.dir/discrete_voronoi.cu.o" + cd /home/ubuntu/thrust/build/examples && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/CMakeFiles/thrust.example.discrete_voronoi.dir/discrete_voronoi.cu.o -MF CMakeFiles/thrust.example.discrete_voronoi.dir/discrete_voronoi.cu.o.d -x cu -c /home/ubuntu/thrust/examples/discrete_voronoi.cu -o CMakeFiles/thrust.example.discrete_voronoi.dir/discrete_voronoi.cu.o + +examples/CMakeFiles/thrust.example.discrete_voronoi.dir/discrete_voronoi.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.discrete_voronoi.dir/discrete_voronoi.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/CMakeFiles/thrust.example.discrete_voronoi.dir/discrete_voronoi.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.discrete_voronoi.dir/discrete_voronoi.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.discrete_voronoi +thrust_example_discrete_voronoi_OBJECTS = \ +"CMakeFiles/thrust.example.discrete_voronoi.dir/discrete_voronoi.cu.o" + +# External object files for target thrust.example.discrete_voronoi +thrust_example_discrete_voronoi_EXTERNAL_OBJECTS = + +bin/thrust.example.discrete_voronoi: examples/CMakeFiles/thrust.example.discrete_voronoi.dir/discrete_voronoi.cu.o +bin/thrust.example.discrete_voronoi: examples/CMakeFiles/thrust.example.discrete_voronoi.dir/build.make +bin/thrust.example.discrete_voronoi: examples/CMakeFiles/thrust.example.discrete_voronoi.dir/linkLibs.rsp +bin/thrust.example.discrete_voronoi: examples/CMakeFiles/thrust.example.discrete_voronoi.dir/objects1.rsp +bin/thrust.example.discrete_voronoi: examples/CMakeFiles/thrust.example.discrete_voronoi.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../bin/thrust.example.discrete_voronoi" + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.discrete_voronoi.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.example.discrete_voronoi.dir/build: bin/thrust.example.discrete_voronoi +.PHONY : examples/CMakeFiles/thrust.example.discrete_voronoi.dir/build + +examples/CMakeFiles/thrust.example.discrete_voronoi.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.discrete_voronoi.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.example.discrete_voronoi.dir/clean + +examples/CMakeFiles/thrust.example.discrete_voronoi.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.discrete_voronoi.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.example.discrete_voronoi.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.example.discrete_voronoi.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.example.discrete_voronoi.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..6ea2d399f7c9ccc2fa10f5f0fe6a2a54b76f83a1 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.discrete_voronoi.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../bin/thrust.example.discrete_voronoi" + "../bin/thrust.example.discrete_voronoi.pdb" + "CMakeFiles/thrust.example.discrete_voronoi.dir/discrete_voronoi.cu.o" + "CMakeFiles/thrust.example.discrete_voronoi.dir/discrete_voronoi.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.discrete_voronoi.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.example.discrete_voronoi.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.example.discrete_voronoi.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..b87f94eb5dddf514ef7c4e1e89f10e560511ed14 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.discrete_voronoi.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.discrete_voronoi. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.discrete_voronoi.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.example.discrete_voronoi.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..c6a55ce111185d75c67736a3fa8ed5657222260f --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.discrete_voronoi.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.discrete_voronoi. diff --git a/build/examples/CMakeFiles/thrust.example.discrete_voronoi.dir/depend.make b/build/examples/CMakeFiles/thrust.example.discrete_voronoi.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..2f90cc966248e1b2929539944f5e16c9824ede15 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.discrete_voronoi.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.discrete_voronoi. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.discrete_voronoi.dir/discrete_voronoi.cu.o b/build/examples/CMakeFiles/thrust.example.discrete_voronoi.dir/discrete_voronoi.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..b79eeed4a477d720398bcdd678571ca8e1a31345 Binary files /dev/null and b/build/examples/CMakeFiles/thrust.example.discrete_voronoi.dir/discrete_voronoi.cu.o differ diff --git a/build/examples/CMakeFiles/thrust.example.discrete_voronoi.dir/discrete_voronoi.cu.o.d b/build/examples/CMakeFiles/thrust.example.discrete_voronoi.dir/discrete_voronoi.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..dfc22229b473fbff2661e7d96e3b93312c066c6e --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.discrete_voronoi.dir/discrete_voronoi.cu.o.d @@ -0,0 +1,884 @@ +examples/CMakeFiles/thrust.example.discrete_voronoi.dir/discrete_voronoi.cu.o : /home/ubuntu/thrust/examples/discrete_voronoi.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/host_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cstdio \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/invoke.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/reverse_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /usr/include/c++/9/limits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /usr/include/c++/9/iostream \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /usr/include/c++/9/vector \ + /usr/include/c++/9/bits/stl_vector.h \ + /usr/include/c++/9/bits/stl_bvector.h \ + /usr/include/c++/9/bits/vector.tcc \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/overlapped_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/iterator/is_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/permutation_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/permutation_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cstdint.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/dispatch.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/single_pass_scan_operators.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/cpp_compatibility.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_queue.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_math.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_discontinuity.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/minmax.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mpl/math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/make_unsigned_special.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/choose_offset.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking_commutative_only.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_warp_reductions.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_even_share.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_mapping.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/arg_index_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/constant_input_iterator.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/counting_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/counting_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/numeric_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_ptr.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/validator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/polymorphic_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/device_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/host_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/new.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/fancy_pointer_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/extrema.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/extrema.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/get_iterator_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/adjacent_difference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/adjacent_difference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/merge.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/partition.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/partition.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/remove.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/remove.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/set_operations.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/set_operations.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reverse.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reverse.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_merge_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_merge_sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/merge.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/merge.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/insertion_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy_backward.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_primitive_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_primitive_sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_radix_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_radix_sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy_if.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_select.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_unique_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_unique_by_key.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/unique.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/unique.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/unique_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/unique_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform_reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform_reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/discard_block_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/random_core_access.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/discard_block_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/linear_congruential_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_congruential_engine_discard.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/mod.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_congruential_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/linear_feedback_shift_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_feedback_shift_engine_wordmask.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_feedback_shift_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/subtract_with_carry_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/subtract_with_carry_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/xor_combine_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/xor_combine_engine_max.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/xor_combine_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/uniform_int_distribution.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/uniform_int_distribution.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/uniform_real_distribution.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/uniform_real_distribution.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/normal_distribution.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/normal_distribution_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/normal_distribution.inl \ + /usr/include/math_constants.h \ + /usr/include/c++/9/iomanip \ + /usr/include/c++/9/locale \ + /usr/include/c++/9/bits/locale_facets_nonio.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/time_members.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/messages_members.h \ + /usr/include/libintl.h \ + /usr/include/c++/9/bits/codecvt.h \ + /usr/include/c++/9/bits/locale_facets_nonio.tcc \ + /usr/include/c++/9/bits/locale_conv.h \ + /usr/include/c++/9/bits/quoted_string.h \ + /usr/include/c++/9/sstream \ + /usr/include/c++/9/bits/sstream.tcc \ + /usr/include/c++/9/fstream \ + /usr/include/x86_64-linux-gnu/c++/9/bits/basic_file.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++io.h \ + /usr/include/c++/9/bits/fstream.tcc \ + /home/ubuntu/thrust/examples/include/timer.h diff --git a/build/examples/CMakeFiles/thrust.example.discrete_voronoi.dir/flags.make b/build/examples/CMakeFiles/thrust.example.discrete_voronoi.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..53f55c592ae1aefd0eb6e273aa5b6cacec845e75 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.discrete_voronoi.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.discrete_voronoi.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/CMakeFiles/thrust.example.discrete_voronoi.dir/includes_CUDA.rsp b/build/examples/CMakeFiles/thrust.example.discrete_voronoi.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.discrete_voronoi.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/CMakeFiles/thrust.example.discrete_voronoi.dir/link.txt b/build/examples/CMakeFiles/thrust.example.discrete_voronoi.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..4e5d8fe6c66c94beb74146a1beabe4183cb9f488 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.discrete_voronoi.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.discrete_voronoi.dir/objects1.rsp -o ../bin/thrust.example.discrete_voronoi @CMakeFiles/thrust.example.discrete_voronoi.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/CMakeFiles/thrust.example.discrete_voronoi.dir/linkLibs.rsp b/build/examples/CMakeFiles/thrust.example.discrete_voronoi.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.discrete_voronoi.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/CMakeFiles/thrust.example.discrete_voronoi.dir/objects1.rsp b/build/examples/CMakeFiles/thrust.example.discrete_voronoi.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..9aaed6c840a052fcb02558aaf7be11ff6f53ba38 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.discrete_voronoi.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.discrete_voronoi.dir/discrete_voronoi.cu.o diff --git a/build/examples/CMakeFiles/thrust.example.discrete_voronoi.dir/progress.make b/build/examples/CMakeFiles/thrust.example.discrete_voronoi.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..6c287f17b23171ee8abc97d23b8f8a3bfa7225de --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.discrete_voronoi.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = + diff --git a/build/examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..a74608225ef53b7b84f9f190d97d36d1c8a00c6b --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/dot_products_with_zip.cu" "examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/dot_products_with_zip.cu.o" "gcc" "examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/dot_products_with_zip.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/build.make b/build/examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..50f31fa854940bff60255f870c38db9a60806d59 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/flags.make + +examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/dot_products_with_zip.cu.o: examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/flags.make +examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/dot_products_with_zip.cu.o: examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/includes_CUDA.rsp +examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/dot_products_with_zip.cu.o: /home/ubuntu/thrust/examples/dot_products_with_zip.cu +examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/dot_products_with_zip.cu.o: examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/dot_products_with_zip.cu.o" + cd /home/ubuntu/thrust/build/examples && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/dot_products_with_zip.cu.o -MF CMakeFiles/thrust.example.dot_products_with_zip.dir/dot_products_with_zip.cu.o.d -x cu -c /home/ubuntu/thrust/examples/dot_products_with_zip.cu -o CMakeFiles/thrust.example.dot_products_with_zip.dir/dot_products_with_zip.cu.o + +examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/dot_products_with_zip.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.dot_products_with_zip.dir/dot_products_with_zip.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/dot_products_with_zip.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.dot_products_with_zip.dir/dot_products_with_zip.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.dot_products_with_zip +thrust_example_dot_products_with_zip_OBJECTS = \ +"CMakeFiles/thrust.example.dot_products_with_zip.dir/dot_products_with_zip.cu.o" + +# External object files for target thrust.example.dot_products_with_zip +thrust_example_dot_products_with_zip_EXTERNAL_OBJECTS = + +bin/thrust.example.dot_products_with_zip: examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/dot_products_with_zip.cu.o +bin/thrust.example.dot_products_with_zip: examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/build.make +bin/thrust.example.dot_products_with_zip: examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/linkLibs.rsp +bin/thrust.example.dot_products_with_zip: examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/objects1.rsp +bin/thrust.example.dot_products_with_zip: examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../bin/thrust.example.dot_products_with_zip" + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.dot_products_with_zip.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/build: bin/thrust.example.dot_products_with_zip +.PHONY : examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/build + +examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.dot_products_with_zip.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/clean + +examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..950ae6407f06eaecd1adb80c4f9154c7951e63f4 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../bin/thrust.example.dot_products_with_zip" + "../bin/thrust.example.dot_products_with_zip.pdb" + "CMakeFiles/thrust.example.dot_products_with_zip.dir/dot_products_with_zip.cu.o" + "CMakeFiles/thrust.example.dot_products_with_zip.dir/dot_products_with_zip.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.dot_products_with_zip.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..a3a6e8655e22a71036f78606b2702346c47a257f --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.dot_products_with_zip. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..b81dd3316a5d689c2e108c4d7f6b2de15d70ba6e --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.dot_products_with_zip. diff --git a/build/examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/depend.make b/build/examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..091e92ada7fbb5420823e0b4c88d3ec597dbb963 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.dot_products_with_zip. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/dot_products_with_zip.cu.o b/build/examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/dot_products_with_zip.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..5f28b9bf3888974c8b451a4aa624ad09ab31a783 Binary files /dev/null and b/build/examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/dot_products_with_zip.cu.o differ diff --git a/build/examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/dot_products_with_zip.cu.o.d b/build/examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/dot_products_with_zip.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..d367b0d5e1c5493fbb1e0396c81738182686e011 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/dot_products_with_zip.cu.o.d @@ -0,0 +1,792 @@ +examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/dot_products_with_zip.cu.o : /home/ubuntu/thrust/examples/dot_products_with_zip.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/host_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cstdio \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/invoke.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/reverse_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /usr/include/c++/9/limits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /usr/include/c++/9/iostream \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /usr/include/c++/9/vector \ + /usr/include/c++/9/bits/stl_vector.h \ + /usr/include/c++/9/bits/stl_bvector.h \ + /usr/include/c++/9/bits/vector.tcc \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/overlapped_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/iterator/is_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/permutation_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/permutation_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cstdint.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/dispatch.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/single_pass_scan_operators.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/cpp_compatibility.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_queue.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_math.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_discontinuity.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/minmax.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mpl/math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/make_unsigned_special.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/choose_offset.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking_commutative_only.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_warp_reductions.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_even_share.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_mapping.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/arg_index_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/constant_input_iterator.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/counting_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/counting_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/numeric_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_ptr.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/validator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/polymorphic_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/device_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/host_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/new.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/fancy_pointer_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/discard_block_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/random_core_access.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/discard_block_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/linear_congruential_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_congruential_engine_discard.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/mod.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_congruential_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/linear_feedback_shift_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_feedback_shift_engine_wordmask.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_feedback_shift_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/subtract_with_carry_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/subtract_with_carry_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/xor_combine_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/xor_combine_engine_max.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/xor_combine_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/uniform_int_distribution.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/uniform_int_distribution.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/uniform_real_distribution.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/uniform_real_distribution.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/normal_distribution.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/normal_distribution_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/normal_distribution.inl \ + /usr/include/math_constants.h diff --git a/build/examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/flags.make b/build/examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..4a2f374cb7cac6cd3eb519b4e37164b5b1d0105a --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.dot_products_with_zip.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/includes_CUDA.rsp b/build/examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/link.txt b/build/examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..76fddfa8b7d2f2ff57f687932a06bd358f1c0da1 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.dot_products_with_zip.dir/objects1.rsp -o ../bin/thrust.example.dot_products_with_zip @CMakeFiles/thrust.example.dot_products_with_zip.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/linkLibs.rsp b/build/examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/objects1.rsp b/build/examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..4e30522f48a35d3dc4ec2252b87a30afcd27378f --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.dot_products_with_zip.dir/dot_products_with_zip.cu.o diff --git a/build/examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/progress.make b/build/examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..6c287f17b23171ee8abc97d23b8f8a3bfa7225de --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = + diff --git a/build/examples/CMakeFiles/thrust.example.expand.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.example.expand.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..0be1233901e5dfb835872f5bc1a4179c5392b534 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.expand.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/expand.cu" "examples/CMakeFiles/thrust.example.expand.dir/expand.cu.o" "gcc" "examples/CMakeFiles/thrust.example.expand.dir/expand.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.example.expand.dir/build.make b/build/examples/CMakeFiles/thrust.example.expand.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..0f45f0e8f55e2b4b5af21510f8df33a471b3b6aa --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.expand.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/CMakeFiles/thrust.example.expand.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/CMakeFiles/thrust.example.expand.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.example.expand.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/CMakeFiles/thrust.example.expand.dir/flags.make + +examples/CMakeFiles/thrust.example.expand.dir/expand.cu.o: examples/CMakeFiles/thrust.example.expand.dir/flags.make +examples/CMakeFiles/thrust.example.expand.dir/expand.cu.o: examples/CMakeFiles/thrust.example.expand.dir/includes_CUDA.rsp +examples/CMakeFiles/thrust.example.expand.dir/expand.cu.o: /home/ubuntu/thrust/examples/expand.cu +examples/CMakeFiles/thrust.example.expand.dir/expand.cu.o: examples/CMakeFiles/thrust.example.expand.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/CMakeFiles/thrust.example.expand.dir/expand.cu.o" + cd /home/ubuntu/thrust/build/examples && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/CMakeFiles/thrust.example.expand.dir/expand.cu.o -MF CMakeFiles/thrust.example.expand.dir/expand.cu.o.d -x cu -c /home/ubuntu/thrust/examples/expand.cu -o CMakeFiles/thrust.example.expand.dir/expand.cu.o + +examples/CMakeFiles/thrust.example.expand.dir/expand.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.expand.dir/expand.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/CMakeFiles/thrust.example.expand.dir/expand.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.expand.dir/expand.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.expand +thrust_example_expand_OBJECTS = \ +"CMakeFiles/thrust.example.expand.dir/expand.cu.o" + +# External object files for target thrust.example.expand +thrust_example_expand_EXTERNAL_OBJECTS = + +bin/thrust.example.expand: examples/CMakeFiles/thrust.example.expand.dir/expand.cu.o +bin/thrust.example.expand: examples/CMakeFiles/thrust.example.expand.dir/build.make +bin/thrust.example.expand: examples/CMakeFiles/thrust.example.expand.dir/linkLibs.rsp +bin/thrust.example.expand: examples/CMakeFiles/thrust.example.expand.dir/objects1.rsp +bin/thrust.example.expand: examples/CMakeFiles/thrust.example.expand.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../bin/thrust.example.expand" + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.expand.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.example.expand.dir/build: bin/thrust.example.expand +.PHONY : examples/CMakeFiles/thrust.example.expand.dir/build + +examples/CMakeFiles/thrust.example.expand.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.expand.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.example.expand.dir/clean + +examples/CMakeFiles/thrust.example.expand.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.expand.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.example.expand.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.example.expand.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.example.expand.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..87e12d3fc0fc8f54b7193c35defeef0cddee4332 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.expand.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../bin/thrust.example.expand" + "../bin/thrust.example.expand.pdb" + "CMakeFiles/thrust.example.expand.dir/expand.cu.o" + "CMakeFiles/thrust.example.expand.dir/expand.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.expand.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.example.expand.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.example.expand.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..1ae883ca78ad03d6a93847695c7d9ed913ce3113 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.expand.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.expand. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.expand.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.example.expand.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..6f2723b85c8d587d4b44a186da65f5990c8b415c --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.expand.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.expand. diff --git a/build/examples/CMakeFiles/thrust.example.expand.dir/depend.make b/build/examples/CMakeFiles/thrust.example.expand.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..bf317daefb42298ee3e352687970c1287712a017 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.expand.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.expand. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.expand.dir/expand.cu.o b/build/examples/CMakeFiles/thrust.example.expand.dir/expand.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..0c3fb3b2cb0cbcec3b60c970700f5bf7b92c3bd1 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.expand.dir/expand.cu.o @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3cf3bd00331af41037058c42d3cec080dfdb558ae5c8c1b62dd4eec76453c88d +size 3321088 diff --git a/build/examples/CMakeFiles/thrust.example.expand.dir/expand.cu.o.d b/build/examples/CMakeFiles/thrust.example.expand.dir/expand.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..c88ca6d96db3ca639570a0246c54372747b1c56c --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.expand.dir/expand.cu.o.d @@ -0,0 +1,788 @@ +examples/CMakeFiles/thrust.example.expand.dir/expand.cu.o : /home/ubuntu/thrust/examples/expand.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /usr/include/c++/9/cstdio \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/invoke.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/reverse_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /usr/include/c++/9/limits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /usr/include/c++/9/iostream \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /usr/include/c++/9/vector \ + /usr/include/c++/9/bits/stl_vector.h \ + /usr/include/c++/9/bits/stl_bvector.h \ + /usr/include/c++/9/bits/vector.tcc \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/overlapped_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/iterator/is_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/permutation_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/permutation_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cstdint.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/dispatch.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/single_pass_scan_operators.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/cpp_compatibility.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_queue.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_math.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_discontinuity.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/minmax.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mpl/math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/make_unsigned_special.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/choose_offset.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking_commutative_only.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_warp_reductions.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_even_share.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_mapping.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/arg_index_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/constant_input_iterator.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/counting_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/counting_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/numeric_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_ptr.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/validator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/polymorphic_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/device_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/host_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/new.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/fancy_pointer_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/gather.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/gather.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/gather.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/gather.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/gather.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/gather.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/gather.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy_if.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_select.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_unique_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_unique_by_key.cuh diff --git a/build/examples/CMakeFiles/thrust.example.expand.dir/flags.make b/build/examples/CMakeFiles/thrust.example.expand.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..69340577c4d776fcf2330042319bc70d9045e572 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.expand.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.expand.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/CMakeFiles/thrust.example.expand.dir/includes_CUDA.rsp b/build/examples/CMakeFiles/thrust.example.expand.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.expand.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/CMakeFiles/thrust.example.expand.dir/link.txt b/build/examples/CMakeFiles/thrust.example.expand.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..b4937eb7ea40cde56d1f10858d8440cf89edc251 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.expand.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.expand.dir/objects1.rsp -o ../bin/thrust.example.expand @CMakeFiles/thrust.example.expand.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/CMakeFiles/thrust.example.expand.dir/linkLibs.rsp b/build/examples/CMakeFiles/thrust.example.expand.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.expand.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/CMakeFiles/thrust.example.expand.dir/objects1.rsp b/build/examples/CMakeFiles/thrust.example.expand.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d1ce7809acf27b07683000982198f56e73ba0523 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.expand.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.expand.dir/expand.cu.o diff --git a/build/examples/CMakeFiles/thrust.example.expand.dir/progress.make b/build/examples/CMakeFiles/thrust.example.expand.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..6c287f17b23171ee8abc97d23b8f8a3bfa7225de --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.expand.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = + diff --git a/build/examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..a484bab37923a6adfd63f2490bc5d8fca45d0ce9 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/fill_copy_sequence.cu" "examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/fill_copy_sequence.cu.o" "gcc" "examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/fill_copy_sequence.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/build.make b/build/examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..718ff7151fd6354e8455f12c4eb4218699105c72 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/flags.make + +examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/fill_copy_sequence.cu.o: examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/flags.make +examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/fill_copy_sequence.cu.o: examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/includes_CUDA.rsp +examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/fill_copy_sequence.cu.o: /home/ubuntu/thrust/examples/fill_copy_sequence.cu +examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/fill_copy_sequence.cu.o: examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/fill_copy_sequence.cu.o" + cd /home/ubuntu/thrust/build/examples && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/fill_copy_sequence.cu.o -MF CMakeFiles/thrust.example.fill_copy_sequence.dir/fill_copy_sequence.cu.o.d -x cu -c /home/ubuntu/thrust/examples/fill_copy_sequence.cu -o CMakeFiles/thrust.example.fill_copy_sequence.dir/fill_copy_sequence.cu.o + +examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/fill_copy_sequence.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.fill_copy_sequence.dir/fill_copy_sequence.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/fill_copy_sequence.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.fill_copy_sequence.dir/fill_copy_sequence.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.fill_copy_sequence +thrust_example_fill_copy_sequence_OBJECTS = \ +"CMakeFiles/thrust.example.fill_copy_sequence.dir/fill_copy_sequence.cu.o" + +# External object files for target thrust.example.fill_copy_sequence +thrust_example_fill_copy_sequence_EXTERNAL_OBJECTS = + +bin/thrust.example.fill_copy_sequence: examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/fill_copy_sequence.cu.o +bin/thrust.example.fill_copy_sequence: examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/build.make +bin/thrust.example.fill_copy_sequence: examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/linkLibs.rsp +bin/thrust.example.fill_copy_sequence: examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/objects1.rsp +bin/thrust.example.fill_copy_sequence: examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../bin/thrust.example.fill_copy_sequence" + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.fill_copy_sequence.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/build: bin/thrust.example.fill_copy_sequence +.PHONY : examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/build + +examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.fill_copy_sequence.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/clean + +examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..507569263bc476d3831d6f609d90a68a45efacf5 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../bin/thrust.example.fill_copy_sequence" + "../bin/thrust.example.fill_copy_sequence.pdb" + "CMakeFiles/thrust.example.fill_copy_sequence.dir/fill_copy_sequence.cu.o" + "CMakeFiles/thrust.example.fill_copy_sequence.dir/fill_copy_sequence.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.fill_copy_sequence.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..d39c1502dd707d94de6dc818676fbd544e0a860e --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.fill_copy_sequence. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..5bad0739ba390997138618d8ec54bd354b4d8eb5 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.fill_copy_sequence. diff --git a/build/examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/depend.make b/build/examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..256107db2de9a6cc4f2a706381d5e3a1b27d1383 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.fill_copy_sequence. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/fill_copy_sequence.cu.o b/build/examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/fill_copy_sequence.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..1488030c816fc78952ac206c5693055f1cdd5f4c Binary files /dev/null and b/build/examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/fill_copy_sequence.cu.o differ diff --git a/build/examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/fill_copy_sequence.cu.o.d b/build/examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/fill_copy_sequence.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..c03da777fb818937d2123273cffcf003981a9980 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/fill_copy_sequence.cu.o.d @@ -0,0 +1,796 @@ +examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/fill_copy_sequence.cu.o : /home/ubuntu/thrust/examples/fill_copy_sequence.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/host_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cstdio \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/invoke.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/reverse_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /usr/include/c++/9/limits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /usr/include/c++/9/iostream \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /usr/include/c++/9/vector \ + /usr/include/c++/9/bits/stl_vector.h \ + /usr/include/c++/9/bits/stl_bvector.h \ + /usr/include/c++/9/bits/vector.tcc \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/overlapped_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/iterator/is_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/permutation_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/permutation_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cstdint.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/dispatch.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/single_pass_scan_operators.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/cpp_compatibility.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_queue.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_math.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_discontinuity.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/minmax.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mpl/math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/make_unsigned_special.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/choose_offset.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking_commutative_only.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_warp_reductions.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_even_share.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_mapping.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/arg_index_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/constant_input_iterator.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/counting_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/counting_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/numeric_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_ptr.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/validator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/polymorphic_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/device_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/host_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/new.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/fancy_pointer_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy_if.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_select.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_unique_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_unique_by_key.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/sequence.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/sequence.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tabulate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tabulate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/sequence.h diff --git a/build/examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/flags.make b/build/examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..db8ecfd1db254c23b80ce4ccb772f886b9046ae3 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.fill_copy_sequence.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/includes_CUDA.rsp b/build/examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/link.txt b/build/examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..7b78fd8871d064460ea43017ea5fca6572ce97f0 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.fill_copy_sequence.dir/objects1.rsp -o ../bin/thrust.example.fill_copy_sequence @CMakeFiles/thrust.example.fill_copy_sequence.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/linkLibs.rsp b/build/examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/objects1.rsp b/build/examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..3ae9b5fc87d1009e8831a489b1b3c54fbcbe3e57 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.fill_copy_sequence.dir/fill_copy_sequence.cu.o diff --git a/build/examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/progress.make b/build/examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..a0338d9e672cf6e4608e06e5a8de19a08b043db0 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = 43 + diff --git a/build/examples/CMakeFiles/thrust.example.histogram.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.example.histogram.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..8cbbb71022280b94fd56e3a94f6d3ea0d98f91e1 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.histogram.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/histogram.cu" "examples/CMakeFiles/thrust.example.histogram.dir/histogram.cu.o" "gcc" "examples/CMakeFiles/thrust.example.histogram.dir/histogram.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.example.histogram.dir/build.make b/build/examples/CMakeFiles/thrust.example.histogram.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..70c4dc9945424e13f6d8cf61365b2541ec5cc881 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.histogram.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/CMakeFiles/thrust.example.histogram.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/CMakeFiles/thrust.example.histogram.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.example.histogram.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/CMakeFiles/thrust.example.histogram.dir/flags.make + +examples/CMakeFiles/thrust.example.histogram.dir/histogram.cu.o: examples/CMakeFiles/thrust.example.histogram.dir/flags.make +examples/CMakeFiles/thrust.example.histogram.dir/histogram.cu.o: examples/CMakeFiles/thrust.example.histogram.dir/includes_CUDA.rsp +examples/CMakeFiles/thrust.example.histogram.dir/histogram.cu.o: /home/ubuntu/thrust/examples/histogram.cu +examples/CMakeFiles/thrust.example.histogram.dir/histogram.cu.o: examples/CMakeFiles/thrust.example.histogram.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/CMakeFiles/thrust.example.histogram.dir/histogram.cu.o" + cd /home/ubuntu/thrust/build/examples && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/CMakeFiles/thrust.example.histogram.dir/histogram.cu.o -MF CMakeFiles/thrust.example.histogram.dir/histogram.cu.o.d -x cu -c /home/ubuntu/thrust/examples/histogram.cu -o CMakeFiles/thrust.example.histogram.dir/histogram.cu.o + +examples/CMakeFiles/thrust.example.histogram.dir/histogram.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.histogram.dir/histogram.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/CMakeFiles/thrust.example.histogram.dir/histogram.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.histogram.dir/histogram.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.histogram +thrust_example_histogram_OBJECTS = \ +"CMakeFiles/thrust.example.histogram.dir/histogram.cu.o" + +# External object files for target thrust.example.histogram +thrust_example_histogram_EXTERNAL_OBJECTS = + +bin/thrust.example.histogram: examples/CMakeFiles/thrust.example.histogram.dir/histogram.cu.o +bin/thrust.example.histogram: examples/CMakeFiles/thrust.example.histogram.dir/build.make +bin/thrust.example.histogram: examples/CMakeFiles/thrust.example.histogram.dir/linkLibs.rsp +bin/thrust.example.histogram: examples/CMakeFiles/thrust.example.histogram.dir/objects1.rsp +bin/thrust.example.histogram: examples/CMakeFiles/thrust.example.histogram.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../bin/thrust.example.histogram" + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.histogram.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.example.histogram.dir/build: bin/thrust.example.histogram +.PHONY : examples/CMakeFiles/thrust.example.histogram.dir/build + +examples/CMakeFiles/thrust.example.histogram.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.histogram.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.example.histogram.dir/clean + +examples/CMakeFiles/thrust.example.histogram.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.histogram.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.example.histogram.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.example.histogram.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.example.histogram.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3a1ab98dd35501ac6b31f66bb3cd9cd2d57387af --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.histogram.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../bin/thrust.example.histogram" + "../bin/thrust.example.histogram.pdb" + "CMakeFiles/thrust.example.histogram.dir/histogram.cu.o" + "CMakeFiles/thrust.example.histogram.dir/histogram.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.histogram.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.example.histogram.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.example.histogram.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..660d03c3916b63bdb8579dc97dbcf69be0d77c03 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.histogram.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.histogram. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.histogram.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.example.histogram.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..f29575555dee0aaea81e324b2b044713ee964da1 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.histogram.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.histogram. diff --git a/build/examples/CMakeFiles/thrust.example.histogram.dir/depend.make b/build/examples/CMakeFiles/thrust.example.histogram.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..9720a1c16883f895012e0508e857618ffdcb77b8 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.histogram.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.histogram. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.histogram.dir/flags.make b/build/examples/CMakeFiles/thrust.example.histogram.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..17876a01ef0cc520a5083d9b6b964993eb9aaa86 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.histogram.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.histogram.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/CMakeFiles/thrust.example.histogram.dir/histogram.cu.o b/build/examples/CMakeFiles/thrust.example.histogram.dir/histogram.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..42d8ab6bac1c34b7d882d41c4a20edd4c87e0d98 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.histogram.dir/histogram.cu.o @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e108c158bd2b9ee1de53dabc34c03fcd821665e158f8798924e107de227b6684 +size 8147648 diff --git a/build/examples/CMakeFiles/thrust.example.histogram.dir/histogram.cu.o.d b/build/examples/CMakeFiles/thrust.example.histogram.dir/histogram.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..f0688acac1e844078124de0d97b1fee0aaa50449 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.histogram.dir/histogram.cu.o.d @@ -0,0 +1,944 @@ +examples/CMakeFiles/thrust.example.histogram.dir/histogram.cu.o : /home/ubuntu/thrust/examples/histogram.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /usr/include/c++/9/cstdio \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/invoke.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/reverse_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /usr/include/c++/9/limits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /usr/include/c++/9/iostream \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /usr/include/c++/9/vector \ + /usr/include/c++/9/bits/stl_vector.h \ + /usr/include/c++/9/bits/stl_bvector.h \ + /usr/include/c++/9/bits/vector.tcc \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/overlapped_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/iterator/is_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/permutation_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/permutation_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cstdint.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/dispatch.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/single_pass_scan_operators.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/cpp_compatibility.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_queue.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_math.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_discontinuity.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/minmax.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mpl/math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/make_unsigned_special.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/choose_offset.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking_commutative_only.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_warp_reductions.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_even_share.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_mapping.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/arg_index_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/constant_input_iterator.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/counting_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/counting_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/numeric_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_ptr.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/validator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/polymorphic_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/device_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/host_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/new.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/fancy_pointer_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/host_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reverse.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reverse.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_merge_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_merge_sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/merge.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/merge.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/merge.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/extrema.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/extrema.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/get_iterator_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/adjacent_difference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/adjacent_difference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/partition.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/partition.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/remove.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/remove.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/set_operations.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/set_operations.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/unique.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/unique.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/unique_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/unique_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform_reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform_reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/insertion_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy_backward.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_primitive_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_primitive_sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_radix_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_radix_sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy_if.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_select.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_unique_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_unique_by_key.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/sequence.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/sequence.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tabulate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tabulate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/trivial_sequence.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_radix_sort.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_radix_sort.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_radix_sort_downsweep.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_radix_rank.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/radix_rank_sort_operations.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/tuple \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_radix_sort_histogram.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_radix_sort_onesweep.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_radix_sort_upsweep.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_radix_sort.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_merge_sort.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_merge_sort.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_merge_sort.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/../block/block_merge_sort.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_sort.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/discard_block_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/random_core_access.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/discard_block_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/linear_congruential_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_congruential_engine_discard.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/mod.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_congruential_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/linear_feedback_shift_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_feedback_shift_engine_wordmask.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_feedback_shift_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/subtract_with_carry_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/subtract_with_carry_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/xor_combine_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/xor_combine_engine_max.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/xor_combine_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/uniform_int_distribution.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/uniform_int_distribution.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/uniform_real_distribution.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/uniform_real_distribution.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/normal_distribution.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/normal_distribution_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/normal_distribution.inl \ + /usr/include/math_constants.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/inner_product.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/inner_product.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/inner_product.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/inner_product.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/inner_product.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/inner_product.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/inner_product.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/binary_search.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/binary_search.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scalar/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scalar/binary_search.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/adjacent_difference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/adjacent_difference.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/adjacent_difference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/adjacent_difference.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/adjacent_difference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/adjacent_difference.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_adjacent_difference.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_adjacent_difference.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_adjacent_difference.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/../block/block_adjacent_difference.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/constant_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/constant_iterator_base.h \ + /usr/include/c++/9/iomanip \ + /usr/include/c++/9/locale \ + /usr/include/c++/9/bits/locale_facets_nonio.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/time_members.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/messages_members.h \ + /usr/include/libintl.h \ + /usr/include/c++/9/bits/codecvt.h \ + /usr/include/c++/9/bits/locale_facets_nonio.tcc \ + /usr/include/c++/9/bits/locale_conv.h \ + /usr/include/c++/9/bits/quoted_string.h \ + /usr/include/c++/9/sstream \ + /usr/include/c++/9/bits/sstream.tcc diff --git a/build/examples/CMakeFiles/thrust.example.histogram.dir/includes_CUDA.rsp b/build/examples/CMakeFiles/thrust.example.histogram.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.histogram.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/CMakeFiles/thrust.example.histogram.dir/link.txt b/build/examples/CMakeFiles/thrust.example.histogram.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..a24ea968a4dc0d768f5c5686c1880ceeb33a5ba2 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.histogram.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.histogram.dir/objects1.rsp -o ../bin/thrust.example.histogram @CMakeFiles/thrust.example.histogram.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/CMakeFiles/thrust.example.histogram.dir/linkLibs.rsp b/build/examples/CMakeFiles/thrust.example.histogram.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.histogram.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/CMakeFiles/thrust.example.histogram.dir/objects1.rsp b/build/examples/CMakeFiles/thrust.example.histogram.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..b96423d87b0061733443c7a6387b948bd37c90a3 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.histogram.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.histogram.dir/histogram.cu.o diff --git a/build/examples/CMakeFiles/thrust.example.histogram.dir/progress.make b/build/examples/CMakeFiles/thrust.example.histogram.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..6c287f17b23171ee8abc97d23b8f8a3bfa7225de --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.histogram.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = + diff --git a/build/examples/CMakeFiles/thrust.example.lambda.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.example.lambda.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..68e366d02a7ff02e5f3590141e2ad8d810cef382 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.lambda.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/lambda.cu" "examples/CMakeFiles/thrust.example.lambda.dir/lambda.cu.o" "gcc" "examples/CMakeFiles/thrust.example.lambda.dir/lambda.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.example.lambda.dir/build.make b/build/examples/CMakeFiles/thrust.example.lambda.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..e9f12e727230db1a4764827cf9a039411c50b112 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.lambda.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/CMakeFiles/thrust.example.lambda.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/CMakeFiles/thrust.example.lambda.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.example.lambda.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/CMakeFiles/thrust.example.lambda.dir/flags.make + +examples/CMakeFiles/thrust.example.lambda.dir/lambda.cu.o: examples/CMakeFiles/thrust.example.lambda.dir/flags.make +examples/CMakeFiles/thrust.example.lambda.dir/lambda.cu.o: examples/CMakeFiles/thrust.example.lambda.dir/includes_CUDA.rsp +examples/CMakeFiles/thrust.example.lambda.dir/lambda.cu.o: /home/ubuntu/thrust/examples/lambda.cu +examples/CMakeFiles/thrust.example.lambda.dir/lambda.cu.o: examples/CMakeFiles/thrust.example.lambda.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/CMakeFiles/thrust.example.lambda.dir/lambda.cu.o" + cd /home/ubuntu/thrust/build/examples && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/CMakeFiles/thrust.example.lambda.dir/lambda.cu.o -MF CMakeFiles/thrust.example.lambda.dir/lambda.cu.o.d -x cu -c /home/ubuntu/thrust/examples/lambda.cu -o CMakeFiles/thrust.example.lambda.dir/lambda.cu.o + +examples/CMakeFiles/thrust.example.lambda.dir/lambda.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.lambda.dir/lambda.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/CMakeFiles/thrust.example.lambda.dir/lambda.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.lambda.dir/lambda.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.lambda +thrust_example_lambda_OBJECTS = \ +"CMakeFiles/thrust.example.lambda.dir/lambda.cu.o" + +# External object files for target thrust.example.lambda +thrust_example_lambda_EXTERNAL_OBJECTS = + +bin/thrust.example.lambda: examples/CMakeFiles/thrust.example.lambda.dir/lambda.cu.o +bin/thrust.example.lambda: examples/CMakeFiles/thrust.example.lambda.dir/build.make +bin/thrust.example.lambda: examples/CMakeFiles/thrust.example.lambda.dir/linkLibs.rsp +bin/thrust.example.lambda: examples/CMakeFiles/thrust.example.lambda.dir/objects1.rsp +bin/thrust.example.lambda: examples/CMakeFiles/thrust.example.lambda.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../bin/thrust.example.lambda" + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.lambda.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.example.lambda.dir/build: bin/thrust.example.lambda +.PHONY : examples/CMakeFiles/thrust.example.lambda.dir/build + +examples/CMakeFiles/thrust.example.lambda.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.lambda.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.example.lambda.dir/clean + +examples/CMakeFiles/thrust.example.lambda.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.lambda.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.example.lambda.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.example.lambda.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.example.lambda.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..1528c267ac5474a7af30b4b9dc8b20567ff6d69e --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.lambda.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../bin/thrust.example.lambda" + "../bin/thrust.example.lambda.pdb" + "CMakeFiles/thrust.example.lambda.dir/lambda.cu.o" + "CMakeFiles/thrust.example.lambda.dir/lambda.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.lambda.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.example.lambda.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.example.lambda.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..79e5b78d0a705d8d1a3f4c27f28af776cdecb70b --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.lambda.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.lambda. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.lambda.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.example.lambda.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..6f8ab07dad8500a3507dd102c772071f0b8567f0 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.lambda.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.lambda. diff --git a/build/examples/CMakeFiles/thrust.example.lambda.dir/depend.make b/build/examples/CMakeFiles/thrust.example.lambda.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..8ccee113c2b54d679a0e160058f7c25ed9856e94 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.lambda.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.lambda. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.lambda.dir/flags.make b/build/examples/CMakeFiles/thrust.example.lambda.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..d2951376dfa7b84d6c7480513f9a51025b49d8cb --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.lambda.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.lambda.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/CMakeFiles/thrust.example.lambda.dir/includes_CUDA.rsp b/build/examples/CMakeFiles/thrust.example.lambda.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.lambda.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/CMakeFiles/thrust.example.lambda.dir/lambda.cu.o b/build/examples/CMakeFiles/thrust.example.lambda.dir/lambda.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..518eec451b1b8307e64243603a1588d46025353b Binary files /dev/null and b/build/examples/CMakeFiles/thrust.example.lambda.dir/lambda.cu.o differ diff --git a/build/examples/CMakeFiles/thrust.example.lambda.dir/lambda.cu.o.d b/build/examples/CMakeFiles/thrust.example.lambda.dir/lambda.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..da25ae75c0740ec862385341f4e2ab4994cea8d0 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.lambda.dir/lambda.cu.o.d @@ -0,0 +1,767 @@ +examples/CMakeFiles/thrust.example.lambda.dir/lambda.cu.o : /home/ubuntu/thrust/examples/lambda.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /usr/include/c++/9/cstdio \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/invoke.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/reverse_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /usr/include/c++/9/limits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /usr/include/c++/9/iostream \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /usr/include/c++/9/vector \ + /usr/include/c++/9/bits/stl_vector.h \ + /usr/include/c++/9/bits/stl_bvector.h \ + /usr/include/c++/9/bits/vector.tcc \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/overlapped_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/iterator/is_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/permutation_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/permutation_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cstdint.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/dispatch.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/single_pass_scan_operators.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/cpp_compatibility.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_queue.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_math.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_discontinuity.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/minmax.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mpl/math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/make_unsigned_special.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/choose_offset.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking_commutative_only.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_warp_reductions.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_even_share.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_mapping.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/arg_index_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/constant_input_iterator.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/counting_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/counting_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/numeric_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_ptr.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/validator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/polymorphic_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/device_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/host_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/new.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/fancy_pointer_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/pointer.h diff --git a/build/examples/CMakeFiles/thrust.example.lambda.dir/link.txt b/build/examples/CMakeFiles/thrust.example.lambda.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..d4ca33e06ce014c8c8c490a9e9e0f53693631969 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.lambda.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.lambda.dir/objects1.rsp -o ../bin/thrust.example.lambda @CMakeFiles/thrust.example.lambda.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/CMakeFiles/thrust.example.lambda.dir/linkLibs.rsp b/build/examples/CMakeFiles/thrust.example.lambda.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.lambda.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/CMakeFiles/thrust.example.lambda.dir/objects1.rsp b/build/examples/CMakeFiles/thrust.example.lambda.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..ed726fb9bc98d11d02acc71ef21373646ea388d9 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.lambda.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.lambda.dir/lambda.cu.o diff --git a/build/examples/CMakeFiles/thrust.example.lambda.dir/progress.make b/build/examples/CMakeFiles/thrust.example.lambda.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..6c287f17b23171ee8abc97d23b8f8a3bfa7225de --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.lambda.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = + diff --git a/build/examples/CMakeFiles/thrust.example.lexicographical_sort.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.example.lexicographical_sort.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..0b2a8871a76e4771b9b5a808d55be2d40d482037 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.lexicographical_sort.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/lexicographical_sort.cu" "examples/CMakeFiles/thrust.example.lexicographical_sort.dir/lexicographical_sort.cu.o" "gcc" "examples/CMakeFiles/thrust.example.lexicographical_sort.dir/lexicographical_sort.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.example.lexicographical_sort.dir/build.make b/build/examples/CMakeFiles/thrust.example.lexicographical_sort.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..f033e9e0b11cd8b67bed820d28f1b2c0652291d9 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.lexicographical_sort.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/CMakeFiles/thrust.example.lexicographical_sort.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/CMakeFiles/thrust.example.lexicographical_sort.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.example.lexicographical_sort.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/CMakeFiles/thrust.example.lexicographical_sort.dir/flags.make + +examples/CMakeFiles/thrust.example.lexicographical_sort.dir/lexicographical_sort.cu.o: examples/CMakeFiles/thrust.example.lexicographical_sort.dir/flags.make +examples/CMakeFiles/thrust.example.lexicographical_sort.dir/lexicographical_sort.cu.o: examples/CMakeFiles/thrust.example.lexicographical_sort.dir/includes_CUDA.rsp +examples/CMakeFiles/thrust.example.lexicographical_sort.dir/lexicographical_sort.cu.o: /home/ubuntu/thrust/examples/lexicographical_sort.cu +examples/CMakeFiles/thrust.example.lexicographical_sort.dir/lexicographical_sort.cu.o: examples/CMakeFiles/thrust.example.lexicographical_sort.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/CMakeFiles/thrust.example.lexicographical_sort.dir/lexicographical_sort.cu.o" + cd /home/ubuntu/thrust/build/examples && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/CMakeFiles/thrust.example.lexicographical_sort.dir/lexicographical_sort.cu.o -MF CMakeFiles/thrust.example.lexicographical_sort.dir/lexicographical_sort.cu.o.d -x cu -c /home/ubuntu/thrust/examples/lexicographical_sort.cu -o CMakeFiles/thrust.example.lexicographical_sort.dir/lexicographical_sort.cu.o + +examples/CMakeFiles/thrust.example.lexicographical_sort.dir/lexicographical_sort.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.lexicographical_sort.dir/lexicographical_sort.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/CMakeFiles/thrust.example.lexicographical_sort.dir/lexicographical_sort.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.lexicographical_sort.dir/lexicographical_sort.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.lexicographical_sort +thrust_example_lexicographical_sort_OBJECTS = \ +"CMakeFiles/thrust.example.lexicographical_sort.dir/lexicographical_sort.cu.o" + +# External object files for target thrust.example.lexicographical_sort +thrust_example_lexicographical_sort_EXTERNAL_OBJECTS = + +bin/thrust.example.lexicographical_sort: examples/CMakeFiles/thrust.example.lexicographical_sort.dir/lexicographical_sort.cu.o +bin/thrust.example.lexicographical_sort: examples/CMakeFiles/thrust.example.lexicographical_sort.dir/build.make +bin/thrust.example.lexicographical_sort: examples/CMakeFiles/thrust.example.lexicographical_sort.dir/linkLibs.rsp +bin/thrust.example.lexicographical_sort: examples/CMakeFiles/thrust.example.lexicographical_sort.dir/objects1.rsp +bin/thrust.example.lexicographical_sort: examples/CMakeFiles/thrust.example.lexicographical_sort.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../bin/thrust.example.lexicographical_sort" + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.lexicographical_sort.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.example.lexicographical_sort.dir/build: bin/thrust.example.lexicographical_sort +.PHONY : examples/CMakeFiles/thrust.example.lexicographical_sort.dir/build + +examples/CMakeFiles/thrust.example.lexicographical_sort.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.lexicographical_sort.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.example.lexicographical_sort.dir/clean + +examples/CMakeFiles/thrust.example.lexicographical_sort.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.lexicographical_sort.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.example.lexicographical_sort.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.example.lexicographical_sort.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.example.lexicographical_sort.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..374e26cd98b11402142f3dea13778295182f8a90 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.lexicographical_sort.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../bin/thrust.example.lexicographical_sort" + "../bin/thrust.example.lexicographical_sort.pdb" + "CMakeFiles/thrust.example.lexicographical_sort.dir/lexicographical_sort.cu.o" + "CMakeFiles/thrust.example.lexicographical_sort.dir/lexicographical_sort.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.lexicographical_sort.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.example.lexicographical_sort.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.example.lexicographical_sort.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..0a96c92b074b04a0932a6190a0fd0053aa807811 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.lexicographical_sort.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.lexicographical_sort. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.lexicographical_sort.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.example.lexicographical_sort.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..37cdc77b80f4fcaded03b0fad88820e0a2e04c0d --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.lexicographical_sort.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.lexicographical_sort. diff --git a/build/examples/CMakeFiles/thrust.example.lexicographical_sort.dir/depend.make b/build/examples/CMakeFiles/thrust.example.lexicographical_sort.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..e01385aec1b5441e9db9526eed3746423c980ac2 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.lexicographical_sort.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.lexicographical_sort. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.lexicographical_sort.dir/flags.make b/build/examples/CMakeFiles/thrust.example.lexicographical_sort.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..56bf7841534711f4ad0a0d62fc9f8ff91a738e08 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.lexicographical_sort.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.lexicographical_sort.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/CMakeFiles/thrust.example.lexicographical_sort.dir/includes_CUDA.rsp b/build/examples/CMakeFiles/thrust.example.lexicographical_sort.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.lexicographical_sort.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/CMakeFiles/thrust.example.lexicographical_sort.dir/lexicographical_sort.cu.o b/build/examples/CMakeFiles/thrust.example.lexicographical_sort.dir/lexicographical_sort.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..146a17dee0df73336cd404c9254ed276fd0d7cbc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.lexicographical_sort.dir/lexicographical_sort.cu.o @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1338a56734ef928688265c457f27efce8f2296a4991cde287c6c5c91a1a9b596 +size 4768064 diff --git a/build/examples/CMakeFiles/thrust.example.lexicographical_sort.dir/lexicographical_sort.cu.o.d b/build/examples/CMakeFiles/thrust.example.lexicographical_sort.dir/lexicographical_sort.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..dcde86b5fd107f80aa115a9ddae13085494014ff --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.lexicographical_sort.dir/lexicographical_sort.cu.o.d @@ -0,0 +1,912 @@ +examples/CMakeFiles/thrust.example.lexicographical_sort.dir/lexicographical_sort.cu.o : /home/ubuntu/thrust/examples/lexicographical_sort.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/host_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cstdio \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/invoke.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/reverse_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /usr/include/c++/9/limits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /usr/include/c++/9/iostream \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /usr/include/c++/9/vector \ + /usr/include/c++/9/bits/stl_vector.h \ + /usr/include/c++/9/bits/stl_bvector.h \ + /usr/include/c++/9/bits/vector.tcc \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/overlapped_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/iterator/is_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/permutation_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/permutation_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cstdint.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/dispatch.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/single_pass_scan_operators.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/cpp_compatibility.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_queue.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_math.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_discontinuity.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/minmax.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mpl/math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/make_unsigned_special.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/choose_offset.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking_commutative_only.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_warp_reductions.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_even_share.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_mapping.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/arg_index_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/constant_input_iterator.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/counting_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/counting_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/numeric_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_ptr.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/validator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/polymorphic_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/device_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/host_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/new.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/fancy_pointer_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/sequence.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/sequence.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tabulate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tabulate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reverse.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reverse.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_merge_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_merge_sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/merge.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/merge.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/merge.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/extrema.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/extrema.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/get_iterator_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/adjacent_difference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/adjacent_difference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/partition.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/partition.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/remove.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/remove.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/set_operations.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/set_operations.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/unique.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/unique.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/unique_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/unique_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform_reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform_reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/insertion_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy_backward.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_primitive_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_primitive_sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_radix_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_radix_sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy_if.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_select.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_unique_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_unique_by_key.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/trivial_sequence.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_radix_sort.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_radix_sort.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_radix_sort_downsweep.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_radix_rank.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/radix_rank_sort_operations.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/tuple \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_radix_sort_histogram.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_radix_sort_onesweep.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_radix_sort_upsweep.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_radix_sort.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_merge_sort.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_merge_sort.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_merge_sort.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/../block/block_merge_sort.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_sort.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/gather.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/gather.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/gather.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/gather.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/gather.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/gather.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/gather.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/discard_block_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/random_core_access.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/discard_block_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/linear_congruential_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_congruential_engine_discard.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/mod.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_congruential_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/linear_feedback_shift_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_feedback_shift_engine_wordmask.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_feedback_shift_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/subtract_with_carry_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/subtract_with_carry_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/xor_combine_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/xor_combine_engine_max.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/xor_combine_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/uniform_int_distribution.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/uniform_int_distribution.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/uniform_real_distribution.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/uniform_real_distribution.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/normal_distribution.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/normal_distribution_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/normal_distribution.inl \ + /usr/include/math_constants.h diff --git a/build/examples/CMakeFiles/thrust.example.lexicographical_sort.dir/link.txt b/build/examples/CMakeFiles/thrust.example.lexicographical_sort.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..41571278ef4172cc8e6256fb64786d5727b21b6a --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.lexicographical_sort.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.lexicographical_sort.dir/objects1.rsp -o ../bin/thrust.example.lexicographical_sort @CMakeFiles/thrust.example.lexicographical_sort.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/CMakeFiles/thrust.example.lexicographical_sort.dir/linkLibs.rsp b/build/examples/CMakeFiles/thrust.example.lexicographical_sort.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.lexicographical_sort.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/CMakeFiles/thrust.example.lexicographical_sort.dir/objects1.rsp b/build/examples/CMakeFiles/thrust.example.lexicographical_sort.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..35ccb5c16e307fb73a69552d68133b95b2a2cd4f --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.lexicographical_sort.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.lexicographical_sort.dir/lexicographical_sort.cu.o diff --git a/build/examples/CMakeFiles/thrust.example.lexicographical_sort.dir/progress.make b/build/examples/CMakeFiles/thrust.example.lexicographical_sort.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..6c287f17b23171ee8abc97d23b8f8a3bfa7225de --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.lexicographical_sort.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = + diff --git a/build/examples/CMakeFiles/thrust.example.max_abs_diff.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.example.max_abs_diff.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..c95c5f2bd6c097cc7057af41f98e8618a3359339 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.max_abs_diff.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/max_abs_diff.cu" "examples/CMakeFiles/thrust.example.max_abs_diff.dir/max_abs_diff.cu.o" "gcc" "examples/CMakeFiles/thrust.example.max_abs_diff.dir/max_abs_diff.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.example.max_abs_diff.dir/build.make b/build/examples/CMakeFiles/thrust.example.max_abs_diff.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..4acf220de089889d4fe169af55703764d41719c1 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.max_abs_diff.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/CMakeFiles/thrust.example.max_abs_diff.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/CMakeFiles/thrust.example.max_abs_diff.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.example.max_abs_diff.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/CMakeFiles/thrust.example.max_abs_diff.dir/flags.make + +examples/CMakeFiles/thrust.example.max_abs_diff.dir/max_abs_diff.cu.o: examples/CMakeFiles/thrust.example.max_abs_diff.dir/flags.make +examples/CMakeFiles/thrust.example.max_abs_diff.dir/max_abs_diff.cu.o: examples/CMakeFiles/thrust.example.max_abs_diff.dir/includes_CUDA.rsp +examples/CMakeFiles/thrust.example.max_abs_diff.dir/max_abs_diff.cu.o: /home/ubuntu/thrust/examples/max_abs_diff.cu +examples/CMakeFiles/thrust.example.max_abs_diff.dir/max_abs_diff.cu.o: examples/CMakeFiles/thrust.example.max_abs_diff.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/CMakeFiles/thrust.example.max_abs_diff.dir/max_abs_diff.cu.o" + cd /home/ubuntu/thrust/build/examples && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/CMakeFiles/thrust.example.max_abs_diff.dir/max_abs_diff.cu.o -MF CMakeFiles/thrust.example.max_abs_diff.dir/max_abs_diff.cu.o.d -x cu -c /home/ubuntu/thrust/examples/max_abs_diff.cu -o CMakeFiles/thrust.example.max_abs_diff.dir/max_abs_diff.cu.o + +examples/CMakeFiles/thrust.example.max_abs_diff.dir/max_abs_diff.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.max_abs_diff.dir/max_abs_diff.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/CMakeFiles/thrust.example.max_abs_diff.dir/max_abs_diff.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.max_abs_diff.dir/max_abs_diff.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.max_abs_diff +thrust_example_max_abs_diff_OBJECTS = \ +"CMakeFiles/thrust.example.max_abs_diff.dir/max_abs_diff.cu.o" + +# External object files for target thrust.example.max_abs_diff +thrust_example_max_abs_diff_EXTERNAL_OBJECTS = + +bin/thrust.example.max_abs_diff: examples/CMakeFiles/thrust.example.max_abs_diff.dir/max_abs_diff.cu.o +bin/thrust.example.max_abs_diff: examples/CMakeFiles/thrust.example.max_abs_diff.dir/build.make +bin/thrust.example.max_abs_diff: examples/CMakeFiles/thrust.example.max_abs_diff.dir/linkLibs.rsp +bin/thrust.example.max_abs_diff: examples/CMakeFiles/thrust.example.max_abs_diff.dir/objects1.rsp +bin/thrust.example.max_abs_diff: examples/CMakeFiles/thrust.example.max_abs_diff.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../bin/thrust.example.max_abs_diff" + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.max_abs_diff.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.example.max_abs_diff.dir/build: bin/thrust.example.max_abs_diff +.PHONY : examples/CMakeFiles/thrust.example.max_abs_diff.dir/build + +examples/CMakeFiles/thrust.example.max_abs_diff.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.max_abs_diff.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.example.max_abs_diff.dir/clean + +examples/CMakeFiles/thrust.example.max_abs_diff.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.max_abs_diff.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.example.max_abs_diff.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.example.max_abs_diff.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.example.max_abs_diff.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..5005e4566951115adbbb6870034e49b547e7ee43 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.max_abs_diff.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../bin/thrust.example.max_abs_diff" + "../bin/thrust.example.max_abs_diff.pdb" + "CMakeFiles/thrust.example.max_abs_diff.dir/max_abs_diff.cu.o" + "CMakeFiles/thrust.example.max_abs_diff.dir/max_abs_diff.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.max_abs_diff.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.example.max_abs_diff.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.example.max_abs_diff.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..7fe9382438acc61e5d6840ad271533647e6342de --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.max_abs_diff.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.max_abs_diff. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.max_abs_diff.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.example.max_abs_diff.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..c778d1d7d8a2f1141b15d9a9629988e0a26d14ce --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.max_abs_diff.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.max_abs_diff. diff --git a/build/examples/CMakeFiles/thrust.example.max_abs_diff.dir/depend.make b/build/examples/CMakeFiles/thrust.example.max_abs_diff.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..13bbe09753d88e0cf07ad81b1ca11feaea1d0329 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.max_abs_diff.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.max_abs_diff. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.max_abs_diff.dir/flags.make b/build/examples/CMakeFiles/thrust.example.max_abs_diff.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..72f7360900f2b488c94acc803785bae629325857 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.max_abs_diff.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.max_abs_diff.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/CMakeFiles/thrust.example.max_abs_diff.dir/includes_CUDA.rsp b/build/examples/CMakeFiles/thrust.example.max_abs_diff.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.max_abs_diff.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/CMakeFiles/thrust.example.max_abs_diff.dir/link.txt b/build/examples/CMakeFiles/thrust.example.max_abs_diff.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..2ccb1ec4364d0fdd3861cedad337c0cb72f8b428 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.max_abs_diff.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.max_abs_diff.dir/objects1.rsp -o ../bin/thrust.example.max_abs_diff @CMakeFiles/thrust.example.max_abs_diff.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/CMakeFiles/thrust.example.max_abs_diff.dir/linkLibs.rsp b/build/examples/CMakeFiles/thrust.example.max_abs_diff.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.max_abs_diff.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/CMakeFiles/thrust.example.max_abs_diff.dir/max_abs_diff.cu.o b/build/examples/CMakeFiles/thrust.example.max_abs_diff.dir/max_abs_diff.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..aa358e238a64ab8cc687428fc5033863b76bc79a --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.max_abs_diff.dir/max_abs_diff.cu.o @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:675420aa994c31d0c7d58a86f8b399f94fbb8925b2aed7cef7bdb033524b6e2c +size 2011616 diff --git a/build/examples/CMakeFiles/thrust.example.max_abs_diff.dir/max_abs_diff.cu.o.d b/build/examples/CMakeFiles/thrust.example.max_abs_diff.dir/max_abs_diff.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..c12dc29a3e88667df625aa556af141efed6bf5c4 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.max_abs_diff.dir/max_abs_diff.cu.o.d @@ -0,0 +1,781 @@ +examples/CMakeFiles/thrust.example.max_abs_diff.dir/max_abs_diff.cu.o : /home/ubuntu/thrust/examples/max_abs_diff.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/inner_product.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/inner_product.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cstdio \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/invoke.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/inner_product.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/inner_product.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform_reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform_reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/iterator/is_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /usr/include/c++/9/iostream \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/c++/9/limits \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/permutation_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/permutation_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cstdint.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/dispatch.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/single_pass_scan_operators.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/cpp_compatibility.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_queue.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_math.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_discontinuity.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/minmax.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mpl/math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/make_unsigned_special.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/choose_offset.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking_commutative_only.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_warp_reductions.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_even_share.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_mapping.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/arg_index_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/constant_input_iterator.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/inner_product.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/inner_product.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/inner_product.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/reverse_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator.inl \ + /usr/include/c++/9/vector \ + /usr/include/c++/9/bits/stl_vector.h \ + /usr/include/c++/9/bits/stl_bvector.h \ + /usr/include/c++/9/bits/vector.tcc \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/overlapped_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/counting_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/counting_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/numeric_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_ptr.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/validator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/polymorphic_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/device_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/host_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/new.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/fancy_pointer_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/pointer.h diff --git a/build/examples/CMakeFiles/thrust.example.max_abs_diff.dir/objects1.rsp b/build/examples/CMakeFiles/thrust.example.max_abs_diff.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..6f881c6855d7c03a3306ffdc7ddbb7594f5ec4f2 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.max_abs_diff.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.max_abs_diff.dir/max_abs_diff.cu.o diff --git a/build/examples/CMakeFiles/thrust.example.max_abs_diff.dir/progress.make b/build/examples/CMakeFiles/thrust.example.max_abs_diff.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..6c287f17b23171ee8abc97d23b8f8a3bfa7225de --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.max_abs_diff.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = + diff --git a/build/examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..abed099bc12b69126f760f76bc035959b1e69d69 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/minimal_custom_backend.cu" "examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/minimal_custom_backend.cu.o" "gcc" "examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/minimal_custom_backend.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/build.make b/build/examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..e2559552024efcd26e3ebfc90871de2ba4436bbd --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/flags.make + +examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/minimal_custom_backend.cu.o: examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/flags.make +examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/minimal_custom_backend.cu.o: examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/includes_CUDA.rsp +examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/minimal_custom_backend.cu.o: /home/ubuntu/thrust/examples/minimal_custom_backend.cu +examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/minimal_custom_backend.cu.o: examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/minimal_custom_backend.cu.o" + cd /home/ubuntu/thrust/build/examples && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/minimal_custom_backend.cu.o -MF CMakeFiles/thrust.example.minimal_custom_backend.dir/minimal_custom_backend.cu.o.d -x cu -c /home/ubuntu/thrust/examples/minimal_custom_backend.cu -o CMakeFiles/thrust.example.minimal_custom_backend.dir/minimal_custom_backend.cu.o + +examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/minimal_custom_backend.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.minimal_custom_backend.dir/minimal_custom_backend.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/minimal_custom_backend.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.minimal_custom_backend.dir/minimal_custom_backend.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.minimal_custom_backend +thrust_example_minimal_custom_backend_OBJECTS = \ +"CMakeFiles/thrust.example.minimal_custom_backend.dir/minimal_custom_backend.cu.o" + +# External object files for target thrust.example.minimal_custom_backend +thrust_example_minimal_custom_backend_EXTERNAL_OBJECTS = + +bin/thrust.example.minimal_custom_backend: examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/minimal_custom_backend.cu.o +bin/thrust.example.minimal_custom_backend: examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/build.make +bin/thrust.example.minimal_custom_backend: examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/linkLibs.rsp +bin/thrust.example.minimal_custom_backend: examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/objects1.rsp +bin/thrust.example.minimal_custom_backend: examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../bin/thrust.example.minimal_custom_backend" + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.minimal_custom_backend.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/build: bin/thrust.example.minimal_custom_backend +.PHONY : examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/build + +examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.minimal_custom_backend.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/clean + +examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..885608404247e5f2334f8070225fc467fcb7fe16 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../bin/thrust.example.minimal_custom_backend" + "../bin/thrust.example.minimal_custom_backend.pdb" + "CMakeFiles/thrust.example.minimal_custom_backend.dir/minimal_custom_backend.cu.o" + "CMakeFiles/thrust.example.minimal_custom_backend.dir/minimal_custom_backend.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.minimal_custom_backend.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..a141550f5af4cf44946fe0a4bdc1c5db0f3c166a --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.minimal_custom_backend. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..30aeab54d4aaf30c93fb249c918c0c9793a3ec05 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.minimal_custom_backend. diff --git a/build/examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/depend.make b/build/examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..b7cbea8eed942dafd5f9bf6b4b12d2bd2c7aceb2 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.minimal_custom_backend. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/flags.make b/build/examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..c8312bfb934c978cd7e0fcc96447860610d3713f --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.minimal_custom_backend.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/includes_CUDA.rsp b/build/examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/link.txt b/build/examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..be2a12e2fe986c83101d30a3635e3215b00fa9c1 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.minimal_custom_backend.dir/objects1.rsp -o ../bin/thrust.example.minimal_custom_backend @CMakeFiles/thrust.example.minimal_custom_backend.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/linkLibs.rsp b/build/examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/minimal_custom_backend.cu.o b/build/examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/minimal_custom_backend.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..36db79629e169357e2b2e64b9ae923a22490cef0 Binary files /dev/null and b/build/examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/minimal_custom_backend.cu.o differ diff --git a/build/examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/minimal_custom_backend.cu.o.d b/build/examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/minimal_custom_backend.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..dcdfdb75f7f7080ef1d1e2b4e0f84df10169a89f --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/minimal_custom_backend.cu.o.d @@ -0,0 +1,842 @@ +examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/minimal_custom_backend.cu.o : /home/ubuntu/thrust/examples/minimal_custom_backend.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /usr/include/c++/9/cstdio \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/invoke.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/reverse_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /usr/include/c++/9/limits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /usr/include/c++/9/iostream \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /usr/include/c++/9/vector \ + /usr/include/c++/9/bits/stl_vector.h \ + /usr/include/c++/9/bits/stl_bvector.h \ + /usr/include/c++/9/bits/vector.tcc \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/overlapped_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/iterator/is_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/permutation_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/permutation_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cstdint.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/dispatch.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/single_pass_scan_operators.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/cpp_compatibility.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_queue.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_math.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_discontinuity.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/minmax.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mpl/math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/make_unsigned_special.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/choose_offset.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking_commutative_only.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_warp_reductions.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_even_share.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_mapping.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/arg_index_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/constant_input_iterator.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/counting_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/counting_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/numeric_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_ptr.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/validator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/polymorphic_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/device_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/host_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/new.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/fancy_pointer_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/adjacent_difference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/adjacent_difference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/merge.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/partition.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/partition.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/remove.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/remove.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/set_operations.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/set_operations.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reverse.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reverse.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_merge_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_merge_sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/merge.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/merge.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/extrema.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/extrema.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/get_iterator_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform_reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform_reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/insertion_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy_backward.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_primitive_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_primitive_sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_radix_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_radix_sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy_if.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_select.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_unique_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_unique_by_key.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/unique.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/unique.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/unique_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/unique_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/execution_policy.h diff --git a/build/examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/objects1.rsp b/build/examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..6ab9e2d8f891465ac280d5523e4493e63646b42b --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.minimal_custom_backend.dir/minimal_custom_backend.cu.o diff --git a/build/examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/progress.make b/build/examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..6c287f17b23171ee8abc97d23b8f8a3bfa7225de --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = + diff --git a/build/examples/CMakeFiles/thrust.example.minmax.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.example.minmax.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..44e494adbd7fb02bb5f70705258266af2818f7a6 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.minmax.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/minmax.cu" "examples/CMakeFiles/thrust.example.minmax.dir/minmax.cu.o" "gcc" "examples/CMakeFiles/thrust.example.minmax.dir/minmax.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.example.minmax.dir/build.make b/build/examples/CMakeFiles/thrust.example.minmax.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..e66b24b924a2e7532d04c78134b7ebb88c74f3f0 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.minmax.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/CMakeFiles/thrust.example.minmax.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/CMakeFiles/thrust.example.minmax.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.example.minmax.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/CMakeFiles/thrust.example.minmax.dir/flags.make + +examples/CMakeFiles/thrust.example.minmax.dir/minmax.cu.o: examples/CMakeFiles/thrust.example.minmax.dir/flags.make +examples/CMakeFiles/thrust.example.minmax.dir/minmax.cu.o: examples/CMakeFiles/thrust.example.minmax.dir/includes_CUDA.rsp +examples/CMakeFiles/thrust.example.minmax.dir/minmax.cu.o: /home/ubuntu/thrust/examples/minmax.cu +examples/CMakeFiles/thrust.example.minmax.dir/minmax.cu.o: examples/CMakeFiles/thrust.example.minmax.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/CMakeFiles/thrust.example.minmax.dir/minmax.cu.o" + cd /home/ubuntu/thrust/build/examples && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/CMakeFiles/thrust.example.minmax.dir/minmax.cu.o -MF CMakeFiles/thrust.example.minmax.dir/minmax.cu.o.d -x cu -c /home/ubuntu/thrust/examples/minmax.cu -o CMakeFiles/thrust.example.minmax.dir/minmax.cu.o + +examples/CMakeFiles/thrust.example.minmax.dir/minmax.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.minmax.dir/minmax.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/CMakeFiles/thrust.example.minmax.dir/minmax.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.minmax.dir/minmax.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.minmax +thrust_example_minmax_OBJECTS = \ +"CMakeFiles/thrust.example.minmax.dir/minmax.cu.o" + +# External object files for target thrust.example.minmax +thrust_example_minmax_EXTERNAL_OBJECTS = + +bin/thrust.example.minmax: examples/CMakeFiles/thrust.example.minmax.dir/minmax.cu.o +bin/thrust.example.minmax: examples/CMakeFiles/thrust.example.minmax.dir/build.make +bin/thrust.example.minmax: examples/CMakeFiles/thrust.example.minmax.dir/linkLibs.rsp +bin/thrust.example.minmax: examples/CMakeFiles/thrust.example.minmax.dir/objects1.rsp +bin/thrust.example.minmax: examples/CMakeFiles/thrust.example.minmax.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../bin/thrust.example.minmax" + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.minmax.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.example.minmax.dir/build: bin/thrust.example.minmax +.PHONY : examples/CMakeFiles/thrust.example.minmax.dir/build + +examples/CMakeFiles/thrust.example.minmax.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.minmax.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.example.minmax.dir/clean + +examples/CMakeFiles/thrust.example.minmax.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.minmax.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.example.minmax.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.example.minmax.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.example.minmax.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3d8556ef0c6cc7d359906c7fc9c828e4490bfaef --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.minmax.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../bin/thrust.example.minmax" + "../bin/thrust.example.minmax.pdb" + "CMakeFiles/thrust.example.minmax.dir/minmax.cu.o" + "CMakeFiles/thrust.example.minmax.dir/minmax.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.minmax.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.example.minmax.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.example.minmax.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..093e7f6d2f81edd1c51455802e1352b12735bb1c --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.minmax.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.minmax. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.minmax.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.example.minmax.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..414810472a40da6efd808c07b2284e78976ab015 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.minmax.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.minmax. diff --git a/build/examples/CMakeFiles/thrust.example.minmax.dir/depend.make b/build/examples/CMakeFiles/thrust.example.minmax.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..a595b774f0b962036a582e3e5fee8cd61dcf7693 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.minmax.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.minmax. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.minmax.dir/flags.make b/build/examples/CMakeFiles/thrust.example.minmax.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..c6b10c45f98cb20a71c91cd0e682190eeabe5813 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.minmax.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.minmax.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/CMakeFiles/thrust.example.minmax.dir/includes_CUDA.rsp b/build/examples/CMakeFiles/thrust.example.minmax.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.minmax.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/CMakeFiles/thrust.example.minmax.dir/link.txt b/build/examples/CMakeFiles/thrust.example.minmax.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..a060c9c0afa43693edbf2c664d25c41bafead872 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.minmax.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.minmax.dir/objects1.rsp -o ../bin/thrust.example.minmax @CMakeFiles/thrust.example.minmax.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/CMakeFiles/thrust.example.minmax.dir/linkLibs.rsp b/build/examples/CMakeFiles/thrust.example.minmax.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.minmax.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/CMakeFiles/thrust.example.minmax.dir/minmax.cu.o b/build/examples/CMakeFiles/thrust.example.minmax.dir/minmax.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..4eb53286aafaa5b5a1c45fc15ee6718cd6d4afed --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.minmax.dir/minmax.cu.o @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ea9d06c3a63811faaa4ad05d893ffce8b6363f5569559d438fc04f1822cf3e2b +size 1577208 diff --git a/build/examples/CMakeFiles/thrust.example.minmax.dir/minmax.cu.o.d b/build/examples/CMakeFiles/thrust.example.minmax.dir/minmax.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..cb07b2a8fa49691dd33bfacbe0576bbef87b718f --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.minmax.dir/minmax.cu.o.d @@ -0,0 +1,867 @@ +examples/CMakeFiles/thrust.example.minmax.dir/minmax.cu.o : /home/ubuntu/thrust/examples/minmax.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /usr/include/c++/9/cstdio \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/invoke.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/reverse_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /usr/include/c++/9/limits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /usr/include/c++/9/iostream \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /usr/include/c++/9/vector \ + /usr/include/c++/9/bits/stl_vector.h \ + /usr/include/c++/9/bits/stl_bvector.h \ + /usr/include/c++/9/bits/vector.tcc \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/overlapped_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/iterator/is_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/permutation_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/permutation_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cstdint.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/dispatch.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/single_pass_scan_operators.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/cpp_compatibility.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_queue.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_math.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_discontinuity.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/minmax.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mpl/math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/make_unsigned_special.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/choose_offset.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking_commutative_only.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_warp_reductions.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_even_share.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_mapping.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/arg_index_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/constant_input_iterator.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/counting_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/counting_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/numeric_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_ptr.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/validator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/polymorphic_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/device_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/host_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/new.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/fancy_pointer_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/host_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform_reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform_reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/extrema.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/extrema.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/get_iterator_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/adjacent_difference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/adjacent_difference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/merge.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/partition.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/partition.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/remove.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/remove.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/set_operations.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/set_operations.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reverse.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reverse.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_merge_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_merge_sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/merge.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/merge.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/insertion_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy_backward.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_primitive_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_primitive_sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_radix_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_radix_sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy_if.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_select.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_unique_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_unique_by_key.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/unique.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/unique.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/unique_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/unique_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/discard_block_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/random_core_access.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/discard_block_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/linear_congruential_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_congruential_engine_discard.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/mod.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_congruential_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/linear_feedback_shift_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_feedback_shift_engine_wordmask.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_feedback_shift_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/subtract_with_carry_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/subtract_with_carry_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/xor_combine_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/xor_combine_engine_max.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/xor_combine_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/uniform_int_distribution.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/uniform_int_distribution.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/uniform_real_distribution.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/uniform_real_distribution.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/normal_distribution.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/normal_distribution_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/normal_distribution.inl \ + /usr/include/math_constants.h diff --git a/build/examples/CMakeFiles/thrust.example.minmax.dir/objects1.rsp b/build/examples/CMakeFiles/thrust.example.minmax.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..6f8d2846bdb9aa4aa439e14df372046028f3e64b --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.minmax.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.minmax.dir/minmax.cu.o diff --git a/build/examples/CMakeFiles/thrust.example.minmax.dir/progress.make b/build/examples/CMakeFiles/thrust.example.minmax.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..6c287f17b23171ee8abc97d23b8f8a3bfa7225de --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.minmax.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = + diff --git a/build/examples/CMakeFiles/thrust.example.mode.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.example.mode.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..cbfb67ad96a6ae62749327338b9e51f6d1d3a53b --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.mode.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/mode.cu" "examples/CMakeFiles/thrust.example.mode.dir/mode.cu.o" "gcc" "examples/CMakeFiles/thrust.example.mode.dir/mode.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.example.mode.dir/build.make b/build/examples/CMakeFiles/thrust.example.mode.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..80f9b6cbc2ce3e6e4f8be7d9db33bc76f19fc51a --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.mode.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/CMakeFiles/thrust.example.mode.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/CMakeFiles/thrust.example.mode.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.example.mode.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/CMakeFiles/thrust.example.mode.dir/flags.make + +examples/CMakeFiles/thrust.example.mode.dir/mode.cu.o: examples/CMakeFiles/thrust.example.mode.dir/flags.make +examples/CMakeFiles/thrust.example.mode.dir/mode.cu.o: examples/CMakeFiles/thrust.example.mode.dir/includes_CUDA.rsp +examples/CMakeFiles/thrust.example.mode.dir/mode.cu.o: /home/ubuntu/thrust/examples/mode.cu +examples/CMakeFiles/thrust.example.mode.dir/mode.cu.o: examples/CMakeFiles/thrust.example.mode.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/CMakeFiles/thrust.example.mode.dir/mode.cu.o" + cd /home/ubuntu/thrust/build/examples && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/CMakeFiles/thrust.example.mode.dir/mode.cu.o -MF CMakeFiles/thrust.example.mode.dir/mode.cu.o.d -x cu -c /home/ubuntu/thrust/examples/mode.cu -o CMakeFiles/thrust.example.mode.dir/mode.cu.o + +examples/CMakeFiles/thrust.example.mode.dir/mode.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.mode.dir/mode.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/CMakeFiles/thrust.example.mode.dir/mode.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.mode.dir/mode.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.mode +thrust_example_mode_OBJECTS = \ +"CMakeFiles/thrust.example.mode.dir/mode.cu.o" + +# External object files for target thrust.example.mode +thrust_example_mode_EXTERNAL_OBJECTS = + +bin/thrust.example.mode: examples/CMakeFiles/thrust.example.mode.dir/mode.cu.o +bin/thrust.example.mode: examples/CMakeFiles/thrust.example.mode.dir/build.make +bin/thrust.example.mode: examples/CMakeFiles/thrust.example.mode.dir/linkLibs.rsp +bin/thrust.example.mode: examples/CMakeFiles/thrust.example.mode.dir/objects1.rsp +bin/thrust.example.mode: examples/CMakeFiles/thrust.example.mode.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../bin/thrust.example.mode" + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.mode.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.example.mode.dir/build: bin/thrust.example.mode +.PHONY : examples/CMakeFiles/thrust.example.mode.dir/build + +examples/CMakeFiles/thrust.example.mode.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.mode.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.example.mode.dir/clean + +examples/CMakeFiles/thrust.example.mode.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.mode.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.example.mode.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.example.mode.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.example.mode.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..24a90cedd1060a8464a0c77ec740d4140612e985 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.mode.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../bin/thrust.example.mode" + "../bin/thrust.example.mode.pdb" + "CMakeFiles/thrust.example.mode.dir/mode.cu.o" + "CMakeFiles/thrust.example.mode.dir/mode.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.mode.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.example.mode.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.example.mode.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..30c24ba6c94c72c747eeb413f443bea6b9fa4bd4 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.mode.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.mode. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.mode.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.example.mode.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..38d7842414baa9aee55f9a1d267a65c6a841555b --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.mode.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.mode. diff --git a/build/examples/CMakeFiles/thrust.example.mode.dir/depend.make b/build/examples/CMakeFiles/thrust.example.mode.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..6a34a83dcbd9bd931f0150cec2864538e99564b7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.mode.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.mode. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.mode.dir/flags.make b/build/examples/CMakeFiles/thrust.example.mode.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..a749c840611863d56d74d966bc804283f0f5f0d5 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.mode.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.mode.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/CMakeFiles/thrust.example.mode.dir/includes_CUDA.rsp b/build/examples/CMakeFiles/thrust.example.mode.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.mode.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/CMakeFiles/thrust.example.mode.dir/link.txt b/build/examples/CMakeFiles/thrust.example.mode.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..cb118f645b74495daca88db627676b2340ef686e --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.mode.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.mode.dir/objects1.rsp -o ../bin/thrust.example.mode @CMakeFiles/thrust.example.mode.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/CMakeFiles/thrust.example.mode.dir/linkLibs.rsp b/build/examples/CMakeFiles/thrust.example.mode.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.mode.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/CMakeFiles/thrust.example.mode.dir/mode.cu.o b/build/examples/CMakeFiles/thrust.example.mode.dir/mode.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..904411cf5ce24501267b80d275c91bd452c07296 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.mode.dir/mode.cu.o @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:af5aebe9480490219966e7b46995e288346414974a29e69f41ed2a3970fa5e36 +size 9595640 diff --git a/build/examples/CMakeFiles/thrust.example.mode.dir/mode.cu.o.d b/build/examples/CMakeFiles/thrust.example.mode.dir/mode.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..642cab386a1e806f2cf75e2e528f89ac2a3b10b9 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.mode.dir/mode.cu.o.d @@ -0,0 +1,914 @@ +examples/CMakeFiles/thrust.example.mode.dir/mode.cu.o : /home/ubuntu/thrust/examples/mode.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /usr/include/c++/9/cstdio \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/invoke.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/reverse_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /usr/include/c++/9/limits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /usr/include/c++/9/iostream \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /usr/include/c++/9/vector \ + /usr/include/c++/9/bits/stl_vector.h \ + /usr/include/c++/9/bits/stl_bvector.h \ + /usr/include/c++/9/bits/vector.tcc \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/overlapped_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/iterator/is_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/permutation_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/permutation_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cstdint.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/dispatch.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/single_pass_scan_operators.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/cpp_compatibility.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_queue.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_math.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_discontinuity.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/minmax.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mpl/math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/make_unsigned_special.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/choose_offset.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking_commutative_only.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_warp_reductions.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_even_share.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_mapping.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/arg_index_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/constant_input_iterator.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/counting_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/counting_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/numeric_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_ptr.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/validator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/polymorphic_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/device_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/host_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/new.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/fancy_pointer_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/host_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reverse.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reverse.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_merge_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_merge_sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/merge.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/merge.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/merge.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/extrema.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/extrema.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/get_iterator_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/adjacent_difference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/adjacent_difference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/partition.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/partition.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/remove.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/remove.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/set_operations.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/set_operations.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/unique.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/unique.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/unique_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/unique_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform_reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform_reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/insertion_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy_backward.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_primitive_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_primitive_sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_radix_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_radix_sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy_if.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_select.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_unique_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_unique_by_key.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/sequence.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/sequence.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tabulate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tabulate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/trivial_sequence.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_radix_sort.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_radix_sort.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_radix_sort_downsweep.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_radix_rank.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/radix_rank_sort_operations.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/tuple \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_radix_sort_histogram.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_radix_sort_onesweep.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_radix_sort_upsweep.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_radix_sort.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_merge_sort.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_merge_sort.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_merge_sort.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/../block/block_merge_sort.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_sort.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/inner_product.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/inner_product.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/inner_product.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/inner_product.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/inner_product.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/inner_product.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/inner_product.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/constant_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/constant_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/discard_block_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/random_core_access.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/discard_block_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/linear_congruential_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_congruential_engine_discard.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/mod.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_congruential_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/linear_feedback_shift_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_feedback_shift_engine_wordmask.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_feedback_shift_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/subtract_with_carry_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/subtract_with_carry_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/xor_combine_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/xor_combine_engine_max.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/xor_combine_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/uniform_int_distribution.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/uniform_int_distribution.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/uniform_real_distribution.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/uniform_real_distribution.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/normal_distribution.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/normal_distribution_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/normal_distribution.inl \ + /usr/include/math_constants.h diff --git a/build/examples/CMakeFiles/thrust.example.mode.dir/objects1.rsp b/build/examples/CMakeFiles/thrust.example.mode.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..bcefb9fc6741bc9b7c98eb92f430b56e5483279f --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.mode.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.mode.dir/mode.cu.o diff --git a/build/examples/CMakeFiles/thrust.example.mode.dir/progress.make b/build/examples/CMakeFiles/thrust.example.mode.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8ee98145e738579e6d2221a049cfd2fffce777e8 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.mode.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 44 +CMAKE_PROGRESS_2 = + diff --git a/build/examples/CMakeFiles/thrust.example.monte_carlo.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.example.monte_carlo.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..885d1987bf9891e2f7c60360a0bc4aa886d26901 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.monte_carlo.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/monte_carlo.cu" "examples/CMakeFiles/thrust.example.monte_carlo.dir/monte_carlo.cu.o" "gcc" "examples/CMakeFiles/thrust.example.monte_carlo.dir/monte_carlo.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.example.monte_carlo.dir/build.make b/build/examples/CMakeFiles/thrust.example.monte_carlo.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..df96a72db331ddf92c8cb202ea5bef569efad29b --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.monte_carlo.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/CMakeFiles/thrust.example.monte_carlo.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/CMakeFiles/thrust.example.monte_carlo.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.example.monte_carlo.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/CMakeFiles/thrust.example.monte_carlo.dir/flags.make + +examples/CMakeFiles/thrust.example.monte_carlo.dir/monte_carlo.cu.o: examples/CMakeFiles/thrust.example.monte_carlo.dir/flags.make +examples/CMakeFiles/thrust.example.monte_carlo.dir/monte_carlo.cu.o: examples/CMakeFiles/thrust.example.monte_carlo.dir/includes_CUDA.rsp +examples/CMakeFiles/thrust.example.monte_carlo.dir/monte_carlo.cu.o: /home/ubuntu/thrust/examples/monte_carlo.cu +examples/CMakeFiles/thrust.example.monte_carlo.dir/monte_carlo.cu.o: examples/CMakeFiles/thrust.example.monte_carlo.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/CMakeFiles/thrust.example.monte_carlo.dir/monte_carlo.cu.o" + cd /home/ubuntu/thrust/build/examples && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/CMakeFiles/thrust.example.monte_carlo.dir/monte_carlo.cu.o -MF CMakeFiles/thrust.example.monte_carlo.dir/monte_carlo.cu.o.d -x cu -c /home/ubuntu/thrust/examples/monte_carlo.cu -o CMakeFiles/thrust.example.monte_carlo.dir/monte_carlo.cu.o + +examples/CMakeFiles/thrust.example.monte_carlo.dir/monte_carlo.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.monte_carlo.dir/monte_carlo.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/CMakeFiles/thrust.example.monte_carlo.dir/monte_carlo.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.monte_carlo.dir/monte_carlo.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.monte_carlo +thrust_example_monte_carlo_OBJECTS = \ +"CMakeFiles/thrust.example.monte_carlo.dir/monte_carlo.cu.o" + +# External object files for target thrust.example.monte_carlo +thrust_example_monte_carlo_EXTERNAL_OBJECTS = + +bin/thrust.example.monte_carlo: examples/CMakeFiles/thrust.example.monte_carlo.dir/monte_carlo.cu.o +bin/thrust.example.monte_carlo: examples/CMakeFiles/thrust.example.monte_carlo.dir/build.make +bin/thrust.example.monte_carlo: examples/CMakeFiles/thrust.example.monte_carlo.dir/linkLibs.rsp +bin/thrust.example.monte_carlo: examples/CMakeFiles/thrust.example.monte_carlo.dir/objects1.rsp +bin/thrust.example.monte_carlo: examples/CMakeFiles/thrust.example.monte_carlo.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../bin/thrust.example.monte_carlo" + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.monte_carlo.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.example.monte_carlo.dir/build: bin/thrust.example.monte_carlo +.PHONY : examples/CMakeFiles/thrust.example.monte_carlo.dir/build + +examples/CMakeFiles/thrust.example.monte_carlo.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.monte_carlo.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.example.monte_carlo.dir/clean + +examples/CMakeFiles/thrust.example.monte_carlo.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.monte_carlo.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.example.monte_carlo.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.example.monte_carlo.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.example.monte_carlo.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..02d68a04d4a99f2c86202ad93e905e06c6a1a94a --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.monte_carlo.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../bin/thrust.example.monte_carlo" + "../bin/thrust.example.monte_carlo.pdb" + "CMakeFiles/thrust.example.monte_carlo.dir/monte_carlo.cu.o" + "CMakeFiles/thrust.example.monte_carlo.dir/monte_carlo.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.monte_carlo.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.example.monte_carlo.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.example.monte_carlo.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..41ff5e6c343c7e348e417f09349f3626b6fadce0 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.monte_carlo.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.monte_carlo. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.monte_carlo.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.example.monte_carlo.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..3b0334bed20f8be5b2323d4f216944eeab89081e --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.monte_carlo.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.monte_carlo. diff --git a/build/examples/CMakeFiles/thrust.example.monte_carlo.dir/depend.make b/build/examples/CMakeFiles/thrust.example.monte_carlo.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..5a99a9e8390aa28a0e7b32d04a582f19941d08dd --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.monte_carlo.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.monte_carlo. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.monte_carlo.dir/flags.make b/build/examples/CMakeFiles/thrust.example.monte_carlo.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..dd3e8162277b82d61a10ad66d10c8ec51104b506 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.monte_carlo.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.monte_carlo.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/CMakeFiles/thrust.example.monte_carlo.dir/includes_CUDA.rsp b/build/examples/CMakeFiles/thrust.example.monte_carlo.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.monte_carlo.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/CMakeFiles/thrust.example.monte_carlo.dir/link.txt b/build/examples/CMakeFiles/thrust.example.monte_carlo.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..5db188ba6197db59acfe0d049c3b297acbd2aa86 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.monte_carlo.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.monte_carlo.dir/objects1.rsp -o ../bin/thrust.example.monte_carlo @CMakeFiles/thrust.example.monte_carlo.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/CMakeFiles/thrust.example.monte_carlo.dir/linkLibs.rsp b/build/examples/CMakeFiles/thrust.example.monte_carlo.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.monte_carlo.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/CMakeFiles/thrust.example.monte_carlo.dir/monte_carlo.cu.o b/build/examples/CMakeFiles/thrust.example.monte_carlo.dir/monte_carlo.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..c3fbf47f5df0b4235d87c32b57403c277f562162 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.monte_carlo.dir/monte_carlo.cu.o @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bf5d8ce9a6a4b7376d21c6a0d2a20f932030f10e4134391e7adadcd0afbc22b1 +size 8146800 diff --git a/build/examples/CMakeFiles/thrust.example.monte_carlo.dir/monte_carlo.cu.o.d b/build/examples/CMakeFiles/thrust.example.monte_carlo.dir/monte_carlo.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..1d5356de0abe18654c8378913440e839ad94056f --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.monte_carlo.dir/monte_carlo.cu.o.d @@ -0,0 +1,760 @@ +examples/CMakeFiles/thrust.example.monte_carlo.dir/monte_carlo.cu.o : /home/ubuntu/thrust/examples/monte_carlo.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cstdint.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/discard_block_engine.h \ + /usr/include/c++/9/iostream \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/cstdint \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cstdio \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/random_core_access.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/discard_block_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/linear_congruential_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_congruential_engine_discard.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/mod.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_congruential_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/linear_feedback_shift_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_feedback_shift_engine_wordmask.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_feedback_shift_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/subtract_with_carry_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/subtract_with_carry_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/xor_combine_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/xor_combine_engine_max.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mpl/math.h \ + /usr/include/c++/9/limits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/xor_combine_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/uniform_int_distribution.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/uniform_int_distribution.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/uniform_real_distribution.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/uniform_real_distribution.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/normal_distribution.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/normal_distribution_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/normal_distribution.inl \ + /usr/include/math_constants.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/counting_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/invoke.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/counting_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/numeric_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform_reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform_reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/iterator/is_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/permutation_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/permutation_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/dispatch.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/single_pass_scan_operators.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/cpp_compatibility.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_queue.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_math.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_discontinuity.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/minmax.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/make_unsigned_special.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/choose_offset.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking_commutative_only.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_warp_reductions.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_even_share.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_mapping.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/arg_index_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/constant_input_iterator.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform_reduce.h \ + /usr/include/c++/9/iomanip \ + /usr/include/c++/9/locale \ + /usr/include/c++/9/bits/locale_facets_nonio.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/time_members.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/messages_members.h \ + /usr/include/libintl.h \ + /usr/include/c++/9/bits/codecvt.h \ + /usr/include/c++/9/bits/locale_facets_nonio.tcc \ + /usr/include/c++/9/bits/locale_conv.h \ + /usr/include/c++/9/bits/quoted_string.h \ + /usr/include/c++/9/sstream \ + /usr/include/c++/9/bits/sstream.tcc diff --git a/build/examples/CMakeFiles/thrust.example.monte_carlo.dir/objects1.rsp b/build/examples/CMakeFiles/thrust.example.monte_carlo.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..47e757c24a37729b3e19f954867afdec2d9a6d79 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.monte_carlo.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.monte_carlo.dir/monte_carlo.cu.o diff --git a/build/examples/CMakeFiles/thrust.example.monte_carlo.dir/progress.make b/build/examples/CMakeFiles/thrust.example.monte_carlo.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..6c287f17b23171ee8abc97d23b8f8a3bfa7225de --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.monte_carlo.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = + diff --git a/build/examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..cb467dc60f159f55f282e142a2e7e878dcef1491 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/monte_carlo_disjoint_sequences.cu" "examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/monte_carlo_disjoint_sequences.cu.o" "gcc" "examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/monte_carlo_disjoint_sequences.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/build.make b/build/examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..f26d0fddb4718facd7ae8b97b804ac3e5b8c71e6 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/flags.make + +examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/monte_carlo_disjoint_sequences.cu.o: examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/flags.make +examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/monte_carlo_disjoint_sequences.cu.o: examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/includes_CUDA.rsp +examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/monte_carlo_disjoint_sequences.cu.o: /home/ubuntu/thrust/examples/monte_carlo_disjoint_sequences.cu +examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/monte_carlo_disjoint_sequences.cu.o: examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/monte_carlo_disjoint_sequences.cu.o" + cd /home/ubuntu/thrust/build/examples && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/monte_carlo_disjoint_sequences.cu.o -MF CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/monte_carlo_disjoint_sequences.cu.o.d -x cu -c /home/ubuntu/thrust/examples/monte_carlo_disjoint_sequences.cu -o CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/monte_carlo_disjoint_sequences.cu.o + +examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/monte_carlo_disjoint_sequences.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/monte_carlo_disjoint_sequences.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/monte_carlo_disjoint_sequences.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/monte_carlo_disjoint_sequences.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.monte_carlo_disjoint_sequences +thrust_example_monte_carlo_disjoint_sequences_OBJECTS = \ +"CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/monte_carlo_disjoint_sequences.cu.o" + +# External object files for target thrust.example.monte_carlo_disjoint_sequences +thrust_example_monte_carlo_disjoint_sequences_EXTERNAL_OBJECTS = + +bin/thrust.example.monte_carlo_disjoint_sequences: examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/monte_carlo_disjoint_sequences.cu.o +bin/thrust.example.monte_carlo_disjoint_sequences: examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/build.make +bin/thrust.example.monte_carlo_disjoint_sequences: examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/linkLibs.rsp +bin/thrust.example.monte_carlo_disjoint_sequences: examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/objects1.rsp +bin/thrust.example.monte_carlo_disjoint_sequences: examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../bin/thrust.example.monte_carlo_disjoint_sequences" + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/build: bin/thrust.example.monte_carlo_disjoint_sequences +.PHONY : examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/build + +examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/clean + +examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..0645ac96ceec50a5f8b16a5158997216a8df3a9f --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../bin/thrust.example.monte_carlo_disjoint_sequences" + "../bin/thrust.example.monte_carlo_disjoint_sequences.pdb" + "CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/monte_carlo_disjoint_sequences.cu.o" + "CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/monte_carlo_disjoint_sequences.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..4ae0a67929029670082bb269df2365588f040322 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.monte_carlo_disjoint_sequences. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..8bac42037f816992778a4604cad40c26efbb791f --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.monte_carlo_disjoint_sequences. diff --git a/build/examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/depend.make b/build/examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..4c07615360c5345d496936ff16b366c2ff6ae90d --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.monte_carlo_disjoint_sequences. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/flags.make b/build/examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..836a44668fe41214c064ee23245680b4720588ca --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/includes_CUDA.rsp b/build/examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/link.txt b/build/examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..161871bd515bb2b0bd442c570807f193888b2e22 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/objects1.rsp -o ../bin/thrust.example.monte_carlo_disjoint_sequences @CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/linkLibs.rsp b/build/examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/monte_carlo_disjoint_sequences.cu.o b/build/examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/monte_carlo_disjoint_sequences.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..38ade01b146e8d0e52e9facc3a337411575183da --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/monte_carlo_disjoint_sequences.cu.o @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eef334308c869951d0bc11195a33ea8585843676126700af02a1d79d2cf99d7b +size 10830000 diff --git a/build/examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/monte_carlo_disjoint_sequences.cu.o.d b/build/examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/monte_carlo_disjoint_sequences.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..be5f187f1c66f8d8a1018c8a45135bcf7d910909 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/monte_carlo_disjoint_sequences.cu.o.d @@ -0,0 +1,748 @@ +examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/monte_carlo_disjoint_sequences.cu.o : /home/ubuntu/thrust/examples/monte_carlo_disjoint_sequences.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cstdint.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/discard_block_engine.h \ + /usr/include/c++/9/iostream \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/cstdint \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cstdio \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/random_core_access.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/discard_block_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/linear_congruential_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_congruential_engine_discard.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/mod.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_congruential_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/linear_feedback_shift_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_feedback_shift_engine_wordmask.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_feedback_shift_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/subtract_with_carry_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/subtract_with_carry_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/xor_combine_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/xor_combine_engine_max.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mpl/math.h \ + /usr/include/c++/9/limits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/xor_combine_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/uniform_int_distribution.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/uniform_int_distribution.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/uniform_real_distribution.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/uniform_real_distribution.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/normal_distribution.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/normal_distribution_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/normal_distribution.inl \ + /usr/include/math_constants.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/counting_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/invoke.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/counting_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/numeric_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform_reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform_reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/iterator/is_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/permutation_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/permutation_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/dispatch.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/single_pass_scan_operators.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/cpp_compatibility.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_queue.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_math.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_discontinuity.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/minmax.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/make_unsigned_special.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/choose_offset.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking_commutative_only.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_warp_reductions.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_even_share.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_mapping.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/arg_index_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/constant_input_iterator.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform_reduce.h diff --git a/build/examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/objects1.rsp b/build/examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a5e6ec42946e084e1c3d64adeb8295efa1f0379e --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/monte_carlo_disjoint_sequences.cu.o diff --git a/build/examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/progress.make b/build/examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..6c287f17b23171ee8abc97d23b8f8a3bfa7225de --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = + diff --git a/build/examples/CMakeFiles/thrust.example.mr_basic.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.example.mr_basic.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..fa4c6509d5a524621ad36588d4c0a4e69e44bd6a --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.mr_basic.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/mr_basic.cu" "examples/CMakeFiles/thrust.example.mr_basic.dir/mr_basic.cu.o" "gcc" "examples/CMakeFiles/thrust.example.mr_basic.dir/mr_basic.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.example.mr_basic.dir/build.make b/build/examples/CMakeFiles/thrust.example.mr_basic.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..49eb7dcce13f5173fc9a9b0364b69d5c39e5da5e --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.mr_basic.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/CMakeFiles/thrust.example.mr_basic.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/CMakeFiles/thrust.example.mr_basic.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.example.mr_basic.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/CMakeFiles/thrust.example.mr_basic.dir/flags.make + +examples/CMakeFiles/thrust.example.mr_basic.dir/mr_basic.cu.o: examples/CMakeFiles/thrust.example.mr_basic.dir/flags.make +examples/CMakeFiles/thrust.example.mr_basic.dir/mr_basic.cu.o: examples/CMakeFiles/thrust.example.mr_basic.dir/includes_CUDA.rsp +examples/CMakeFiles/thrust.example.mr_basic.dir/mr_basic.cu.o: /home/ubuntu/thrust/examples/mr_basic.cu +examples/CMakeFiles/thrust.example.mr_basic.dir/mr_basic.cu.o: examples/CMakeFiles/thrust.example.mr_basic.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/CMakeFiles/thrust.example.mr_basic.dir/mr_basic.cu.o" + cd /home/ubuntu/thrust/build/examples && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/CMakeFiles/thrust.example.mr_basic.dir/mr_basic.cu.o -MF CMakeFiles/thrust.example.mr_basic.dir/mr_basic.cu.o.d -x cu -c /home/ubuntu/thrust/examples/mr_basic.cu -o CMakeFiles/thrust.example.mr_basic.dir/mr_basic.cu.o + +examples/CMakeFiles/thrust.example.mr_basic.dir/mr_basic.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.mr_basic.dir/mr_basic.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/CMakeFiles/thrust.example.mr_basic.dir/mr_basic.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.mr_basic.dir/mr_basic.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.mr_basic +thrust_example_mr_basic_OBJECTS = \ +"CMakeFiles/thrust.example.mr_basic.dir/mr_basic.cu.o" + +# External object files for target thrust.example.mr_basic +thrust_example_mr_basic_EXTERNAL_OBJECTS = + +bin/thrust.example.mr_basic: examples/CMakeFiles/thrust.example.mr_basic.dir/mr_basic.cu.o +bin/thrust.example.mr_basic: examples/CMakeFiles/thrust.example.mr_basic.dir/build.make +bin/thrust.example.mr_basic: examples/CMakeFiles/thrust.example.mr_basic.dir/linkLibs.rsp +bin/thrust.example.mr_basic: examples/CMakeFiles/thrust.example.mr_basic.dir/objects1.rsp +bin/thrust.example.mr_basic: examples/CMakeFiles/thrust.example.mr_basic.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../bin/thrust.example.mr_basic" + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.mr_basic.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.example.mr_basic.dir/build: bin/thrust.example.mr_basic +.PHONY : examples/CMakeFiles/thrust.example.mr_basic.dir/build + +examples/CMakeFiles/thrust.example.mr_basic.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.mr_basic.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.example.mr_basic.dir/clean + +examples/CMakeFiles/thrust.example.mr_basic.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.mr_basic.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.example.mr_basic.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.example.mr_basic.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.example.mr_basic.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..cab1c428da19f8fffba9393fe1718cc55868c282 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.mr_basic.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../bin/thrust.example.mr_basic" + "../bin/thrust.example.mr_basic.pdb" + "CMakeFiles/thrust.example.mr_basic.dir/mr_basic.cu.o" + "CMakeFiles/thrust.example.mr_basic.dir/mr_basic.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.mr_basic.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.example.mr_basic.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.example.mr_basic.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..8d37af7f86ebdceb745bbf188ff63e742f6c0591 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.mr_basic.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.mr_basic. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.mr_basic.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.example.mr_basic.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..f7d1349a3fb345fb779f7639e1b896fc928f0e75 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.mr_basic.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.mr_basic. diff --git a/build/examples/CMakeFiles/thrust.example.mr_basic.dir/depend.make b/build/examples/CMakeFiles/thrust.example.mr_basic.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..7f03040948d60c562e32f5f8488f4b755b387021 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.mr_basic.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.mr_basic. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.mr_basic.dir/flags.make b/build/examples/CMakeFiles/thrust.example.mr_basic.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..f6de9a719b1473566bfc9adc072bf56602c4b299 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.mr_basic.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.mr_basic.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/CMakeFiles/thrust.example.mr_basic.dir/includes_CUDA.rsp b/build/examples/CMakeFiles/thrust.example.mr_basic.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.mr_basic.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/CMakeFiles/thrust.example.mr_basic.dir/link.txt b/build/examples/CMakeFiles/thrust.example.mr_basic.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..eb7efa385fc2bde27dd2a950c1b6182cb744fe8a --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.mr_basic.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.mr_basic.dir/objects1.rsp -o ../bin/thrust.example.mr_basic @CMakeFiles/thrust.example.mr_basic.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/CMakeFiles/thrust.example.mr_basic.dir/linkLibs.rsp b/build/examples/CMakeFiles/thrust.example.mr_basic.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.mr_basic.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/CMakeFiles/thrust.example.mr_basic.dir/mr_basic.cu.o b/build/examples/CMakeFiles/thrust.example.mr_basic.dir/mr_basic.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..758c870b828b69afcaf06767f9a722ffdcc1e2ca Binary files /dev/null and b/build/examples/CMakeFiles/thrust.example.mr_basic.dir/mr_basic.cu.o differ diff --git a/build/examples/CMakeFiles/thrust.example.mr_basic.dir/mr_basic.cu.o.d b/build/examples/CMakeFiles/thrust.example.mr_basic.dir/mr_basic.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..83cbb550d1a6eccb66cb38effb3dd98086dc9190 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.mr_basic.dir/mr_basic.cu.o.d @@ -0,0 +1,787 @@ +examples/CMakeFiles/thrust.example.mr_basic.dir/mr_basic.cu.o : /home/ubuntu/thrust/examples/mr_basic.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/allocator.h \ + /usr/include/c++/9/limits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cstdio \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/invoke.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/validator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/polymorphic_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/new.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/pool.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/algorithm_wrapper.h \ + /usr/include/c++/9/algorithm \ + /usr/include/c++/9/bits/stl_algo.h \ + /usr/include/c++/9/bits/algorithmfwd.h \ + /usr/include/c++/9/bits/stl_heap.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/bits/uniform_int_dist.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/host_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/reverse_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /usr/include/c++/9/iostream \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /usr/include/c++/9/vector \ + /usr/include/c++/9/bits/stl_vector.h \ + /usr/include/c++/9/bits/stl_bvector.h \ + /usr/include/c++/9/bits/vector.tcc \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/overlapped_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/iterator/is_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/permutation_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/permutation_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cstdint.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/dispatch.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/single_pass_scan_operators.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/cpp_compatibility.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_queue.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_math.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_discontinuity.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/minmax.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mpl/math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/make_unsigned_special.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/choose_offset.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking_commutative_only.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_warp_reductions.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_even_share.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_mapping.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/arg_index_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/constant_input_iterator.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/counting_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/counting_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/numeric_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/pool_options.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/disjoint_pool.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/binary_search.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/binary_search.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scalar/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scalar/binary_search.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_ptr.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/device_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/host_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/fancy_pointer_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/pointer.h diff --git a/build/examples/CMakeFiles/thrust.example.mr_basic.dir/objects1.rsp b/build/examples/CMakeFiles/thrust.example.mr_basic.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..11f7730d9d66b96bc59a7125f9685eae6f65b89b --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.mr_basic.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.mr_basic.dir/mr_basic.cu.o diff --git a/build/examples/CMakeFiles/thrust.example.mr_basic.dir/progress.make b/build/examples/CMakeFiles/thrust.example.mr_basic.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..6c287f17b23171ee8abc97d23b8f8a3bfa7225de --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.mr_basic.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = + diff --git a/build/examples/CMakeFiles/thrust.example.norm.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.example.norm.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..6e3ce4353e93348450e0d07c11fa858d2b9e55b7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.norm.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/norm.cu" "examples/CMakeFiles/thrust.example.norm.dir/norm.cu.o" "gcc" "examples/CMakeFiles/thrust.example.norm.dir/norm.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.example.norm.dir/build.make b/build/examples/CMakeFiles/thrust.example.norm.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..ff7728cced73575773bfcb69e48a5cf68fe62880 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.norm.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/CMakeFiles/thrust.example.norm.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/CMakeFiles/thrust.example.norm.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.example.norm.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/CMakeFiles/thrust.example.norm.dir/flags.make + +examples/CMakeFiles/thrust.example.norm.dir/norm.cu.o: examples/CMakeFiles/thrust.example.norm.dir/flags.make +examples/CMakeFiles/thrust.example.norm.dir/norm.cu.o: examples/CMakeFiles/thrust.example.norm.dir/includes_CUDA.rsp +examples/CMakeFiles/thrust.example.norm.dir/norm.cu.o: /home/ubuntu/thrust/examples/norm.cu +examples/CMakeFiles/thrust.example.norm.dir/norm.cu.o: examples/CMakeFiles/thrust.example.norm.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/CMakeFiles/thrust.example.norm.dir/norm.cu.o" + cd /home/ubuntu/thrust/build/examples && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/CMakeFiles/thrust.example.norm.dir/norm.cu.o -MF CMakeFiles/thrust.example.norm.dir/norm.cu.o.d -x cu -c /home/ubuntu/thrust/examples/norm.cu -o CMakeFiles/thrust.example.norm.dir/norm.cu.o + +examples/CMakeFiles/thrust.example.norm.dir/norm.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.norm.dir/norm.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/CMakeFiles/thrust.example.norm.dir/norm.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.norm.dir/norm.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.norm +thrust_example_norm_OBJECTS = \ +"CMakeFiles/thrust.example.norm.dir/norm.cu.o" + +# External object files for target thrust.example.norm +thrust_example_norm_EXTERNAL_OBJECTS = + +bin/thrust.example.norm: examples/CMakeFiles/thrust.example.norm.dir/norm.cu.o +bin/thrust.example.norm: examples/CMakeFiles/thrust.example.norm.dir/build.make +bin/thrust.example.norm: examples/CMakeFiles/thrust.example.norm.dir/linkLibs.rsp +bin/thrust.example.norm: examples/CMakeFiles/thrust.example.norm.dir/objects1.rsp +bin/thrust.example.norm: examples/CMakeFiles/thrust.example.norm.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../bin/thrust.example.norm" + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.norm.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.example.norm.dir/build: bin/thrust.example.norm +.PHONY : examples/CMakeFiles/thrust.example.norm.dir/build + +examples/CMakeFiles/thrust.example.norm.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.norm.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.example.norm.dir/clean + +examples/CMakeFiles/thrust.example.norm.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.norm.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.example.norm.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.example.norm.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.example.norm.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..22aab1352fff6d03e39a0a939283931e805ac4c0 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.norm.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../bin/thrust.example.norm" + "../bin/thrust.example.norm.pdb" + "CMakeFiles/thrust.example.norm.dir/norm.cu.o" + "CMakeFiles/thrust.example.norm.dir/norm.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.norm.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.example.norm.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.example.norm.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..de963ddd53dbea4f7eda8b2eb7f17773397affa6 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.norm.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.norm. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.norm.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.example.norm.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..4cb0d644498ef59c3950dd91d10950034c710006 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.norm.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.norm. diff --git a/build/examples/CMakeFiles/thrust.example.norm.dir/depend.make b/build/examples/CMakeFiles/thrust.example.norm.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..d3382735cc07a8512ae115b59c7d37b519520204 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.norm.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.norm. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.norm.dir/flags.make b/build/examples/CMakeFiles/thrust.example.norm.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..50418b572d2535879f529fdddae54a3d6d3c07c1 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.norm.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.norm.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/CMakeFiles/thrust.example.norm.dir/includes_CUDA.rsp b/build/examples/CMakeFiles/thrust.example.norm.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.norm.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/CMakeFiles/thrust.example.norm.dir/link.txt b/build/examples/CMakeFiles/thrust.example.norm.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..ca1637f965b2b5b6cba0c390f22534041a3e27b0 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.norm.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.norm.dir/objects1.rsp -o ../bin/thrust.example.norm @CMakeFiles/thrust.example.norm.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/CMakeFiles/thrust.example.norm.dir/linkLibs.rsp b/build/examples/CMakeFiles/thrust.example.norm.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.norm.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/CMakeFiles/thrust.example.norm.dir/norm.cu.o b/build/examples/CMakeFiles/thrust.example.norm.dir/norm.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..6ff5952144b1c7fa6a50f5f090010d959a956629 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.norm.dir/norm.cu.o @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bd11568a77f6fc98a3499ea9f84cbad7786b586501157ac3e4c7ea417265e7a9 +size 1505512 diff --git a/build/examples/CMakeFiles/thrust.example.norm.dir/norm.cu.o.d b/build/examples/CMakeFiles/thrust.example.norm.dir/norm.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..7b37eb92b7550e6e0ee1973141e0390d740c040f --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.norm.dir/norm.cu.o.d @@ -0,0 +1,775 @@ +examples/CMakeFiles/thrust.example.norm.dir/norm.cu.o : /home/ubuntu/thrust/examples/norm.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform_reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cstdio \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/invoke.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform_reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/iterator/is_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /usr/include/c++/9/iostream \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/c++/9/limits \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/permutation_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/permutation_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cstdint.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/dispatch.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/single_pass_scan_operators.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/cpp_compatibility.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_queue.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_math.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_discontinuity.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/minmax.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mpl/math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/make_unsigned_special.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/choose_offset.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking_commutative_only.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_warp_reductions.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_even_share.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_mapping.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/arg_index_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/constant_input_iterator.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/reverse_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator.inl \ + /usr/include/c++/9/vector \ + /usr/include/c++/9/bits/stl_vector.h \ + /usr/include/c++/9/bits/stl_bvector.h \ + /usr/include/c++/9/bits/vector.tcc \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/overlapped_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/counting_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/counting_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/numeric_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_ptr.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/validator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/polymorphic_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/device_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/host_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/new.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/fancy_pointer_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/host_vector.h diff --git a/build/examples/CMakeFiles/thrust.example.norm.dir/objects1.rsp b/build/examples/CMakeFiles/thrust.example.norm.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..6f6a7a476cad220081e6d7cbcc3dc4992c817a1d --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.norm.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.norm.dir/norm.cu.o diff --git a/build/examples/CMakeFiles/thrust.example.norm.dir/progress.make b/build/examples/CMakeFiles/thrust.example.norm.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..6c287f17b23171ee8abc97d23b8f8a3bfa7225de --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.norm.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = + diff --git a/build/examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..ef71775a2addf60ac99b393e0db17f7e84231ad0 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/padded_grid_reduction.cu" "examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/padded_grid_reduction.cu.o" "gcc" "examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/padded_grid_reduction.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/build.make b/build/examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..f110d13d398c115d88f3761ad28e1ecf146e5488 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/flags.make + +examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/padded_grid_reduction.cu.o: examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/flags.make +examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/padded_grid_reduction.cu.o: examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/includes_CUDA.rsp +examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/padded_grid_reduction.cu.o: /home/ubuntu/thrust/examples/padded_grid_reduction.cu +examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/padded_grid_reduction.cu.o: examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/padded_grid_reduction.cu.o" + cd /home/ubuntu/thrust/build/examples && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/padded_grid_reduction.cu.o -MF CMakeFiles/thrust.example.padded_grid_reduction.dir/padded_grid_reduction.cu.o.d -x cu -c /home/ubuntu/thrust/examples/padded_grid_reduction.cu -o CMakeFiles/thrust.example.padded_grid_reduction.dir/padded_grid_reduction.cu.o + +examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/padded_grid_reduction.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.padded_grid_reduction.dir/padded_grid_reduction.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/padded_grid_reduction.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.padded_grid_reduction.dir/padded_grid_reduction.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.padded_grid_reduction +thrust_example_padded_grid_reduction_OBJECTS = \ +"CMakeFiles/thrust.example.padded_grid_reduction.dir/padded_grid_reduction.cu.o" + +# External object files for target thrust.example.padded_grid_reduction +thrust_example_padded_grid_reduction_EXTERNAL_OBJECTS = + +bin/thrust.example.padded_grid_reduction: examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/padded_grid_reduction.cu.o +bin/thrust.example.padded_grid_reduction: examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/build.make +bin/thrust.example.padded_grid_reduction: examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/linkLibs.rsp +bin/thrust.example.padded_grid_reduction: examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/objects1.rsp +bin/thrust.example.padded_grid_reduction: examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../bin/thrust.example.padded_grid_reduction" + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.padded_grid_reduction.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/build: bin/thrust.example.padded_grid_reduction +.PHONY : examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/build + +examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.padded_grid_reduction.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/clean + +examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..6ca7f15348bba546f00f0d1daf5997fbb6567ece --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../bin/thrust.example.padded_grid_reduction" + "../bin/thrust.example.padded_grid_reduction.pdb" + "CMakeFiles/thrust.example.padded_grid_reduction.dir/padded_grid_reduction.cu.o" + "CMakeFiles/thrust.example.padded_grid_reduction.dir/padded_grid_reduction.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.padded_grid_reduction.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..c6f6f1e3b3ed0ecbfd5a6a324e4eec40c9a2e22b --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.padded_grid_reduction. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..5f542bc958dd067ae5d8cb5b3a22352a8afd08fc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.padded_grid_reduction. diff --git a/build/examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/depend.make b/build/examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..f7e6d8666184ab4c5a56b37a108bee331c63d786 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.padded_grid_reduction. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/flags.make b/build/examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..32b02bdac4862ec3e441f09e8f134e89930b1b04 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.padded_grid_reduction.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/includes_CUDA.rsp b/build/examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/link.txt b/build/examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..d7077cc9665f01d43a48b3b2e900ac3043d02f8b --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.padded_grid_reduction.dir/objects1.rsp -o ../bin/thrust.example.padded_grid_reduction @CMakeFiles/thrust.example.padded_grid_reduction.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/linkLibs.rsp b/build/examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/objects1.rsp b/build/examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..b1ee499c53faf2853325d480de951397d3f14604 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.padded_grid_reduction.dir/padded_grid_reduction.cu.o diff --git a/build/examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/padded_grid_reduction.cu.o b/build/examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/padded_grid_reduction.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..0d69c00b790afe2ac8d57d6d2b96be43c7e5797d --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/padded_grid_reduction.cu.o @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3fd418b59ee4843120f5a50820c51a9e0ee417515a6c38a6817c4b92e68d742c +size 3038512 diff --git a/build/examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/padded_grid_reduction.cu.o.d b/build/examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/padded_grid_reduction.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..7d18f9a7ed410264e4c757c79ecf13804bfba1a7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/padded_grid_reduction.cu.o.d @@ -0,0 +1,881 @@ +examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/padded_grid_reduction.cu.o : /home/ubuntu/thrust/examples/padded_grid_reduction.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform_reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cstdio \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/invoke.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform_reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/iterator/is_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /usr/include/c++/9/iostream \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/c++/9/limits \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/permutation_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/permutation_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cstdint.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/dispatch.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/single_pass_scan_operators.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/cpp_compatibility.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_queue.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_math.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_discontinuity.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/minmax.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mpl/math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/make_unsigned_special.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/choose_offset.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking_commutative_only.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_warp_reductions.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_even_share.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_mapping.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/arg_index_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/constant_input_iterator.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/reverse_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator.inl \ + /usr/include/c++/9/vector \ + /usr/include/c++/9/bits/stl_vector.h \ + /usr/include/c++/9/bits/stl_bvector.h \ + /usr/include/c++/9/bits/vector.tcc \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/overlapped_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/counting_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/counting_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/numeric_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_ptr.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/validator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/polymorphic_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/device_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/host_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/new.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/fancy_pointer_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/host_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/constant_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/constant_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/discard_block_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/random_core_access.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/discard_block_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/linear_congruential_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_congruential_engine_discard.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/mod.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_congruential_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/linear_feedback_shift_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_feedback_shift_engine_wordmask.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_feedback_shift_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/subtract_with_carry_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/subtract_with_carry_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/xor_combine_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/xor_combine_engine_max.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/xor_combine_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/uniform_int_distribution.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/uniform_int_distribution.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/uniform_real_distribution.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/uniform_real_distribution.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/normal_distribution.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/normal_distribution_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/normal_distribution.inl \ + /usr/include/math_constants.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/extrema.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/extrema.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/get_iterator_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/adjacent_difference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/adjacent_difference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/merge.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/partition.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/partition.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/remove.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/remove.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/set_operations.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/set_operations.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reverse.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reverse.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_merge_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_merge_sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/merge.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/merge.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/insertion_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy_backward.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_primitive_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_primitive_sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_radix_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_radix_sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy_if.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_select.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_unique_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_unique_by_key.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/unique.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/unique.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/unique_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/unique_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/extrema.h \ + /usr/include/c++/9/iomanip \ + /usr/include/c++/9/locale \ + /usr/include/c++/9/bits/locale_facets_nonio.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/time_members.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/messages_members.h \ + /usr/include/libintl.h \ + /usr/include/c++/9/bits/codecvt.h \ + /usr/include/c++/9/bits/locale_facets_nonio.tcc \ + /usr/include/c++/9/bits/locale_conv.h \ + /usr/include/c++/9/bits/quoted_string.h \ + /usr/include/c++/9/sstream \ + /usr/include/c++/9/bits/sstream.tcc diff --git a/build/examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/progress.make b/build/examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..6c287f17b23171ee8abc97d23b8f8a3bfa7225de --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = + diff --git a/build/examples/CMakeFiles/thrust.example.permutation_iterator.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.example.permutation_iterator.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..97472477851278ca3f1780c5956509c3ee1bf41d --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.permutation_iterator.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/permutation_iterator.cu" "examples/CMakeFiles/thrust.example.permutation_iterator.dir/permutation_iterator.cu.o" "gcc" "examples/CMakeFiles/thrust.example.permutation_iterator.dir/permutation_iterator.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.example.permutation_iterator.dir/build.make b/build/examples/CMakeFiles/thrust.example.permutation_iterator.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..25b4e9295b60c9f98eb1b7f50c70b6aa2261a749 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.permutation_iterator.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/CMakeFiles/thrust.example.permutation_iterator.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/CMakeFiles/thrust.example.permutation_iterator.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.example.permutation_iterator.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/CMakeFiles/thrust.example.permutation_iterator.dir/flags.make + +examples/CMakeFiles/thrust.example.permutation_iterator.dir/permutation_iterator.cu.o: examples/CMakeFiles/thrust.example.permutation_iterator.dir/flags.make +examples/CMakeFiles/thrust.example.permutation_iterator.dir/permutation_iterator.cu.o: examples/CMakeFiles/thrust.example.permutation_iterator.dir/includes_CUDA.rsp +examples/CMakeFiles/thrust.example.permutation_iterator.dir/permutation_iterator.cu.o: /home/ubuntu/thrust/examples/permutation_iterator.cu +examples/CMakeFiles/thrust.example.permutation_iterator.dir/permutation_iterator.cu.o: examples/CMakeFiles/thrust.example.permutation_iterator.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/CMakeFiles/thrust.example.permutation_iterator.dir/permutation_iterator.cu.o" + cd /home/ubuntu/thrust/build/examples && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/CMakeFiles/thrust.example.permutation_iterator.dir/permutation_iterator.cu.o -MF CMakeFiles/thrust.example.permutation_iterator.dir/permutation_iterator.cu.o.d -x cu -c /home/ubuntu/thrust/examples/permutation_iterator.cu -o CMakeFiles/thrust.example.permutation_iterator.dir/permutation_iterator.cu.o + +examples/CMakeFiles/thrust.example.permutation_iterator.dir/permutation_iterator.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.permutation_iterator.dir/permutation_iterator.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/CMakeFiles/thrust.example.permutation_iterator.dir/permutation_iterator.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.permutation_iterator.dir/permutation_iterator.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.permutation_iterator +thrust_example_permutation_iterator_OBJECTS = \ +"CMakeFiles/thrust.example.permutation_iterator.dir/permutation_iterator.cu.o" + +# External object files for target thrust.example.permutation_iterator +thrust_example_permutation_iterator_EXTERNAL_OBJECTS = + +bin/thrust.example.permutation_iterator: examples/CMakeFiles/thrust.example.permutation_iterator.dir/permutation_iterator.cu.o +bin/thrust.example.permutation_iterator: examples/CMakeFiles/thrust.example.permutation_iterator.dir/build.make +bin/thrust.example.permutation_iterator: examples/CMakeFiles/thrust.example.permutation_iterator.dir/linkLibs.rsp +bin/thrust.example.permutation_iterator: examples/CMakeFiles/thrust.example.permutation_iterator.dir/objects1.rsp +bin/thrust.example.permutation_iterator: examples/CMakeFiles/thrust.example.permutation_iterator.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../bin/thrust.example.permutation_iterator" + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.permutation_iterator.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.example.permutation_iterator.dir/build: bin/thrust.example.permutation_iterator +.PHONY : examples/CMakeFiles/thrust.example.permutation_iterator.dir/build + +examples/CMakeFiles/thrust.example.permutation_iterator.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.permutation_iterator.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.example.permutation_iterator.dir/clean + +examples/CMakeFiles/thrust.example.permutation_iterator.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.permutation_iterator.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.example.permutation_iterator.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.example.permutation_iterator.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.example.permutation_iterator.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..b68ae5a3b08823a1245189f321c728816c95dfb4 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.permutation_iterator.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../bin/thrust.example.permutation_iterator" + "../bin/thrust.example.permutation_iterator.pdb" + "CMakeFiles/thrust.example.permutation_iterator.dir/permutation_iterator.cu.o" + "CMakeFiles/thrust.example.permutation_iterator.dir/permutation_iterator.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.permutation_iterator.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.example.permutation_iterator.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.example.permutation_iterator.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..0a1d27985dbd0e85f727b0ccfcd98cb58914a9c5 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.permutation_iterator.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.permutation_iterator. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.permutation_iterator.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.example.permutation_iterator.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..472912e6b3cd6679cf5702133849227651d22d0e --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.permutation_iterator.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.permutation_iterator. diff --git a/build/examples/CMakeFiles/thrust.example.permutation_iterator.dir/depend.make b/build/examples/CMakeFiles/thrust.example.permutation_iterator.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..43e3b52c06c52970b279ccd4502a476c1e1ba872 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.permutation_iterator.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.permutation_iterator. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.permutation_iterator.dir/flags.make b/build/examples/CMakeFiles/thrust.example.permutation_iterator.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..1c42d21f22328a7ad8cb0977293e8fbe44a3435a --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.permutation_iterator.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.permutation_iterator.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/CMakeFiles/thrust.example.permutation_iterator.dir/includes_CUDA.rsp b/build/examples/CMakeFiles/thrust.example.permutation_iterator.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.permutation_iterator.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/CMakeFiles/thrust.example.permutation_iterator.dir/link.txt b/build/examples/CMakeFiles/thrust.example.permutation_iterator.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..5a5afda9c9a5083992cc18dab5557068a03f3976 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.permutation_iterator.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.permutation_iterator.dir/objects1.rsp -o ../bin/thrust.example.permutation_iterator @CMakeFiles/thrust.example.permutation_iterator.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/CMakeFiles/thrust.example.permutation_iterator.dir/linkLibs.rsp b/build/examples/CMakeFiles/thrust.example.permutation_iterator.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.permutation_iterator.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/CMakeFiles/thrust.example.permutation_iterator.dir/objects1.rsp b/build/examples/CMakeFiles/thrust.example.permutation_iterator.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..3db846c4c317f287234f5a9a659f9b83852d51b3 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.permutation_iterator.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.permutation_iterator.dir/permutation_iterator.cu.o diff --git a/build/examples/CMakeFiles/thrust.example.permutation_iterator.dir/permutation_iterator.cu.o b/build/examples/CMakeFiles/thrust.example.permutation_iterator.dir/permutation_iterator.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..80549d401df1118ac22255baee470fc18153b71f --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.permutation_iterator.dir/permutation_iterator.cu.o @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1fba736a6dfc6cef2968b2496f23623effb1c08f2ee5ea6df16e954683eb049c +size 1746200 diff --git a/build/examples/CMakeFiles/thrust.example.permutation_iterator.dir/permutation_iterator.cu.o.d b/build/examples/CMakeFiles/thrust.example.permutation_iterator.dir/permutation_iterator.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..9aa8ba63b73c1a5855313764f75b724428695bce --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.permutation_iterator.dir/permutation_iterator.cu.o.d @@ -0,0 +1,767 @@ +examples/CMakeFiles/thrust.example.permutation_iterator.dir/permutation_iterator.cu.o : /home/ubuntu/thrust/examples/permutation_iterator.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/permutation_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/permutation_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /usr/include/c++/9/cstdio \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/invoke.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/iterator/is_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /usr/include/c++/9/iostream \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/c++/9/limits \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cstdint.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/dispatch.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/single_pass_scan_operators.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/cpp_compatibility.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_queue.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_math.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_discontinuity.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/minmax.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mpl/math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/make_unsigned_special.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/choose_offset.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking_commutative_only.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_warp_reductions.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_even_share.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_mapping.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/arg_index_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/constant_input_iterator.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/reverse_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator.inl \ + /usr/include/c++/9/vector \ + /usr/include/c++/9/bits/stl_vector.h \ + /usr/include/c++/9/bits/stl_bvector.h \ + /usr/include/c++/9/bits/vector.tcc \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/overlapped_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/counting_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/counting_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/numeric_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_ptr.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/validator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/polymorphic_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/device_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/host_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/new.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/fancy_pointer_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/pointer.h diff --git a/build/examples/CMakeFiles/thrust.example.permutation_iterator.dir/progress.make b/build/examples/CMakeFiles/thrust.example.permutation_iterator.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..f18f1bf5217b66a6662426826d8d40d61cabdebd --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.permutation_iterator.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 45 +CMAKE_PROGRESS_2 = + diff --git a/build/examples/CMakeFiles/thrust.example.raw_reference_cast.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.example.raw_reference_cast.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..12fe4d03b4c2f79564d08e41f017528cdb0fcaf4 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.raw_reference_cast.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/raw_reference_cast.cu" "examples/CMakeFiles/thrust.example.raw_reference_cast.dir/raw_reference_cast.cu.o" "gcc" "examples/CMakeFiles/thrust.example.raw_reference_cast.dir/raw_reference_cast.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.example.raw_reference_cast.dir/build.make b/build/examples/CMakeFiles/thrust.example.raw_reference_cast.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..01b76df777300b9e709913c5a89495d472ea4832 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.raw_reference_cast.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/CMakeFiles/thrust.example.raw_reference_cast.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/CMakeFiles/thrust.example.raw_reference_cast.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.example.raw_reference_cast.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/CMakeFiles/thrust.example.raw_reference_cast.dir/flags.make + +examples/CMakeFiles/thrust.example.raw_reference_cast.dir/raw_reference_cast.cu.o: examples/CMakeFiles/thrust.example.raw_reference_cast.dir/flags.make +examples/CMakeFiles/thrust.example.raw_reference_cast.dir/raw_reference_cast.cu.o: examples/CMakeFiles/thrust.example.raw_reference_cast.dir/includes_CUDA.rsp +examples/CMakeFiles/thrust.example.raw_reference_cast.dir/raw_reference_cast.cu.o: /home/ubuntu/thrust/examples/raw_reference_cast.cu +examples/CMakeFiles/thrust.example.raw_reference_cast.dir/raw_reference_cast.cu.o: examples/CMakeFiles/thrust.example.raw_reference_cast.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/CMakeFiles/thrust.example.raw_reference_cast.dir/raw_reference_cast.cu.o" + cd /home/ubuntu/thrust/build/examples && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/CMakeFiles/thrust.example.raw_reference_cast.dir/raw_reference_cast.cu.o -MF CMakeFiles/thrust.example.raw_reference_cast.dir/raw_reference_cast.cu.o.d -x cu -c /home/ubuntu/thrust/examples/raw_reference_cast.cu -o CMakeFiles/thrust.example.raw_reference_cast.dir/raw_reference_cast.cu.o + +examples/CMakeFiles/thrust.example.raw_reference_cast.dir/raw_reference_cast.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.raw_reference_cast.dir/raw_reference_cast.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/CMakeFiles/thrust.example.raw_reference_cast.dir/raw_reference_cast.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.raw_reference_cast.dir/raw_reference_cast.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.raw_reference_cast +thrust_example_raw_reference_cast_OBJECTS = \ +"CMakeFiles/thrust.example.raw_reference_cast.dir/raw_reference_cast.cu.o" + +# External object files for target thrust.example.raw_reference_cast +thrust_example_raw_reference_cast_EXTERNAL_OBJECTS = + +bin/thrust.example.raw_reference_cast: examples/CMakeFiles/thrust.example.raw_reference_cast.dir/raw_reference_cast.cu.o +bin/thrust.example.raw_reference_cast: examples/CMakeFiles/thrust.example.raw_reference_cast.dir/build.make +bin/thrust.example.raw_reference_cast: examples/CMakeFiles/thrust.example.raw_reference_cast.dir/linkLibs.rsp +bin/thrust.example.raw_reference_cast: examples/CMakeFiles/thrust.example.raw_reference_cast.dir/objects1.rsp +bin/thrust.example.raw_reference_cast: examples/CMakeFiles/thrust.example.raw_reference_cast.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../bin/thrust.example.raw_reference_cast" + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.raw_reference_cast.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.example.raw_reference_cast.dir/build: bin/thrust.example.raw_reference_cast +.PHONY : examples/CMakeFiles/thrust.example.raw_reference_cast.dir/build + +examples/CMakeFiles/thrust.example.raw_reference_cast.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.raw_reference_cast.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.example.raw_reference_cast.dir/clean + +examples/CMakeFiles/thrust.example.raw_reference_cast.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.raw_reference_cast.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.example.raw_reference_cast.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.example.raw_reference_cast.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.example.raw_reference_cast.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..04b522af9992a692293fe9e00eda19665c9499da --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.raw_reference_cast.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../bin/thrust.example.raw_reference_cast" + "../bin/thrust.example.raw_reference_cast.pdb" + "CMakeFiles/thrust.example.raw_reference_cast.dir/raw_reference_cast.cu.o" + "CMakeFiles/thrust.example.raw_reference_cast.dir/raw_reference_cast.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.raw_reference_cast.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.example.raw_reference_cast.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.example.raw_reference_cast.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..c9dc793efea22d138c3ac620e357514b88fb5f30 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.raw_reference_cast.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.raw_reference_cast. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.raw_reference_cast.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.example.raw_reference_cast.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..db3314d24b51ac96fd874d5c66636700aa61f0f4 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.raw_reference_cast.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.raw_reference_cast. diff --git a/build/examples/CMakeFiles/thrust.example.raw_reference_cast.dir/depend.make b/build/examples/CMakeFiles/thrust.example.raw_reference_cast.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..45b91f1973af466b017122adf9060e2dffeaf30d --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.raw_reference_cast.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.raw_reference_cast. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.raw_reference_cast.dir/flags.make b/build/examples/CMakeFiles/thrust.example.raw_reference_cast.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..23d15a07ddf4d19f1d38ebe6ab699186c4879cd0 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.raw_reference_cast.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.raw_reference_cast.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/CMakeFiles/thrust.example.raw_reference_cast.dir/includes_CUDA.rsp b/build/examples/CMakeFiles/thrust.example.raw_reference_cast.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.raw_reference_cast.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/CMakeFiles/thrust.example.raw_reference_cast.dir/link.txt b/build/examples/CMakeFiles/thrust.example.raw_reference_cast.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..2aa0c2442d266dc29dfbabc4a7e066d88fd62f26 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.raw_reference_cast.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.raw_reference_cast.dir/objects1.rsp -o ../bin/thrust.example.raw_reference_cast @CMakeFiles/thrust.example.raw_reference_cast.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/CMakeFiles/thrust.example.raw_reference_cast.dir/linkLibs.rsp b/build/examples/CMakeFiles/thrust.example.raw_reference_cast.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.raw_reference_cast.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/CMakeFiles/thrust.example.raw_reference_cast.dir/objects1.rsp b/build/examples/CMakeFiles/thrust.example.raw_reference_cast.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..13b23f056025d450eed84ad2d5f1eddd6d73c42a --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.raw_reference_cast.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.raw_reference_cast.dir/raw_reference_cast.cu.o diff --git a/build/examples/CMakeFiles/thrust.example.raw_reference_cast.dir/progress.make b/build/examples/CMakeFiles/thrust.example.raw_reference_cast.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..6c287f17b23171ee8abc97d23b8f8a3bfa7225de --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.raw_reference_cast.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = + diff --git a/build/examples/CMakeFiles/thrust.example.raw_reference_cast.dir/raw_reference_cast.cu.o b/build/examples/CMakeFiles/thrust.example.raw_reference_cast.dir/raw_reference_cast.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..41d12e448d291ceb76b50c3148b6b54d52624087 Binary files /dev/null and b/build/examples/CMakeFiles/thrust.example.raw_reference_cast.dir/raw_reference_cast.cu.o differ diff --git a/build/examples/CMakeFiles/thrust.example.raw_reference_cast.dir/raw_reference_cast.cu.o.d b/build/examples/CMakeFiles/thrust.example.raw_reference_cast.dir/raw_reference_cast.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..4bd19515f58314db937487bcc33554b4d68f53c7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.raw_reference_cast.dir/raw_reference_cast.cu.o.d @@ -0,0 +1,781 @@ +examples/CMakeFiles/thrust.example.raw_reference_cast.dir/raw_reference_cast.cu.o : /home/ubuntu/thrust/examples/raw_reference_cast.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cstdio \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/invoke.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/reverse_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /usr/include/c++/9/limits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /usr/include/c++/9/iostream \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /usr/include/c++/9/vector \ + /usr/include/c++/9/bits/stl_vector.h \ + /usr/include/c++/9/bits/stl_bvector.h \ + /usr/include/c++/9/bits/vector.tcc \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/overlapped_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/iterator/is_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/permutation_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/permutation_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cstdint.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/dispatch.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/single_pass_scan_operators.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/cpp_compatibility.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_queue.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_math.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_discontinuity.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/minmax.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mpl/math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/make_unsigned_special.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/choose_offset.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking_commutative_only.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_warp_reductions.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_even_share.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_mapping.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/arg_index_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/constant_input_iterator.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/counting_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/counting_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/numeric_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_ptr.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/validator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/polymorphic_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/device_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/host_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/new.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/fancy_pointer_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/sequence.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/sequence.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tabulate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tabulate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/sequence.h diff --git a/build/examples/CMakeFiles/thrust.example.remove_points2d.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.example.remove_points2d.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..c0df09840d335afe83fc88f825878ca233a5872f --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.remove_points2d.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/remove_points2d.cu" "examples/CMakeFiles/thrust.example.remove_points2d.dir/remove_points2d.cu.o" "gcc" "examples/CMakeFiles/thrust.example.remove_points2d.dir/remove_points2d.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.example.remove_points2d.dir/build.make b/build/examples/CMakeFiles/thrust.example.remove_points2d.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..135f19377b3d35d4b60a67843c223f74d34f0e39 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.remove_points2d.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/CMakeFiles/thrust.example.remove_points2d.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/CMakeFiles/thrust.example.remove_points2d.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.example.remove_points2d.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/CMakeFiles/thrust.example.remove_points2d.dir/flags.make + +examples/CMakeFiles/thrust.example.remove_points2d.dir/remove_points2d.cu.o: examples/CMakeFiles/thrust.example.remove_points2d.dir/flags.make +examples/CMakeFiles/thrust.example.remove_points2d.dir/remove_points2d.cu.o: examples/CMakeFiles/thrust.example.remove_points2d.dir/includes_CUDA.rsp +examples/CMakeFiles/thrust.example.remove_points2d.dir/remove_points2d.cu.o: /home/ubuntu/thrust/examples/remove_points2d.cu +examples/CMakeFiles/thrust.example.remove_points2d.dir/remove_points2d.cu.o: examples/CMakeFiles/thrust.example.remove_points2d.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/CMakeFiles/thrust.example.remove_points2d.dir/remove_points2d.cu.o" + cd /home/ubuntu/thrust/build/examples && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/CMakeFiles/thrust.example.remove_points2d.dir/remove_points2d.cu.o -MF CMakeFiles/thrust.example.remove_points2d.dir/remove_points2d.cu.o.d -x cu -c /home/ubuntu/thrust/examples/remove_points2d.cu -o CMakeFiles/thrust.example.remove_points2d.dir/remove_points2d.cu.o + +examples/CMakeFiles/thrust.example.remove_points2d.dir/remove_points2d.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.remove_points2d.dir/remove_points2d.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/CMakeFiles/thrust.example.remove_points2d.dir/remove_points2d.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.remove_points2d.dir/remove_points2d.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.remove_points2d +thrust_example_remove_points2d_OBJECTS = \ +"CMakeFiles/thrust.example.remove_points2d.dir/remove_points2d.cu.o" + +# External object files for target thrust.example.remove_points2d +thrust_example_remove_points2d_EXTERNAL_OBJECTS = + +bin/thrust.example.remove_points2d: examples/CMakeFiles/thrust.example.remove_points2d.dir/remove_points2d.cu.o +bin/thrust.example.remove_points2d: examples/CMakeFiles/thrust.example.remove_points2d.dir/build.make +bin/thrust.example.remove_points2d: examples/CMakeFiles/thrust.example.remove_points2d.dir/linkLibs.rsp +bin/thrust.example.remove_points2d: examples/CMakeFiles/thrust.example.remove_points2d.dir/objects1.rsp +bin/thrust.example.remove_points2d: examples/CMakeFiles/thrust.example.remove_points2d.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../bin/thrust.example.remove_points2d" + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.remove_points2d.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.example.remove_points2d.dir/build: bin/thrust.example.remove_points2d +.PHONY : examples/CMakeFiles/thrust.example.remove_points2d.dir/build + +examples/CMakeFiles/thrust.example.remove_points2d.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.remove_points2d.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.example.remove_points2d.dir/clean + +examples/CMakeFiles/thrust.example.remove_points2d.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.remove_points2d.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.example.remove_points2d.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.example.remove_points2d.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.example.remove_points2d.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..f7379897b7c9f8c9736aecfa6fc4a64e9294a789 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.remove_points2d.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../bin/thrust.example.remove_points2d" + "../bin/thrust.example.remove_points2d.pdb" + "CMakeFiles/thrust.example.remove_points2d.dir/remove_points2d.cu.o" + "CMakeFiles/thrust.example.remove_points2d.dir/remove_points2d.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.remove_points2d.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.example.remove_points2d.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.example.remove_points2d.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..6f238b99e1a6ae8af975a4285028aca3040d5b2a --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.remove_points2d.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.remove_points2d. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.remove_points2d.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.example.remove_points2d.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..775c2bed12b0c212d03df0fd1555d2aa27e0c3ad --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.remove_points2d.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.remove_points2d. diff --git a/build/examples/CMakeFiles/thrust.example.remove_points2d.dir/depend.make b/build/examples/CMakeFiles/thrust.example.remove_points2d.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..a009b9def25c8329813b085c515f7a6db91fd4a7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.remove_points2d.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.remove_points2d. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.remove_points2d.dir/flags.make b/build/examples/CMakeFiles/thrust.example.remove_points2d.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..15ffccad1fd8b27e5a247d63e3373026f1034e40 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.remove_points2d.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.remove_points2d.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/CMakeFiles/thrust.example.remove_points2d.dir/includes_CUDA.rsp b/build/examples/CMakeFiles/thrust.example.remove_points2d.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.remove_points2d.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/CMakeFiles/thrust.example.remove_points2d.dir/link.txt b/build/examples/CMakeFiles/thrust.example.remove_points2d.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..de6748a13d877ada79671005f515b56cddbedf4d --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.remove_points2d.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.remove_points2d.dir/objects1.rsp -o ../bin/thrust.example.remove_points2d @CMakeFiles/thrust.example.remove_points2d.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/CMakeFiles/thrust.example.remove_points2d.dir/linkLibs.rsp b/build/examples/CMakeFiles/thrust.example.remove_points2d.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.remove_points2d.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/CMakeFiles/thrust.example.remove_points2d.dir/objects1.rsp b/build/examples/CMakeFiles/thrust.example.remove_points2d.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..32d1fee4cd70cb19b1a797375d8b43af2bc51a16 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.remove_points2d.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.remove_points2d.dir/remove_points2d.cu.o diff --git a/build/examples/CMakeFiles/thrust.example.remove_points2d.dir/progress.make b/build/examples/CMakeFiles/thrust.example.remove_points2d.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..6c287f17b23171ee8abc97d23b8f8a3bfa7225de --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.remove_points2d.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = + diff --git a/build/examples/CMakeFiles/thrust.example.remove_points2d.dir/remove_points2d.cu.o b/build/examples/CMakeFiles/thrust.example.remove_points2d.dir/remove_points2d.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..6a88335f1506a25d958430c9baf969ee293db754 Binary files /dev/null and b/build/examples/CMakeFiles/thrust.example.remove_points2d.dir/remove_points2d.cu.o differ diff --git a/build/examples/CMakeFiles/thrust.example.remove_points2d.dir/remove_points2d.cu.o.d b/build/examples/CMakeFiles/thrust.example.remove_points2d.dir/remove_points2d.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..dae41568355f942a3f8c844b1da58812e97c2c69 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.remove_points2d.dir/remove_points2d.cu.o.d @@ -0,0 +1,796 @@ +examples/CMakeFiles/thrust.example.remove_points2d.dir/remove_points2d.cu.o : /home/ubuntu/thrust/examples/remove_points2d.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/host_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cstdio \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/invoke.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/reverse_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /usr/include/c++/9/limits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /usr/include/c++/9/iostream \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /usr/include/c++/9/vector \ + /usr/include/c++/9/bits/stl_vector.h \ + /usr/include/c++/9/bits/stl_bvector.h \ + /usr/include/c++/9/bits/vector.tcc \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/overlapped_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/iterator/is_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/permutation_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/permutation_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cstdint.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/dispatch.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/single_pass_scan_operators.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/cpp_compatibility.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_queue.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_math.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_discontinuity.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/minmax.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mpl/math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/make_unsigned_special.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/choose_offset.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking_commutative_only.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_warp_reductions.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_even_share.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_mapping.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/arg_index_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/constant_input_iterator.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/counting_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/counting_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/numeric_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/remove.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/remove.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/remove.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/remove.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy_if.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_select.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_unique_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_unique_by_key.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/remove.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/remove.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/remove.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/remove.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/discard_block_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/random_core_access.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/discard_block_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/linear_congruential_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_congruential_engine_discard.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/mod.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_congruential_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/linear_feedback_shift_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_feedback_shift_engine_wordmask.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_feedback_shift_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/subtract_with_carry_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/subtract_with_carry_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/xor_combine_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/xor_combine_engine_max.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/xor_combine_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/uniform_int_distribution.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/uniform_int_distribution.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/uniform_real_distribution.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/uniform_real_distribution.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/normal_distribution.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/normal_distribution_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/normal_distribution.inl \ + /usr/include/math_constants.h diff --git a/build/examples/CMakeFiles/thrust.example.repeated_range.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.example.repeated_range.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..887479057ee514d49958343e34ca54df18d18ec4 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.repeated_range.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/repeated_range.cu" "examples/CMakeFiles/thrust.example.repeated_range.dir/repeated_range.cu.o" "gcc" "examples/CMakeFiles/thrust.example.repeated_range.dir/repeated_range.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.example.repeated_range.dir/build.make b/build/examples/CMakeFiles/thrust.example.repeated_range.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..ebb5fa0e2855e6200caa3aa1213af3275b412e0c --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.repeated_range.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/CMakeFiles/thrust.example.repeated_range.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/CMakeFiles/thrust.example.repeated_range.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.example.repeated_range.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/CMakeFiles/thrust.example.repeated_range.dir/flags.make + +examples/CMakeFiles/thrust.example.repeated_range.dir/repeated_range.cu.o: examples/CMakeFiles/thrust.example.repeated_range.dir/flags.make +examples/CMakeFiles/thrust.example.repeated_range.dir/repeated_range.cu.o: examples/CMakeFiles/thrust.example.repeated_range.dir/includes_CUDA.rsp +examples/CMakeFiles/thrust.example.repeated_range.dir/repeated_range.cu.o: /home/ubuntu/thrust/examples/repeated_range.cu +examples/CMakeFiles/thrust.example.repeated_range.dir/repeated_range.cu.o: examples/CMakeFiles/thrust.example.repeated_range.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/CMakeFiles/thrust.example.repeated_range.dir/repeated_range.cu.o" + cd /home/ubuntu/thrust/build/examples && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/CMakeFiles/thrust.example.repeated_range.dir/repeated_range.cu.o -MF CMakeFiles/thrust.example.repeated_range.dir/repeated_range.cu.o.d -x cu -c /home/ubuntu/thrust/examples/repeated_range.cu -o CMakeFiles/thrust.example.repeated_range.dir/repeated_range.cu.o + +examples/CMakeFiles/thrust.example.repeated_range.dir/repeated_range.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.repeated_range.dir/repeated_range.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/CMakeFiles/thrust.example.repeated_range.dir/repeated_range.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.repeated_range.dir/repeated_range.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.repeated_range +thrust_example_repeated_range_OBJECTS = \ +"CMakeFiles/thrust.example.repeated_range.dir/repeated_range.cu.o" + +# External object files for target thrust.example.repeated_range +thrust_example_repeated_range_EXTERNAL_OBJECTS = + +bin/thrust.example.repeated_range: examples/CMakeFiles/thrust.example.repeated_range.dir/repeated_range.cu.o +bin/thrust.example.repeated_range: examples/CMakeFiles/thrust.example.repeated_range.dir/build.make +bin/thrust.example.repeated_range: examples/CMakeFiles/thrust.example.repeated_range.dir/linkLibs.rsp +bin/thrust.example.repeated_range: examples/CMakeFiles/thrust.example.repeated_range.dir/objects1.rsp +bin/thrust.example.repeated_range: examples/CMakeFiles/thrust.example.repeated_range.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../bin/thrust.example.repeated_range" + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.repeated_range.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.example.repeated_range.dir/build: bin/thrust.example.repeated_range +.PHONY : examples/CMakeFiles/thrust.example.repeated_range.dir/build + +examples/CMakeFiles/thrust.example.repeated_range.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.repeated_range.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.example.repeated_range.dir/clean + +examples/CMakeFiles/thrust.example.repeated_range.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.repeated_range.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.example.repeated_range.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.example.repeated_range.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.example.repeated_range.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..75454a4fe6bdc144d2b9abafb622d235d7a9d575 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.repeated_range.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../bin/thrust.example.repeated_range" + "../bin/thrust.example.repeated_range.pdb" + "CMakeFiles/thrust.example.repeated_range.dir/repeated_range.cu.o" + "CMakeFiles/thrust.example.repeated_range.dir/repeated_range.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.repeated_range.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.example.repeated_range.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.example.repeated_range.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..1942cc9690d9916a355df469327a616a013d86aa --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.repeated_range.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.repeated_range. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.repeated_range.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.example.repeated_range.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..155c24f0bb00e6122375ca65d888c91e85f1ac17 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.repeated_range.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.repeated_range. diff --git a/build/examples/CMakeFiles/thrust.example.repeated_range.dir/depend.make b/build/examples/CMakeFiles/thrust.example.repeated_range.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..394c6880dce591251010f5583be3963b3ebfc53c --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.repeated_range.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.repeated_range. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.repeated_range.dir/flags.make b/build/examples/CMakeFiles/thrust.example.repeated_range.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..edaa7e153d3f66935eacb05ed9c9ae88ce6e4b9e --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.repeated_range.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.repeated_range.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/CMakeFiles/thrust.example.repeated_range.dir/includes_CUDA.rsp b/build/examples/CMakeFiles/thrust.example.repeated_range.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.repeated_range.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/CMakeFiles/thrust.example.repeated_range.dir/link.txt b/build/examples/CMakeFiles/thrust.example.repeated_range.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..14b8a926d47b45372f1a7e607f491ffbc8537d1a --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.repeated_range.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.repeated_range.dir/objects1.rsp -o ../bin/thrust.example.repeated_range @CMakeFiles/thrust.example.repeated_range.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/CMakeFiles/thrust.example.repeated_range.dir/linkLibs.rsp b/build/examples/CMakeFiles/thrust.example.repeated_range.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.repeated_range.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/CMakeFiles/thrust.example.repeated_range.dir/objects1.rsp b/build/examples/CMakeFiles/thrust.example.repeated_range.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..3fbafb02406844f2e889692125c2b496936c7742 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.repeated_range.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.repeated_range.dir/repeated_range.cu.o diff --git a/build/examples/CMakeFiles/thrust.example.repeated_range.dir/progress.make b/build/examples/CMakeFiles/thrust.example.repeated_range.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..6c287f17b23171ee8abc97d23b8f8a3bfa7225de --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.repeated_range.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = + diff --git a/build/examples/CMakeFiles/thrust.example.repeated_range.dir/repeated_range.cu.o b/build/examples/CMakeFiles/thrust.example.repeated_range.dir/repeated_range.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..7164027f6fc098e90bf653a71ea2f0cf752d0d16 Binary files /dev/null and b/build/examples/CMakeFiles/thrust.example.repeated_range.dir/repeated_range.cu.o differ diff --git a/build/examples/CMakeFiles/thrust.example.repeated_range.dir/repeated_range.cu.o.d b/build/examples/CMakeFiles/thrust.example.repeated_range.dir/repeated_range.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..8602e87f1564e005f72e8d85c9efd2b78e22d017 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.repeated_range.dir/repeated_range.cu.o.d @@ -0,0 +1,781 @@ +examples/CMakeFiles/thrust.example.repeated_range.dir/repeated_range.cu.o : /home/ubuntu/thrust/examples/repeated_range.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/counting_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /usr/include/c++/9/cstdio \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/invoke.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/counting_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/numeric_traits.h \ + /usr/include/c++/9/limits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/permutation_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/permutation_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /usr/include/c++/9/iostream \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/reverse_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /usr/include/c++/9/vector \ + /usr/include/c++/9/bits/stl_vector.h \ + /usr/include/c++/9/bits/stl_bvector.h \ + /usr/include/c++/9/bits/vector.tcc \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/overlapped_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/iterator/is_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cstdint.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/dispatch.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/single_pass_scan_operators.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/cpp_compatibility.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_queue.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_math.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_discontinuity.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/minmax.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mpl/math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/make_unsigned_special.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/choose_offset.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking_commutative_only.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_warp_reductions.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_even_share.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_mapping.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/arg_index_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/constant_input_iterator.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_ptr.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/validator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/polymorphic_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/device_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/host_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/new.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/fancy_pointer_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy_if.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_select.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_unique_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_unique_by_key.cuh diff --git a/build/examples/CMakeFiles/thrust.example.run_length_decoding.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.example.run_length_decoding.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3ddfbd0cd02814d818e6710802f3eddd9c3883bc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.run_length_decoding.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/run_length_decoding.cu" "examples/CMakeFiles/thrust.example.run_length_decoding.dir/run_length_decoding.cu.o" "gcc" "examples/CMakeFiles/thrust.example.run_length_decoding.dir/run_length_decoding.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.example.run_length_decoding.dir/build.make b/build/examples/CMakeFiles/thrust.example.run_length_decoding.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..4129d793125d99887a972543493745b4490dc503 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.run_length_decoding.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/CMakeFiles/thrust.example.run_length_decoding.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/CMakeFiles/thrust.example.run_length_decoding.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.example.run_length_decoding.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/CMakeFiles/thrust.example.run_length_decoding.dir/flags.make + +examples/CMakeFiles/thrust.example.run_length_decoding.dir/run_length_decoding.cu.o: examples/CMakeFiles/thrust.example.run_length_decoding.dir/flags.make +examples/CMakeFiles/thrust.example.run_length_decoding.dir/run_length_decoding.cu.o: examples/CMakeFiles/thrust.example.run_length_decoding.dir/includes_CUDA.rsp +examples/CMakeFiles/thrust.example.run_length_decoding.dir/run_length_decoding.cu.o: /home/ubuntu/thrust/examples/run_length_decoding.cu +examples/CMakeFiles/thrust.example.run_length_decoding.dir/run_length_decoding.cu.o: examples/CMakeFiles/thrust.example.run_length_decoding.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/CMakeFiles/thrust.example.run_length_decoding.dir/run_length_decoding.cu.o" + cd /home/ubuntu/thrust/build/examples && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/CMakeFiles/thrust.example.run_length_decoding.dir/run_length_decoding.cu.o -MF CMakeFiles/thrust.example.run_length_decoding.dir/run_length_decoding.cu.o.d -x cu -c /home/ubuntu/thrust/examples/run_length_decoding.cu -o CMakeFiles/thrust.example.run_length_decoding.dir/run_length_decoding.cu.o + +examples/CMakeFiles/thrust.example.run_length_decoding.dir/run_length_decoding.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.run_length_decoding.dir/run_length_decoding.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/CMakeFiles/thrust.example.run_length_decoding.dir/run_length_decoding.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.run_length_decoding.dir/run_length_decoding.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.run_length_decoding +thrust_example_run_length_decoding_OBJECTS = \ +"CMakeFiles/thrust.example.run_length_decoding.dir/run_length_decoding.cu.o" + +# External object files for target thrust.example.run_length_decoding +thrust_example_run_length_decoding_EXTERNAL_OBJECTS = + +bin/thrust.example.run_length_decoding: examples/CMakeFiles/thrust.example.run_length_decoding.dir/run_length_decoding.cu.o +bin/thrust.example.run_length_decoding: examples/CMakeFiles/thrust.example.run_length_decoding.dir/build.make +bin/thrust.example.run_length_decoding: examples/CMakeFiles/thrust.example.run_length_decoding.dir/linkLibs.rsp +bin/thrust.example.run_length_decoding: examples/CMakeFiles/thrust.example.run_length_decoding.dir/objects1.rsp +bin/thrust.example.run_length_decoding: examples/CMakeFiles/thrust.example.run_length_decoding.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../bin/thrust.example.run_length_decoding" + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.run_length_decoding.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.example.run_length_decoding.dir/build: bin/thrust.example.run_length_decoding +.PHONY : examples/CMakeFiles/thrust.example.run_length_decoding.dir/build + +examples/CMakeFiles/thrust.example.run_length_decoding.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.run_length_decoding.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.example.run_length_decoding.dir/clean + +examples/CMakeFiles/thrust.example.run_length_decoding.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.run_length_decoding.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.example.run_length_decoding.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.example.run_length_decoding.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.example.run_length_decoding.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..8af0fbb56f8c81cc327afe6af9a6e4253b927ae5 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.run_length_decoding.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../bin/thrust.example.run_length_decoding" + "../bin/thrust.example.run_length_decoding.pdb" + "CMakeFiles/thrust.example.run_length_decoding.dir/run_length_decoding.cu.o" + "CMakeFiles/thrust.example.run_length_decoding.dir/run_length_decoding.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.run_length_decoding.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.example.run_length_decoding.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.example.run_length_decoding.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..adf04ef8c43c094d03629bede13c7cb7a8e09aa5 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.run_length_decoding.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.run_length_decoding. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.run_length_decoding.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.example.run_length_decoding.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..5115272491978ce4c3bebd673ca5af5433fd8a96 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.run_length_decoding.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.run_length_decoding. diff --git a/build/examples/CMakeFiles/thrust.example.run_length_decoding.dir/depend.make b/build/examples/CMakeFiles/thrust.example.run_length_decoding.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..3a4d653f4154de1e8d9edcce0d612ed8a30c0eb6 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.run_length_decoding.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.run_length_decoding. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.run_length_decoding.dir/flags.make b/build/examples/CMakeFiles/thrust.example.run_length_decoding.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..952b332f99e5ff1a3a3c1057885af21b6917742c --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.run_length_decoding.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.run_length_decoding.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/CMakeFiles/thrust.example.run_length_decoding.dir/includes_CUDA.rsp b/build/examples/CMakeFiles/thrust.example.run_length_decoding.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.run_length_decoding.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/CMakeFiles/thrust.example.run_length_decoding.dir/link.txt b/build/examples/CMakeFiles/thrust.example.run_length_decoding.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..d8e994f5d78a37ab8e125ce8a40e149ad0709fac --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.run_length_decoding.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.run_length_decoding.dir/objects1.rsp -o ../bin/thrust.example.run_length_decoding @CMakeFiles/thrust.example.run_length_decoding.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/CMakeFiles/thrust.example.run_length_decoding.dir/linkLibs.rsp b/build/examples/CMakeFiles/thrust.example.run_length_decoding.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.run_length_decoding.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/CMakeFiles/thrust.example.run_length_decoding.dir/objects1.rsp b/build/examples/CMakeFiles/thrust.example.run_length_decoding.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..b5571638ee470d071a67a9561ddcbb81c57c7479 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.run_length_decoding.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.run_length_decoding.dir/run_length_decoding.cu.o diff --git a/build/examples/CMakeFiles/thrust.example.run_length_decoding.dir/progress.make b/build/examples/CMakeFiles/thrust.example.run_length_decoding.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..6c287f17b23171ee8abc97d23b8f8a3bfa7225de --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.run_length_decoding.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = + diff --git a/build/examples/CMakeFiles/thrust.example.run_length_decoding.dir/run_length_decoding.cu.o b/build/examples/CMakeFiles/thrust.example.run_length_decoding.dir/run_length_decoding.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..462c74a7a0585e1411f667eff458da5163b726bf --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.run_length_decoding.dir/run_length_decoding.cu.o @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9e8a818bf638a8308661ac476ff99c675ed871941f0183585b848da3a5651f58 +size 1412720 diff --git a/build/examples/CMakeFiles/thrust.example.run_length_decoding.dir/run_length_decoding.cu.o.d b/build/examples/CMakeFiles/thrust.example.run_length_decoding.dir/run_length_decoding.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..352b647103284e7b0990e515a4e1f9940af06213 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.run_length_decoding.dir/run_length_decoding.cu.o.d @@ -0,0 +1,798 @@ +examples/CMakeFiles/thrust.example.run_length_decoding.dir/run_length_decoding.cu.o : /home/ubuntu/thrust/examples/run_length_decoding.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /usr/include/c++/9/cstdio \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/invoke.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/reverse_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /usr/include/c++/9/limits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /usr/include/c++/9/iostream \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /usr/include/c++/9/vector \ + /usr/include/c++/9/bits/stl_vector.h \ + /usr/include/c++/9/bits/stl_bvector.h \ + /usr/include/c++/9/bits/vector.tcc \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/overlapped_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/iterator/is_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/permutation_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/permutation_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cstdint.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/dispatch.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/single_pass_scan_operators.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/cpp_compatibility.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_queue.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_math.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_discontinuity.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/minmax.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mpl/math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/make_unsigned_special.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/choose_offset.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking_commutative_only.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_warp_reductions.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_even_share.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_mapping.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/arg_index_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/constant_input_iterator.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/counting_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/counting_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/numeric_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_ptr.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/validator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/polymorphic_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/device_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/host_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/new.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/fancy_pointer_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy_if.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_select.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_unique_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_unique_by_key.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/gather.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/gather.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/gather.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/gather.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/gather.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/gather.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/gather.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/binary_search.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/binary_search.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scalar/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scalar/binary_search.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/binary_search.h diff --git a/build/examples/CMakeFiles/thrust.example.run_length_encoding.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.example.run_length_encoding.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..0f93c1266f6dd51aeaf0b153d4a9e53d9d1a9b16 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.run_length_encoding.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/run_length_encoding.cu" "examples/CMakeFiles/thrust.example.run_length_encoding.dir/run_length_encoding.cu.o" "gcc" "examples/CMakeFiles/thrust.example.run_length_encoding.dir/run_length_encoding.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.example.run_length_encoding.dir/build.make b/build/examples/CMakeFiles/thrust.example.run_length_encoding.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..13a911185e51325aa8b5a0675a483006ad890300 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.run_length_encoding.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/CMakeFiles/thrust.example.run_length_encoding.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/CMakeFiles/thrust.example.run_length_encoding.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.example.run_length_encoding.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/CMakeFiles/thrust.example.run_length_encoding.dir/flags.make + +examples/CMakeFiles/thrust.example.run_length_encoding.dir/run_length_encoding.cu.o: examples/CMakeFiles/thrust.example.run_length_encoding.dir/flags.make +examples/CMakeFiles/thrust.example.run_length_encoding.dir/run_length_encoding.cu.o: examples/CMakeFiles/thrust.example.run_length_encoding.dir/includes_CUDA.rsp +examples/CMakeFiles/thrust.example.run_length_encoding.dir/run_length_encoding.cu.o: /home/ubuntu/thrust/examples/run_length_encoding.cu +examples/CMakeFiles/thrust.example.run_length_encoding.dir/run_length_encoding.cu.o: examples/CMakeFiles/thrust.example.run_length_encoding.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/CMakeFiles/thrust.example.run_length_encoding.dir/run_length_encoding.cu.o" + cd /home/ubuntu/thrust/build/examples && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/CMakeFiles/thrust.example.run_length_encoding.dir/run_length_encoding.cu.o -MF CMakeFiles/thrust.example.run_length_encoding.dir/run_length_encoding.cu.o.d -x cu -c /home/ubuntu/thrust/examples/run_length_encoding.cu -o CMakeFiles/thrust.example.run_length_encoding.dir/run_length_encoding.cu.o + +examples/CMakeFiles/thrust.example.run_length_encoding.dir/run_length_encoding.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.run_length_encoding.dir/run_length_encoding.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/CMakeFiles/thrust.example.run_length_encoding.dir/run_length_encoding.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.run_length_encoding.dir/run_length_encoding.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.run_length_encoding +thrust_example_run_length_encoding_OBJECTS = \ +"CMakeFiles/thrust.example.run_length_encoding.dir/run_length_encoding.cu.o" + +# External object files for target thrust.example.run_length_encoding +thrust_example_run_length_encoding_EXTERNAL_OBJECTS = + +bin/thrust.example.run_length_encoding: examples/CMakeFiles/thrust.example.run_length_encoding.dir/run_length_encoding.cu.o +bin/thrust.example.run_length_encoding: examples/CMakeFiles/thrust.example.run_length_encoding.dir/build.make +bin/thrust.example.run_length_encoding: examples/CMakeFiles/thrust.example.run_length_encoding.dir/linkLibs.rsp +bin/thrust.example.run_length_encoding: examples/CMakeFiles/thrust.example.run_length_encoding.dir/objects1.rsp +bin/thrust.example.run_length_encoding: examples/CMakeFiles/thrust.example.run_length_encoding.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../bin/thrust.example.run_length_encoding" + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.run_length_encoding.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.example.run_length_encoding.dir/build: bin/thrust.example.run_length_encoding +.PHONY : examples/CMakeFiles/thrust.example.run_length_encoding.dir/build + +examples/CMakeFiles/thrust.example.run_length_encoding.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.run_length_encoding.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.example.run_length_encoding.dir/clean + +examples/CMakeFiles/thrust.example.run_length_encoding.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.run_length_encoding.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.example.run_length_encoding.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.example.run_length_encoding.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.example.run_length_encoding.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..9f796f8bb230a164c7a5b75763716146566e5117 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.run_length_encoding.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../bin/thrust.example.run_length_encoding" + "../bin/thrust.example.run_length_encoding.pdb" + "CMakeFiles/thrust.example.run_length_encoding.dir/run_length_encoding.cu.o" + "CMakeFiles/thrust.example.run_length_encoding.dir/run_length_encoding.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.run_length_encoding.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.example.run_length_encoding.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.example.run_length_encoding.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..d47c56cae331bbdc28dcccd39544ab9a8f3fccae --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.run_length_encoding.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.run_length_encoding. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.run_length_encoding.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.example.run_length_encoding.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..c9c0bac5b4ba4347677b354bad633165edc3f625 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.run_length_encoding.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.run_length_encoding. diff --git a/build/examples/CMakeFiles/thrust.example.run_length_encoding.dir/depend.make b/build/examples/CMakeFiles/thrust.example.run_length_encoding.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..7dc711023ff70c3d6a9afc09aa3b9dcf4ee8f13a --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.run_length_encoding.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.run_length_encoding. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.run_length_encoding.dir/flags.make b/build/examples/CMakeFiles/thrust.example.run_length_encoding.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..a93a5a778c39643ac6efafcb3e92cd69dc11d02d --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.run_length_encoding.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.run_length_encoding.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/CMakeFiles/thrust.example.run_length_encoding.dir/includes_CUDA.rsp b/build/examples/CMakeFiles/thrust.example.run_length_encoding.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.run_length_encoding.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/CMakeFiles/thrust.example.run_length_encoding.dir/link.txt b/build/examples/CMakeFiles/thrust.example.run_length_encoding.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..8c7d4e637a7a022ff0ceb5b54f8642ebfd748b75 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.run_length_encoding.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.run_length_encoding.dir/objects1.rsp -o ../bin/thrust.example.run_length_encoding @CMakeFiles/thrust.example.run_length_encoding.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/CMakeFiles/thrust.example.run_length_encoding.dir/linkLibs.rsp b/build/examples/CMakeFiles/thrust.example.run_length_encoding.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.run_length_encoding.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/CMakeFiles/thrust.example.run_length_encoding.dir/objects1.rsp b/build/examples/CMakeFiles/thrust.example.run_length_encoding.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d0b182ce474d4dc9c457fadb500960875ff3cef5 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.run_length_encoding.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.run_length_encoding.dir/run_length_encoding.cu.o diff --git a/build/examples/CMakeFiles/thrust.example.run_length_encoding.dir/progress.make b/build/examples/CMakeFiles/thrust.example.run_length_encoding.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..6c287f17b23171ee8abc97d23b8f8a3bfa7225de --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.run_length_encoding.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = + diff --git a/build/examples/CMakeFiles/thrust.example.run_length_encoding.dir/run_length_encoding.cu.o b/build/examples/CMakeFiles/thrust.example.run_length_encoding.dir/run_length_encoding.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..268f7e16710e9ae6e5ac3229eaa8e816c5901332 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.run_length_encoding.dir/run_length_encoding.cu.o @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:691a4ab3cb569a6e0cab9d147e91065a3dea0fa093c3378fc9067bb54beb7961 +size 2195536 diff --git a/build/examples/CMakeFiles/thrust.example.run_length_encoding.dir/run_length_encoding.cu.o.d b/build/examples/CMakeFiles/thrust.example.run_length_encoding.dir/run_length_encoding.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..4b1b64d747a9ea5fec8e3e3495a75b9b1910005a --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.run_length_encoding.dir/run_length_encoding.cu.o.d @@ -0,0 +1,783 @@ +examples/CMakeFiles/thrust.example.run_length_encoding.dir/run_length_encoding.cu.o : /home/ubuntu/thrust/examples/run_length_encoding.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /usr/include/c++/9/cstdio \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/invoke.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/reverse_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /usr/include/c++/9/limits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /usr/include/c++/9/iostream \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /usr/include/c++/9/vector \ + /usr/include/c++/9/bits/stl_vector.h \ + /usr/include/c++/9/bits/stl_bvector.h \ + /usr/include/c++/9/bits/vector.tcc \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/overlapped_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/iterator/is_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/permutation_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/permutation_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cstdint.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/dispatch.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/single_pass_scan_operators.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/cpp_compatibility.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_queue.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_math.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_discontinuity.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/minmax.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mpl/math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/make_unsigned_special.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/choose_offset.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking_commutative_only.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_warp_reductions.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_even_share.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_mapping.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/arg_index_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/constant_input_iterator.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/counting_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/counting_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/numeric_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_ptr.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/validator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/polymorphic_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/device_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/host_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/new.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/fancy_pointer_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy_if.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_select.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_unique_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_unique_by_key.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/constant_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/constant_iterator_base.h diff --git a/build/examples/CMakeFiles/thrust.example.saxpy.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.example.saxpy.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..79630fd8098cb07ff695959ff9c109b4f4f5b7b7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.saxpy.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/saxpy.cu" "examples/CMakeFiles/thrust.example.saxpy.dir/saxpy.cu.o" "gcc" "examples/CMakeFiles/thrust.example.saxpy.dir/saxpy.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.example.saxpy.dir/build.make b/build/examples/CMakeFiles/thrust.example.saxpy.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..166fe558dd480bd199993e97c6e859ce5521459b --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.saxpy.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/CMakeFiles/thrust.example.saxpy.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/CMakeFiles/thrust.example.saxpy.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.example.saxpy.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/CMakeFiles/thrust.example.saxpy.dir/flags.make + +examples/CMakeFiles/thrust.example.saxpy.dir/saxpy.cu.o: examples/CMakeFiles/thrust.example.saxpy.dir/flags.make +examples/CMakeFiles/thrust.example.saxpy.dir/saxpy.cu.o: examples/CMakeFiles/thrust.example.saxpy.dir/includes_CUDA.rsp +examples/CMakeFiles/thrust.example.saxpy.dir/saxpy.cu.o: /home/ubuntu/thrust/examples/saxpy.cu +examples/CMakeFiles/thrust.example.saxpy.dir/saxpy.cu.o: examples/CMakeFiles/thrust.example.saxpy.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/CMakeFiles/thrust.example.saxpy.dir/saxpy.cu.o" + cd /home/ubuntu/thrust/build/examples && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/CMakeFiles/thrust.example.saxpy.dir/saxpy.cu.o -MF CMakeFiles/thrust.example.saxpy.dir/saxpy.cu.o.d -x cu -c /home/ubuntu/thrust/examples/saxpy.cu -o CMakeFiles/thrust.example.saxpy.dir/saxpy.cu.o + +examples/CMakeFiles/thrust.example.saxpy.dir/saxpy.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.saxpy.dir/saxpy.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/CMakeFiles/thrust.example.saxpy.dir/saxpy.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.saxpy.dir/saxpy.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.saxpy +thrust_example_saxpy_OBJECTS = \ +"CMakeFiles/thrust.example.saxpy.dir/saxpy.cu.o" + +# External object files for target thrust.example.saxpy +thrust_example_saxpy_EXTERNAL_OBJECTS = + +bin/thrust.example.saxpy: examples/CMakeFiles/thrust.example.saxpy.dir/saxpy.cu.o +bin/thrust.example.saxpy: examples/CMakeFiles/thrust.example.saxpy.dir/build.make +bin/thrust.example.saxpy: examples/CMakeFiles/thrust.example.saxpy.dir/linkLibs.rsp +bin/thrust.example.saxpy: examples/CMakeFiles/thrust.example.saxpy.dir/objects1.rsp +bin/thrust.example.saxpy: examples/CMakeFiles/thrust.example.saxpy.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../bin/thrust.example.saxpy" + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.saxpy.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.example.saxpy.dir/build: bin/thrust.example.saxpy +.PHONY : examples/CMakeFiles/thrust.example.saxpy.dir/build + +examples/CMakeFiles/thrust.example.saxpy.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.saxpy.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.example.saxpy.dir/clean + +examples/CMakeFiles/thrust.example.saxpy.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.saxpy.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.example.saxpy.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.example.saxpy.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.example.saxpy.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..4abc0cf115285a9d814a5b9df82136b930c1da85 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.saxpy.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../bin/thrust.example.saxpy" + "../bin/thrust.example.saxpy.pdb" + "CMakeFiles/thrust.example.saxpy.dir/saxpy.cu.o" + "CMakeFiles/thrust.example.saxpy.dir/saxpy.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.saxpy.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.example.saxpy.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.example.saxpy.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..3e6108246a81a7ae1fde1bd717cc2987e3362f48 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.saxpy.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.saxpy. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.saxpy.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.example.saxpy.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..3a6c0be2cbc697beec244396b43a86af4a760f21 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.saxpy.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.saxpy. diff --git a/build/examples/CMakeFiles/thrust.example.saxpy.dir/depend.make b/build/examples/CMakeFiles/thrust.example.saxpy.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..a7466e2969b2262bed3350974e1d840187c188fa --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.saxpy.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.saxpy. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.saxpy.dir/flags.make b/build/examples/CMakeFiles/thrust.example.saxpy.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..7668a0ea1bd08c2d5bbf6ab9c304fcba0c9b52b3 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.saxpy.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.saxpy.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/CMakeFiles/thrust.example.saxpy.dir/includes_CUDA.rsp b/build/examples/CMakeFiles/thrust.example.saxpy.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.saxpy.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/CMakeFiles/thrust.example.saxpy.dir/link.txt b/build/examples/CMakeFiles/thrust.example.saxpy.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..62f8a9b394b9ae338558067db94ba2a132d61f41 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.saxpy.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.saxpy.dir/objects1.rsp -o ../bin/thrust.example.saxpy @CMakeFiles/thrust.example.saxpy.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/CMakeFiles/thrust.example.saxpy.dir/linkLibs.rsp b/build/examples/CMakeFiles/thrust.example.saxpy.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.saxpy.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/CMakeFiles/thrust.example.saxpy.dir/objects1.rsp b/build/examples/CMakeFiles/thrust.example.saxpy.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..ad3c031a7a0a88c96189277765f5751ffe1640d3 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.saxpy.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.saxpy.dir/saxpy.cu.o diff --git a/build/examples/CMakeFiles/thrust.example.saxpy.dir/progress.make b/build/examples/CMakeFiles/thrust.example.saxpy.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..661b7ff72564ebcdeef00b93f0a0fe494d29a098 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.saxpy.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 46 +CMAKE_PROGRESS_2 = + diff --git a/build/examples/CMakeFiles/thrust.example.saxpy.dir/saxpy.cu.o b/build/examples/CMakeFiles/thrust.example.saxpy.dir/saxpy.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..768d5510c1eb4ff1813a6737fe0db93a10ade17c Binary files /dev/null and b/build/examples/CMakeFiles/thrust.example.saxpy.dir/saxpy.cu.o differ diff --git a/build/examples/CMakeFiles/thrust.example.saxpy.dir/saxpy.cu.o.d b/build/examples/CMakeFiles/thrust.example.saxpy.dir/saxpy.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..fe54c2354f731e31b440570616756b3ddacc81cd --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.saxpy.dir/saxpy.cu.o.d @@ -0,0 +1,773 @@ +examples/CMakeFiles/thrust.example.saxpy.dir/saxpy.cu.o : /home/ubuntu/thrust/examples/saxpy.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cstdio \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/invoke.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /usr/include/c++/9/iostream \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/c++/9/limits \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/reverse_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /usr/include/c++/9/vector \ + /usr/include/c++/9/bits/stl_vector.h \ + /usr/include/c++/9/bits/stl_bvector.h \ + /usr/include/c++/9/bits/vector.tcc \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/overlapped_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/iterator/is_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/permutation_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/permutation_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cstdint.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/dispatch.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/single_pass_scan_operators.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/cpp_compatibility.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_queue.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_math.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_discontinuity.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/minmax.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mpl/math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/make_unsigned_special.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/choose_offset.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking_commutative_only.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_warp_reductions.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_even_share.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_mapping.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/arg_index_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/constant_input_iterator.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/counting_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/counting_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/numeric_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_ptr.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/validator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/polymorphic_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/device_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/host_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/new.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/fancy_pointer_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/host_vector.h \ + /usr/include/c++/9/algorithm \ + /usr/include/c++/9/bits/stl_algo.h \ + /usr/include/c++/9/bits/algorithmfwd.h \ + /usr/include/c++/9/bits/stl_heap.h \ + /usr/include/c++/9/bits/uniform_int_dist.h diff --git a/build/examples/CMakeFiles/thrust.example.scan_by_key.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.example.scan_by_key.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..87659bbf5062ae8ef86d5d439b6850320ce4e2ac --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.scan_by_key.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/scan_by_key.cu" "examples/CMakeFiles/thrust.example.scan_by_key.dir/scan_by_key.cu.o" "gcc" "examples/CMakeFiles/thrust.example.scan_by_key.dir/scan_by_key.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.example.scan_by_key.dir/build.make b/build/examples/CMakeFiles/thrust.example.scan_by_key.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..a4a4ed737e8c316dd9a8b0e7cae56514b96e8b99 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.scan_by_key.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/CMakeFiles/thrust.example.scan_by_key.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/CMakeFiles/thrust.example.scan_by_key.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.example.scan_by_key.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/CMakeFiles/thrust.example.scan_by_key.dir/flags.make + +examples/CMakeFiles/thrust.example.scan_by_key.dir/scan_by_key.cu.o: examples/CMakeFiles/thrust.example.scan_by_key.dir/flags.make +examples/CMakeFiles/thrust.example.scan_by_key.dir/scan_by_key.cu.o: examples/CMakeFiles/thrust.example.scan_by_key.dir/includes_CUDA.rsp +examples/CMakeFiles/thrust.example.scan_by_key.dir/scan_by_key.cu.o: /home/ubuntu/thrust/examples/scan_by_key.cu +examples/CMakeFiles/thrust.example.scan_by_key.dir/scan_by_key.cu.o: examples/CMakeFiles/thrust.example.scan_by_key.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/CMakeFiles/thrust.example.scan_by_key.dir/scan_by_key.cu.o" + cd /home/ubuntu/thrust/build/examples && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/CMakeFiles/thrust.example.scan_by_key.dir/scan_by_key.cu.o -MF CMakeFiles/thrust.example.scan_by_key.dir/scan_by_key.cu.o.d -x cu -c /home/ubuntu/thrust/examples/scan_by_key.cu -o CMakeFiles/thrust.example.scan_by_key.dir/scan_by_key.cu.o + +examples/CMakeFiles/thrust.example.scan_by_key.dir/scan_by_key.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.scan_by_key.dir/scan_by_key.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/CMakeFiles/thrust.example.scan_by_key.dir/scan_by_key.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.scan_by_key.dir/scan_by_key.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.scan_by_key +thrust_example_scan_by_key_OBJECTS = \ +"CMakeFiles/thrust.example.scan_by_key.dir/scan_by_key.cu.o" + +# External object files for target thrust.example.scan_by_key +thrust_example_scan_by_key_EXTERNAL_OBJECTS = + +bin/thrust.example.scan_by_key: examples/CMakeFiles/thrust.example.scan_by_key.dir/scan_by_key.cu.o +bin/thrust.example.scan_by_key: examples/CMakeFiles/thrust.example.scan_by_key.dir/build.make +bin/thrust.example.scan_by_key: examples/CMakeFiles/thrust.example.scan_by_key.dir/linkLibs.rsp +bin/thrust.example.scan_by_key: examples/CMakeFiles/thrust.example.scan_by_key.dir/objects1.rsp +bin/thrust.example.scan_by_key: examples/CMakeFiles/thrust.example.scan_by_key.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../bin/thrust.example.scan_by_key" + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.scan_by_key.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.example.scan_by_key.dir/build: bin/thrust.example.scan_by_key +.PHONY : examples/CMakeFiles/thrust.example.scan_by_key.dir/build + +examples/CMakeFiles/thrust.example.scan_by_key.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.scan_by_key.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.example.scan_by_key.dir/clean + +examples/CMakeFiles/thrust.example.scan_by_key.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.scan_by_key.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.example.scan_by_key.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.example.scan_by_key.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.example.scan_by_key.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..5383b22d9f9445fde8fff484adb8165c13b65b59 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.scan_by_key.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../bin/thrust.example.scan_by_key" + "../bin/thrust.example.scan_by_key.pdb" + "CMakeFiles/thrust.example.scan_by_key.dir/scan_by_key.cu.o" + "CMakeFiles/thrust.example.scan_by_key.dir/scan_by_key.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.scan_by_key.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.example.scan_by_key.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.example.scan_by_key.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..bda5fd092cbb2c6acccb107e23db440ce029e2f3 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.scan_by_key.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.scan_by_key. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.scan_by_key.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.example.scan_by_key.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..62c9c24768ece83d139ac9e5c8e60c008caae2af --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.scan_by_key.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.scan_by_key. diff --git a/build/examples/CMakeFiles/thrust.example.scan_by_key.dir/depend.make b/build/examples/CMakeFiles/thrust.example.scan_by_key.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..21576497b1d345b37cce4fb3c47716372d000198 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.scan_by_key.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.scan_by_key. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.scan_by_key.dir/flags.make b/build/examples/CMakeFiles/thrust.example.scan_by_key.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..dd3ccf76df71b31eab54be819b0fbe83791a344e --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.scan_by_key.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.scan_by_key.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/CMakeFiles/thrust.example.scan_by_key.dir/includes_CUDA.rsp b/build/examples/CMakeFiles/thrust.example.scan_by_key.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.scan_by_key.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/CMakeFiles/thrust.example.scan_by_key.dir/link.txt b/build/examples/CMakeFiles/thrust.example.scan_by_key.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..fe4d5a81188991f6e8aadb7dc4d1645bb02f1f99 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.scan_by_key.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.scan_by_key.dir/objects1.rsp -o ../bin/thrust.example.scan_by_key @CMakeFiles/thrust.example.scan_by_key.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/CMakeFiles/thrust.example.scan_by_key.dir/linkLibs.rsp b/build/examples/CMakeFiles/thrust.example.scan_by_key.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.scan_by_key.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/CMakeFiles/thrust.example.scan_by_key.dir/objects1.rsp b/build/examples/CMakeFiles/thrust.example.scan_by_key.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..117e5fa00641bfb802a3394d3c17dc2537ab05ba --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.scan_by_key.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.scan_by_key.dir/scan_by_key.cu.o diff --git a/build/examples/CMakeFiles/thrust.example.scan_by_key.dir/progress.make b/build/examples/CMakeFiles/thrust.example.scan_by_key.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..6c287f17b23171ee8abc97d23b8f8a3bfa7225de --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.scan_by_key.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = + diff --git a/build/examples/CMakeFiles/thrust.example.scan_by_key.dir/scan_by_key.cu.o b/build/examples/CMakeFiles/thrust.example.scan_by_key.dir/scan_by_key.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..1831f4338f7b30e00a5a8e3085def91a0b9d88ab --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.scan_by_key.dir/scan_by_key.cu.o @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2ba8925e88627b100291bac10c4b1749b7de6bc41782d368f067ad4226bb7ce4 +size 4270440 diff --git a/build/examples/CMakeFiles/thrust.example.scan_by_key.dir/scan_by_key.cu.o.d b/build/examples/CMakeFiles/thrust.example.scan_by_key.dir/scan_by_key.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..ebab210da5bcb64d02dcc4be1b97d240e33d4a06 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.scan_by_key.dir/scan_by_key.cu.o.d @@ -0,0 +1,781 @@ +examples/CMakeFiles/thrust.example.scan_by_key.dir/scan_by_key.cu.o : /home/ubuntu/thrust/examples/scan_by_key.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /usr/include/c++/9/cstdio \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/invoke.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/reverse_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /usr/include/c++/9/limits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /usr/include/c++/9/iostream \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /usr/include/c++/9/vector \ + /usr/include/c++/9/bits/stl_vector.h \ + /usr/include/c++/9/bits/stl_bvector.h \ + /usr/include/c++/9/bits/vector.tcc \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/overlapped_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/iterator/is_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/permutation_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/permutation_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cstdint.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/dispatch.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/single_pass_scan_operators.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/cpp_compatibility.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_queue.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_math.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_discontinuity.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/minmax.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mpl/math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/make_unsigned_special.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/choose_offset.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking_commutative_only.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_warp_reductions.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_even_share.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_mapping.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/arg_index_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/constant_input_iterator.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/counting_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/counting_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/numeric_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_ptr.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/validator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/polymorphic_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/device_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/host_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/new.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/fancy_pointer_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy_if.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_select.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_unique_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_unique_by_key.cuh diff --git a/build/examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..95290f4d9e4d720aca163e71fa92b811857eef4b --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/scan_matrix_by_rows.cu" "examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/scan_matrix_by_rows.cu.o" "gcc" "examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/scan_matrix_by_rows.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/build.make b/build/examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..80325c137e581b83e2573ab59a66c8bc153b7a41 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/flags.make + +examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/scan_matrix_by_rows.cu.o: examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/flags.make +examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/scan_matrix_by_rows.cu.o: examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/includes_CUDA.rsp +examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/scan_matrix_by_rows.cu.o: /home/ubuntu/thrust/examples/scan_matrix_by_rows.cu +examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/scan_matrix_by_rows.cu.o: examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/scan_matrix_by_rows.cu.o" + cd /home/ubuntu/thrust/build/examples && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/scan_matrix_by_rows.cu.o -MF CMakeFiles/thrust.example.scan_matrix_by_rows.dir/scan_matrix_by_rows.cu.o.d -x cu -c /home/ubuntu/thrust/examples/scan_matrix_by_rows.cu -o CMakeFiles/thrust.example.scan_matrix_by_rows.dir/scan_matrix_by_rows.cu.o + +examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/scan_matrix_by_rows.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.scan_matrix_by_rows.dir/scan_matrix_by_rows.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/scan_matrix_by_rows.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.scan_matrix_by_rows.dir/scan_matrix_by_rows.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.scan_matrix_by_rows +thrust_example_scan_matrix_by_rows_OBJECTS = \ +"CMakeFiles/thrust.example.scan_matrix_by_rows.dir/scan_matrix_by_rows.cu.o" + +# External object files for target thrust.example.scan_matrix_by_rows +thrust_example_scan_matrix_by_rows_EXTERNAL_OBJECTS = + +bin/thrust.example.scan_matrix_by_rows: examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/scan_matrix_by_rows.cu.o +bin/thrust.example.scan_matrix_by_rows: examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/build.make +bin/thrust.example.scan_matrix_by_rows: examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/linkLibs.rsp +bin/thrust.example.scan_matrix_by_rows: examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/objects1.rsp +bin/thrust.example.scan_matrix_by_rows: examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../bin/thrust.example.scan_matrix_by_rows" + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.scan_matrix_by_rows.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/build: bin/thrust.example.scan_matrix_by_rows +.PHONY : examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/build + +examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.scan_matrix_by_rows.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/clean + +examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..0546af8132d7f0f7a21821a4dd1272c9736c2fbb --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../bin/thrust.example.scan_matrix_by_rows" + "../bin/thrust.example.scan_matrix_by_rows.pdb" + "CMakeFiles/thrust.example.scan_matrix_by_rows.dir/scan_matrix_by_rows.cu.o" + "CMakeFiles/thrust.example.scan_matrix_by_rows.dir/scan_matrix_by_rows.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.scan_matrix_by_rows.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..8f6534a927b6492f0e3a6033132813c7744b7e30 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.scan_matrix_by_rows. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..b5fc87203e4b0101dbe73ef3e03f3737a71e4ad7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.scan_matrix_by_rows. diff --git a/build/examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/depend.make b/build/examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..74742a7568711a09c1f0e0288003ff7cca58c87f --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.scan_matrix_by_rows. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/flags.make b/build/examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..e46ce5a5f029beb347dbf6823d76bd7645bb7b07 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.scan_matrix_by_rows.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/includes_CUDA.rsp b/build/examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/link.txt b/build/examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..cd5af3ccac8f8a3f6e55b01d233ca220e7894bf9 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.scan_matrix_by_rows.dir/objects1.rsp -o ../bin/thrust.example.scan_matrix_by_rows @CMakeFiles/thrust.example.scan_matrix_by_rows.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/linkLibs.rsp b/build/examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/objects1.rsp b/build/examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..c95a373db2f20b5cfbb6be122e3900db91b49bca --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.scan_matrix_by_rows.dir/scan_matrix_by_rows.cu.o diff --git a/build/examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/progress.make b/build/examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..6c287f17b23171ee8abc97d23b8f8a3bfa7225de --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = + diff --git a/build/examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/scan_matrix_by_rows.cu.o b/build/examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/scan_matrix_by_rows.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..53406cc1e061e4650cc78345f25e4a01fdaf99e7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/scan_matrix_by_rows.cu.o @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0a79c1574af7c7f59413484a8441318ff86bc5d7c4681703cfbec67bcf1e6c26 +size 2308672 diff --git a/build/examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/scan_matrix_by_rows.cu.o.d b/build/examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/scan_matrix_by_rows.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..4fc22950710ae935be9e49a2fbed75cd8ece3df1 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/scan_matrix_by_rows.cu.o.d @@ -0,0 +1,781 @@ +examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/scan_matrix_by_rows.cu.o : /home/ubuntu/thrust/examples/scan_matrix_by_rows.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /usr/include/c++/9/cstdio \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/invoke.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/reverse_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /usr/include/c++/9/limits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /usr/include/c++/9/iostream \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /usr/include/c++/9/vector \ + /usr/include/c++/9/bits/stl_vector.h \ + /usr/include/c++/9/bits/stl_bvector.h \ + /usr/include/c++/9/bits/vector.tcc \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/overlapped_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/iterator/is_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/permutation_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/permutation_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cstdint.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/dispatch.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/single_pass_scan_operators.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/cpp_compatibility.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_queue.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_math.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_discontinuity.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/minmax.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mpl/math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/make_unsigned_special.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/choose_offset.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking_commutative_only.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_warp_reductions.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_even_share.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_mapping.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/arg_index_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/constant_input_iterator.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/counting_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/counting_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/numeric_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_ptr.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/validator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/polymorphic_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/device_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/host_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/new.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/fancy_pointer_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/sequence.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/sequence.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tabulate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tabulate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/sequence.h diff --git a/build/examples/CMakeFiles/thrust.example.set_operations.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.example.set_operations.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..68a7dc20af98b6866f9c2de45d56222cf0da1eaf --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.set_operations.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/set_operations.cu" "examples/CMakeFiles/thrust.example.set_operations.dir/set_operations.cu.o" "gcc" "examples/CMakeFiles/thrust.example.set_operations.dir/set_operations.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.example.set_operations.dir/build.make b/build/examples/CMakeFiles/thrust.example.set_operations.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..c74a5bc257455b0e30345d6e96551694021c7818 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.set_operations.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/CMakeFiles/thrust.example.set_operations.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/CMakeFiles/thrust.example.set_operations.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.example.set_operations.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/CMakeFiles/thrust.example.set_operations.dir/flags.make + +examples/CMakeFiles/thrust.example.set_operations.dir/set_operations.cu.o: examples/CMakeFiles/thrust.example.set_operations.dir/flags.make +examples/CMakeFiles/thrust.example.set_operations.dir/set_operations.cu.o: examples/CMakeFiles/thrust.example.set_operations.dir/includes_CUDA.rsp +examples/CMakeFiles/thrust.example.set_operations.dir/set_operations.cu.o: /home/ubuntu/thrust/examples/set_operations.cu +examples/CMakeFiles/thrust.example.set_operations.dir/set_operations.cu.o: examples/CMakeFiles/thrust.example.set_operations.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/CMakeFiles/thrust.example.set_operations.dir/set_operations.cu.o" + cd /home/ubuntu/thrust/build/examples && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/CMakeFiles/thrust.example.set_operations.dir/set_operations.cu.o -MF CMakeFiles/thrust.example.set_operations.dir/set_operations.cu.o.d -x cu -c /home/ubuntu/thrust/examples/set_operations.cu -o CMakeFiles/thrust.example.set_operations.dir/set_operations.cu.o + +examples/CMakeFiles/thrust.example.set_operations.dir/set_operations.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.set_operations.dir/set_operations.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/CMakeFiles/thrust.example.set_operations.dir/set_operations.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.set_operations.dir/set_operations.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.set_operations +thrust_example_set_operations_OBJECTS = \ +"CMakeFiles/thrust.example.set_operations.dir/set_operations.cu.o" + +# External object files for target thrust.example.set_operations +thrust_example_set_operations_EXTERNAL_OBJECTS = + +bin/thrust.example.set_operations: examples/CMakeFiles/thrust.example.set_operations.dir/set_operations.cu.o +bin/thrust.example.set_operations: examples/CMakeFiles/thrust.example.set_operations.dir/build.make +bin/thrust.example.set_operations: examples/CMakeFiles/thrust.example.set_operations.dir/linkLibs.rsp +bin/thrust.example.set_operations: examples/CMakeFiles/thrust.example.set_operations.dir/objects1.rsp +bin/thrust.example.set_operations: examples/CMakeFiles/thrust.example.set_operations.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../bin/thrust.example.set_operations" + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.set_operations.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.example.set_operations.dir/build: bin/thrust.example.set_operations +.PHONY : examples/CMakeFiles/thrust.example.set_operations.dir/build + +examples/CMakeFiles/thrust.example.set_operations.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.set_operations.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.example.set_operations.dir/clean + +examples/CMakeFiles/thrust.example.set_operations.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.set_operations.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.example.set_operations.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.example.set_operations.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.example.set_operations.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..cabf0e174327c3a50759a259e9d964cd915eeb3d --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.set_operations.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../bin/thrust.example.set_operations" + "../bin/thrust.example.set_operations.pdb" + "CMakeFiles/thrust.example.set_operations.dir/set_operations.cu.o" + "CMakeFiles/thrust.example.set_operations.dir/set_operations.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.set_operations.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.example.set_operations.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.example.set_operations.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..0484b4431d7c0d2f00728f4f4a593aa88a83e6a8 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.set_operations.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.set_operations. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.set_operations.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.example.set_operations.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..cf1c3cfe58afab573cb46f06f1e82fba7ccab059 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.set_operations.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.set_operations. diff --git a/build/examples/CMakeFiles/thrust.example.set_operations.dir/depend.make b/build/examples/CMakeFiles/thrust.example.set_operations.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..d9334c6cf4d2097a2558c2334721b3ad408f1abb --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.set_operations.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.set_operations. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.set_operations.dir/flags.make b/build/examples/CMakeFiles/thrust.example.set_operations.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..1a896c81b7624746e14bcd8706a08cec7c03af79 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.set_operations.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.set_operations.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/CMakeFiles/thrust.example.set_operations.dir/includes_CUDA.rsp b/build/examples/CMakeFiles/thrust.example.set_operations.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.set_operations.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/CMakeFiles/thrust.example.set_operations.dir/link.txt b/build/examples/CMakeFiles/thrust.example.set_operations.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..37aa04ad2accab4d9c7bd60948e597e0b8916d89 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.set_operations.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.set_operations.dir/objects1.rsp -o ../bin/thrust.example.set_operations @CMakeFiles/thrust.example.set_operations.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/CMakeFiles/thrust.example.set_operations.dir/linkLibs.rsp b/build/examples/CMakeFiles/thrust.example.set_operations.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.set_operations.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/CMakeFiles/thrust.example.set_operations.dir/objects1.rsp b/build/examples/CMakeFiles/thrust.example.set_operations.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..93712a7201e19c7d9b169eb368805600fd4df229 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.set_operations.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.set_operations.dir/set_operations.cu.o diff --git a/build/examples/CMakeFiles/thrust.example.set_operations.dir/progress.make b/build/examples/CMakeFiles/thrust.example.set_operations.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..6c287f17b23171ee8abc97d23b8f8a3bfa7225de --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.set_operations.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = + diff --git a/build/examples/CMakeFiles/thrust.example.set_operations.dir/set_operations.cu.o b/build/examples/CMakeFiles/thrust.example.set_operations.dir/set_operations.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..e1920ce6706a0c003e4bc9348a4d49ca589bc332 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.set_operations.dir/set_operations.cu.o @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e4e7a62df9e8b407bf29c85d30aaf535a251db1901c20b06aab09c238b42333a +size 8033352 diff --git a/build/examples/CMakeFiles/thrust.example.set_operations.dir/set_operations.cu.o.d b/build/examples/CMakeFiles/thrust.example.set_operations.dir/set_operations.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..1529beb3a9a74bae8425601610ffe97de964ec4b --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.set_operations.dir/set_operations.cu.o.d @@ -0,0 +1,852 @@ +examples/CMakeFiles/thrust.example.set_operations.dir/set_operations.cu.o : /home/ubuntu/thrust/examples/set_operations.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /usr/include/c++/9/cstdio \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/invoke.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/reverse_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /usr/include/c++/9/limits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /usr/include/c++/9/iostream \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /usr/include/c++/9/vector \ + /usr/include/c++/9/bits/stl_vector.h \ + /usr/include/c++/9/bits/stl_bvector.h \ + /usr/include/c++/9/bits/vector.tcc \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/overlapped_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/iterator/is_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/permutation_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/permutation_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cstdint.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/dispatch.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/single_pass_scan_operators.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/cpp_compatibility.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_queue.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_math.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_discontinuity.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/minmax.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mpl/math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/make_unsigned_special.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/choose_offset.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking_commutative_only.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_warp_reductions.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_even_share.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_mapping.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/arg_index_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/constant_input_iterator.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/counting_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/counting_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/numeric_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_ptr.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/validator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/polymorphic_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/device_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/host_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/new.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/fancy_pointer_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/merge.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/merge.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/merge.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/extrema.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/extrema.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/get_iterator_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/adjacent_difference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/adjacent_difference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/partition.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/partition.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/remove.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/remove.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/set_operations.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/set_operations.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reverse.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reverse.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_merge_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_merge_sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/insertion_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy_backward.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_primitive_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_primitive_sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_radix_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_radix_sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy_if.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_select.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_unique_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_unique_by_key.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/unique.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/unique.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/unique_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/unique_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform_reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform_reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/set_operations.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/set_operations.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/set_operations.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/set_operations.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/constant_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/constant_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/set_operations.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/set_operations.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/discard_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/discard_iterator_base.h diff --git a/build/examples/CMakeFiles/thrust.example.simple_moving_average.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.example.simple_moving_average.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..2123799887be439af287454820fe4a587fd41e37 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.simple_moving_average.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/simple_moving_average.cu" "examples/CMakeFiles/thrust.example.simple_moving_average.dir/simple_moving_average.cu.o" "gcc" "examples/CMakeFiles/thrust.example.simple_moving_average.dir/simple_moving_average.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.example.simple_moving_average.dir/build.make b/build/examples/CMakeFiles/thrust.example.simple_moving_average.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..aa15ef7ae066115450803af5a590604f0b7d2643 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.simple_moving_average.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/CMakeFiles/thrust.example.simple_moving_average.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/CMakeFiles/thrust.example.simple_moving_average.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.example.simple_moving_average.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/CMakeFiles/thrust.example.simple_moving_average.dir/flags.make + +examples/CMakeFiles/thrust.example.simple_moving_average.dir/simple_moving_average.cu.o: examples/CMakeFiles/thrust.example.simple_moving_average.dir/flags.make +examples/CMakeFiles/thrust.example.simple_moving_average.dir/simple_moving_average.cu.o: examples/CMakeFiles/thrust.example.simple_moving_average.dir/includes_CUDA.rsp +examples/CMakeFiles/thrust.example.simple_moving_average.dir/simple_moving_average.cu.o: /home/ubuntu/thrust/examples/simple_moving_average.cu +examples/CMakeFiles/thrust.example.simple_moving_average.dir/simple_moving_average.cu.o: examples/CMakeFiles/thrust.example.simple_moving_average.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/CMakeFiles/thrust.example.simple_moving_average.dir/simple_moving_average.cu.o" + cd /home/ubuntu/thrust/build/examples && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/CMakeFiles/thrust.example.simple_moving_average.dir/simple_moving_average.cu.o -MF CMakeFiles/thrust.example.simple_moving_average.dir/simple_moving_average.cu.o.d -x cu -c /home/ubuntu/thrust/examples/simple_moving_average.cu -o CMakeFiles/thrust.example.simple_moving_average.dir/simple_moving_average.cu.o + +examples/CMakeFiles/thrust.example.simple_moving_average.dir/simple_moving_average.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.simple_moving_average.dir/simple_moving_average.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/CMakeFiles/thrust.example.simple_moving_average.dir/simple_moving_average.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.simple_moving_average.dir/simple_moving_average.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.simple_moving_average +thrust_example_simple_moving_average_OBJECTS = \ +"CMakeFiles/thrust.example.simple_moving_average.dir/simple_moving_average.cu.o" + +# External object files for target thrust.example.simple_moving_average +thrust_example_simple_moving_average_EXTERNAL_OBJECTS = + +bin/thrust.example.simple_moving_average: examples/CMakeFiles/thrust.example.simple_moving_average.dir/simple_moving_average.cu.o +bin/thrust.example.simple_moving_average: examples/CMakeFiles/thrust.example.simple_moving_average.dir/build.make +bin/thrust.example.simple_moving_average: examples/CMakeFiles/thrust.example.simple_moving_average.dir/linkLibs.rsp +bin/thrust.example.simple_moving_average: examples/CMakeFiles/thrust.example.simple_moving_average.dir/objects1.rsp +bin/thrust.example.simple_moving_average: examples/CMakeFiles/thrust.example.simple_moving_average.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../bin/thrust.example.simple_moving_average" + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.simple_moving_average.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.example.simple_moving_average.dir/build: bin/thrust.example.simple_moving_average +.PHONY : examples/CMakeFiles/thrust.example.simple_moving_average.dir/build + +examples/CMakeFiles/thrust.example.simple_moving_average.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.simple_moving_average.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.example.simple_moving_average.dir/clean + +examples/CMakeFiles/thrust.example.simple_moving_average.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.simple_moving_average.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.example.simple_moving_average.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.example.simple_moving_average.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.example.simple_moving_average.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..57e5c9e7c93d1f8ff75e7c790ee71eb26a37cefe --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.simple_moving_average.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../bin/thrust.example.simple_moving_average" + "../bin/thrust.example.simple_moving_average.pdb" + "CMakeFiles/thrust.example.simple_moving_average.dir/simple_moving_average.cu.o" + "CMakeFiles/thrust.example.simple_moving_average.dir/simple_moving_average.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.simple_moving_average.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.example.simple_moving_average.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.example.simple_moving_average.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..d329c8128bc8b662c6e8d18226021562aa77f04c --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.simple_moving_average.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.simple_moving_average. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.simple_moving_average.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.example.simple_moving_average.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..920575a5c7dec41d3b1edc2c50a6807406da4e55 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.simple_moving_average.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.simple_moving_average. diff --git a/build/examples/CMakeFiles/thrust.example.simple_moving_average.dir/depend.make b/build/examples/CMakeFiles/thrust.example.simple_moving_average.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..6a611ee2fca5e904aea5e7dc75e24ebd59f0adb5 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.simple_moving_average.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.simple_moving_average. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.simple_moving_average.dir/flags.make b/build/examples/CMakeFiles/thrust.example.simple_moving_average.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..19dd92c181095a5b586052586613e3282829a327 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.simple_moving_average.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.simple_moving_average.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/CMakeFiles/thrust.example.simple_moving_average.dir/includes_CUDA.rsp b/build/examples/CMakeFiles/thrust.example.simple_moving_average.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.simple_moving_average.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/CMakeFiles/thrust.example.simple_moving_average.dir/link.txt b/build/examples/CMakeFiles/thrust.example.simple_moving_average.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..c9565deb3d99d123380ed062e3a26569fda7c43a --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.simple_moving_average.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.simple_moving_average.dir/objects1.rsp -o ../bin/thrust.example.simple_moving_average @CMakeFiles/thrust.example.simple_moving_average.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/CMakeFiles/thrust.example.simple_moving_average.dir/linkLibs.rsp b/build/examples/CMakeFiles/thrust.example.simple_moving_average.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.simple_moving_average.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/CMakeFiles/thrust.example.simple_moving_average.dir/objects1.rsp b/build/examples/CMakeFiles/thrust.example.simple_moving_average.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..8d0f137c72d8cca23873b5011aecd09dc931c25f --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.simple_moving_average.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.simple_moving_average.dir/simple_moving_average.cu.o diff --git a/build/examples/CMakeFiles/thrust.example.simple_moving_average.dir/progress.make b/build/examples/CMakeFiles/thrust.example.simple_moving_average.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..6c287f17b23171ee8abc97d23b8f8a3bfa7225de --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.simple_moving_average.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = + diff --git a/build/examples/CMakeFiles/thrust.example.simple_moving_average.dir/simple_moving_average.cu.o b/build/examples/CMakeFiles/thrust.example.simple_moving_average.dir/simple_moving_average.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..76e6660f90a5ab0e33765f1f489b7bd9111796ee --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.simple_moving_average.dir/simple_moving_average.cu.o @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:03b6e04df3740bf39a58be700876404bd3b7e1b34d11389d0147de180d0a5472 +size 1139440 diff --git a/build/examples/CMakeFiles/thrust.example.simple_moving_average.dir/simple_moving_average.cu.o.d b/build/examples/CMakeFiles/thrust.example.simple_moving_average.dir/simple_moving_average.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..7aec903ad2d3cfda52f4ae186669c2b4db78f2e5 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.simple_moving_average.dir/simple_moving_average.cu.o.d @@ -0,0 +1,817 @@ +examples/CMakeFiles/thrust.example.simple_moving_average.dir/simple_moving_average.cu.o : /home/ubuntu/thrust/examples/simple_moving_average.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /usr/include/c++/9/cstdio \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/invoke.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/reverse_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /usr/include/c++/9/limits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /usr/include/c++/9/iostream \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /usr/include/c++/9/vector \ + /usr/include/c++/9/bits/stl_vector.h \ + /usr/include/c++/9/bits/stl_bvector.h \ + /usr/include/c++/9/bits/vector.tcc \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/overlapped_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/iterator/is_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/permutation_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/permutation_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cstdint.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/dispatch.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/single_pass_scan_operators.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/cpp_compatibility.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_queue.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_math.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_discontinuity.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/minmax.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mpl/math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/make_unsigned_special.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/choose_offset.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking_commutative_only.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_warp_reductions.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_even_share.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_mapping.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/arg_index_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/constant_input_iterator.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/counting_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/counting_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/numeric_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_ptr.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/validator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/polymorphic_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/device_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/host_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/new.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/fancy_pointer_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/sequence.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/sequence.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tabulate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tabulate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/discard_block_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/random_core_access.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/discard_block_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/linear_congruential_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_congruential_engine_discard.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/mod.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_congruential_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/linear_feedback_shift_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_feedback_shift_engine_wordmask.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_feedback_shift_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/subtract_with_carry_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/subtract_with_carry_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/xor_combine_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/xor_combine_engine_max.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/xor_combine_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/uniform_int_distribution.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/uniform_int_distribution.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/uniform_real_distribution.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/uniform_real_distribution.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/normal_distribution.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/normal_distribution_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/normal_distribution.inl \ + /usr/include/math_constants.h \ + /usr/include/c++/9/iomanip \ + /usr/include/c++/9/locale \ + /usr/include/c++/9/bits/locale_facets_nonio.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/time_members.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/messages_members.h \ + /usr/include/libintl.h \ + /usr/include/c++/9/bits/codecvt.h \ + /usr/include/c++/9/bits/locale_facets_nonio.tcc \ + /usr/include/c++/9/bits/locale_conv.h \ + /usr/include/c++/9/bits/quoted_string.h \ + /usr/include/c++/9/sstream \ + /usr/include/c++/9/bits/sstream.tcc diff --git a/build/examples/CMakeFiles/thrust.example.sort.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.example.sort.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..cc88a01eb022092616184fc6c2884051928667fb --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sort.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/sort.cu" "examples/CMakeFiles/thrust.example.sort.dir/sort.cu.o" "gcc" "examples/CMakeFiles/thrust.example.sort.dir/sort.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.example.sort.dir/build.make b/build/examples/CMakeFiles/thrust.example.sort.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..d511c4acb9609d0312742420eda8f63a85975290 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sort.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/CMakeFiles/thrust.example.sort.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/CMakeFiles/thrust.example.sort.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.example.sort.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/CMakeFiles/thrust.example.sort.dir/flags.make + +examples/CMakeFiles/thrust.example.sort.dir/sort.cu.o: examples/CMakeFiles/thrust.example.sort.dir/flags.make +examples/CMakeFiles/thrust.example.sort.dir/sort.cu.o: examples/CMakeFiles/thrust.example.sort.dir/includes_CUDA.rsp +examples/CMakeFiles/thrust.example.sort.dir/sort.cu.o: /home/ubuntu/thrust/examples/sort.cu +examples/CMakeFiles/thrust.example.sort.dir/sort.cu.o: examples/CMakeFiles/thrust.example.sort.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/CMakeFiles/thrust.example.sort.dir/sort.cu.o" + cd /home/ubuntu/thrust/build/examples && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/CMakeFiles/thrust.example.sort.dir/sort.cu.o -MF CMakeFiles/thrust.example.sort.dir/sort.cu.o.d -x cu -c /home/ubuntu/thrust/examples/sort.cu -o CMakeFiles/thrust.example.sort.dir/sort.cu.o + +examples/CMakeFiles/thrust.example.sort.dir/sort.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.sort.dir/sort.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/CMakeFiles/thrust.example.sort.dir/sort.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.sort.dir/sort.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.sort +thrust_example_sort_OBJECTS = \ +"CMakeFiles/thrust.example.sort.dir/sort.cu.o" + +# External object files for target thrust.example.sort +thrust_example_sort_EXTERNAL_OBJECTS = + +bin/thrust.example.sort: examples/CMakeFiles/thrust.example.sort.dir/sort.cu.o +bin/thrust.example.sort: examples/CMakeFiles/thrust.example.sort.dir/build.make +bin/thrust.example.sort: examples/CMakeFiles/thrust.example.sort.dir/linkLibs.rsp +bin/thrust.example.sort: examples/CMakeFiles/thrust.example.sort.dir/objects1.rsp +bin/thrust.example.sort: examples/CMakeFiles/thrust.example.sort.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../bin/thrust.example.sort" + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.sort.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.example.sort.dir/build: bin/thrust.example.sort +.PHONY : examples/CMakeFiles/thrust.example.sort.dir/build + +examples/CMakeFiles/thrust.example.sort.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.sort.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.example.sort.dir/clean + +examples/CMakeFiles/thrust.example.sort.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.sort.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.example.sort.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.example.sort.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.example.sort.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..49d92a4dea8f018e7aa9767ba37fcb56d7f06311 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sort.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../bin/thrust.example.sort" + "../bin/thrust.example.sort.pdb" + "CMakeFiles/thrust.example.sort.dir/sort.cu.o" + "CMakeFiles/thrust.example.sort.dir/sort.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.sort.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.example.sort.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.example.sort.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..41465d600b650f28b9a525eccc9375209dad1359 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sort.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.sort. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.sort.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.example.sort.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..458dd33bc8c809ff69c39697c9bbd80e9a0afb39 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sort.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.sort. diff --git a/build/examples/CMakeFiles/thrust.example.sort.dir/depend.make b/build/examples/CMakeFiles/thrust.example.sort.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..93b8ba92152ca5c6124156fc37e41c748c532fb6 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sort.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.sort. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.sort.dir/flags.make b/build/examples/CMakeFiles/thrust.example.sort.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..14dda2f2dab7e53112fd94c9026f7040506c57e4 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sort.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.sort.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/CMakeFiles/thrust.example.sort.dir/includes_CUDA.rsp b/build/examples/CMakeFiles/thrust.example.sort.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sort.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/CMakeFiles/thrust.example.sort.dir/link.txt b/build/examples/CMakeFiles/thrust.example.sort.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..035119b7431d9527282e83b73a2db1ed5d587dda --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sort.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.sort.dir/objects1.rsp -o ../bin/thrust.example.sort @CMakeFiles/thrust.example.sort.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/CMakeFiles/thrust.example.sort.dir/linkLibs.rsp b/build/examples/CMakeFiles/thrust.example.sort.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sort.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/CMakeFiles/thrust.example.sort.dir/objects1.rsp b/build/examples/CMakeFiles/thrust.example.sort.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..c994c3aa558b4fdf0faf156ed4131f2603a93547 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sort.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.sort.dir/sort.cu.o diff --git a/build/examples/CMakeFiles/thrust.example.sort.dir/progress.make b/build/examples/CMakeFiles/thrust.example.sort.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..6c287f17b23171ee8abc97d23b8f8a3bfa7225de --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sort.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = + diff --git a/build/examples/CMakeFiles/thrust.example.sort.dir/sort.cu.o b/build/examples/CMakeFiles/thrust.example.sort.dir/sort.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..d5e8f1ab3089b98ba489159a3f957705c139a1c8 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sort.dir/sort.cu.o @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f05f2ee88cf6fcc39b6f19a6e5243b2f0df2cf288498f17426c5e0d6256af70f +size 22450216 diff --git a/build/examples/CMakeFiles/thrust.example.sort.dir/sort.cu.o.d b/build/examples/CMakeFiles/thrust.example.sort.dir/sort.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..f592b1840f8d756737e26863e802808e5790069c --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sort.dir/sort.cu.o.d @@ -0,0 +1,916 @@ +examples/CMakeFiles/thrust.example.sort.dir/sort.cu.o : /home/ubuntu/thrust/examples/sort.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /usr/include/c++/9/cstdio \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/invoke.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/reverse_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /usr/include/c++/9/limits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /usr/include/c++/9/iostream \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /usr/include/c++/9/vector \ + /usr/include/c++/9/bits/stl_vector.h \ + /usr/include/c++/9/bits/stl_bvector.h \ + /usr/include/c++/9/bits/vector.tcc \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/overlapped_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/iterator/is_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/permutation_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/permutation_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cstdint.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/dispatch.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/single_pass_scan_operators.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/cpp_compatibility.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_queue.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_math.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_discontinuity.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/minmax.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mpl/math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/make_unsigned_special.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/choose_offset.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking_commutative_only.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_warp_reductions.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_even_share.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_mapping.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/arg_index_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/constant_input_iterator.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/counting_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/counting_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/numeric_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_ptr.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/validator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/polymorphic_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/device_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/host_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/new.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/fancy_pointer_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reverse.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reverse.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_merge_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_merge_sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/merge.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/merge.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/merge.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/extrema.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/extrema.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/get_iterator_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/adjacent_difference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/adjacent_difference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/partition.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/partition.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/remove.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/remove.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/set_operations.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/set_operations.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/unique.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/unique.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/unique_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/unique_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform_reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform_reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/insertion_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy_backward.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_primitive_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_primitive_sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_radix_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_radix_sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy_if.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_select.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_unique_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_unique_by_key.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/sequence.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/sequence.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tabulate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tabulate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/trivial_sequence.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_radix_sort.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_radix_sort.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_radix_sort_downsweep.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_radix_rank.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/radix_rank_sort_operations.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/tuple \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_radix_sort_histogram.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_radix_sort_onesweep.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_radix_sort_upsweep.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_radix_sort.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_merge_sort.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_merge_sort.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_merge_sort.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/../block/block_merge_sort.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_sort.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/discard_block_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/random_core_access.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/discard_block_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/linear_congruential_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_congruential_engine_discard.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/mod.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_congruential_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/linear_feedback_shift_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_feedback_shift_engine_wordmask.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_feedback_shift_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/subtract_with_carry_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/subtract_with_carry_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/xor_combine_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/xor_combine_engine_max.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/xor_combine_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/uniform_int_distribution.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/uniform_int_distribution.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/uniform_real_distribution.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/uniform_real_distribution.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/normal_distribution.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/normal_distribution_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/normal_distribution.inl \ + /usr/include/math_constants.h \ + /usr/include/c++/9/iomanip \ + /usr/include/c++/9/locale \ + /usr/include/c++/9/bits/locale_facets_nonio.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/time_members.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/messages_members.h \ + /usr/include/libintl.h \ + /usr/include/c++/9/bits/codecvt.h \ + /usr/include/c++/9/bits/locale_facets_nonio.tcc \ + /usr/include/c++/9/bits/locale_conv.h \ + /usr/include/c++/9/bits/quoted_string.h \ + /usr/include/c++/9/sstream \ + /usr/include/c++/9/bits/sstream.tcc diff --git a/build/examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..392f6f59ff5aa5c896df5db91634fb646d5ac69a --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/sorting_aos_vs_soa.cu" "examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/sorting_aos_vs_soa.cu.o" "gcc" "examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/sorting_aos_vs_soa.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/build.make b/build/examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..38697d00d2854adfce6b3352cd8d5fe703bce050 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/flags.make + +examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/sorting_aos_vs_soa.cu.o: examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/flags.make +examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/sorting_aos_vs_soa.cu.o: examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/includes_CUDA.rsp +examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/sorting_aos_vs_soa.cu.o: /home/ubuntu/thrust/examples/sorting_aos_vs_soa.cu +examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/sorting_aos_vs_soa.cu.o: examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/sorting_aos_vs_soa.cu.o" + cd /home/ubuntu/thrust/build/examples && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/sorting_aos_vs_soa.cu.o -MF CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/sorting_aos_vs_soa.cu.o.d -x cu -c /home/ubuntu/thrust/examples/sorting_aos_vs_soa.cu -o CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/sorting_aos_vs_soa.cu.o + +examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/sorting_aos_vs_soa.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/sorting_aos_vs_soa.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/sorting_aos_vs_soa.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/sorting_aos_vs_soa.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.sorting_aos_vs_soa +thrust_example_sorting_aos_vs_soa_OBJECTS = \ +"CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/sorting_aos_vs_soa.cu.o" + +# External object files for target thrust.example.sorting_aos_vs_soa +thrust_example_sorting_aos_vs_soa_EXTERNAL_OBJECTS = + +bin/thrust.example.sorting_aos_vs_soa: examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/sorting_aos_vs_soa.cu.o +bin/thrust.example.sorting_aos_vs_soa: examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/build.make +bin/thrust.example.sorting_aos_vs_soa: examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/linkLibs.rsp +bin/thrust.example.sorting_aos_vs_soa: examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/objects1.rsp +bin/thrust.example.sorting_aos_vs_soa: examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../bin/thrust.example.sorting_aos_vs_soa" + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/build: bin/thrust.example.sorting_aos_vs_soa +.PHONY : examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/build + +examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/clean + +examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..8f9c642f83a52fd17264b3548d7940dfefd83674 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../bin/thrust.example.sorting_aos_vs_soa" + "../bin/thrust.example.sorting_aos_vs_soa.pdb" + "CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/sorting_aos_vs_soa.cu.o" + "CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/sorting_aos_vs_soa.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..36b451a2d4fa6a2d94c37cb12597fd1174929681 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.sorting_aos_vs_soa. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..2844f071ba6126f60e1e35bde550ff7543c563a4 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.sorting_aos_vs_soa. diff --git a/build/examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/depend.make b/build/examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..a6096d57fec486fc13305da46e5f8b0f6b6e5d02 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.sorting_aos_vs_soa. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/flags.make b/build/examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..3b9c8de71578a1260617f1725238d50a33285e90 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/includes_CUDA.rsp b/build/examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/link.txt b/build/examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..2d699be5eb0eb9e929ec6bf6e3568a7c29f9e2f4 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/objects1.rsp -o ../bin/thrust.example.sorting_aos_vs_soa @CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/linkLibs.rsp b/build/examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/objects1.rsp b/build/examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..3e4dcd2079999884ccb28a0f4f5057e5354e2eb1 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/sorting_aos_vs_soa.cu.o diff --git a/build/examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/progress.make b/build/examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..9b51705c6519d8e251ccf14ce2b20a2d2afdb635 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = 47 + diff --git a/build/examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/sorting_aos_vs_soa.cu.o b/build/examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/sorting_aos_vs_soa.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..6178c245abebf5e25997c42fdc206d48f3a200fd --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/sorting_aos_vs_soa.cu.o @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ba822c56eb58bfeab14ad5e101701e20c8155e0b4ae07ee6389012dd4e85a2b2 +size 9932064 diff --git a/build/examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/sorting_aos_vs_soa.cu.o.d b/build/examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/sorting_aos_vs_soa.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..f1a54621cc07a67766db1df670cb2c08bf3fdbe1 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/sorting_aos_vs_soa.cu.o.d @@ -0,0 +1,906 @@ +examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/sorting_aos_vs_soa.cu.o : /home/ubuntu/thrust/examples/sorting_aos_vs_soa.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/host_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cstdio \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/invoke.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/reverse_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /usr/include/c++/9/limits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /usr/include/c++/9/iostream \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /usr/include/c++/9/vector \ + /usr/include/c++/9/bits/stl_vector.h \ + /usr/include/c++/9/bits/stl_bvector.h \ + /usr/include/c++/9/bits/vector.tcc \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/overlapped_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/iterator/is_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/permutation_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/permutation_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cstdint.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/dispatch.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/single_pass_scan_operators.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/cpp_compatibility.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_queue.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_math.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_discontinuity.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/minmax.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mpl/math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/make_unsigned_special.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/choose_offset.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking_commutative_only.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_warp_reductions.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_even_share.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_mapping.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/arg_index_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/constant_input_iterator.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/counting_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/counting_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/numeric_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_ptr.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/validator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/polymorphic_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/device_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/host_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/new.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/fancy_pointer_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reverse.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reverse.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_merge_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_merge_sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/merge.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/merge.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/merge.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/extrema.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/extrema.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/get_iterator_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/adjacent_difference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/adjacent_difference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/partition.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/partition.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/remove.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/remove.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/set_operations.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/set_operations.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/unique.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/unique.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/unique_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/unique_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform_reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform_reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/insertion_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy_backward.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_primitive_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_primitive_sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_radix_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_radix_sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy_if.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_select.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_unique_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_unique_by_key.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/sequence.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/sequence.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tabulate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tabulate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/trivial_sequence.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_radix_sort.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_radix_sort.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_radix_sort_downsweep.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_radix_rank.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/radix_rank_sort_operations.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/tuple \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_radix_sort_histogram.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_radix_sort_onesweep.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_radix_sort_upsweep.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_radix_sort.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_merge_sort.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_merge_sort.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_merge_sort.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/../block/block_merge_sort.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_sort.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/discard_block_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/random_core_access.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/discard_block_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/linear_congruential_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_congruential_engine_discard.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/mod.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_congruential_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/linear_feedback_shift_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_feedback_shift_engine_wordmask.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_feedback_shift_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/subtract_with_carry_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/subtract_with_carry_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/xor_combine_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/xor_combine_engine_max.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/xor_combine_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/uniform_int_distribution.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/uniform_int_distribution.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/uniform_real_distribution.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/uniform_real_distribution.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/normal_distribution.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/normal_distribution_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/normal_distribution.inl \ + /usr/include/math_constants.h \ + /home/ubuntu/thrust/examples/include/timer.h diff --git a/build/examples/CMakeFiles/thrust.example.sparse_vector.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.example.sparse_vector.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..443f5f6925eddf36a05a68a3877b9789cafc17a9 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sparse_vector.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/sparse_vector.cu" "examples/CMakeFiles/thrust.example.sparse_vector.dir/sparse_vector.cu.o" "gcc" "examples/CMakeFiles/thrust.example.sparse_vector.dir/sparse_vector.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.example.sparse_vector.dir/build.make b/build/examples/CMakeFiles/thrust.example.sparse_vector.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..3765aa59f5a67ab540863ea91b467b4b194da333 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sparse_vector.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/CMakeFiles/thrust.example.sparse_vector.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/CMakeFiles/thrust.example.sparse_vector.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.example.sparse_vector.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/CMakeFiles/thrust.example.sparse_vector.dir/flags.make + +examples/CMakeFiles/thrust.example.sparse_vector.dir/sparse_vector.cu.o: examples/CMakeFiles/thrust.example.sparse_vector.dir/flags.make +examples/CMakeFiles/thrust.example.sparse_vector.dir/sparse_vector.cu.o: examples/CMakeFiles/thrust.example.sparse_vector.dir/includes_CUDA.rsp +examples/CMakeFiles/thrust.example.sparse_vector.dir/sparse_vector.cu.o: /home/ubuntu/thrust/examples/sparse_vector.cu +examples/CMakeFiles/thrust.example.sparse_vector.dir/sparse_vector.cu.o: examples/CMakeFiles/thrust.example.sparse_vector.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/CMakeFiles/thrust.example.sparse_vector.dir/sparse_vector.cu.o" + cd /home/ubuntu/thrust/build/examples && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/CMakeFiles/thrust.example.sparse_vector.dir/sparse_vector.cu.o -MF CMakeFiles/thrust.example.sparse_vector.dir/sparse_vector.cu.o.d -x cu -c /home/ubuntu/thrust/examples/sparse_vector.cu -o CMakeFiles/thrust.example.sparse_vector.dir/sparse_vector.cu.o + +examples/CMakeFiles/thrust.example.sparse_vector.dir/sparse_vector.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.sparse_vector.dir/sparse_vector.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/CMakeFiles/thrust.example.sparse_vector.dir/sparse_vector.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.sparse_vector.dir/sparse_vector.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.sparse_vector +thrust_example_sparse_vector_OBJECTS = \ +"CMakeFiles/thrust.example.sparse_vector.dir/sparse_vector.cu.o" + +# External object files for target thrust.example.sparse_vector +thrust_example_sparse_vector_EXTERNAL_OBJECTS = + +bin/thrust.example.sparse_vector: examples/CMakeFiles/thrust.example.sparse_vector.dir/sparse_vector.cu.o +bin/thrust.example.sparse_vector: examples/CMakeFiles/thrust.example.sparse_vector.dir/build.make +bin/thrust.example.sparse_vector: examples/CMakeFiles/thrust.example.sparse_vector.dir/linkLibs.rsp +bin/thrust.example.sparse_vector: examples/CMakeFiles/thrust.example.sparse_vector.dir/objects1.rsp +bin/thrust.example.sparse_vector: examples/CMakeFiles/thrust.example.sparse_vector.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../bin/thrust.example.sparse_vector" + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.sparse_vector.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.example.sparse_vector.dir/build: bin/thrust.example.sparse_vector +.PHONY : examples/CMakeFiles/thrust.example.sparse_vector.dir/build + +examples/CMakeFiles/thrust.example.sparse_vector.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.sparse_vector.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.example.sparse_vector.dir/clean + +examples/CMakeFiles/thrust.example.sparse_vector.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.sparse_vector.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.example.sparse_vector.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.example.sparse_vector.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.example.sparse_vector.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..c710013b382bb0140af35210afc061fff66e5744 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sparse_vector.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../bin/thrust.example.sparse_vector" + "../bin/thrust.example.sparse_vector.pdb" + "CMakeFiles/thrust.example.sparse_vector.dir/sparse_vector.cu.o" + "CMakeFiles/thrust.example.sparse_vector.dir/sparse_vector.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.sparse_vector.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.example.sparse_vector.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.example.sparse_vector.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..b8b978a25d0451bda40204469b71d7a3f05b7f19 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sparse_vector.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.sparse_vector. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.sparse_vector.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.example.sparse_vector.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..983e838eded9de0a364538fcc98935561e8ce9eb --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sparse_vector.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.sparse_vector. diff --git a/build/examples/CMakeFiles/thrust.example.sparse_vector.dir/depend.make b/build/examples/CMakeFiles/thrust.example.sparse_vector.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..65ddd99f5e89573cf372d2b2af6b20db3bf3af13 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sparse_vector.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.sparse_vector. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.sparse_vector.dir/flags.make b/build/examples/CMakeFiles/thrust.example.sparse_vector.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..27043eb174ea54a35e477909b5c2c5ffd489e05d --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sparse_vector.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.sparse_vector.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/CMakeFiles/thrust.example.sparse_vector.dir/includes_CUDA.rsp b/build/examples/CMakeFiles/thrust.example.sparse_vector.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sparse_vector.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/CMakeFiles/thrust.example.sparse_vector.dir/link.txt b/build/examples/CMakeFiles/thrust.example.sparse_vector.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..4b5a3880bf53498fcd3b325ef00dd40b784b8715 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sparse_vector.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.sparse_vector.dir/objects1.rsp -o ../bin/thrust.example.sparse_vector @CMakeFiles/thrust.example.sparse_vector.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/CMakeFiles/thrust.example.sparse_vector.dir/linkLibs.rsp b/build/examples/CMakeFiles/thrust.example.sparse_vector.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sparse_vector.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/CMakeFiles/thrust.example.sparse_vector.dir/objects1.rsp b/build/examples/CMakeFiles/thrust.example.sparse_vector.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..51f05413ce516cec30be659435bfbc149bb7b8b5 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sparse_vector.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.sparse_vector.dir/sparse_vector.cu.o diff --git a/build/examples/CMakeFiles/thrust.example.sparse_vector.dir/progress.make b/build/examples/CMakeFiles/thrust.example.sparse_vector.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..6c287f17b23171ee8abc97d23b8f8a3bfa7225de --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sparse_vector.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = + diff --git a/build/examples/CMakeFiles/thrust.example.sparse_vector.dir/sparse_vector.cu.o b/build/examples/CMakeFiles/thrust.example.sparse_vector.dir/sparse_vector.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..0cf7d44a4fa669b3b1029016e44cd7e962fb5d6e --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sparse_vector.dir/sparse_vector.cu.o @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1410583213bdc31ae800e4f75f8f3a64adb9916a7eb2219362ea069b4aafa0a8 +size 4747064 diff --git a/build/examples/CMakeFiles/thrust.example.sparse_vector.dir/sparse_vector.cu.o.d b/build/examples/CMakeFiles/thrust.example.sparse_vector.dir/sparse_vector.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..ab886af5695615a7abb57c1977951071684c2e6b --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sparse_vector.dir/sparse_vector.cu.o.d @@ -0,0 +1,849 @@ +examples/CMakeFiles/thrust.example.sparse_vector.dir/sparse_vector.cu.o : /home/ubuntu/thrust/examples/sparse_vector.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /usr/include/c++/9/cstdio \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/invoke.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/reverse_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /usr/include/c++/9/limits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /usr/include/c++/9/iostream \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /usr/include/c++/9/vector \ + /usr/include/c++/9/bits/stl_vector.h \ + /usr/include/c++/9/bits/stl_bvector.h \ + /usr/include/c++/9/bits/vector.tcc \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/overlapped_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/iterator/is_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/permutation_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/permutation_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cstdint.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/dispatch.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/single_pass_scan_operators.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/cpp_compatibility.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_queue.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_math.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_discontinuity.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/minmax.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mpl/math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/make_unsigned_special.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/choose_offset.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking_commutative_only.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_warp_reductions.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_even_share.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_mapping.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/arg_index_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/constant_input_iterator.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/counting_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/counting_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/numeric_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_ptr.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/validator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/polymorphic_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/device_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/host_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/new.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/fancy_pointer_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/merge.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/merge.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/merge.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/extrema.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/extrema.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/get_iterator_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/adjacent_difference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/adjacent_difference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/partition.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/partition.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/remove.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/remove.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/set_operations.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/set_operations.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reverse.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reverse.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_merge_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_merge_sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/insertion_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy_backward.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_primitive_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_primitive_sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_radix_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_radix_sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy_if.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_select.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_unique_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_unique_by_key.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/unique.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/unique.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/unique_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/unique_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform_reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform_reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/inner_product.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/inner_product.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/inner_product.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/inner_product.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/inner_product.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/inner_product.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/inner_product.h diff --git a/build/examples/CMakeFiles/thrust.example.stream_compaction.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.example.stream_compaction.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..f64c3cf655995986f869a9f69dab327178363be0 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.stream_compaction.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/stream_compaction.cu" "examples/CMakeFiles/thrust.example.stream_compaction.dir/stream_compaction.cu.o" "gcc" "examples/CMakeFiles/thrust.example.stream_compaction.dir/stream_compaction.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.example.stream_compaction.dir/build.make b/build/examples/CMakeFiles/thrust.example.stream_compaction.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..545bce0e8b251d2c6a745245a9a83268377715e0 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.stream_compaction.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/CMakeFiles/thrust.example.stream_compaction.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/CMakeFiles/thrust.example.stream_compaction.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.example.stream_compaction.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/CMakeFiles/thrust.example.stream_compaction.dir/flags.make + +examples/CMakeFiles/thrust.example.stream_compaction.dir/stream_compaction.cu.o: examples/CMakeFiles/thrust.example.stream_compaction.dir/flags.make +examples/CMakeFiles/thrust.example.stream_compaction.dir/stream_compaction.cu.o: examples/CMakeFiles/thrust.example.stream_compaction.dir/includes_CUDA.rsp +examples/CMakeFiles/thrust.example.stream_compaction.dir/stream_compaction.cu.o: /home/ubuntu/thrust/examples/stream_compaction.cu +examples/CMakeFiles/thrust.example.stream_compaction.dir/stream_compaction.cu.o: examples/CMakeFiles/thrust.example.stream_compaction.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/CMakeFiles/thrust.example.stream_compaction.dir/stream_compaction.cu.o" + cd /home/ubuntu/thrust/build/examples && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/CMakeFiles/thrust.example.stream_compaction.dir/stream_compaction.cu.o -MF CMakeFiles/thrust.example.stream_compaction.dir/stream_compaction.cu.o.d -x cu -c /home/ubuntu/thrust/examples/stream_compaction.cu -o CMakeFiles/thrust.example.stream_compaction.dir/stream_compaction.cu.o + +examples/CMakeFiles/thrust.example.stream_compaction.dir/stream_compaction.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.stream_compaction.dir/stream_compaction.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/CMakeFiles/thrust.example.stream_compaction.dir/stream_compaction.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.stream_compaction.dir/stream_compaction.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.stream_compaction +thrust_example_stream_compaction_OBJECTS = \ +"CMakeFiles/thrust.example.stream_compaction.dir/stream_compaction.cu.o" + +# External object files for target thrust.example.stream_compaction +thrust_example_stream_compaction_EXTERNAL_OBJECTS = + +bin/thrust.example.stream_compaction: examples/CMakeFiles/thrust.example.stream_compaction.dir/stream_compaction.cu.o +bin/thrust.example.stream_compaction: examples/CMakeFiles/thrust.example.stream_compaction.dir/build.make +bin/thrust.example.stream_compaction: examples/CMakeFiles/thrust.example.stream_compaction.dir/linkLibs.rsp +bin/thrust.example.stream_compaction: examples/CMakeFiles/thrust.example.stream_compaction.dir/objects1.rsp +bin/thrust.example.stream_compaction: examples/CMakeFiles/thrust.example.stream_compaction.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../bin/thrust.example.stream_compaction" + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.stream_compaction.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.example.stream_compaction.dir/build: bin/thrust.example.stream_compaction +.PHONY : examples/CMakeFiles/thrust.example.stream_compaction.dir/build + +examples/CMakeFiles/thrust.example.stream_compaction.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.stream_compaction.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.example.stream_compaction.dir/clean + +examples/CMakeFiles/thrust.example.stream_compaction.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.stream_compaction.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.example.stream_compaction.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.example.stream_compaction.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.example.stream_compaction.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3ecf91b65217d25f558d7f040548adafff41862b --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.stream_compaction.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../bin/thrust.example.stream_compaction" + "../bin/thrust.example.stream_compaction.pdb" + "CMakeFiles/thrust.example.stream_compaction.dir/stream_compaction.cu.o" + "CMakeFiles/thrust.example.stream_compaction.dir/stream_compaction.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.stream_compaction.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.example.stream_compaction.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.example.stream_compaction.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..4040475e889dc864bd9ea4b86b7a2526ae7339ed --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.stream_compaction.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.stream_compaction. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.stream_compaction.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.example.stream_compaction.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..16b3c0b366613a103d0f2dfcd5085261c45675b3 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.stream_compaction.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.stream_compaction. diff --git a/build/examples/CMakeFiles/thrust.example.stream_compaction.dir/depend.make b/build/examples/CMakeFiles/thrust.example.stream_compaction.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..96dfaa58c9c0de9bac77c0e4e9bfa544bae74124 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.stream_compaction.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.stream_compaction. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.stream_compaction.dir/flags.make b/build/examples/CMakeFiles/thrust.example.stream_compaction.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..55ff3963c31593a9879f7d508b24dfb6a4e467de --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.stream_compaction.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.stream_compaction.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/CMakeFiles/thrust.example.stream_compaction.dir/includes_CUDA.rsp b/build/examples/CMakeFiles/thrust.example.stream_compaction.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.stream_compaction.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/CMakeFiles/thrust.example.stream_compaction.dir/link.txt b/build/examples/CMakeFiles/thrust.example.stream_compaction.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..2f89152f4d2f5ab570584a215b67fa22f4611447 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.stream_compaction.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.stream_compaction.dir/objects1.rsp -o ../bin/thrust.example.stream_compaction @CMakeFiles/thrust.example.stream_compaction.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/CMakeFiles/thrust.example.stream_compaction.dir/linkLibs.rsp b/build/examples/CMakeFiles/thrust.example.stream_compaction.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.stream_compaction.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/CMakeFiles/thrust.example.stream_compaction.dir/objects1.rsp b/build/examples/CMakeFiles/thrust.example.stream_compaction.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..921df3047bdb505d4aa53bfc39e4ac8d24cceb33 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.stream_compaction.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.stream_compaction.dir/stream_compaction.cu.o diff --git a/build/examples/CMakeFiles/thrust.example.stream_compaction.dir/progress.make b/build/examples/CMakeFiles/thrust.example.stream_compaction.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..6c287f17b23171ee8abc97d23b8f8a3bfa7225de --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.stream_compaction.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = + diff --git a/build/examples/CMakeFiles/thrust.example.stream_compaction.dir/stream_compaction.cu.o b/build/examples/CMakeFiles/thrust.example.stream_compaction.dir/stream_compaction.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..43e5e9b505d558671d9a81a9bd434ab4c7d162e9 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.stream_compaction.dir/stream_compaction.cu.o @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9e2039283b88754fc4923c688a02047a4400f0010146c0002583136d5d0a5307 +size 3220320 diff --git a/build/examples/CMakeFiles/thrust.example.stream_compaction.dir/stream_compaction.cu.o.d b/build/examples/CMakeFiles/thrust.example.stream_compaction.dir/stream_compaction.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..be4fbb22e602ab891b164550ad6ae07d53346b81 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.stream_compaction.dir/stream_compaction.cu.o.d @@ -0,0 +1,818 @@ +examples/CMakeFiles/thrust.example.stream_compaction.dir/stream_compaction.cu.o : /home/ubuntu/thrust/examples/stream_compaction.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /usr/include/c++/9/cstdio \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/invoke.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/reverse_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /usr/include/c++/9/limits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /usr/include/c++/9/iostream \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /usr/include/c++/9/vector \ + /usr/include/c++/9/bits/stl_vector.h \ + /usr/include/c++/9/bits/stl_bvector.h \ + /usr/include/c++/9/bits/vector.tcc \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/overlapped_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/iterator/is_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/permutation_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/permutation_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cstdint.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/dispatch.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/single_pass_scan_operators.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/cpp_compatibility.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_queue.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_math.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_discontinuity.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/minmax.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mpl/math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/make_unsigned_special.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/choose_offset.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking_commutative_only.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_warp_reductions.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_even_share.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_mapping.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/arg_index_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/constant_input_iterator.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/counting_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/counting_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/numeric_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_ptr.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/validator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/polymorphic_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/device_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/host_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/new.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/fancy_pointer_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/sequence.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/sequence.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tabulate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tabulate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy_if.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_select.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_unique_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_unique_by_key.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/count.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/count.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/count.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/count.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/count.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform_reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform_reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/count.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/count.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/count.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/remove.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/remove.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/remove.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/remove.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/remove.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/remove.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/remove.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/remove.h diff --git a/build/examples/CMakeFiles/thrust.example.strided_range.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.example.strided_range.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..fad1d0c0141fc359a16c3b2b8b4cde33bdf3ba34 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.strided_range.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/strided_range.cu" "examples/CMakeFiles/thrust.example.strided_range.dir/strided_range.cu.o" "gcc" "examples/CMakeFiles/thrust.example.strided_range.dir/strided_range.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.example.strided_range.dir/build.make b/build/examples/CMakeFiles/thrust.example.strided_range.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..574ec69e848ce450273a0d7fb24ae89e930e8095 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.strided_range.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/CMakeFiles/thrust.example.strided_range.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/CMakeFiles/thrust.example.strided_range.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.example.strided_range.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/CMakeFiles/thrust.example.strided_range.dir/flags.make + +examples/CMakeFiles/thrust.example.strided_range.dir/strided_range.cu.o: examples/CMakeFiles/thrust.example.strided_range.dir/flags.make +examples/CMakeFiles/thrust.example.strided_range.dir/strided_range.cu.o: examples/CMakeFiles/thrust.example.strided_range.dir/includes_CUDA.rsp +examples/CMakeFiles/thrust.example.strided_range.dir/strided_range.cu.o: /home/ubuntu/thrust/examples/strided_range.cu +examples/CMakeFiles/thrust.example.strided_range.dir/strided_range.cu.o: examples/CMakeFiles/thrust.example.strided_range.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/CMakeFiles/thrust.example.strided_range.dir/strided_range.cu.o" + cd /home/ubuntu/thrust/build/examples && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/CMakeFiles/thrust.example.strided_range.dir/strided_range.cu.o -MF CMakeFiles/thrust.example.strided_range.dir/strided_range.cu.o.d -x cu -c /home/ubuntu/thrust/examples/strided_range.cu -o CMakeFiles/thrust.example.strided_range.dir/strided_range.cu.o + +examples/CMakeFiles/thrust.example.strided_range.dir/strided_range.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.strided_range.dir/strided_range.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/CMakeFiles/thrust.example.strided_range.dir/strided_range.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.strided_range.dir/strided_range.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.strided_range +thrust_example_strided_range_OBJECTS = \ +"CMakeFiles/thrust.example.strided_range.dir/strided_range.cu.o" + +# External object files for target thrust.example.strided_range +thrust_example_strided_range_EXTERNAL_OBJECTS = + +bin/thrust.example.strided_range: examples/CMakeFiles/thrust.example.strided_range.dir/strided_range.cu.o +bin/thrust.example.strided_range: examples/CMakeFiles/thrust.example.strided_range.dir/build.make +bin/thrust.example.strided_range: examples/CMakeFiles/thrust.example.strided_range.dir/linkLibs.rsp +bin/thrust.example.strided_range: examples/CMakeFiles/thrust.example.strided_range.dir/objects1.rsp +bin/thrust.example.strided_range: examples/CMakeFiles/thrust.example.strided_range.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../bin/thrust.example.strided_range" + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.strided_range.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.example.strided_range.dir/build: bin/thrust.example.strided_range +.PHONY : examples/CMakeFiles/thrust.example.strided_range.dir/build + +examples/CMakeFiles/thrust.example.strided_range.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.strided_range.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.example.strided_range.dir/clean + +examples/CMakeFiles/thrust.example.strided_range.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.strided_range.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.example.strided_range.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.example.strided_range.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.example.strided_range.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..6574e6ba79caf958d7c766d8d50fb315042d2034 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.strided_range.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../bin/thrust.example.strided_range" + "../bin/thrust.example.strided_range.pdb" + "CMakeFiles/thrust.example.strided_range.dir/strided_range.cu.o" + "CMakeFiles/thrust.example.strided_range.dir/strided_range.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.strided_range.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.example.strided_range.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.example.strided_range.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..3389036eb2fed15f9926ab39afda2fec857d439a --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.strided_range.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.strided_range. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.strided_range.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.example.strided_range.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..b2543d2bf289ff3244f2807413f7ec460e25dc48 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.strided_range.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.strided_range. diff --git a/build/examples/CMakeFiles/thrust.example.strided_range.dir/depend.make b/build/examples/CMakeFiles/thrust.example.strided_range.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..82a76413cad1426d210e9a5c0e4dab46f300abda --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.strided_range.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.strided_range. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.strided_range.dir/flags.make b/build/examples/CMakeFiles/thrust.example.strided_range.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..91f8ec0827d23dce25725b19cb37e86e1bfcdabb --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.strided_range.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.strided_range.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/CMakeFiles/thrust.example.strided_range.dir/includes_CUDA.rsp b/build/examples/CMakeFiles/thrust.example.strided_range.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.strided_range.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/CMakeFiles/thrust.example.strided_range.dir/link.txt b/build/examples/CMakeFiles/thrust.example.strided_range.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..a263721452a27eac7430e5348a98b3954e33952c --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.strided_range.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.strided_range.dir/objects1.rsp -o ../bin/thrust.example.strided_range @CMakeFiles/thrust.example.strided_range.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/CMakeFiles/thrust.example.strided_range.dir/linkLibs.rsp b/build/examples/CMakeFiles/thrust.example.strided_range.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.strided_range.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/CMakeFiles/thrust.example.strided_range.dir/objects1.rsp b/build/examples/CMakeFiles/thrust.example.strided_range.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..40b555a44c94abd59abf34d80b7140b20ae49b62 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.strided_range.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.strided_range.dir/strided_range.cu.o diff --git a/build/examples/CMakeFiles/thrust.example.strided_range.dir/progress.make b/build/examples/CMakeFiles/thrust.example.strided_range.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..6c287f17b23171ee8abc97d23b8f8a3bfa7225de --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.strided_range.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = + diff --git a/build/examples/CMakeFiles/thrust.example.strided_range.dir/strided_range.cu.o b/build/examples/CMakeFiles/thrust.example.strided_range.dir/strided_range.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..2b548173e2b01d844ef2b9dcc412b0ce39219b0d --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.strided_range.dir/strided_range.cu.o @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:500e8d1033d27c3da732bc10dabcaa2101eeba062bbfb48acccb138ba4e57e40 +size 2093824 diff --git a/build/examples/CMakeFiles/thrust.example.strided_range.dir/strided_range.cu.o.d b/build/examples/CMakeFiles/thrust.example.strided_range.dir/strided_range.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..76bce21a84b3091c0f81a4241044b622b9dfc85b --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.strided_range.dir/strided_range.cu.o.d @@ -0,0 +1,781 @@ +examples/CMakeFiles/thrust.example.strided_range.dir/strided_range.cu.o : /home/ubuntu/thrust/examples/strided_range.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/counting_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /usr/include/c++/9/cstdio \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/invoke.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/counting_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/numeric_traits.h \ + /usr/include/c++/9/limits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/permutation_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/permutation_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /usr/include/c++/9/iostream \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/reverse_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /usr/include/c++/9/vector \ + /usr/include/c++/9/bits/stl_vector.h \ + /usr/include/c++/9/bits/stl_bvector.h \ + /usr/include/c++/9/bits/vector.tcc \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/overlapped_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/iterator/is_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cstdint.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/dispatch.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/single_pass_scan_operators.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/cpp_compatibility.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_queue.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_math.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_discontinuity.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/minmax.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mpl/math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/make_unsigned_special.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/choose_offset.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking_commutative_only.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_warp_reductions.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_even_share.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_mapping.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/arg_index_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/constant_input_iterator.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_ptr.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/validator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/polymorphic_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/device_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/host_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/new.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/fancy_pointer_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy_if.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_select.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_unique_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_unique_by_key.cuh diff --git a/build/examples/CMakeFiles/thrust.example.sum.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.example.sum.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..1b1fd496e77494a8f6298406fe0c0d5acb483078 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sum.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/sum.cu" "examples/CMakeFiles/thrust.example.sum.dir/sum.cu.o" "gcc" "examples/CMakeFiles/thrust.example.sum.dir/sum.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.example.sum.dir/build.make b/build/examples/CMakeFiles/thrust.example.sum.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..a5aedc3d87d2c380bd9a9f48bf5945a87018601f --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sum.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/CMakeFiles/thrust.example.sum.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/CMakeFiles/thrust.example.sum.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.example.sum.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/CMakeFiles/thrust.example.sum.dir/flags.make + +examples/CMakeFiles/thrust.example.sum.dir/sum.cu.o: examples/CMakeFiles/thrust.example.sum.dir/flags.make +examples/CMakeFiles/thrust.example.sum.dir/sum.cu.o: examples/CMakeFiles/thrust.example.sum.dir/includes_CUDA.rsp +examples/CMakeFiles/thrust.example.sum.dir/sum.cu.o: /home/ubuntu/thrust/examples/sum.cu +examples/CMakeFiles/thrust.example.sum.dir/sum.cu.o: examples/CMakeFiles/thrust.example.sum.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/CMakeFiles/thrust.example.sum.dir/sum.cu.o" + cd /home/ubuntu/thrust/build/examples && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/CMakeFiles/thrust.example.sum.dir/sum.cu.o -MF CMakeFiles/thrust.example.sum.dir/sum.cu.o.d -x cu -c /home/ubuntu/thrust/examples/sum.cu -o CMakeFiles/thrust.example.sum.dir/sum.cu.o + +examples/CMakeFiles/thrust.example.sum.dir/sum.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.sum.dir/sum.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/CMakeFiles/thrust.example.sum.dir/sum.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.sum.dir/sum.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.sum +thrust_example_sum_OBJECTS = \ +"CMakeFiles/thrust.example.sum.dir/sum.cu.o" + +# External object files for target thrust.example.sum +thrust_example_sum_EXTERNAL_OBJECTS = + +bin/thrust.example.sum: examples/CMakeFiles/thrust.example.sum.dir/sum.cu.o +bin/thrust.example.sum: examples/CMakeFiles/thrust.example.sum.dir/build.make +bin/thrust.example.sum: examples/CMakeFiles/thrust.example.sum.dir/linkLibs.rsp +bin/thrust.example.sum: examples/CMakeFiles/thrust.example.sum.dir/objects1.rsp +bin/thrust.example.sum: examples/CMakeFiles/thrust.example.sum.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../bin/thrust.example.sum" + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.sum.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.example.sum.dir/build: bin/thrust.example.sum +.PHONY : examples/CMakeFiles/thrust.example.sum.dir/build + +examples/CMakeFiles/thrust.example.sum.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.sum.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.example.sum.dir/clean + +examples/CMakeFiles/thrust.example.sum.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.sum.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.example.sum.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.example.sum.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.example.sum.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..52ec3692acf39e98337321cc255b31a86359f24d --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sum.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../bin/thrust.example.sum" + "../bin/thrust.example.sum.pdb" + "CMakeFiles/thrust.example.sum.dir/sum.cu.o" + "CMakeFiles/thrust.example.sum.dir/sum.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.sum.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.example.sum.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.example.sum.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..9f75846e0da2be3bec9e1e09e1e53a56763114b0 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sum.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.sum. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.sum.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.example.sum.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..db4f9eb46758f6de65300a6aefc257ea00fb6203 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sum.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.sum. diff --git a/build/examples/CMakeFiles/thrust.example.sum.dir/depend.make b/build/examples/CMakeFiles/thrust.example.sum.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..b632c89743f52855a12a87d50c552f08751d4296 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sum.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.sum. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.sum.dir/flags.make b/build/examples/CMakeFiles/thrust.example.sum.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..30507658062daf539722fbd67e903c33efa46a88 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sum.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.sum.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/CMakeFiles/thrust.example.sum.dir/includes_CUDA.rsp b/build/examples/CMakeFiles/thrust.example.sum.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sum.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/CMakeFiles/thrust.example.sum.dir/link.txt b/build/examples/CMakeFiles/thrust.example.sum.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..ec7d6c028bcdc1bab042c7a5605ef53ae59f9deb --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sum.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.sum.dir/objects1.rsp -o ../bin/thrust.example.sum @CMakeFiles/thrust.example.sum.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/CMakeFiles/thrust.example.sum.dir/linkLibs.rsp b/build/examples/CMakeFiles/thrust.example.sum.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sum.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/CMakeFiles/thrust.example.sum.dir/objects1.rsp b/build/examples/CMakeFiles/thrust.example.sum.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..eba64f6492c1df2b5d1a95a2e8ee31ecb71c4cc9 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sum.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.sum.dir/sum.cu.o diff --git a/build/examples/CMakeFiles/thrust.example.sum.dir/progress.make b/build/examples/CMakeFiles/thrust.example.sum.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..6c287f17b23171ee8abc97d23b8f8a3bfa7225de --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sum.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = + diff --git a/build/examples/CMakeFiles/thrust.example.sum.dir/sum.cu.o b/build/examples/CMakeFiles/thrust.example.sum.dir/sum.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..e005b9b7608f5ebedc6e1540543e866098a981a3 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sum.dir/sum.cu.o @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:73037bdd8eccf997eb57ec988cd16bc7b894455d28c0d55da6d7306749021140 +size 1409536 diff --git a/build/examples/CMakeFiles/thrust.example.sum.dir/sum.cu.o.d b/build/examples/CMakeFiles/thrust.example.sum.dir/sum.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..20e30ed7b5f7595d35c856de0b272f3b9c6a03c2 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sum.dir/sum.cu.o.d @@ -0,0 +1,792 @@ +examples/CMakeFiles/thrust.example.sum.dir/sum.cu.o : /home/ubuntu/thrust/examples/sum.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/host_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cstdio \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/invoke.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/reverse_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /usr/include/c++/9/limits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /usr/include/c++/9/iostream \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /usr/include/c++/9/vector \ + /usr/include/c++/9/bits/stl_vector.h \ + /usr/include/c++/9/bits/stl_bvector.h \ + /usr/include/c++/9/bits/vector.tcc \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/overlapped_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/iterator/is_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/permutation_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/permutation_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cstdint.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/dispatch.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/single_pass_scan_operators.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/cpp_compatibility.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_queue.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_math.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_discontinuity.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/minmax.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mpl/math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/make_unsigned_special.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/choose_offset.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking_commutative_only.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_warp_reductions.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_even_share.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_mapping.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/arg_index_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/constant_input_iterator.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/counting_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/counting_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/numeric_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_ptr.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/validator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/polymorphic_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/device_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/host_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/new.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/fancy_pointer_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/discard_block_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/random_core_access.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/discard_block_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/linear_congruential_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_congruential_engine_discard.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/mod.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_congruential_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/linear_feedback_shift_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_feedback_shift_engine_wordmask.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_feedback_shift_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/subtract_with_carry_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/subtract_with_carry_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/xor_combine_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/xor_combine_engine_max.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/xor_combine_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/uniform_int_distribution.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/uniform_int_distribution.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/uniform_real_distribution.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/uniform_real_distribution.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/normal_distribution.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/normal_distribution_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/normal_distribution.inl \ + /usr/include/math_constants.h diff --git a/build/examples/CMakeFiles/thrust.example.sum_rows.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.example.sum_rows.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..d19d86e0ffc70d284ceeeaf2d31bbc065acbbbbd --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sum_rows.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/sum_rows.cu" "examples/CMakeFiles/thrust.example.sum_rows.dir/sum_rows.cu.o" "gcc" "examples/CMakeFiles/thrust.example.sum_rows.dir/sum_rows.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.example.sum_rows.dir/build.make b/build/examples/CMakeFiles/thrust.example.sum_rows.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..20ed3cbedecf2f13dca05021f822b8b890efeec4 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sum_rows.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/CMakeFiles/thrust.example.sum_rows.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/CMakeFiles/thrust.example.sum_rows.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.example.sum_rows.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/CMakeFiles/thrust.example.sum_rows.dir/flags.make + +examples/CMakeFiles/thrust.example.sum_rows.dir/sum_rows.cu.o: examples/CMakeFiles/thrust.example.sum_rows.dir/flags.make +examples/CMakeFiles/thrust.example.sum_rows.dir/sum_rows.cu.o: examples/CMakeFiles/thrust.example.sum_rows.dir/includes_CUDA.rsp +examples/CMakeFiles/thrust.example.sum_rows.dir/sum_rows.cu.o: /home/ubuntu/thrust/examples/sum_rows.cu +examples/CMakeFiles/thrust.example.sum_rows.dir/sum_rows.cu.o: examples/CMakeFiles/thrust.example.sum_rows.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/CMakeFiles/thrust.example.sum_rows.dir/sum_rows.cu.o" + cd /home/ubuntu/thrust/build/examples && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/CMakeFiles/thrust.example.sum_rows.dir/sum_rows.cu.o -MF CMakeFiles/thrust.example.sum_rows.dir/sum_rows.cu.o.d -x cu -c /home/ubuntu/thrust/examples/sum_rows.cu -o CMakeFiles/thrust.example.sum_rows.dir/sum_rows.cu.o + +examples/CMakeFiles/thrust.example.sum_rows.dir/sum_rows.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.sum_rows.dir/sum_rows.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/CMakeFiles/thrust.example.sum_rows.dir/sum_rows.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.sum_rows.dir/sum_rows.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.sum_rows +thrust_example_sum_rows_OBJECTS = \ +"CMakeFiles/thrust.example.sum_rows.dir/sum_rows.cu.o" + +# External object files for target thrust.example.sum_rows +thrust_example_sum_rows_EXTERNAL_OBJECTS = + +bin/thrust.example.sum_rows: examples/CMakeFiles/thrust.example.sum_rows.dir/sum_rows.cu.o +bin/thrust.example.sum_rows: examples/CMakeFiles/thrust.example.sum_rows.dir/build.make +bin/thrust.example.sum_rows: examples/CMakeFiles/thrust.example.sum_rows.dir/linkLibs.rsp +bin/thrust.example.sum_rows: examples/CMakeFiles/thrust.example.sum_rows.dir/objects1.rsp +bin/thrust.example.sum_rows: examples/CMakeFiles/thrust.example.sum_rows.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../bin/thrust.example.sum_rows" + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.sum_rows.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.example.sum_rows.dir/build: bin/thrust.example.sum_rows +.PHONY : examples/CMakeFiles/thrust.example.sum_rows.dir/build + +examples/CMakeFiles/thrust.example.sum_rows.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.sum_rows.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.example.sum_rows.dir/clean + +examples/CMakeFiles/thrust.example.sum_rows.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.sum_rows.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.example.sum_rows.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.example.sum_rows.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.example.sum_rows.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..875572a7616f3b67704b1021f9c81085579b6567 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sum_rows.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../bin/thrust.example.sum_rows" + "../bin/thrust.example.sum_rows.pdb" + "CMakeFiles/thrust.example.sum_rows.dir/sum_rows.cu.o" + "CMakeFiles/thrust.example.sum_rows.dir/sum_rows.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.sum_rows.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.example.sum_rows.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.example.sum_rows.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..de215b1788658c23877d593ab4f76b6ab68b5958 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sum_rows.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.sum_rows. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.sum_rows.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.example.sum_rows.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..e6ca648157a27508d42adf03e54d4dad1e2a7445 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sum_rows.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.sum_rows. diff --git a/build/examples/CMakeFiles/thrust.example.sum_rows.dir/depend.make b/build/examples/CMakeFiles/thrust.example.sum_rows.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..252caba7b86bf43bd0059195a6c7ebef2f541516 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sum_rows.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.sum_rows. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.sum_rows.dir/flags.make b/build/examples/CMakeFiles/thrust.example.sum_rows.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..e159d16c1446a4a57aca2f749ca899df1367d9e3 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sum_rows.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.sum_rows.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/CMakeFiles/thrust.example.sum_rows.dir/includes_CUDA.rsp b/build/examples/CMakeFiles/thrust.example.sum_rows.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sum_rows.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/CMakeFiles/thrust.example.sum_rows.dir/link.txt b/build/examples/CMakeFiles/thrust.example.sum_rows.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..e94902bed45070d4899de350c7ecee17397f460f --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sum_rows.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.sum_rows.dir/objects1.rsp -o ../bin/thrust.example.sum_rows @CMakeFiles/thrust.example.sum_rows.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/CMakeFiles/thrust.example.sum_rows.dir/linkLibs.rsp b/build/examples/CMakeFiles/thrust.example.sum_rows.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sum_rows.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/CMakeFiles/thrust.example.sum_rows.dir/objects1.rsp b/build/examples/CMakeFiles/thrust.example.sum_rows.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..e1bd6e99ef65e235256f1bac2cf001694caba31e --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sum_rows.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.sum_rows.dir/sum_rows.cu.o diff --git a/build/examples/CMakeFiles/thrust.example.sum_rows.dir/progress.make b/build/examples/CMakeFiles/thrust.example.sum_rows.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..6c287f17b23171ee8abc97d23b8f8a3bfa7225de --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sum_rows.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = + diff --git a/build/examples/CMakeFiles/thrust.example.sum_rows.dir/sum_rows.cu.o b/build/examples/CMakeFiles/thrust.example.sum_rows.dir/sum_rows.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..ceb0bf8029f9f95e74d555c2a53116a146a2acad --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sum_rows.dir/sum_rows.cu.o @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5ac875b6765ce079090cd9199ce6d21785dde266df2c0e0f6fc288da3b63ac01 +size 2203080 diff --git a/build/examples/CMakeFiles/thrust.example.sum_rows.dir/sum_rows.cu.o.d b/build/examples/CMakeFiles/thrust.example.sum_rows.dir/sum_rows.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..c26a3c9995904f84c8566c70a1a40c6b2e53abce --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.sum_rows.dir/sum_rows.cu.o.d @@ -0,0 +1,792 @@ +examples/CMakeFiles/thrust.example.sum_rows.dir/sum_rows.cu.o : /home/ubuntu/thrust/examples/sum_rows.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/host_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cstdio \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/invoke.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/reverse_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /usr/include/c++/9/limits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /usr/include/c++/9/iostream \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /usr/include/c++/9/vector \ + /usr/include/c++/9/bits/stl_vector.h \ + /usr/include/c++/9/bits/stl_bvector.h \ + /usr/include/c++/9/bits/vector.tcc \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/overlapped_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/iterator/is_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/permutation_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/permutation_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cstdint.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/dispatch.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/single_pass_scan_operators.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/cpp_compatibility.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_queue.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_math.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_discontinuity.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/minmax.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mpl/math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/make_unsigned_special.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/choose_offset.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking_commutative_only.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_warp_reductions.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_even_share.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_mapping.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/arg_index_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/constant_input_iterator.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/counting_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/counting_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/numeric_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_ptr.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/validator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/polymorphic_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/device_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/host_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/new.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/fancy_pointer_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/discard_block_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/random_core_access.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/discard_block_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/linear_congruential_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_congruential_engine_discard.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/mod.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_congruential_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/linear_feedback_shift_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_feedback_shift_engine_wordmask.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/linear_feedback_shift_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/subtract_with_carry_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/subtract_with_carry_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/xor_combine_engine.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/xor_combine_engine_max.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/xor_combine_engine.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/uniform_int_distribution.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/uniform_int_distribution.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/uniform_real_distribution.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/uniform_real_distribution.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/normal_distribution.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/normal_distribution_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/random/detail/normal_distribution.inl \ + /usr/include/math_constants.h diff --git a/build/examples/CMakeFiles/thrust.example.summary_statistics.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.example.summary_statistics.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..0b4b8c080271e64e27b1cf8a7151ab2ea898a19a --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.summary_statistics.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/summary_statistics.cu" "examples/CMakeFiles/thrust.example.summary_statistics.dir/summary_statistics.cu.o" "gcc" "examples/CMakeFiles/thrust.example.summary_statistics.dir/summary_statistics.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.example.summary_statistics.dir/build.make b/build/examples/CMakeFiles/thrust.example.summary_statistics.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..85a49b90aa2dcadc67ae70f3408bc8f96b78fabe --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.summary_statistics.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/CMakeFiles/thrust.example.summary_statistics.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/CMakeFiles/thrust.example.summary_statistics.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.example.summary_statistics.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/CMakeFiles/thrust.example.summary_statistics.dir/flags.make + +examples/CMakeFiles/thrust.example.summary_statistics.dir/summary_statistics.cu.o: examples/CMakeFiles/thrust.example.summary_statistics.dir/flags.make +examples/CMakeFiles/thrust.example.summary_statistics.dir/summary_statistics.cu.o: examples/CMakeFiles/thrust.example.summary_statistics.dir/includes_CUDA.rsp +examples/CMakeFiles/thrust.example.summary_statistics.dir/summary_statistics.cu.o: /home/ubuntu/thrust/examples/summary_statistics.cu +examples/CMakeFiles/thrust.example.summary_statistics.dir/summary_statistics.cu.o: examples/CMakeFiles/thrust.example.summary_statistics.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/CMakeFiles/thrust.example.summary_statistics.dir/summary_statistics.cu.o" + cd /home/ubuntu/thrust/build/examples && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/CMakeFiles/thrust.example.summary_statistics.dir/summary_statistics.cu.o -MF CMakeFiles/thrust.example.summary_statistics.dir/summary_statistics.cu.o.d -x cu -c /home/ubuntu/thrust/examples/summary_statistics.cu -o CMakeFiles/thrust.example.summary_statistics.dir/summary_statistics.cu.o + +examples/CMakeFiles/thrust.example.summary_statistics.dir/summary_statistics.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.summary_statistics.dir/summary_statistics.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/CMakeFiles/thrust.example.summary_statistics.dir/summary_statistics.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.summary_statistics.dir/summary_statistics.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.summary_statistics +thrust_example_summary_statistics_OBJECTS = \ +"CMakeFiles/thrust.example.summary_statistics.dir/summary_statistics.cu.o" + +# External object files for target thrust.example.summary_statistics +thrust_example_summary_statistics_EXTERNAL_OBJECTS = + +bin/thrust.example.summary_statistics: examples/CMakeFiles/thrust.example.summary_statistics.dir/summary_statistics.cu.o +bin/thrust.example.summary_statistics: examples/CMakeFiles/thrust.example.summary_statistics.dir/build.make +bin/thrust.example.summary_statistics: examples/CMakeFiles/thrust.example.summary_statistics.dir/linkLibs.rsp +bin/thrust.example.summary_statistics: examples/CMakeFiles/thrust.example.summary_statistics.dir/objects1.rsp +bin/thrust.example.summary_statistics: examples/CMakeFiles/thrust.example.summary_statistics.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../bin/thrust.example.summary_statistics" + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.summary_statistics.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.example.summary_statistics.dir/build: bin/thrust.example.summary_statistics +.PHONY : examples/CMakeFiles/thrust.example.summary_statistics.dir/build + +examples/CMakeFiles/thrust.example.summary_statistics.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.summary_statistics.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.example.summary_statistics.dir/clean + +examples/CMakeFiles/thrust.example.summary_statistics.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.summary_statistics.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.example.summary_statistics.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.example.summary_statistics.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.example.summary_statistics.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..696f6868a9b631fb4fbea7fde5c07ec3e73973ae --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.summary_statistics.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../bin/thrust.example.summary_statistics" + "../bin/thrust.example.summary_statistics.pdb" + "CMakeFiles/thrust.example.summary_statistics.dir/summary_statistics.cu.o" + "CMakeFiles/thrust.example.summary_statistics.dir/summary_statistics.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.summary_statistics.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.example.summary_statistics.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.example.summary_statistics.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..f88514138862a7c1f10e2a12746368a8de93bc77 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.summary_statistics.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.summary_statistics. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.summary_statistics.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.example.summary_statistics.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..1a5f44ed33a889c1db29ff5c08c6e17ae477aaeb --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.summary_statistics.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.summary_statistics. diff --git a/build/examples/CMakeFiles/thrust.example.summary_statistics.dir/depend.make b/build/examples/CMakeFiles/thrust.example.summary_statistics.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..19debfef373609111d4714c145078ca6dc053035 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.summary_statistics.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.summary_statistics. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.summary_statistics.dir/flags.make b/build/examples/CMakeFiles/thrust.example.summary_statistics.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..fc1049b7045ba89dcc9066130b1a618ab5fe1e95 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.summary_statistics.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.summary_statistics.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/CMakeFiles/thrust.example.summary_statistics.dir/includes_CUDA.rsp b/build/examples/CMakeFiles/thrust.example.summary_statistics.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.summary_statistics.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/CMakeFiles/thrust.example.summary_statistics.dir/link.txt b/build/examples/CMakeFiles/thrust.example.summary_statistics.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..11d0d0fe820048c248108763de23ebc82e144a84 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.summary_statistics.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.summary_statistics.dir/objects1.rsp -o ../bin/thrust.example.summary_statistics @CMakeFiles/thrust.example.summary_statistics.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/CMakeFiles/thrust.example.summary_statistics.dir/linkLibs.rsp b/build/examples/CMakeFiles/thrust.example.summary_statistics.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.summary_statistics.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/CMakeFiles/thrust.example.summary_statistics.dir/objects1.rsp b/build/examples/CMakeFiles/thrust.example.summary_statistics.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..5d1a31304e11950c14b8b35cc5b2c29afe80924a --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.summary_statistics.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.summary_statistics.dir/summary_statistics.cu.o diff --git a/build/examples/CMakeFiles/thrust.example.summary_statistics.dir/progress.make b/build/examples/CMakeFiles/thrust.example.summary_statistics.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..b39c96b512bb8adb6ae0733d553035040fcb5c08 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.summary_statistics.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = 48 + diff --git a/build/examples/CMakeFiles/thrust.example.summary_statistics.dir/summary_statistics.cu.o b/build/examples/CMakeFiles/thrust.example.summary_statistics.dir/summary_statistics.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..b8c1d4405a76f4893f0ac86e08669402961ffaab --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.summary_statistics.dir/summary_statistics.cu.o @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:36aebbfe90b0d52daca1e264dbaa419650c9181fe3705738c439fda9399ddd13 +size 8870120 diff --git a/build/examples/CMakeFiles/thrust.example.summary_statistics.dir/summary_statistics.cu.o.d b/build/examples/CMakeFiles/thrust.example.summary_statistics.dir/summary_statistics.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..2e20f08a0cb24958e5c11b661fa5af5f9e7959e9 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.summary_statistics.dir/summary_statistics.cu.o.d @@ -0,0 +1,843 @@ +examples/CMakeFiles/thrust.example.summary_statistics.dir/summary_statistics.cu.o : /home/ubuntu/thrust/examples/summary_statistics.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /usr/include/c++/9/cstdio \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/invoke.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/reverse_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /usr/include/c++/9/limits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /usr/include/c++/9/iostream \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /usr/include/c++/9/vector \ + /usr/include/c++/9/bits/stl_vector.h \ + /usr/include/c++/9/bits/stl_bvector.h \ + /usr/include/c++/9/bits/vector.tcc \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/overlapped_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/iterator/is_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/permutation_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/permutation_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cstdint.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/dispatch.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/single_pass_scan_operators.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/cpp_compatibility.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_queue.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_math.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_discontinuity.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/minmax.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mpl/math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/make_unsigned_special.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/choose_offset.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking_commutative_only.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_warp_reductions.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_even_share.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_mapping.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/arg_index_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/constant_input_iterator.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/counting_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/counting_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/numeric_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_ptr.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/validator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/polymorphic_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/device_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/host_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/new.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/fancy_pointer_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/host_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform_reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform_reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/extrema.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/extrema.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/get_iterator_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/adjacent_difference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/adjacent_difference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/merge.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/partition.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/partition.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/remove.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/remove.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/set_operations.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/set_operations.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reverse.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reverse.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_merge_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_merge_sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/merge.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/merge.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/insertion_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy_backward.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_primitive_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_primitive_sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_radix_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_radix_sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy_if.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_select.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_unique_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_unique_by_key.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/unique.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/unique.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/unique_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/unique_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/extrema.h diff --git a/build/examples/CMakeFiles/thrust.example.summed_area_table.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.example.summed_area_table.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..e89fb7d01e8c2c801401426fad15660ecd8d95c0 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.summed_area_table.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/summed_area_table.cu" "examples/CMakeFiles/thrust.example.summed_area_table.dir/summed_area_table.cu.o" "gcc" "examples/CMakeFiles/thrust.example.summed_area_table.dir/summed_area_table.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.example.summed_area_table.dir/build.make b/build/examples/CMakeFiles/thrust.example.summed_area_table.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..eeb990c6860453d5b8107e3fa26902a576479904 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.summed_area_table.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/CMakeFiles/thrust.example.summed_area_table.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/CMakeFiles/thrust.example.summed_area_table.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.example.summed_area_table.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/CMakeFiles/thrust.example.summed_area_table.dir/flags.make + +examples/CMakeFiles/thrust.example.summed_area_table.dir/summed_area_table.cu.o: examples/CMakeFiles/thrust.example.summed_area_table.dir/flags.make +examples/CMakeFiles/thrust.example.summed_area_table.dir/summed_area_table.cu.o: examples/CMakeFiles/thrust.example.summed_area_table.dir/includes_CUDA.rsp +examples/CMakeFiles/thrust.example.summed_area_table.dir/summed_area_table.cu.o: /home/ubuntu/thrust/examples/summed_area_table.cu +examples/CMakeFiles/thrust.example.summed_area_table.dir/summed_area_table.cu.o: examples/CMakeFiles/thrust.example.summed_area_table.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/CMakeFiles/thrust.example.summed_area_table.dir/summed_area_table.cu.o" + cd /home/ubuntu/thrust/build/examples && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/CMakeFiles/thrust.example.summed_area_table.dir/summed_area_table.cu.o -MF CMakeFiles/thrust.example.summed_area_table.dir/summed_area_table.cu.o.d -x cu -c /home/ubuntu/thrust/examples/summed_area_table.cu -o CMakeFiles/thrust.example.summed_area_table.dir/summed_area_table.cu.o + +examples/CMakeFiles/thrust.example.summed_area_table.dir/summed_area_table.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.summed_area_table.dir/summed_area_table.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/CMakeFiles/thrust.example.summed_area_table.dir/summed_area_table.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.summed_area_table.dir/summed_area_table.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.summed_area_table +thrust_example_summed_area_table_OBJECTS = \ +"CMakeFiles/thrust.example.summed_area_table.dir/summed_area_table.cu.o" + +# External object files for target thrust.example.summed_area_table +thrust_example_summed_area_table_EXTERNAL_OBJECTS = + +bin/thrust.example.summed_area_table: examples/CMakeFiles/thrust.example.summed_area_table.dir/summed_area_table.cu.o +bin/thrust.example.summed_area_table: examples/CMakeFiles/thrust.example.summed_area_table.dir/build.make +bin/thrust.example.summed_area_table: examples/CMakeFiles/thrust.example.summed_area_table.dir/linkLibs.rsp +bin/thrust.example.summed_area_table: examples/CMakeFiles/thrust.example.summed_area_table.dir/objects1.rsp +bin/thrust.example.summed_area_table: examples/CMakeFiles/thrust.example.summed_area_table.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../bin/thrust.example.summed_area_table" + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.summed_area_table.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.example.summed_area_table.dir/build: bin/thrust.example.summed_area_table +.PHONY : examples/CMakeFiles/thrust.example.summed_area_table.dir/build + +examples/CMakeFiles/thrust.example.summed_area_table.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.summed_area_table.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.example.summed_area_table.dir/clean + +examples/CMakeFiles/thrust.example.summed_area_table.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.summed_area_table.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.example.summed_area_table.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.example.summed_area_table.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.example.summed_area_table.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..abe40b99b5cbbcf2b5e628451873284674211690 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.summed_area_table.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../bin/thrust.example.summed_area_table" + "../bin/thrust.example.summed_area_table.pdb" + "CMakeFiles/thrust.example.summed_area_table.dir/summed_area_table.cu.o" + "CMakeFiles/thrust.example.summed_area_table.dir/summed_area_table.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.summed_area_table.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.example.summed_area_table.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.example.summed_area_table.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..80b31d30daea5bebdf7f97a994bfb69ce5ad7583 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.summed_area_table.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.summed_area_table. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.summed_area_table.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.example.summed_area_table.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..f9727795e0a20ad93b7de291bfe0d469bb9b7e94 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.summed_area_table.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.summed_area_table. diff --git a/build/examples/CMakeFiles/thrust.example.summed_area_table.dir/depend.make b/build/examples/CMakeFiles/thrust.example.summed_area_table.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..cdb3064f3d77f4e34511eb42a8dd54ef2a22ed6e --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.summed_area_table.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.summed_area_table. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.summed_area_table.dir/flags.make b/build/examples/CMakeFiles/thrust.example.summed_area_table.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..39cf8a7359ed91ac91666b3a65350432eebef240 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.summed_area_table.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.summed_area_table.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/CMakeFiles/thrust.example.summed_area_table.dir/includes_CUDA.rsp b/build/examples/CMakeFiles/thrust.example.summed_area_table.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.summed_area_table.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/CMakeFiles/thrust.example.summed_area_table.dir/link.txt b/build/examples/CMakeFiles/thrust.example.summed_area_table.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..d187bd64655d9d93b62226f23f485adedffcab27 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.summed_area_table.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.summed_area_table.dir/objects1.rsp -o ../bin/thrust.example.summed_area_table @CMakeFiles/thrust.example.summed_area_table.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/CMakeFiles/thrust.example.summed_area_table.dir/linkLibs.rsp b/build/examples/CMakeFiles/thrust.example.summed_area_table.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.summed_area_table.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/CMakeFiles/thrust.example.summed_area_table.dir/objects1.rsp b/build/examples/CMakeFiles/thrust.example.summed_area_table.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d102eaa8675addd22d8b0fe02a2420b17c8a909f --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.summed_area_table.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.summed_area_table.dir/summed_area_table.cu.o diff --git a/build/examples/CMakeFiles/thrust.example.summed_area_table.dir/progress.make b/build/examples/CMakeFiles/thrust.example.summed_area_table.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..6c287f17b23171ee8abc97d23b8f8a3bfa7225de --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.summed_area_table.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = + diff --git a/build/examples/CMakeFiles/thrust.example.summed_area_table.dir/summed_area_table.cu.o b/build/examples/CMakeFiles/thrust.example.summed_area_table.dir/summed_area_table.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..8236f56a4327677a3805217419688868aab2b642 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.summed_area_table.dir/summed_area_table.cu.o @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7447553b46b2c955c6af9c5de3c986c620be69235810ff26e535f18ed436a7a7 +size 1975800 diff --git a/build/examples/CMakeFiles/thrust.example.summed_area_table.dir/summed_area_table.cu.o.d b/build/examples/CMakeFiles/thrust.example.summed_area_table.dir/summed_area_table.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..9ed5f4208b2e50e2eb383c9e03ade279373f3b87 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.summed_area_table.dir/summed_area_table.cu.o.d @@ -0,0 +1,787 @@ +examples/CMakeFiles/thrust.example.summed_area_table.dir/summed_area_table.cu.o : /home/ubuntu/thrust/examples/summed_area_table.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/host_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cstdio \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/invoke.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/reverse_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /usr/include/c++/9/limits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /usr/include/c++/9/iostream \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /usr/include/c++/9/vector \ + /usr/include/c++/9/bits/stl_vector.h \ + /usr/include/c++/9/bits/stl_bvector.h \ + /usr/include/c++/9/bits/vector.tcc \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/overlapped_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/iterator/is_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/permutation_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/permutation_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cstdint.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/dispatch.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/single_pass_scan_operators.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/cpp_compatibility.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_queue.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_math.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_discontinuity.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/minmax.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mpl/math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/make_unsigned_special.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/choose_offset.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking_commutative_only.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_warp_reductions.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_even_share.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_mapping.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/arg_index_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/constant_input_iterator.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/counting_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/counting_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/numeric_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_ptr.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/validator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/polymorphic_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/device_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/host_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/new.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/fancy_pointer_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/gather.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/gather.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/gather.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/gather.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/gather.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/gather.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/gather.h \ + /usr/include/c++/9/iomanip \ + /usr/include/c++/9/locale \ + /usr/include/c++/9/bits/locale_facets_nonio.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/time_members.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/messages_members.h \ + /usr/include/libintl.h \ + /usr/include/c++/9/bits/codecvt.h \ + /usr/include/c++/9/bits/locale_facets_nonio.tcc \ + /usr/include/c++/9/bits/locale_conv.h \ + /usr/include/c++/9/bits/quoted_string.h \ + /usr/include/c++/9/sstream \ + /usr/include/c++/9/bits/sstream.tcc diff --git a/build/examples/CMakeFiles/thrust.example.tiled_range.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.example.tiled_range.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..a70e4cced8d0743b122e1e25ed6a81bb27b3944d --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.tiled_range.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/tiled_range.cu" "examples/CMakeFiles/thrust.example.tiled_range.dir/tiled_range.cu.o" "gcc" "examples/CMakeFiles/thrust.example.tiled_range.dir/tiled_range.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.example.tiled_range.dir/build.make b/build/examples/CMakeFiles/thrust.example.tiled_range.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..06f0f18abf4e9673c749f540ee03da512fce1cc5 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.tiled_range.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/CMakeFiles/thrust.example.tiled_range.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/CMakeFiles/thrust.example.tiled_range.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.example.tiled_range.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/CMakeFiles/thrust.example.tiled_range.dir/flags.make + +examples/CMakeFiles/thrust.example.tiled_range.dir/tiled_range.cu.o: examples/CMakeFiles/thrust.example.tiled_range.dir/flags.make +examples/CMakeFiles/thrust.example.tiled_range.dir/tiled_range.cu.o: examples/CMakeFiles/thrust.example.tiled_range.dir/includes_CUDA.rsp +examples/CMakeFiles/thrust.example.tiled_range.dir/tiled_range.cu.o: /home/ubuntu/thrust/examples/tiled_range.cu +examples/CMakeFiles/thrust.example.tiled_range.dir/tiled_range.cu.o: examples/CMakeFiles/thrust.example.tiled_range.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/CMakeFiles/thrust.example.tiled_range.dir/tiled_range.cu.o" + cd /home/ubuntu/thrust/build/examples && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/CMakeFiles/thrust.example.tiled_range.dir/tiled_range.cu.o -MF CMakeFiles/thrust.example.tiled_range.dir/tiled_range.cu.o.d -x cu -c /home/ubuntu/thrust/examples/tiled_range.cu -o CMakeFiles/thrust.example.tiled_range.dir/tiled_range.cu.o + +examples/CMakeFiles/thrust.example.tiled_range.dir/tiled_range.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.tiled_range.dir/tiled_range.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/CMakeFiles/thrust.example.tiled_range.dir/tiled_range.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.tiled_range.dir/tiled_range.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.tiled_range +thrust_example_tiled_range_OBJECTS = \ +"CMakeFiles/thrust.example.tiled_range.dir/tiled_range.cu.o" + +# External object files for target thrust.example.tiled_range +thrust_example_tiled_range_EXTERNAL_OBJECTS = + +bin/thrust.example.tiled_range: examples/CMakeFiles/thrust.example.tiled_range.dir/tiled_range.cu.o +bin/thrust.example.tiled_range: examples/CMakeFiles/thrust.example.tiled_range.dir/build.make +bin/thrust.example.tiled_range: examples/CMakeFiles/thrust.example.tiled_range.dir/linkLibs.rsp +bin/thrust.example.tiled_range: examples/CMakeFiles/thrust.example.tiled_range.dir/objects1.rsp +bin/thrust.example.tiled_range: examples/CMakeFiles/thrust.example.tiled_range.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../bin/thrust.example.tiled_range" + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.tiled_range.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.example.tiled_range.dir/build: bin/thrust.example.tiled_range +.PHONY : examples/CMakeFiles/thrust.example.tiled_range.dir/build + +examples/CMakeFiles/thrust.example.tiled_range.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.tiled_range.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.example.tiled_range.dir/clean + +examples/CMakeFiles/thrust.example.tiled_range.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.tiled_range.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.example.tiled_range.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.example.tiled_range.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.example.tiled_range.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..85f6c4df0c2ee2749d3518b1ba9f731ee5f62241 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.tiled_range.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../bin/thrust.example.tiled_range" + "../bin/thrust.example.tiled_range.pdb" + "CMakeFiles/thrust.example.tiled_range.dir/tiled_range.cu.o" + "CMakeFiles/thrust.example.tiled_range.dir/tiled_range.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.tiled_range.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.example.tiled_range.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.example.tiled_range.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..e6ffe04417856dce38089f269ef6185ecaa91568 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.tiled_range.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.tiled_range. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.tiled_range.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.example.tiled_range.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..41d50acd187a4a90d039edd1a14989da6ef6943d --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.tiled_range.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.tiled_range. diff --git a/build/examples/CMakeFiles/thrust.example.tiled_range.dir/depend.make b/build/examples/CMakeFiles/thrust.example.tiled_range.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..2145e519e9f19d3e4babc7f64df79549be1f64ce --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.tiled_range.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.tiled_range. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.tiled_range.dir/flags.make b/build/examples/CMakeFiles/thrust.example.tiled_range.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..f476a8e4007bb945f02acc732309a446e809c7fb --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.tiled_range.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.tiled_range.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/CMakeFiles/thrust.example.tiled_range.dir/includes_CUDA.rsp b/build/examples/CMakeFiles/thrust.example.tiled_range.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.tiled_range.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/CMakeFiles/thrust.example.tiled_range.dir/link.txt b/build/examples/CMakeFiles/thrust.example.tiled_range.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..35707dd9c12b5aca25fd5c977977767093c43c71 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.tiled_range.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.tiled_range.dir/objects1.rsp -o ../bin/thrust.example.tiled_range @CMakeFiles/thrust.example.tiled_range.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/CMakeFiles/thrust.example.tiled_range.dir/linkLibs.rsp b/build/examples/CMakeFiles/thrust.example.tiled_range.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.tiled_range.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/CMakeFiles/thrust.example.tiled_range.dir/objects1.rsp b/build/examples/CMakeFiles/thrust.example.tiled_range.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..bdaf6616fdfa1ae86136745a6ed3705eef6ea014 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.tiled_range.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.tiled_range.dir/tiled_range.cu.o diff --git a/build/examples/CMakeFiles/thrust.example.tiled_range.dir/progress.make b/build/examples/CMakeFiles/thrust.example.tiled_range.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..6c287f17b23171ee8abc97d23b8f8a3bfa7225de --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.tiled_range.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = + diff --git a/build/examples/CMakeFiles/thrust.example.tiled_range.dir/tiled_range.cu.o b/build/examples/CMakeFiles/thrust.example.tiled_range.dir/tiled_range.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..c9c384ba06eda44a8fc130f2aee9edf1ce606c79 Binary files /dev/null and b/build/examples/CMakeFiles/thrust.example.tiled_range.dir/tiled_range.cu.o differ diff --git a/build/examples/CMakeFiles/thrust.example.tiled_range.dir/tiled_range.cu.o.d b/build/examples/CMakeFiles/thrust.example.tiled_range.dir/tiled_range.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..bf236eda8f6d3d5cddf4107c48f34d74ee73a3b0 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.tiled_range.dir/tiled_range.cu.o.d @@ -0,0 +1,781 @@ +examples/CMakeFiles/thrust.example.tiled_range.dir/tiled_range.cu.o : /home/ubuntu/thrust/examples/tiled_range.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/counting_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /usr/include/c++/9/cstdio \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/invoke.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/counting_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/numeric_traits.h \ + /usr/include/c++/9/limits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/permutation_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/permutation_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /usr/include/c++/9/iostream \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/reverse_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /usr/include/c++/9/vector \ + /usr/include/c++/9/bits/stl_vector.h \ + /usr/include/c++/9/bits/stl_bvector.h \ + /usr/include/c++/9/bits/vector.tcc \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/overlapped_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/iterator/is_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cstdint.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/dispatch.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/single_pass_scan_operators.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/cpp_compatibility.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_queue.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_math.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_discontinuity.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/minmax.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mpl/math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/make_unsigned_special.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/choose_offset.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking_commutative_only.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_warp_reductions.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_even_share.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_mapping.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/arg_index_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/constant_input_iterator.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_ptr.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/validator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/polymorphic_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/device_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/host_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/new.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/fancy_pointer_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy_if.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_select.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_unique_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_unique_by_key.cuh diff --git a/build/examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..1d74f452c2342bf071566a2ed2951bcc067b565b --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/transform_input_output_iterator.cu" "examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/transform_input_output_iterator.cu.o" "gcc" "examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/transform_input_output_iterator.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/build.make b/build/examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..3562e4d35fb0cad99881a6478a61f96216fdbd0b --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/flags.make + +examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/transform_input_output_iterator.cu.o: examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/flags.make +examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/transform_input_output_iterator.cu.o: examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/includes_CUDA.rsp +examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/transform_input_output_iterator.cu.o: /home/ubuntu/thrust/examples/transform_input_output_iterator.cu +examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/transform_input_output_iterator.cu.o: examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/transform_input_output_iterator.cu.o" + cd /home/ubuntu/thrust/build/examples && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/transform_input_output_iterator.cu.o -MF CMakeFiles/thrust.example.transform_input_output_iterator.dir/transform_input_output_iterator.cu.o.d -x cu -c /home/ubuntu/thrust/examples/transform_input_output_iterator.cu -o CMakeFiles/thrust.example.transform_input_output_iterator.dir/transform_input_output_iterator.cu.o + +examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/transform_input_output_iterator.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.transform_input_output_iterator.dir/transform_input_output_iterator.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/transform_input_output_iterator.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.transform_input_output_iterator.dir/transform_input_output_iterator.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.transform_input_output_iterator +thrust_example_transform_input_output_iterator_OBJECTS = \ +"CMakeFiles/thrust.example.transform_input_output_iterator.dir/transform_input_output_iterator.cu.o" + +# External object files for target thrust.example.transform_input_output_iterator +thrust_example_transform_input_output_iterator_EXTERNAL_OBJECTS = + +bin/thrust.example.transform_input_output_iterator: examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/transform_input_output_iterator.cu.o +bin/thrust.example.transform_input_output_iterator: examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/build.make +bin/thrust.example.transform_input_output_iterator: examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/linkLibs.rsp +bin/thrust.example.transform_input_output_iterator: examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/objects1.rsp +bin/thrust.example.transform_input_output_iterator: examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../bin/thrust.example.transform_input_output_iterator" + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.transform_input_output_iterator.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/build: bin/thrust.example.transform_input_output_iterator +.PHONY : examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/build + +examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.transform_input_output_iterator.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/clean + +examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..11b8bcbd46aa921ea2532ab1ff4185e23e1d3736 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../bin/thrust.example.transform_input_output_iterator" + "../bin/thrust.example.transform_input_output_iterator.pdb" + "CMakeFiles/thrust.example.transform_input_output_iterator.dir/transform_input_output_iterator.cu.o" + "CMakeFiles/thrust.example.transform_input_output_iterator.dir/transform_input_output_iterator.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.transform_input_output_iterator.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..e37d517a5e6e184d45b374a76205f8ea9b749ed2 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.transform_input_output_iterator. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..e5bb6a6f3779f9bbffd26bc7a16d1b402c393860 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.transform_input_output_iterator. diff --git a/build/examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/depend.make b/build/examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..afcf8729e0017b841fb1f1354d04e71744aa6c1a --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.transform_input_output_iterator. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/flags.make b/build/examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..5d44fdd58441f0be4e4436451f9653ce51c28fdb --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.transform_input_output_iterator.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/includes_CUDA.rsp b/build/examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/link.txt b/build/examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..b0dd078e98ab7d55238e4426a732bb6da757fbe6 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.transform_input_output_iterator.dir/objects1.rsp -o ../bin/thrust.example.transform_input_output_iterator @CMakeFiles/thrust.example.transform_input_output_iterator.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/linkLibs.rsp b/build/examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/objects1.rsp b/build/examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d9669f35f4481c81666f1c9cffc643b605a0da52 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.transform_input_output_iterator.dir/transform_input_output_iterator.cu.o diff --git a/build/examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/progress.make b/build/examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..6c287f17b23171ee8abc97d23b8f8a3bfa7225de --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = + diff --git a/build/examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/transform_input_output_iterator.cu.o b/build/examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/transform_input_output_iterator.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..d2bba3df85b16686a738255f7bf6a6e5200bf012 Binary files /dev/null and b/build/examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/transform_input_output_iterator.cu.o differ diff --git a/build/examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/transform_input_output_iterator.cu.o.d b/build/examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/transform_input_output_iterator.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..7157ad8cbf1e5d107150445fc7f68ccd98bfd463 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/transform_input_output_iterator.cu.o.d @@ -0,0 +1,791 @@ +examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/transform_input_output_iterator.cu.o : /home/ubuntu/thrust/examples/transform_input_output_iterator.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/host_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cstdio \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/invoke.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/reverse_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /usr/include/c++/9/limits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /usr/include/c++/9/iostream \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /usr/include/c++/9/vector \ + /usr/include/c++/9/bits/stl_vector.h \ + /usr/include/c++/9/bits/stl_bvector.h \ + /usr/include/c++/9/bits/vector.tcc \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/overlapped_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/iterator/is_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/permutation_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/permutation_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cstdint.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/dispatch.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/single_pass_scan_operators.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/cpp_compatibility.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_queue.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_math.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_discontinuity.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/minmax.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mpl/math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/make_unsigned_special.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/choose_offset.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking_commutative_only.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_warp_reductions.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_even_share.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_mapping.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/arg_index_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/constant_input_iterator.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/counting_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/counting_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/numeric_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_ptr.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/validator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/polymorphic_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/device_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/host_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/new.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/fancy_pointer_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/gather.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/gather.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/gather.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/gather.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/gather.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/gather.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/gather.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_input_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_input_output_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/sequence.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/sequence.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tabulate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tabulate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/sequence.h diff --git a/build/examples/CMakeFiles/thrust.example.transform_iterator.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.example.transform_iterator.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..ce62508a141f95f13f4714e59f253cbc47b7cc33 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.transform_iterator.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/transform_iterator.cu" "examples/CMakeFiles/thrust.example.transform_iterator.dir/transform_iterator.cu.o" "gcc" "examples/CMakeFiles/thrust.example.transform_iterator.dir/transform_iterator.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.example.transform_iterator.dir/build.make b/build/examples/CMakeFiles/thrust.example.transform_iterator.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..57e9116b4895c732e1ccc97ead37131826495b83 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.transform_iterator.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/CMakeFiles/thrust.example.transform_iterator.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/CMakeFiles/thrust.example.transform_iterator.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.example.transform_iterator.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/CMakeFiles/thrust.example.transform_iterator.dir/flags.make + +examples/CMakeFiles/thrust.example.transform_iterator.dir/transform_iterator.cu.o: examples/CMakeFiles/thrust.example.transform_iterator.dir/flags.make +examples/CMakeFiles/thrust.example.transform_iterator.dir/transform_iterator.cu.o: examples/CMakeFiles/thrust.example.transform_iterator.dir/includes_CUDA.rsp +examples/CMakeFiles/thrust.example.transform_iterator.dir/transform_iterator.cu.o: /home/ubuntu/thrust/examples/transform_iterator.cu +examples/CMakeFiles/thrust.example.transform_iterator.dir/transform_iterator.cu.o: examples/CMakeFiles/thrust.example.transform_iterator.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/CMakeFiles/thrust.example.transform_iterator.dir/transform_iterator.cu.o" + cd /home/ubuntu/thrust/build/examples && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/CMakeFiles/thrust.example.transform_iterator.dir/transform_iterator.cu.o -MF CMakeFiles/thrust.example.transform_iterator.dir/transform_iterator.cu.o.d -x cu -c /home/ubuntu/thrust/examples/transform_iterator.cu -o CMakeFiles/thrust.example.transform_iterator.dir/transform_iterator.cu.o + +examples/CMakeFiles/thrust.example.transform_iterator.dir/transform_iterator.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.transform_iterator.dir/transform_iterator.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/CMakeFiles/thrust.example.transform_iterator.dir/transform_iterator.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.transform_iterator.dir/transform_iterator.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.transform_iterator +thrust_example_transform_iterator_OBJECTS = \ +"CMakeFiles/thrust.example.transform_iterator.dir/transform_iterator.cu.o" + +# External object files for target thrust.example.transform_iterator +thrust_example_transform_iterator_EXTERNAL_OBJECTS = + +bin/thrust.example.transform_iterator: examples/CMakeFiles/thrust.example.transform_iterator.dir/transform_iterator.cu.o +bin/thrust.example.transform_iterator: examples/CMakeFiles/thrust.example.transform_iterator.dir/build.make +bin/thrust.example.transform_iterator: examples/CMakeFiles/thrust.example.transform_iterator.dir/linkLibs.rsp +bin/thrust.example.transform_iterator: examples/CMakeFiles/thrust.example.transform_iterator.dir/objects1.rsp +bin/thrust.example.transform_iterator: examples/CMakeFiles/thrust.example.transform_iterator.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../bin/thrust.example.transform_iterator" + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.transform_iterator.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.example.transform_iterator.dir/build: bin/thrust.example.transform_iterator +.PHONY : examples/CMakeFiles/thrust.example.transform_iterator.dir/build + +examples/CMakeFiles/thrust.example.transform_iterator.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.transform_iterator.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.example.transform_iterator.dir/clean + +examples/CMakeFiles/thrust.example.transform_iterator.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.transform_iterator.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.example.transform_iterator.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.example.transform_iterator.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.example.transform_iterator.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..f09ff9bf20eb22b432bbf4144077ca7035f83d91 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.transform_iterator.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../bin/thrust.example.transform_iterator" + "../bin/thrust.example.transform_iterator.pdb" + "CMakeFiles/thrust.example.transform_iterator.dir/transform_iterator.cu.o" + "CMakeFiles/thrust.example.transform_iterator.dir/transform_iterator.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.transform_iterator.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.example.transform_iterator.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.example.transform_iterator.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..5cd9956e484b8b13eb7848b4faccf74f1738b023 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.transform_iterator.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.transform_iterator. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.transform_iterator.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.example.transform_iterator.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..f98eb78138def23dff46409e47479d1730bc8bdb --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.transform_iterator.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.transform_iterator. diff --git a/build/examples/CMakeFiles/thrust.example.transform_iterator.dir/depend.make b/build/examples/CMakeFiles/thrust.example.transform_iterator.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..56176f213ac3696e628b836e6f81b24bb14120f9 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.transform_iterator.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.transform_iterator. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.transform_iterator.dir/flags.make b/build/examples/CMakeFiles/thrust.example.transform_iterator.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..0236a494cc1e9ff495546e9581ad956e955983e2 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.transform_iterator.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.transform_iterator.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/CMakeFiles/thrust.example.transform_iterator.dir/includes_CUDA.rsp b/build/examples/CMakeFiles/thrust.example.transform_iterator.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.transform_iterator.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/CMakeFiles/thrust.example.transform_iterator.dir/link.txt b/build/examples/CMakeFiles/thrust.example.transform_iterator.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..c7fdb4b57e9772ca7d0f7a7b60dd95e069ae0f20 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.transform_iterator.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.transform_iterator.dir/objects1.rsp -o ../bin/thrust.example.transform_iterator @CMakeFiles/thrust.example.transform_iterator.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/CMakeFiles/thrust.example.transform_iterator.dir/linkLibs.rsp b/build/examples/CMakeFiles/thrust.example.transform_iterator.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.transform_iterator.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/CMakeFiles/thrust.example.transform_iterator.dir/objects1.rsp b/build/examples/CMakeFiles/thrust.example.transform_iterator.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..1a48695df68f401f7dd70d59b990814362309eef --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.transform_iterator.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.transform_iterator.dir/transform_iterator.cu.o diff --git a/build/examples/CMakeFiles/thrust.example.transform_iterator.dir/progress.make b/build/examples/CMakeFiles/thrust.example.transform_iterator.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..6c287f17b23171ee8abc97d23b8f8a3bfa7225de --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.transform_iterator.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = + diff --git a/build/examples/CMakeFiles/thrust.example.transform_iterator.dir/transform_iterator.cu.o b/build/examples/CMakeFiles/thrust.example.transform_iterator.dir/transform_iterator.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..73aca453826800e18cd9ce11103097d5814268a2 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.transform_iterator.dir/transform_iterator.cu.o @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d9db58717bbf4418abee3557e5fc28d81489e4e6d997bfdefaa977f48c5a286a +size 1976960 diff --git a/build/examples/CMakeFiles/thrust.example.transform_iterator.dir/transform_iterator.cu.o.d b/build/examples/CMakeFiles/thrust.example.transform_iterator.dir/transform_iterator.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..4a209296b1d2e5c9cf480dadfa48f152bed3fa58 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.transform_iterator.dir/transform_iterator.cu.o.d @@ -0,0 +1,767 @@ +examples/CMakeFiles/thrust.example.transform_iterator.dir/transform_iterator.cu.o : /home/ubuntu/thrust/examples/transform_iterator.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /usr/include/c++/9/cstdio \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/invoke.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/counting_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/counting_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/numeric_traits.h \ + /usr/include/c++/9/limits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/reverse_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /usr/include/c++/9/iostream \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /usr/include/c++/9/vector \ + /usr/include/c++/9/bits/stl_vector.h \ + /usr/include/c++/9/bits/stl_bvector.h \ + /usr/include/c++/9/bits/vector.tcc \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/overlapped_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/iterator/is_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/permutation_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/permutation_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cstdint.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/dispatch.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/single_pass_scan_operators.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/cpp_compatibility.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_queue.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_math.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_discontinuity.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/minmax.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mpl/math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/make_unsigned_special.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/choose_offset.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking_commutative_only.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_warp_reductions.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_even_share.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_mapping.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/arg_index_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/constant_input_iterator.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_ptr.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/validator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/polymorphic_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/device_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/host_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/new.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/fancy_pointer_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/pointer.h diff --git a/build/examples/CMakeFiles/thrust.example.transform_output_iterator.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.example.transform_output_iterator.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..88d64dedde1a8d4ae5cc39d5f79f52ff0e928282 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.transform_output_iterator.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/transform_output_iterator.cu" "examples/CMakeFiles/thrust.example.transform_output_iterator.dir/transform_output_iterator.cu.o" "gcc" "examples/CMakeFiles/thrust.example.transform_output_iterator.dir/transform_output_iterator.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.example.transform_output_iterator.dir/build.make b/build/examples/CMakeFiles/thrust.example.transform_output_iterator.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..1090ec9eda1b5cf65e4d57f4ee048206f332ba3a --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.transform_output_iterator.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/CMakeFiles/thrust.example.transform_output_iterator.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/CMakeFiles/thrust.example.transform_output_iterator.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.example.transform_output_iterator.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/CMakeFiles/thrust.example.transform_output_iterator.dir/flags.make + +examples/CMakeFiles/thrust.example.transform_output_iterator.dir/transform_output_iterator.cu.o: examples/CMakeFiles/thrust.example.transform_output_iterator.dir/flags.make +examples/CMakeFiles/thrust.example.transform_output_iterator.dir/transform_output_iterator.cu.o: examples/CMakeFiles/thrust.example.transform_output_iterator.dir/includes_CUDA.rsp +examples/CMakeFiles/thrust.example.transform_output_iterator.dir/transform_output_iterator.cu.o: /home/ubuntu/thrust/examples/transform_output_iterator.cu +examples/CMakeFiles/thrust.example.transform_output_iterator.dir/transform_output_iterator.cu.o: examples/CMakeFiles/thrust.example.transform_output_iterator.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/CMakeFiles/thrust.example.transform_output_iterator.dir/transform_output_iterator.cu.o" + cd /home/ubuntu/thrust/build/examples && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/CMakeFiles/thrust.example.transform_output_iterator.dir/transform_output_iterator.cu.o -MF CMakeFiles/thrust.example.transform_output_iterator.dir/transform_output_iterator.cu.o.d -x cu -c /home/ubuntu/thrust/examples/transform_output_iterator.cu -o CMakeFiles/thrust.example.transform_output_iterator.dir/transform_output_iterator.cu.o + +examples/CMakeFiles/thrust.example.transform_output_iterator.dir/transform_output_iterator.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.transform_output_iterator.dir/transform_output_iterator.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/CMakeFiles/thrust.example.transform_output_iterator.dir/transform_output_iterator.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.transform_output_iterator.dir/transform_output_iterator.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.transform_output_iterator +thrust_example_transform_output_iterator_OBJECTS = \ +"CMakeFiles/thrust.example.transform_output_iterator.dir/transform_output_iterator.cu.o" + +# External object files for target thrust.example.transform_output_iterator +thrust_example_transform_output_iterator_EXTERNAL_OBJECTS = + +bin/thrust.example.transform_output_iterator: examples/CMakeFiles/thrust.example.transform_output_iterator.dir/transform_output_iterator.cu.o +bin/thrust.example.transform_output_iterator: examples/CMakeFiles/thrust.example.transform_output_iterator.dir/build.make +bin/thrust.example.transform_output_iterator: examples/CMakeFiles/thrust.example.transform_output_iterator.dir/linkLibs.rsp +bin/thrust.example.transform_output_iterator: examples/CMakeFiles/thrust.example.transform_output_iterator.dir/objects1.rsp +bin/thrust.example.transform_output_iterator: examples/CMakeFiles/thrust.example.transform_output_iterator.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../bin/thrust.example.transform_output_iterator" + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.transform_output_iterator.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.example.transform_output_iterator.dir/build: bin/thrust.example.transform_output_iterator +.PHONY : examples/CMakeFiles/thrust.example.transform_output_iterator.dir/build + +examples/CMakeFiles/thrust.example.transform_output_iterator.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.transform_output_iterator.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.example.transform_output_iterator.dir/clean + +examples/CMakeFiles/thrust.example.transform_output_iterator.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.transform_output_iterator.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.example.transform_output_iterator.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.example.transform_output_iterator.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.example.transform_output_iterator.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..4ba2f7d19d76030bebd260bd7ad596e4cf36238c --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.transform_output_iterator.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../bin/thrust.example.transform_output_iterator" + "../bin/thrust.example.transform_output_iterator.pdb" + "CMakeFiles/thrust.example.transform_output_iterator.dir/transform_output_iterator.cu.o" + "CMakeFiles/thrust.example.transform_output_iterator.dir/transform_output_iterator.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.transform_output_iterator.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.example.transform_output_iterator.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.example.transform_output_iterator.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..e30a7c2e9fe24aff3be0b90cc6b4201a677a81e6 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.transform_output_iterator.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.transform_output_iterator. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.transform_output_iterator.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.example.transform_output_iterator.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..9de71715eea1fdc5e49a1261d20cb6a2865faad3 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.transform_output_iterator.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.transform_output_iterator. diff --git a/build/examples/CMakeFiles/thrust.example.transform_output_iterator.dir/depend.make b/build/examples/CMakeFiles/thrust.example.transform_output_iterator.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..ce86d8f16d3d6c864ca2ce231010e77be0796311 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.transform_output_iterator.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.transform_output_iterator. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.transform_output_iterator.dir/flags.make b/build/examples/CMakeFiles/thrust.example.transform_output_iterator.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..a7c094baf052b67f632b32ba865bbe582cef370a --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.transform_output_iterator.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.transform_output_iterator.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/CMakeFiles/thrust.example.transform_output_iterator.dir/includes_CUDA.rsp b/build/examples/CMakeFiles/thrust.example.transform_output_iterator.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.transform_output_iterator.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/CMakeFiles/thrust.example.transform_output_iterator.dir/link.txt b/build/examples/CMakeFiles/thrust.example.transform_output_iterator.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..e4ff94c77889b524d453cf448638986864f31c23 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.transform_output_iterator.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.transform_output_iterator.dir/objects1.rsp -o ../bin/thrust.example.transform_output_iterator @CMakeFiles/thrust.example.transform_output_iterator.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/CMakeFiles/thrust.example.transform_output_iterator.dir/linkLibs.rsp b/build/examples/CMakeFiles/thrust.example.transform_output_iterator.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.transform_output_iterator.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/CMakeFiles/thrust.example.transform_output_iterator.dir/objects1.rsp b/build/examples/CMakeFiles/thrust.example.transform_output_iterator.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..c8bdc3f57d821f50280a8c2a0bf6c29296fb79e3 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.transform_output_iterator.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.transform_output_iterator.dir/transform_output_iterator.cu.o diff --git a/build/examples/CMakeFiles/thrust.example.transform_output_iterator.dir/progress.make b/build/examples/CMakeFiles/thrust.example.transform_output_iterator.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..6c287f17b23171ee8abc97d23b8f8a3bfa7225de --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.transform_output_iterator.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = + diff --git a/build/examples/CMakeFiles/thrust.example.transform_output_iterator.dir/transform_output_iterator.cu.o b/build/examples/CMakeFiles/thrust.example.transform_output_iterator.dir/transform_output_iterator.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..c92bb9e5db2ef42d642f5cda4bfea20ffb86b49f Binary files /dev/null and b/build/examples/CMakeFiles/thrust.example.transform_output_iterator.dir/transform_output_iterator.cu.o differ diff --git a/build/examples/CMakeFiles/thrust.example.transform_output_iterator.dir/transform_output_iterator.cu.o.d b/build/examples/CMakeFiles/thrust.example.transform_output_iterator.dir/transform_output_iterator.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..3dea74a55a202f9c0ee20e1ab40946e8e07a9b25 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.transform_output_iterator.dir/transform_output_iterator.cu.o.d @@ -0,0 +1,776 @@ +examples/CMakeFiles/thrust.example.transform_output_iterator.dir/transform_output_iterator.cu.o : /home/ubuntu/thrust/examples/transform_output_iterator.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /usr/include/c++/9/cstdio \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/invoke.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/reverse_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /usr/include/c++/9/limits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /usr/include/c++/9/iostream \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /usr/include/c++/9/vector \ + /usr/include/c++/9/bits/stl_vector.h \ + /usr/include/c++/9/bits/stl_bvector.h \ + /usr/include/c++/9/bits/vector.tcc \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/overlapped_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/iterator/is_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/permutation_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/permutation_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cstdint.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/dispatch.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/single_pass_scan_operators.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/cpp_compatibility.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_queue.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_math.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_discontinuity.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/minmax.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mpl/math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/make_unsigned_special.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/choose_offset.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking_commutative_only.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_warp_reductions.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_even_share.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_mapping.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/arg_index_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/constant_input_iterator.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/counting_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/counting_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/numeric_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_ptr.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/validator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/polymorphic_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/device_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/host_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/new.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/fancy_pointer_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/gather.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/gather.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/gather.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/gather.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/gather.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/gather.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/gather.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_output_iterator.inl diff --git a/build/examples/CMakeFiles/thrust.example.uninitialized_vector.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.example.uninitialized_vector.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..e1526c237adb7f8872d253511763f3356eb7f618 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.uninitialized_vector.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/uninitialized_vector.cu" "examples/CMakeFiles/thrust.example.uninitialized_vector.dir/uninitialized_vector.cu.o" "gcc" "examples/CMakeFiles/thrust.example.uninitialized_vector.dir/uninitialized_vector.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.example.uninitialized_vector.dir/build.make b/build/examples/CMakeFiles/thrust.example.uninitialized_vector.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..164e2b8056312b9e6c89572dec5d89ddb86096d5 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.uninitialized_vector.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/CMakeFiles/thrust.example.uninitialized_vector.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/CMakeFiles/thrust.example.uninitialized_vector.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.example.uninitialized_vector.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/CMakeFiles/thrust.example.uninitialized_vector.dir/flags.make + +examples/CMakeFiles/thrust.example.uninitialized_vector.dir/uninitialized_vector.cu.o: examples/CMakeFiles/thrust.example.uninitialized_vector.dir/flags.make +examples/CMakeFiles/thrust.example.uninitialized_vector.dir/uninitialized_vector.cu.o: examples/CMakeFiles/thrust.example.uninitialized_vector.dir/includes_CUDA.rsp +examples/CMakeFiles/thrust.example.uninitialized_vector.dir/uninitialized_vector.cu.o: /home/ubuntu/thrust/examples/uninitialized_vector.cu +examples/CMakeFiles/thrust.example.uninitialized_vector.dir/uninitialized_vector.cu.o: examples/CMakeFiles/thrust.example.uninitialized_vector.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/CMakeFiles/thrust.example.uninitialized_vector.dir/uninitialized_vector.cu.o" + cd /home/ubuntu/thrust/build/examples && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/CMakeFiles/thrust.example.uninitialized_vector.dir/uninitialized_vector.cu.o -MF CMakeFiles/thrust.example.uninitialized_vector.dir/uninitialized_vector.cu.o.d -x cu -c /home/ubuntu/thrust/examples/uninitialized_vector.cu -o CMakeFiles/thrust.example.uninitialized_vector.dir/uninitialized_vector.cu.o + +examples/CMakeFiles/thrust.example.uninitialized_vector.dir/uninitialized_vector.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.uninitialized_vector.dir/uninitialized_vector.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/CMakeFiles/thrust.example.uninitialized_vector.dir/uninitialized_vector.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.uninitialized_vector.dir/uninitialized_vector.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.uninitialized_vector +thrust_example_uninitialized_vector_OBJECTS = \ +"CMakeFiles/thrust.example.uninitialized_vector.dir/uninitialized_vector.cu.o" + +# External object files for target thrust.example.uninitialized_vector +thrust_example_uninitialized_vector_EXTERNAL_OBJECTS = + +bin/thrust.example.uninitialized_vector: examples/CMakeFiles/thrust.example.uninitialized_vector.dir/uninitialized_vector.cu.o +bin/thrust.example.uninitialized_vector: examples/CMakeFiles/thrust.example.uninitialized_vector.dir/build.make +bin/thrust.example.uninitialized_vector: examples/CMakeFiles/thrust.example.uninitialized_vector.dir/linkLibs.rsp +bin/thrust.example.uninitialized_vector: examples/CMakeFiles/thrust.example.uninitialized_vector.dir/objects1.rsp +bin/thrust.example.uninitialized_vector: examples/CMakeFiles/thrust.example.uninitialized_vector.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../bin/thrust.example.uninitialized_vector" + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.uninitialized_vector.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.example.uninitialized_vector.dir/build: bin/thrust.example.uninitialized_vector +.PHONY : examples/CMakeFiles/thrust.example.uninitialized_vector.dir/build + +examples/CMakeFiles/thrust.example.uninitialized_vector.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.uninitialized_vector.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.example.uninitialized_vector.dir/clean + +examples/CMakeFiles/thrust.example.uninitialized_vector.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.uninitialized_vector.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.example.uninitialized_vector.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.example.uninitialized_vector.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.example.uninitialized_vector.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..8bf6fd6a4b4c1b0f6bff1bd0597c86f682644894 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.uninitialized_vector.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../bin/thrust.example.uninitialized_vector" + "../bin/thrust.example.uninitialized_vector.pdb" + "CMakeFiles/thrust.example.uninitialized_vector.dir/uninitialized_vector.cu.o" + "CMakeFiles/thrust.example.uninitialized_vector.dir/uninitialized_vector.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.uninitialized_vector.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.example.uninitialized_vector.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.example.uninitialized_vector.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..0cb6ce779fc30eb1cd4dc1fa626150b51bcc0a15 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.uninitialized_vector.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.uninitialized_vector. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.uninitialized_vector.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.example.uninitialized_vector.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..4a518f059548c811e213db4386abf637f7fb1ebe --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.uninitialized_vector.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.uninitialized_vector. diff --git a/build/examples/CMakeFiles/thrust.example.uninitialized_vector.dir/depend.make b/build/examples/CMakeFiles/thrust.example.uninitialized_vector.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..a4f24b8ea21cd4a85b1ce1af18095144d5913f12 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.uninitialized_vector.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.uninitialized_vector. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.uninitialized_vector.dir/flags.make b/build/examples/CMakeFiles/thrust.example.uninitialized_vector.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..2399dabe12cf8c4931ab6755f5c0d365f09d2927 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.uninitialized_vector.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.uninitialized_vector.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/CMakeFiles/thrust.example.uninitialized_vector.dir/includes_CUDA.rsp b/build/examples/CMakeFiles/thrust.example.uninitialized_vector.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.uninitialized_vector.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/CMakeFiles/thrust.example.uninitialized_vector.dir/link.txt b/build/examples/CMakeFiles/thrust.example.uninitialized_vector.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..86fe7b79b2dbaf03f0cd232db2f04f96644236d1 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.uninitialized_vector.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.uninitialized_vector.dir/objects1.rsp -o ../bin/thrust.example.uninitialized_vector @CMakeFiles/thrust.example.uninitialized_vector.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/CMakeFiles/thrust.example.uninitialized_vector.dir/linkLibs.rsp b/build/examples/CMakeFiles/thrust.example.uninitialized_vector.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.uninitialized_vector.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/CMakeFiles/thrust.example.uninitialized_vector.dir/objects1.rsp b/build/examples/CMakeFiles/thrust.example.uninitialized_vector.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..bb494f2625eb2a7aa73c9eb597dcc1e37ffb2b94 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.uninitialized_vector.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.uninitialized_vector.dir/uninitialized_vector.cu.o diff --git a/build/examples/CMakeFiles/thrust.example.uninitialized_vector.dir/progress.make b/build/examples/CMakeFiles/thrust.example.uninitialized_vector.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..05fbf5971531dffde457871aad6038ba5e96703b --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.uninitialized_vector.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = 49 + diff --git a/build/examples/CMakeFiles/thrust.example.uninitialized_vector.dir/uninitialized_vector.cu.o b/build/examples/CMakeFiles/thrust.example.uninitialized_vector.dir/uninitialized_vector.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..c82fdc8642284a597fc0601d6aa204a7d86977aa Binary files /dev/null and b/build/examples/CMakeFiles/thrust.example.uninitialized_vector.dir/uninitialized_vector.cu.o differ diff --git a/build/examples/CMakeFiles/thrust.example.uninitialized_vector.dir/uninitialized_vector.cu.o.d b/build/examples/CMakeFiles/thrust.example.uninitialized_vector.dir/uninitialized_vector.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..b526a99e66d9b99074c1ae238db0579fc4a8c60a --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.uninitialized_vector.dir/uninitialized_vector.cu.o.d @@ -0,0 +1,772 @@ +examples/CMakeFiles/thrust.example.uninitialized_vector.dir/uninitialized_vector.cu.o : /home/ubuntu/thrust/examples/uninitialized_vector.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cstdio \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/invoke.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /usr/include/c++/9/iostream \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/c++/9/limits \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_ptr.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/validator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/polymorphic_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/device_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/host_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/new.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/fancy_pointer_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/reverse_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator.inl \ + /usr/include/c++/9/vector \ + /usr/include/c++/9/bits/stl_vector.h \ + /usr/include/c++/9/bits/stl_bvector.h \ + /usr/include/c++/9/bits/vector.tcc \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/overlapped_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/iterator/is_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/permutation_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/permutation_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cstdint.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/dispatch.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/single_pass_scan_operators.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/cpp_compatibility.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_queue.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_math.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_discontinuity.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/minmax.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mpl/math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/make_unsigned_special.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/choose_offset.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking_commutative_only.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_warp_reductions.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_even_share.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_mapping.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/arg_index_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/constant_input_iterator.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/counting_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/counting_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/numeric_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/logical.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/logical.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/logical.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/logical.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/logical.h diff --git a/build/examples/CMakeFiles/thrust.example.version.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.example.version.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..31cba8f38c4fa09c462da40937716c32f5a752b2 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.version.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/version.cu" "examples/CMakeFiles/thrust.example.version.dir/version.cu.o" "gcc" "examples/CMakeFiles/thrust.example.version.dir/version.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.example.version.dir/build.make b/build/examples/CMakeFiles/thrust.example.version.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..409df48ec555da9f6c236c557cbd50ea575ad615 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.version.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/CMakeFiles/thrust.example.version.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/CMakeFiles/thrust.example.version.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.example.version.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/CMakeFiles/thrust.example.version.dir/flags.make + +examples/CMakeFiles/thrust.example.version.dir/version.cu.o: examples/CMakeFiles/thrust.example.version.dir/flags.make +examples/CMakeFiles/thrust.example.version.dir/version.cu.o: examples/CMakeFiles/thrust.example.version.dir/includes_CUDA.rsp +examples/CMakeFiles/thrust.example.version.dir/version.cu.o: /home/ubuntu/thrust/examples/version.cu +examples/CMakeFiles/thrust.example.version.dir/version.cu.o: examples/CMakeFiles/thrust.example.version.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/CMakeFiles/thrust.example.version.dir/version.cu.o" + cd /home/ubuntu/thrust/build/examples && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/CMakeFiles/thrust.example.version.dir/version.cu.o -MF CMakeFiles/thrust.example.version.dir/version.cu.o.d -x cu -c /home/ubuntu/thrust/examples/version.cu -o CMakeFiles/thrust.example.version.dir/version.cu.o + +examples/CMakeFiles/thrust.example.version.dir/version.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.version.dir/version.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/CMakeFiles/thrust.example.version.dir/version.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.version.dir/version.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.version +thrust_example_version_OBJECTS = \ +"CMakeFiles/thrust.example.version.dir/version.cu.o" + +# External object files for target thrust.example.version +thrust_example_version_EXTERNAL_OBJECTS = + +bin/thrust.example.version: examples/CMakeFiles/thrust.example.version.dir/version.cu.o +bin/thrust.example.version: examples/CMakeFiles/thrust.example.version.dir/build.make +bin/thrust.example.version: examples/CMakeFiles/thrust.example.version.dir/linkLibs.rsp +bin/thrust.example.version: examples/CMakeFiles/thrust.example.version.dir/objects1.rsp +bin/thrust.example.version: examples/CMakeFiles/thrust.example.version.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../bin/thrust.example.version" + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.version.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.example.version.dir/build: bin/thrust.example.version +.PHONY : examples/CMakeFiles/thrust.example.version.dir/build + +examples/CMakeFiles/thrust.example.version.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.version.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.example.version.dir/clean + +examples/CMakeFiles/thrust.example.version.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.version.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.example.version.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.example.version.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.example.version.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..22f38a630fe49136bcb4a105f8a16d293a66420f --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.version.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../bin/thrust.example.version" + "../bin/thrust.example.version.pdb" + "CMakeFiles/thrust.example.version.dir/version.cu.o" + "CMakeFiles/thrust.example.version.dir/version.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.version.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.example.version.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.example.version.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..462f62311bd2c0bd0cfdb16d6f740237b536b464 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.version.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.version. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.version.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.example.version.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..a7b6c56dce5f7a0c442d78b91d209633e3fdc4e9 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.version.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.version. diff --git a/build/examples/CMakeFiles/thrust.example.version.dir/depend.make b/build/examples/CMakeFiles/thrust.example.version.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..4fea14b858230315bc38c9b47bfff0aa0df14e0c --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.version.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.version. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.version.dir/flags.make b/build/examples/CMakeFiles/thrust.example.version.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..ae770d1424361ece8e1d6aa91eae494415482cd1 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.version.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.version.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/CMakeFiles/thrust.example.version.dir/includes_CUDA.rsp b/build/examples/CMakeFiles/thrust.example.version.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.version.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/CMakeFiles/thrust.example.version.dir/link.txt b/build/examples/CMakeFiles/thrust.example.version.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..4af793faf21d253c9cc64e41a0d4ef4f99fc502f --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.version.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.version.dir/objects1.rsp -o ../bin/thrust.example.version @CMakeFiles/thrust.example.version.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/CMakeFiles/thrust.example.version.dir/linkLibs.rsp b/build/examples/CMakeFiles/thrust.example.version.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.version.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/CMakeFiles/thrust.example.version.dir/objects1.rsp b/build/examples/CMakeFiles/thrust.example.version.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..4b18858638ebadc44b39641b30cd2a8797b74bee --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.version.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.version.dir/version.cu.o diff --git a/build/examples/CMakeFiles/thrust.example.version.dir/progress.make b/build/examples/CMakeFiles/thrust.example.version.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..6c287f17b23171ee8abc97d23b8f8a3bfa7225de --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.version.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = + diff --git a/build/examples/CMakeFiles/thrust.example.version.dir/version.cu.o b/build/examples/CMakeFiles/thrust.example.version.dir/version.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..52f731fe1d8406b12951ccbaac04e782fbaf0aba Binary files /dev/null and b/build/examples/CMakeFiles/thrust.example.version.dir/version.cu.o differ diff --git a/build/examples/CMakeFiles/thrust.example.version.dir/version.cu.o.d b/build/examples/CMakeFiles/thrust.example.version.dir/version.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..54caef84ef037639e805f568fe6bf9b6c61aad99 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.version.dir/version.cu.o.d @@ -0,0 +1,264 @@ +examples/CMakeFiles/thrust.example.version.dir/version.cu.o : /home/ubuntu/thrust/examples/version.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /usr/include/c++/9/iostream \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cstdio \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc diff --git a/build/examples/CMakeFiles/thrust.example.weld_vertices.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.example.weld_vertices.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..17a518431f3bdf4675304912b05e56592ed0c464 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.weld_vertices.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/weld_vertices.cu" "examples/CMakeFiles/thrust.example.weld_vertices.dir/weld_vertices.cu.o" "gcc" "examples/CMakeFiles/thrust.example.weld_vertices.dir/weld_vertices.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.example.weld_vertices.dir/build.make b/build/examples/CMakeFiles/thrust.example.weld_vertices.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..b117f728754f6dd0c42b96e9d0041f938c860fb6 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.weld_vertices.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/CMakeFiles/thrust.example.weld_vertices.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/CMakeFiles/thrust.example.weld_vertices.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.example.weld_vertices.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/CMakeFiles/thrust.example.weld_vertices.dir/flags.make + +examples/CMakeFiles/thrust.example.weld_vertices.dir/weld_vertices.cu.o: examples/CMakeFiles/thrust.example.weld_vertices.dir/flags.make +examples/CMakeFiles/thrust.example.weld_vertices.dir/weld_vertices.cu.o: examples/CMakeFiles/thrust.example.weld_vertices.dir/includes_CUDA.rsp +examples/CMakeFiles/thrust.example.weld_vertices.dir/weld_vertices.cu.o: /home/ubuntu/thrust/examples/weld_vertices.cu +examples/CMakeFiles/thrust.example.weld_vertices.dir/weld_vertices.cu.o: examples/CMakeFiles/thrust.example.weld_vertices.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/CMakeFiles/thrust.example.weld_vertices.dir/weld_vertices.cu.o" + cd /home/ubuntu/thrust/build/examples && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/CMakeFiles/thrust.example.weld_vertices.dir/weld_vertices.cu.o -MF CMakeFiles/thrust.example.weld_vertices.dir/weld_vertices.cu.o.d -x cu -c /home/ubuntu/thrust/examples/weld_vertices.cu -o CMakeFiles/thrust.example.weld_vertices.dir/weld_vertices.cu.o + +examples/CMakeFiles/thrust.example.weld_vertices.dir/weld_vertices.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.weld_vertices.dir/weld_vertices.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/CMakeFiles/thrust.example.weld_vertices.dir/weld_vertices.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.weld_vertices.dir/weld_vertices.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.weld_vertices +thrust_example_weld_vertices_OBJECTS = \ +"CMakeFiles/thrust.example.weld_vertices.dir/weld_vertices.cu.o" + +# External object files for target thrust.example.weld_vertices +thrust_example_weld_vertices_EXTERNAL_OBJECTS = + +bin/thrust.example.weld_vertices: examples/CMakeFiles/thrust.example.weld_vertices.dir/weld_vertices.cu.o +bin/thrust.example.weld_vertices: examples/CMakeFiles/thrust.example.weld_vertices.dir/build.make +bin/thrust.example.weld_vertices: examples/CMakeFiles/thrust.example.weld_vertices.dir/linkLibs.rsp +bin/thrust.example.weld_vertices: examples/CMakeFiles/thrust.example.weld_vertices.dir/objects1.rsp +bin/thrust.example.weld_vertices: examples/CMakeFiles/thrust.example.weld_vertices.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../bin/thrust.example.weld_vertices" + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.weld_vertices.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.example.weld_vertices.dir/build: bin/thrust.example.weld_vertices +.PHONY : examples/CMakeFiles/thrust.example.weld_vertices.dir/build + +examples/CMakeFiles/thrust.example.weld_vertices.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.weld_vertices.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.example.weld_vertices.dir/clean + +examples/CMakeFiles/thrust.example.weld_vertices.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.weld_vertices.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.example.weld_vertices.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.example.weld_vertices.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.example.weld_vertices.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..dbe63b0d4878ca4bde3a3385e01154736efad93f --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.weld_vertices.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../bin/thrust.example.weld_vertices" + "../bin/thrust.example.weld_vertices.pdb" + "CMakeFiles/thrust.example.weld_vertices.dir/weld_vertices.cu.o" + "CMakeFiles/thrust.example.weld_vertices.dir/weld_vertices.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.weld_vertices.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.example.weld_vertices.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.example.weld_vertices.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..1f6d4f252d121113ae762e72edcb285eca8d7c42 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.weld_vertices.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.weld_vertices. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.weld_vertices.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.example.weld_vertices.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..c033e328a757c70ea4d09aa2dce3615173269d43 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.weld_vertices.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.weld_vertices. diff --git a/build/examples/CMakeFiles/thrust.example.weld_vertices.dir/depend.make b/build/examples/CMakeFiles/thrust.example.weld_vertices.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..7f813ea1bc5a8370a9c541763bd37308d7f445a2 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.weld_vertices.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.weld_vertices. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.weld_vertices.dir/flags.make b/build/examples/CMakeFiles/thrust.example.weld_vertices.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..269d472c38313c362ff3a50fdb1ca79b31314dbb --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.weld_vertices.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.weld_vertices.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/CMakeFiles/thrust.example.weld_vertices.dir/includes_CUDA.rsp b/build/examples/CMakeFiles/thrust.example.weld_vertices.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.weld_vertices.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/CMakeFiles/thrust.example.weld_vertices.dir/link.txt b/build/examples/CMakeFiles/thrust.example.weld_vertices.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..77c6ccb719e3dddeb57b3f2c2b3cb1fb86423eb7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.weld_vertices.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.weld_vertices.dir/objects1.rsp -o ../bin/thrust.example.weld_vertices @CMakeFiles/thrust.example.weld_vertices.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/CMakeFiles/thrust.example.weld_vertices.dir/linkLibs.rsp b/build/examples/CMakeFiles/thrust.example.weld_vertices.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.weld_vertices.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/CMakeFiles/thrust.example.weld_vertices.dir/objects1.rsp b/build/examples/CMakeFiles/thrust.example.weld_vertices.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..6b33672163918abfc014fdc0f9a7ec3c2a63623f --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.weld_vertices.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.weld_vertices.dir/weld_vertices.cu.o diff --git a/build/examples/CMakeFiles/thrust.example.weld_vertices.dir/progress.make b/build/examples/CMakeFiles/thrust.example.weld_vertices.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..6c287f17b23171ee8abc97d23b8f8a3bfa7225de --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.weld_vertices.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = + diff --git a/build/examples/CMakeFiles/thrust.example.weld_vertices.dir/weld_vertices.cu.o b/build/examples/CMakeFiles/thrust.example.weld_vertices.dir/weld_vertices.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..90d6416d9a0eccb034ee66b518d4bfd2c7ab11d1 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.weld_vertices.dir/weld_vertices.cu.o @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fb93284d27be7fdacb013d10f2aebabc85fae182796904ae45f18d245b580556 +size 2999208 diff --git a/build/examples/CMakeFiles/thrust.example.weld_vertices.dir/weld_vertices.cu.o.d b/build/examples/CMakeFiles/thrust.example.weld_vertices.dir/weld_vertices.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..cbd67d02dbda87574d237d631bf7036abde08db2 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.weld_vertices.dir/weld_vertices.cu.o.d @@ -0,0 +1,913 @@ +examples/CMakeFiles/thrust.example.weld_vertices.dir/weld_vertices.cu.o : /home/ubuntu/thrust/examples/weld_vertices.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /usr/include/c++/9/cstdio \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/invoke.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/reverse_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /usr/include/c++/9/limits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /usr/include/c++/9/iostream \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /usr/include/c++/9/vector \ + /usr/include/c++/9/bits/stl_vector.h \ + /usr/include/c++/9/bits/stl_bvector.h \ + /usr/include/c++/9/bits/vector.tcc \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/overlapped_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/iterator/is_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/permutation_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/permutation_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cstdint.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/dispatch.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/single_pass_scan_operators.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/cpp_compatibility.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_queue.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_math.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_discontinuity.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/minmax.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mpl/math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/make_unsigned_special.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/choose_offset.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking_commutative_only.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_warp_reductions.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_even_share.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_mapping.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/arg_index_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/constant_input_iterator.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/counting_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/counting_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/numeric_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_ptr.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/validator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/polymorphic_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/device_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/host_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/new.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/fancy_pointer_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/remove.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/remove.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/remove.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/remove.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy_if.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_select.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_unique_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_unique_by_key.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/remove.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/remove.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/remove.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/remove.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/unique.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/unique.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/unique.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/unique.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/count.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/count.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/count.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/count.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/count.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform_reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform_reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/count.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/count.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/count.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/range/head_flags.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/unique_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/unique_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/unique.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/unique.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/unique.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/unique.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/unique_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/unique_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/unique_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/unique_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/binary_search.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/binary_search.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scalar/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scalar/binary_search.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reverse.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reverse.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_merge_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_merge_sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/merge.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/merge.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/merge.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/extrema.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/extrema.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/get_iterator_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/adjacent_difference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/adjacent_difference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/partition.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/partition.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/set_operations.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/set_operations.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/insertion_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy_backward.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_primitive_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_primitive_sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_radix_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_radix_sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/sequence.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/sequence.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tabulate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tabulate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/trivial_sequence.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_radix_sort.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_radix_sort.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_radix_sort_downsweep.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_radix_rank.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/radix_rank_sort_operations.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/tuple \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_radix_sort_histogram.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_radix_sort_onesweep.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_radix_sort_upsweep.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_radix_sort.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_merge_sort.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_merge_sort.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_merge_sort.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/../block/block_merge_sort.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_sort.cuh diff --git a/build/examples/CMakeFiles/thrust.example.word_count.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.example.word_count.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..925d1c9324f1428dfe686853a61ecc7d1ce2c07e --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.word_count.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/word_count.cu" "examples/CMakeFiles/thrust.example.word_count.dir/word_count.cu.o" "gcc" "examples/CMakeFiles/thrust.example.word_count.dir/word_count.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.example.word_count.dir/build.make b/build/examples/CMakeFiles/thrust.example.word_count.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..df4c9a960e1f936a319a750bd67b1f4db97f2a4f --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.word_count.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/CMakeFiles/thrust.example.word_count.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/CMakeFiles/thrust.example.word_count.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.example.word_count.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/CMakeFiles/thrust.example.word_count.dir/flags.make + +examples/CMakeFiles/thrust.example.word_count.dir/word_count.cu.o: examples/CMakeFiles/thrust.example.word_count.dir/flags.make +examples/CMakeFiles/thrust.example.word_count.dir/word_count.cu.o: examples/CMakeFiles/thrust.example.word_count.dir/includes_CUDA.rsp +examples/CMakeFiles/thrust.example.word_count.dir/word_count.cu.o: /home/ubuntu/thrust/examples/word_count.cu +examples/CMakeFiles/thrust.example.word_count.dir/word_count.cu.o: examples/CMakeFiles/thrust.example.word_count.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/CMakeFiles/thrust.example.word_count.dir/word_count.cu.o" + cd /home/ubuntu/thrust/build/examples && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/CMakeFiles/thrust.example.word_count.dir/word_count.cu.o -MF CMakeFiles/thrust.example.word_count.dir/word_count.cu.o.d -x cu -c /home/ubuntu/thrust/examples/word_count.cu -o CMakeFiles/thrust.example.word_count.dir/word_count.cu.o + +examples/CMakeFiles/thrust.example.word_count.dir/word_count.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.word_count.dir/word_count.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/CMakeFiles/thrust.example.word_count.dir/word_count.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.word_count.dir/word_count.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.word_count +thrust_example_word_count_OBJECTS = \ +"CMakeFiles/thrust.example.word_count.dir/word_count.cu.o" + +# External object files for target thrust.example.word_count +thrust_example_word_count_EXTERNAL_OBJECTS = + +bin/thrust.example.word_count: examples/CMakeFiles/thrust.example.word_count.dir/word_count.cu.o +bin/thrust.example.word_count: examples/CMakeFiles/thrust.example.word_count.dir/build.make +bin/thrust.example.word_count: examples/CMakeFiles/thrust.example.word_count.dir/linkLibs.rsp +bin/thrust.example.word_count: examples/CMakeFiles/thrust.example.word_count.dir/objects1.rsp +bin/thrust.example.word_count: examples/CMakeFiles/thrust.example.word_count.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../bin/thrust.example.word_count" + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.word_count.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.example.word_count.dir/build: bin/thrust.example.word_count +.PHONY : examples/CMakeFiles/thrust.example.word_count.dir/build + +examples/CMakeFiles/thrust.example.word_count.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.word_count.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.example.word_count.dir/clean + +examples/CMakeFiles/thrust.example.word_count.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.example.word_count.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.example.word_count.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.example.word_count.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.example.word_count.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..ef2cf6b2d9f608711701fccf2e639041981bcf46 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.word_count.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../bin/thrust.example.word_count" + "../bin/thrust.example.word_count.pdb" + "CMakeFiles/thrust.example.word_count.dir/word_count.cu.o" + "CMakeFiles/thrust.example.word_count.dir/word_count.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.word_count.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.example.word_count.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.example.word_count.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..af49c834bdb15fa6c2ee756644d0aebafc45842b --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.word_count.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.word_count. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.word_count.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.example.word_count.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..fcb4cce32d7e050906967cf3adce2702809c52ff --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.word_count.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.word_count. diff --git a/build/examples/CMakeFiles/thrust.example.word_count.dir/depend.make b/build/examples/CMakeFiles/thrust.example.word_count.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..7116f7fe68deb0616396fcf07049436b7ba2922e --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.word_count.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.word_count. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.example.word_count.dir/flags.make b/build/examples/CMakeFiles/thrust.example.word_count.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..fd0781ada1a1d4f2ed6d0cc3f75d3bcfe3c87767 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.word_count.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.word_count.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/CMakeFiles/thrust.example.word_count.dir/includes_CUDA.rsp b/build/examples/CMakeFiles/thrust.example.word_count.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.word_count.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/CMakeFiles/thrust.example.word_count.dir/link.txt b/build/examples/CMakeFiles/thrust.example.word_count.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..a3d4d932ce5b0957b574e6cee0197ce7e0e83256 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.word_count.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.word_count.dir/objects1.rsp -o ../bin/thrust.example.word_count @CMakeFiles/thrust.example.word_count.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/CMakeFiles/thrust.example.word_count.dir/linkLibs.rsp b/build/examples/CMakeFiles/thrust.example.word_count.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.word_count.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/CMakeFiles/thrust.example.word_count.dir/objects1.rsp b/build/examples/CMakeFiles/thrust.example.word_count.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..13c3fa30ea57c768f0fe20b405fb74ed85bb834a --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.word_count.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.word_count.dir/word_count.cu.o diff --git a/build/examples/CMakeFiles/thrust.example.word_count.dir/progress.make b/build/examples/CMakeFiles/thrust.example.word_count.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..6c287f17b23171ee8abc97d23b8f8a3bfa7225de --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.word_count.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = + diff --git a/build/examples/CMakeFiles/thrust.example.word_count.dir/word_count.cu.o b/build/examples/CMakeFiles/thrust.example.word_count.dir/word_count.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..248f5e921376fca50da62294ef02dd1e23344fef --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.word_count.dir/word_count.cu.o @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2020d82f2c362c29a067bb6b7b29b0826833e7b467a38e6c11f966c8f9b29e65 +size 1634736 diff --git a/build/examples/CMakeFiles/thrust.example.word_count.dir/word_count.cu.o.d b/build/examples/CMakeFiles/thrust.example.word_count.dir/word_count.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..a06baee5528fa4a893b788e1baab07f1f9bb0243 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.example.word_count.dir/word_count.cu.o.d @@ -0,0 +1,781 @@ +examples/CMakeFiles/thrust.example.word_count.dir/word_count.cu.o : /home/ubuntu/thrust/examples/word_count.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /usr/include/c++/9/cstdio \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/invoke.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/reverse_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /usr/include/c++/9/limits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /usr/include/c++/9/iostream \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /usr/include/c++/9/vector \ + /usr/include/c++/9/bits/stl_vector.h \ + /usr/include/c++/9/bits/stl_bvector.h \ + /usr/include/c++/9/bits/vector.tcc \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/overlapped_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/iterator/is_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/permutation_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/permutation_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cstdint.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/dispatch.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/single_pass_scan_operators.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/cpp_compatibility.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_queue.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_math.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_discontinuity.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/minmax.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mpl/math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/make_unsigned_special.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/choose_offset.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking_commutative_only.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_warp_reductions.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_even_share.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_mapping.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/arg_index_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/constant_input_iterator.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/counting_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/counting_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/numeric_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_ptr.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/validator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/polymorphic_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/device_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/host_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/new.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/fancy_pointer_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/inner_product.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/inner_product.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/inner_product.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/inner_product.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform_reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform_reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/inner_product.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/inner_product.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/inner_product.h diff --git a/build/examples/CMakeFiles/thrust.examples.dir/DependInfo.cmake b/build/examples/CMakeFiles/thrust.examples.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.examples.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/CMakeFiles/thrust.examples.dir/build.make b/build/examples/CMakeFiles/thrust.examples.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..6ddd9e329d15950ccb9412767fa9b572e8864e8e --- /dev/null +++ b/build/examples/CMakeFiles/thrust.examples.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.examples. + +# Include any custom commands dependencies for this target. +include examples/CMakeFiles/thrust.examples.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/CMakeFiles/thrust.examples.dir/progress.make + +thrust.examples: examples/CMakeFiles/thrust.examples.dir/build.make +.PHONY : thrust.examples + +# Rule to build all files generated by this target. +examples/CMakeFiles/thrust.examples.dir/build: thrust.examples +.PHONY : examples/CMakeFiles/thrust.examples.dir/build + +examples/CMakeFiles/thrust.examples.dir/clean: + cd /home/ubuntu/thrust/build/examples && $(CMAKE_COMMAND) -P CMakeFiles/thrust.examples.dir/cmake_clean.cmake +.PHONY : examples/CMakeFiles/thrust.examples.dir/clean + +examples/CMakeFiles/thrust.examples.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples /home/ubuntu/thrust/build/examples/CMakeFiles/thrust.examples.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/CMakeFiles/thrust.examples.dir/depend + diff --git a/build/examples/CMakeFiles/thrust.examples.dir/cmake_clean.cmake b/build/examples/CMakeFiles/thrust.examples.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..939082f1fa5a385f360499c4804eefdf7705f7d9 --- /dev/null +++ b/build/examples/CMakeFiles/thrust.examples.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.examples.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/CMakeFiles/thrust.examples.dir/compiler_depend.make b/build/examples/CMakeFiles/thrust.examples.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..74eca2aafdf578e8841331e84f4552a40ef517ef --- /dev/null +++ b/build/examples/CMakeFiles/thrust.examples.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.examples. +# This may be replaced when dependencies are built. diff --git a/build/examples/CMakeFiles/thrust.examples.dir/compiler_depend.ts b/build/examples/CMakeFiles/thrust.examples.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..f9a34c988013c4dd9c424fd656b60373b541de1a --- /dev/null +++ b/build/examples/CMakeFiles/thrust.examples.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.examples. diff --git a/build/examples/CMakeFiles/thrust.examples.dir/progress.make b/build/examples/CMakeFiles/thrust.examples.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/CMakeFiles/thrust.examples.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/CTestTestfile.cmake b/build/examples/CTestTestfile.cmake new file mode 100644 index 0000000000000000000000000000000000000000..fe25d6f47c31eb20339b2cf4831b01878155a4a2 --- /dev/null +++ b/build/examples/CTestTestfile.cmake @@ -0,0 +1,110 @@ +# CMake generated Testfile for +# Source directory: /home/ubuntu/thrust/examples +# Build directory: /home/ubuntu/thrust/build/examples +# +# This file includes the relevant testing commands required for +# testing this directory and lists subdirectories to be tested as well. +add_test(thrust.example.arbitrary_transformation "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.arbitrary_transformation" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.arbitrary_transformation.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.arbitrary_transformation PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/CMakeLists.txt;152;thrust_add_example;/home/ubuntu/thrust/examples/CMakeLists.txt;0;") +add_test(thrust.example.basic_vector "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.basic_vector" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.basic_vector.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.basic_vector PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/CMakeLists.txt;152;thrust_add_example;/home/ubuntu/thrust/examples/CMakeLists.txt;0;") +add_test(thrust.example.bounding_box "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.bounding_box" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.bounding_box.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.bounding_box PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/CMakeLists.txt;152;thrust_add_example;/home/ubuntu/thrust/examples/CMakeLists.txt;0;") +add_test(thrust.example.bucket_sort2d "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.bucket_sort2d" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.bucket_sort2d.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.bucket_sort2d PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/CMakeLists.txt;152;thrust_add_example;/home/ubuntu/thrust/examples/CMakeLists.txt;0;") +add_test(thrust.example.constant_iterator "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.constant_iterator" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.constant_iterator.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.constant_iterator PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/CMakeLists.txt;152;thrust_add_example;/home/ubuntu/thrust/examples/CMakeLists.txt;0;") +add_test(thrust.example.counting_iterator "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.counting_iterator" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.counting_iterator.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.counting_iterator PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/CMakeLists.txt;152;thrust_add_example;/home/ubuntu/thrust/examples/CMakeLists.txt;0;") +add_test(thrust.example.device_ptr "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.device_ptr" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.device_ptr.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.device_ptr PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/CMakeLists.txt;152;thrust_add_example;/home/ubuntu/thrust/examples/CMakeLists.txt;0;") +add_test(thrust.example.discrete_voronoi "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.discrete_voronoi" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.discrete_voronoi.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.discrete_voronoi PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/CMakeLists.txt;152;thrust_add_example;/home/ubuntu/thrust/examples/CMakeLists.txt;0;") +add_test(thrust.example.dot_products_with_zip "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.dot_products_with_zip" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.dot_products_with_zip.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.dot_products_with_zip PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/CMakeLists.txt;152;thrust_add_example;/home/ubuntu/thrust/examples/CMakeLists.txt;0;") +add_test(thrust.example.expand "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.expand" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.expand.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.expand PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/CMakeLists.txt;152;thrust_add_example;/home/ubuntu/thrust/examples/CMakeLists.txt;0;") +add_test(thrust.example.fill_copy_sequence "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.fill_copy_sequence" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.fill_copy_sequence.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.fill_copy_sequence PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/CMakeLists.txt;152;thrust_add_example;/home/ubuntu/thrust/examples/CMakeLists.txt;0;") +add_test(thrust.example.histogram "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.histogram" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.histogram.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.histogram PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/CMakeLists.txt;152;thrust_add_example;/home/ubuntu/thrust/examples/CMakeLists.txt;0;") +add_test(thrust.example.lambda "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.lambda" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.lambda.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.lambda PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/CMakeLists.txt;152;thrust_add_example;/home/ubuntu/thrust/examples/CMakeLists.txt;0;") +add_test(thrust.example.lexicographical_sort "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.lexicographical_sort" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.lexicographical_sort.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.lexicographical_sort PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/CMakeLists.txt;152;thrust_add_example;/home/ubuntu/thrust/examples/CMakeLists.txt;0;") +add_test(thrust.example.max_abs_diff "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.max_abs_diff" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.max_abs_diff.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.max_abs_diff PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/CMakeLists.txt;152;thrust_add_example;/home/ubuntu/thrust/examples/CMakeLists.txt;0;") +add_test(thrust.example.minimal_custom_backend "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.minimal_custom_backend" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.minimal_custom_backend.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.minimal_custom_backend PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/CMakeLists.txt;152;thrust_add_example;/home/ubuntu/thrust/examples/CMakeLists.txt;0;") +add_test(thrust.example.minmax "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.minmax" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.minmax.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.minmax PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/CMakeLists.txt;152;thrust_add_example;/home/ubuntu/thrust/examples/CMakeLists.txt;0;") +add_test(thrust.example.mode "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.mode" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.mode.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.mode PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/CMakeLists.txt;152;thrust_add_example;/home/ubuntu/thrust/examples/CMakeLists.txt;0;") +add_test(thrust.example.monte_carlo "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.monte_carlo" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.monte_carlo.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.monte_carlo PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/CMakeLists.txt;152;thrust_add_example;/home/ubuntu/thrust/examples/CMakeLists.txt;0;") +add_test(thrust.example.monte_carlo_disjoint_sequences "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.monte_carlo_disjoint_sequences" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.monte_carlo_disjoint_sequences.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.monte_carlo_disjoint_sequences PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/CMakeLists.txt;152;thrust_add_example;/home/ubuntu/thrust/examples/CMakeLists.txt;0;") +add_test(thrust.example.mr_basic "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.mr_basic" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.mr_basic.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.mr_basic PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/CMakeLists.txt;152;thrust_add_example;/home/ubuntu/thrust/examples/CMakeLists.txt;0;") +add_test(thrust.example.norm "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.norm" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.norm.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.norm PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/CMakeLists.txt;152;thrust_add_example;/home/ubuntu/thrust/examples/CMakeLists.txt;0;") +add_test(thrust.example.padded_grid_reduction "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.padded_grid_reduction" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.padded_grid_reduction.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.padded_grid_reduction PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/CMakeLists.txt;152;thrust_add_example;/home/ubuntu/thrust/examples/CMakeLists.txt;0;") +add_test(thrust.example.permutation_iterator "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.permutation_iterator" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.permutation_iterator.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.permutation_iterator PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/CMakeLists.txt;152;thrust_add_example;/home/ubuntu/thrust/examples/CMakeLists.txt;0;") +add_test(thrust.example.raw_reference_cast "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.raw_reference_cast" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.raw_reference_cast.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.raw_reference_cast PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/CMakeLists.txt;152;thrust_add_example;/home/ubuntu/thrust/examples/CMakeLists.txt;0;") +add_test(thrust.example.remove_points2d "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.remove_points2d" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.remove_points2d.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.remove_points2d PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/CMakeLists.txt;152;thrust_add_example;/home/ubuntu/thrust/examples/CMakeLists.txt;0;") +add_test(thrust.example.repeated_range "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.repeated_range" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.repeated_range.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.repeated_range PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/CMakeLists.txt;152;thrust_add_example;/home/ubuntu/thrust/examples/CMakeLists.txt;0;") +add_test(thrust.example.run_length_decoding "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.run_length_decoding" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.run_length_decoding.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.run_length_decoding PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/CMakeLists.txt;152;thrust_add_example;/home/ubuntu/thrust/examples/CMakeLists.txt;0;") +add_test(thrust.example.run_length_encoding "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.run_length_encoding" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.run_length_encoding.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.run_length_encoding PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/CMakeLists.txt;152;thrust_add_example;/home/ubuntu/thrust/examples/CMakeLists.txt;0;") +add_test(thrust.example.saxpy "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.saxpy" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.saxpy.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.saxpy PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/CMakeLists.txt;152;thrust_add_example;/home/ubuntu/thrust/examples/CMakeLists.txt;0;") +add_test(thrust.example.scan_by_key "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.scan_by_key" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.scan_by_key.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.scan_by_key PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/CMakeLists.txt;152;thrust_add_example;/home/ubuntu/thrust/examples/CMakeLists.txt;0;") +add_test(thrust.example.scan_matrix_by_rows "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.scan_matrix_by_rows" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.scan_matrix_by_rows.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.scan_matrix_by_rows PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/CMakeLists.txt;152;thrust_add_example;/home/ubuntu/thrust/examples/CMakeLists.txt;0;") +add_test(thrust.example.set_operations "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.set_operations" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.set_operations.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.set_operations PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/CMakeLists.txt;152;thrust_add_example;/home/ubuntu/thrust/examples/CMakeLists.txt;0;") +add_test(thrust.example.simple_moving_average "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.simple_moving_average" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.simple_moving_average.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.simple_moving_average PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/CMakeLists.txt;152;thrust_add_example;/home/ubuntu/thrust/examples/CMakeLists.txt;0;") +add_test(thrust.example.sort "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.sort" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.sort.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.sort PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/CMakeLists.txt;152;thrust_add_example;/home/ubuntu/thrust/examples/CMakeLists.txt;0;") +add_test(thrust.example.sorting_aos_vs_soa "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.sorting_aos_vs_soa" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.sorting_aos_vs_soa.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.sorting_aos_vs_soa PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/CMakeLists.txt;152;thrust_add_example;/home/ubuntu/thrust/examples/CMakeLists.txt;0;") +add_test(thrust.example.sparse_vector "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.sparse_vector" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.sparse_vector.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.sparse_vector PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/CMakeLists.txt;152;thrust_add_example;/home/ubuntu/thrust/examples/CMakeLists.txt;0;") +add_test(thrust.example.stream_compaction "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.stream_compaction" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.stream_compaction.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.stream_compaction PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/CMakeLists.txt;152;thrust_add_example;/home/ubuntu/thrust/examples/CMakeLists.txt;0;") +add_test(thrust.example.strided_range "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.strided_range" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.strided_range.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.strided_range PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/CMakeLists.txt;152;thrust_add_example;/home/ubuntu/thrust/examples/CMakeLists.txt;0;") +add_test(thrust.example.sum "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.sum" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.sum.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.sum PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/CMakeLists.txt;152;thrust_add_example;/home/ubuntu/thrust/examples/CMakeLists.txt;0;") +add_test(thrust.example.sum_rows "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.sum_rows" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.sum_rows.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.sum_rows PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/CMakeLists.txt;152;thrust_add_example;/home/ubuntu/thrust/examples/CMakeLists.txt;0;") +add_test(thrust.example.summary_statistics "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.summary_statistics" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.summary_statistics.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.summary_statistics PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/CMakeLists.txt;152;thrust_add_example;/home/ubuntu/thrust/examples/CMakeLists.txt;0;") +add_test(thrust.example.summed_area_table "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.summed_area_table" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.summed_area_table.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.summed_area_table PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/CMakeLists.txt;152;thrust_add_example;/home/ubuntu/thrust/examples/CMakeLists.txt;0;") +add_test(thrust.example.tiled_range "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.tiled_range" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.tiled_range.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.tiled_range PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/CMakeLists.txt;152;thrust_add_example;/home/ubuntu/thrust/examples/CMakeLists.txt;0;") +add_test(thrust.example.transform_input_output_iterator "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.transform_input_output_iterator" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.transform_input_output_iterator.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.transform_input_output_iterator PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/CMakeLists.txt;152;thrust_add_example;/home/ubuntu/thrust/examples/CMakeLists.txt;0;") +add_test(thrust.example.transform_iterator "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.transform_iterator" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.transform_iterator.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.transform_iterator PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/CMakeLists.txt;152;thrust_add_example;/home/ubuntu/thrust/examples/CMakeLists.txt;0;") +add_test(thrust.example.transform_output_iterator "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.transform_output_iterator" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.transform_output_iterator.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.transform_output_iterator PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/CMakeLists.txt;152;thrust_add_example;/home/ubuntu/thrust/examples/CMakeLists.txt;0;") +add_test(thrust.example.uninitialized_vector "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.uninitialized_vector" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.uninitialized_vector.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.uninitialized_vector PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/CMakeLists.txt;152;thrust_add_example;/home/ubuntu/thrust/examples/CMakeLists.txt;0;") +add_test(thrust.example.version "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.version" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.version.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.version PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/CMakeLists.txt;152;thrust_add_example;/home/ubuntu/thrust/examples/CMakeLists.txt;0;") +add_test(thrust.example.weld_vertices "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.weld_vertices" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.weld_vertices.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.weld_vertices PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/CMakeLists.txt;152;thrust_add_example;/home/ubuntu/thrust/examples/CMakeLists.txt;0;") +add_test(thrust.example.word_count "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.word_count" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.word_count.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.word_count PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/CMakeLists.txt;152;thrust_add_example;/home/ubuntu/thrust/examples/CMakeLists.txt;0;") +subdirs("cmake") +subdirs("cuda") diff --git a/build/examples/Makefile b/build/examples/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..ffe024369c5945ec4efb88710c2342729f968652 --- /dev/null +++ b/build/examples/Makefile @@ -0,0 +1,3124 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target test +test: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..." + /usr/bin/ctest --force-new-ctest-process $(ARGS) +.PHONY : test + +# Special rule for the target test +test/fast: test +.PHONY : test/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components +.PHONY : list_install_components/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# The main all target +all: cmake_check_build_system + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles /home/ubuntu/thrust/build/examples//CMakeFiles/progress.marks + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : all + +# The main clean target +clean: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: cmake_check_build_system + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -P /home/ubuntu/thrust/build/CMakeFiles/VerifyGlobs.cmake + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Convenience name for target. +examples/CMakeFiles/thrust.examples.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.examples.dir/rule +.PHONY : examples/CMakeFiles/thrust.examples.dir/rule + +# Convenience name for target. +thrust.examples: examples/CMakeFiles/thrust.examples.dir/rule +.PHONY : thrust.examples + +# fast build rule for target. +thrust.examples/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.examples.dir/build.make examples/CMakeFiles/thrust.examples.dir/build +.PHONY : thrust.examples/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/rule +.PHONY : examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/rule + +# Convenience name for target. +thrust.example.arbitrary_transformation: examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/rule +.PHONY : thrust.example.arbitrary_transformation + +# fast build rule for target. +thrust.example.arbitrary_transformation/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/build.make examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/build +.PHONY : thrust.example.arbitrary_transformation/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.all.example.arbitrary_transformation.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.arbitrary_transformation.dir/rule +.PHONY : examples/CMakeFiles/thrust.all.example.arbitrary_transformation.dir/rule + +# Convenience name for target. +thrust.all.example.arbitrary_transformation: examples/CMakeFiles/thrust.all.example.arbitrary_transformation.dir/rule +.PHONY : thrust.all.example.arbitrary_transformation + +# fast build rule for target. +thrust.all.example.arbitrary_transformation/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.arbitrary_transformation.dir/build.make examples/CMakeFiles/thrust.all.example.arbitrary_transformation.dir/build +.PHONY : thrust.all.example.arbitrary_transformation/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.example.basic_vector.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.basic_vector.dir/rule +.PHONY : examples/CMakeFiles/thrust.example.basic_vector.dir/rule + +# Convenience name for target. +thrust.example.basic_vector: examples/CMakeFiles/thrust.example.basic_vector.dir/rule +.PHONY : thrust.example.basic_vector + +# fast build rule for target. +thrust.example.basic_vector/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.basic_vector.dir/build.make examples/CMakeFiles/thrust.example.basic_vector.dir/build +.PHONY : thrust.example.basic_vector/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.all.example.basic_vector.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.basic_vector.dir/rule +.PHONY : examples/CMakeFiles/thrust.all.example.basic_vector.dir/rule + +# Convenience name for target. +thrust.all.example.basic_vector: examples/CMakeFiles/thrust.all.example.basic_vector.dir/rule +.PHONY : thrust.all.example.basic_vector + +# fast build rule for target. +thrust.all.example.basic_vector/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.basic_vector.dir/build.make examples/CMakeFiles/thrust.all.example.basic_vector.dir/build +.PHONY : thrust.all.example.basic_vector/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.example.bounding_box.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.bounding_box.dir/rule +.PHONY : examples/CMakeFiles/thrust.example.bounding_box.dir/rule + +# Convenience name for target. +thrust.example.bounding_box: examples/CMakeFiles/thrust.example.bounding_box.dir/rule +.PHONY : thrust.example.bounding_box + +# fast build rule for target. +thrust.example.bounding_box/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.bounding_box.dir/build.make examples/CMakeFiles/thrust.example.bounding_box.dir/build +.PHONY : thrust.example.bounding_box/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.all.example.bounding_box.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.bounding_box.dir/rule +.PHONY : examples/CMakeFiles/thrust.all.example.bounding_box.dir/rule + +# Convenience name for target. +thrust.all.example.bounding_box: examples/CMakeFiles/thrust.all.example.bounding_box.dir/rule +.PHONY : thrust.all.example.bounding_box + +# fast build rule for target. +thrust.all.example.bounding_box/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.bounding_box.dir/build.make examples/CMakeFiles/thrust.all.example.bounding_box.dir/build +.PHONY : thrust.all.example.bounding_box/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.example.bucket_sort2d.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.bucket_sort2d.dir/rule +.PHONY : examples/CMakeFiles/thrust.example.bucket_sort2d.dir/rule + +# Convenience name for target. +thrust.example.bucket_sort2d: examples/CMakeFiles/thrust.example.bucket_sort2d.dir/rule +.PHONY : thrust.example.bucket_sort2d + +# fast build rule for target. +thrust.example.bucket_sort2d/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.bucket_sort2d.dir/build.make examples/CMakeFiles/thrust.example.bucket_sort2d.dir/build +.PHONY : thrust.example.bucket_sort2d/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.all.example.bucket_sort2d.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.bucket_sort2d.dir/rule +.PHONY : examples/CMakeFiles/thrust.all.example.bucket_sort2d.dir/rule + +# Convenience name for target. +thrust.all.example.bucket_sort2d: examples/CMakeFiles/thrust.all.example.bucket_sort2d.dir/rule +.PHONY : thrust.all.example.bucket_sort2d + +# fast build rule for target. +thrust.all.example.bucket_sort2d/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.bucket_sort2d.dir/build.make examples/CMakeFiles/thrust.all.example.bucket_sort2d.dir/build +.PHONY : thrust.all.example.bucket_sort2d/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.example.constant_iterator.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.constant_iterator.dir/rule +.PHONY : examples/CMakeFiles/thrust.example.constant_iterator.dir/rule + +# Convenience name for target. +thrust.example.constant_iterator: examples/CMakeFiles/thrust.example.constant_iterator.dir/rule +.PHONY : thrust.example.constant_iterator + +# fast build rule for target. +thrust.example.constant_iterator/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.constant_iterator.dir/build.make examples/CMakeFiles/thrust.example.constant_iterator.dir/build +.PHONY : thrust.example.constant_iterator/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.all.example.constant_iterator.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.constant_iterator.dir/rule +.PHONY : examples/CMakeFiles/thrust.all.example.constant_iterator.dir/rule + +# Convenience name for target. +thrust.all.example.constant_iterator: examples/CMakeFiles/thrust.all.example.constant_iterator.dir/rule +.PHONY : thrust.all.example.constant_iterator + +# fast build rule for target. +thrust.all.example.constant_iterator/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.constant_iterator.dir/build.make examples/CMakeFiles/thrust.all.example.constant_iterator.dir/build +.PHONY : thrust.all.example.constant_iterator/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.example.counting_iterator.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.counting_iterator.dir/rule +.PHONY : examples/CMakeFiles/thrust.example.counting_iterator.dir/rule + +# Convenience name for target. +thrust.example.counting_iterator: examples/CMakeFiles/thrust.example.counting_iterator.dir/rule +.PHONY : thrust.example.counting_iterator + +# fast build rule for target. +thrust.example.counting_iterator/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.counting_iterator.dir/build.make examples/CMakeFiles/thrust.example.counting_iterator.dir/build +.PHONY : thrust.example.counting_iterator/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.all.example.counting_iterator.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.counting_iterator.dir/rule +.PHONY : examples/CMakeFiles/thrust.all.example.counting_iterator.dir/rule + +# Convenience name for target. +thrust.all.example.counting_iterator: examples/CMakeFiles/thrust.all.example.counting_iterator.dir/rule +.PHONY : thrust.all.example.counting_iterator + +# fast build rule for target. +thrust.all.example.counting_iterator/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.counting_iterator.dir/build.make examples/CMakeFiles/thrust.all.example.counting_iterator.dir/build +.PHONY : thrust.all.example.counting_iterator/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.example.device_ptr.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.device_ptr.dir/rule +.PHONY : examples/CMakeFiles/thrust.example.device_ptr.dir/rule + +# Convenience name for target. +thrust.example.device_ptr: examples/CMakeFiles/thrust.example.device_ptr.dir/rule +.PHONY : thrust.example.device_ptr + +# fast build rule for target. +thrust.example.device_ptr/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.device_ptr.dir/build.make examples/CMakeFiles/thrust.example.device_ptr.dir/build +.PHONY : thrust.example.device_ptr/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.all.example.device_ptr.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.device_ptr.dir/rule +.PHONY : examples/CMakeFiles/thrust.all.example.device_ptr.dir/rule + +# Convenience name for target. +thrust.all.example.device_ptr: examples/CMakeFiles/thrust.all.example.device_ptr.dir/rule +.PHONY : thrust.all.example.device_ptr + +# fast build rule for target. +thrust.all.example.device_ptr/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.device_ptr.dir/build.make examples/CMakeFiles/thrust.all.example.device_ptr.dir/build +.PHONY : thrust.all.example.device_ptr/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.example.discrete_voronoi.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.discrete_voronoi.dir/rule +.PHONY : examples/CMakeFiles/thrust.example.discrete_voronoi.dir/rule + +# Convenience name for target. +thrust.example.discrete_voronoi: examples/CMakeFiles/thrust.example.discrete_voronoi.dir/rule +.PHONY : thrust.example.discrete_voronoi + +# fast build rule for target. +thrust.example.discrete_voronoi/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.discrete_voronoi.dir/build.make examples/CMakeFiles/thrust.example.discrete_voronoi.dir/build +.PHONY : thrust.example.discrete_voronoi/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.all.example.discrete_voronoi.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.discrete_voronoi.dir/rule +.PHONY : examples/CMakeFiles/thrust.all.example.discrete_voronoi.dir/rule + +# Convenience name for target. +thrust.all.example.discrete_voronoi: examples/CMakeFiles/thrust.all.example.discrete_voronoi.dir/rule +.PHONY : thrust.all.example.discrete_voronoi + +# fast build rule for target. +thrust.all.example.discrete_voronoi/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.discrete_voronoi.dir/build.make examples/CMakeFiles/thrust.all.example.discrete_voronoi.dir/build +.PHONY : thrust.all.example.discrete_voronoi/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/rule +.PHONY : examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/rule + +# Convenience name for target. +thrust.example.dot_products_with_zip: examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/rule +.PHONY : thrust.example.dot_products_with_zip + +# fast build rule for target. +thrust.example.dot_products_with_zip/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/build.make examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/build +.PHONY : thrust.example.dot_products_with_zip/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.all.example.dot_products_with_zip.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.dot_products_with_zip.dir/rule +.PHONY : examples/CMakeFiles/thrust.all.example.dot_products_with_zip.dir/rule + +# Convenience name for target. +thrust.all.example.dot_products_with_zip: examples/CMakeFiles/thrust.all.example.dot_products_with_zip.dir/rule +.PHONY : thrust.all.example.dot_products_with_zip + +# fast build rule for target. +thrust.all.example.dot_products_with_zip/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.dot_products_with_zip.dir/build.make examples/CMakeFiles/thrust.all.example.dot_products_with_zip.dir/build +.PHONY : thrust.all.example.dot_products_with_zip/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.example.expand.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.expand.dir/rule +.PHONY : examples/CMakeFiles/thrust.example.expand.dir/rule + +# Convenience name for target. +thrust.example.expand: examples/CMakeFiles/thrust.example.expand.dir/rule +.PHONY : thrust.example.expand + +# fast build rule for target. +thrust.example.expand/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.expand.dir/build.make examples/CMakeFiles/thrust.example.expand.dir/build +.PHONY : thrust.example.expand/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.all.example.expand.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.expand.dir/rule +.PHONY : examples/CMakeFiles/thrust.all.example.expand.dir/rule + +# Convenience name for target. +thrust.all.example.expand: examples/CMakeFiles/thrust.all.example.expand.dir/rule +.PHONY : thrust.all.example.expand + +# fast build rule for target. +thrust.all.example.expand/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.expand.dir/build.make examples/CMakeFiles/thrust.all.example.expand.dir/build +.PHONY : thrust.all.example.expand/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/rule +.PHONY : examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/rule + +# Convenience name for target. +thrust.example.fill_copy_sequence: examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/rule +.PHONY : thrust.example.fill_copy_sequence + +# fast build rule for target. +thrust.example.fill_copy_sequence/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/build.make examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/build +.PHONY : thrust.example.fill_copy_sequence/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.all.example.fill_copy_sequence.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.fill_copy_sequence.dir/rule +.PHONY : examples/CMakeFiles/thrust.all.example.fill_copy_sequence.dir/rule + +# Convenience name for target. +thrust.all.example.fill_copy_sequence: examples/CMakeFiles/thrust.all.example.fill_copy_sequence.dir/rule +.PHONY : thrust.all.example.fill_copy_sequence + +# fast build rule for target. +thrust.all.example.fill_copy_sequence/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.fill_copy_sequence.dir/build.make examples/CMakeFiles/thrust.all.example.fill_copy_sequence.dir/build +.PHONY : thrust.all.example.fill_copy_sequence/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.example.histogram.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.histogram.dir/rule +.PHONY : examples/CMakeFiles/thrust.example.histogram.dir/rule + +# Convenience name for target. +thrust.example.histogram: examples/CMakeFiles/thrust.example.histogram.dir/rule +.PHONY : thrust.example.histogram + +# fast build rule for target. +thrust.example.histogram/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.histogram.dir/build.make examples/CMakeFiles/thrust.example.histogram.dir/build +.PHONY : thrust.example.histogram/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.all.example.histogram.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.histogram.dir/rule +.PHONY : examples/CMakeFiles/thrust.all.example.histogram.dir/rule + +# Convenience name for target. +thrust.all.example.histogram: examples/CMakeFiles/thrust.all.example.histogram.dir/rule +.PHONY : thrust.all.example.histogram + +# fast build rule for target. +thrust.all.example.histogram/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.histogram.dir/build.make examples/CMakeFiles/thrust.all.example.histogram.dir/build +.PHONY : thrust.all.example.histogram/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.example.lambda.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.lambda.dir/rule +.PHONY : examples/CMakeFiles/thrust.example.lambda.dir/rule + +# Convenience name for target. +thrust.example.lambda: examples/CMakeFiles/thrust.example.lambda.dir/rule +.PHONY : thrust.example.lambda + +# fast build rule for target. +thrust.example.lambda/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.lambda.dir/build.make examples/CMakeFiles/thrust.example.lambda.dir/build +.PHONY : thrust.example.lambda/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.all.example.lambda.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.lambda.dir/rule +.PHONY : examples/CMakeFiles/thrust.all.example.lambda.dir/rule + +# Convenience name for target. +thrust.all.example.lambda: examples/CMakeFiles/thrust.all.example.lambda.dir/rule +.PHONY : thrust.all.example.lambda + +# fast build rule for target. +thrust.all.example.lambda/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.lambda.dir/build.make examples/CMakeFiles/thrust.all.example.lambda.dir/build +.PHONY : thrust.all.example.lambda/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.example.lexicographical_sort.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.lexicographical_sort.dir/rule +.PHONY : examples/CMakeFiles/thrust.example.lexicographical_sort.dir/rule + +# Convenience name for target. +thrust.example.lexicographical_sort: examples/CMakeFiles/thrust.example.lexicographical_sort.dir/rule +.PHONY : thrust.example.lexicographical_sort + +# fast build rule for target. +thrust.example.lexicographical_sort/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.lexicographical_sort.dir/build.make examples/CMakeFiles/thrust.example.lexicographical_sort.dir/build +.PHONY : thrust.example.lexicographical_sort/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.all.example.lexicographical_sort.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.lexicographical_sort.dir/rule +.PHONY : examples/CMakeFiles/thrust.all.example.lexicographical_sort.dir/rule + +# Convenience name for target. +thrust.all.example.lexicographical_sort: examples/CMakeFiles/thrust.all.example.lexicographical_sort.dir/rule +.PHONY : thrust.all.example.lexicographical_sort + +# fast build rule for target. +thrust.all.example.lexicographical_sort/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.lexicographical_sort.dir/build.make examples/CMakeFiles/thrust.all.example.lexicographical_sort.dir/build +.PHONY : thrust.all.example.lexicographical_sort/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.example.max_abs_diff.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.max_abs_diff.dir/rule +.PHONY : examples/CMakeFiles/thrust.example.max_abs_diff.dir/rule + +# Convenience name for target. +thrust.example.max_abs_diff: examples/CMakeFiles/thrust.example.max_abs_diff.dir/rule +.PHONY : thrust.example.max_abs_diff + +# fast build rule for target. +thrust.example.max_abs_diff/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.max_abs_diff.dir/build.make examples/CMakeFiles/thrust.example.max_abs_diff.dir/build +.PHONY : thrust.example.max_abs_diff/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.all.example.max_abs_diff.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.max_abs_diff.dir/rule +.PHONY : examples/CMakeFiles/thrust.all.example.max_abs_diff.dir/rule + +# Convenience name for target. +thrust.all.example.max_abs_diff: examples/CMakeFiles/thrust.all.example.max_abs_diff.dir/rule +.PHONY : thrust.all.example.max_abs_diff + +# fast build rule for target. +thrust.all.example.max_abs_diff/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.max_abs_diff.dir/build.make examples/CMakeFiles/thrust.all.example.max_abs_diff.dir/build +.PHONY : thrust.all.example.max_abs_diff/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/rule +.PHONY : examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/rule + +# Convenience name for target. +thrust.example.minimal_custom_backend: examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/rule +.PHONY : thrust.example.minimal_custom_backend + +# fast build rule for target. +thrust.example.minimal_custom_backend/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/build.make examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/build +.PHONY : thrust.example.minimal_custom_backend/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.all.example.minimal_custom_backend.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.minimal_custom_backend.dir/rule +.PHONY : examples/CMakeFiles/thrust.all.example.minimal_custom_backend.dir/rule + +# Convenience name for target. +thrust.all.example.minimal_custom_backend: examples/CMakeFiles/thrust.all.example.minimal_custom_backend.dir/rule +.PHONY : thrust.all.example.minimal_custom_backend + +# fast build rule for target. +thrust.all.example.minimal_custom_backend/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.minimal_custom_backend.dir/build.make examples/CMakeFiles/thrust.all.example.minimal_custom_backend.dir/build +.PHONY : thrust.all.example.minimal_custom_backend/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.example.minmax.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.minmax.dir/rule +.PHONY : examples/CMakeFiles/thrust.example.minmax.dir/rule + +# Convenience name for target. +thrust.example.minmax: examples/CMakeFiles/thrust.example.minmax.dir/rule +.PHONY : thrust.example.minmax + +# fast build rule for target. +thrust.example.minmax/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.minmax.dir/build.make examples/CMakeFiles/thrust.example.minmax.dir/build +.PHONY : thrust.example.minmax/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.all.example.minmax.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.minmax.dir/rule +.PHONY : examples/CMakeFiles/thrust.all.example.minmax.dir/rule + +# Convenience name for target. +thrust.all.example.minmax: examples/CMakeFiles/thrust.all.example.minmax.dir/rule +.PHONY : thrust.all.example.minmax + +# fast build rule for target. +thrust.all.example.minmax/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.minmax.dir/build.make examples/CMakeFiles/thrust.all.example.minmax.dir/build +.PHONY : thrust.all.example.minmax/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.example.mode.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.mode.dir/rule +.PHONY : examples/CMakeFiles/thrust.example.mode.dir/rule + +# Convenience name for target. +thrust.example.mode: examples/CMakeFiles/thrust.example.mode.dir/rule +.PHONY : thrust.example.mode + +# fast build rule for target. +thrust.example.mode/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.mode.dir/build.make examples/CMakeFiles/thrust.example.mode.dir/build +.PHONY : thrust.example.mode/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.all.example.mode.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.mode.dir/rule +.PHONY : examples/CMakeFiles/thrust.all.example.mode.dir/rule + +# Convenience name for target. +thrust.all.example.mode: examples/CMakeFiles/thrust.all.example.mode.dir/rule +.PHONY : thrust.all.example.mode + +# fast build rule for target. +thrust.all.example.mode/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.mode.dir/build.make examples/CMakeFiles/thrust.all.example.mode.dir/build +.PHONY : thrust.all.example.mode/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.example.monte_carlo.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.monte_carlo.dir/rule +.PHONY : examples/CMakeFiles/thrust.example.monte_carlo.dir/rule + +# Convenience name for target. +thrust.example.monte_carlo: examples/CMakeFiles/thrust.example.monte_carlo.dir/rule +.PHONY : thrust.example.monte_carlo + +# fast build rule for target. +thrust.example.monte_carlo/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.monte_carlo.dir/build.make examples/CMakeFiles/thrust.example.monte_carlo.dir/build +.PHONY : thrust.example.monte_carlo/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.all.example.monte_carlo.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.monte_carlo.dir/rule +.PHONY : examples/CMakeFiles/thrust.all.example.monte_carlo.dir/rule + +# Convenience name for target. +thrust.all.example.monte_carlo: examples/CMakeFiles/thrust.all.example.monte_carlo.dir/rule +.PHONY : thrust.all.example.monte_carlo + +# fast build rule for target. +thrust.all.example.monte_carlo/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.monte_carlo.dir/build.make examples/CMakeFiles/thrust.all.example.monte_carlo.dir/build +.PHONY : thrust.all.example.monte_carlo/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/rule +.PHONY : examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/rule + +# Convenience name for target. +thrust.example.monte_carlo_disjoint_sequences: examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/rule +.PHONY : thrust.example.monte_carlo_disjoint_sequences + +# fast build rule for target. +thrust.example.monte_carlo_disjoint_sequences/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/build.make examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/build +.PHONY : thrust.example.monte_carlo_disjoint_sequences/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.all.example.monte_carlo_disjoint_sequences.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.monte_carlo_disjoint_sequences.dir/rule +.PHONY : examples/CMakeFiles/thrust.all.example.monte_carlo_disjoint_sequences.dir/rule + +# Convenience name for target. +thrust.all.example.monte_carlo_disjoint_sequences: examples/CMakeFiles/thrust.all.example.monte_carlo_disjoint_sequences.dir/rule +.PHONY : thrust.all.example.monte_carlo_disjoint_sequences + +# fast build rule for target. +thrust.all.example.monte_carlo_disjoint_sequences/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.monte_carlo_disjoint_sequences.dir/build.make examples/CMakeFiles/thrust.all.example.monte_carlo_disjoint_sequences.dir/build +.PHONY : thrust.all.example.monte_carlo_disjoint_sequences/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.example.mr_basic.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.mr_basic.dir/rule +.PHONY : examples/CMakeFiles/thrust.example.mr_basic.dir/rule + +# Convenience name for target. +thrust.example.mr_basic: examples/CMakeFiles/thrust.example.mr_basic.dir/rule +.PHONY : thrust.example.mr_basic + +# fast build rule for target. +thrust.example.mr_basic/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.mr_basic.dir/build.make examples/CMakeFiles/thrust.example.mr_basic.dir/build +.PHONY : thrust.example.mr_basic/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.all.example.mr_basic.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.mr_basic.dir/rule +.PHONY : examples/CMakeFiles/thrust.all.example.mr_basic.dir/rule + +# Convenience name for target. +thrust.all.example.mr_basic: examples/CMakeFiles/thrust.all.example.mr_basic.dir/rule +.PHONY : thrust.all.example.mr_basic + +# fast build rule for target. +thrust.all.example.mr_basic/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.mr_basic.dir/build.make examples/CMakeFiles/thrust.all.example.mr_basic.dir/build +.PHONY : thrust.all.example.mr_basic/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.example.norm.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.norm.dir/rule +.PHONY : examples/CMakeFiles/thrust.example.norm.dir/rule + +# Convenience name for target. +thrust.example.norm: examples/CMakeFiles/thrust.example.norm.dir/rule +.PHONY : thrust.example.norm + +# fast build rule for target. +thrust.example.norm/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.norm.dir/build.make examples/CMakeFiles/thrust.example.norm.dir/build +.PHONY : thrust.example.norm/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.all.example.norm.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.norm.dir/rule +.PHONY : examples/CMakeFiles/thrust.all.example.norm.dir/rule + +# Convenience name for target. +thrust.all.example.norm: examples/CMakeFiles/thrust.all.example.norm.dir/rule +.PHONY : thrust.all.example.norm + +# fast build rule for target. +thrust.all.example.norm/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.norm.dir/build.make examples/CMakeFiles/thrust.all.example.norm.dir/build +.PHONY : thrust.all.example.norm/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/rule +.PHONY : examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/rule + +# Convenience name for target. +thrust.example.padded_grid_reduction: examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/rule +.PHONY : thrust.example.padded_grid_reduction + +# fast build rule for target. +thrust.example.padded_grid_reduction/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/build.make examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/build +.PHONY : thrust.example.padded_grid_reduction/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.all.example.padded_grid_reduction.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.padded_grid_reduction.dir/rule +.PHONY : examples/CMakeFiles/thrust.all.example.padded_grid_reduction.dir/rule + +# Convenience name for target. +thrust.all.example.padded_grid_reduction: examples/CMakeFiles/thrust.all.example.padded_grid_reduction.dir/rule +.PHONY : thrust.all.example.padded_grid_reduction + +# fast build rule for target. +thrust.all.example.padded_grid_reduction/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.padded_grid_reduction.dir/build.make examples/CMakeFiles/thrust.all.example.padded_grid_reduction.dir/build +.PHONY : thrust.all.example.padded_grid_reduction/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.example.permutation_iterator.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.permutation_iterator.dir/rule +.PHONY : examples/CMakeFiles/thrust.example.permutation_iterator.dir/rule + +# Convenience name for target. +thrust.example.permutation_iterator: examples/CMakeFiles/thrust.example.permutation_iterator.dir/rule +.PHONY : thrust.example.permutation_iterator + +# fast build rule for target. +thrust.example.permutation_iterator/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.permutation_iterator.dir/build.make examples/CMakeFiles/thrust.example.permutation_iterator.dir/build +.PHONY : thrust.example.permutation_iterator/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.all.example.permutation_iterator.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.permutation_iterator.dir/rule +.PHONY : examples/CMakeFiles/thrust.all.example.permutation_iterator.dir/rule + +# Convenience name for target. +thrust.all.example.permutation_iterator: examples/CMakeFiles/thrust.all.example.permutation_iterator.dir/rule +.PHONY : thrust.all.example.permutation_iterator + +# fast build rule for target. +thrust.all.example.permutation_iterator/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.permutation_iterator.dir/build.make examples/CMakeFiles/thrust.all.example.permutation_iterator.dir/build +.PHONY : thrust.all.example.permutation_iterator/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.example.raw_reference_cast.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.raw_reference_cast.dir/rule +.PHONY : examples/CMakeFiles/thrust.example.raw_reference_cast.dir/rule + +# Convenience name for target. +thrust.example.raw_reference_cast: examples/CMakeFiles/thrust.example.raw_reference_cast.dir/rule +.PHONY : thrust.example.raw_reference_cast + +# fast build rule for target. +thrust.example.raw_reference_cast/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.raw_reference_cast.dir/build.make examples/CMakeFiles/thrust.example.raw_reference_cast.dir/build +.PHONY : thrust.example.raw_reference_cast/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.all.example.raw_reference_cast.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.raw_reference_cast.dir/rule +.PHONY : examples/CMakeFiles/thrust.all.example.raw_reference_cast.dir/rule + +# Convenience name for target. +thrust.all.example.raw_reference_cast: examples/CMakeFiles/thrust.all.example.raw_reference_cast.dir/rule +.PHONY : thrust.all.example.raw_reference_cast + +# fast build rule for target. +thrust.all.example.raw_reference_cast/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.raw_reference_cast.dir/build.make examples/CMakeFiles/thrust.all.example.raw_reference_cast.dir/build +.PHONY : thrust.all.example.raw_reference_cast/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.example.remove_points2d.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.remove_points2d.dir/rule +.PHONY : examples/CMakeFiles/thrust.example.remove_points2d.dir/rule + +# Convenience name for target. +thrust.example.remove_points2d: examples/CMakeFiles/thrust.example.remove_points2d.dir/rule +.PHONY : thrust.example.remove_points2d + +# fast build rule for target. +thrust.example.remove_points2d/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.remove_points2d.dir/build.make examples/CMakeFiles/thrust.example.remove_points2d.dir/build +.PHONY : thrust.example.remove_points2d/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.all.example.remove_points2d.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.remove_points2d.dir/rule +.PHONY : examples/CMakeFiles/thrust.all.example.remove_points2d.dir/rule + +# Convenience name for target. +thrust.all.example.remove_points2d: examples/CMakeFiles/thrust.all.example.remove_points2d.dir/rule +.PHONY : thrust.all.example.remove_points2d + +# fast build rule for target. +thrust.all.example.remove_points2d/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.remove_points2d.dir/build.make examples/CMakeFiles/thrust.all.example.remove_points2d.dir/build +.PHONY : thrust.all.example.remove_points2d/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.example.repeated_range.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.repeated_range.dir/rule +.PHONY : examples/CMakeFiles/thrust.example.repeated_range.dir/rule + +# Convenience name for target. +thrust.example.repeated_range: examples/CMakeFiles/thrust.example.repeated_range.dir/rule +.PHONY : thrust.example.repeated_range + +# fast build rule for target. +thrust.example.repeated_range/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.repeated_range.dir/build.make examples/CMakeFiles/thrust.example.repeated_range.dir/build +.PHONY : thrust.example.repeated_range/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.all.example.repeated_range.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.repeated_range.dir/rule +.PHONY : examples/CMakeFiles/thrust.all.example.repeated_range.dir/rule + +# Convenience name for target. +thrust.all.example.repeated_range: examples/CMakeFiles/thrust.all.example.repeated_range.dir/rule +.PHONY : thrust.all.example.repeated_range + +# fast build rule for target. +thrust.all.example.repeated_range/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.repeated_range.dir/build.make examples/CMakeFiles/thrust.all.example.repeated_range.dir/build +.PHONY : thrust.all.example.repeated_range/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.example.run_length_decoding.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.run_length_decoding.dir/rule +.PHONY : examples/CMakeFiles/thrust.example.run_length_decoding.dir/rule + +# Convenience name for target. +thrust.example.run_length_decoding: examples/CMakeFiles/thrust.example.run_length_decoding.dir/rule +.PHONY : thrust.example.run_length_decoding + +# fast build rule for target. +thrust.example.run_length_decoding/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.run_length_decoding.dir/build.make examples/CMakeFiles/thrust.example.run_length_decoding.dir/build +.PHONY : thrust.example.run_length_decoding/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.all.example.run_length_decoding.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.run_length_decoding.dir/rule +.PHONY : examples/CMakeFiles/thrust.all.example.run_length_decoding.dir/rule + +# Convenience name for target. +thrust.all.example.run_length_decoding: examples/CMakeFiles/thrust.all.example.run_length_decoding.dir/rule +.PHONY : thrust.all.example.run_length_decoding + +# fast build rule for target. +thrust.all.example.run_length_decoding/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.run_length_decoding.dir/build.make examples/CMakeFiles/thrust.all.example.run_length_decoding.dir/build +.PHONY : thrust.all.example.run_length_decoding/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.example.run_length_encoding.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.run_length_encoding.dir/rule +.PHONY : examples/CMakeFiles/thrust.example.run_length_encoding.dir/rule + +# Convenience name for target. +thrust.example.run_length_encoding: examples/CMakeFiles/thrust.example.run_length_encoding.dir/rule +.PHONY : thrust.example.run_length_encoding + +# fast build rule for target. +thrust.example.run_length_encoding/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.run_length_encoding.dir/build.make examples/CMakeFiles/thrust.example.run_length_encoding.dir/build +.PHONY : thrust.example.run_length_encoding/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.all.example.run_length_encoding.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.run_length_encoding.dir/rule +.PHONY : examples/CMakeFiles/thrust.all.example.run_length_encoding.dir/rule + +# Convenience name for target. +thrust.all.example.run_length_encoding: examples/CMakeFiles/thrust.all.example.run_length_encoding.dir/rule +.PHONY : thrust.all.example.run_length_encoding + +# fast build rule for target. +thrust.all.example.run_length_encoding/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.run_length_encoding.dir/build.make examples/CMakeFiles/thrust.all.example.run_length_encoding.dir/build +.PHONY : thrust.all.example.run_length_encoding/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.example.saxpy.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.saxpy.dir/rule +.PHONY : examples/CMakeFiles/thrust.example.saxpy.dir/rule + +# Convenience name for target. +thrust.example.saxpy: examples/CMakeFiles/thrust.example.saxpy.dir/rule +.PHONY : thrust.example.saxpy + +# fast build rule for target. +thrust.example.saxpy/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.saxpy.dir/build.make examples/CMakeFiles/thrust.example.saxpy.dir/build +.PHONY : thrust.example.saxpy/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.all.example.saxpy.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.saxpy.dir/rule +.PHONY : examples/CMakeFiles/thrust.all.example.saxpy.dir/rule + +# Convenience name for target. +thrust.all.example.saxpy: examples/CMakeFiles/thrust.all.example.saxpy.dir/rule +.PHONY : thrust.all.example.saxpy + +# fast build rule for target. +thrust.all.example.saxpy/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.saxpy.dir/build.make examples/CMakeFiles/thrust.all.example.saxpy.dir/build +.PHONY : thrust.all.example.saxpy/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.example.scan_by_key.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.scan_by_key.dir/rule +.PHONY : examples/CMakeFiles/thrust.example.scan_by_key.dir/rule + +# Convenience name for target. +thrust.example.scan_by_key: examples/CMakeFiles/thrust.example.scan_by_key.dir/rule +.PHONY : thrust.example.scan_by_key + +# fast build rule for target. +thrust.example.scan_by_key/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.scan_by_key.dir/build.make examples/CMakeFiles/thrust.example.scan_by_key.dir/build +.PHONY : thrust.example.scan_by_key/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.all.example.scan_by_key.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.scan_by_key.dir/rule +.PHONY : examples/CMakeFiles/thrust.all.example.scan_by_key.dir/rule + +# Convenience name for target. +thrust.all.example.scan_by_key: examples/CMakeFiles/thrust.all.example.scan_by_key.dir/rule +.PHONY : thrust.all.example.scan_by_key + +# fast build rule for target. +thrust.all.example.scan_by_key/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.scan_by_key.dir/build.make examples/CMakeFiles/thrust.all.example.scan_by_key.dir/build +.PHONY : thrust.all.example.scan_by_key/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/rule +.PHONY : examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/rule + +# Convenience name for target. +thrust.example.scan_matrix_by_rows: examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/rule +.PHONY : thrust.example.scan_matrix_by_rows + +# fast build rule for target. +thrust.example.scan_matrix_by_rows/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/build.make examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/build +.PHONY : thrust.example.scan_matrix_by_rows/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.all.example.scan_matrix_by_rows.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.scan_matrix_by_rows.dir/rule +.PHONY : examples/CMakeFiles/thrust.all.example.scan_matrix_by_rows.dir/rule + +# Convenience name for target. +thrust.all.example.scan_matrix_by_rows: examples/CMakeFiles/thrust.all.example.scan_matrix_by_rows.dir/rule +.PHONY : thrust.all.example.scan_matrix_by_rows + +# fast build rule for target. +thrust.all.example.scan_matrix_by_rows/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.scan_matrix_by_rows.dir/build.make examples/CMakeFiles/thrust.all.example.scan_matrix_by_rows.dir/build +.PHONY : thrust.all.example.scan_matrix_by_rows/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.example.set_operations.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.set_operations.dir/rule +.PHONY : examples/CMakeFiles/thrust.example.set_operations.dir/rule + +# Convenience name for target. +thrust.example.set_operations: examples/CMakeFiles/thrust.example.set_operations.dir/rule +.PHONY : thrust.example.set_operations + +# fast build rule for target. +thrust.example.set_operations/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.set_operations.dir/build.make examples/CMakeFiles/thrust.example.set_operations.dir/build +.PHONY : thrust.example.set_operations/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.all.example.set_operations.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.set_operations.dir/rule +.PHONY : examples/CMakeFiles/thrust.all.example.set_operations.dir/rule + +# Convenience name for target. +thrust.all.example.set_operations: examples/CMakeFiles/thrust.all.example.set_operations.dir/rule +.PHONY : thrust.all.example.set_operations + +# fast build rule for target. +thrust.all.example.set_operations/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.set_operations.dir/build.make examples/CMakeFiles/thrust.all.example.set_operations.dir/build +.PHONY : thrust.all.example.set_operations/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.example.simple_moving_average.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.simple_moving_average.dir/rule +.PHONY : examples/CMakeFiles/thrust.example.simple_moving_average.dir/rule + +# Convenience name for target. +thrust.example.simple_moving_average: examples/CMakeFiles/thrust.example.simple_moving_average.dir/rule +.PHONY : thrust.example.simple_moving_average + +# fast build rule for target. +thrust.example.simple_moving_average/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.simple_moving_average.dir/build.make examples/CMakeFiles/thrust.example.simple_moving_average.dir/build +.PHONY : thrust.example.simple_moving_average/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.all.example.simple_moving_average.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.simple_moving_average.dir/rule +.PHONY : examples/CMakeFiles/thrust.all.example.simple_moving_average.dir/rule + +# Convenience name for target. +thrust.all.example.simple_moving_average: examples/CMakeFiles/thrust.all.example.simple_moving_average.dir/rule +.PHONY : thrust.all.example.simple_moving_average + +# fast build rule for target. +thrust.all.example.simple_moving_average/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.simple_moving_average.dir/build.make examples/CMakeFiles/thrust.all.example.simple_moving_average.dir/build +.PHONY : thrust.all.example.simple_moving_average/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.example.sort.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.sort.dir/rule +.PHONY : examples/CMakeFiles/thrust.example.sort.dir/rule + +# Convenience name for target. +thrust.example.sort: examples/CMakeFiles/thrust.example.sort.dir/rule +.PHONY : thrust.example.sort + +# fast build rule for target. +thrust.example.sort/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.sort.dir/build.make examples/CMakeFiles/thrust.example.sort.dir/build +.PHONY : thrust.example.sort/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.all.example.sort.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.sort.dir/rule +.PHONY : examples/CMakeFiles/thrust.all.example.sort.dir/rule + +# Convenience name for target. +thrust.all.example.sort: examples/CMakeFiles/thrust.all.example.sort.dir/rule +.PHONY : thrust.all.example.sort + +# fast build rule for target. +thrust.all.example.sort/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.sort.dir/build.make examples/CMakeFiles/thrust.all.example.sort.dir/build +.PHONY : thrust.all.example.sort/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/rule +.PHONY : examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/rule + +# Convenience name for target. +thrust.example.sorting_aos_vs_soa: examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/rule +.PHONY : thrust.example.sorting_aos_vs_soa + +# fast build rule for target. +thrust.example.sorting_aos_vs_soa/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/build.make examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/build +.PHONY : thrust.example.sorting_aos_vs_soa/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.all.example.sorting_aos_vs_soa.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.sorting_aos_vs_soa.dir/rule +.PHONY : examples/CMakeFiles/thrust.all.example.sorting_aos_vs_soa.dir/rule + +# Convenience name for target. +thrust.all.example.sorting_aos_vs_soa: examples/CMakeFiles/thrust.all.example.sorting_aos_vs_soa.dir/rule +.PHONY : thrust.all.example.sorting_aos_vs_soa + +# fast build rule for target. +thrust.all.example.sorting_aos_vs_soa/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.sorting_aos_vs_soa.dir/build.make examples/CMakeFiles/thrust.all.example.sorting_aos_vs_soa.dir/build +.PHONY : thrust.all.example.sorting_aos_vs_soa/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.example.sparse_vector.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.sparse_vector.dir/rule +.PHONY : examples/CMakeFiles/thrust.example.sparse_vector.dir/rule + +# Convenience name for target. +thrust.example.sparse_vector: examples/CMakeFiles/thrust.example.sparse_vector.dir/rule +.PHONY : thrust.example.sparse_vector + +# fast build rule for target. +thrust.example.sparse_vector/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.sparse_vector.dir/build.make examples/CMakeFiles/thrust.example.sparse_vector.dir/build +.PHONY : thrust.example.sparse_vector/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.all.example.sparse_vector.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.sparse_vector.dir/rule +.PHONY : examples/CMakeFiles/thrust.all.example.sparse_vector.dir/rule + +# Convenience name for target. +thrust.all.example.sparse_vector: examples/CMakeFiles/thrust.all.example.sparse_vector.dir/rule +.PHONY : thrust.all.example.sparse_vector + +# fast build rule for target. +thrust.all.example.sparse_vector/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.sparse_vector.dir/build.make examples/CMakeFiles/thrust.all.example.sparse_vector.dir/build +.PHONY : thrust.all.example.sparse_vector/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.example.stream_compaction.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.stream_compaction.dir/rule +.PHONY : examples/CMakeFiles/thrust.example.stream_compaction.dir/rule + +# Convenience name for target. +thrust.example.stream_compaction: examples/CMakeFiles/thrust.example.stream_compaction.dir/rule +.PHONY : thrust.example.stream_compaction + +# fast build rule for target. +thrust.example.stream_compaction/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.stream_compaction.dir/build.make examples/CMakeFiles/thrust.example.stream_compaction.dir/build +.PHONY : thrust.example.stream_compaction/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.all.example.stream_compaction.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.stream_compaction.dir/rule +.PHONY : examples/CMakeFiles/thrust.all.example.stream_compaction.dir/rule + +# Convenience name for target. +thrust.all.example.stream_compaction: examples/CMakeFiles/thrust.all.example.stream_compaction.dir/rule +.PHONY : thrust.all.example.stream_compaction + +# fast build rule for target. +thrust.all.example.stream_compaction/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.stream_compaction.dir/build.make examples/CMakeFiles/thrust.all.example.stream_compaction.dir/build +.PHONY : thrust.all.example.stream_compaction/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.example.strided_range.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.strided_range.dir/rule +.PHONY : examples/CMakeFiles/thrust.example.strided_range.dir/rule + +# Convenience name for target. +thrust.example.strided_range: examples/CMakeFiles/thrust.example.strided_range.dir/rule +.PHONY : thrust.example.strided_range + +# fast build rule for target. +thrust.example.strided_range/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.strided_range.dir/build.make examples/CMakeFiles/thrust.example.strided_range.dir/build +.PHONY : thrust.example.strided_range/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.all.example.strided_range.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.strided_range.dir/rule +.PHONY : examples/CMakeFiles/thrust.all.example.strided_range.dir/rule + +# Convenience name for target. +thrust.all.example.strided_range: examples/CMakeFiles/thrust.all.example.strided_range.dir/rule +.PHONY : thrust.all.example.strided_range + +# fast build rule for target. +thrust.all.example.strided_range/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.strided_range.dir/build.make examples/CMakeFiles/thrust.all.example.strided_range.dir/build +.PHONY : thrust.all.example.strided_range/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.example.sum.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.sum.dir/rule +.PHONY : examples/CMakeFiles/thrust.example.sum.dir/rule + +# Convenience name for target. +thrust.example.sum: examples/CMakeFiles/thrust.example.sum.dir/rule +.PHONY : thrust.example.sum + +# fast build rule for target. +thrust.example.sum/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.sum.dir/build.make examples/CMakeFiles/thrust.example.sum.dir/build +.PHONY : thrust.example.sum/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.all.example.sum.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.sum.dir/rule +.PHONY : examples/CMakeFiles/thrust.all.example.sum.dir/rule + +# Convenience name for target. +thrust.all.example.sum: examples/CMakeFiles/thrust.all.example.sum.dir/rule +.PHONY : thrust.all.example.sum + +# fast build rule for target. +thrust.all.example.sum/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.sum.dir/build.make examples/CMakeFiles/thrust.all.example.sum.dir/build +.PHONY : thrust.all.example.sum/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.example.sum_rows.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.sum_rows.dir/rule +.PHONY : examples/CMakeFiles/thrust.example.sum_rows.dir/rule + +# Convenience name for target. +thrust.example.sum_rows: examples/CMakeFiles/thrust.example.sum_rows.dir/rule +.PHONY : thrust.example.sum_rows + +# fast build rule for target. +thrust.example.sum_rows/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.sum_rows.dir/build.make examples/CMakeFiles/thrust.example.sum_rows.dir/build +.PHONY : thrust.example.sum_rows/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.all.example.sum_rows.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.sum_rows.dir/rule +.PHONY : examples/CMakeFiles/thrust.all.example.sum_rows.dir/rule + +# Convenience name for target. +thrust.all.example.sum_rows: examples/CMakeFiles/thrust.all.example.sum_rows.dir/rule +.PHONY : thrust.all.example.sum_rows + +# fast build rule for target. +thrust.all.example.sum_rows/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.sum_rows.dir/build.make examples/CMakeFiles/thrust.all.example.sum_rows.dir/build +.PHONY : thrust.all.example.sum_rows/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.example.summary_statistics.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.summary_statistics.dir/rule +.PHONY : examples/CMakeFiles/thrust.example.summary_statistics.dir/rule + +# Convenience name for target. +thrust.example.summary_statistics: examples/CMakeFiles/thrust.example.summary_statistics.dir/rule +.PHONY : thrust.example.summary_statistics + +# fast build rule for target. +thrust.example.summary_statistics/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.summary_statistics.dir/build.make examples/CMakeFiles/thrust.example.summary_statistics.dir/build +.PHONY : thrust.example.summary_statistics/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.all.example.summary_statistics.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.summary_statistics.dir/rule +.PHONY : examples/CMakeFiles/thrust.all.example.summary_statistics.dir/rule + +# Convenience name for target. +thrust.all.example.summary_statistics: examples/CMakeFiles/thrust.all.example.summary_statistics.dir/rule +.PHONY : thrust.all.example.summary_statistics + +# fast build rule for target. +thrust.all.example.summary_statistics/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.summary_statistics.dir/build.make examples/CMakeFiles/thrust.all.example.summary_statistics.dir/build +.PHONY : thrust.all.example.summary_statistics/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.example.summed_area_table.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.summed_area_table.dir/rule +.PHONY : examples/CMakeFiles/thrust.example.summed_area_table.dir/rule + +# Convenience name for target. +thrust.example.summed_area_table: examples/CMakeFiles/thrust.example.summed_area_table.dir/rule +.PHONY : thrust.example.summed_area_table + +# fast build rule for target. +thrust.example.summed_area_table/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.summed_area_table.dir/build.make examples/CMakeFiles/thrust.example.summed_area_table.dir/build +.PHONY : thrust.example.summed_area_table/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.all.example.summed_area_table.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.summed_area_table.dir/rule +.PHONY : examples/CMakeFiles/thrust.all.example.summed_area_table.dir/rule + +# Convenience name for target. +thrust.all.example.summed_area_table: examples/CMakeFiles/thrust.all.example.summed_area_table.dir/rule +.PHONY : thrust.all.example.summed_area_table + +# fast build rule for target. +thrust.all.example.summed_area_table/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.summed_area_table.dir/build.make examples/CMakeFiles/thrust.all.example.summed_area_table.dir/build +.PHONY : thrust.all.example.summed_area_table/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.example.tiled_range.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.tiled_range.dir/rule +.PHONY : examples/CMakeFiles/thrust.example.tiled_range.dir/rule + +# Convenience name for target. +thrust.example.tiled_range: examples/CMakeFiles/thrust.example.tiled_range.dir/rule +.PHONY : thrust.example.tiled_range + +# fast build rule for target. +thrust.example.tiled_range/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.tiled_range.dir/build.make examples/CMakeFiles/thrust.example.tiled_range.dir/build +.PHONY : thrust.example.tiled_range/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.all.example.tiled_range.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.tiled_range.dir/rule +.PHONY : examples/CMakeFiles/thrust.all.example.tiled_range.dir/rule + +# Convenience name for target. +thrust.all.example.tiled_range: examples/CMakeFiles/thrust.all.example.tiled_range.dir/rule +.PHONY : thrust.all.example.tiled_range + +# fast build rule for target. +thrust.all.example.tiled_range/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.tiled_range.dir/build.make examples/CMakeFiles/thrust.all.example.tiled_range.dir/build +.PHONY : thrust.all.example.tiled_range/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/rule +.PHONY : examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/rule + +# Convenience name for target. +thrust.example.transform_input_output_iterator: examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/rule +.PHONY : thrust.example.transform_input_output_iterator + +# fast build rule for target. +thrust.example.transform_input_output_iterator/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/build.make examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/build +.PHONY : thrust.example.transform_input_output_iterator/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.all.example.transform_input_output_iterator.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.transform_input_output_iterator.dir/rule +.PHONY : examples/CMakeFiles/thrust.all.example.transform_input_output_iterator.dir/rule + +# Convenience name for target. +thrust.all.example.transform_input_output_iterator: examples/CMakeFiles/thrust.all.example.transform_input_output_iterator.dir/rule +.PHONY : thrust.all.example.transform_input_output_iterator + +# fast build rule for target. +thrust.all.example.transform_input_output_iterator/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.transform_input_output_iterator.dir/build.make examples/CMakeFiles/thrust.all.example.transform_input_output_iterator.dir/build +.PHONY : thrust.all.example.transform_input_output_iterator/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.example.transform_iterator.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.transform_iterator.dir/rule +.PHONY : examples/CMakeFiles/thrust.example.transform_iterator.dir/rule + +# Convenience name for target. +thrust.example.transform_iterator: examples/CMakeFiles/thrust.example.transform_iterator.dir/rule +.PHONY : thrust.example.transform_iterator + +# fast build rule for target. +thrust.example.transform_iterator/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.transform_iterator.dir/build.make examples/CMakeFiles/thrust.example.transform_iterator.dir/build +.PHONY : thrust.example.transform_iterator/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.all.example.transform_iterator.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.transform_iterator.dir/rule +.PHONY : examples/CMakeFiles/thrust.all.example.transform_iterator.dir/rule + +# Convenience name for target. +thrust.all.example.transform_iterator: examples/CMakeFiles/thrust.all.example.transform_iterator.dir/rule +.PHONY : thrust.all.example.transform_iterator + +# fast build rule for target. +thrust.all.example.transform_iterator/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.transform_iterator.dir/build.make examples/CMakeFiles/thrust.all.example.transform_iterator.dir/build +.PHONY : thrust.all.example.transform_iterator/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.example.transform_output_iterator.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.transform_output_iterator.dir/rule +.PHONY : examples/CMakeFiles/thrust.example.transform_output_iterator.dir/rule + +# Convenience name for target. +thrust.example.transform_output_iterator: examples/CMakeFiles/thrust.example.transform_output_iterator.dir/rule +.PHONY : thrust.example.transform_output_iterator + +# fast build rule for target. +thrust.example.transform_output_iterator/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.transform_output_iterator.dir/build.make examples/CMakeFiles/thrust.example.transform_output_iterator.dir/build +.PHONY : thrust.example.transform_output_iterator/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.all.example.transform_output_iterator.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.transform_output_iterator.dir/rule +.PHONY : examples/CMakeFiles/thrust.all.example.transform_output_iterator.dir/rule + +# Convenience name for target. +thrust.all.example.transform_output_iterator: examples/CMakeFiles/thrust.all.example.transform_output_iterator.dir/rule +.PHONY : thrust.all.example.transform_output_iterator + +# fast build rule for target. +thrust.all.example.transform_output_iterator/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.transform_output_iterator.dir/build.make examples/CMakeFiles/thrust.all.example.transform_output_iterator.dir/build +.PHONY : thrust.all.example.transform_output_iterator/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.example.uninitialized_vector.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.uninitialized_vector.dir/rule +.PHONY : examples/CMakeFiles/thrust.example.uninitialized_vector.dir/rule + +# Convenience name for target. +thrust.example.uninitialized_vector: examples/CMakeFiles/thrust.example.uninitialized_vector.dir/rule +.PHONY : thrust.example.uninitialized_vector + +# fast build rule for target. +thrust.example.uninitialized_vector/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.uninitialized_vector.dir/build.make examples/CMakeFiles/thrust.example.uninitialized_vector.dir/build +.PHONY : thrust.example.uninitialized_vector/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.all.example.uninitialized_vector.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.uninitialized_vector.dir/rule +.PHONY : examples/CMakeFiles/thrust.all.example.uninitialized_vector.dir/rule + +# Convenience name for target. +thrust.all.example.uninitialized_vector: examples/CMakeFiles/thrust.all.example.uninitialized_vector.dir/rule +.PHONY : thrust.all.example.uninitialized_vector + +# fast build rule for target. +thrust.all.example.uninitialized_vector/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.uninitialized_vector.dir/build.make examples/CMakeFiles/thrust.all.example.uninitialized_vector.dir/build +.PHONY : thrust.all.example.uninitialized_vector/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.example.version.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.version.dir/rule +.PHONY : examples/CMakeFiles/thrust.example.version.dir/rule + +# Convenience name for target. +thrust.example.version: examples/CMakeFiles/thrust.example.version.dir/rule +.PHONY : thrust.example.version + +# fast build rule for target. +thrust.example.version/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.version.dir/build.make examples/CMakeFiles/thrust.example.version.dir/build +.PHONY : thrust.example.version/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.all.example.version.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.version.dir/rule +.PHONY : examples/CMakeFiles/thrust.all.example.version.dir/rule + +# Convenience name for target. +thrust.all.example.version: examples/CMakeFiles/thrust.all.example.version.dir/rule +.PHONY : thrust.all.example.version + +# fast build rule for target. +thrust.all.example.version/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.version.dir/build.make examples/CMakeFiles/thrust.all.example.version.dir/build +.PHONY : thrust.all.example.version/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.example.weld_vertices.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.weld_vertices.dir/rule +.PHONY : examples/CMakeFiles/thrust.example.weld_vertices.dir/rule + +# Convenience name for target. +thrust.example.weld_vertices: examples/CMakeFiles/thrust.example.weld_vertices.dir/rule +.PHONY : thrust.example.weld_vertices + +# fast build rule for target. +thrust.example.weld_vertices/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.weld_vertices.dir/build.make examples/CMakeFiles/thrust.example.weld_vertices.dir/build +.PHONY : thrust.example.weld_vertices/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.all.example.weld_vertices.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.weld_vertices.dir/rule +.PHONY : examples/CMakeFiles/thrust.all.example.weld_vertices.dir/rule + +# Convenience name for target. +thrust.all.example.weld_vertices: examples/CMakeFiles/thrust.all.example.weld_vertices.dir/rule +.PHONY : thrust.all.example.weld_vertices + +# fast build rule for target. +thrust.all.example.weld_vertices/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.weld_vertices.dir/build.make examples/CMakeFiles/thrust.all.example.weld_vertices.dir/build +.PHONY : thrust.all.example.weld_vertices/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.example.word_count.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.example.word_count.dir/rule +.PHONY : examples/CMakeFiles/thrust.example.word_count.dir/rule + +# Convenience name for target. +thrust.example.word_count: examples/CMakeFiles/thrust.example.word_count.dir/rule +.PHONY : thrust.example.word_count + +# fast build rule for target. +thrust.example.word_count/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.word_count.dir/build.make examples/CMakeFiles/thrust.example.word_count.dir/build +.PHONY : thrust.example.word_count/fast + +# Convenience name for target. +examples/CMakeFiles/thrust.all.example.word_count.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/CMakeFiles/thrust.all.example.word_count.dir/rule +.PHONY : examples/CMakeFiles/thrust.all.example.word_count.dir/rule + +# Convenience name for target. +thrust.all.example.word_count: examples/CMakeFiles/thrust.all.example.word_count.dir/rule +.PHONY : thrust.all.example.word_count + +# fast build rule for target. +thrust.all.example.word_count/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.all.example.word_count.dir/build.make examples/CMakeFiles/thrust.all.example.word_count.dir/build +.PHONY : thrust.all.example.word_count/fast + +arbitrary_transformation.o: arbitrary_transformation.cu.o +.PHONY : arbitrary_transformation.o + +# target to build an object file +arbitrary_transformation.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/build.make examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/arbitrary_transformation.cu.o +.PHONY : arbitrary_transformation.cu.o + +arbitrary_transformation.i: arbitrary_transformation.cu.i +.PHONY : arbitrary_transformation.i + +# target to preprocess a source file +arbitrary_transformation.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/build.make examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/arbitrary_transformation.cu.i +.PHONY : arbitrary_transformation.cu.i + +arbitrary_transformation.s: arbitrary_transformation.cu.s +.PHONY : arbitrary_transformation.s + +# target to generate assembly for a file +arbitrary_transformation.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/build.make examples/CMakeFiles/thrust.example.arbitrary_transformation.dir/arbitrary_transformation.cu.s +.PHONY : arbitrary_transformation.cu.s + +basic_vector.o: basic_vector.cu.o +.PHONY : basic_vector.o + +# target to build an object file +basic_vector.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.basic_vector.dir/build.make examples/CMakeFiles/thrust.example.basic_vector.dir/basic_vector.cu.o +.PHONY : basic_vector.cu.o + +basic_vector.i: basic_vector.cu.i +.PHONY : basic_vector.i + +# target to preprocess a source file +basic_vector.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.basic_vector.dir/build.make examples/CMakeFiles/thrust.example.basic_vector.dir/basic_vector.cu.i +.PHONY : basic_vector.cu.i + +basic_vector.s: basic_vector.cu.s +.PHONY : basic_vector.s + +# target to generate assembly for a file +basic_vector.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.basic_vector.dir/build.make examples/CMakeFiles/thrust.example.basic_vector.dir/basic_vector.cu.s +.PHONY : basic_vector.cu.s + +bounding_box.o: bounding_box.cu.o +.PHONY : bounding_box.o + +# target to build an object file +bounding_box.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.bounding_box.dir/build.make examples/CMakeFiles/thrust.example.bounding_box.dir/bounding_box.cu.o +.PHONY : bounding_box.cu.o + +bounding_box.i: bounding_box.cu.i +.PHONY : bounding_box.i + +# target to preprocess a source file +bounding_box.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.bounding_box.dir/build.make examples/CMakeFiles/thrust.example.bounding_box.dir/bounding_box.cu.i +.PHONY : bounding_box.cu.i + +bounding_box.s: bounding_box.cu.s +.PHONY : bounding_box.s + +# target to generate assembly for a file +bounding_box.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.bounding_box.dir/build.make examples/CMakeFiles/thrust.example.bounding_box.dir/bounding_box.cu.s +.PHONY : bounding_box.cu.s + +bucket_sort2d.o: bucket_sort2d.cu.o +.PHONY : bucket_sort2d.o + +# target to build an object file +bucket_sort2d.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.bucket_sort2d.dir/build.make examples/CMakeFiles/thrust.example.bucket_sort2d.dir/bucket_sort2d.cu.o +.PHONY : bucket_sort2d.cu.o + +bucket_sort2d.i: bucket_sort2d.cu.i +.PHONY : bucket_sort2d.i + +# target to preprocess a source file +bucket_sort2d.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.bucket_sort2d.dir/build.make examples/CMakeFiles/thrust.example.bucket_sort2d.dir/bucket_sort2d.cu.i +.PHONY : bucket_sort2d.cu.i + +bucket_sort2d.s: bucket_sort2d.cu.s +.PHONY : bucket_sort2d.s + +# target to generate assembly for a file +bucket_sort2d.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.bucket_sort2d.dir/build.make examples/CMakeFiles/thrust.example.bucket_sort2d.dir/bucket_sort2d.cu.s +.PHONY : bucket_sort2d.cu.s + +constant_iterator.o: constant_iterator.cu.o +.PHONY : constant_iterator.o + +# target to build an object file +constant_iterator.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.constant_iterator.dir/build.make examples/CMakeFiles/thrust.example.constant_iterator.dir/constant_iterator.cu.o +.PHONY : constant_iterator.cu.o + +constant_iterator.i: constant_iterator.cu.i +.PHONY : constant_iterator.i + +# target to preprocess a source file +constant_iterator.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.constant_iterator.dir/build.make examples/CMakeFiles/thrust.example.constant_iterator.dir/constant_iterator.cu.i +.PHONY : constant_iterator.cu.i + +constant_iterator.s: constant_iterator.cu.s +.PHONY : constant_iterator.s + +# target to generate assembly for a file +constant_iterator.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.constant_iterator.dir/build.make examples/CMakeFiles/thrust.example.constant_iterator.dir/constant_iterator.cu.s +.PHONY : constant_iterator.cu.s + +counting_iterator.o: counting_iterator.cu.o +.PHONY : counting_iterator.o + +# target to build an object file +counting_iterator.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.counting_iterator.dir/build.make examples/CMakeFiles/thrust.example.counting_iterator.dir/counting_iterator.cu.o +.PHONY : counting_iterator.cu.o + +counting_iterator.i: counting_iterator.cu.i +.PHONY : counting_iterator.i + +# target to preprocess a source file +counting_iterator.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.counting_iterator.dir/build.make examples/CMakeFiles/thrust.example.counting_iterator.dir/counting_iterator.cu.i +.PHONY : counting_iterator.cu.i + +counting_iterator.s: counting_iterator.cu.s +.PHONY : counting_iterator.s + +# target to generate assembly for a file +counting_iterator.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.counting_iterator.dir/build.make examples/CMakeFiles/thrust.example.counting_iterator.dir/counting_iterator.cu.s +.PHONY : counting_iterator.cu.s + +device_ptr.o: device_ptr.cu.o +.PHONY : device_ptr.o + +# target to build an object file +device_ptr.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.device_ptr.dir/build.make examples/CMakeFiles/thrust.example.device_ptr.dir/device_ptr.cu.o +.PHONY : device_ptr.cu.o + +device_ptr.i: device_ptr.cu.i +.PHONY : device_ptr.i + +# target to preprocess a source file +device_ptr.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.device_ptr.dir/build.make examples/CMakeFiles/thrust.example.device_ptr.dir/device_ptr.cu.i +.PHONY : device_ptr.cu.i + +device_ptr.s: device_ptr.cu.s +.PHONY : device_ptr.s + +# target to generate assembly for a file +device_ptr.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.device_ptr.dir/build.make examples/CMakeFiles/thrust.example.device_ptr.dir/device_ptr.cu.s +.PHONY : device_ptr.cu.s + +discrete_voronoi.o: discrete_voronoi.cu.o +.PHONY : discrete_voronoi.o + +# target to build an object file +discrete_voronoi.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.discrete_voronoi.dir/build.make examples/CMakeFiles/thrust.example.discrete_voronoi.dir/discrete_voronoi.cu.o +.PHONY : discrete_voronoi.cu.o + +discrete_voronoi.i: discrete_voronoi.cu.i +.PHONY : discrete_voronoi.i + +# target to preprocess a source file +discrete_voronoi.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.discrete_voronoi.dir/build.make examples/CMakeFiles/thrust.example.discrete_voronoi.dir/discrete_voronoi.cu.i +.PHONY : discrete_voronoi.cu.i + +discrete_voronoi.s: discrete_voronoi.cu.s +.PHONY : discrete_voronoi.s + +# target to generate assembly for a file +discrete_voronoi.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.discrete_voronoi.dir/build.make examples/CMakeFiles/thrust.example.discrete_voronoi.dir/discrete_voronoi.cu.s +.PHONY : discrete_voronoi.cu.s + +dot_products_with_zip.o: dot_products_with_zip.cu.o +.PHONY : dot_products_with_zip.o + +# target to build an object file +dot_products_with_zip.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/build.make examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/dot_products_with_zip.cu.o +.PHONY : dot_products_with_zip.cu.o + +dot_products_with_zip.i: dot_products_with_zip.cu.i +.PHONY : dot_products_with_zip.i + +# target to preprocess a source file +dot_products_with_zip.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/build.make examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/dot_products_with_zip.cu.i +.PHONY : dot_products_with_zip.cu.i + +dot_products_with_zip.s: dot_products_with_zip.cu.s +.PHONY : dot_products_with_zip.s + +# target to generate assembly for a file +dot_products_with_zip.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/build.make examples/CMakeFiles/thrust.example.dot_products_with_zip.dir/dot_products_with_zip.cu.s +.PHONY : dot_products_with_zip.cu.s + +expand.o: expand.cu.o +.PHONY : expand.o + +# target to build an object file +expand.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.expand.dir/build.make examples/CMakeFiles/thrust.example.expand.dir/expand.cu.o +.PHONY : expand.cu.o + +expand.i: expand.cu.i +.PHONY : expand.i + +# target to preprocess a source file +expand.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.expand.dir/build.make examples/CMakeFiles/thrust.example.expand.dir/expand.cu.i +.PHONY : expand.cu.i + +expand.s: expand.cu.s +.PHONY : expand.s + +# target to generate assembly for a file +expand.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.expand.dir/build.make examples/CMakeFiles/thrust.example.expand.dir/expand.cu.s +.PHONY : expand.cu.s + +fill_copy_sequence.o: fill_copy_sequence.cu.o +.PHONY : fill_copy_sequence.o + +# target to build an object file +fill_copy_sequence.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/build.make examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/fill_copy_sequence.cu.o +.PHONY : fill_copy_sequence.cu.o + +fill_copy_sequence.i: fill_copy_sequence.cu.i +.PHONY : fill_copy_sequence.i + +# target to preprocess a source file +fill_copy_sequence.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/build.make examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/fill_copy_sequence.cu.i +.PHONY : fill_copy_sequence.cu.i + +fill_copy_sequence.s: fill_copy_sequence.cu.s +.PHONY : fill_copy_sequence.s + +# target to generate assembly for a file +fill_copy_sequence.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/build.make examples/CMakeFiles/thrust.example.fill_copy_sequence.dir/fill_copy_sequence.cu.s +.PHONY : fill_copy_sequence.cu.s + +histogram.o: histogram.cu.o +.PHONY : histogram.o + +# target to build an object file +histogram.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.histogram.dir/build.make examples/CMakeFiles/thrust.example.histogram.dir/histogram.cu.o +.PHONY : histogram.cu.o + +histogram.i: histogram.cu.i +.PHONY : histogram.i + +# target to preprocess a source file +histogram.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.histogram.dir/build.make examples/CMakeFiles/thrust.example.histogram.dir/histogram.cu.i +.PHONY : histogram.cu.i + +histogram.s: histogram.cu.s +.PHONY : histogram.s + +# target to generate assembly for a file +histogram.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.histogram.dir/build.make examples/CMakeFiles/thrust.example.histogram.dir/histogram.cu.s +.PHONY : histogram.cu.s + +lambda.o: lambda.cu.o +.PHONY : lambda.o + +# target to build an object file +lambda.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.lambda.dir/build.make examples/CMakeFiles/thrust.example.lambda.dir/lambda.cu.o +.PHONY : lambda.cu.o + +lambda.i: lambda.cu.i +.PHONY : lambda.i + +# target to preprocess a source file +lambda.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.lambda.dir/build.make examples/CMakeFiles/thrust.example.lambda.dir/lambda.cu.i +.PHONY : lambda.cu.i + +lambda.s: lambda.cu.s +.PHONY : lambda.s + +# target to generate assembly for a file +lambda.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.lambda.dir/build.make examples/CMakeFiles/thrust.example.lambda.dir/lambda.cu.s +.PHONY : lambda.cu.s + +lexicographical_sort.o: lexicographical_sort.cu.o +.PHONY : lexicographical_sort.o + +# target to build an object file +lexicographical_sort.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.lexicographical_sort.dir/build.make examples/CMakeFiles/thrust.example.lexicographical_sort.dir/lexicographical_sort.cu.o +.PHONY : lexicographical_sort.cu.o + +lexicographical_sort.i: lexicographical_sort.cu.i +.PHONY : lexicographical_sort.i + +# target to preprocess a source file +lexicographical_sort.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.lexicographical_sort.dir/build.make examples/CMakeFiles/thrust.example.lexicographical_sort.dir/lexicographical_sort.cu.i +.PHONY : lexicographical_sort.cu.i + +lexicographical_sort.s: lexicographical_sort.cu.s +.PHONY : lexicographical_sort.s + +# target to generate assembly for a file +lexicographical_sort.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.lexicographical_sort.dir/build.make examples/CMakeFiles/thrust.example.lexicographical_sort.dir/lexicographical_sort.cu.s +.PHONY : lexicographical_sort.cu.s + +max_abs_diff.o: max_abs_diff.cu.o +.PHONY : max_abs_diff.o + +# target to build an object file +max_abs_diff.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.max_abs_diff.dir/build.make examples/CMakeFiles/thrust.example.max_abs_diff.dir/max_abs_diff.cu.o +.PHONY : max_abs_diff.cu.o + +max_abs_diff.i: max_abs_diff.cu.i +.PHONY : max_abs_diff.i + +# target to preprocess a source file +max_abs_diff.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.max_abs_diff.dir/build.make examples/CMakeFiles/thrust.example.max_abs_diff.dir/max_abs_diff.cu.i +.PHONY : max_abs_diff.cu.i + +max_abs_diff.s: max_abs_diff.cu.s +.PHONY : max_abs_diff.s + +# target to generate assembly for a file +max_abs_diff.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.max_abs_diff.dir/build.make examples/CMakeFiles/thrust.example.max_abs_diff.dir/max_abs_diff.cu.s +.PHONY : max_abs_diff.cu.s + +minimal_custom_backend.o: minimal_custom_backend.cu.o +.PHONY : minimal_custom_backend.o + +# target to build an object file +minimal_custom_backend.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/build.make examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/minimal_custom_backend.cu.o +.PHONY : minimal_custom_backend.cu.o + +minimal_custom_backend.i: minimal_custom_backend.cu.i +.PHONY : minimal_custom_backend.i + +# target to preprocess a source file +minimal_custom_backend.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/build.make examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/minimal_custom_backend.cu.i +.PHONY : minimal_custom_backend.cu.i + +minimal_custom_backend.s: minimal_custom_backend.cu.s +.PHONY : minimal_custom_backend.s + +# target to generate assembly for a file +minimal_custom_backend.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/build.make examples/CMakeFiles/thrust.example.minimal_custom_backend.dir/minimal_custom_backend.cu.s +.PHONY : minimal_custom_backend.cu.s + +minmax.o: minmax.cu.o +.PHONY : minmax.o + +# target to build an object file +minmax.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.minmax.dir/build.make examples/CMakeFiles/thrust.example.minmax.dir/minmax.cu.o +.PHONY : minmax.cu.o + +minmax.i: minmax.cu.i +.PHONY : minmax.i + +# target to preprocess a source file +minmax.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.minmax.dir/build.make examples/CMakeFiles/thrust.example.minmax.dir/minmax.cu.i +.PHONY : minmax.cu.i + +minmax.s: minmax.cu.s +.PHONY : minmax.s + +# target to generate assembly for a file +minmax.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.minmax.dir/build.make examples/CMakeFiles/thrust.example.minmax.dir/minmax.cu.s +.PHONY : minmax.cu.s + +mode.o: mode.cu.o +.PHONY : mode.o + +# target to build an object file +mode.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.mode.dir/build.make examples/CMakeFiles/thrust.example.mode.dir/mode.cu.o +.PHONY : mode.cu.o + +mode.i: mode.cu.i +.PHONY : mode.i + +# target to preprocess a source file +mode.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.mode.dir/build.make examples/CMakeFiles/thrust.example.mode.dir/mode.cu.i +.PHONY : mode.cu.i + +mode.s: mode.cu.s +.PHONY : mode.s + +# target to generate assembly for a file +mode.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.mode.dir/build.make examples/CMakeFiles/thrust.example.mode.dir/mode.cu.s +.PHONY : mode.cu.s + +monte_carlo.o: monte_carlo.cu.o +.PHONY : monte_carlo.o + +# target to build an object file +monte_carlo.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.monte_carlo.dir/build.make examples/CMakeFiles/thrust.example.monte_carlo.dir/monte_carlo.cu.o +.PHONY : monte_carlo.cu.o + +monte_carlo.i: monte_carlo.cu.i +.PHONY : monte_carlo.i + +# target to preprocess a source file +monte_carlo.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.monte_carlo.dir/build.make examples/CMakeFiles/thrust.example.monte_carlo.dir/monte_carlo.cu.i +.PHONY : monte_carlo.cu.i + +monte_carlo.s: monte_carlo.cu.s +.PHONY : monte_carlo.s + +# target to generate assembly for a file +monte_carlo.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.monte_carlo.dir/build.make examples/CMakeFiles/thrust.example.monte_carlo.dir/monte_carlo.cu.s +.PHONY : monte_carlo.cu.s + +monte_carlo_disjoint_sequences.o: monte_carlo_disjoint_sequences.cu.o +.PHONY : monte_carlo_disjoint_sequences.o + +# target to build an object file +monte_carlo_disjoint_sequences.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/build.make examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/monte_carlo_disjoint_sequences.cu.o +.PHONY : monte_carlo_disjoint_sequences.cu.o + +monte_carlo_disjoint_sequences.i: monte_carlo_disjoint_sequences.cu.i +.PHONY : monte_carlo_disjoint_sequences.i + +# target to preprocess a source file +monte_carlo_disjoint_sequences.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/build.make examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/monte_carlo_disjoint_sequences.cu.i +.PHONY : monte_carlo_disjoint_sequences.cu.i + +monte_carlo_disjoint_sequences.s: monte_carlo_disjoint_sequences.cu.s +.PHONY : monte_carlo_disjoint_sequences.s + +# target to generate assembly for a file +monte_carlo_disjoint_sequences.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/build.make examples/CMakeFiles/thrust.example.monte_carlo_disjoint_sequences.dir/monte_carlo_disjoint_sequences.cu.s +.PHONY : monte_carlo_disjoint_sequences.cu.s + +mr_basic.o: mr_basic.cu.o +.PHONY : mr_basic.o + +# target to build an object file +mr_basic.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.mr_basic.dir/build.make examples/CMakeFiles/thrust.example.mr_basic.dir/mr_basic.cu.o +.PHONY : mr_basic.cu.o + +mr_basic.i: mr_basic.cu.i +.PHONY : mr_basic.i + +# target to preprocess a source file +mr_basic.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.mr_basic.dir/build.make examples/CMakeFiles/thrust.example.mr_basic.dir/mr_basic.cu.i +.PHONY : mr_basic.cu.i + +mr_basic.s: mr_basic.cu.s +.PHONY : mr_basic.s + +# target to generate assembly for a file +mr_basic.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.mr_basic.dir/build.make examples/CMakeFiles/thrust.example.mr_basic.dir/mr_basic.cu.s +.PHONY : mr_basic.cu.s + +norm.o: norm.cu.o +.PHONY : norm.o + +# target to build an object file +norm.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.norm.dir/build.make examples/CMakeFiles/thrust.example.norm.dir/norm.cu.o +.PHONY : norm.cu.o + +norm.i: norm.cu.i +.PHONY : norm.i + +# target to preprocess a source file +norm.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.norm.dir/build.make examples/CMakeFiles/thrust.example.norm.dir/norm.cu.i +.PHONY : norm.cu.i + +norm.s: norm.cu.s +.PHONY : norm.s + +# target to generate assembly for a file +norm.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.norm.dir/build.make examples/CMakeFiles/thrust.example.norm.dir/norm.cu.s +.PHONY : norm.cu.s + +padded_grid_reduction.o: padded_grid_reduction.cu.o +.PHONY : padded_grid_reduction.o + +# target to build an object file +padded_grid_reduction.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/build.make examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/padded_grid_reduction.cu.o +.PHONY : padded_grid_reduction.cu.o + +padded_grid_reduction.i: padded_grid_reduction.cu.i +.PHONY : padded_grid_reduction.i + +# target to preprocess a source file +padded_grid_reduction.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/build.make examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/padded_grid_reduction.cu.i +.PHONY : padded_grid_reduction.cu.i + +padded_grid_reduction.s: padded_grid_reduction.cu.s +.PHONY : padded_grid_reduction.s + +# target to generate assembly for a file +padded_grid_reduction.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/build.make examples/CMakeFiles/thrust.example.padded_grid_reduction.dir/padded_grid_reduction.cu.s +.PHONY : padded_grid_reduction.cu.s + +permutation_iterator.o: permutation_iterator.cu.o +.PHONY : permutation_iterator.o + +# target to build an object file +permutation_iterator.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.permutation_iterator.dir/build.make examples/CMakeFiles/thrust.example.permutation_iterator.dir/permutation_iterator.cu.o +.PHONY : permutation_iterator.cu.o + +permutation_iterator.i: permutation_iterator.cu.i +.PHONY : permutation_iterator.i + +# target to preprocess a source file +permutation_iterator.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.permutation_iterator.dir/build.make examples/CMakeFiles/thrust.example.permutation_iterator.dir/permutation_iterator.cu.i +.PHONY : permutation_iterator.cu.i + +permutation_iterator.s: permutation_iterator.cu.s +.PHONY : permutation_iterator.s + +# target to generate assembly for a file +permutation_iterator.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.permutation_iterator.dir/build.make examples/CMakeFiles/thrust.example.permutation_iterator.dir/permutation_iterator.cu.s +.PHONY : permutation_iterator.cu.s + +raw_reference_cast.o: raw_reference_cast.cu.o +.PHONY : raw_reference_cast.o + +# target to build an object file +raw_reference_cast.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.raw_reference_cast.dir/build.make examples/CMakeFiles/thrust.example.raw_reference_cast.dir/raw_reference_cast.cu.o +.PHONY : raw_reference_cast.cu.o + +raw_reference_cast.i: raw_reference_cast.cu.i +.PHONY : raw_reference_cast.i + +# target to preprocess a source file +raw_reference_cast.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.raw_reference_cast.dir/build.make examples/CMakeFiles/thrust.example.raw_reference_cast.dir/raw_reference_cast.cu.i +.PHONY : raw_reference_cast.cu.i + +raw_reference_cast.s: raw_reference_cast.cu.s +.PHONY : raw_reference_cast.s + +# target to generate assembly for a file +raw_reference_cast.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.raw_reference_cast.dir/build.make examples/CMakeFiles/thrust.example.raw_reference_cast.dir/raw_reference_cast.cu.s +.PHONY : raw_reference_cast.cu.s + +remove_points2d.o: remove_points2d.cu.o +.PHONY : remove_points2d.o + +# target to build an object file +remove_points2d.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.remove_points2d.dir/build.make examples/CMakeFiles/thrust.example.remove_points2d.dir/remove_points2d.cu.o +.PHONY : remove_points2d.cu.o + +remove_points2d.i: remove_points2d.cu.i +.PHONY : remove_points2d.i + +# target to preprocess a source file +remove_points2d.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.remove_points2d.dir/build.make examples/CMakeFiles/thrust.example.remove_points2d.dir/remove_points2d.cu.i +.PHONY : remove_points2d.cu.i + +remove_points2d.s: remove_points2d.cu.s +.PHONY : remove_points2d.s + +# target to generate assembly for a file +remove_points2d.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.remove_points2d.dir/build.make examples/CMakeFiles/thrust.example.remove_points2d.dir/remove_points2d.cu.s +.PHONY : remove_points2d.cu.s + +repeated_range.o: repeated_range.cu.o +.PHONY : repeated_range.o + +# target to build an object file +repeated_range.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.repeated_range.dir/build.make examples/CMakeFiles/thrust.example.repeated_range.dir/repeated_range.cu.o +.PHONY : repeated_range.cu.o + +repeated_range.i: repeated_range.cu.i +.PHONY : repeated_range.i + +# target to preprocess a source file +repeated_range.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.repeated_range.dir/build.make examples/CMakeFiles/thrust.example.repeated_range.dir/repeated_range.cu.i +.PHONY : repeated_range.cu.i + +repeated_range.s: repeated_range.cu.s +.PHONY : repeated_range.s + +# target to generate assembly for a file +repeated_range.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.repeated_range.dir/build.make examples/CMakeFiles/thrust.example.repeated_range.dir/repeated_range.cu.s +.PHONY : repeated_range.cu.s + +run_length_decoding.o: run_length_decoding.cu.o +.PHONY : run_length_decoding.o + +# target to build an object file +run_length_decoding.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.run_length_decoding.dir/build.make examples/CMakeFiles/thrust.example.run_length_decoding.dir/run_length_decoding.cu.o +.PHONY : run_length_decoding.cu.o + +run_length_decoding.i: run_length_decoding.cu.i +.PHONY : run_length_decoding.i + +# target to preprocess a source file +run_length_decoding.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.run_length_decoding.dir/build.make examples/CMakeFiles/thrust.example.run_length_decoding.dir/run_length_decoding.cu.i +.PHONY : run_length_decoding.cu.i + +run_length_decoding.s: run_length_decoding.cu.s +.PHONY : run_length_decoding.s + +# target to generate assembly for a file +run_length_decoding.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.run_length_decoding.dir/build.make examples/CMakeFiles/thrust.example.run_length_decoding.dir/run_length_decoding.cu.s +.PHONY : run_length_decoding.cu.s + +run_length_encoding.o: run_length_encoding.cu.o +.PHONY : run_length_encoding.o + +# target to build an object file +run_length_encoding.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.run_length_encoding.dir/build.make examples/CMakeFiles/thrust.example.run_length_encoding.dir/run_length_encoding.cu.o +.PHONY : run_length_encoding.cu.o + +run_length_encoding.i: run_length_encoding.cu.i +.PHONY : run_length_encoding.i + +# target to preprocess a source file +run_length_encoding.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.run_length_encoding.dir/build.make examples/CMakeFiles/thrust.example.run_length_encoding.dir/run_length_encoding.cu.i +.PHONY : run_length_encoding.cu.i + +run_length_encoding.s: run_length_encoding.cu.s +.PHONY : run_length_encoding.s + +# target to generate assembly for a file +run_length_encoding.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.run_length_encoding.dir/build.make examples/CMakeFiles/thrust.example.run_length_encoding.dir/run_length_encoding.cu.s +.PHONY : run_length_encoding.cu.s + +saxpy.o: saxpy.cu.o +.PHONY : saxpy.o + +# target to build an object file +saxpy.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.saxpy.dir/build.make examples/CMakeFiles/thrust.example.saxpy.dir/saxpy.cu.o +.PHONY : saxpy.cu.o + +saxpy.i: saxpy.cu.i +.PHONY : saxpy.i + +# target to preprocess a source file +saxpy.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.saxpy.dir/build.make examples/CMakeFiles/thrust.example.saxpy.dir/saxpy.cu.i +.PHONY : saxpy.cu.i + +saxpy.s: saxpy.cu.s +.PHONY : saxpy.s + +# target to generate assembly for a file +saxpy.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.saxpy.dir/build.make examples/CMakeFiles/thrust.example.saxpy.dir/saxpy.cu.s +.PHONY : saxpy.cu.s + +scan_by_key.o: scan_by_key.cu.o +.PHONY : scan_by_key.o + +# target to build an object file +scan_by_key.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.scan_by_key.dir/build.make examples/CMakeFiles/thrust.example.scan_by_key.dir/scan_by_key.cu.o +.PHONY : scan_by_key.cu.o + +scan_by_key.i: scan_by_key.cu.i +.PHONY : scan_by_key.i + +# target to preprocess a source file +scan_by_key.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.scan_by_key.dir/build.make examples/CMakeFiles/thrust.example.scan_by_key.dir/scan_by_key.cu.i +.PHONY : scan_by_key.cu.i + +scan_by_key.s: scan_by_key.cu.s +.PHONY : scan_by_key.s + +# target to generate assembly for a file +scan_by_key.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.scan_by_key.dir/build.make examples/CMakeFiles/thrust.example.scan_by_key.dir/scan_by_key.cu.s +.PHONY : scan_by_key.cu.s + +scan_matrix_by_rows.o: scan_matrix_by_rows.cu.o +.PHONY : scan_matrix_by_rows.o + +# target to build an object file +scan_matrix_by_rows.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/build.make examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/scan_matrix_by_rows.cu.o +.PHONY : scan_matrix_by_rows.cu.o + +scan_matrix_by_rows.i: scan_matrix_by_rows.cu.i +.PHONY : scan_matrix_by_rows.i + +# target to preprocess a source file +scan_matrix_by_rows.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/build.make examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/scan_matrix_by_rows.cu.i +.PHONY : scan_matrix_by_rows.cu.i + +scan_matrix_by_rows.s: scan_matrix_by_rows.cu.s +.PHONY : scan_matrix_by_rows.s + +# target to generate assembly for a file +scan_matrix_by_rows.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/build.make examples/CMakeFiles/thrust.example.scan_matrix_by_rows.dir/scan_matrix_by_rows.cu.s +.PHONY : scan_matrix_by_rows.cu.s + +set_operations.o: set_operations.cu.o +.PHONY : set_operations.o + +# target to build an object file +set_operations.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.set_operations.dir/build.make examples/CMakeFiles/thrust.example.set_operations.dir/set_operations.cu.o +.PHONY : set_operations.cu.o + +set_operations.i: set_operations.cu.i +.PHONY : set_operations.i + +# target to preprocess a source file +set_operations.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.set_operations.dir/build.make examples/CMakeFiles/thrust.example.set_operations.dir/set_operations.cu.i +.PHONY : set_operations.cu.i + +set_operations.s: set_operations.cu.s +.PHONY : set_operations.s + +# target to generate assembly for a file +set_operations.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.set_operations.dir/build.make examples/CMakeFiles/thrust.example.set_operations.dir/set_operations.cu.s +.PHONY : set_operations.cu.s + +simple_moving_average.o: simple_moving_average.cu.o +.PHONY : simple_moving_average.o + +# target to build an object file +simple_moving_average.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.simple_moving_average.dir/build.make examples/CMakeFiles/thrust.example.simple_moving_average.dir/simple_moving_average.cu.o +.PHONY : simple_moving_average.cu.o + +simple_moving_average.i: simple_moving_average.cu.i +.PHONY : simple_moving_average.i + +# target to preprocess a source file +simple_moving_average.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.simple_moving_average.dir/build.make examples/CMakeFiles/thrust.example.simple_moving_average.dir/simple_moving_average.cu.i +.PHONY : simple_moving_average.cu.i + +simple_moving_average.s: simple_moving_average.cu.s +.PHONY : simple_moving_average.s + +# target to generate assembly for a file +simple_moving_average.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.simple_moving_average.dir/build.make examples/CMakeFiles/thrust.example.simple_moving_average.dir/simple_moving_average.cu.s +.PHONY : simple_moving_average.cu.s + +sort.o: sort.cu.o +.PHONY : sort.o + +# target to build an object file +sort.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.sort.dir/build.make examples/CMakeFiles/thrust.example.sort.dir/sort.cu.o +.PHONY : sort.cu.o + +sort.i: sort.cu.i +.PHONY : sort.i + +# target to preprocess a source file +sort.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.sort.dir/build.make examples/CMakeFiles/thrust.example.sort.dir/sort.cu.i +.PHONY : sort.cu.i + +sort.s: sort.cu.s +.PHONY : sort.s + +# target to generate assembly for a file +sort.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.sort.dir/build.make examples/CMakeFiles/thrust.example.sort.dir/sort.cu.s +.PHONY : sort.cu.s + +sorting_aos_vs_soa.o: sorting_aos_vs_soa.cu.o +.PHONY : sorting_aos_vs_soa.o + +# target to build an object file +sorting_aos_vs_soa.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/build.make examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/sorting_aos_vs_soa.cu.o +.PHONY : sorting_aos_vs_soa.cu.o + +sorting_aos_vs_soa.i: sorting_aos_vs_soa.cu.i +.PHONY : sorting_aos_vs_soa.i + +# target to preprocess a source file +sorting_aos_vs_soa.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/build.make examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/sorting_aos_vs_soa.cu.i +.PHONY : sorting_aos_vs_soa.cu.i + +sorting_aos_vs_soa.s: sorting_aos_vs_soa.cu.s +.PHONY : sorting_aos_vs_soa.s + +# target to generate assembly for a file +sorting_aos_vs_soa.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/build.make examples/CMakeFiles/thrust.example.sorting_aos_vs_soa.dir/sorting_aos_vs_soa.cu.s +.PHONY : sorting_aos_vs_soa.cu.s + +sparse_vector.o: sparse_vector.cu.o +.PHONY : sparse_vector.o + +# target to build an object file +sparse_vector.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.sparse_vector.dir/build.make examples/CMakeFiles/thrust.example.sparse_vector.dir/sparse_vector.cu.o +.PHONY : sparse_vector.cu.o + +sparse_vector.i: sparse_vector.cu.i +.PHONY : sparse_vector.i + +# target to preprocess a source file +sparse_vector.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.sparse_vector.dir/build.make examples/CMakeFiles/thrust.example.sparse_vector.dir/sparse_vector.cu.i +.PHONY : sparse_vector.cu.i + +sparse_vector.s: sparse_vector.cu.s +.PHONY : sparse_vector.s + +# target to generate assembly for a file +sparse_vector.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.sparse_vector.dir/build.make examples/CMakeFiles/thrust.example.sparse_vector.dir/sparse_vector.cu.s +.PHONY : sparse_vector.cu.s + +stream_compaction.o: stream_compaction.cu.o +.PHONY : stream_compaction.o + +# target to build an object file +stream_compaction.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.stream_compaction.dir/build.make examples/CMakeFiles/thrust.example.stream_compaction.dir/stream_compaction.cu.o +.PHONY : stream_compaction.cu.o + +stream_compaction.i: stream_compaction.cu.i +.PHONY : stream_compaction.i + +# target to preprocess a source file +stream_compaction.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.stream_compaction.dir/build.make examples/CMakeFiles/thrust.example.stream_compaction.dir/stream_compaction.cu.i +.PHONY : stream_compaction.cu.i + +stream_compaction.s: stream_compaction.cu.s +.PHONY : stream_compaction.s + +# target to generate assembly for a file +stream_compaction.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.stream_compaction.dir/build.make examples/CMakeFiles/thrust.example.stream_compaction.dir/stream_compaction.cu.s +.PHONY : stream_compaction.cu.s + +strided_range.o: strided_range.cu.o +.PHONY : strided_range.o + +# target to build an object file +strided_range.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.strided_range.dir/build.make examples/CMakeFiles/thrust.example.strided_range.dir/strided_range.cu.o +.PHONY : strided_range.cu.o + +strided_range.i: strided_range.cu.i +.PHONY : strided_range.i + +# target to preprocess a source file +strided_range.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.strided_range.dir/build.make examples/CMakeFiles/thrust.example.strided_range.dir/strided_range.cu.i +.PHONY : strided_range.cu.i + +strided_range.s: strided_range.cu.s +.PHONY : strided_range.s + +# target to generate assembly for a file +strided_range.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.strided_range.dir/build.make examples/CMakeFiles/thrust.example.strided_range.dir/strided_range.cu.s +.PHONY : strided_range.cu.s + +sum.o: sum.cu.o +.PHONY : sum.o + +# target to build an object file +sum.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.sum.dir/build.make examples/CMakeFiles/thrust.example.sum.dir/sum.cu.o +.PHONY : sum.cu.o + +sum.i: sum.cu.i +.PHONY : sum.i + +# target to preprocess a source file +sum.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.sum.dir/build.make examples/CMakeFiles/thrust.example.sum.dir/sum.cu.i +.PHONY : sum.cu.i + +sum.s: sum.cu.s +.PHONY : sum.s + +# target to generate assembly for a file +sum.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.sum.dir/build.make examples/CMakeFiles/thrust.example.sum.dir/sum.cu.s +.PHONY : sum.cu.s + +sum_rows.o: sum_rows.cu.o +.PHONY : sum_rows.o + +# target to build an object file +sum_rows.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.sum_rows.dir/build.make examples/CMakeFiles/thrust.example.sum_rows.dir/sum_rows.cu.o +.PHONY : sum_rows.cu.o + +sum_rows.i: sum_rows.cu.i +.PHONY : sum_rows.i + +# target to preprocess a source file +sum_rows.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.sum_rows.dir/build.make examples/CMakeFiles/thrust.example.sum_rows.dir/sum_rows.cu.i +.PHONY : sum_rows.cu.i + +sum_rows.s: sum_rows.cu.s +.PHONY : sum_rows.s + +# target to generate assembly for a file +sum_rows.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.sum_rows.dir/build.make examples/CMakeFiles/thrust.example.sum_rows.dir/sum_rows.cu.s +.PHONY : sum_rows.cu.s + +summary_statistics.o: summary_statistics.cu.o +.PHONY : summary_statistics.o + +# target to build an object file +summary_statistics.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.summary_statistics.dir/build.make examples/CMakeFiles/thrust.example.summary_statistics.dir/summary_statistics.cu.o +.PHONY : summary_statistics.cu.o + +summary_statistics.i: summary_statistics.cu.i +.PHONY : summary_statistics.i + +# target to preprocess a source file +summary_statistics.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.summary_statistics.dir/build.make examples/CMakeFiles/thrust.example.summary_statistics.dir/summary_statistics.cu.i +.PHONY : summary_statistics.cu.i + +summary_statistics.s: summary_statistics.cu.s +.PHONY : summary_statistics.s + +# target to generate assembly for a file +summary_statistics.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.summary_statistics.dir/build.make examples/CMakeFiles/thrust.example.summary_statistics.dir/summary_statistics.cu.s +.PHONY : summary_statistics.cu.s + +summed_area_table.o: summed_area_table.cu.o +.PHONY : summed_area_table.o + +# target to build an object file +summed_area_table.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.summed_area_table.dir/build.make examples/CMakeFiles/thrust.example.summed_area_table.dir/summed_area_table.cu.o +.PHONY : summed_area_table.cu.o + +summed_area_table.i: summed_area_table.cu.i +.PHONY : summed_area_table.i + +# target to preprocess a source file +summed_area_table.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.summed_area_table.dir/build.make examples/CMakeFiles/thrust.example.summed_area_table.dir/summed_area_table.cu.i +.PHONY : summed_area_table.cu.i + +summed_area_table.s: summed_area_table.cu.s +.PHONY : summed_area_table.s + +# target to generate assembly for a file +summed_area_table.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.summed_area_table.dir/build.make examples/CMakeFiles/thrust.example.summed_area_table.dir/summed_area_table.cu.s +.PHONY : summed_area_table.cu.s + +tiled_range.o: tiled_range.cu.o +.PHONY : tiled_range.o + +# target to build an object file +tiled_range.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.tiled_range.dir/build.make examples/CMakeFiles/thrust.example.tiled_range.dir/tiled_range.cu.o +.PHONY : tiled_range.cu.o + +tiled_range.i: tiled_range.cu.i +.PHONY : tiled_range.i + +# target to preprocess a source file +tiled_range.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.tiled_range.dir/build.make examples/CMakeFiles/thrust.example.tiled_range.dir/tiled_range.cu.i +.PHONY : tiled_range.cu.i + +tiled_range.s: tiled_range.cu.s +.PHONY : tiled_range.s + +# target to generate assembly for a file +tiled_range.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.tiled_range.dir/build.make examples/CMakeFiles/thrust.example.tiled_range.dir/tiled_range.cu.s +.PHONY : tiled_range.cu.s + +transform_input_output_iterator.o: transform_input_output_iterator.cu.o +.PHONY : transform_input_output_iterator.o + +# target to build an object file +transform_input_output_iterator.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/build.make examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/transform_input_output_iterator.cu.o +.PHONY : transform_input_output_iterator.cu.o + +transform_input_output_iterator.i: transform_input_output_iterator.cu.i +.PHONY : transform_input_output_iterator.i + +# target to preprocess a source file +transform_input_output_iterator.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/build.make examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/transform_input_output_iterator.cu.i +.PHONY : transform_input_output_iterator.cu.i + +transform_input_output_iterator.s: transform_input_output_iterator.cu.s +.PHONY : transform_input_output_iterator.s + +# target to generate assembly for a file +transform_input_output_iterator.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/build.make examples/CMakeFiles/thrust.example.transform_input_output_iterator.dir/transform_input_output_iterator.cu.s +.PHONY : transform_input_output_iterator.cu.s + +transform_iterator.o: transform_iterator.cu.o +.PHONY : transform_iterator.o + +# target to build an object file +transform_iterator.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.transform_iterator.dir/build.make examples/CMakeFiles/thrust.example.transform_iterator.dir/transform_iterator.cu.o +.PHONY : transform_iterator.cu.o + +transform_iterator.i: transform_iterator.cu.i +.PHONY : transform_iterator.i + +# target to preprocess a source file +transform_iterator.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.transform_iterator.dir/build.make examples/CMakeFiles/thrust.example.transform_iterator.dir/transform_iterator.cu.i +.PHONY : transform_iterator.cu.i + +transform_iterator.s: transform_iterator.cu.s +.PHONY : transform_iterator.s + +# target to generate assembly for a file +transform_iterator.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.transform_iterator.dir/build.make examples/CMakeFiles/thrust.example.transform_iterator.dir/transform_iterator.cu.s +.PHONY : transform_iterator.cu.s + +transform_output_iterator.o: transform_output_iterator.cu.o +.PHONY : transform_output_iterator.o + +# target to build an object file +transform_output_iterator.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.transform_output_iterator.dir/build.make examples/CMakeFiles/thrust.example.transform_output_iterator.dir/transform_output_iterator.cu.o +.PHONY : transform_output_iterator.cu.o + +transform_output_iterator.i: transform_output_iterator.cu.i +.PHONY : transform_output_iterator.i + +# target to preprocess a source file +transform_output_iterator.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.transform_output_iterator.dir/build.make examples/CMakeFiles/thrust.example.transform_output_iterator.dir/transform_output_iterator.cu.i +.PHONY : transform_output_iterator.cu.i + +transform_output_iterator.s: transform_output_iterator.cu.s +.PHONY : transform_output_iterator.s + +# target to generate assembly for a file +transform_output_iterator.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.transform_output_iterator.dir/build.make examples/CMakeFiles/thrust.example.transform_output_iterator.dir/transform_output_iterator.cu.s +.PHONY : transform_output_iterator.cu.s + +uninitialized_vector.o: uninitialized_vector.cu.o +.PHONY : uninitialized_vector.o + +# target to build an object file +uninitialized_vector.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.uninitialized_vector.dir/build.make examples/CMakeFiles/thrust.example.uninitialized_vector.dir/uninitialized_vector.cu.o +.PHONY : uninitialized_vector.cu.o + +uninitialized_vector.i: uninitialized_vector.cu.i +.PHONY : uninitialized_vector.i + +# target to preprocess a source file +uninitialized_vector.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.uninitialized_vector.dir/build.make examples/CMakeFiles/thrust.example.uninitialized_vector.dir/uninitialized_vector.cu.i +.PHONY : uninitialized_vector.cu.i + +uninitialized_vector.s: uninitialized_vector.cu.s +.PHONY : uninitialized_vector.s + +# target to generate assembly for a file +uninitialized_vector.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.uninitialized_vector.dir/build.make examples/CMakeFiles/thrust.example.uninitialized_vector.dir/uninitialized_vector.cu.s +.PHONY : uninitialized_vector.cu.s + +version.o: version.cu.o +.PHONY : version.o + +# target to build an object file +version.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.version.dir/build.make examples/CMakeFiles/thrust.example.version.dir/version.cu.o +.PHONY : version.cu.o + +version.i: version.cu.i +.PHONY : version.i + +# target to preprocess a source file +version.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.version.dir/build.make examples/CMakeFiles/thrust.example.version.dir/version.cu.i +.PHONY : version.cu.i + +version.s: version.cu.s +.PHONY : version.s + +# target to generate assembly for a file +version.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.version.dir/build.make examples/CMakeFiles/thrust.example.version.dir/version.cu.s +.PHONY : version.cu.s + +weld_vertices.o: weld_vertices.cu.o +.PHONY : weld_vertices.o + +# target to build an object file +weld_vertices.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.weld_vertices.dir/build.make examples/CMakeFiles/thrust.example.weld_vertices.dir/weld_vertices.cu.o +.PHONY : weld_vertices.cu.o + +weld_vertices.i: weld_vertices.cu.i +.PHONY : weld_vertices.i + +# target to preprocess a source file +weld_vertices.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.weld_vertices.dir/build.make examples/CMakeFiles/thrust.example.weld_vertices.dir/weld_vertices.cu.i +.PHONY : weld_vertices.cu.i + +weld_vertices.s: weld_vertices.cu.s +.PHONY : weld_vertices.s + +# target to generate assembly for a file +weld_vertices.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.weld_vertices.dir/build.make examples/CMakeFiles/thrust.example.weld_vertices.dir/weld_vertices.cu.s +.PHONY : weld_vertices.cu.s + +word_count.o: word_count.cu.o +.PHONY : word_count.o + +# target to build an object file +word_count.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.word_count.dir/build.make examples/CMakeFiles/thrust.example.word_count.dir/word_count.cu.o +.PHONY : word_count.cu.o + +word_count.i: word_count.cu.i +.PHONY : word_count.i + +# target to preprocess a source file +word_count.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.word_count.dir/build.make examples/CMakeFiles/thrust.example.word_count.dir/word_count.cu.i +.PHONY : word_count.cu.i + +word_count.s: word_count.cu.s +.PHONY : word_count.s + +# target to generate assembly for a file +word_count.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/CMakeFiles/thrust.example.word_count.dir/build.make examples/CMakeFiles/thrust.example.word_count.dir/word_count.cu.s +.PHONY : word_count.cu.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... install" + @echo "... install/local" + @echo "... install/strip" + @echo "... list_install_components" + @echo "... rebuild_cache" + @echo "... test" + @echo "... thrust.all.example.arbitrary_transformation" + @echo "... thrust.all.example.basic_vector" + @echo "... thrust.all.example.bounding_box" + @echo "... thrust.all.example.bucket_sort2d" + @echo "... thrust.all.example.constant_iterator" + @echo "... thrust.all.example.counting_iterator" + @echo "... thrust.all.example.device_ptr" + @echo "... thrust.all.example.discrete_voronoi" + @echo "... thrust.all.example.dot_products_with_zip" + @echo "... thrust.all.example.expand" + @echo "... thrust.all.example.fill_copy_sequence" + @echo "... thrust.all.example.histogram" + @echo "... thrust.all.example.lambda" + @echo "... thrust.all.example.lexicographical_sort" + @echo "... thrust.all.example.max_abs_diff" + @echo "... thrust.all.example.minimal_custom_backend" + @echo "... thrust.all.example.minmax" + @echo "... thrust.all.example.mode" + @echo "... thrust.all.example.monte_carlo" + @echo "... thrust.all.example.monte_carlo_disjoint_sequences" + @echo "... thrust.all.example.mr_basic" + @echo "... thrust.all.example.norm" + @echo "... thrust.all.example.padded_grid_reduction" + @echo "... thrust.all.example.permutation_iterator" + @echo "... thrust.all.example.raw_reference_cast" + @echo "... thrust.all.example.remove_points2d" + @echo "... thrust.all.example.repeated_range" + @echo "... thrust.all.example.run_length_decoding" + @echo "... thrust.all.example.run_length_encoding" + @echo "... thrust.all.example.saxpy" + @echo "... thrust.all.example.scan_by_key" + @echo "... thrust.all.example.scan_matrix_by_rows" + @echo "... thrust.all.example.set_operations" + @echo "... thrust.all.example.simple_moving_average" + @echo "... thrust.all.example.sort" + @echo "... thrust.all.example.sorting_aos_vs_soa" + @echo "... thrust.all.example.sparse_vector" + @echo "... thrust.all.example.stream_compaction" + @echo "... thrust.all.example.strided_range" + @echo "... thrust.all.example.sum" + @echo "... thrust.all.example.sum_rows" + @echo "... thrust.all.example.summary_statistics" + @echo "... thrust.all.example.summed_area_table" + @echo "... thrust.all.example.tiled_range" + @echo "... thrust.all.example.transform_input_output_iterator" + @echo "... thrust.all.example.transform_iterator" + @echo "... thrust.all.example.transform_output_iterator" + @echo "... thrust.all.example.uninitialized_vector" + @echo "... thrust.all.example.version" + @echo "... thrust.all.example.weld_vertices" + @echo "... thrust.all.example.word_count" + @echo "... thrust.examples" + @echo "... thrust.example.arbitrary_transformation" + @echo "... thrust.example.basic_vector" + @echo "... thrust.example.bounding_box" + @echo "... thrust.example.bucket_sort2d" + @echo "... thrust.example.constant_iterator" + @echo "... thrust.example.counting_iterator" + @echo "... thrust.example.device_ptr" + @echo "... thrust.example.discrete_voronoi" + @echo "... thrust.example.dot_products_with_zip" + @echo "... thrust.example.expand" + @echo "... thrust.example.fill_copy_sequence" + @echo "... thrust.example.histogram" + @echo "... thrust.example.lambda" + @echo "... thrust.example.lexicographical_sort" + @echo "... thrust.example.max_abs_diff" + @echo "... thrust.example.minimal_custom_backend" + @echo "... thrust.example.minmax" + @echo "... thrust.example.mode" + @echo "... thrust.example.monte_carlo" + @echo "... thrust.example.monte_carlo_disjoint_sequences" + @echo "... thrust.example.mr_basic" + @echo "... thrust.example.norm" + @echo "... thrust.example.padded_grid_reduction" + @echo "... thrust.example.permutation_iterator" + @echo "... thrust.example.raw_reference_cast" + @echo "... thrust.example.remove_points2d" + @echo "... thrust.example.repeated_range" + @echo "... thrust.example.run_length_decoding" + @echo "... thrust.example.run_length_encoding" + @echo "... thrust.example.saxpy" + @echo "... thrust.example.scan_by_key" + @echo "... thrust.example.scan_matrix_by_rows" + @echo "... thrust.example.set_operations" + @echo "... thrust.example.simple_moving_average" + @echo "... thrust.example.sort" + @echo "... thrust.example.sorting_aos_vs_soa" + @echo "... thrust.example.sparse_vector" + @echo "... thrust.example.stream_compaction" + @echo "... thrust.example.strided_range" + @echo "... thrust.example.sum" + @echo "... thrust.example.sum_rows" + @echo "... thrust.example.summary_statistics" + @echo "... thrust.example.summed_area_table" + @echo "... thrust.example.tiled_range" + @echo "... thrust.example.transform_input_output_iterator" + @echo "... thrust.example.transform_iterator" + @echo "... thrust.example.transform_output_iterator" + @echo "... thrust.example.uninitialized_vector" + @echo "... thrust.example.version" + @echo "... thrust.example.weld_vertices" + @echo "... thrust.example.word_count" + @echo "... arbitrary_transformation.o" + @echo "... arbitrary_transformation.i" + @echo "... arbitrary_transformation.s" + @echo "... basic_vector.o" + @echo "... basic_vector.i" + @echo "... basic_vector.s" + @echo "... bounding_box.o" + @echo "... bounding_box.i" + @echo "... bounding_box.s" + @echo "... bucket_sort2d.o" + @echo "... bucket_sort2d.i" + @echo "... bucket_sort2d.s" + @echo "... constant_iterator.o" + @echo "... constant_iterator.i" + @echo "... constant_iterator.s" + @echo "... counting_iterator.o" + @echo "... counting_iterator.i" + @echo "... counting_iterator.s" + @echo "... device_ptr.o" + @echo "... device_ptr.i" + @echo "... device_ptr.s" + @echo "... discrete_voronoi.o" + @echo "... discrete_voronoi.i" + @echo "... discrete_voronoi.s" + @echo "... dot_products_with_zip.o" + @echo "... dot_products_with_zip.i" + @echo "... dot_products_with_zip.s" + @echo "... expand.o" + @echo "... expand.i" + @echo "... expand.s" + @echo "... fill_copy_sequence.o" + @echo "... fill_copy_sequence.i" + @echo "... fill_copy_sequence.s" + @echo "... histogram.o" + @echo "... histogram.i" + @echo "... histogram.s" + @echo "... lambda.o" + @echo "... lambda.i" + @echo "... lambda.s" + @echo "... lexicographical_sort.o" + @echo "... lexicographical_sort.i" + @echo "... lexicographical_sort.s" + @echo "... max_abs_diff.o" + @echo "... max_abs_diff.i" + @echo "... max_abs_diff.s" + @echo "... minimal_custom_backend.o" + @echo "... minimal_custom_backend.i" + @echo "... minimal_custom_backend.s" + @echo "... minmax.o" + @echo "... minmax.i" + @echo "... minmax.s" + @echo "... mode.o" + @echo "... mode.i" + @echo "... mode.s" + @echo "... monte_carlo.o" + @echo "... monte_carlo.i" + @echo "... monte_carlo.s" + @echo "... monte_carlo_disjoint_sequences.o" + @echo "... monte_carlo_disjoint_sequences.i" + @echo "... monte_carlo_disjoint_sequences.s" + @echo "... mr_basic.o" + @echo "... mr_basic.i" + @echo "... mr_basic.s" + @echo "... norm.o" + @echo "... norm.i" + @echo "... norm.s" + @echo "... padded_grid_reduction.o" + @echo "... padded_grid_reduction.i" + @echo "... padded_grid_reduction.s" + @echo "... permutation_iterator.o" + @echo "... permutation_iterator.i" + @echo "... permutation_iterator.s" + @echo "... raw_reference_cast.o" + @echo "... raw_reference_cast.i" + @echo "... raw_reference_cast.s" + @echo "... remove_points2d.o" + @echo "... remove_points2d.i" + @echo "... remove_points2d.s" + @echo "... repeated_range.o" + @echo "... repeated_range.i" + @echo "... repeated_range.s" + @echo "... run_length_decoding.o" + @echo "... run_length_decoding.i" + @echo "... run_length_decoding.s" + @echo "... run_length_encoding.o" + @echo "... run_length_encoding.i" + @echo "... run_length_encoding.s" + @echo "... saxpy.o" + @echo "... saxpy.i" + @echo "... saxpy.s" + @echo "... scan_by_key.o" + @echo "... scan_by_key.i" + @echo "... scan_by_key.s" + @echo "... scan_matrix_by_rows.o" + @echo "... scan_matrix_by_rows.i" + @echo "... scan_matrix_by_rows.s" + @echo "... set_operations.o" + @echo "... set_operations.i" + @echo "... set_operations.s" + @echo "... simple_moving_average.o" + @echo "... simple_moving_average.i" + @echo "... simple_moving_average.s" + @echo "... sort.o" + @echo "... sort.i" + @echo "... sort.s" + @echo "... sorting_aos_vs_soa.o" + @echo "... sorting_aos_vs_soa.i" + @echo "... sorting_aos_vs_soa.s" + @echo "... sparse_vector.o" + @echo "... sparse_vector.i" + @echo "... sparse_vector.s" + @echo "... stream_compaction.o" + @echo "... stream_compaction.i" + @echo "... stream_compaction.s" + @echo "... strided_range.o" + @echo "... strided_range.i" + @echo "... strided_range.s" + @echo "... sum.o" + @echo "... sum.i" + @echo "... sum.s" + @echo "... sum_rows.o" + @echo "... sum_rows.i" + @echo "... sum_rows.s" + @echo "... summary_statistics.o" + @echo "... summary_statistics.i" + @echo "... summary_statistics.s" + @echo "... summed_area_table.o" + @echo "... summed_area_table.i" + @echo "... summed_area_table.s" + @echo "... tiled_range.o" + @echo "... tiled_range.i" + @echo "... tiled_range.s" + @echo "... transform_input_output_iterator.o" + @echo "... transform_input_output_iterator.i" + @echo "... transform_input_output_iterator.s" + @echo "... transform_iterator.o" + @echo "... transform_iterator.i" + @echo "... transform_iterator.s" + @echo "... transform_output_iterator.o" + @echo "... transform_output_iterator.i" + @echo "... transform_output_iterator.s" + @echo "... uninitialized_vector.o" + @echo "... uninitialized_vector.i" + @echo "... uninitialized_vector.s" + @echo "... version.o" + @echo "... version.i" + @echo "... version.s" + @echo "... weld_vertices.o" + @echo "... weld_vertices.i" + @echo "... weld_vertices.s" + @echo "... word_count.o" + @echo "... word_count.i" + @echo "... word_count.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -P /home/ubuntu/thrust/build/CMakeFiles/VerifyGlobs.cmake + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/build/examples/cmake/CMakeFiles/CMakeDirectoryInformation.cmake b/build/examples/cmake/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000000000000000000000000000000000000..74b1d39ac9b197e2512037e48d664f5d71d95776 --- /dev/null +++ b/build/examples/cmake/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/ubuntu/thrust") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/ubuntu/thrust/build") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/build/examples/cmake/CMakeFiles/progress.marks b/build/examples/cmake/CMakeFiles/progress.marks new file mode 100644 index 0000000000000000000000000000000000000000..573541ac9702dd3969c9bc859d2b91ec1f7e6e56 --- /dev/null +++ b/build/examples/cmake/CMakeFiles/progress.marks @@ -0,0 +1 @@ +0 diff --git a/build/examples/cmake/CTestTestfile.cmake b/build/examples/cmake/CTestTestfile.cmake new file mode 100644 index 0000000000000000000000000000000000000000..d6b20115d2368103522b029bd6745f629a4e5840 --- /dev/null +++ b/build/examples/cmake/CTestTestfile.cmake @@ -0,0 +1,8 @@ +# CMake generated Testfile for +# Source directory: /home/ubuntu/thrust/examples/cmake +# Build directory: /home/ubuntu/thrust/build/examples/cmake +# +# This file includes the relevant testing commands required for +# testing this directory and lists subdirectories to be tested as well. +add_test(thrust.example.cmake.add_subdir "/usr/bin/cmake" "--log-level=VERBOSE" "-G" "Unix Makefiles" "-S" "/home/ubuntu/thrust/examples/cmake/add_subdir" "-B" "/home/ubuntu/thrust/build/examples/cmake/add_subdir" "-D" "THRUST_ROOT=/home/ubuntu/thrust" "-D" "CMAKE_CXX_COMPILER=/usr/bin/c++" "-D" "CMAKE_CUDA_COMPILER=/usr/bin/nvcc" "-D" "CMAKE_BUILD_TYPE=Release") +set_tests_properties(thrust.example.cmake.add_subdir PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/cmake/CMakeLists.txt;15;add_test;/home/ubuntu/thrust/examples/cmake/CMakeLists.txt;0;") diff --git a/build/examples/cmake/Makefile b/build/examples/cmake/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..23f287123b5547b95983e24bf62d536801fb62e0 --- /dev/null +++ b/build/examples/cmake/Makefile @@ -0,0 +1,202 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target test +test: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..." + /usr/bin/ctest --force-new-ctest-process $(ARGS) +.PHONY : test + +# Special rule for the target test +test/fast: test +.PHONY : test/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components +.PHONY : list_install_components/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# The main all target +all: cmake_check_build_system + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles /home/ubuntu/thrust/build/examples/cmake//CMakeFiles/progress.marks + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/cmake/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : all + +# The main clean target +clean: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/cmake/clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: cmake_check_build_system + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/cmake/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/cmake/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -P /home/ubuntu/thrust/build/CMakeFiles/VerifyGlobs.cmake + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... install" + @echo "... install/local" + @echo "... install/strip" + @echo "... list_install_components" + @echo "... rebuild_cache" + @echo "... test" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -P /home/ubuntu/thrust/build/CMakeFiles/VerifyGlobs.cmake + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/build/examples/cmake/cmake_install.cmake b/build/examples/cmake/cmake_install.cmake new file mode 100644 index 0000000000000000000000000000000000000000..08b7469b74aa2443b3e0b219a8574a8b2f72e4b9 --- /dev/null +++ b/build/examples/cmake/cmake_install.cmake @@ -0,0 +1,44 @@ +# Install script for directory: /home/ubuntu/thrust/examples/cmake + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Release") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/usr/bin/objdump") +endif() + diff --git a/build/examples/cmake_install.cmake b/build/examples/cmake_install.cmake new file mode 100644 index 0000000000000000000000000000000000000000..5c9382dc2e6778b9586c0e2a780f3b6a38a7d231 --- /dev/null +++ b/build/examples/cmake_install.cmake @@ -0,0 +1,54 @@ +# Install script for directory: /home/ubuntu/thrust/examples + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Release") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/usr/bin/objdump") +endif() + +if(NOT CMAKE_INSTALL_LOCAL_ONLY) + # Include the install script for the subdirectory. + include("/home/ubuntu/thrust/build/examples/cmake/cmake_install.cmake") +endif() + +if(NOT CMAKE_INSTALL_LOCAL_ONLY) + # Include the install script for the subdirectory. + include("/home/ubuntu/thrust/build/examples/cuda/cmake_install.cmake") +endif() + diff --git a/build/examples/cuda/CMakeFiles/CMakeDirectoryInformation.cmake b/build/examples/cuda/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000000000000000000000000000000000000..74b1d39ac9b197e2512037e48d664f5d71d95776 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/ubuntu/thrust") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/ubuntu/thrust/build") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/build/examples/cuda/CMakeFiles/progress.marks b/build/examples/cuda/CMakeFiles/progress.marks new file mode 100644 index 0000000000000000000000000000000000000000..d00491fd7e5bb6fa28c517a0bb32b8b506539d4d --- /dev/null +++ b/build/examples/cuda/CMakeFiles/progress.marks @@ -0,0 +1 @@ +1 diff --git a/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.async_reduce.dir/DependInfo.cmake b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.async_reduce.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.async_reduce.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.async_reduce.dir/build.make b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.async_reduce.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..c65b45f8a2856d09793d4e5799be6732c1261bea --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.async_reduce.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.cuda.async_reduce. + +# Include any custom commands dependencies for this target. +include examples/cuda/CMakeFiles/thrust.all.example.cuda.async_reduce.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/cuda/CMakeFiles/thrust.all.example.cuda.async_reduce.dir/progress.make + +thrust.all.example.cuda.async_reduce: examples/cuda/CMakeFiles/thrust.all.example.cuda.async_reduce.dir/build.make +.PHONY : thrust.all.example.cuda.async_reduce + +# Rule to build all files generated by this target. +examples/cuda/CMakeFiles/thrust.all.example.cuda.async_reduce.dir/build: thrust.all.example.cuda.async_reduce +.PHONY : examples/cuda/CMakeFiles/thrust.all.example.cuda.async_reduce.dir/build + +examples/cuda/CMakeFiles/thrust.all.example.cuda.async_reduce.dir/clean: + cd /home/ubuntu/thrust/build/examples/cuda && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.cuda.async_reduce.dir/cmake_clean.cmake +.PHONY : examples/cuda/CMakeFiles/thrust.all.example.cuda.async_reduce.dir/clean + +examples/cuda/CMakeFiles/thrust.all.example.cuda.async_reduce.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples/cuda /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples/cuda /home/ubuntu/thrust/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.async_reduce.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/cuda/CMakeFiles/thrust.all.example.cuda.async_reduce.dir/depend + diff --git a/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.async_reduce.dir/cmake_clean.cmake b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.async_reduce.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..cd66e08a476b22f2798ed9f10bdb65d1f60be0a9 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.async_reduce.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.cuda.async_reduce.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.async_reduce.dir/compiler_depend.make b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.async_reduce.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..a72e6bdc8e9e47007b4a32f032eece4008147a31 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.async_reduce.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.cuda.async_reduce. +# This may be replaced when dependencies are built. diff --git a/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.async_reduce.dir/compiler_depend.ts b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.async_reduce.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..f684b8ca218bac610997dd9fc32788a08290521a --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.async_reduce.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.cuda.async_reduce. diff --git a/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.async_reduce.dir/progress.make b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.async_reduce.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.async_reduce.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.custom_temporary_allocation.dir/DependInfo.cmake b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.custom_temporary_allocation.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.custom_temporary_allocation.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.custom_temporary_allocation.dir/build.make b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.custom_temporary_allocation.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..14d4237bdaa1100a273dbe67f480ee8e51f540c1 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.custom_temporary_allocation.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.cuda.custom_temporary_allocation. + +# Include any custom commands dependencies for this target. +include examples/cuda/CMakeFiles/thrust.all.example.cuda.custom_temporary_allocation.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/cuda/CMakeFiles/thrust.all.example.cuda.custom_temporary_allocation.dir/progress.make + +thrust.all.example.cuda.custom_temporary_allocation: examples/cuda/CMakeFiles/thrust.all.example.cuda.custom_temporary_allocation.dir/build.make +.PHONY : thrust.all.example.cuda.custom_temporary_allocation + +# Rule to build all files generated by this target. +examples/cuda/CMakeFiles/thrust.all.example.cuda.custom_temporary_allocation.dir/build: thrust.all.example.cuda.custom_temporary_allocation +.PHONY : examples/cuda/CMakeFiles/thrust.all.example.cuda.custom_temporary_allocation.dir/build + +examples/cuda/CMakeFiles/thrust.all.example.cuda.custom_temporary_allocation.dir/clean: + cd /home/ubuntu/thrust/build/examples/cuda && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.cuda.custom_temporary_allocation.dir/cmake_clean.cmake +.PHONY : examples/cuda/CMakeFiles/thrust.all.example.cuda.custom_temporary_allocation.dir/clean + +examples/cuda/CMakeFiles/thrust.all.example.cuda.custom_temporary_allocation.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples/cuda /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples/cuda /home/ubuntu/thrust/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.custom_temporary_allocation.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/cuda/CMakeFiles/thrust.all.example.cuda.custom_temporary_allocation.dir/depend + diff --git a/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.custom_temporary_allocation.dir/cmake_clean.cmake b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.custom_temporary_allocation.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..d9552975883dd4e3b26c7558bf050ed91244a627 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.custom_temporary_allocation.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.cuda.custom_temporary_allocation.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.custom_temporary_allocation.dir/compiler_depend.make b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.custom_temporary_allocation.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..f4ed2acbefb86317b98e31172acfb32f15d6ba8b --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.custom_temporary_allocation.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.cuda.custom_temporary_allocation. +# This may be replaced when dependencies are built. diff --git a/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.custom_temporary_allocation.dir/compiler_depend.ts b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.custom_temporary_allocation.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..524d4cee08eddc58208e83ab114ba1c96e6a0c64 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.custom_temporary_allocation.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.cuda.custom_temporary_allocation. diff --git a/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.custom_temporary_allocation.dir/progress.make b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.custom_temporary_allocation.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.custom_temporary_allocation.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.explicit_cuda_stream.dir/DependInfo.cmake b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.explicit_cuda_stream.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.explicit_cuda_stream.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.explicit_cuda_stream.dir/build.make b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.explicit_cuda_stream.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..ca63c50bce9971b833a6fd5ef70edafb51ba1e0a --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.explicit_cuda_stream.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.cuda.explicit_cuda_stream. + +# Include any custom commands dependencies for this target. +include examples/cuda/CMakeFiles/thrust.all.example.cuda.explicit_cuda_stream.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/cuda/CMakeFiles/thrust.all.example.cuda.explicit_cuda_stream.dir/progress.make + +thrust.all.example.cuda.explicit_cuda_stream: examples/cuda/CMakeFiles/thrust.all.example.cuda.explicit_cuda_stream.dir/build.make +.PHONY : thrust.all.example.cuda.explicit_cuda_stream + +# Rule to build all files generated by this target. +examples/cuda/CMakeFiles/thrust.all.example.cuda.explicit_cuda_stream.dir/build: thrust.all.example.cuda.explicit_cuda_stream +.PHONY : examples/cuda/CMakeFiles/thrust.all.example.cuda.explicit_cuda_stream.dir/build + +examples/cuda/CMakeFiles/thrust.all.example.cuda.explicit_cuda_stream.dir/clean: + cd /home/ubuntu/thrust/build/examples/cuda && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.cuda.explicit_cuda_stream.dir/cmake_clean.cmake +.PHONY : examples/cuda/CMakeFiles/thrust.all.example.cuda.explicit_cuda_stream.dir/clean + +examples/cuda/CMakeFiles/thrust.all.example.cuda.explicit_cuda_stream.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples/cuda /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples/cuda /home/ubuntu/thrust/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.explicit_cuda_stream.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/cuda/CMakeFiles/thrust.all.example.cuda.explicit_cuda_stream.dir/depend + diff --git a/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.explicit_cuda_stream.dir/cmake_clean.cmake b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.explicit_cuda_stream.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..b5e8569b8d1151b7a3d8d0a854326fc6f8d525c2 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.explicit_cuda_stream.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.cuda.explicit_cuda_stream.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.explicit_cuda_stream.dir/compiler_depend.make b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.explicit_cuda_stream.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..7e6a5236dbcab2a2d568d37c0e9d3c561750c2de --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.explicit_cuda_stream.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.cuda.explicit_cuda_stream. +# This may be replaced when dependencies are built. diff --git a/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.explicit_cuda_stream.dir/compiler_depend.ts b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.explicit_cuda_stream.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..bf87c78019db069d661fdf948de2d84b6d74f372 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.explicit_cuda_stream.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.cuda.explicit_cuda_stream. diff --git a/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.explicit_cuda_stream.dir/progress.make b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.explicit_cuda_stream.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.explicit_cuda_stream.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.global_device_vector.dir/DependInfo.cmake b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.global_device_vector.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.global_device_vector.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.global_device_vector.dir/build.make b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.global_device_vector.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..d9473401e2e43a55065744cd424033fc5680aa67 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.global_device_vector.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.cuda.global_device_vector. + +# Include any custom commands dependencies for this target. +include examples/cuda/CMakeFiles/thrust.all.example.cuda.global_device_vector.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/cuda/CMakeFiles/thrust.all.example.cuda.global_device_vector.dir/progress.make + +thrust.all.example.cuda.global_device_vector: examples/cuda/CMakeFiles/thrust.all.example.cuda.global_device_vector.dir/build.make +.PHONY : thrust.all.example.cuda.global_device_vector + +# Rule to build all files generated by this target. +examples/cuda/CMakeFiles/thrust.all.example.cuda.global_device_vector.dir/build: thrust.all.example.cuda.global_device_vector +.PHONY : examples/cuda/CMakeFiles/thrust.all.example.cuda.global_device_vector.dir/build + +examples/cuda/CMakeFiles/thrust.all.example.cuda.global_device_vector.dir/clean: + cd /home/ubuntu/thrust/build/examples/cuda && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.cuda.global_device_vector.dir/cmake_clean.cmake +.PHONY : examples/cuda/CMakeFiles/thrust.all.example.cuda.global_device_vector.dir/clean + +examples/cuda/CMakeFiles/thrust.all.example.cuda.global_device_vector.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples/cuda /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples/cuda /home/ubuntu/thrust/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.global_device_vector.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/cuda/CMakeFiles/thrust.all.example.cuda.global_device_vector.dir/depend + diff --git a/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.global_device_vector.dir/cmake_clean.cmake b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.global_device_vector.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..30709245277257bd0c8ddb83472d88355d8eccb6 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.global_device_vector.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.cuda.global_device_vector.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.global_device_vector.dir/compiler_depend.make b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.global_device_vector.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..1bbf3756d0cde7eb0487ed542c5ca9220e46f7f5 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.global_device_vector.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.cuda.global_device_vector. +# This may be replaced when dependencies are built. diff --git a/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.global_device_vector.dir/compiler_depend.ts b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.global_device_vector.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..81b7de2ba68aaccab1321196c3a85fc3fb5d2e3d --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.global_device_vector.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.cuda.global_device_vector. diff --git a/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.global_device_vector.dir/progress.make b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.global_device_vector.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.global_device_vector.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.range_view.dir/DependInfo.cmake b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.range_view.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.range_view.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.range_view.dir/build.make b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.range_view.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..fe7a5c9e32fed4c4610310e4ec3b03b93774e38d --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.range_view.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.cuda.range_view. + +# Include any custom commands dependencies for this target. +include examples/cuda/CMakeFiles/thrust.all.example.cuda.range_view.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/cuda/CMakeFiles/thrust.all.example.cuda.range_view.dir/progress.make + +thrust.all.example.cuda.range_view: examples/cuda/CMakeFiles/thrust.all.example.cuda.range_view.dir/build.make +.PHONY : thrust.all.example.cuda.range_view + +# Rule to build all files generated by this target. +examples/cuda/CMakeFiles/thrust.all.example.cuda.range_view.dir/build: thrust.all.example.cuda.range_view +.PHONY : examples/cuda/CMakeFiles/thrust.all.example.cuda.range_view.dir/build + +examples/cuda/CMakeFiles/thrust.all.example.cuda.range_view.dir/clean: + cd /home/ubuntu/thrust/build/examples/cuda && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.cuda.range_view.dir/cmake_clean.cmake +.PHONY : examples/cuda/CMakeFiles/thrust.all.example.cuda.range_view.dir/clean + +examples/cuda/CMakeFiles/thrust.all.example.cuda.range_view.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples/cuda /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples/cuda /home/ubuntu/thrust/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.range_view.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/cuda/CMakeFiles/thrust.all.example.cuda.range_view.dir/depend + diff --git a/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.range_view.dir/cmake_clean.cmake b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.range_view.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..23847a62e86e45cde78c2792d75defdebda13e0b --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.range_view.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.cuda.range_view.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.range_view.dir/compiler_depend.make b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.range_view.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..1f5cfdb46f84246ba9e6cda8b27daf1cdee7451e --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.range_view.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.cuda.range_view. +# This may be replaced when dependencies are built. diff --git a/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.range_view.dir/compiler_depend.ts b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.range_view.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..2a36ca595596f416f0da4b491fe066bf1dec5489 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.range_view.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.cuda.range_view. diff --git a/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.range_view.dir/progress.make b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.range_view.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.range_view.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.unwrap_pointer.dir/DependInfo.cmake b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.unwrap_pointer.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.unwrap_pointer.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.unwrap_pointer.dir/build.make b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.unwrap_pointer.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..e4674d6c3ef0e1d8e5144a5b83b1cb0f9c7d4249 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.unwrap_pointer.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.cuda.unwrap_pointer. + +# Include any custom commands dependencies for this target. +include examples/cuda/CMakeFiles/thrust.all.example.cuda.unwrap_pointer.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/cuda/CMakeFiles/thrust.all.example.cuda.unwrap_pointer.dir/progress.make + +thrust.all.example.cuda.unwrap_pointer: examples/cuda/CMakeFiles/thrust.all.example.cuda.unwrap_pointer.dir/build.make +.PHONY : thrust.all.example.cuda.unwrap_pointer + +# Rule to build all files generated by this target. +examples/cuda/CMakeFiles/thrust.all.example.cuda.unwrap_pointer.dir/build: thrust.all.example.cuda.unwrap_pointer +.PHONY : examples/cuda/CMakeFiles/thrust.all.example.cuda.unwrap_pointer.dir/build + +examples/cuda/CMakeFiles/thrust.all.example.cuda.unwrap_pointer.dir/clean: + cd /home/ubuntu/thrust/build/examples/cuda && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.cuda.unwrap_pointer.dir/cmake_clean.cmake +.PHONY : examples/cuda/CMakeFiles/thrust.all.example.cuda.unwrap_pointer.dir/clean + +examples/cuda/CMakeFiles/thrust.all.example.cuda.unwrap_pointer.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples/cuda /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples/cuda /home/ubuntu/thrust/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.unwrap_pointer.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/cuda/CMakeFiles/thrust.all.example.cuda.unwrap_pointer.dir/depend + diff --git a/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.unwrap_pointer.dir/cmake_clean.cmake b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.unwrap_pointer.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..63a44b8b3b8190f0e8290d8e9e356c81b5dde88e --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.unwrap_pointer.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.cuda.unwrap_pointer.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.unwrap_pointer.dir/compiler_depend.make b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.unwrap_pointer.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..3c38740f8b23d706bf298c9bde3e49cb1f09a491 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.unwrap_pointer.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.cuda.unwrap_pointer. +# This may be replaced when dependencies are built. diff --git a/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.unwrap_pointer.dir/compiler_depend.ts b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.unwrap_pointer.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..11fefb47f8fa819fdf11b0617ab2568851bcb090 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.unwrap_pointer.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.cuda.unwrap_pointer. diff --git a/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.unwrap_pointer.dir/progress.make b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.unwrap_pointer.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.unwrap_pointer.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.wrap_pointer.dir/DependInfo.cmake b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.wrap_pointer.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45a25b7803ef690647c5d5ceeb27ad44011b8f31 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.wrap_pointer.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.wrap_pointer.dir/build.make b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.wrap_pointer.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..2002606e5c7fe339c2af0ca81436cd84b29bae5a --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.wrap_pointer.dir/build.make @@ -0,0 +1,83 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Utility rule file for thrust.all.example.cuda.wrap_pointer. + +# Include any custom commands dependencies for this target. +include examples/cuda/CMakeFiles/thrust.all.example.cuda.wrap_pointer.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/cuda/CMakeFiles/thrust.all.example.cuda.wrap_pointer.dir/progress.make + +thrust.all.example.cuda.wrap_pointer: examples/cuda/CMakeFiles/thrust.all.example.cuda.wrap_pointer.dir/build.make +.PHONY : thrust.all.example.cuda.wrap_pointer + +# Rule to build all files generated by this target. +examples/cuda/CMakeFiles/thrust.all.example.cuda.wrap_pointer.dir/build: thrust.all.example.cuda.wrap_pointer +.PHONY : examples/cuda/CMakeFiles/thrust.all.example.cuda.wrap_pointer.dir/build + +examples/cuda/CMakeFiles/thrust.all.example.cuda.wrap_pointer.dir/clean: + cd /home/ubuntu/thrust/build/examples/cuda && $(CMAKE_COMMAND) -P CMakeFiles/thrust.all.example.cuda.wrap_pointer.dir/cmake_clean.cmake +.PHONY : examples/cuda/CMakeFiles/thrust.all.example.cuda.wrap_pointer.dir/clean + +examples/cuda/CMakeFiles/thrust.all.example.cuda.wrap_pointer.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples/cuda /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples/cuda /home/ubuntu/thrust/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.wrap_pointer.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/cuda/CMakeFiles/thrust.all.example.cuda.wrap_pointer.dir/depend + diff --git a/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.wrap_pointer.dir/cmake_clean.cmake b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.wrap_pointer.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..35fba32f81eb00a016ac5b6cda15eebcbd0859a1 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.wrap_pointer.dir/cmake_clean.cmake @@ -0,0 +1,5 @@ + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/thrust.all.example.cuda.wrap_pointer.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.wrap_pointer.dir/compiler_depend.make b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.wrap_pointer.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..17e50a88316031b955a04e1caee3f9a33f61dcec --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.wrap_pointer.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for thrust.all.example.cuda.wrap_pointer. +# This may be replaced when dependencies are built. diff --git a/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.wrap_pointer.dir/compiler_depend.ts b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.wrap_pointer.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..b278f495f2488cfd94c845e9840e611f682af917 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.wrap_pointer.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for thrust.all.example.cuda.wrap_pointer. diff --git a/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.wrap_pointer.dir/progress.make b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.wrap_pointer.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.all.example.cuda.wrap_pointer.dir/progress.make @@ -0,0 +1 @@ + diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/DependInfo.cmake b/build/examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..d366856b69576d7749a35d537dfa5ac639b84e9b --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/cuda/async_reduce.cu" "examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/async_reduce.cu.o" "gcc" "examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/async_reduce.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/async_reduce.cu.o b/build/examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/async_reduce.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..e6892e6f91cdd44a1a32ac58684221d7312f59c6 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/async_reduce.cu.o @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:96becf33c801b8b0aec08e6de51465ad335f9292ac4be6229bbc7cc5acf266ca +size 2768368 diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/async_reduce.cu.o.d b/build/examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/async_reduce.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..b69b84696de7dc88173fbdd53eeb2167caa39007 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/async_reduce.cu.o.d @@ -0,0 +1,775 @@ +examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/async_reduce.cu.o : /home/ubuntu/thrust/examples/cuda/async_reduce.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /usr/include/c++/9/cstdio \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/invoke.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/reverse_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /usr/include/c++/9/limits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /usr/include/c++/9/iostream \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /usr/include/c++/9/vector \ + /usr/include/c++/9/bits/stl_vector.h \ + /usr/include/c++/9/bits/stl_bvector.h \ + /usr/include/c++/9/bits/vector.tcc \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/overlapped_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/iterator/is_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/permutation_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/permutation_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cstdint.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/dispatch.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/single_pass_scan_operators.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/cpp_compatibility.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_queue.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_math.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_discontinuity.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/minmax.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mpl/math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/make_unsigned_special.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/choose_offset.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking_commutative_only.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_warp_reductions.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_even_share.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_mapping.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/arg_index_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/constant_input_iterator.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/counting_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/counting_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/numeric_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_ptr.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/validator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/polymorphic_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/device_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/host_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/new.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/fancy_pointer_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/execution_policy.h \ + /usr/include/c++/9/future \ + /usr/include/c++/9/mutex \ + /usr/include/c++/9/bits/std_mutex.h \ + /usr/include/c++/9/bits/unique_lock.h \ + /usr/include/c++/9/thread \ + /usr/include/c++/9/condition_variable \ + /usr/include/c++/9/bits/atomic_futex.h diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/build.make b/build/examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..6e7c0425b2fcfad2e97e6de78ffce6429b3dd5a1 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/flags.make + +examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/async_reduce.cu.o: examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/flags.make +examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/async_reduce.cu.o: examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/includes_CUDA.rsp +examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/async_reduce.cu.o: /home/ubuntu/thrust/examples/cuda/async_reduce.cu +examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/async_reduce.cu.o: examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/async_reduce.cu.o" + cd /home/ubuntu/thrust/build/examples/cuda && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/async_reduce.cu.o -MF CMakeFiles/thrust.example.cuda.async_reduce.dir/async_reduce.cu.o.d -x cu -c /home/ubuntu/thrust/examples/cuda/async_reduce.cu -o CMakeFiles/thrust.example.cuda.async_reduce.dir/async_reduce.cu.o + +examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/async_reduce.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.cuda.async_reduce.dir/async_reduce.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/async_reduce.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.cuda.async_reduce.dir/async_reduce.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.cuda.async_reduce +thrust_example_cuda_async_reduce_OBJECTS = \ +"CMakeFiles/thrust.example.cuda.async_reduce.dir/async_reduce.cu.o" + +# External object files for target thrust.example.cuda.async_reduce +thrust_example_cuda_async_reduce_EXTERNAL_OBJECTS = + +bin/thrust.example.cuda.async_reduce: examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/async_reduce.cu.o +bin/thrust.example.cuda.async_reduce: examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/build.make +bin/thrust.example.cuda.async_reduce: examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/linkLibs.rsp +bin/thrust.example.cuda.async_reduce: examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/objects1.rsp +bin/thrust.example.cuda.async_reduce: examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../../bin/thrust.example.cuda.async_reduce" + cd /home/ubuntu/thrust/build/examples/cuda && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.cuda.async_reduce.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/build: bin/thrust.example.cuda.async_reduce +.PHONY : examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/build + +examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/clean: + cd /home/ubuntu/thrust/build/examples/cuda && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.cuda.async_reduce.dir/cmake_clean.cmake +.PHONY : examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/clean + +examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples/cuda /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples/cuda /home/ubuntu/thrust/build/examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/depend + diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/cmake_clean.cmake b/build/examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..58bf32a1af7a7c93e0577789a476eb8eb2eef431 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../../bin/thrust.example.cuda.async_reduce" + "../../bin/thrust.example.cuda.async_reduce.pdb" + "CMakeFiles/thrust.example.cuda.async_reduce.dir/async_reduce.cu.o" + "CMakeFiles/thrust.example.cuda.async_reduce.dir/async_reduce.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.cuda.async_reduce.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/compiler_depend.make b/build/examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..414e00e451afbe2b4fa40d620e1c4223ef7de738 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.cuda.async_reduce. +# This may be replaced when dependencies are built. diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/compiler_depend.ts b/build/examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..9d5d226d1d71de483809105148882e1183942076 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.cuda.async_reduce. diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/depend.make b/build/examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..5974cfc70bbeda6194bff7b8f0940ad0b81152aa --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.cuda.async_reduce. +# This may be replaced when dependencies are built. diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/flags.make b/build/examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..c05c0649b0046020c398878ef7c9083b02ef5b31 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.cuda.async_reduce.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/includes_CUDA.rsp b/build/examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/link.txt b/build/examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..e0ddb9f8d8db89e8d1ef6d5d85f7f23960fc86fc --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.cuda.async_reduce.dir/objects1.rsp -o ../../bin/thrust.example.cuda.async_reduce @CMakeFiles/thrust.example.cuda.async_reduce.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/linkLibs.rsp b/build/examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/objects1.rsp b/build/examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..4b20aec50c9d2cbc4127e4ede80501d48fdb48a8 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.cuda.async_reduce.dir/async_reduce.cu.o diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/progress.make b/build/examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..6c287f17b23171ee8abc97d23b8f8a3bfa7225de --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = + diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/DependInfo.cmake b/build/examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45df682ce371d5c0681823f6984fa4191d594e4a --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/cuda/custom_temporary_allocation.cu" "examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/custom_temporary_allocation.cu.o" "gcc" "examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/custom_temporary_allocation.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/build.make b/build/examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..aeb0e074d1ef38790b6cd39d562b3f2480903076 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/flags.make + +examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/custom_temporary_allocation.cu.o: examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/flags.make +examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/custom_temporary_allocation.cu.o: examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/includes_CUDA.rsp +examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/custom_temporary_allocation.cu.o: /home/ubuntu/thrust/examples/cuda/custom_temporary_allocation.cu +examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/custom_temporary_allocation.cu.o: examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/custom_temporary_allocation.cu.o" + cd /home/ubuntu/thrust/build/examples/cuda && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/custom_temporary_allocation.cu.o -MF CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/custom_temporary_allocation.cu.o.d -x cu -c /home/ubuntu/thrust/examples/cuda/custom_temporary_allocation.cu -o CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/custom_temporary_allocation.cu.o + +examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/custom_temporary_allocation.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/custom_temporary_allocation.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/custom_temporary_allocation.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/custom_temporary_allocation.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.cuda.custom_temporary_allocation +thrust_example_cuda_custom_temporary_allocation_OBJECTS = \ +"CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/custom_temporary_allocation.cu.o" + +# External object files for target thrust.example.cuda.custom_temporary_allocation +thrust_example_cuda_custom_temporary_allocation_EXTERNAL_OBJECTS = + +bin/thrust.example.cuda.custom_temporary_allocation: examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/custom_temporary_allocation.cu.o +bin/thrust.example.cuda.custom_temporary_allocation: examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/build.make +bin/thrust.example.cuda.custom_temporary_allocation: examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/linkLibs.rsp +bin/thrust.example.cuda.custom_temporary_allocation: examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/objects1.rsp +bin/thrust.example.cuda.custom_temporary_allocation: examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../../bin/thrust.example.cuda.custom_temporary_allocation" + cd /home/ubuntu/thrust/build/examples/cuda && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/build: bin/thrust.example.cuda.custom_temporary_allocation +.PHONY : examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/build + +examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/clean: + cd /home/ubuntu/thrust/build/examples/cuda && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/cmake_clean.cmake +.PHONY : examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/clean + +examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples/cuda /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples/cuda /home/ubuntu/thrust/build/examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/depend + diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/cmake_clean.cmake b/build/examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..1dc1992320f9cec77b7ada898e61e9c91f1ebcec --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../../bin/thrust.example.cuda.custom_temporary_allocation" + "../../bin/thrust.example.cuda.custom_temporary_allocation.pdb" + "CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/custom_temporary_allocation.cu.o" + "CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/custom_temporary_allocation.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/compiler_depend.make b/build/examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..cc5008a7a9441f98579499b8b8059228a83ff23b --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.cuda.custom_temporary_allocation. +# This may be replaced when dependencies are built. diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/compiler_depend.ts b/build/examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..7fc21f6407b5b3aee74194f58402a20d599e7e4b --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.cuda.custom_temporary_allocation. diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/custom_temporary_allocation.cu.o b/build/examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/custom_temporary_allocation.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..40ce38f0855b0e525516cc57a9b187198a2bc488 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/custom_temporary_allocation.cu.o @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b2335b34ac641a319b8b28d787a14297c10f1923e0529424dd9e77994db07aac +size 4080328 diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/custom_temporary_allocation.cu.o.d b/build/examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/custom_temporary_allocation.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..6f31a9f2922b119f305e39c04e9c361001c6e2ca --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/custom_temporary_allocation.cu.o.d @@ -0,0 +1,885 @@ +examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/custom_temporary_allocation.cu.o : /home/ubuntu/thrust/examples/cuda/custom_temporary_allocation.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /usr/include/c++/9/cstdio \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/invoke.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /usr/include/c++/9/iostream \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/c++/9/limits \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/host_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/new.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/fancy_pointer_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/validator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/polymorphic_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/reverse_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator.inl \ + /usr/include/c++/9/vector \ + /usr/include/c++/9/bits/stl_vector.h \ + /usr/include/c++/9/bits/stl_bvector.h \ + /usr/include/c++/9/bits/vector.tcc \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/overlapped_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/iterator/is_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/permutation_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/permutation_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cstdint.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/dispatch.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/single_pass_scan_operators.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/cpp_compatibility.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_queue.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_math.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_discontinuity.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/minmax.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mpl/math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/make_unsigned_special.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/choose_offset.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking_commutative_only.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_warp_reductions.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_even_share.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_mapping.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/arg_index_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/constant_input_iterator.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/counting_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/counting_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/numeric_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/host_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reverse.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reverse.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_merge_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_merge_sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/merge.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/merge.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/merge.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/extrema.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/extrema.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/get_iterator_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/adjacent_difference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/adjacent_difference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/partition.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/partition.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/remove.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/remove.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/set_operations.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/set_operations.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/unique.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/unique.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/unique_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/unique_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform_reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform_reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/insertion_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy_backward.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_primitive_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_primitive_sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_radix_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_radix_sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy_if.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_select.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_unique_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_unique_by_key.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/sequence.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/sequence.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tabulate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tabulate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/trivial_sequence.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_radix_sort.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_radix_sort.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_radix_sort_downsweep.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_radix_rank.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/radix_rank_sort_operations.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/tuple \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_radix_sort_histogram.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_radix_sort_onesweep.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_radix_sort_upsweep.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_radix_sort.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_merge_sort.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_merge_sort.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_merge_sort.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/../block/block_merge_sort.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_sort.cuh \ + /usr/include/c++/9/sstream \ + /usr/include/c++/9/bits/sstream.tcc \ + /usr/include/c++/9/map \ + /usr/include/c++/9/bits/stl_tree.h \ + /usr/include/c++/9/bits/stl_map.h \ + /usr/include/c++/9/bits/stl_multimap.h \ + /usr/include/c++/9/bits/erase_if.h diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/depend.make b/build/examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..48dd79a63cf1e829201f4c5f1db4d5b211f6fa74 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.cuda.custom_temporary_allocation. +# This may be replaced when dependencies are built. diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/flags.make b/build/examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..c1ecae1ddeb5338ba6d7a48809f9c5bcce9fa97d --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/includes_CUDA.rsp b/build/examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/link.txt b/build/examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..b0cf6ce81e5151876d36f8469a843e67a8b33c77 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/objects1.rsp -o ../../bin/thrust.example.cuda.custom_temporary_allocation @CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/linkLibs.rsp b/build/examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/objects1.rsp b/build/examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..12cff18a32c403442693506fbc79d6e53dfcf130 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/custom_temporary_allocation.cu.o diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/progress.make b/build/examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..6c287f17b23171ee8abc97d23b8f8a3bfa7225de --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = + diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/DependInfo.cmake b/build/examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..be3c856577180b471236588fca061c3be0588d1c --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/cuda/explicit_cuda_stream.cu" "examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/explicit_cuda_stream.cu.o" "gcc" "examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/explicit_cuda_stream.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/build.make b/build/examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..a2b93d4a0381fb27a74b77d5fdd9cb648a06f60d --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/flags.make + +examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/explicit_cuda_stream.cu.o: examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/flags.make +examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/explicit_cuda_stream.cu.o: examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/includes_CUDA.rsp +examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/explicit_cuda_stream.cu.o: /home/ubuntu/thrust/examples/cuda/explicit_cuda_stream.cu +examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/explicit_cuda_stream.cu.o: examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/explicit_cuda_stream.cu.o" + cd /home/ubuntu/thrust/build/examples/cuda && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/explicit_cuda_stream.cu.o -MF CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/explicit_cuda_stream.cu.o.d -x cu -c /home/ubuntu/thrust/examples/cuda/explicit_cuda_stream.cu -o CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/explicit_cuda_stream.cu.o + +examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/explicit_cuda_stream.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/explicit_cuda_stream.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/explicit_cuda_stream.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/explicit_cuda_stream.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.cuda.explicit_cuda_stream +thrust_example_cuda_explicit_cuda_stream_OBJECTS = \ +"CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/explicit_cuda_stream.cu.o" + +# External object files for target thrust.example.cuda.explicit_cuda_stream +thrust_example_cuda_explicit_cuda_stream_EXTERNAL_OBJECTS = + +bin/thrust.example.cuda.explicit_cuda_stream: examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/explicit_cuda_stream.cu.o +bin/thrust.example.cuda.explicit_cuda_stream: examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/build.make +bin/thrust.example.cuda.explicit_cuda_stream: examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/linkLibs.rsp +bin/thrust.example.cuda.explicit_cuda_stream: examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/objects1.rsp +bin/thrust.example.cuda.explicit_cuda_stream: examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../../bin/thrust.example.cuda.explicit_cuda_stream" + cd /home/ubuntu/thrust/build/examples/cuda && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/build: bin/thrust.example.cuda.explicit_cuda_stream +.PHONY : examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/build + +examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/clean: + cd /home/ubuntu/thrust/build/examples/cuda && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/cmake_clean.cmake +.PHONY : examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/clean + +examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples/cuda /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples/cuda /home/ubuntu/thrust/build/examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/depend + diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/cmake_clean.cmake b/build/examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..f419285ee4fa47f75689a3daaacf011f2f482010 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../../bin/thrust.example.cuda.explicit_cuda_stream" + "../../bin/thrust.example.cuda.explicit_cuda_stream.pdb" + "CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/explicit_cuda_stream.cu.o" + "CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/explicit_cuda_stream.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/compiler_depend.make b/build/examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..7e23bda8601bd5997fa2fda437a041f7e1847830 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.cuda.explicit_cuda_stream. +# This may be replaced when dependencies are built. diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/compiler_depend.ts b/build/examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..cb81f874711bab72c8d134865cd250e5476dcfdc --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.cuda.explicit_cuda_stream. diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/depend.make b/build/examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..0aa5e92727d2051cb7a783949ffd2c4e161c3a53 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.cuda.explicit_cuda_stream. +# This may be replaced when dependencies are built. diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/explicit_cuda_stream.cu.o b/build/examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/explicit_cuda_stream.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..79497c5f06712d0c2d888f4526bd3f60e2dbd1db --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/explicit_cuda_stream.cu.o @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:148114df1061983423fe716c1264f50e4b5c2a307f0cc23e5d945a8e778ab07d +size 1142176 diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/explicit_cuda_stream.cu.o.d b/build/examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/explicit_cuda_stream.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..86dabe0fd12064a85996079a113be528181d23f3 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/explicit_cuda_stream.cu.o.d @@ -0,0 +1,855 @@ +examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/explicit_cuda_stream.cu.o : /home/ubuntu/thrust/examples/cuda/explicit_cuda_stream.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /usr/include/c++/9/cstdio \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/invoke.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/reverse_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /usr/include/c++/9/limits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /usr/include/c++/9/iostream \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /usr/include/c++/9/vector \ + /usr/include/c++/9/bits/stl_vector.h \ + /usr/include/c++/9/bits/stl_bvector.h \ + /usr/include/c++/9/bits/vector.tcc \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/overlapped_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/iterator/is_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/permutation_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/permutation_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cstdint.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/dispatch.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/single_pass_scan_operators.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/cpp_compatibility.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_queue.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_math.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_discontinuity.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/minmax.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mpl/math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/make_unsigned_special.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/choose_offset.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking_commutative_only.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_warp_reductions.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_even_share.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_mapping.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/arg_index_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/constant_input_iterator.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/counting_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/counting_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/numeric_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_ptr.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/validator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/polymorphic_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/device_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/host_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/new.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/fancy_pointer_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/adjacent_difference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/adjacent_difference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/merge.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/partition.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/partition.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/remove.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/remove.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/set_operations.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/set_operations.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reverse.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reverse.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_merge_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_merge_sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/merge.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/merge.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/extrema.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/extrema.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/get_iterator_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform_reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform_reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/insertion_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy_backward.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_primitive_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_primitive_sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_radix_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_radix_sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy_if.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_select.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_unique_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_unique_by_key.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/unique.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/unique.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/unique_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/unique_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/sequence.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/sequence.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tabulate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tabulate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/tabulate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/sequence.h diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/flags.make b/build/examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..e291441975ab11eb5e6dc56b150a30aca3aae14e --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/includes_CUDA.rsp b/build/examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/link.txt b/build/examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..e2e326ed80cbb8bb6869cda986915fc9f84a59d9 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/objects1.rsp -o ../../bin/thrust.example.cuda.explicit_cuda_stream @CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/linkLibs.rsp b/build/examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/objects1.rsp b/build/examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..33f08fa0f6193a7d14e43e09d154e49202305060 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/explicit_cuda_stream.cu.o diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/progress.make b/build/examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..6c287f17b23171ee8abc97d23b8f8a3bfa7225de --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = + diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/DependInfo.cmake b/build/examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..5e9273fd8cc0ba5b1a9088aa59fb4d31f5a8cf00 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/cuda/global_device_vector.cu" "examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/global_device_vector.cu.o" "gcc" "examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/global_device_vector.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/build.make b/build/examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..c57017745d74456a6c3663c4ecb912efaa366d56 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/flags.make + +examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/global_device_vector.cu.o: examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/flags.make +examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/global_device_vector.cu.o: examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/includes_CUDA.rsp +examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/global_device_vector.cu.o: /home/ubuntu/thrust/examples/cuda/global_device_vector.cu +examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/global_device_vector.cu.o: examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/global_device_vector.cu.o" + cd /home/ubuntu/thrust/build/examples/cuda && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/global_device_vector.cu.o -MF CMakeFiles/thrust.example.cuda.global_device_vector.dir/global_device_vector.cu.o.d -x cu -c /home/ubuntu/thrust/examples/cuda/global_device_vector.cu -o CMakeFiles/thrust.example.cuda.global_device_vector.dir/global_device_vector.cu.o + +examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/global_device_vector.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.cuda.global_device_vector.dir/global_device_vector.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/global_device_vector.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.cuda.global_device_vector.dir/global_device_vector.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.cuda.global_device_vector +thrust_example_cuda_global_device_vector_OBJECTS = \ +"CMakeFiles/thrust.example.cuda.global_device_vector.dir/global_device_vector.cu.o" + +# External object files for target thrust.example.cuda.global_device_vector +thrust_example_cuda_global_device_vector_EXTERNAL_OBJECTS = + +bin/thrust.example.cuda.global_device_vector: examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/global_device_vector.cu.o +bin/thrust.example.cuda.global_device_vector: examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/build.make +bin/thrust.example.cuda.global_device_vector: examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/linkLibs.rsp +bin/thrust.example.cuda.global_device_vector: examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/objects1.rsp +bin/thrust.example.cuda.global_device_vector: examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../../bin/thrust.example.cuda.global_device_vector" + cd /home/ubuntu/thrust/build/examples/cuda && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.cuda.global_device_vector.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/build: bin/thrust.example.cuda.global_device_vector +.PHONY : examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/build + +examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/clean: + cd /home/ubuntu/thrust/build/examples/cuda && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.cuda.global_device_vector.dir/cmake_clean.cmake +.PHONY : examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/clean + +examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples/cuda /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples/cuda /home/ubuntu/thrust/build/examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/depend + diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/cmake_clean.cmake b/build/examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..1ac1641a390785b31afaa8d7c38976c61674ae4b --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../../bin/thrust.example.cuda.global_device_vector" + "../../bin/thrust.example.cuda.global_device_vector.pdb" + "CMakeFiles/thrust.example.cuda.global_device_vector.dir/global_device_vector.cu.o" + "CMakeFiles/thrust.example.cuda.global_device_vector.dir/global_device_vector.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.cuda.global_device_vector.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/compiler_depend.make b/build/examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..8faf4eeb0a6b82f6ba269417a149d1294f7c3e1e --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.cuda.global_device_vector. +# This may be replaced when dependencies are built. diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/compiler_depend.ts b/build/examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..9df3d1cba386968385cf8133790bb852b80e0afe --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.cuda.global_device_vector. diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/depend.make b/build/examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..4cc8ec715dcce9e36f6fa19c01e9cc1c1b6796ef --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.cuda.global_device_vector. +# This may be replaced when dependencies are built. diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/flags.make b/build/examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..d7a213b485f0cb1d03c6b1457f7506a74933b6c8 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.cuda.global_device_vector.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/global_device_vector.cu.o b/build/examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/global_device_vector.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..5398d8a4f58f83567d5cf9915a200eed7a6b5218 Binary files /dev/null and b/build/examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/global_device_vector.cu.o differ diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/global_device_vector.cu.o.d b/build/examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/global_device_vector.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..605a2111b7dfbb467161071f4542db1104f81669 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/global_device_vector.cu.o.d @@ -0,0 +1,767 @@ +examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/global_device_vector.cu.o : /home/ubuntu/thrust/examples/cuda/global_device_vector.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /usr/include/c++/9/cstdio \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/invoke.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/reverse_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /usr/include/c++/9/limits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /usr/include/c++/9/iostream \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /usr/include/c++/9/vector \ + /usr/include/c++/9/bits/stl_vector.h \ + /usr/include/c++/9/bits/stl_bvector.h \ + /usr/include/c++/9/bits/vector.tcc \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/overlapped_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/iterator/is_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/permutation_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/permutation_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cstdint.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/dispatch.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/single_pass_scan_operators.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/cpp_compatibility.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_queue.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_math.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_discontinuity.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/minmax.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mpl/math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/make_unsigned_special.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/choose_offset.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking_commutative_only.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_warp_reductions.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_even_share.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_mapping.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/arg_index_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/constant_input_iterator.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/counting_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/counting_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/numeric_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_ptr.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/validator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/polymorphic_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/device_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/host_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/new.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/fancy_pointer_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/pointer.h diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/includes_CUDA.rsp b/build/examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/link.txt b/build/examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..9996f3821961c78d7da2018bd361c3530cdfad4b --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.cuda.global_device_vector.dir/objects1.rsp -o ../../bin/thrust.example.cuda.global_device_vector @CMakeFiles/thrust.example.cuda.global_device_vector.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/linkLibs.rsp b/build/examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/objects1.rsp b/build/examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..2170d3920a4b713133546932e7c31b05cd906751 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.cuda.global_device_vector.dir/global_device_vector.cu.o diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/progress.make b/build/examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..6c287f17b23171ee8abc97d23b8f8a3bfa7225de --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = + diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/DependInfo.cmake b/build/examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..677e4f2df96af1cc55423f24dea03c16e3abaedb --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/cuda/range_view.cu" "examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/range_view.cu.o" "gcc" "examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/range_view.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/build.make b/build/examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..62e9526d5c3750146344f9eb9d84f6ce431cb543 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/flags.make + +examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/range_view.cu.o: examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/flags.make +examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/range_view.cu.o: examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/includes_CUDA.rsp +examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/range_view.cu.o: /home/ubuntu/thrust/examples/cuda/range_view.cu +examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/range_view.cu.o: examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/range_view.cu.o" + cd /home/ubuntu/thrust/build/examples/cuda && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/range_view.cu.o -MF CMakeFiles/thrust.example.cuda.range_view.dir/range_view.cu.o.d -x cu -c /home/ubuntu/thrust/examples/cuda/range_view.cu -o CMakeFiles/thrust.example.cuda.range_view.dir/range_view.cu.o + +examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/range_view.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.cuda.range_view.dir/range_view.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/range_view.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.cuda.range_view.dir/range_view.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.cuda.range_view +thrust_example_cuda_range_view_OBJECTS = \ +"CMakeFiles/thrust.example.cuda.range_view.dir/range_view.cu.o" + +# External object files for target thrust.example.cuda.range_view +thrust_example_cuda_range_view_EXTERNAL_OBJECTS = + +bin/thrust.example.cuda.range_view: examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/range_view.cu.o +bin/thrust.example.cuda.range_view: examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/build.make +bin/thrust.example.cuda.range_view: examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/linkLibs.rsp +bin/thrust.example.cuda.range_view: examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/objects1.rsp +bin/thrust.example.cuda.range_view: examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../../bin/thrust.example.cuda.range_view" + cd /home/ubuntu/thrust/build/examples/cuda && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.cuda.range_view.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/build: bin/thrust.example.cuda.range_view +.PHONY : examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/build + +examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/clean: + cd /home/ubuntu/thrust/build/examples/cuda && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.cuda.range_view.dir/cmake_clean.cmake +.PHONY : examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/clean + +examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples/cuda /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples/cuda /home/ubuntu/thrust/build/examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/depend + diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/cmake_clean.cmake b/build/examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..2ebce04694d1b9ff76162f68a2d13f152ab0711a --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../../bin/thrust.example.cuda.range_view" + "../../bin/thrust.example.cuda.range_view.pdb" + "CMakeFiles/thrust.example.cuda.range_view.dir/range_view.cu.o" + "CMakeFiles/thrust.example.cuda.range_view.dir/range_view.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.cuda.range_view.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/compiler_depend.make b/build/examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..bf43f67808fd29218350c50e6c51a2abafff9bf7 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.cuda.range_view. +# This may be replaced when dependencies are built. diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/compiler_depend.ts b/build/examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..73ba8eff50e4dfec0b9808e5febfd17e22bb53be --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.cuda.range_view. diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/depend.make b/build/examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..4ff2d30253694611a031895ff178d0b6d16b4bb7 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.cuda.range_view. +# This may be replaced when dependencies are built. diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/flags.make b/build/examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..9f52ee61f16af58b0835a44c8a7963b3c7b5ee75 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.cuda.range_view.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/includes_CUDA.rsp b/build/examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/link.txt b/build/examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..733d312150b6a8f4ecf1a97ec5ce78dd0bba40f2 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.cuda.range_view.dir/objects1.rsp -o ../../bin/thrust.example.cuda.range_view @CMakeFiles/thrust.example.cuda.range_view.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/linkLibs.rsp b/build/examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/objects1.rsp b/build/examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..b3662aec09c96c59ec44697eff99dea55cefb6db --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.cuda.range_view.dir/range_view.cu.o diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/progress.make b/build/examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..6c287f17b23171ee8abc97d23b8f8a3bfa7225de --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = + diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/range_view.cu.o b/build/examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/range_view.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..d0ce7dd7eda77673c447093031fbb192bbced414 Binary files /dev/null and b/build/examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/range_view.cu.o differ diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/range_view.cu.o.d b/build/examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/range_view.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..0ad9db7206f2d85631af73dca75dfeeb152f906f --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/range_view.cu.o.d @@ -0,0 +1,842 @@ +examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/range_view.cu.o : /home/ubuntu/thrust/examples/cuda/range_view.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /usr/include/c++/9/cstdio \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/invoke.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/reverse_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /usr/include/c++/9/limits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /usr/include/c++/9/iostream \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /usr/include/c++/9/vector \ + /usr/include/c++/9/bits/stl_vector.h \ + /usr/include/c++/9/bits/stl_bvector.h \ + /usr/include/c++/9/bits/vector.tcc \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/overlapped_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/iterator/is_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/permutation_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/permutation_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cstdint.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/dispatch.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/single_pass_scan_operators.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/cpp_compatibility.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_queue.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_math.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_discontinuity.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/minmax.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mpl/math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/make_unsigned_special.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/choose_offset.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking_commutative_only.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_warp_reductions.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_even_share.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_mapping.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/arg_index_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/constant_input_iterator.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/counting_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/counting_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/numeric_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_ptr.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/validator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/polymorphic_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/device_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/host_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/new.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/fancy_pointer_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/adjacent_difference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/adjacent_difference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/binary_search.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/merge.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/partition.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/partition.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/remove.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/remove.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/set_operations.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/set_operations.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reverse.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reverse.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reverse.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_merge_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_merge_sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/merge.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/merge.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/merge.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/extrema.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/extrema.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/get_iterator_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform_reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform_reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform_reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/extrema.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/insertion_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy_backward.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_primitive_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_primitive_sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_radix_sort.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/stable_radix_sort.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy_if.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy_if.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy_if.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_select.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_select_if.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_unique_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_unique_by_key.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/unique.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/unique.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/unique_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/unique_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/execution_policy.h diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/DependInfo.cmake b/build/examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..f6fe57c720cc6bec5fa3a20e4a6cd53df4be93b7 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/cuda/unwrap_pointer.cu" "examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/unwrap_pointer.cu.o" "gcc" "examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/unwrap_pointer.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/build.make b/build/examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..22ed40095a8d1915fc29b67677d407c8898b1f6d --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/flags.make + +examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/unwrap_pointer.cu.o: examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/flags.make +examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/unwrap_pointer.cu.o: examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/includes_CUDA.rsp +examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/unwrap_pointer.cu.o: /home/ubuntu/thrust/examples/cuda/unwrap_pointer.cu +examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/unwrap_pointer.cu.o: examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/unwrap_pointer.cu.o" + cd /home/ubuntu/thrust/build/examples/cuda && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/unwrap_pointer.cu.o -MF CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/unwrap_pointer.cu.o.d -x cu -c /home/ubuntu/thrust/examples/cuda/unwrap_pointer.cu -o CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/unwrap_pointer.cu.o + +examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/unwrap_pointer.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/unwrap_pointer.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/unwrap_pointer.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/unwrap_pointer.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.cuda.unwrap_pointer +thrust_example_cuda_unwrap_pointer_OBJECTS = \ +"CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/unwrap_pointer.cu.o" + +# External object files for target thrust.example.cuda.unwrap_pointer +thrust_example_cuda_unwrap_pointer_EXTERNAL_OBJECTS = + +bin/thrust.example.cuda.unwrap_pointer: examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/unwrap_pointer.cu.o +bin/thrust.example.cuda.unwrap_pointer: examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/build.make +bin/thrust.example.cuda.unwrap_pointer: examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/linkLibs.rsp +bin/thrust.example.cuda.unwrap_pointer: examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/objects1.rsp +bin/thrust.example.cuda.unwrap_pointer: examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../../bin/thrust.example.cuda.unwrap_pointer" + cd /home/ubuntu/thrust/build/examples/cuda && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/build: bin/thrust.example.cuda.unwrap_pointer +.PHONY : examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/build + +examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/clean: + cd /home/ubuntu/thrust/build/examples/cuda && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/cmake_clean.cmake +.PHONY : examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/clean + +examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples/cuda /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples/cuda /home/ubuntu/thrust/build/examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/depend + diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/cmake_clean.cmake b/build/examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..509cfeaef5d190fd5f1a6c34b136b9ae85ddb43f --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../../bin/thrust.example.cuda.unwrap_pointer" + "../../bin/thrust.example.cuda.unwrap_pointer.pdb" + "CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/unwrap_pointer.cu.o" + "CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/unwrap_pointer.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/compiler_depend.make b/build/examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..85d85f095b45123e299fc9bbd44b05c3b50d0e72 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.cuda.unwrap_pointer. +# This may be replaced when dependencies are built. diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/compiler_depend.ts b/build/examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..79ae6f82d2366809adfdc9054e11cfec1a881814 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.cuda.unwrap_pointer. diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/depend.make b/build/examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..1d464628566b48b9ffc2d41e29692d51341122c8 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.cuda.unwrap_pointer. +# This may be replaced when dependencies are built. diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/flags.make b/build/examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..2b67c823e173dca84889e671b78fea449af46636 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/includes_CUDA.rsp b/build/examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/link.txt b/build/examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..8e3580cd84dc7b02ac2b98c24c853cce7f01ff22 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/objects1.rsp -o ../../bin/thrust.example.cuda.unwrap_pointer @CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/linkLibs.rsp b/build/examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/objects1.rsp b/build/examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..bac6581ef115514cd19235d6f0f746d3d2419c54 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/unwrap_pointer.cu.o diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/progress.make b/build/examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..1c6716bb658c386fb895fe27e1ee4b79652fd5a6 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = 42 + diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/unwrap_pointer.cu.o b/build/examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/unwrap_pointer.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..ac8e361734fb7c3083c8c7ef34fb7a777c1c4949 Binary files /dev/null and b/build/examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/unwrap_pointer.cu.o differ diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/unwrap_pointer.cu.o.d b/build/examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/unwrap_pointer.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..a3afc88bd626a2b6979bdbda442309c6fc16ec2b --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/unwrap_pointer.cu.o.d @@ -0,0 +1,771 @@ +examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/unwrap_pointer.cu.o : /home/ubuntu/thrust/examples/cuda/unwrap_pointer.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cstdio \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/invoke.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /usr/include/c++/9/iostream \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/c++/9/limits \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_ptr.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_malloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_malloc.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_free.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_vector.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/reverse_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/reverse_iterator.inl \ + /usr/include/c++/9/vector \ + /usr/include/c++/9/bits/stl_vector.h \ + /usr/include/c++/9/bits/stl_bvector.h \ + /usr/include/c++/9/bits/vector.tcc \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/vector_base.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/overlapped_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/equal.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/mismatch.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/find.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/reduce_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/iterator/is_output_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scatter.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/permutation_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/permutation_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scatter.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/scan_by_key.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cstdint.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/replace.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/replace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/dispatch.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/single_pass_scan_operators.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/strong_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/cpp_compatibility.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_reduce_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_queue.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_math.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_scan_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_discontinuity.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/scan_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/minmax.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/mpl/math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/make_unsigned_special.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/device_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/choose_offset.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_raking_commutative_only.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_reduce_warp_reductions.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_even_share.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/grid/grid_mapping.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/arg_index_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/device/dispatch/dispatch_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/agent/agent_reduce_by_key.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/iterator/constant_input_iterator.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/reduce_by_key.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/counting_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/counting_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/numeric_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/transform_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/transform_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/find.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/mismatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/equal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/validator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/polymorphic_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/device_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/host_memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/memory_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/new.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/mr/fancy_pointer_resource.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/pointer.h diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/DependInfo.cmake b/build/examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..2d29c6321aa40c3009435c0a6e45415d8e8915c6 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/ubuntu/thrust/examples/cuda/wrap_pointer.cu" "examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/wrap_pointer.cu.o" "gcc" "examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/wrap_pointer.cu.o.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/build.make b/build/examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..cb2d0518b0584e847e907546df9a8aaf0895565a --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +# Include any dependencies generated for this target. +include examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/flags.make + +examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/wrap_pointer.cu.o: examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/flags.make +examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/wrap_pointer.cu.o: examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/includes_CUDA.rsp +examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/wrap_pointer.cu.o: /home/ubuntu/thrust/examples/cuda/wrap_pointer.cu +examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/wrap_pointer.cu.o: examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CUDA object examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/wrap_pointer.cu.o" + cd /home/ubuntu/thrust/build/examples/cuda && /usr/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/usr/bin/c++ $(CUDA_DEFINES) $(CUDA_INCLUDES) $(CUDA_FLAGS) -MD -MT examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/wrap_pointer.cu.o -MF CMakeFiles/thrust.example.cuda.wrap_pointer.dir/wrap_pointer.cu.o.d -x cu -c /home/ubuntu/thrust/examples/cuda/wrap_pointer.cu -o CMakeFiles/thrust.example.cuda.wrap_pointer.dir/wrap_pointer.cu.o + +examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/wrap_pointer.cu.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CUDA source to CMakeFiles/thrust.example.cuda.wrap_pointer.dir/wrap_pointer.cu.i" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_PREPROCESSED_SOURCE + +examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/wrap_pointer.cu.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CUDA source to assembly CMakeFiles/thrust.example.cuda.wrap_pointer.dir/wrap_pointer.cu.s" + $(CMAKE_COMMAND) -E cmake_unimplemented_variable CMAKE_CUDA_CREATE_ASSEMBLY_SOURCE + +# Object files for target thrust.example.cuda.wrap_pointer +thrust_example_cuda_wrap_pointer_OBJECTS = \ +"CMakeFiles/thrust.example.cuda.wrap_pointer.dir/wrap_pointer.cu.o" + +# External object files for target thrust.example.cuda.wrap_pointer +thrust_example_cuda_wrap_pointer_EXTERNAL_OBJECTS = + +bin/thrust.example.cuda.wrap_pointer: examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/wrap_pointer.cu.o +bin/thrust.example.cuda.wrap_pointer: examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/build.make +bin/thrust.example.cuda.wrap_pointer: examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/linkLibs.rsp +bin/thrust.example.cuda.wrap_pointer: examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/objects1.rsp +bin/thrust.example.cuda.wrap_pointer: examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/ubuntu/thrust/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CUDA executable ../../bin/thrust.example.cuda.wrap_pointer" + cd /home/ubuntu/thrust/build/examples/cuda && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/thrust.example.cuda.wrap_pointer.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/build: bin/thrust.example.cuda.wrap_pointer +.PHONY : examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/build + +examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/clean: + cd /home/ubuntu/thrust/build/examples/cuda && $(CMAKE_COMMAND) -P CMakeFiles/thrust.example.cuda.wrap_pointer.dir/cmake_clean.cmake +.PHONY : examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/clean + +examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubuntu/thrust /home/ubuntu/thrust/examples/cuda /home/ubuntu/thrust/build /home/ubuntu/thrust/build/examples/cuda /home/ubuntu/thrust/build/examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/depend + diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/cmake_clean.cmake b/build/examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..2a8459059640244ab4b134be25235b18533f5a83 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../../bin/thrust.example.cuda.wrap_pointer" + "../../bin/thrust.example.cuda.wrap_pointer.pdb" + "CMakeFiles/thrust.example.cuda.wrap_pointer.dir/wrap_pointer.cu.o" + "CMakeFiles/thrust.example.cuda.wrap_pointer.dir/wrap_pointer.cu.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CUDA) + include(CMakeFiles/thrust.example.cuda.wrap_pointer.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/compiler_depend.make b/build/examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..e1244011478ec333557161d504bb5c8c5a734cba --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for thrust.example.cuda.wrap_pointer. +# This may be replaced when dependencies are built. diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/compiler_depend.ts b/build/examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..9fee66487cd381ef3c0da143bf3a4c39262694d0 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for thrust.example.cuda.wrap_pointer. diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/depend.make b/build/examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..2e532a4dee55db8b47521ea3339a6bdcf88437c4 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for thrust.example.cuda.wrap_pointer. +# This may be replaced when dependencies are built. diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/flags.make b/build/examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..2d7ae2c4575828c3195be66f2574e87b03251f6d --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# compile CUDA with /usr/bin/nvcc +CUDA_DEFINES = -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CUDA -DTHRUST_EXAMPLE_DEVICE_SIDE -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_CPP + +CUDA_INCLUDES = --options-file CMakeFiles/thrust.example.cuda.wrap_pointer.dir/includes_CUDA.rsp + +CUDA_FLAGS = -gencode arch=compute_90,code=compute_90 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -O3 -DNDEBUG -std=c++14 -include/home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h -Xcompiler=-Werror -Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Winit-self -Xcompiler=-Woverloaded-virtual -Xcompiler=-Wcast-qual -Xcompiler=-Wpointer-arith -Xcompiler=-Wvla -Xcompiler=-Wno-gnu-zero-variadic-macro-arguments -Xcompiler=-Wno-unused-function -Xcompiler=-Wno-noexcept-type -Xcudafe=--display_error_number -Wno-deprecated-gpu-targets -Xcudafe=--promote_warnings + diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/includes_CUDA.rsp b/build/examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/includes_CUDA.rsp new file mode 100644 index 0000000000000000000000000000000000000000..a472da2a7fabad455b8c79627aefd62401929005 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/includes_CUDA.rsp @@ -0,0 +1 @@ +-I/home/ubuntu/thrust/examples -I/home/ubuntu/thrust/thrust/cmake/../.. -I/home/ubuntu/thrust/dependencies/libcudacxx/include -I/home/ubuntu/thrust/dependencies/cub/cub/cmake/../.. diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/link.txt b/build/examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..964e4e753e28a49ceb869da755757087e6f4a8f3 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ @CMakeFiles/thrust.example.cuda.wrap_pointer.dir/objects1.rsp -o ../../bin/thrust.example.cuda.wrap_pointer @CMakeFiles/thrust.example.cuda.wrap_pointer.dir/linkLibs.rsp -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/linkLibs.rsp b/build/examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/linkLibs.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d05aa695f34cc0bd42ed1b2d50bdaad9537fafe7 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/linkLibs.rsp @@ -0,0 +1 @@ + -lcudadevrt -lcudart_static -lrt -lpthread -ldl diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/objects1.rsp b/build/examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/objects1.rsp new file mode 100644 index 0000000000000000000000000000000000000000..d978b2664b09e5b95400f5f7b9a104bade6a7860 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/objects1.rsp @@ -0,0 +1 @@ +CMakeFiles/thrust.example.cuda.wrap_pointer.dir/wrap_pointer.cu.o diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/progress.make b/build/examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..6c287f17b23171ee8abc97d23b8f8a3bfa7225de --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = + diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/wrap_pointer.cu.o b/build/examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/wrap_pointer.cu.o new file mode 100644 index 0000000000000000000000000000000000000000..7d5405af56842d18711973aa6fcf038f40eb8922 Binary files /dev/null and b/build/examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/wrap_pointer.cu.o differ diff --git a/build/examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/wrap_pointer.cu.o.d b/build/examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/wrap_pointer.cu.o.d new file mode 100644 index 0000000000000000000000000000000000000000..423989e7861b3387f4909c8d15f0989302729964 --- /dev/null +++ b/build/examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/wrap_pointer.cu.o.d @@ -0,0 +1,635 @@ +examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/wrap_pointer.cu.o : /home/ubuntu/thrust/examples/cuda/wrap_pointer.cu \ + /usr/include/stdc-predef.h \ + /home/ubuntu/thrust/testing/fix_clang_nvcc_11.5.h \ + /usr/include/cuda_runtime.h \ + /usr/include/crt/host_config.h \ + /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/builtin_types.h \ + /usr/include/device_types.h \ + /usr/include/crt/host_defines.h \ + /usr/include/driver_types.h \ + /usr/include/vector_types.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/surface_types.h \ + /usr/include/texture_types.h \ + /usr/include/library_types.h \ + /usr/include/channel_descriptor.h \ + /usr/include/cuda_runtime_api.h \ + /usr/include/cuda_device_runtime_api.h \ + /usr/include/driver_functions.h \ + /usr/include/vector_functions.h \ + /usr/include/vector_functions.hpp \ + /usr/include/crt/common_functions.h \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/9/new \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h \ + /usr/include/c++/9/exception \ + /usr/include/c++/9/bits/exception.h \ + /usr/include/c++/9/bits/exception_ptr.h \ + /usr/include/c++/9/bits/exception_defines.h \ + /usr/include/c++/9/bits/cxxabi_init_exception.h \ + /usr/include/c++/9/typeinfo \ + /usr/include/c++/9/bits/hash_bytes.h \ + /usr/include/c++/9/bits/nested_exception.h \ + /usr/include/c++/9/bits/move.h \ + /usr/include/c++/9/bits/concept_check.h \ + /usr/include/c++/9/type_traits \ + /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/9/stdlib.h \ + /usr/include/c++/9/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/9/bits/std_abs.h \ + /usr/include/assert.h \ + /usr/include/crt/math_functions.h \ + /usr/include/c++/9/math.h \ + /usr/include/c++/9/cmath \ + /usr/include/c++/9/bits/cpp_type_traits.h \ + /usr/include/c++/9/ext/type_traits.h \ + /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h \ + /usr/include/crt/math_functions.hpp \ + /usr/include/cuda_surface_types.h \ + /usr/include/cuda_texture_types.h \ + /usr/include/crt/device_functions.h \ + /usr/include/crt/device_functions.hpp \ + /usr/include/device_atomic_functions.h \ + /usr/include/device_atomic_functions.hpp \ + /usr/include/crt/device_double_functions.h \ + /usr/include/crt/device_double_functions.hpp \ + /usr/include/sm_20_atomic_functions.h \ + /usr/include/sm_20_atomic_functions.hpp \ + /usr/include/sm_32_atomic_functions.h \ + /usr/include/sm_32_atomic_functions.hpp \ + /usr/include/sm_35_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.h \ + /usr/include/sm_60_atomic_functions.hpp \ + /usr/include/sm_20_intrinsics.h \ + /usr/include/sm_20_intrinsics.hpp \ + /usr/include/sm_30_intrinsics.h \ + /usr/include/sm_30_intrinsics.hpp \ + /usr/include/sm_32_intrinsics.h \ + /usr/include/sm_32_intrinsics.hpp \ + /usr/include/sm_35_intrinsics.h \ + /usr/include/sm_61_intrinsics.h \ + /usr/include/sm_61_intrinsics.hpp \ + /usr/include/crt/sm_70_rt.h \ + /usr/include/crt/sm_70_rt.hpp \ + /usr/include/crt/sm_80_rt.h \ + /usr/include/crt/sm_80_rt.hpp \ + /usr/include/crt/sm_90_rt.h \ + /usr/include/crt/sm_90_rt.hpp \ + /usr/include/surface_functions.h \ + /usr/include/texture_fetch_functions.h \ + /usr/include/texture_indirect_functions.h \ + /usr/include/surface_indirect_functions.h \ + /usr/include/crt/cudacc_ext.h \ + /usr/include/device_launch_parameters.h \ + /usr/include/c++/9/utility \ + /usr/include/c++/9/bits/stl_relops.h \ + /usr/include/c++/9/bits/stl_pair.h \ + /usr/include/c++/9/initializer_list \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/version.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/config.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/simple_defines.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/compiler.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_dialect.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/cpp_compatibility.h \ + /usr/include/c++/9/cstddef \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/deprecated.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/device_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/host_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/debug.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/forceinline.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/exec_check_disable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/global_workarounds.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/config/namespace.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/pointer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/target \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__target_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/nv/detail/__preprocessor \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_trivial_assign.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_metafunction_defined.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_nested_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/void_t.h \ + /usr/include/c++/9/iterator \ + /usr/include/c++/9/bits/stl_iterator_base_types.h \ + /usr/include/c++/9/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/9/debug/assertions.h \ + /usr/include/c++/9/bits/stl_iterator.h \ + /usr/include/c++/9/bits/ptr_traits.h \ + /usr/include/c++/9/ostream \ + /usr/include/c++/9/ios \ + /usr/include/c++/9/iosfwd \ + /usr/include/c++/9/bits/stringfwd.h \ + /usr/include/c++/9/bits/memoryfwd.h \ + /usr/include/c++/9/bits/postypes.h \ + /usr/include/c++/9/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/9/bits/char_traits.h \ + /usr/include/c++/9/bits/stl_algobase.h \ + /usr/include/c++/9/bits/functexcept.h \ + /usr/include/c++/9/ext/numeric_traits.h \ + /usr/include/c++/9/debug/debug.h \ + /usr/include/c++/9/bits/predefined_ops.h \ + /usr/include/c++/9/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/9/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++locale.h \ + /usr/include/c++/9/clocale \ + /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/9/cctype \ + /usr/include/ctype.h \ + /usr/include/c++/9/bits/ios_base.h \ + /usr/include/c++/9/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/gthr-default.h \ + /usr/include/pthread.h \ + /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/atomic_word.h \ + /usr/include/c++/9/bits/locale_classes.h \ + /usr/include/c++/9/string \ + /usr/include/c++/9/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/c++allocator.h \ + /usr/include/c++/9/ext/new_allocator.h \ + /usr/include/c++/9/bits/ostream_insert.h \ + /usr/include/c++/9/bits/cxxabi_forced.h \ + /usr/include/c++/9/bits/stl_function.h \ + /usr/include/c++/9/backward/binders.h \ + /usr/include/c++/9/bits/range_access.h \ + /usr/include/c++/9/bits/basic_string.h \ + /usr/include/c++/9/ext/alloc_traits.h \ + /usr/include/c++/9/bits/alloc_traits.h \ + /usr/include/c++/9/ext/string_conversions.h \ + /usr/include/c++/9/cstdio \ + /usr/include/c++/9/cerrno \ + /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h \ + /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/9/bits/functional_hash.h \ + /usr/include/c++/9/bits/basic_string.tcc \ + /usr/include/c++/9/bits/locale_classes.tcc \ + /usr/include/c++/9/system_error \ + /usr/include/x86_64-linux-gnu/c++/9/bits/error_constants.h \ + /usr/include/c++/9/stdexcept \ + /usr/include/c++/9/streambuf \ + /usr/include/c++/9/bits/streambuf.tcc \ + /usr/include/c++/9/bits/basic_ios.h \ + /usr/include/c++/9/bits/locale_facets.h \ + /usr/include/c++/9/cwctype \ + /usr/include/wctype.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_base.h \ + /usr/include/c++/9/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/9/bits/ctype_inline.h \ + /usr/include/c++/9/bits/locale_facets.tcc \ + /usr/include/c++/9/bits/basic_ios.tcc \ + /usr/include/c++/9/bits/ostream.tcc \ + /usr/include/c++/9/istream \ + /usr/include/c++/9/bits/istream.tcc \ + /usr/include/c++/9/bits/stream_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traversal_tags.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/host_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/device_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/any_system_tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/config.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_namespace.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/version.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_debug.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_arch.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_cpp_dialect.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_compiler.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_macro.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/utility \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/utility \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/detect_cuda_runtime.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator_fwd.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_dependencies.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/cpp11_required.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_deduction.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/preprocessor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/remove_cvref.h \ + /usr/include/c++/9/tuple \ + /usr/include/c++/9/array \ + /usr/include/c++/9/bits/uses_allocator.h \ + /usr/include/c++/9/bits/invoke.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/dependencies_aware_execution_policy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_with_system_and_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/universal_categories.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_traversal.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_category_to_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_adaptor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/iterator_facade.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_facade_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/is_iterator_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/distance_from_result.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/use_default.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/iterator_adaptor_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference_forward_declaration.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pointer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/reference.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/minimum_type.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/select_system_exists.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/tag.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/pair.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/pair.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/tuple.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/memory.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_pointer_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_cuda_runtime_api.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/raw_reference_cast.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/tuple_meta_transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/integer_sequence.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tuple_of_iterator_references.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/error_code.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/errno.h \ + /usr/include/c++/9/iostream \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_category.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/functional.h \ + /usr/include/c++/9/functional \ + /usr/include/c++/9/bits/refwrap.h \ + /usr/include/c++/9/bits/std_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/placeholder.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/composite.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/assignment_operator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/operator_adaptors.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/argument.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/result_of_adaptable_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/function_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/actor.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/logical_metafunctions.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/arithmetic_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/relational_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/logical_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/bitwise_operators.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/functional/operators/compound_assignment_operators.h \ + /usr/include/c++/9/cstring \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_code.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/error_condition.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/system_error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/system_error.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/error.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/guarded_driver_types.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/error.inl \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/device_synchronize.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/exec_check_disable.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_device.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_type.cuh \ + /usr/include/c++/9/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/float.h \ + /usr/include/c++/9/limits \ + /usr/include/cuda.h \ + /usr/include/cuda_fp16.h \ + /usr/include/cuda_fp16.hpp \ + /usr/include/cuda_bf16.h \ + /usr/include/cuda_bf16.hpp \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/uninitialized_copy.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/config.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_deprecated.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/detail/type_traits.cuh \ + /usr/include/c++/9/atomic \ + /usr/include/c++/9/bits/atomic_base.h \ + /usr/include/c++/9/bits/atomic_lockfree_defines.h \ + /usr/include/c++/9/cassert \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/bad_alloc.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/malloc_and_free.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/static_assert.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/get_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/assign_value.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/advance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/cdp_dispatch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_device_to_device.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/parallel_for.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/agent_launcher.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/triple_chevron_launch.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/alignment.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/core/util.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_contiguous_iterator.h \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../block/block_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/util_ptx.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_exchange.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/cache_modified_input_iterator.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_load.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/../iterator/../thread/thread_store.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_raking.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_raking_layout.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_reduce.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/../thread/thread_operators.cuh \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/functional \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/iterator \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../chrono \ + /usr/include/c++/9/chrono \ + /usr/include/c++/9/ratio \ + /usr/include/c++/9/ctime \ + /usr/include/c++/9/bits/parse_numbers.h \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__config \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_push \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__undef_macros \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ctime \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/__pragma_pop \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../type_traits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../version \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../climits \ + /usr/include/c++/9/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/climits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/cstdint \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/ratio \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/limits \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/../detail/libcxx/include/chrono \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base \ + /home/ubuntu/thrust/dependencies/libcudacxx/include/cuda/std/detail/libcxx/include/functional \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/thread/thread_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/warp_scan.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_shfl.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/warp/specializations/warp_scan_smem.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/specializations/block_scan_warp_scans.cuh \ + /home/ubuntu/thrust/dependencies/cub/cub/cmake/../../cub/block/block_store.cuh \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par_to_seq.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/par.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/distance.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/internal/copy_cross_system.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/tagged_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/normal_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/has_member_function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/memory_wrapper.h \ + /usr/include/c++/9/memory \ + /usr/include/c++/9/bits/stl_construct.h \ + /usr/include/c++/9/bits/stl_uninitialized.h \ + /usr/include/c++/9/bits/stl_tempbuf.h \ + /usr/include/c++/9/bits/stl_raw_storage_iter.h \ + /usr/include/c++/9/ext/concurrence.h \ + /usr/include/c++/9/bits/unique_ptr.h \ + /usr/include/c++/9/bits/shared_ptr.h \ + /usr/include/c++/9/bits/shared_ptr_base.h \ + /usr/include/c++/9/bits/allocated_ptr.h \ + /usr/include/c++/9/ext/aligned_buffer.h \ + /usr/include/c++/9/bits/shared_ptr_atomic.h \ + /usr/include/c++/9/backward/auto_ptr.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/allocator_traits.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/type_traits/is_call_possible.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_traits.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/contiguous_storage.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/copy_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/internal_functional.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/transform.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/for_each.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/function.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/for_each.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/zip_iterator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator_base.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/minimum_category.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/iterator/detail/zip_iterator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/transform.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/copy.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/general_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/trivial_copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/type_traits/is_trivially_relocatable.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/copy.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/default_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/uninitialized_fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/fill.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/generate.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/generate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/uninitialized_fill.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/destroy_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/fill_construct_range.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/tagged_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/temporary_allocator.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/execute_with_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/integer_math.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/temporary_buffer.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/temporary_buffer.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/terminate.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/allocator/no_throw_allocator.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/temporary_array.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/iter_swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/swap.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/generic/swap_ranges.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/adl/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/detail/sequential/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cpp/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/system/cuda/detail/swap_ranges.h \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/detail/device_ptr.inl \ + /home/ubuntu/thrust/thrust/cmake/../../thrust/device_reference.h diff --git a/build/examples/cuda/CTestTestfile.cmake b/build/examples/cuda/CTestTestfile.cmake new file mode 100644 index 0000000000000000000000000000000000000000..325c56f64c2f28419724f0e7992c38bc691723b9 --- /dev/null +++ b/build/examples/cuda/CTestTestfile.cmake @@ -0,0 +1,20 @@ +# CMake generated Testfile for +# Source directory: /home/ubuntu/thrust/examples/cuda +# Build directory: /home/ubuntu/thrust/build/examples/cuda +# +# This file includes the relevant testing commands required for +# testing this directory and lists subdirectories to be tested as well. +add_test(thrust.example.cuda.async_reduce "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.cuda.async_reduce" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.cuda.async_reduce.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.cuda.async_reduce PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/cuda/CMakeLists.txt;16;thrust_add_example;/home/ubuntu/thrust/examples/cuda/CMakeLists.txt;0;") +add_test(thrust.example.cuda.custom_temporary_allocation "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.cuda.custom_temporary_allocation" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.cuda.custom_temporary_allocation.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.cuda.custom_temporary_allocation PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/cuda/CMakeLists.txt;16;thrust_add_example;/home/ubuntu/thrust/examples/cuda/CMakeLists.txt;0;") +add_test(thrust.example.cuda.explicit_cuda_stream "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.cuda.explicit_cuda_stream" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.cuda.explicit_cuda_stream.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.cuda.explicit_cuda_stream PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/cuda/CMakeLists.txt;16;thrust_add_example;/home/ubuntu/thrust/examples/cuda/CMakeLists.txt;0;") +add_test(thrust.example.cuda.global_device_vector "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.cuda.global_device_vector" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.cuda.global_device_vector.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.cuda.global_device_vector PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/cuda/CMakeLists.txt;16;thrust_add_example;/home/ubuntu/thrust/examples/cuda/CMakeLists.txt;0;") +add_test(thrust.example.cuda.range_view "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.cuda.range_view" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.cuda.range_view.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.cuda.range_view PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/cuda/CMakeLists.txt;16;thrust_add_example;/home/ubuntu/thrust/examples/cuda/CMakeLists.txt;0;") +add_test(thrust.example.cuda.unwrap_pointer "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.cuda.unwrap_pointer" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.cuda.unwrap_pointer.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.cuda.unwrap_pointer PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/cuda/CMakeLists.txt;16;thrust_add_example;/home/ubuntu/thrust/examples/cuda/CMakeLists.txt;0;") +add_test(thrust.example.cuda.wrap_pointer "/usr/bin/cmake" "-DEXAMPLE_EXECUTABLE=/home/ubuntu/thrust/build/bin/thrust.example.cuda.wrap_pointer" "-DFILECHECK_ENABLED=OFF" "-DFILECHECK_EXECUTABLE=" "-DREFERENCE_FILE=/home/ubuntu/thrust/internal/test/thrust.example.cuda.wrap_pointer.filecheck" "-P" "/home/ubuntu/thrust/cmake/ThrustRunExample.cmake") +set_tests_properties(thrust.example.cuda.wrap_pointer PROPERTIES _BACKTRACE_TRIPLES "/home/ubuntu/thrust/examples/CMakeLists.txt;125;add_test;/home/ubuntu/thrust/examples/cuda/CMakeLists.txt;16;thrust_add_example;/home/ubuntu/thrust/examples/cuda/CMakeLists.txt;0;") diff --git a/build/examples/cuda/Makefile b/build/examples/cuda/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..ff909d8e476fe8471c35fc004dbf051055b2f1f9 --- /dev/null +++ b/build/examples/cuda/Makefile @@ -0,0 +1,601 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.26 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ubuntu/thrust + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ubuntu/thrust/build + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target test +test: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..." + /usr/bin/ctest --force-new-ctest-process $(ARGS) +.PHONY : test + +# Special rule for the target test +test/fast: test +.PHONY : test/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components +.PHONY : list_install_components/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# The main all target +all: cmake_check_build_system + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles /home/ubuntu/thrust/build/examples/cuda//CMakeFiles/progress.marks + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/cuda/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ubuntu/thrust/build/CMakeFiles 0 +.PHONY : all + +# The main clean target +clean: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/cuda/clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: cmake_check_build_system + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/cuda/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/cuda/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -P /home/ubuntu/thrust/build/CMakeFiles/VerifyGlobs.cmake + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Convenience name for target. +examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/rule +.PHONY : examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/rule + +# Convenience name for target. +thrust.example.cuda.async_reduce: examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/rule +.PHONY : thrust.example.cuda.async_reduce + +# fast build rule for target. +thrust.example.cuda.async_reduce/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/build.make examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/build +.PHONY : thrust.example.cuda.async_reduce/fast + +# Convenience name for target. +examples/cuda/CMakeFiles/thrust.all.example.cuda.async_reduce.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/cuda/CMakeFiles/thrust.all.example.cuda.async_reduce.dir/rule +.PHONY : examples/cuda/CMakeFiles/thrust.all.example.cuda.async_reduce.dir/rule + +# Convenience name for target. +thrust.all.example.cuda.async_reduce: examples/cuda/CMakeFiles/thrust.all.example.cuda.async_reduce.dir/rule +.PHONY : thrust.all.example.cuda.async_reduce + +# fast build rule for target. +thrust.all.example.cuda.async_reduce/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.all.example.cuda.async_reduce.dir/build.make examples/cuda/CMakeFiles/thrust.all.example.cuda.async_reduce.dir/build +.PHONY : thrust.all.example.cuda.async_reduce/fast + +# Convenience name for target. +examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/rule +.PHONY : examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/rule + +# Convenience name for target. +thrust.example.cuda.custom_temporary_allocation: examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/rule +.PHONY : thrust.example.cuda.custom_temporary_allocation + +# fast build rule for target. +thrust.example.cuda.custom_temporary_allocation/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/build.make examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/build +.PHONY : thrust.example.cuda.custom_temporary_allocation/fast + +# Convenience name for target. +examples/cuda/CMakeFiles/thrust.all.example.cuda.custom_temporary_allocation.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/cuda/CMakeFiles/thrust.all.example.cuda.custom_temporary_allocation.dir/rule +.PHONY : examples/cuda/CMakeFiles/thrust.all.example.cuda.custom_temporary_allocation.dir/rule + +# Convenience name for target. +thrust.all.example.cuda.custom_temporary_allocation: examples/cuda/CMakeFiles/thrust.all.example.cuda.custom_temporary_allocation.dir/rule +.PHONY : thrust.all.example.cuda.custom_temporary_allocation + +# fast build rule for target. +thrust.all.example.cuda.custom_temporary_allocation/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.all.example.cuda.custom_temporary_allocation.dir/build.make examples/cuda/CMakeFiles/thrust.all.example.cuda.custom_temporary_allocation.dir/build +.PHONY : thrust.all.example.cuda.custom_temporary_allocation/fast + +# Convenience name for target. +examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/rule +.PHONY : examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/rule + +# Convenience name for target. +thrust.example.cuda.explicit_cuda_stream: examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/rule +.PHONY : thrust.example.cuda.explicit_cuda_stream + +# fast build rule for target. +thrust.example.cuda.explicit_cuda_stream/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/build.make examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/build +.PHONY : thrust.example.cuda.explicit_cuda_stream/fast + +# Convenience name for target. +examples/cuda/CMakeFiles/thrust.all.example.cuda.explicit_cuda_stream.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/cuda/CMakeFiles/thrust.all.example.cuda.explicit_cuda_stream.dir/rule +.PHONY : examples/cuda/CMakeFiles/thrust.all.example.cuda.explicit_cuda_stream.dir/rule + +# Convenience name for target. +thrust.all.example.cuda.explicit_cuda_stream: examples/cuda/CMakeFiles/thrust.all.example.cuda.explicit_cuda_stream.dir/rule +.PHONY : thrust.all.example.cuda.explicit_cuda_stream + +# fast build rule for target. +thrust.all.example.cuda.explicit_cuda_stream/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.all.example.cuda.explicit_cuda_stream.dir/build.make examples/cuda/CMakeFiles/thrust.all.example.cuda.explicit_cuda_stream.dir/build +.PHONY : thrust.all.example.cuda.explicit_cuda_stream/fast + +# Convenience name for target. +examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/rule +.PHONY : examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/rule + +# Convenience name for target. +thrust.example.cuda.global_device_vector: examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/rule +.PHONY : thrust.example.cuda.global_device_vector + +# fast build rule for target. +thrust.example.cuda.global_device_vector/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/build.make examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/build +.PHONY : thrust.example.cuda.global_device_vector/fast + +# Convenience name for target. +examples/cuda/CMakeFiles/thrust.all.example.cuda.global_device_vector.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/cuda/CMakeFiles/thrust.all.example.cuda.global_device_vector.dir/rule +.PHONY : examples/cuda/CMakeFiles/thrust.all.example.cuda.global_device_vector.dir/rule + +# Convenience name for target. +thrust.all.example.cuda.global_device_vector: examples/cuda/CMakeFiles/thrust.all.example.cuda.global_device_vector.dir/rule +.PHONY : thrust.all.example.cuda.global_device_vector + +# fast build rule for target. +thrust.all.example.cuda.global_device_vector/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.all.example.cuda.global_device_vector.dir/build.make examples/cuda/CMakeFiles/thrust.all.example.cuda.global_device_vector.dir/build +.PHONY : thrust.all.example.cuda.global_device_vector/fast + +# Convenience name for target. +examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/rule +.PHONY : examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/rule + +# Convenience name for target. +thrust.example.cuda.range_view: examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/rule +.PHONY : thrust.example.cuda.range_view + +# fast build rule for target. +thrust.example.cuda.range_view/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/build.make examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/build +.PHONY : thrust.example.cuda.range_view/fast + +# Convenience name for target. +examples/cuda/CMakeFiles/thrust.all.example.cuda.range_view.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/cuda/CMakeFiles/thrust.all.example.cuda.range_view.dir/rule +.PHONY : examples/cuda/CMakeFiles/thrust.all.example.cuda.range_view.dir/rule + +# Convenience name for target. +thrust.all.example.cuda.range_view: examples/cuda/CMakeFiles/thrust.all.example.cuda.range_view.dir/rule +.PHONY : thrust.all.example.cuda.range_view + +# fast build rule for target. +thrust.all.example.cuda.range_view/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.all.example.cuda.range_view.dir/build.make examples/cuda/CMakeFiles/thrust.all.example.cuda.range_view.dir/build +.PHONY : thrust.all.example.cuda.range_view/fast + +# Convenience name for target. +examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/rule +.PHONY : examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/rule + +# Convenience name for target. +thrust.example.cuda.unwrap_pointer: examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/rule +.PHONY : thrust.example.cuda.unwrap_pointer + +# fast build rule for target. +thrust.example.cuda.unwrap_pointer/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/build.make examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/build +.PHONY : thrust.example.cuda.unwrap_pointer/fast + +# Convenience name for target. +examples/cuda/CMakeFiles/thrust.all.example.cuda.unwrap_pointer.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/cuda/CMakeFiles/thrust.all.example.cuda.unwrap_pointer.dir/rule +.PHONY : examples/cuda/CMakeFiles/thrust.all.example.cuda.unwrap_pointer.dir/rule + +# Convenience name for target. +thrust.all.example.cuda.unwrap_pointer: examples/cuda/CMakeFiles/thrust.all.example.cuda.unwrap_pointer.dir/rule +.PHONY : thrust.all.example.cuda.unwrap_pointer + +# fast build rule for target. +thrust.all.example.cuda.unwrap_pointer/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.all.example.cuda.unwrap_pointer.dir/build.make examples/cuda/CMakeFiles/thrust.all.example.cuda.unwrap_pointer.dir/build +.PHONY : thrust.all.example.cuda.unwrap_pointer/fast + +# Convenience name for target. +examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/rule +.PHONY : examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/rule + +# Convenience name for target. +thrust.example.cuda.wrap_pointer: examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/rule +.PHONY : thrust.example.cuda.wrap_pointer + +# fast build rule for target. +thrust.example.cuda.wrap_pointer/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/build.make examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/build +.PHONY : thrust.example.cuda.wrap_pointer/fast + +# Convenience name for target. +examples/cuda/CMakeFiles/thrust.all.example.cuda.wrap_pointer.dir/rule: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/cuda/CMakeFiles/thrust.all.example.cuda.wrap_pointer.dir/rule +.PHONY : examples/cuda/CMakeFiles/thrust.all.example.cuda.wrap_pointer.dir/rule + +# Convenience name for target. +thrust.all.example.cuda.wrap_pointer: examples/cuda/CMakeFiles/thrust.all.example.cuda.wrap_pointer.dir/rule +.PHONY : thrust.all.example.cuda.wrap_pointer + +# fast build rule for target. +thrust.all.example.cuda.wrap_pointer/fast: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.all.example.cuda.wrap_pointer.dir/build.make examples/cuda/CMakeFiles/thrust.all.example.cuda.wrap_pointer.dir/build +.PHONY : thrust.all.example.cuda.wrap_pointer/fast + +async_reduce.o: async_reduce.cu.o +.PHONY : async_reduce.o + +# target to build an object file +async_reduce.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/build.make examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/async_reduce.cu.o +.PHONY : async_reduce.cu.o + +async_reduce.i: async_reduce.cu.i +.PHONY : async_reduce.i + +# target to preprocess a source file +async_reduce.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/build.make examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/async_reduce.cu.i +.PHONY : async_reduce.cu.i + +async_reduce.s: async_reduce.cu.s +.PHONY : async_reduce.s + +# target to generate assembly for a file +async_reduce.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/build.make examples/cuda/CMakeFiles/thrust.example.cuda.async_reduce.dir/async_reduce.cu.s +.PHONY : async_reduce.cu.s + +custom_temporary_allocation.o: custom_temporary_allocation.cu.o +.PHONY : custom_temporary_allocation.o + +# target to build an object file +custom_temporary_allocation.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/build.make examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/custom_temporary_allocation.cu.o +.PHONY : custom_temporary_allocation.cu.o + +custom_temporary_allocation.i: custom_temporary_allocation.cu.i +.PHONY : custom_temporary_allocation.i + +# target to preprocess a source file +custom_temporary_allocation.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/build.make examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/custom_temporary_allocation.cu.i +.PHONY : custom_temporary_allocation.cu.i + +custom_temporary_allocation.s: custom_temporary_allocation.cu.s +.PHONY : custom_temporary_allocation.s + +# target to generate assembly for a file +custom_temporary_allocation.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/build.make examples/cuda/CMakeFiles/thrust.example.cuda.custom_temporary_allocation.dir/custom_temporary_allocation.cu.s +.PHONY : custom_temporary_allocation.cu.s + +explicit_cuda_stream.o: explicit_cuda_stream.cu.o +.PHONY : explicit_cuda_stream.o + +# target to build an object file +explicit_cuda_stream.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/build.make examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/explicit_cuda_stream.cu.o +.PHONY : explicit_cuda_stream.cu.o + +explicit_cuda_stream.i: explicit_cuda_stream.cu.i +.PHONY : explicit_cuda_stream.i + +# target to preprocess a source file +explicit_cuda_stream.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/build.make examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/explicit_cuda_stream.cu.i +.PHONY : explicit_cuda_stream.cu.i + +explicit_cuda_stream.s: explicit_cuda_stream.cu.s +.PHONY : explicit_cuda_stream.s + +# target to generate assembly for a file +explicit_cuda_stream.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/build.make examples/cuda/CMakeFiles/thrust.example.cuda.explicit_cuda_stream.dir/explicit_cuda_stream.cu.s +.PHONY : explicit_cuda_stream.cu.s + +global_device_vector.o: global_device_vector.cu.o +.PHONY : global_device_vector.o + +# target to build an object file +global_device_vector.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/build.make examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/global_device_vector.cu.o +.PHONY : global_device_vector.cu.o + +global_device_vector.i: global_device_vector.cu.i +.PHONY : global_device_vector.i + +# target to preprocess a source file +global_device_vector.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/build.make examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/global_device_vector.cu.i +.PHONY : global_device_vector.cu.i + +global_device_vector.s: global_device_vector.cu.s +.PHONY : global_device_vector.s + +# target to generate assembly for a file +global_device_vector.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/build.make examples/cuda/CMakeFiles/thrust.example.cuda.global_device_vector.dir/global_device_vector.cu.s +.PHONY : global_device_vector.cu.s + +range_view.o: range_view.cu.o +.PHONY : range_view.o + +# target to build an object file +range_view.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/build.make examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/range_view.cu.o +.PHONY : range_view.cu.o + +range_view.i: range_view.cu.i +.PHONY : range_view.i + +# target to preprocess a source file +range_view.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/build.make examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/range_view.cu.i +.PHONY : range_view.cu.i + +range_view.s: range_view.cu.s +.PHONY : range_view.s + +# target to generate assembly for a file +range_view.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/build.make examples/cuda/CMakeFiles/thrust.example.cuda.range_view.dir/range_view.cu.s +.PHONY : range_view.cu.s + +unwrap_pointer.o: unwrap_pointer.cu.o +.PHONY : unwrap_pointer.o + +# target to build an object file +unwrap_pointer.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/build.make examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/unwrap_pointer.cu.o +.PHONY : unwrap_pointer.cu.o + +unwrap_pointer.i: unwrap_pointer.cu.i +.PHONY : unwrap_pointer.i + +# target to preprocess a source file +unwrap_pointer.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/build.make examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/unwrap_pointer.cu.i +.PHONY : unwrap_pointer.cu.i + +unwrap_pointer.s: unwrap_pointer.cu.s +.PHONY : unwrap_pointer.s + +# target to generate assembly for a file +unwrap_pointer.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/build.make examples/cuda/CMakeFiles/thrust.example.cuda.unwrap_pointer.dir/unwrap_pointer.cu.s +.PHONY : unwrap_pointer.cu.s + +wrap_pointer.o: wrap_pointer.cu.o +.PHONY : wrap_pointer.o + +# target to build an object file +wrap_pointer.cu.o: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/build.make examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/wrap_pointer.cu.o +.PHONY : wrap_pointer.cu.o + +wrap_pointer.i: wrap_pointer.cu.i +.PHONY : wrap_pointer.i + +# target to preprocess a source file +wrap_pointer.cu.i: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/build.make examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/wrap_pointer.cu.i +.PHONY : wrap_pointer.cu.i + +wrap_pointer.s: wrap_pointer.cu.s +.PHONY : wrap_pointer.s + +# target to generate assembly for a file +wrap_pointer.cu.s: + cd /home/ubuntu/thrust/build && $(MAKE) $(MAKESILENT) -f examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/build.make examples/cuda/CMakeFiles/thrust.example.cuda.wrap_pointer.dir/wrap_pointer.cu.s +.PHONY : wrap_pointer.cu.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... install" + @echo "... install/local" + @echo "... install/strip" + @echo "... list_install_components" + @echo "... rebuild_cache" + @echo "... test" + @echo "... thrust.all.example.cuda.async_reduce" + @echo "... thrust.all.example.cuda.custom_temporary_allocation" + @echo "... thrust.all.example.cuda.explicit_cuda_stream" + @echo "... thrust.all.example.cuda.global_device_vector" + @echo "... thrust.all.example.cuda.range_view" + @echo "... thrust.all.example.cuda.unwrap_pointer" + @echo "... thrust.all.example.cuda.wrap_pointer" + @echo "... thrust.example.cuda.async_reduce" + @echo "... thrust.example.cuda.custom_temporary_allocation" + @echo "... thrust.example.cuda.explicit_cuda_stream" + @echo "... thrust.example.cuda.global_device_vector" + @echo "... thrust.example.cuda.range_view" + @echo "... thrust.example.cuda.unwrap_pointer" + @echo "... thrust.example.cuda.wrap_pointer" + @echo "... async_reduce.o" + @echo "... async_reduce.i" + @echo "... async_reduce.s" + @echo "... custom_temporary_allocation.o" + @echo "... custom_temporary_allocation.i" + @echo "... custom_temporary_allocation.s" + @echo "... explicit_cuda_stream.o" + @echo "... explicit_cuda_stream.i" + @echo "... explicit_cuda_stream.s" + @echo "... global_device_vector.o" + @echo "... global_device_vector.i" + @echo "... global_device_vector.s" + @echo "... range_view.o" + @echo "... range_view.i" + @echo "... range_view.s" + @echo "... unwrap_pointer.o" + @echo "... unwrap_pointer.i" + @echo "... unwrap_pointer.s" + @echo "... wrap_pointer.o" + @echo "... wrap_pointer.i" + @echo "... wrap_pointer.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -P /home/ubuntu/thrust/build/CMakeFiles/VerifyGlobs.cmake + cd /home/ubuntu/thrust/build && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/build/examples/cuda/cmake_install.cmake b/build/examples/cuda/cmake_install.cmake new file mode 100644 index 0000000000000000000000000000000000000000..30749aa6352963eed376c51b2df56a1b80b7fdeb --- /dev/null +++ b/build/examples/cuda/cmake_install.cmake @@ -0,0 +1,44 @@ +# Install script for directory: /home/ubuntu/thrust/examples/cuda + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Release") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/usr/bin/objdump") +endif() + diff --git a/build/install_manifest.txt b/build/install_manifest.txt index e2000afa38fa3ea07fc1f1e4804dacd86cb0069d..0495b6176f3f684e44649fd687efaa52c88911d7 100644 --- a/build/install_manifest.txt +++ b/build/install_manifest.txt @@ -1,1194 +1,1198 @@ -/home/ubuntu/thrust/install/include/thrust/equal.h -/home/ubuntu/thrust/install/include/thrust/for_each.h -/home/ubuntu/thrust/install/include/thrust/distance.h -/home/ubuntu/thrust/install/include/thrust/merge.h -/home/ubuntu/thrust/install/include/thrust/logical.h -/home/ubuntu/thrust/install/include/thrust/event.h -/home/ubuntu/thrust/install/include/thrust/optional.h -/home/ubuntu/thrust/install/include/thrust/tuple.h -/home/ubuntu/thrust/install/include/thrust/binary_search.h -/home/ubuntu/thrust/install/include/thrust/addressof.h -/home/ubuntu/thrust/install/include/thrust/mismatch.h -/home/ubuntu/thrust/install/include/thrust/async/for_each.h -/home/ubuntu/thrust/install/include/thrust/async/reduce.h -/home/ubuntu/thrust/install/include/thrust/async/copy.h -/home/ubuntu/thrust/install/include/thrust/async/sort.h -/home/ubuntu/thrust/install/include/thrust/async/scan.h -/home/ubuntu/thrust/install/include/thrust/async/transform.h -/home/ubuntu/thrust/install/include/thrust/future.h -/home/ubuntu/thrust/install/include/thrust/random.h -/home/ubuntu/thrust/install/include/thrust/device_malloc_allocator.h -/home/ubuntu/thrust/install/include/thrust/partition.h -/home/ubuntu/thrust/install/include/thrust/extrema.h -/home/ubuntu/thrust/install/include/thrust/transform_reduce.h -/home/ubuntu/thrust/install/include/thrust/shuffle.h -/home/ubuntu/thrust/install/include/thrust/memory.h -/home/ubuntu/thrust/install/include/thrust/swap.h -/home/ubuntu/thrust/install/include/thrust/random/uniform_real_distribution.h -/home/ubuntu/thrust/install/include/thrust/random/normal_distribution.h -/home/ubuntu/thrust/install/include/thrust/random/linear_congruential_engine.h -/home/ubuntu/thrust/install/include/thrust/random/uniform_int_distribution.h -/home/ubuntu/thrust/install/include/thrust/random/discard_block_engine.h -/home/ubuntu/thrust/install/include/thrust/random/xor_combine_engine.h -/home/ubuntu/thrust/install/include/thrust/random/detail/uniform_int_distribution.inl -/home/ubuntu/thrust/install/include/thrust/random/detail/normal_distribution_base.h -/home/ubuntu/thrust/install/include/thrust/random/detail/linear_congruential_engine.inl -/home/ubuntu/thrust/install/include/thrust/random/detail/linear_feedback_shift_engine_wordmask.h -/home/ubuntu/thrust/install/include/thrust/random/detail/uniform_real_distribution.inl -/home/ubuntu/thrust/install/include/thrust/random/detail/linear_congruential_engine_discard.h -/home/ubuntu/thrust/install/include/thrust/random/detail/subtract_with_carry_engine.inl -/home/ubuntu/thrust/install/include/thrust/random/detail/normal_distribution.inl -/home/ubuntu/thrust/install/include/thrust/random/detail/xor_combine_engine.inl -/home/ubuntu/thrust/install/include/thrust/random/detail/xor_combine_engine_max.h -/home/ubuntu/thrust/install/include/thrust/random/detail/mod.h -/home/ubuntu/thrust/install/include/thrust/random/detail/random_core_access.h -/home/ubuntu/thrust/install/include/thrust/random/detail/linear_feedback_shift_engine.inl -/home/ubuntu/thrust/install/include/thrust/random/detail/discard_block_engine.inl -/home/ubuntu/thrust/install/include/thrust/random/linear_feedback_shift_engine.h -/home/ubuntu/thrust/install/include/thrust/random/subtract_with_carry_engine.h -/home/ubuntu/thrust/install/include/thrust/device_reference.h -/home/ubuntu/thrust/install/include/thrust/execution_policy.h -/home/ubuntu/thrust/install/include/thrust/universal_allocator.h -/home/ubuntu/thrust/install/include/thrust/zip_function.h -/home/ubuntu/thrust/install/include/thrust/functional.h -/home/ubuntu/thrust/install/include/thrust/generate.h -/home/ubuntu/thrust/install/include/thrust/uninitialized_copy.h -/home/ubuntu/thrust/install/include/thrust/find.h -/home/ubuntu/thrust/install/include/thrust/system_error.h -/home/ubuntu/thrust/install/include/thrust/per_device_resource.h -/home/ubuntu/thrust/install/include/thrust/reduce.h -/home/ubuntu/thrust/install/include/thrust/copy.h -/home/ubuntu/thrust/install/include/thrust/adjacent_difference.h -/home/ubuntu/thrust/install/include/thrust/universal_ptr.h -/home/ubuntu/thrust/install/include/thrust/inner_product.h -/home/ubuntu/thrust/install/include/thrust/allocate_unique.h -/home/ubuntu/thrust/install/include/thrust/system/tbb/memory_resource.h -/home/ubuntu/thrust/install/include/thrust/system/tbb/pointer.h -/home/ubuntu/thrust/install/include/thrust/system/tbb/memory.h -/home/ubuntu/thrust/install/include/thrust/system/tbb/execution_policy.h -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/swap_ranges.h -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/equal.h -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/for_each.h -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/merge.h -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/copy.inl -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/logical.h -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/malloc_and_free.h -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/binary_search.h -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/mismatch.h -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/reduce.inl -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/reduce_intervals.h -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/partition.h -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/extrema.h -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/unique.inl -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/transform_reduce.h -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/par.h -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/execution_policy.h -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/unique_by_key.inl -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/for_each.inl -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/temporary_buffer.h -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/merge.inl -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/generate.h -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/uninitialized_copy.h -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/find.h -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/per_device_resource.h -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/reduce_by_key.h -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/copy_if.inl -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/reduce.h -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/copy.h -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/adjacent_difference.h -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/remove.inl -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/inner_product.h -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/get_value.h -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/uninitialized_fill.h -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/scatter.h -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/sort.h -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/assign_value.h -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/set_operations.h -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/partition.inl -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/sequence.h -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/count.h -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/unique.h -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/unique_by_key.h -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/scan.h -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/remove.h -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/reduce_by_key.inl -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/replace.h -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/gather.h -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/scan_by_key.h -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/transform.h -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/memory.inl -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/copy_if.h -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/fill.h -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/tabulate.h -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/scan.inl -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/iter_swap.h -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/sort.inl -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/transform_scan.h -/home/ubuntu/thrust/install/include/thrust/system/tbb/detail/reverse.h -/home/ubuntu/thrust/install/include/thrust/system/tbb/vector.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/memory_resource.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/pointer.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/config.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/future.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/memory.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/execution_policy.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/error.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/internal/copy_cross_system.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/internal/copy_device_to_device.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/swap_ranges.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/equal.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/for_each.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/error.inl -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/merge.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/logical.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/malloc_and_free.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/binary_search.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/mismatch.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/core/agent_launcher.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/core/util.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/core/triple_chevron_launch.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/core/alignment.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/guarded_driver_types.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/make_unsigned_special.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/async/for_each.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/async/customization.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/async/exclusive_scan.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/async/inclusive_scan.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/async/reduce.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/async/copy.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/async/sort.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/async/scan.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/async/transform.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/par_to_seq.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/partition.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/extrema.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/transform_reduce.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/par.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/guarded_cuda_runtime_api.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/execution_policy.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/temporary_buffer.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/generate.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/uninitialized_copy.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/find.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/per_device_resource.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/reduce_by_key.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/util.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/reduce.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/copy.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/adjacent_difference.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/future.inl -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/inner_product.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/get_value.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/uninitialized_fill.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/scatter.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/sort.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/assign_value.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/set_operations.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/cdp_dispatch.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/sequence.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/dispatch.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/count.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/unique.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/terminate.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/unique_by_key.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/scan.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/remove.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/parallel_for.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/replace.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/gather.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/cross_system.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/scan_by_key.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/transform.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/memory.inl -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/copy_if.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/fill.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/tabulate.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/iter_swap.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/transform_scan.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/detail/reverse.h -/home/ubuntu/thrust/install/include/thrust/system/cuda/vector.h -/home/ubuntu/thrust/install/include/thrust/system/system_error.h -/home/ubuntu/thrust/install/include/thrust/system/cpp/memory_resource.h -/home/ubuntu/thrust/install/include/thrust/system/cpp/pointer.h -/home/ubuntu/thrust/install/include/thrust/system/cpp/memory.h -/home/ubuntu/thrust/install/include/thrust/system/cpp/execution_policy.h -/home/ubuntu/thrust/install/include/thrust/system/cpp/detail/swap_ranges.h -/home/ubuntu/thrust/install/include/thrust/system/cpp/detail/equal.h -/home/ubuntu/thrust/install/include/thrust/system/cpp/detail/for_each.h -/home/ubuntu/thrust/install/include/thrust/system/cpp/detail/merge.h -/home/ubuntu/thrust/install/include/thrust/system/cpp/detail/logical.h -/home/ubuntu/thrust/install/include/thrust/system/cpp/detail/malloc_and_free.h -/home/ubuntu/thrust/install/include/thrust/system/cpp/detail/binary_search.h -/home/ubuntu/thrust/install/include/thrust/system/cpp/detail/mismatch.h -/home/ubuntu/thrust/install/include/thrust/system/cpp/detail/partition.h -/home/ubuntu/thrust/install/include/thrust/system/cpp/detail/extrema.h -/home/ubuntu/thrust/install/include/thrust/system/cpp/detail/transform_reduce.h -/home/ubuntu/thrust/install/include/thrust/system/cpp/detail/par.h -/home/ubuntu/thrust/install/include/thrust/system/cpp/detail/execution_policy.h -/home/ubuntu/thrust/install/include/thrust/system/cpp/detail/vector.inl -/home/ubuntu/thrust/install/include/thrust/system/cpp/detail/temporary_buffer.h -/home/ubuntu/thrust/install/include/thrust/system/cpp/detail/generate.h -/home/ubuntu/thrust/install/include/thrust/system/cpp/detail/uninitialized_copy.h -/home/ubuntu/thrust/install/include/thrust/system/cpp/detail/find.h -/home/ubuntu/thrust/install/include/thrust/system/cpp/detail/per_device_resource.h -/home/ubuntu/thrust/install/include/thrust/system/cpp/detail/reduce_by_key.h -/home/ubuntu/thrust/install/include/thrust/system/cpp/detail/reduce.h -/home/ubuntu/thrust/install/include/thrust/system/cpp/detail/copy.h -/home/ubuntu/thrust/install/include/thrust/system/cpp/detail/adjacent_difference.h -/home/ubuntu/thrust/install/include/thrust/system/cpp/detail/inner_product.h -/home/ubuntu/thrust/install/include/thrust/system/cpp/detail/get_value.h -/home/ubuntu/thrust/install/include/thrust/system/cpp/detail/uninitialized_fill.h -/home/ubuntu/thrust/install/include/thrust/system/cpp/detail/scatter.h -/home/ubuntu/thrust/install/include/thrust/system/cpp/detail/sort.h -/home/ubuntu/thrust/install/include/thrust/system/cpp/detail/assign_value.h -/home/ubuntu/thrust/install/include/thrust/system/cpp/detail/set_operations.h -/home/ubuntu/thrust/install/include/thrust/system/cpp/detail/sequence.h -/home/ubuntu/thrust/install/include/thrust/system/cpp/detail/count.h -/home/ubuntu/thrust/install/include/thrust/system/cpp/detail/unique.h -/home/ubuntu/thrust/install/include/thrust/system/cpp/detail/unique_by_key.h -/home/ubuntu/thrust/install/include/thrust/system/cpp/detail/scan.h -/home/ubuntu/thrust/install/include/thrust/system/cpp/detail/remove.h -/home/ubuntu/thrust/install/include/thrust/system/cpp/detail/replace.h -/home/ubuntu/thrust/install/include/thrust/system/cpp/detail/gather.h -/home/ubuntu/thrust/install/include/thrust/system/cpp/detail/scan_by_key.h -/home/ubuntu/thrust/install/include/thrust/system/cpp/detail/transform.h -/home/ubuntu/thrust/install/include/thrust/system/cpp/detail/memory.inl -/home/ubuntu/thrust/install/include/thrust/system/cpp/detail/copy_if.h -/home/ubuntu/thrust/install/include/thrust/system/cpp/detail/fill.h -/home/ubuntu/thrust/install/include/thrust/system/cpp/detail/tabulate.h -/home/ubuntu/thrust/install/include/thrust/system/cpp/detail/iter_swap.h -/home/ubuntu/thrust/install/include/thrust/system/cpp/detail/transform_scan.h -/home/ubuntu/thrust/install/include/thrust/system/cpp/detail/reverse.h -/home/ubuntu/thrust/install/include/thrust/system/cpp/vector.h -/home/ubuntu/thrust/install/include/thrust/system/omp/memory_resource.h -/home/ubuntu/thrust/install/include/thrust/system/omp/pointer.h -/home/ubuntu/thrust/install/include/thrust/system/omp/memory.h -/home/ubuntu/thrust/install/include/thrust/system/omp/execution_policy.h -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/swap_ranges.h -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/equal.h -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/for_each.h -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/merge.h -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/copy.inl -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/logical.h -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/default_decomposition.h -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/malloc_and_free.h -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/binary_search.h -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/mismatch.h -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/reduce.inl -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/reduce_intervals.h -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/partition.h -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/extrema.h -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/pragma_omp.h -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/unique.inl -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/transform_reduce.h -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/par.h -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/execution_policy.h -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/unique_by_key.inl -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/for_each.inl -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/temporary_buffer.h -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/default_decomposition.inl -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/generate.h -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/uninitialized_copy.h -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/find.h -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/per_device_resource.h -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/reduce_by_key.h -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/copy_if.inl -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/reduce.h -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/copy.h -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/adjacent_difference.h -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/remove.inl -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/inner_product.h -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/get_value.h -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/uninitialized_fill.h -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/scatter.h -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/sort.h -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/assign_value.h -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/set_operations.h -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/partition.inl -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/sequence.h -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/count.h -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/unique.h -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/unique_by_key.h -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/scan.h -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/remove.h -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/reduce_by_key.inl -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/reduce_intervals.inl -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/replace.h -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/gather.h -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/scan_by_key.h -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/transform.h -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/memory.inl -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/copy_if.h -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/fill.h -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/tabulate.h -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/iter_swap.h -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/sort.inl -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/transform_scan.h -/home/ubuntu/thrust/install/include/thrust/system/omp/detail/reverse.h -/home/ubuntu/thrust/install/include/thrust/system/omp/vector.h -/home/ubuntu/thrust/install/include/thrust/system/detail/internal/decompose.h -/home/ubuntu/thrust/install/include/thrust/system/detail/error_code.inl -/home/ubuntu/thrust/install/include/thrust/system/detail/error_condition.inl -/home/ubuntu/thrust/install/include/thrust/system/detail/system_error.inl -/home/ubuntu/thrust/install/include/thrust/system/detail/error_category.inl -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/swap_ranges.h -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/equal.h -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/for_each.h -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/stable_radix_sort.inl -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/stable_primitive_sort.h -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/merge.h -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/copy.inl -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/logical.h -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/malloc_and_free.h -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/binary_search.h -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/mismatch.h -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/stable_radix_sort.h -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/partition.h -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/extrema.h -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/transform_reduce.h -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/copy_backward.h -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/trivial_copy.h -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/execution_policy.h -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/stable_merge_sort.h -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/stable_primitive_sort.inl -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/temporary_buffer.h -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/merge.inl -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/generate.h -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/uninitialized_copy.h -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/find.h -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/per_device_resource.h -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/reduce_by_key.h -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/reduce.h -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/copy.h -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/adjacent_difference.h -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/inner_product.h -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/stable_merge_sort.inl -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/get_value.h -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/uninitialized_fill.h -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/scatter.h -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/sort.h -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/assign_value.h -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/set_operations.h -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/sequence.h -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/count.h -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/general_copy.h -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/unique.h -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/unique_by_key.h -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/scan.h -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/remove.h -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/insertion_sort.h -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/replace.h -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/gather.h -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/scan_by_key.h -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/transform.h -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/copy_if.h -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/fill.h -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/tabulate.h -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/iter_swap.h -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/sort.inl -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/transform_scan.h -/home/ubuntu/thrust/install/include/thrust/system/detail/sequential/reverse.h -/home/ubuntu/thrust/install/include/thrust/system/detail/adl/swap_ranges.h -/home/ubuntu/thrust/install/include/thrust/system/detail/adl/equal.h -/home/ubuntu/thrust/install/include/thrust/system/detail/adl/for_each.h -/home/ubuntu/thrust/install/include/thrust/system/detail/adl/merge.h -/home/ubuntu/thrust/install/include/thrust/system/detail/adl/logical.h -/home/ubuntu/thrust/install/include/thrust/system/detail/adl/malloc_and_free.h -/home/ubuntu/thrust/install/include/thrust/system/detail/adl/binary_search.h -/home/ubuntu/thrust/install/include/thrust/system/detail/adl/mismatch.h -/home/ubuntu/thrust/install/include/thrust/system/detail/adl/async/for_each.h -/home/ubuntu/thrust/install/include/thrust/system/detail/adl/async/reduce.h -/home/ubuntu/thrust/install/include/thrust/system/detail/adl/async/copy.h -/home/ubuntu/thrust/install/include/thrust/system/detail/adl/async/sort.h -/home/ubuntu/thrust/install/include/thrust/system/detail/adl/async/scan.h -/home/ubuntu/thrust/install/include/thrust/system/detail/adl/async/transform.h -/home/ubuntu/thrust/install/include/thrust/system/detail/adl/partition.h -/home/ubuntu/thrust/install/include/thrust/system/detail/adl/extrema.h -/home/ubuntu/thrust/install/include/thrust/system/detail/adl/transform_reduce.h -/home/ubuntu/thrust/install/include/thrust/system/detail/adl/temporary_buffer.h -/home/ubuntu/thrust/install/include/thrust/system/detail/adl/generate.h -/home/ubuntu/thrust/install/include/thrust/system/detail/adl/uninitialized_copy.h -/home/ubuntu/thrust/install/include/thrust/system/detail/adl/find.h -/home/ubuntu/thrust/install/include/thrust/system/detail/adl/per_device_resource.h -/home/ubuntu/thrust/install/include/thrust/system/detail/adl/reduce_by_key.h -/home/ubuntu/thrust/install/include/thrust/system/detail/adl/reduce.h -/home/ubuntu/thrust/install/include/thrust/system/detail/adl/copy.h -/home/ubuntu/thrust/install/include/thrust/system/detail/adl/adjacent_difference.h -/home/ubuntu/thrust/install/include/thrust/system/detail/adl/inner_product.h -/home/ubuntu/thrust/install/include/thrust/system/detail/adl/get_value.h -/home/ubuntu/thrust/install/include/thrust/system/detail/adl/uninitialized_fill.h -/home/ubuntu/thrust/install/include/thrust/system/detail/adl/scatter.h -/home/ubuntu/thrust/install/include/thrust/system/detail/adl/sort.h -/home/ubuntu/thrust/install/include/thrust/system/detail/adl/assign_value.h -/home/ubuntu/thrust/install/include/thrust/system/detail/adl/set_operations.h -/home/ubuntu/thrust/install/include/thrust/system/detail/adl/sequence.h -/home/ubuntu/thrust/install/include/thrust/system/detail/adl/count.h -/home/ubuntu/thrust/install/include/thrust/system/detail/adl/unique.h -/home/ubuntu/thrust/install/include/thrust/system/detail/adl/unique_by_key.h -/home/ubuntu/thrust/install/include/thrust/system/detail/adl/scan.h -/home/ubuntu/thrust/install/include/thrust/system/detail/adl/remove.h -/home/ubuntu/thrust/install/include/thrust/system/detail/adl/replace.h -/home/ubuntu/thrust/install/include/thrust/system/detail/adl/gather.h -/home/ubuntu/thrust/install/include/thrust/system/detail/adl/scan_by_key.h -/home/ubuntu/thrust/install/include/thrust/system/detail/adl/transform.h -/home/ubuntu/thrust/install/include/thrust/system/detail/adl/copy_if.h -/home/ubuntu/thrust/install/include/thrust/system/detail/adl/fill.h -/home/ubuntu/thrust/install/include/thrust/system/detail/adl/tabulate.h -/home/ubuntu/thrust/install/include/thrust/system/detail/adl/iter_swap.h -/home/ubuntu/thrust/install/include/thrust/system/detail/adl/transform_scan.h -/home/ubuntu/thrust/install/include/thrust/system/detail/adl/reverse.h -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/swap_ranges.h -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/gather.inl -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/equal.h -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/for_each.h -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/equal.inl -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/distance.h -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/set_operations.inl -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/merge.h -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/copy.inl -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/logical.h -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/reverse.inl -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/binary_search.h -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/mismatch.h -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/transform.inl -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/shuffle.inl -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/mismatch.inl -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/reduce.inl -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/generate.inl -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/partition.h -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/extrema.h -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/unique.inl -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/transform_reduce.inl -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/tag.h -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/transform_reduce.h -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/shuffle.h -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/memory.h -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/distance.inl -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/inner_product.inl -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/extrema.inl -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/adjacent_difference.inl -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/unique_by_key.inl -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/sequence.inl -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/temporary_buffer.h -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/tabulate.inl -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/merge.inl -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/generate.h -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/uninitialized_copy.h -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/find.h -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/per_device_resource.h -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/reduce_by_key.h -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/copy_if.inl -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/reduce.h -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/copy.h -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/select_system_exists.h -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/adjacent_difference.h -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/remove.inl -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/inner_product.h -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/uninitialized_copy.inl -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/swap_ranges.inl -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/find.inl -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/uninitialized_fill.h -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/scatter.inl -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/scatter.h -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/sort.h -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/replace.inl -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/set_operations.h -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/partition.inl -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/sequence.h -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/transform_scan.inl -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/count.h -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/advance.h -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/unique.h -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/unique_by_key.h -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/binary_search.inl -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/scan_by_key.inl -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/select_system.h -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/scan.h -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/advance.inl -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/remove.h -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/reduce_by_key.inl -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/scalar/binary_search.h -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/scalar/binary_search.inl -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/uninitialized_fill.inl -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/count.inl -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/replace.h -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/gather.h -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/scan_by_key.h -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/transform.h -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/memory.inl -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/temporary_buffer.inl -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/copy_if.h -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/fill.h -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/tabulate.h -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/scan.inl -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/select_system.inl -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/sort.inl -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/transform_scan.h -/home/ubuntu/thrust/install/include/thrust/system/detail/generic/reverse.h -/home/ubuntu/thrust/install/include/thrust/system/detail/bad_alloc.h -/home/ubuntu/thrust/install/include/thrust/system/detail/errno.h -/home/ubuntu/thrust/install/include/thrust/system/error_code.h -/home/ubuntu/thrust/install/include/thrust/device_delete.h -/home/ubuntu/thrust/install/include/thrust/universal_vector.h -/home/ubuntu/thrust/install/include/thrust/uninitialized_fill.h -/home/ubuntu/thrust/install/include/thrust/device_ptr.h -/home/ubuntu/thrust/install/include/thrust/pair.h -/home/ubuntu/thrust/install/include/thrust/version.h -/home/ubuntu/thrust/install/include/thrust/scatter.h -/home/ubuntu/thrust/install/include/thrust/sort.h -/home/ubuntu/thrust/install/include/thrust/device_malloc.h -/home/ubuntu/thrust/install/include/thrust/device_new.h -/home/ubuntu/thrust/install/include/thrust/set_operations.h -/home/ubuntu/thrust/install/include/thrust/device_free.h -/home/ubuntu/thrust/install/include/thrust/sequence.h -/home/ubuntu/thrust/install/include/thrust/limits.h -/home/ubuntu/thrust/install/include/thrust/mr/memory_resource.h -/home/ubuntu/thrust/install/include/thrust/mr/allocator.h -/home/ubuntu/thrust/install/include/thrust/mr/host_memory_resource.h -/home/ubuntu/thrust/install/include/thrust/mr/device_memory_resource.h -/home/ubuntu/thrust/install/include/thrust/mr/disjoint_pool.h -/home/ubuntu/thrust/install/include/thrust/mr/disjoint_sync_pool.h -/home/ubuntu/thrust/install/include/thrust/mr/sync_pool.h -/home/ubuntu/thrust/install/include/thrust/mr/disjoint_tls_pool.h -/home/ubuntu/thrust/install/include/thrust/mr/polymorphic_adaptor.h -/home/ubuntu/thrust/install/include/thrust/mr/pool_options.h -/home/ubuntu/thrust/install/include/thrust/mr/universal_memory_resource.h -/home/ubuntu/thrust/install/include/thrust/mr/tls_pool.h -/home/ubuntu/thrust/install/include/thrust/mr/validator.h -/home/ubuntu/thrust/install/include/thrust/mr/pool.h -/home/ubuntu/thrust/install/include/thrust/mr/fancy_pointer_resource.h -/home/ubuntu/thrust/install/include/thrust/mr/new.h -/home/ubuntu/thrust/install/include/thrust/device_make_unique.h -/home/ubuntu/thrust/install/include/thrust/count.h -/home/ubuntu/thrust/install/include/thrust/advance.h -/home/ubuntu/thrust/install/include/thrust/unique.h -/home/ubuntu/thrust/install/include/thrust/detail/internal_functional.h -/home/ubuntu/thrust/install/include/thrust/detail/gather.inl -/home/ubuntu/thrust/install/include/thrust/detail/pointer.h -/home/ubuntu/thrust/install/include/thrust/detail/contiguous_storage.h -/home/ubuntu/thrust/install/include/thrust/detail/config/memory_resource.h -/home/ubuntu/thrust/install/include/thrust/detail/config/config.h -/home/ubuntu/thrust/install/include/thrust/detail/config/compiler.h -/home/ubuntu/thrust/install/include/thrust/detail/config/compiler_fence.h -/home/ubuntu/thrust/install/include/thrust/detail/config/cpp_compatibility.h -/home/ubuntu/thrust/install/include/thrust/detail/config/debug.h -/home/ubuntu/thrust/install/include/thrust/detail/config/deprecated.h -/home/ubuntu/thrust/install/include/thrust/detail/config/host_device.h -/home/ubuntu/thrust/install/include/thrust/detail/config/simple_defines.h -/home/ubuntu/thrust/install/include/thrust/detail/config/forceinline.h -/home/ubuntu/thrust/install/include/thrust/detail/config/namespace.h -/home/ubuntu/thrust/install/include/thrust/detail/config/exec_check_disable.h -/home/ubuntu/thrust/install/include/thrust/detail/config/cpp_dialect.h -/home/ubuntu/thrust/install/include/thrust/detail/config/device_system.h -/home/ubuntu/thrust/install/include/thrust/detail/config/host_system.h -/home/ubuntu/thrust/install/include/thrust/detail/config/global_workarounds.h -/home/ubuntu/thrust/install/include/thrust/detail/equal.inl -/home/ubuntu/thrust/install/include/thrust/detail/minmax.h -/home/ubuntu/thrust/install/include/thrust/detail/modern_gcc_required.h -/home/ubuntu/thrust/install/include/thrust/detail/allocator_aware_execution_policy.h -/home/ubuntu/thrust/install/include/thrust/detail/config.h -/home/ubuntu/thrust/install/include/thrust/detail/util/align.h -/home/ubuntu/thrust/install/include/thrust/detail/set_operations.inl -/home/ubuntu/thrust/install/include/thrust/detail/execute_with_dependencies.h -/home/ubuntu/thrust/install/include/thrust/detail/copy.inl -/home/ubuntu/thrust/install/include/thrust/detail/reverse.inl -/home/ubuntu/thrust/install/include/thrust/detail/logical.inl -/home/ubuntu/thrust/install/include/thrust/detail/malloc_and_free.h -/home/ubuntu/thrust/install/include/thrust/detail/tuple_meta_transform.h -/home/ubuntu/thrust/install/include/thrust/detail/dependencies_aware_execution_policy.h -/home/ubuntu/thrust/install/include/thrust/detail/transform.inl -/home/ubuntu/thrust/install/include/thrust/detail/shuffle.inl -/home/ubuntu/thrust/install/include/thrust/detail/memory_wrapper.h -/home/ubuntu/thrust/install/include/thrust/detail/numeric_traits.h -/home/ubuntu/thrust/install/include/thrust/detail/execute_with_allocator.h -/home/ubuntu/thrust/install/include/thrust/detail/mismatch.inl -/home/ubuntu/thrust/install/include/thrust/detail/reduce.inl -/home/ubuntu/thrust/install/include/thrust/detail/get_iterator_value.h -/home/ubuntu/thrust/install/include/thrust/detail/tuple_algorithms.h -/home/ubuntu/thrust/install/include/thrust/detail/generate.inl -/home/ubuntu/thrust/install/include/thrust/detail/numeric_wrapper.h -/home/ubuntu/thrust/install/include/thrust/detail/functional.inl -/home/ubuntu/thrust/install/include/thrust/detail/use_default.h -/home/ubuntu/thrust/install/include/thrust/detail/integer_math.h -/home/ubuntu/thrust/install/include/thrust/detail/unique.inl -/home/ubuntu/thrust/install/include/thrust/detail/transform_reduce.inl -/home/ubuntu/thrust/install/include/thrust/detail/overlapped_copy.h -/home/ubuntu/thrust/install/include/thrust/detail/memory_algorithms.h -/home/ubuntu/thrust/install/include/thrust/detail/range/tail_flags.h -/home/ubuntu/thrust/install/include/thrust/detail/range/head_flags.h -/home/ubuntu/thrust/install/include/thrust/detail/swap.h -/home/ubuntu/thrust/install/include/thrust/detail/function.h -/home/ubuntu/thrust/install/include/thrust/detail/distance.inl -/home/ubuntu/thrust/install/include/thrust/detail/execution_policy.h -/home/ubuntu/thrust/install/include/thrust/detail/inner_product.inl -/home/ubuntu/thrust/install/include/thrust/detail/extrema.inl -/home/ubuntu/thrust/install/include/thrust/detail/trivial_sequence.h -/home/ubuntu/thrust/install/include/thrust/detail/adjacent_difference.inl -/home/ubuntu/thrust/install/include/thrust/detail/for_each.inl -/home/ubuntu/thrust/install/include/thrust/detail/temporary_array.h -/home/ubuntu/thrust/install/include/thrust/detail/sequence.inl -/home/ubuntu/thrust/install/include/thrust/detail/temporary_buffer.h -/home/ubuntu/thrust/install/include/thrust/detail/tabulate.inl -/home/ubuntu/thrust/install/include/thrust/detail/merge.inl -/home/ubuntu/thrust/install/include/thrust/detail/device_new.inl -/home/ubuntu/thrust/install/include/thrust/detail/type_traits.h -/home/ubuntu/thrust/install/include/thrust/detail/functional/composite.h -/home/ubuntu/thrust/install/include/thrust/detail/functional/argument.h -/home/ubuntu/thrust/install/include/thrust/detail/functional/actor.inl -/home/ubuntu/thrust/install/include/thrust/detail/functional/placeholder.h -/home/ubuntu/thrust/install/include/thrust/detail/functional/value.h -/home/ubuntu/thrust/install/include/thrust/detail/functional/operators.h -/home/ubuntu/thrust/install/include/thrust/detail/functional/actor.h -/home/ubuntu/thrust/install/include/thrust/detail/functional/operators/compound_assignment_operators.h -/home/ubuntu/thrust/install/include/thrust/detail/functional/operators/arithmetic_operators.h -/home/ubuntu/thrust/install/include/thrust/detail/functional/operators/assignment_operator.h -/home/ubuntu/thrust/install/include/thrust/detail/functional/operators/operator_adaptors.h -/home/ubuntu/thrust/install/include/thrust/detail/functional/operators/bitwise_operators.h -/home/ubuntu/thrust/install/include/thrust/detail/functional/operators/logical_operators.h -/home/ubuntu/thrust/install/include/thrust/detail/functional/operators/relational_operators.h -/home/ubuntu/thrust/install/include/thrust/detail/copy_if.inl -/home/ubuntu/thrust/install/include/thrust/detail/preprocessor.h -/home/ubuntu/thrust/install/include/thrust/detail/copy.h -/home/ubuntu/thrust/install/include/thrust/detail/raw_pointer_cast.h -/home/ubuntu/thrust/install/include/thrust/detail/remove.inl -/home/ubuntu/thrust/install/include/thrust/detail/event_error.h -/home/ubuntu/thrust/install/include/thrust/detail/uninitialized_copy.inl -/home/ubuntu/thrust/install/include/thrust/detail/static_map.h -/home/ubuntu/thrust/install/include/thrust/detail/type_deduction.h -/home/ubuntu/thrust/install/include/thrust/detail/swap_ranges.inl -/home/ubuntu/thrust/install/include/thrust/detail/find.inl -/home/ubuntu/thrust/install/include/thrust/detail/scatter.inl -/home/ubuntu/thrust/install/include/thrust/detail/complex/cexp.h -/home/ubuntu/thrust/install/include/thrust/detail/complex/cpow.h -/home/ubuntu/thrust/install/include/thrust/detail/complex/arithmetic.h -/home/ubuntu/thrust/install/include/thrust/detail/complex/ctanh.h -/home/ubuntu/thrust/install/include/thrust/detail/complex/catrig.h -/home/ubuntu/thrust/install/include/thrust/detail/complex/ccoshf.h -/home/ubuntu/thrust/install/include/thrust/detail/complex/clog.h -/home/ubuntu/thrust/install/include/thrust/detail/complex/catrigf.h -/home/ubuntu/thrust/install/include/thrust/detail/complex/ccosh.h -/home/ubuntu/thrust/install/include/thrust/detail/complex/c99math.h -/home/ubuntu/thrust/install/include/thrust/detail/complex/cexpf.h -/home/ubuntu/thrust/install/include/thrust/detail/complex/csqrt.h -/home/ubuntu/thrust/install/include/thrust/detail/complex/cproj.h -/home/ubuntu/thrust/install/include/thrust/detail/complex/ctanhf.h -/home/ubuntu/thrust/install/include/thrust/detail/complex/csinhf.h -/home/ubuntu/thrust/install/include/thrust/detail/complex/complex.inl -/home/ubuntu/thrust/install/include/thrust/detail/complex/clogf.h -/home/ubuntu/thrust/install/include/thrust/detail/complex/csinh.h -/home/ubuntu/thrust/install/include/thrust/detail/complex/math_private.h -/home/ubuntu/thrust/install/include/thrust/detail/complex/csqrtf.h -/home/ubuntu/thrust/install/include/thrust/detail/complex/stream.h -/home/ubuntu/thrust/install/include/thrust/detail/replace.inl -/home/ubuntu/thrust/install/include/thrust/detail/partition.inl -/home/ubuntu/thrust/install/include/thrust/detail/contiguous_storage.inl -/home/ubuntu/thrust/install/include/thrust/detail/transform_scan.inl -/home/ubuntu/thrust/install/include/thrust/detail/count.h -/home/ubuntu/thrust/install/include/thrust/detail/device_malloc.inl -/home/ubuntu/thrust/install/include/thrust/detail/reference_forward_declaration.h -/home/ubuntu/thrust/install/include/thrust/detail/pointer.inl -/home/ubuntu/thrust/install/include/thrust/detail/mpl/math.h -/home/ubuntu/thrust/install/include/thrust/detail/temporary_array.inl -/home/ubuntu/thrust/install/include/thrust/detail/binary_search.inl -/home/ubuntu/thrust/install/include/thrust/detail/static_assert.h -/home/ubuntu/thrust/install/include/thrust/detail/cpp11_required.h -/home/ubuntu/thrust/install/include/thrust/detail/allocator/temporary_allocator.h -/home/ubuntu/thrust/install/include/thrust/detail/allocator/default_construct_range.inl -/home/ubuntu/thrust/install/include/thrust/detail/allocator/tagged_allocator.h -/home/ubuntu/thrust/install/include/thrust/detail/allocator/fill_construct_range.inl -/home/ubuntu/thrust/install/include/thrust/detail/allocator/tagged_allocator.inl -/home/ubuntu/thrust/install/include/thrust/detail/allocator/malloc_allocator.h -/home/ubuntu/thrust/install/include/thrust/detail/allocator/copy_construct_range.h -/home/ubuntu/thrust/install/include/thrust/detail/allocator/temporary_allocator.inl -/home/ubuntu/thrust/install/include/thrust/detail/allocator/destroy_range.h -/home/ubuntu/thrust/install/include/thrust/detail/allocator/default_construct_range.h -/home/ubuntu/thrust/install/include/thrust/detail/allocator/destroy_range.inl -/home/ubuntu/thrust/install/include/thrust/detail/allocator/fill_construct_range.h -/home/ubuntu/thrust/install/include/thrust/detail/allocator/no_throw_allocator.h -/home/ubuntu/thrust/install/include/thrust/detail/allocator/malloc_allocator.inl -/home/ubuntu/thrust/install/include/thrust/detail/allocator/copy_construct_range.inl -/home/ubuntu/thrust/install/include/thrust/detail/allocator/allocator_traits.h -/home/ubuntu/thrust/install/include/thrust/detail/allocator/allocator_traits.inl -/home/ubuntu/thrust/install/include/thrust/detail/cpp14_required.h -/home/ubuntu/thrust/install/include/thrust/detail/select_system.h -/home/ubuntu/thrust/install/include/thrust/detail/vector_base.h -/home/ubuntu/thrust/install/include/thrust/detail/execute_with_allocator_fwd.h -/home/ubuntu/thrust/install/include/thrust/detail/advance.inl -/home/ubuntu/thrust/install/include/thrust/detail/device_ptr.inl -/home/ubuntu/thrust/install/include/thrust/detail/tuple.inl -/home/ubuntu/thrust/install/include/thrust/detail/tuple_transform.h -/home/ubuntu/thrust/install/include/thrust/detail/raw_reference_cast.h -/home/ubuntu/thrust/install/include/thrust/detail/caching_allocator.h -/home/ubuntu/thrust/install/include/thrust/detail/seq.h -/home/ubuntu/thrust/install/include/thrust/detail/uninitialized_fill.inl -/home/ubuntu/thrust/install/include/thrust/detail/device_delete.inl -/home/ubuntu/thrust/install/include/thrust/detail/type_traits/result_of_adaptable_function.h -/home/ubuntu/thrust/install/include/thrust/detail/type_traits/has_member_function.h -/home/ubuntu/thrust/install/include/thrust/detail/type_traits/function_traits.h -/home/ubuntu/thrust/install/include/thrust/detail/type_traits/minimum_type.h -/home/ubuntu/thrust/install/include/thrust/detail/type_traits/pointer_traits.h -/home/ubuntu/thrust/install/include/thrust/detail/type_traits/iterator/is_discard_iterator.h -/home/ubuntu/thrust/install/include/thrust/detail/type_traits/iterator/is_output_iterator.h -/home/ubuntu/thrust/install/include/thrust/detail/type_traits/is_metafunction_defined.h -/home/ubuntu/thrust/install/include/thrust/detail/type_traits/is_call_possible.h -/home/ubuntu/thrust/install/include/thrust/detail/type_traits/has_nested_type.h -/home/ubuntu/thrust/install/include/thrust/detail/type_traits/has_trivial_assign.h -/home/ubuntu/thrust/install/include/thrust/detail/vector_base.inl -/home/ubuntu/thrust/install/include/thrust/detail/count.inl -/home/ubuntu/thrust/install/include/thrust/detail/cstdint.h -/home/ubuntu/thrust/install/include/thrust/detail/pair.inl -/home/ubuntu/thrust/install/include/thrust/detail/copy_if.h -/home/ubuntu/thrust/install/include/thrust/detail/device_free.inl -/home/ubuntu/thrust/install/include/thrust/detail/scan.inl -/home/ubuntu/thrust/install/include/thrust/detail/algorithm_wrapper.h -/home/ubuntu/thrust/install/include/thrust/detail/swap.inl -/home/ubuntu/thrust/install/include/thrust/detail/fill.inl -/home/ubuntu/thrust/install/include/thrust/detail/reference.h -/home/ubuntu/thrust/install/include/thrust/detail/integer_traits.h -/home/ubuntu/thrust/install/include/thrust/detail/sort.inl -/home/ubuntu/thrust/install/include/thrust/detail/alignment.h -/home/ubuntu/thrust/install/include/thrust/device_new_allocator.h -/home/ubuntu/thrust/install/include/thrust/scan.h -/home/ubuntu/thrust/install/include/thrust/remove.h -/home/ubuntu/thrust/install/include/thrust/type_traits/remove_cvref.h -/home/ubuntu/thrust/install/include/thrust/type_traits/is_operator_less_or_greater_function_object.h -/home/ubuntu/thrust/install/include/thrust/type_traits/logical_metafunctions.h -/home/ubuntu/thrust/install/include/thrust/type_traits/is_contiguous_iterator.h -/home/ubuntu/thrust/install/include/thrust/type_traits/integer_sequence.h -/home/ubuntu/thrust/install/include/thrust/type_traits/is_operator_plus_function_object.h -/home/ubuntu/thrust/install/include/thrust/type_traits/void_t.h -/home/ubuntu/thrust/install/include/thrust/type_traits/is_execution_policy.h -/home/ubuntu/thrust/install/include/thrust/type_traits/is_trivially_relocatable.h -/home/ubuntu/thrust/install/include/thrust/host_vector.h -/home/ubuntu/thrust/install/include/thrust/replace.h -/home/ubuntu/thrust/install/include/thrust/iterator/discard_iterator.h -/home/ubuntu/thrust/install/include/thrust/iterator/iterator_adaptor.h -/home/ubuntu/thrust/install/include/thrust/iterator/reverse_iterator.h -/home/ubuntu/thrust/install/include/thrust/iterator/zip_iterator.h -/home/ubuntu/thrust/install/include/thrust/iterator/transform_input_output_iterator.h -/home/ubuntu/thrust/install/include/thrust/iterator/constant_iterator.h -/home/ubuntu/thrust/install/include/thrust/iterator/transform_iterator.h -/home/ubuntu/thrust/install/include/thrust/iterator/permutation_iterator.h -/home/ubuntu/thrust/install/include/thrust/iterator/transform_output_iterator.h -/home/ubuntu/thrust/install/include/thrust/iterator/counting_iterator.h -/home/ubuntu/thrust/install/include/thrust/iterator/iterator_traits.h -/home/ubuntu/thrust/install/include/thrust/iterator/retag.h -/home/ubuntu/thrust/install/include/thrust/iterator/iterator_categories.h -/home/ubuntu/thrust/install/include/thrust/iterator/detail/zip_iterator.inl -/home/ubuntu/thrust/install/include/thrust/iterator/detail/normal_iterator.h -/home/ubuntu/thrust/install/include/thrust/iterator/detail/zip_iterator_base.h -/home/ubuntu/thrust/install/include/thrust/iterator/detail/discard_iterator_base.h -/home/ubuntu/thrust/install/include/thrust/iterator/detail/reverse_iterator_base.h -/home/ubuntu/thrust/install/include/thrust/iterator/detail/permutation_iterator_base.h -/home/ubuntu/thrust/install/include/thrust/iterator/detail/host_system_tag.h -/home/ubuntu/thrust/install/include/thrust/iterator/detail/any_system_tag.h -/home/ubuntu/thrust/install/include/thrust/iterator/detail/iterator_traversal_tags.h -/home/ubuntu/thrust/install/include/thrust/iterator/detail/distance_from_result.h -/home/ubuntu/thrust/install/include/thrust/iterator/detail/any_assign.h -/home/ubuntu/thrust/install/include/thrust/iterator/detail/tuple_of_iterator_references.h -/home/ubuntu/thrust/install/include/thrust/iterator/detail/minimum_system.h -/home/ubuntu/thrust/install/include/thrust/iterator/detail/join_iterator.h -/home/ubuntu/thrust/install/include/thrust/iterator/detail/tagged_iterator.h -/home/ubuntu/thrust/install/include/thrust/iterator/detail/reverse_iterator.inl -/home/ubuntu/thrust/install/include/thrust/iterator/detail/iterator_traits.inl -/home/ubuntu/thrust/install/include/thrust/iterator/detail/is_iterator_category.h -/home/ubuntu/thrust/install/include/thrust/iterator/detail/universal_categories.h -/home/ubuntu/thrust/install/include/thrust/iterator/detail/iterator_adaptor_base.h -/home/ubuntu/thrust/install/include/thrust/iterator/detail/constant_iterator_base.h -/home/ubuntu/thrust/install/include/thrust/iterator/detail/retag.h -/home/ubuntu/thrust/install/include/thrust/iterator/detail/iterator_category_to_traversal.h -/home/ubuntu/thrust/install/include/thrust/iterator/detail/iterator_category_to_system.h -/home/ubuntu/thrust/install/include/thrust/iterator/detail/counting_iterator.inl -/home/ubuntu/thrust/install/include/thrust/iterator/detail/transform_iterator.inl -/home/ubuntu/thrust/install/include/thrust/iterator/detail/transform_output_iterator.inl -/home/ubuntu/thrust/install/include/thrust/iterator/detail/iterator_category_with_system_and_traversal.h -/home/ubuntu/thrust/install/include/thrust/iterator/detail/device_system_tag.h -/home/ubuntu/thrust/install/include/thrust/iterator/detail/minimum_category.h -/home/ubuntu/thrust/install/include/thrust/iterator/detail/transform_input_output_iterator.inl -/home/ubuntu/thrust/install/include/thrust/iterator/detail/iterator_facade_category.h -/home/ubuntu/thrust/install/include/thrust/iterator/iterator_facade.h -/home/ubuntu/thrust/install/include/thrust/gather.h -/home/ubuntu/thrust/install/include/thrust/device_vector.h -/home/ubuntu/thrust/install/include/thrust/transform.h -/home/ubuntu/thrust/install/include/thrust/fill.h -/home/ubuntu/thrust/install/include/thrust/tabulate.h -/home/ubuntu/thrust/install/include/thrust/complex.h -/home/ubuntu/thrust/install/include/thrust/device_allocator.h -/home/ubuntu/thrust/install/include/thrust/transform_scan.h -/home/ubuntu/thrust/install/include/thrust/reverse.h -/home/ubuntu/thrust/install/lib/cmake/thrust/FindTBB.cmake -/home/ubuntu/thrust/install/lib/cmake/thrust/README.md -/home/ubuntu/thrust/install/lib/cmake/thrust/thrust-config.cmake -/home/ubuntu/thrust/install/lib/cmake/thrust/thrust-config-version.cmake -/home/ubuntu/thrust/install/lib/cmake/thrust/thrust-header-search.cmake -/home/ubuntu/thrust/install/lib/cmake/thrust/thrust-header-search.cmake -/home/ubuntu/thrust/install/include/cub/util_math.cuh -/home/ubuntu/thrust/install/include/cub/device/device_scan.cuh -/home/ubuntu/thrust/install/include/cub/device/device_reduce.cuh -/home/ubuntu/thrust/install/include/cub/device/device_copy.cuh -/home/ubuntu/thrust/install/include/cub/device/device_partition.cuh -/home/ubuntu/thrust/install/include/cub/device/device_segmented_reduce.cuh -/home/ubuntu/thrust/install/include/cub/device/device_segmented_radix_sort.cuh -/home/ubuntu/thrust/install/include/cub/device/device_memcpy.cuh -/home/ubuntu/thrust/install/include/cub/device/device_adjacent_difference.cuh -/home/ubuntu/thrust/install/include/cub/device/device_radix_sort.cuh -/home/ubuntu/thrust/install/include/cub/device/device_select.cuh -/home/ubuntu/thrust/install/include/cub/device/device_run_length_encode.cuh -/home/ubuntu/thrust/install/include/cub/device/device_spmv.cuh -/home/ubuntu/thrust/install/include/cub/device/dispatch/dispatch_reduce_by_key.cuh -/home/ubuntu/thrust/install/include/cub/device/dispatch/dispatch_adjacent_difference.cuh -/home/ubuntu/thrust/install/include/cub/device/dispatch/dispatch_batch_memcpy.cuh -/home/ubuntu/thrust/install/include/cub/device/dispatch/dispatch_histogram.cuh -/home/ubuntu/thrust/install/include/cub/device/dispatch/dispatch_scan_by_key.cuh -/home/ubuntu/thrust/install/include/cub/device/dispatch/dispatch_merge_sort.cuh -/home/ubuntu/thrust/install/include/cub/device/dispatch/dispatch_three_way_partition.cuh -/home/ubuntu/thrust/install/include/cub/device/dispatch/dispatch_rle.cuh -/home/ubuntu/thrust/install/include/cub/device/dispatch/dispatch_segmented_sort.cuh -/home/ubuntu/thrust/install/include/cub/device/dispatch/dispatch_spmv_orig.cuh -/home/ubuntu/thrust/install/include/cub/device/dispatch/dispatch_reduce.cuh -/home/ubuntu/thrust/install/include/cub/device/dispatch/dispatch_scan.cuh -/home/ubuntu/thrust/install/include/cub/device/dispatch/dispatch_radix_sort.cuh -/home/ubuntu/thrust/install/include/cub/device/dispatch/dispatch_unique_by_key.cuh -/home/ubuntu/thrust/install/include/cub/device/dispatch/dispatch_select_if.cuh -/home/ubuntu/thrust/install/include/cub/device/device_histogram.cuh -/home/ubuntu/thrust/install/include/cub/device/device_segmented_sort.cuh -/home/ubuntu/thrust/install/include/cub/device/device_merge_sort.cuh -/home/ubuntu/thrust/install/include/cub/util_allocator.cuh -/home/ubuntu/thrust/install/include/cub/util_arch.cuh -/home/ubuntu/thrust/install/include/cub/util_compiler.cuh -/home/ubuntu/thrust/install/include/cub/config.cuh -/home/ubuntu/thrust/install/include/cub/util_macro.cuh -/home/ubuntu/thrust/install/include/cub/util_cpp_dialect.cuh -/home/ubuntu/thrust/install/include/cub/cub.cuh -/home/ubuntu/thrust/install/include/cub/util_debug.cuh -/home/ubuntu/thrust/install/include/cub/version.cuh -/home/ubuntu/thrust/install/include/cub/block/block_reduce.cuh -/home/ubuntu/thrust/install/include/cub/block/block_radix_rank.cuh -/home/ubuntu/thrust/install/include/cub/block/block_raking_layout.cuh -/home/ubuntu/thrust/install/include/cub/block/block_shuffle.cuh -/home/ubuntu/thrust/install/include/cub/block/specializations/block_histogram_sort.cuh -/home/ubuntu/thrust/install/include/cub/block/specializations/block_histogram_atomic.cuh -/home/ubuntu/thrust/install/include/cub/block/specializations/block_reduce_raking.cuh -/home/ubuntu/thrust/install/include/cub/block/specializations/block_scan_raking.cuh -/home/ubuntu/thrust/install/include/cub/block/specializations/block_reduce_raking_commutative_only.cuh -/home/ubuntu/thrust/install/include/cub/block/specializations/block_scan_warp_scans.cuh -/home/ubuntu/thrust/install/include/cub/block/specializations/block_reduce_warp_reductions.cuh -/home/ubuntu/thrust/install/include/cub/block/block_store.cuh -/home/ubuntu/thrust/install/include/cub/block/block_discontinuity.cuh -/home/ubuntu/thrust/install/include/cub/block/block_merge_sort.cuh -/home/ubuntu/thrust/install/include/cub/block/block_run_length_decode.cuh -/home/ubuntu/thrust/install/include/cub/block/block_scan.cuh -/home/ubuntu/thrust/install/include/cub/block/block_exchange.cuh -/home/ubuntu/thrust/install/include/cub/block/block_adjacent_difference.cuh -/home/ubuntu/thrust/install/include/cub/block/radix_rank_sort_operations.cuh -/home/ubuntu/thrust/install/include/cub/block/block_radix_sort.cuh -/home/ubuntu/thrust/install/include/cub/block/block_load.cuh -/home/ubuntu/thrust/install/include/cub/block/block_histogram.cuh -/home/ubuntu/thrust/install/include/cub/grid/grid_even_share.cuh -/home/ubuntu/thrust/install/include/cub/grid/grid_mapping.cuh -/home/ubuntu/thrust/install/include/cub/grid/grid_queue.cuh -/home/ubuntu/thrust/install/include/cub/grid/grid_barrier.cuh -/home/ubuntu/thrust/install/include/cub/warp/warp_reduce.cuh -/home/ubuntu/thrust/install/include/cub/warp/warp_store.cuh -/home/ubuntu/thrust/install/include/cub/warp/warp_load.cuh -/home/ubuntu/thrust/install/include/cub/warp/specializations/warp_scan_shfl.cuh -/home/ubuntu/thrust/install/include/cub/warp/specializations/warp_scan_smem.cuh -/home/ubuntu/thrust/install/include/cub/warp/specializations/warp_reduce_smem.cuh -/home/ubuntu/thrust/install/include/cub/warp/specializations/warp_reduce_shfl.cuh -/home/ubuntu/thrust/install/include/cub/warp/warp_scan.cuh -/home/ubuntu/thrust/install/include/cub/warp/warp_exchange.cuh -/home/ubuntu/thrust/install/include/cub/warp/warp_merge_sort.cuh -/home/ubuntu/thrust/install/include/cub/host/mutex.cuh -/home/ubuntu/thrust/install/include/cub/detail/choose_offset.cuh -/home/ubuntu/thrust/install/include/cub/detail/strong_load.cuh -/home/ubuntu/thrust/install/include/cub/detail/type_traits.cuh -/home/ubuntu/thrust/install/include/cub/detail/device_synchronize.cuh -/home/ubuntu/thrust/install/include/cub/detail/cpp_compatibility.cuh -/home/ubuntu/thrust/install/include/cub/detail/strong_store.cuh -/home/ubuntu/thrust/install/include/cub/detail/device_double_buffer.cuh -/home/ubuntu/thrust/install/include/cub/detail/detect_cuda_runtime.cuh -/home/ubuntu/thrust/install/include/cub/detail/temporary_storage.cuh -/home/ubuntu/thrust/install/include/cub/detail/exec_check_disable.cuh -/home/ubuntu/thrust/install/include/cub/detail/uninitialized_copy.cuh -/home/ubuntu/thrust/install/include/cub/agent/agent_segmented_radix_sort.cuh -/home/ubuntu/thrust/install/include/cub/agent/agent_reduce_by_key.cuh -/home/ubuntu/thrust/install/include/cub/agent/single_pass_scan_operators.cuh -/home/ubuntu/thrust/install/include/cub/agent/agent_radix_sort_upsweep.cuh -/home/ubuntu/thrust/install/include/cub/agent/agent_histogram.cuh -/home/ubuntu/thrust/install/include/cub/agent/agent_select_if.cuh -/home/ubuntu/thrust/install/include/cub/agent/agent_scan_by_key.cuh -/home/ubuntu/thrust/install/include/cub/agent/agent_merge_sort.cuh -/home/ubuntu/thrust/install/include/cub/agent/agent_radix_sort_histogram.cuh -/home/ubuntu/thrust/install/include/cub/agent/agent_radix_sort_onesweep.cuh -/home/ubuntu/thrust/install/include/cub/agent/agent_scan.cuh -/home/ubuntu/thrust/install/include/cub/agent/agent_rle.cuh -/home/ubuntu/thrust/install/include/cub/agent/agent_spmv_orig.cuh -/home/ubuntu/thrust/install/include/cub/agent/agent_adjacent_difference.cuh -/home/ubuntu/thrust/install/include/cub/agent/agent_segment_fixup.cuh -/home/ubuntu/thrust/install/include/cub/agent/agent_batch_memcpy.cuh -/home/ubuntu/thrust/install/include/cub/agent/agent_reduce.cuh -/home/ubuntu/thrust/install/include/cub/agent/agent_radix_sort_downsweep.cuh -/home/ubuntu/thrust/install/include/cub/agent/agent_unique_by_key.cuh -/home/ubuntu/thrust/install/include/cub/agent/agent_sub_warp_merge_sort.cuh -/home/ubuntu/thrust/install/include/cub/agent/agent_three_way_partition.cuh -/home/ubuntu/thrust/install/include/cub/iterator/tex_ref_input_iterator.cuh -/home/ubuntu/thrust/install/include/cub/iterator/constant_input_iterator.cuh -/home/ubuntu/thrust/install/include/cub/iterator/counting_input_iterator.cuh -/home/ubuntu/thrust/install/include/cub/iterator/cache_modified_input_iterator.cuh -/home/ubuntu/thrust/install/include/cub/iterator/cache_modified_output_iterator.cuh -/home/ubuntu/thrust/install/include/cub/iterator/arg_index_input_iterator.cuh -/home/ubuntu/thrust/install/include/cub/iterator/discard_output_iterator.cuh -/home/ubuntu/thrust/install/include/cub/iterator/transform_input_iterator.cuh -/home/ubuntu/thrust/install/include/cub/iterator/tex_obj_input_iterator.cuh -/home/ubuntu/thrust/install/include/cub/util_device.cuh -/home/ubuntu/thrust/install/include/cub/util_type.cuh -/home/ubuntu/thrust/install/include/cub/util_ptx.cuh -/home/ubuntu/thrust/install/include/cub/util_deprecated.cuh -/home/ubuntu/thrust/install/include/cub/util_namespace.cuh -/home/ubuntu/thrust/install/include/cub/thread/thread_load.cuh -/home/ubuntu/thrust/install/include/cub/thread/thread_search.cuh -/home/ubuntu/thrust/install/include/cub/thread/thread_store.cuh -/home/ubuntu/thrust/install/include/cub/thread/thread_reduce.cuh -/home/ubuntu/thrust/install/include/cub/thread/thread_operators.cuh -/home/ubuntu/thrust/install/include/cub/thread/thread_scan.cuh -/home/ubuntu/thrust/install/include/cub/thread/thread_sort.cuh -/home/ubuntu/thrust/install/lib/cmake/cub/cub-header-search.cmake -/home/ubuntu/thrust/install/lib/cmake/cub/cub-config.cmake -/home/ubuntu/thrust/install/lib/cmake/cub/cub-config-version.cmake -/home/ubuntu/thrust/install/lib/cmake/cub/cub-header-search.cmake -/home/ubuntu/thrust/install/include/cuda/barrier -/home/ubuntu/thrust/install/include/cuda/atomic -/home/ubuntu/thrust/install/include/cuda/annotated_ptr -/home/ubuntu/thrust/install/include/cuda/semaphore -/home/ubuntu/thrust/install/include/cuda/latch -/home/ubuntu/thrust/install/include/cuda/std/ccomplex -/home/ubuntu/thrust/install/include/cuda/std/limits -/home/ubuntu/thrust/install/include/cuda/std/cstdint -/home/ubuntu/thrust/install/include/cuda/std/barrier -/home/ubuntu/thrust/install/include/cuda/std/cmath -/home/ubuntu/thrust/install/include/cuda/std/ratio -/home/ubuntu/thrust/install/include/cuda/std/bit -/home/ubuntu/thrust/install/include/cuda/std/cstddef -/home/ubuntu/thrust/install/include/cuda/std/atomic -/home/ubuntu/thrust/install/include/cuda/std/cassert -/home/ubuntu/thrust/install/include/cuda/std/tuple -/home/ubuntu/thrust/install/include/cuda/std/functional -/home/ubuntu/thrust/install/include/cuda/std/version -/home/ubuntu/thrust/install/include/cuda/std/semaphore -/home/ubuntu/thrust/install/include/cuda/std/climits -/home/ubuntu/thrust/install/include/cuda/std/complex -/home/ubuntu/thrust/install/include/cuda/std/latch -/home/ubuntu/thrust/install/include/cuda/std/cfloat -/home/ubuntu/thrust/install/include/cuda/std/ctime -/home/ubuntu/thrust/install/include/cuda/std/detail/__functional_base -/home/ubuntu/thrust/install/include/cuda/std/detail/__config -/home/ubuntu/thrust/install/include/cuda/std/detail/__access_property -/home/ubuntu/thrust/install/include/cuda/std/detail/__threading_support -/home/ubuntu/thrust/install/include/cuda/std/detail/__pragma_push -/home/ubuntu/thrust/install/include/cuda/std/detail/__annotated_ptr -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/wchar.h -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/cerrno -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/ccomplex -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/memory -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/cstdlib -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/limits -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/cstdbool -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/ios -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/algorithm -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/fenv.h -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/iomanip -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/cstdint -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/exception -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/stdexcept -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/optional -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/string -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/any -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/__functional_base -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/locale -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/__std_stream -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/cinttypes -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/string.h -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/__nullptr -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/stddef.h -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/tgmath.h -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/string_view -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/strstream -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/barrier -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/new -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/stack -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/cmath -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/__hash_table -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/__node_handle -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/ostream -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/__config -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/__mutex_base -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/codecvt -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/__threading_support -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/variant -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/iosfwd -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/ratio -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/stdint.h -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/queue -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/__bsd_locale_fallbacks.h -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/bit -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/cstddef -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/atomic -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/random -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/execution -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/cassert -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/stdbool.h -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/cstdarg -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/__libcpp_version -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/__errc -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/scoped_allocator -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/unordered_set -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/tuple -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/__pragma_push -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/cwctype -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/ctype.h -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/deque -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/functional -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/CMakeLists.txt -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/typeindex -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/regex -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/istream -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/version -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/clocale -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/experimental/algorithm -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/experimental/string -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/experimental/__config -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/experimental/__memory -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/experimental/unordered_set -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/experimental/deque -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/experimental/functional -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/experimental/simd -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/experimental/regex -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/experimental/memory_resource -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/experimental/unordered_map -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/experimental/set -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/experimental/coroutine -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/experimental/list -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/experimental/propagate_const -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/experimental/forward_list -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/experimental/type_traits -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/experimental/filesystem -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/experimental/iterator -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/experimental/vector -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/experimental/map -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/experimental/utility -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/cstdio -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/unordered_map -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/csetjmp -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/condition_variable -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/system_error -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/set -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/csignal -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/ext/hash_map -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/ext/__hash -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/ext/hash_set -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/semaphore -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/climits -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/setjmp.h -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/numeric -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/__undef_macros -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/complex -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/float.h -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/charconv -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/cwchar -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/future -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/limits.h -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/__functional_base_03 -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/ctgmath -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/__functional_03 -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/__tree -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/bitset -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/list -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/__sso_allocator -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/latch -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/__split_buffer -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/__bit_reference -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/cfloat -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/ctime -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/fstream -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/iostream -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/__bsd_locale_defaults.h -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/cctype -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/span -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/ciso646 -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/module.modulemap -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/__pragma_pop -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/__string -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/forward_list -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/cfenv -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/streambuf -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/type_traits -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/__debug -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/support/ibm/support.h -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/support/ibm/xlocale.h -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/support/ibm/locale_mgmt_aix.h -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/support/ibm/limits.h -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/support/fuchsia/xlocale.h -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/support/solaris/wchar.h -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/support/solaris/floatingpoint.h -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/support/solaris/xlocale.h -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/support/atomic/atomic_cuda_generated.h -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/support/atomic/atomic_msvc.h -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/support/atomic/atomic_cuda_derived.h -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/support/atomic/cxx_atomic.h -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/support/atomic/atomic_scopes.h -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/support/atomic/atomic_gcc.h -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/support/atomic/atomic_cuda.h -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/support/atomic/atomic_nvrtc.h -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/support/atomic/atomic_base.h -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/support/atomic/atomic_c11.h -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/support/newlib/xlocale.h -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/support/xlocale/__nop_locale_mgmt.h -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/support/xlocale/__strtonum_fallback.h -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/support/xlocale/__posix_l_fallback.h -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/support/win32/locale_win32.h -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/support/win32/limits_msvc_win32.h -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/support/musl/xlocale.h -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/support/android/locale_bionic.h -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/filesystem -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/iterator -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/stdio.h -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/__config_site.in -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/__tuple -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/__locale -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/vector -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/array -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/shared_mutex -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/chrono -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/map -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/compare -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/wctype.h -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/utility -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/typeinfo -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/inttypes.h -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/errno.h -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/mutex -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/sstream -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/stdlib.h -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/valarray -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/math.h -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/locale.h -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/complex.h -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/cstring -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/initializer_list -/home/ubuntu/thrust/install/include/cuda/std/detail/libcxx/include/thread -/home/ubuntu/thrust/install/include/cuda/std/detail/__pragma_pop -/home/ubuntu/thrust/install/include/cuda/std/type_traits -/home/ubuntu/thrust/install/include/cuda/std/iterator -/home/ubuntu/thrust/install/include/cuda/std/array -/home/ubuntu/thrust/install/include/cuda/std/chrono -/home/ubuntu/thrust/install/include/cuda/std/utility -/home/ubuntu/thrust/install/include/cuda/std/initializer_list -/home/ubuntu/thrust/install/include/cuda/pipeline -/home/ubuntu/thrust/install/include/nv/target -/home/ubuntu/thrust/install/include/nv/detail/__preprocessor -/home/ubuntu/thrust/install/include/nv/detail/__target_macros -/home/ubuntu/thrust/install/lib/cmake/libcudacxx/libcudacxx-header-search.cmake -/home/ubuntu/thrust/install/lib/cmake/libcudacxx/libcudacxx-header-search.cmake.in -/home/ubuntu/thrust/install/lib/cmake/libcudacxx/libcudacxx-config.cmake -/home/ubuntu/thrust/install/lib/cmake/libcudacxx/libcudacxx-config-version.cmake -/home/ubuntu/thrust/install/lib/cmake/libcudacxx/libcudacxx-header-search.cmake \ No newline at end of file +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/lib/cmake/Metal/MetalConfig.cmake +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/lib/cmake/Metal/MetalConfigVersion.cmake +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/lib/cmake/Metal/MetalTargets.cmake +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/metal.hpp +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/equal.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/for_each.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/distance.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/merge.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/logical.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/event.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/optional.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/tuple.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/binary_search.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/addressof.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/mismatch.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/async/for_each.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/async/reduce.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/async/copy.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/async/sort.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/async/scan.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/async/transform.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/future.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/random.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/device_malloc_allocator.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/partition.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/extrema.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/transform_reduce.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/shuffle.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/memory.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/swap.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/random/uniform_real_distribution.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/random/normal_distribution.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/random/linear_congruential_engine.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/random/uniform_int_distribution.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/random/discard_block_engine.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/random/xor_combine_engine.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/random/detail/uniform_int_distribution.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/random/detail/normal_distribution_base.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/random/detail/linear_congruential_engine.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/random/detail/linear_feedback_shift_engine_wordmask.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/random/detail/uniform_real_distribution.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/random/detail/linear_congruential_engine_discard.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/random/detail/subtract_with_carry_engine.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/random/detail/normal_distribution.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/random/detail/xor_combine_engine.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/random/detail/xor_combine_engine_max.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/random/detail/mod.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/random/detail/random_core_access.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/random/detail/linear_feedback_shift_engine.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/random/detail/discard_block_engine.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/random/linear_feedback_shift_engine.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/random/subtract_with_carry_engine.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/device_reference.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/execution_policy.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/universal_allocator.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/zip_function.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/functional.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/generate.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/uninitialized_copy.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/find.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system_error.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/per_device_resource.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/reduce.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/copy.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/adjacent_difference.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/universal_ptr.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/inner_product.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/allocate_unique.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/memory_resource.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/pointer.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/memory.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/execution_policy.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/swap_ranges.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/equal.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/for_each.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/merge.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/copy.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/logical.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/malloc_and_free.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/binary_search.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/mismatch.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/reduce.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/reduce_intervals.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/partition.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/extrema.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/unique.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/transform_reduce.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/par.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/execution_policy.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/unique_by_key.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/for_each.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/temporary_buffer.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/merge.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/generate.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/uninitialized_copy.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/find.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/per_device_resource.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/reduce_by_key.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/copy_if.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/reduce.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/copy.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/adjacent_difference.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/remove.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/inner_product.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/get_value.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/uninitialized_fill.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/scatter.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/sort.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/assign_value.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/set_operations.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/partition.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/sequence.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/count.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/unique.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/unique_by_key.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/scan.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/remove.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/reduce_by_key.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/replace.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/gather.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/scan_by_key.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/transform.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/memory.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/copy_if.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/fill.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/tabulate.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/scan.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/iter_swap.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/sort.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/transform_scan.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/detail/reverse.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/tbb/vector.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/memory_resource.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/pointer.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/config.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/future.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/memory.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/execution_policy.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/error.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/internal/copy_cross_system.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/internal/copy_device_to_device.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/swap_ranges.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/equal.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/for_each.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/error.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/merge.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/logical.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/malloc_and_free.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/binary_search.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/mismatch.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/core/agent_launcher.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/core/util.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/core/triple_chevron_launch.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/core/alignment.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/guarded_driver_types.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/make_unsigned_special.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/async/for_each.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/async/customization.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/async/exclusive_scan.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/async/inclusive_scan.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/async/reduce.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/async/copy.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/async/sort.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/async/scan.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/async/transform.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/par_to_seq.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/partition.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/extrema.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/transform_reduce.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/par.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/guarded_cuda_runtime_api.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/execution_policy.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/temporary_buffer.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/generate.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/uninitialized_copy.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/find.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/per_device_resource.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/reduce_by_key.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/util.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/reduce.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/copy.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/adjacent_difference.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/future.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/inner_product.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/get_value.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/uninitialized_fill.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/scatter.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/sort.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/assign_value.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/set_operations.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/cdp_dispatch.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/sequence.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/dispatch.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/count.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/unique.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/terminate.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/unique_by_key.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/scan.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/remove.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/parallel_for.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/replace.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/gather.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/cross_system.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/scan_by_key.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/transform.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/memory.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/copy_if.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/fill.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/tabulate.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/iter_swap.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/transform_scan.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/detail/reverse.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cuda/vector.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/system_error.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cpp/memory_resource.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cpp/pointer.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cpp/memory.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cpp/execution_policy.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cpp/detail/swap_ranges.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cpp/detail/equal.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cpp/detail/for_each.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cpp/detail/merge.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cpp/detail/logical.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cpp/detail/malloc_and_free.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cpp/detail/binary_search.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cpp/detail/mismatch.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cpp/detail/partition.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cpp/detail/extrema.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cpp/detail/transform_reduce.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cpp/detail/par.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cpp/detail/execution_policy.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cpp/detail/vector.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cpp/detail/temporary_buffer.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cpp/detail/generate.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cpp/detail/uninitialized_copy.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cpp/detail/find.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cpp/detail/per_device_resource.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cpp/detail/reduce_by_key.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cpp/detail/reduce.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cpp/detail/copy.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cpp/detail/adjacent_difference.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cpp/detail/inner_product.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cpp/detail/get_value.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cpp/detail/uninitialized_fill.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cpp/detail/scatter.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cpp/detail/sort.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cpp/detail/assign_value.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cpp/detail/set_operations.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cpp/detail/sequence.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cpp/detail/count.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cpp/detail/unique.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cpp/detail/unique_by_key.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cpp/detail/scan.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cpp/detail/remove.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cpp/detail/replace.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cpp/detail/gather.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cpp/detail/scan_by_key.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cpp/detail/transform.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cpp/detail/memory.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cpp/detail/copy_if.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cpp/detail/fill.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cpp/detail/tabulate.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cpp/detail/iter_swap.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cpp/detail/transform_scan.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cpp/detail/reverse.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/cpp/vector.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/memory_resource.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/pointer.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/memory.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/execution_policy.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/swap_ranges.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/equal.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/for_each.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/merge.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/copy.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/logical.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/default_decomposition.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/malloc_and_free.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/binary_search.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/mismatch.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/reduce.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/reduce_intervals.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/partition.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/extrema.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/pragma_omp.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/unique.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/transform_reduce.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/par.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/execution_policy.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/unique_by_key.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/for_each.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/temporary_buffer.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/default_decomposition.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/generate.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/uninitialized_copy.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/find.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/per_device_resource.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/reduce_by_key.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/copy_if.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/reduce.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/copy.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/adjacent_difference.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/remove.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/inner_product.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/get_value.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/uninitialized_fill.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/scatter.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/sort.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/assign_value.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/set_operations.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/partition.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/sequence.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/count.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/unique.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/unique_by_key.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/scan.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/remove.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/reduce_by_key.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/reduce_intervals.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/replace.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/gather.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/scan_by_key.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/transform.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/memory.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/copy_if.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/fill.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/tabulate.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/iter_swap.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/sort.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/transform_scan.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/detail/reverse.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/omp/vector.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/internal/decompose.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/error_code.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/error_condition.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/system_error.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/error_category.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/swap_ranges.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/equal.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/for_each.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/stable_radix_sort.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/stable_primitive_sort.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/merge.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/copy.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/logical.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/malloc_and_free.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/binary_search.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/mismatch.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/stable_radix_sort.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/partition.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/extrema.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/transform_reduce.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/copy_backward.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/trivial_copy.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/execution_policy.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/stable_merge_sort.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/stable_primitive_sort.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/temporary_buffer.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/merge.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/generate.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/uninitialized_copy.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/find.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/per_device_resource.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/reduce_by_key.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/reduce.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/copy.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/adjacent_difference.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/inner_product.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/stable_merge_sort.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/get_value.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/uninitialized_fill.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/scatter.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/sort.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/assign_value.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/set_operations.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/sequence.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/count.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/general_copy.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/unique.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/unique_by_key.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/scan.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/remove.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/insertion_sort.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/replace.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/gather.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/scan_by_key.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/transform.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/copy_if.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/fill.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/tabulate.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/iter_swap.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/sort.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/transform_scan.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/sequential/reverse.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/adl/swap_ranges.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/adl/equal.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/adl/for_each.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/adl/merge.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/adl/logical.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/adl/malloc_and_free.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/adl/binary_search.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/adl/mismatch.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/adl/async/for_each.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/adl/async/reduce.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/adl/async/copy.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/adl/async/sort.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/adl/async/scan.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/adl/async/transform.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/adl/partition.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/adl/extrema.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/adl/transform_reduce.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/adl/temporary_buffer.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/adl/generate.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/adl/uninitialized_copy.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/adl/find.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/adl/per_device_resource.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/adl/reduce_by_key.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/adl/reduce.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/adl/copy.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/adl/adjacent_difference.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/adl/inner_product.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/adl/get_value.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/adl/uninitialized_fill.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/adl/scatter.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/adl/sort.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/adl/assign_value.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/adl/set_operations.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/adl/sequence.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/adl/count.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/adl/unique.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/adl/unique_by_key.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/adl/scan.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/adl/remove.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/adl/replace.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/adl/gather.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/adl/scan_by_key.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/adl/transform.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/adl/copy_if.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/adl/fill.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/adl/tabulate.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/adl/iter_swap.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/adl/transform_scan.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/adl/reverse.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/swap_ranges.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/gather.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/equal.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/for_each.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/equal.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/distance.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/set_operations.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/merge.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/copy.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/logical.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/reverse.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/binary_search.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/mismatch.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/transform.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/shuffle.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/mismatch.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/reduce.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/generate.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/partition.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/extrema.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/unique.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/transform_reduce.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/tag.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/transform_reduce.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/shuffle.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/memory.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/distance.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/inner_product.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/extrema.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/adjacent_difference.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/unique_by_key.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/sequence.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/temporary_buffer.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/tabulate.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/merge.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/generate.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/uninitialized_copy.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/find.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/per_device_resource.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/reduce_by_key.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/copy_if.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/reduce.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/copy.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/select_system_exists.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/adjacent_difference.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/remove.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/inner_product.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/uninitialized_copy.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/swap_ranges.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/find.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/uninitialized_fill.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/scatter.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/scatter.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/sort.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/replace.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/set_operations.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/partition.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/sequence.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/transform_scan.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/count.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/advance.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/unique.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/unique_by_key.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/binary_search.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/scan_by_key.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/select_system.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/scan.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/advance.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/remove.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/reduce_by_key.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/scalar/binary_search.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/scalar/binary_search.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/uninitialized_fill.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/count.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/replace.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/gather.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/scan_by_key.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/transform.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/memory.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/temporary_buffer.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/copy_if.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/fill.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/tabulate.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/scan.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/select_system.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/sort.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/transform_scan.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/generic/reverse.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/bad_alloc.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/detail/errno.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/system/error_code.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/device_delete.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/universal_vector.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/uninitialized_fill.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/device_ptr.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/pair.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/version.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/scatter.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/sort.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/device_malloc.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/device_new.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/set_operations.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/device_free.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/sequence.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/limits.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/mr/memory_resource.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/mr/allocator.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/mr/host_memory_resource.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/mr/device_memory_resource.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/mr/disjoint_pool.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/mr/disjoint_sync_pool.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/mr/sync_pool.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/mr/disjoint_tls_pool.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/mr/polymorphic_adaptor.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/mr/pool_options.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/mr/universal_memory_resource.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/mr/tls_pool.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/mr/validator.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/mr/pool.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/mr/fancy_pointer_resource.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/mr/new.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/device_make_unique.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/count.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/advance.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/unique.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/internal_functional.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/gather.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/pointer.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/contiguous_storage.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/config/memory_resource.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/config/config.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/config/compiler.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/config/compiler_fence.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/config/cpp_compatibility.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/config/debug.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/config/deprecated.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/config/host_device.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/config/simple_defines.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/config/forceinline.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/config/namespace.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/config/exec_check_disable.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/config/cpp_dialect.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/config/device_system.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/config/host_system.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/config/global_workarounds.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/equal.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/minmax.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/modern_gcc_required.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/allocator_aware_execution_policy.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/config.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/util/align.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/set_operations.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/execute_with_dependencies.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/copy.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/reverse.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/logical.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/malloc_and_free.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/tuple_meta_transform.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/dependencies_aware_execution_policy.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/transform.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/shuffle.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/memory_wrapper.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/numeric_traits.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/execute_with_allocator.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/mismatch.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/reduce.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/get_iterator_value.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/tuple_algorithms.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/generate.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/numeric_wrapper.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/functional.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/use_default.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/integer_math.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/unique.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/transform_reduce.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/overlapped_copy.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/memory_algorithms.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/range/tail_flags.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/range/head_flags.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/swap.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/function.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/distance.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/execution_policy.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/inner_product.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/extrema.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/trivial_sequence.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/adjacent_difference.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/for_each.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/temporary_array.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/sequence.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/temporary_buffer.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/tabulate.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/merge.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/device_new.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/type_traits.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/functional/composite.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/functional/argument.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/functional/actor.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/functional/placeholder.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/functional/value.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/functional/operators.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/functional/actor.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/functional/operators/compound_assignment_operators.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/functional/operators/arithmetic_operators.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/functional/operators/assignment_operator.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/functional/operators/operator_adaptors.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/functional/operators/bitwise_operators.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/functional/operators/logical_operators.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/functional/operators/relational_operators.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/copy_if.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/preprocessor.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/copy.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/raw_pointer_cast.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/remove.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/event_error.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/uninitialized_copy.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/static_map.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/type_deduction.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/swap_ranges.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/find.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/scatter.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/complex/cexp.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/complex/cpow.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/complex/arithmetic.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/complex/ctanh.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/complex/catrig.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/complex/ccoshf.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/complex/clog.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/complex/catrigf.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/complex/ccosh.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/complex/c99math.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/complex/cexpf.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/complex/csqrt.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/complex/cproj.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/complex/ctanhf.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/complex/csinhf.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/complex/complex.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/complex/clogf.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/complex/csinh.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/complex/math_private.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/complex/csqrtf.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/complex/stream.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/replace.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/partition.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/contiguous_storage.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/transform_scan.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/count.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/device_malloc.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/reference_forward_declaration.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/pointer.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/mpl/math.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/temporary_array.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/binary_search.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/static_assert.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/cpp11_required.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/allocator/temporary_allocator.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/allocator/default_construct_range.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/allocator/tagged_allocator.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/allocator/fill_construct_range.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/allocator/tagged_allocator.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/allocator/malloc_allocator.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/allocator/copy_construct_range.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/allocator/temporary_allocator.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/allocator/destroy_range.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/allocator/default_construct_range.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/allocator/destroy_range.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/allocator/fill_construct_range.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/allocator/no_throw_allocator.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/allocator/malloc_allocator.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/allocator/copy_construct_range.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/allocator/allocator_traits.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/allocator/allocator_traits.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/cpp14_required.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/select_system.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/vector_base.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/execute_with_allocator_fwd.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/advance.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/device_ptr.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/tuple.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/tuple_transform.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/raw_reference_cast.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/caching_allocator.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/seq.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/uninitialized_fill.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/device_delete.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/type_traits/result_of_adaptable_function.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/type_traits/has_member_function.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/type_traits/function_traits.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/type_traits/minimum_type.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/type_traits/pointer_traits.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/type_traits/iterator/is_discard_iterator.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/type_traits/iterator/is_output_iterator.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/type_traits/is_metafunction_defined.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/type_traits/is_call_possible.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/type_traits/has_nested_type.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/type_traits/has_trivial_assign.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/vector_base.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/count.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/cstdint.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/pair.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/copy_if.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/device_free.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/scan.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/algorithm_wrapper.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/swap.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/fill.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/reference.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/integer_traits.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/sort.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/detail/alignment.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/device_new_allocator.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/scan.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/remove.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/type_traits/remove_cvref.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/type_traits/is_operator_less_or_greater_function_object.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/type_traits/logical_metafunctions.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/type_traits/is_contiguous_iterator.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/type_traits/integer_sequence.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/type_traits/is_operator_plus_function_object.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/type_traits/void_t.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/type_traits/is_execution_policy.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/type_traits/is_trivially_relocatable.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/host_vector.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/replace.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/iterator/discard_iterator.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/iterator/iterator_adaptor.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/iterator/reverse_iterator.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/iterator/zip_iterator.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/iterator/transform_input_output_iterator.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/iterator/constant_iterator.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/iterator/transform_iterator.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/iterator/permutation_iterator.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/iterator/transform_output_iterator.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/iterator/counting_iterator.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/iterator/iterator_traits.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/iterator/retag.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/iterator/iterator_categories.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/iterator/detail/zip_iterator.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/iterator/detail/normal_iterator.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/iterator/detail/zip_iterator_base.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/iterator/detail/discard_iterator_base.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/iterator/detail/reverse_iterator_base.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/iterator/detail/permutation_iterator_base.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/iterator/detail/host_system_tag.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/iterator/detail/any_system_tag.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/iterator/detail/iterator_traversal_tags.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/iterator/detail/distance_from_result.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/iterator/detail/any_assign.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/iterator/detail/tuple_of_iterator_references.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/iterator/detail/minimum_system.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/iterator/detail/join_iterator.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/iterator/detail/tagged_iterator.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/iterator/detail/reverse_iterator.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/iterator/detail/iterator_traits.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/iterator/detail/is_iterator_category.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/iterator/detail/universal_categories.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/iterator/detail/iterator_adaptor_base.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/iterator/detail/constant_iterator_base.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/iterator/detail/retag.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/iterator/detail/iterator_category_to_traversal.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/iterator/detail/iterator_category_to_system.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/iterator/detail/counting_iterator.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/iterator/detail/transform_iterator.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/iterator/detail/transform_output_iterator.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/iterator/detail/iterator_category_with_system_and_traversal.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/iterator/detail/device_system_tag.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/iterator/detail/minimum_category.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/iterator/detail/transform_input_output_iterator.inl +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/iterator/detail/iterator_facade_category.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/iterator/iterator_facade.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/gather.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/device_vector.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/transform.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/fill.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/tabulate.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/complex.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/device_allocator.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/transform_scan.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/thrust/reverse.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/lib/cmake/thrust/FindTBB.cmake +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/lib/cmake/thrust/README.md +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/lib/cmake/thrust/thrust-config.cmake +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/lib/cmake/thrust/thrust-config-version.cmake +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/lib/cmake/thrust/thrust-header-search.cmake +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/lib/cmake/thrust/thrust-header-search.cmake +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/util_math.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/device/device_scan.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/device/device_reduce.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/device/device_copy.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/device/device_partition.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/device/device_segmented_reduce.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/device/device_segmented_radix_sort.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/device/device_memcpy.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/device/device_adjacent_difference.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/device/device_radix_sort.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/device/device_select.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/device/device_run_length_encode.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/device/device_spmv.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_reduce_by_key.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_adjacent_difference.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_batch_memcpy.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_histogram.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_scan_by_key.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_merge_sort.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_three_way_partition.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_rle.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_segmented_sort.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_spmv_orig.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_reduce.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_scan.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_radix_sort.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_unique_by_key.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_select_if.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/device/device_histogram.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/device/device_segmented_sort.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/device/device_merge_sort.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/util_allocator.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/util_arch.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/util_compiler.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/config.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/util_macro.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/util_cpp_dialect.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/cub.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/util_debug.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/version.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/block/block_reduce.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/block/block_radix_rank.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/block/block_raking_layout.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/block/block_shuffle.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/block/specializations/block_histogram_sort.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/block/specializations/block_histogram_atomic.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/block/specializations/block_reduce_raking.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/block/specializations/block_scan_raking.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/block/specializations/block_reduce_raking_commutative_only.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/block/specializations/block_scan_warp_scans.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/block/specializations/block_reduce_warp_reductions.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/block/block_store.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/block/block_discontinuity.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/block/block_merge_sort.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/block/block_run_length_decode.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/block/block_scan.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/block/block_exchange.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/block/block_adjacent_difference.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/block/radix_rank_sort_operations.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/block/block_radix_sort.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/block/block_load.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/block/block_histogram.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/grid/grid_even_share.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/grid/grid_mapping.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/grid/grid_queue.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/grid/grid_barrier.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/warp/warp_reduce.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/warp/warp_store.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/warp/warp_load.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/warp/specializations/warp_scan_shfl.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/warp/specializations/warp_scan_smem.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/warp/specializations/warp_reduce_smem.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/warp/specializations/warp_reduce_shfl.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/warp/warp_scan.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/warp/warp_exchange.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/warp/warp_merge_sort.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/host/mutex.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/detail/choose_offset.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/detail/strong_load.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/detail/type_traits.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/detail/device_synchronize.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/detail/cpp_compatibility.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/detail/strong_store.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/detail/device_double_buffer.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/detail/detect_cuda_runtime.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/detail/temporary_storage.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/detail/exec_check_disable.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/detail/uninitialized_copy.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_segmented_radix_sort.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_reduce_by_key.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/agent/single_pass_scan_operators.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_radix_sort_upsweep.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_histogram.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_select_if.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_scan_by_key.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_merge_sort.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_radix_sort_histogram.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_radix_sort_onesweep.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_scan.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_rle.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_spmv_orig.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_adjacent_difference.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_segment_fixup.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_batch_memcpy.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_reduce.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_radix_sort_downsweep.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_unique_by_key.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_sub_warp_merge_sort.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_three_way_partition.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/iterator/tex_ref_input_iterator.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/iterator/constant_input_iterator.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/iterator/counting_input_iterator.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/iterator/cache_modified_input_iterator.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/iterator/cache_modified_output_iterator.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/iterator/arg_index_input_iterator.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/iterator/discard_output_iterator.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/iterator/transform_input_iterator.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/iterator/tex_obj_input_iterator.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/util_device.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/util_type.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/util_ptx.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/util_deprecated.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/util_namespace.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/thread/thread_load.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/thread/thread_search.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/thread/thread_store.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/thread/thread_reduce.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/thread/thread_operators.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/thread/thread_scan.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cub/thread/thread_sort.cuh +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/lib/cmake/cub/cub-header-search.cmake +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/lib/cmake/cub/cub-config.cmake +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/lib/cmake/cub/cub-config-version.cmake +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/lib/cmake/cub/cub-header-search.cmake +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/barrier +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/atomic +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/annotated_ptr +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/semaphore +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/latch +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/ccomplex +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/limits +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/cstdint +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/barrier +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/cmath +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/ratio +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/bit +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/cstddef +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/atomic +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/cassert +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/tuple +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/functional +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/version +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/semaphore +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/climits +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/complex +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/latch +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/cfloat +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/ctime +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/__functional_base +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/__config +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/__access_property +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/__threading_support +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/__pragma_push +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/__annotated_ptr +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/wchar.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/cerrno +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/ccomplex +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/memory +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/cstdlib +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/limits +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/cstdbool +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/ios +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/algorithm +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/fenv.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/iomanip +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/cstdint +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/exception +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/stdexcept +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/optional +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/string +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/any +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__functional_base +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/locale +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__std_stream +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/cinttypes +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/string.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__nullptr +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/stddef.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/tgmath.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/string_view +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/strstream +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/barrier +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/new +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/stack +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/cmath +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__hash_table +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__node_handle +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/ostream +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__config +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__mutex_base +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/codecvt +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__threading_support +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/variant +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/iosfwd +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/ratio +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/stdint.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/queue +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__bsd_locale_fallbacks.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/bit +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/cstddef +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/atomic +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/random +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/execution +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/cassert +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/stdbool.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/cstdarg +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__libcpp_version +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__errc +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/scoped_allocator +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/unordered_set +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/tuple +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__pragma_push +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/cwctype +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/ctype.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/deque +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/functional +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/CMakeLists.txt +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/typeindex +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/regex +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/istream +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/version +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/clocale +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/experimental/algorithm +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/experimental/string +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/experimental/__config +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/experimental/__memory +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/experimental/unordered_set +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/experimental/deque +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/experimental/functional +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/experimental/simd +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/experimental/regex +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/experimental/memory_resource +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/experimental/unordered_map +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/experimental/set +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/experimental/coroutine +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/experimental/list +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/experimental/propagate_const +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/experimental/forward_list +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/experimental/type_traits +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/experimental/filesystem +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/experimental/iterator +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/experimental/vector +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/experimental/map +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/experimental/utility +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/cstdio +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/unordered_map +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/csetjmp +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/condition_variable +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/system_error +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/set +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/csignal +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/ext/hash_map +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/ext/__hash +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/ext/hash_set +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/semaphore +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/climits +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/setjmp.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/numeric +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__undef_macros +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/complex +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/float.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/charconv +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/cwchar +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/future +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/limits.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__functional_base_03 +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/ctgmath +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__functional_03 +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__tree +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/bitset +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/list +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__sso_allocator +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/latch +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__split_buffer +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__bit_reference +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/cfloat +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/ctime +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/fstream +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/iostream +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__bsd_locale_defaults.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/cctype +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/span +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/ciso646 +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/module.modulemap +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__pragma_pop +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__string +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/forward_list +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/cfenv +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/streambuf +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/type_traits +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__debug +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/support/ibm/support.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/support/ibm/xlocale.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/support/ibm/locale_mgmt_aix.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/support/ibm/limits.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/support/fuchsia/xlocale.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/support/solaris/wchar.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/support/solaris/floatingpoint.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/support/solaris/xlocale.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/support/atomic/atomic_cuda_generated.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/support/atomic/atomic_msvc.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/support/atomic/atomic_cuda_derived.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/support/atomic/cxx_atomic.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/support/atomic/atomic_scopes.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/support/atomic/atomic_gcc.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/support/atomic/atomic_cuda.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/support/atomic/atomic_nvrtc.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/support/atomic/atomic_base.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/support/atomic/atomic_c11.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/support/newlib/xlocale.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/support/xlocale/__nop_locale_mgmt.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/support/xlocale/__strtonum_fallback.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/support/xlocale/__posix_l_fallback.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/support/win32/locale_win32.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/support/win32/limits_msvc_win32.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/support/musl/xlocale.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/support/android/locale_bionic.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/filesystem +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/iterator +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/stdio.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__config_site.in +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__tuple +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__locale +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/vector +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/array +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/shared_mutex +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/chrono +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/map +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/compare +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/wctype.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/utility +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/typeinfo +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/inttypes.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/errno.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/mutex +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/sstream +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/stdlib.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/valarray +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/math.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/locale.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/complex.h +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/cstring +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/initializer_list +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/thread +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/__pragma_pop +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/type_traits +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/iterator +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/array +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/chrono +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/utility +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/std/initializer_list +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/cuda/pipeline +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/nv/target +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/nv/detail/__preprocessor +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include/nv/detail/__target_macros +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/lib/cmake/libcudacxx/libcudacxx-header-search.cmake +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/lib/cmake/libcudacxx/libcudacxx-header-search.cmake.in +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/lib/cmake/libcudacxx/libcudacxx-config.cmake +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/lib/cmake/libcudacxx/libcudacxx-config-version.cmake +/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/lib/cmake/libcudacxx/libcudacxx-header-search.cmake \ No newline at end of file diff --git a/build/testing/CMakeFiles/progress.marks b/build/testing/CMakeFiles/progress.marks index c739b42c4d2ce23786c5350641d0adbf5fa7d6b2..425151f3a411f5e088d7753e7c8d016303b1b9d1 100644 --- a/build/testing/CMakeFiles/progress.marks +++ b/build/testing/CMakeFiles/progress.marks @@ -1 +1 @@ -44 +40 diff --git a/build/testing/CMakeFiles/thrust.test.alignment.dir/progress.make b/build/testing/CMakeFiles/thrust.test.alignment.dir/progress.make index 33a37e79a0c176b1bcf65d1fa3c70e1357f4805e..deeeb9c82aaa0999e75a1e795603ee3ad1ba242f 100644 --- a/build/testing/CMakeFiles/thrust.test.alignment.dir/progress.make +++ b/build/testing/CMakeFiles/thrust.test.alignment.dir/progress.make @@ -1,3 +1,3 @@ CMAKE_PROGRESS_1 = -CMAKE_PROGRESS_2 = 57 +CMAKE_PROGRESS_2 = 61 diff --git a/build/testing/CMakeFiles/thrust.test.async_copy.dir/progress.make b/build/testing/CMakeFiles/thrust.test.async_copy.dir/progress.make index 6c287f17b23171ee8abc97d23b8f8a3bfa7225de..c137f5554e498d87e395d8103e55340b2f3bb5e4 100644 --- a/build/testing/CMakeFiles/thrust.test.async_copy.dir/progress.make +++ b/build/testing/CMakeFiles/thrust.test.async_copy.dir/progress.make @@ -1,3 +1,3 @@ -CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_1 = 64 CMAKE_PROGRESS_2 = diff --git a/build/testing/CMakeFiles/thrust.test.async_sort.dir/progress.make b/build/testing/CMakeFiles/thrust.test.async_sort.dir/progress.make index a86269a81c5311f5015f4f493f5a1132de75e0dd..6c287f17b23171ee8abc97d23b8f8a3bfa7225de 100644 --- a/build/testing/CMakeFiles/thrust.test.async_sort.dir/progress.make +++ b/build/testing/CMakeFiles/thrust.test.async_sort.dir/progress.make @@ -1,3 +1,3 @@ -CMAKE_PROGRESS_1 = 61 +CMAKE_PROGRESS_1 = CMAKE_PROGRESS_2 = diff --git a/build/testing/CMakeFiles/thrust.test.binary_search.dir/progress.make b/build/testing/CMakeFiles/thrust.test.binary_search.dir/progress.make index 6c287f17b23171ee8abc97d23b8f8a3bfa7225de..bc83bfb36144955bfa2a64375e380e546e9c90d5 100644 --- a/build/testing/CMakeFiles/thrust.test.binary_search.dir/progress.make +++ b/build/testing/CMakeFiles/thrust.test.binary_search.dir/progress.make @@ -1,3 +1,3 @@ -CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_1 = 65 CMAKE_PROGRESS_2 = diff --git a/build/testing/CMakeFiles/thrust.test.binary_search_vector_descending.dir/progress.make b/build/testing/CMakeFiles/thrust.test.binary_search_vector_descending.dir/progress.make index 1b22e7e8f15cbf084afdb11de39998a39ed1947a..6c287f17b23171ee8abc97d23b8f8a3bfa7225de 100644 --- a/build/testing/CMakeFiles/thrust.test.binary_search_vector_descending.dir/progress.make +++ b/build/testing/CMakeFiles/thrust.test.binary_search_vector_descending.dir/progress.make @@ -1,3 +1,3 @@ CMAKE_PROGRESS_1 = -CMAKE_PROGRESS_2 = 62 +CMAKE_PROGRESS_2 = diff --git a/build/testing/CMakeFiles/thrust.test.complex_transform.dir/progress.make b/build/testing/CMakeFiles/thrust.test.complex_transform.dir/progress.make index 6c287f17b23171ee8abc97d23b8f8a3bfa7225de..871f9f58dd4f81290dad10b9d4988cd11c440435 100644 --- a/build/testing/CMakeFiles/thrust.test.complex_transform.dir/progress.make +++ b/build/testing/CMakeFiles/thrust.test.complex_transform.dir/progress.make @@ -1,3 +1,3 @@ -CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_1 = 66 CMAKE_PROGRESS_2 = diff --git a/build/testing/CMakeFiles/thrust.test.copy_n.dir/progress.make b/build/testing/CMakeFiles/thrust.test.copy_n.dir/progress.make index 22956c6b950280c248c28bd2c8a3930d805d7034..6c287f17b23171ee8abc97d23b8f8a3bfa7225de 100644 --- a/build/testing/CMakeFiles/thrust.test.copy_n.dir/progress.make +++ b/build/testing/CMakeFiles/thrust.test.copy_n.dir/progress.make @@ -1,3 +1,3 @@ -CMAKE_PROGRESS_1 = 63 +CMAKE_PROGRESS_1 = CMAKE_PROGRESS_2 = diff --git a/build/testing/CMakeFiles/thrust.test.cstdint.dir/progress.make b/build/testing/CMakeFiles/thrust.test.cstdint.dir/progress.make index 6c287f17b23171ee8abc97d23b8f8a3bfa7225de..5291f3ec438d9d49f1645483b1df2117de771ab3 100644 --- a/build/testing/CMakeFiles/thrust.test.cstdint.dir/progress.make +++ b/build/testing/CMakeFiles/thrust.test.cstdint.dir/progress.make @@ -1,3 +1,3 @@ CMAKE_PROGRESS_1 = -CMAKE_PROGRESS_2 = +CMAKE_PROGRESS_2 = 67 diff --git a/build/testing/CMakeFiles/thrust.test.decompose.dir/progress.make b/build/testing/CMakeFiles/thrust.test.decompose.dir/progress.make index 6c287f17b23171ee8abc97d23b8f8a3bfa7225de..4ef80b2593a7b357da1342957bc63bfded7d0ff5 100644 --- a/build/testing/CMakeFiles/thrust.test.decompose.dir/progress.make +++ b/build/testing/CMakeFiles/thrust.test.decompose.dir/progress.make @@ -1,3 +1,3 @@ -CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_1 = 77 CMAKE_PROGRESS_2 = diff --git a/build/testing/CMakeFiles/thrust.test.dereference.dir/progress.make b/build/testing/CMakeFiles/thrust.test.dereference.dir/progress.make index c56a4ace3192b446dd4fc552a838a52e6bf6247b..6c287f17b23171ee8abc97d23b8f8a3bfa7225de 100644 --- a/build/testing/CMakeFiles/thrust.test.dereference.dir/progress.make +++ b/build/testing/CMakeFiles/thrust.test.dereference.dir/progress.make @@ -1,3 +1,3 @@ -CMAKE_PROGRESS_1 = 75 +CMAKE_PROGRESS_1 = CMAKE_PROGRESS_2 = diff --git a/build/testing/CMakeFiles/thrust.test.discard_iterator.dir/progress.make b/build/testing/CMakeFiles/thrust.test.discard_iterator.dir/progress.make index 6c287f17b23171ee8abc97d23b8f8a3bfa7225de..c483c765959302ad0cea79dc830ba3c11775cfa8 100644 --- a/build/testing/CMakeFiles/thrust.test.discard_iterator.dir/progress.make +++ b/build/testing/CMakeFiles/thrust.test.discard_iterator.dir/progress.make @@ -1,3 +1,3 @@ -CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_1 = 78 CMAKE_PROGRESS_2 = diff --git a/build/testing/CMakeFiles/thrust.test.distance.dir/progress.make b/build/testing/CMakeFiles/thrust.test.distance.dir/progress.make index 938a393d295ca15ca83dfdb8a0f847d9e87f6a81..6c287f17b23171ee8abc97d23b8f8a3bfa7225de 100644 --- a/build/testing/CMakeFiles/thrust.test.distance.dir/progress.make +++ b/build/testing/CMakeFiles/thrust.test.distance.dir/progress.make @@ -1,3 +1,3 @@ CMAKE_PROGRESS_1 = -CMAKE_PROGRESS_2 = 76 +CMAKE_PROGRESS_2 = diff --git a/build/testing/CMakeFiles/thrust.test.for_each.dir/progress.make b/build/testing/CMakeFiles/thrust.test.for_each.dir/progress.make index 6c287f17b23171ee8abc97d23b8f8a3bfa7225de..fe2bd681367f6c71a96516a70b387a283f6b822b 100644 --- a/build/testing/CMakeFiles/thrust.test.for_each.dir/progress.make +++ b/build/testing/CMakeFiles/thrust.test.for_each.dir/progress.make @@ -1,3 +1,3 @@ -CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_1 = 79 CMAKE_PROGRESS_2 = diff --git a/build/testing/CMakeFiles/thrust.test.functional_logical.dir/progress.make b/build/testing/CMakeFiles/thrust.test.functional_logical.dir/progress.make index 6c287f17b23171ee8abc97d23b8f8a3bfa7225de..4bf1e82225181345301768e53fb600d7ce24758d 100644 --- a/build/testing/CMakeFiles/thrust.test.functional_logical.dir/progress.make +++ b/build/testing/CMakeFiles/thrust.test.functional_logical.dir/progress.make @@ -1,3 +1,3 @@ CMAKE_PROGRESS_1 = -CMAKE_PROGRESS_2 = +CMAKE_PROGRESS_2 = 80 diff --git a/build/testing/CMakeFiles/thrust.test.functional_placeholders_arithmetic.dir/progress.make b/build/testing/CMakeFiles/thrust.test.functional_placeholders_arithmetic.dir/progress.make index c483c765959302ad0cea79dc830ba3c11775cfa8..6c287f17b23171ee8abc97d23b8f8a3bfa7225de 100644 --- a/build/testing/CMakeFiles/thrust.test.functional_placeholders_arithmetic.dir/progress.make +++ b/build/testing/CMakeFiles/thrust.test.functional_placeholders_arithmetic.dir/progress.make @@ -1,3 +1,3 @@ -CMAKE_PROGRESS_1 = 78 +CMAKE_PROGRESS_1 = CMAKE_PROGRESS_2 = diff --git a/build/testing/CMakeFiles/thrust.test.future.dir/progress.make b/build/testing/CMakeFiles/thrust.test.future.dir/progress.make index fe2bd681367f6c71a96516a70b387a283f6b822b..8fc15f221dea6bf883b5e38f0d625013f1de93a7 100644 --- a/build/testing/CMakeFiles/thrust.test.future.dir/progress.make +++ b/build/testing/CMakeFiles/thrust.test.future.dir/progress.make @@ -1,3 +1,3 @@ -CMAKE_PROGRESS_1 = 79 +CMAKE_PROGRESS_1 = 81 CMAKE_PROGRESS_2 = diff --git a/build/testing/CMakeFiles/thrust.test.is_contiguous_iterator.dir/progress.make b/build/testing/CMakeFiles/thrust.test.is_contiguous_iterator.dir/progress.make index 4bf1e82225181345301768e53fb600d7ce24758d..6c287f17b23171ee8abc97d23b8f8a3bfa7225de 100644 --- a/build/testing/CMakeFiles/thrust.test.is_contiguous_iterator.dir/progress.make +++ b/build/testing/CMakeFiles/thrust.test.is_contiguous_iterator.dir/progress.make @@ -1,3 +1,3 @@ CMAKE_PROGRESS_1 = -CMAKE_PROGRESS_2 = 80 +CMAKE_PROGRESS_2 = diff --git a/build/testing/CMakeFiles/thrust.test.is_operator_function_object.dir/progress.make b/build/testing/CMakeFiles/thrust.test.is_operator_function_object.dir/progress.make index 6c287f17b23171ee8abc97d23b8f8a3bfa7225de..794833413c2c999188a1b70401485ab8585444d5 100644 --- a/build/testing/CMakeFiles/thrust.test.is_operator_function_object.dir/progress.make +++ b/build/testing/CMakeFiles/thrust.test.is_operator_function_object.dir/progress.make @@ -1,3 +1,3 @@ -CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_1 = 82 CMAKE_PROGRESS_2 = diff --git a/build/testing/CMakeFiles/thrust.test.max_element.dir/progress.make b/build/testing/CMakeFiles/thrust.test.max_element.dir/progress.make index 8fc15f221dea6bf883b5e38f0d625013f1de93a7..6c287f17b23171ee8abc97d23b8f8a3bfa7225de 100644 --- a/build/testing/CMakeFiles/thrust.test.max_element.dir/progress.make +++ b/build/testing/CMakeFiles/thrust.test.max_element.dir/progress.make @@ -1,3 +1,3 @@ -CMAKE_PROGRESS_1 = 81 +CMAKE_PROGRESS_1 = CMAKE_PROGRESS_2 = diff --git a/build/testing/CMakeFiles/thrust.test.memory.dir/progress.make b/build/testing/CMakeFiles/thrust.test.memory.dir/progress.make index 6c287f17b23171ee8abc97d23b8f8a3bfa7225de..6a860595a4928752ac47a85c366c22b83f0cf074 100644 --- a/build/testing/CMakeFiles/thrust.test.memory.dir/progress.make +++ b/build/testing/CMakeFiles/thrust.test.memory.dir/progress.make @@ -1,3 +1,3 @@ -CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_1 = 83 CMAKE_PROGRESS_2 = diff --git a/build/testing/CMakeFiles/thrust.test.metaprogamming.dir/progress.make b/build/testing/CMakeFiles/thrust.test.metaprogamming.dir/progress.make index f21a79251324f4fb187b5dd903d8bae21cf1e39e..6c287f17b23171ee8abc97d23b8f8a3bfa7225de 100644 --- a/build/testing/CMakeFiles/thrust.test.metaprogamming.dir/progress.make +++ b/build/testing/CMakeFiles/thrust.test.metaprogamming.dir/progress.make @@ -1,3 +1,3 @@ CMAKE_PROGRESS_1 = -CMAKE_PROGRESS_2 = 82 +CMAKE_PROGRESS_2 = diff --git a/build/testing/CMakeFiles/thrust.test.min_element.dir/progress.make b/build/testing/CMakeFiles/thrust.test.min_element.dir/progress.make index 6c287f17b23171ee8abc97d23b8f8a3bfa7225de..edd74b63a3a7272fea28da4677ab44d6e0d97c41 100644 --- a/build/testing/CMakeFiles/thrust.test.min_element.dir/progress.make +++ b/build/testing/CMakeFiles/thrust.test.min_element.dir/progress.make @@ -1,3 +1,3 @@ CMAKE_PROGRESS_1 = -CMAKE_PROGRESS_2 = +CMAKE_PROGRESS_2 = 84 diff --git a/build/testing/CMakeFiles/thrust.test.mr_new.dir/progress.make b/build/testing/CMakeFiles/thrust.test.mr_new.dir/progress.make index 6a860595a4928752ac47a85c366c22b83f0cf074..6c287f17b23171ee8abc97d23b8f8a3bfa7225de 100644 --- a/build/testing/CMakeFiles/thrust.test.mr_new.dir/progress.make +++ b/build/testing/CMakeFiles/thrust.test.mr_new.dir/progress.make @@ -1,3 +1,3 @@ -CMAKE_PROGRESS_1 = 83 +CMAKE_PROGRESS_1 = CMAKE_PROGRESS_2 = diff --git a/build/testing/CMakeFiles/thrust.test.mr_pool_options.dir/progress.make b/build/testing/CMakeFiles/thrust.test.mr_pool_options.dir/progress.make index 6c287f17b23171ee8abc97d23b8f8a3bfa7225de..d598a8e14a248479843613d4951f11395ba5f5c3 100644 --- a/build/testing/CMakeFiles/thrust.test.mr_pool_options.dir/progress.make +++ b/build/testing/CMakeFiles/thrust.test.mr_pool_options.dir/progress.make @@ -1,3 +1,3 @@ CMAKE_PROGRESS_1 = -CMAKE_PROGRESS_2 = +CMAKE_PROGRESS_2 = 85 diff --git a/build/testing/CMakeFiles/thrust.test.pair.dir/progress.make b/build/testing/CMakeFiles/thrust.test.pair.dir/progress.make index edd74b63a3a7272fea28da4677ab44d6e0d97c41..6c287f17b23171ee8abc97d23b8f8a3bfa7225de 100644 --- a/build/testing/CMakeFiles/thrust.test.pair.dir/progress.make +++ b/build/testing/CMakeFiles/thrust.test.pair.dir/progress.make @@ -1,3 +1,3 @@ CMAKE_PROGRESS_1 = -CMAKE_PROGRESS_2 = 84 +CMAKE_PROGRESS_2 = diff --git a/build/testing/CMakeFiles/thrust.test.pair_scan_by_key.dir/progress.make b/build/testing/CMakeFiles/thrust.test.pair_scan_by_key.dir/progress.make index 6c287f17b23171ee8abc97d23b8f8a3bfa7225de..9cb3549e1886025fb83f36342eeff335ece460d2 100644 --- a/build/testing/CMakeFiles/thrust.test.pair_scan_by_key.dir/progress.make +++ b/build/testing/CMakeFiles/thrust.test.pair_scan_by_key.dir/progress.make @@ -1,3 +1,3 @@ CMAKE_PROGRESS_1 = -CMAKE_PROGRESS_2 = +CMAKE_PROGRESS_2 = 86 diff --git a/build/testing/CMakeFiles/thrust.test.pair_transform.dir/progress.make b/build/testing/CMakeFiles/thrust.test.pair_transform.dir/progress.make index 57fa75ea5a15c325be39f9f7ffad023ad739c3ea..6c287f17b23171ee8abc97d23b8f8a3bfa7225de 100644 --- a/build/testing/CMakeFiles/thrust.test.pair_transform.dir/progress.make +++ b/build/testing/CMakeFiles/thrust.test.pair_transform.dir/progress.make @@ -1,3 +1,3 @@ -CMAKE_PROGRESS_1 = 85 +CMAKE_PROGRESS_1 = CMAKE_PROGRESS_2 = diff --git a/build/testing/CMakeFiles/thrust.test.preprocessor.dir/progress.make b/build/testing/CMakeFiles/thrust.test.preprocessor.dir/progress.make index 6c287f17b23171ee8abc97d23b8f8a3bfa7225de..15b2c73f614f7f0ca23df78fc4600be3cd2e4a95 100644 --- a/build/testing/CMakeFiles/thrust.test.preprocessor.dir/progress.make +++ b/build/testing/CMakeFiles/thrust.test.preprocessor.dir/progress.make @@ -1,3 +1,3 @@ -CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_1 = 87 CMAKE_PROGRESS_2 = diff --git a/build/testing/CMakeFiles/thrust.test.reduce.dir/progress.make b/build/testing/CMakeFiles/thrust.test.reduce.dir/progress.make index f87199e36df2dd523c8be8e6ee579bdab7439c3f..6c287f17b23171ee8abc97d23b8f8a3bfa7225de 100644 --- a/build/testing/CMakeFiles/thrust.test.reduce.dir/progress.make +++ b/build/testing/CMakeFiles/thrust.test.reduce.dir/progress.make @@ -1,3 +1,3 @@ -CMAKE_PROGRESS_1 = 86 +CMAKE_PROGRESS_1 = CMAKE_PROGRESS_2 = diff --git a/build/testing/CMakeFiles/thrust.test.replace.dir/progress.make b/build/testing/CMakeFiles/thrust.test.replace.dir/progress.make index 6c287f17b23171ee8abc97d23b8f8a3bfa7225de..981281d23de0e43b1f8fe563540632dd22a9b6e4 100644 --- a/build/testing/CMakeFiles/thrust.test.replace.dir/progress.make +++ b/build/testing/CMakeFiles/thrust.test.replace.dir/progress.make @@ -1,3 +1,3 @@ -CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_1 = 88 CMAKE_PROGRESS_2 = diff --git a/build/testing/CMakeFiles/thrust.test.reverse.dir/progress.make b/build/testing/CMakeFiles/thrust.test.reverse.dir/progress.make index a958dd7879f53808b147bff5994082091fedb4c8..6c287f17b23171ee8abc97d23b8f8a3bfa7225de 100644 --- a/build/testing/CMakeFiles/thrust.test.reverse.dir/progress.make +++ b/build/testing/CMakeFiles/thrust.test.reverse.dir/progress.make @@ -1,3 +1,3 @@ CMAKE_PROGRESS_1 = -CMAKE_PROGRESS_2 = 87 +CMAKE_PROGRESS_2 = diff --git a/build/testing/CMakeFiles/thrust.test.scatter.dir/progress.make b/build/testing/CMakeFiles/thrust.test.scatter.dir/progress.make index 6c287f17b23171ee8abc97d23b8f8a3bfa7225de..3d8fb399202374040db177ab68ab267a5d927044 100644 --- a/build/testing/CMakeFiles/thrust.test.scatter.dir/progress.make +++ b/build/testing/CMakeFiles/thrust.test.scatter.dir/progress.make @@ -1,3 +1,3 @@ -CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_1 = 89 CMAKE_PROGRESS_2 = diff --git a/build/testing/CMakeFiles/thrust.test.sequence.dir/progress.make b/build/testing/CMakeFiles/thrust.test.sequence.dir/progress.make index 981281d23de0e43b1f8fe563540632dd22a9b6e4..6c287f17b23171ee8abc97d23b8f8a3bfa7225de 100644 --- a/build/testing/CMakeFiles/thrust.test.sequence.dir/progress.make +++ b/build/testing/CMakeFiles/thrust.test.sequence.dir/progress.make @@ -1,3 +1,3 @@ -CMAKE_PROGRESS_1 = 88 +CMAKE_PROGRESS_1 = CMAKE_PROGRESS_2 = diff --git a/build/testing/CMakeFiles/thrust.test.set_difference_key_value.dir/progress.make b/build/testing/CMakeFiles/thrust.test.set_difference_key_value.dir/progress.make index a6704b138809ba134d3f2b2b374acf402fc725e2..37a7596d0ef6880a46253ddf3603e91e54aefe5b 100644 --- a/build/testing/CMakeFiles/thrust.test.set_difference_key_value.dir/progress.make +++ b/build/testing/CMakeFiles/thrust.test.set_difference_key_value.dir/progress.make @@ -1,3 +1,3 @@ -CMAKE_PROGRESS_1 = -CMAKE_PROGRESS_2 = 89 +CMAKE_PROGRESS_1 = 90 +CMAKE_PROGRESS_2 = diff --git a/build/testing/CMakeFiles/thrust.test.set_symmetric_difference.dir/progress.make b/build/testing/CMakeFiles/thrust.test.set_symmetric_difference.dir/progress.make index 37a7596d0ef6880a46253ddf3603e91e54aefe5b..7ce86b0065ad36b5850f83345e692f1211722e3a 100644 --- a/build/testing/CMakeFiles/thrust.test.set_symmetric_difference.dir/progress.make +++ b/build/testing/CMakeFiles/thrust.test.set_symmetric_difference.dir/progress.make @@ -1,3 +1,3 @@ -CMAKE_PROGRESS_1 = 90 -CMAKE_PROGRESS_2 = +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = 91 diff --git a/build/testing/CMakeFiles/thrust.test.set_union_by_key.dir/progress.make b/build/testing/CMakeFiles/thrust.test.set_union_by_key.dir/progress.make index 7ce86b0065ad36b5850f83345e692f1211722e3a..6c287f17b23171ee8abc97d23b8f8a3bfa7225de 100644 --- a/build/testing/CMakeFiles/thrust.test.set_union_by_key.dir/progress.make +++ b/build/testing/CMakeFiles/thrust.test.set_union_by_key.dir/progress.make @@ -1,3 +1,3 @@ CMAKE_PROGRESS_1 = -CMAKE_PROGRESS_2 = 91 +CMAKE_PROGRESS_2 = diff --git a/build/testing/CMakeFiles/thrust.test.set_union_by_key_descending.dir/progress.make b/build/testing/CMakeFiles/thrust.test.set_union_by_key_descending.dir/progress.make index 6c287f17b23171ee8abc97d23b8f8a3bfa7225de..9063d234d6799226e550c872a4ab841c7516753e 100644 --- a/build/testing/CMakeFiles/thrust.test.set_union_by_key_descending.dir/progress.make +++ b/build/testing/CMakeFiles/thrust.test.set_union_by_key_descending.dir/progress.make @@ -1,3 +1,3 @@ CMAKE_PROGRESS_1 = -CMAKE_PROGRESS_2 = +CMAKE_PROGRESS_2 = 92 diff --git a/build/testing/CMakeFiles/thrust.test.sort_by_key.dir/progress.make b/build/testing/CMakeFiles/thrust.test.sort_by_key.dir/progress.make index c9a8f7fc9be9bbba1032058dd9847273c45be69f..6c287f17b23171ee8abc97d23b8f8a3bfa7225de 100644 --- a/build/testing/CMakeFiles/thrust.test.sort_by_key.dir/progress.make +++ b/build/testing/CMakeFiles/thrust.test.sort_by_key.dir/progress.make @@ -1,3 +1,3 @@ -CMAKE_PROGRESS_1 = 92 +CMAKE_PROGRESS_1 = CMAKE_PROGRESS_2 = diff --git a/build/testing/CMakeFiles/thrust.test.sort_by_key_variable_bits.dir/progress.make b/build/testing/CMakeFiles/thrust.test.sort_by_key_variable_bits.dir/progress.make index 6c287f17b23171ee8abc97d23b8f8a3bfa7225de..7614da18c895ae17422c4c748181c6eb3d79b292 100644 --- a/build/testing/CMakeFiles/thrust.test.sort_by_key_variable_bits.dir/progress.make +++ b/build/testing/CMakeFiles/thrust.test.sort_by_key_variable_bits.dir/progress.make @@ -1,3 +1,3 @@ CMAKE_PROGRESS_1 = -CMAKE_PROGRESS_2 = +CMAKE_PROGRESS_2 = 93 diff --git a/build/testing/CMakeFiles/thrust.test.stable_sort_by_key_large_keys.dir/progress.make b/build/testing/CMakeFiles/thrust.test.stable_sort_by_key_large_keys.dir/progress.make index 0454cb12621f37821d5f595b2540a7ee221a7bdc..6c287f17b23171ee8abc97d23b8f8a3bfa7225de 100644 --- a/build/testing/CMakeFiles/thrust.test.stable_sort_by_key_large_keys.dir/progress.make +++ b/build/testing/CMakeFiles/thrust.test.stable_sort_by_key_large_keys.dir/progress.make @@ -1,3 +1,3 @@ -CMAKE_PROGRESS_1 = 93 +CMAKE_PROGRESS_1 = CMAKE_PROGRESS_2 = diff --git a/build/testing/CMakeFiles/thrust.test.stable_sort_by_key_large_values.dir/progress.make b/build/testing/CMakeFiles/thrust.test.stable_sort_by_key_large_values.dir/progress.make index 6c287f17b23171ee8abc97d23b8f8a3bfa7225de..646c08bc5ffa3f61a46eff39fee567d6136bb733 100644 --- a/build/testing/CMakeFiles/thrust.test.stable_sort_by_key_large_values.dir/progress.make +++ b/build/testing/CMakeFiles/thrust.test.stable_sort_by_key_large_values.dir/progress.make @@ -1,3 +1,3 @@ -CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_1 = 94 CMAKE_PROGRESS_2 = diff --git a/build/testing/CMakeFiles/thrust.test.tabulate.dir/progress.make b/build/testing/CMakeFiles/thrust.test.tabulate.dir/progress.make index 2c3143a089c9d2e2e18450aef550b6d988b3cd75..6c287f17b23171ee8abc97d23b8f8a3bfa7225de 100644 --- a/build/testing/CMakeFiles/thrust.test.tabulate.dir/progress.make +++ b/build/testing/CMakeFiles/thrust.test.tabulate.dir/progress.make @@ -1,3 +1,3 @@ CMAKE_PROGRESS_1 = -CMAKE_PROGRESS_2 = 94 +CMAKE_PROGRESS_2 = diff --git a/build/testing/CMakeFiles/thrust.test.transform_iterator.dir/progress.make b/build/testing/CMakeFiles/thrust.test.transform_iterator.dir/progress.make index 6c287f17b23171ee8abc97d23b8f8a3bfa7225de..c16f3dd4fc24370e55697a74a6401d1ae79fc22a 100644 --- a/build/testing/CMakeFiles/thrust.test.transform_iterator.dir/progress.make +++ b/build/testing/CMakeFiles/thrust.test.transform_iterator.dir/progress.make @@ -1,3 +1,3 @@ -CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_1 = 95 CMAKE_PROGRESS_2 = diff --git a/build/testing/CMakeFiles/thrust.test.transform_reduce.dir/progress.make b/build/testing/CMakeFiles/thrust.test.transform_reduce.dir/progress.make index c16f3dd4fc24370e55697a74a6401d1ae79fc22a..6c287f17b23171ee8abc97d23b8f8a3bfa7225de 100644 --- a/build/testing/CMakeFiles/thrust.test.transform_reduce.dir/progress.make +++ b/build/testing/CMakeFiles/thrust.test.transform_reduce.dir/progress.make @@ -1,3 +1,3 @@ -CMAKE_PROGRESS_1 = 95 +CMAKE_PROGRESS_1 = CMAKE_PROGRESS_2 = diff --git a/build/testing/CMakeFiles/thrust.test.tuple.dir/progress.make b/build/testing/CMakeFiles/thrust.test.tuple.dir/progress.make index 6c287f17b23171ee8abc97d23b8f8a3bfa7225de..761d6c578c7f4efb9d0c57e3184fce8ecfc3206c 100644 --- a/build/testing/CMakeFiles/thrust.test.tuple.dir/progress.make +++ b/build/testing/CMakeFiles/thrust.test.tuple.dir/progress.make @@ -1,3 +1,3 @@ -CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_1 = 96 CMAKE_PROGRESS_2 = diff --git a/build/testing/CMakeFiles/thrust.test.tuple_reduce.dir/progress.make b/build/testing/CMakeFiles/thrust.test.tuple_reduce.dir/progress.make index f07b37ae02adb55bb3731e86695cec7d52619416..6c287f17b23171ee8abc97d23b8f8a3bfa7225de 100644 --- a/build/testing/CMakeFiles/thrust.test.tuple_reduce.dir/progress.make +++ b/build/testing/CMakeFiles/thrust.test.tuple_reduce.dir/progress.make @@ -1,3 +1,3 @@ CMAKE_PROGRESS_1 = -CMAKE_PROGRESS_2 = 96 +CMAKE_PROGRESS_2 = diff --git a/build/testing/CMakeFiles/thrust.test.type_traits.dir/progress.make b/build/testing/CMakeFiles/thrust.test.type_traits.dir/progress.make index 6c287f17b23171ee8abc97d23b8f8a3bfa7225de..a09f9bb6aa4d0b33c94236afbe8ad2ca975d533a 100644 --- a/build/testing/CMakeFiles/thrust.test.type_traits.dir/progress.make +++ b/build/testing/CMakeFiles/thrust.test.type_traits.dir/progress.make @@ -1,3 +1,3 @@ CMAKE_PROGRESS_1 = -CMAKE_PROGRESS_2 = +CMAKE_PROGRESS_2 = 97 diff --git a/build/testing/CMakeFiles/thrust.test.uninitialized_fill.dir/progress.make b/build/testing/CMakeFiles/thrust.test.uninitialized_fill.dir/progress.make index cf90e913b69a28467ffc27b50269dcc60f06e40a..6c287f17b23171ee8abc97d23b8f8a3bfa7225de 100644 --- a/build/testing/CMakeFiles/thrust.test.uninitialized_fill.dir/progress.make +++ b/build/testing/CMakeFiles/thrust.test.uninitialized_fill.dir/progress.make @@ -1,3 +1,3 @@ -CMAKE_PROGRESS_1 = 97 +CMAKE_PROGRESS_1 = CMAKE_PROGRESS_2 = diff --git a/build/testing/CMakeFiles/thrust.test.unittest_tester.dir/progress.make b/build/testing/CMakeFiles/thrust.test.unittest_tester.dir/progress.make index 6c287f17b23171ee8abc97d23b8f8a3bfa7225de..0d87696f03b455bad31156ef810eda35f5a2160d 100644 --- a/build/testing/CMakeFiles/thrust.test.unittest_tester.dir/progress.make +++ b/build/testing/CMakeFiles/thrust.test.unittest_tester.dir/progress.make @@ -1,3 +1,3 @@ CMAKE_PROGRESS_1 = -CMAKE_PROGRESS_2 = +CMAKE_PROGRESS_2 = 98 diff --git a/build/testing/CMakeFiles/thrust.test.universal_memory.dir/progress.make b/build/testing/CMakeFiles/thrust.test.universal_memory.dir/progress.make index 0d87696f03b455bad31156ef810eda35f5a2160d..6c287f17b23171ee8abc97d23b8f8a3bfa7225de 100644 --- a/build/testing/CMakeFiles/thrust.test.universal_memory.dir/progress.make +++ b/build/testing/CMakeFiles/thrust.test.universal_memory.dir/progress.make @@ -1,3 +1,3 @@ CMAKE_PROGRESS_1 = -CMAKE_PROGRESS_2 = 98 +CMAKE_PROGRESS_2 = diff --git a/build/testing/CMakeFiles/thrust.test.zip_function.dir/progress.make b/build/testing/CMakeFiles/thrust.test.zip_function.dir/progress.make index 6c287f17b23171ee8abc97d23b8f8a3bfa7225de..f4a80ecaaa5c482d4a842bca5165778d33dafac7 100644 --- a/build/testing/CMakeFiles/thrust.test.zip_function.dir/progress.make +++ b/build/testing/CMakeFiles/thrust.test.zip_function.dir/progress.make @@ -1,3 +1,3 @@ CMAKE_PROGRESS_1 = -CMAKE_PROGRESS_2 = +CMAKE_PROGRESS_2 = 99 diff --git a/build/testing/CMakeFiles/thrust.test.zip_iterator.dir/progress.make b/build/testing/CMakeFiles/thrust.test.zip_iterator.dir/progress.make index 793552756d61a57c2a174499af968f02511df651..6c287f17b23171ee8abc97d23b8f8a3bfa7225de 100644 --- a/build/testing/CMakeFiles/thrust.test.zip_iterator.dir/progress.make +++ b/build/testing/CMakeFiles/thrust.test.zip_iterator.dir/progress.make @@ -1,3 +1,3 @@ -CMAKE_PROGRESS_1 = 99 +CMAKE_PROGRESS_1 = CMAKE_PROGRESS_2 = diff --git a/build/testing/async/CMakeFiles/progress.marks b/build/testing/async/CMakeFiles/progress.marks index b8626c4cff2849624fb67f87cd0ad72b163671ad..0cfbf08886fca9a91cb753ec8734c84fcbe52c9f 100644 --- a/build/testing/async/CMakeFiles/progress.marks +++ b/build/testing/async/CMakeFiles/progress.marks @@ -1 +1 @@ -4 +2 diff --git a/build/testing/async/CMakeFiles/thrust.test.async.exclusive_scan.large_types.dir/progress.make b/build/testing/async/CMakeFiles/thrust.test.async.exclusive_scan.large_types.dir/progress.make index b176653af558c12496556c8d8fcfdc36064ada69..1b22e7e8f15cbf084afdb11de39998a39ed1947a 100644 --- a/build/testing/async/CMakeFiles/thrust.test.async.exclusive_scan.large_types.dir/progress.make +++ b/build/testing/async/CMakeFiles/thrust.test.async.exclusive_scan.large_types.dir/progress.make @@ -1,3 +1,3 @@ CMAKE_PROGRESS_1 = -CMAKE_PROGRESS_2 = 58 +CMAKE_PROGRESS_2 = 62 diff --git a/build/testing/async/CMakeFiles/thrust.test.async.inclusive_scan.discard_output.dir/progress.make b/build/testing/async/CMakeFiles/thrust.test.async.inclusive_scan.discard_output.dir/progress.make index c4d787ca56f845831a11b4625206eed811fc9676..3f01b28827efdb70286aa085f1e7c634d57ecc2d 100644 --- a/build/testing/async/CMakeFiles/thrust.test.async.inclusive_scan.discard_output.dir/progress.make +++ b/build/testing/async/CMakeFiles/thrust.test.async.inclusive_scan.discard_output.dir/progress.make @@ -1,3 +1,3 @@ -CMAKE_PROGRESS_1 = 59 -CMAKE_PROGRESS_2 = +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = 63 diff --git a/build/testing/async/CMakeFiles/thrust.test.async.inclusive_scan.stateful_operator.dir/progress.make b/build/testing/async/CMakeFiles/thrust.test.async.inclusive_scan.stateful_operator.dir/progress.make index fc0867fab87a9f122ed162856332538f6c4c166e..6c287f17b23171ee8abc97d23b8f8a3bfa7225de 100644 --- a/build/testing/async/CMakeFiles/thrust.test.async.inclusive_scan.stateful_operator.dir/progress.make +++ b/build/testing/async/CMakeFiles/thrust.test.async.inclusive_scan.stateful_operator.dir/progress.make @@ -1,3 +1,3 @@ CMAKE_PROGRESS_1 = -CMAKE_PROGRESS_2 = 60 +CMAKE_PROGRESS_2 = diff --git a/build/testing/cmake/test_install/CMakeCache.txt b/build/testing/cmake/test_install/CMakeCache.txt new file mode 100644 index 0000000000000000000000000000000000000000..5512e3a0992a42d3077d9fd436c5765b120054c8 --- /dev/null +++ b/build/testing/cmake/test_install/CMakeCache.txt @@ -0,0 +1,402 @@ +# This is the CMakeCache file. +# For build in directory: /home/ubuntu/thrust/build/testing/cmake/test_install +# It was generated by CMake: /usr/bin/cmake +# You can edit this file to change values found and used by cmake. +# If you do not want to change any of the values, simply exit the editor. +# If you do want to change a value, simply edit, save, and exit the editor. +# The syntax for the file is as follows: +# KEY:TYPE=VALUE +# KEY is the name of a variable in the cache. +# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. +# VALUE is the current value for the KEY. + +######################## +# EXTERNAL cache entries +######################## + +//Path to a program. +CMAKE_ADDR2LINE:FILEPATH=/usr/bin/addr2line + +//Path to a program. +CMAKE_AR:FILEPATH=/usr/bin/ar + +//Choose the type of build, options are: None Debug Release RelWithDebInfo +// MinSizeRel ... +CMAKE_BUILD_TYPE:STRING=Release + +//Enable/Disable color output during build. +CMAKE_COLOR_MAKEFILE:BOOL=ON + +//CUDA compiler +CMAKE_CUDA_COMPILER:STRING=/usr/bin/nvcc + +//Flags used by the CUDA compiler during all build types. +CMAKE_CUDA_FLAGS:STRING= + +//Flags used by the CUDA compiler during DEBUG builds. +CMAKE_CUDA_FLAGS_DEBUG:STRING=-g + +//Flags used by the CUDA compiler during MINSIZEREL builds. +CMAKE_CUDA_FLAGS_MINSIZEREL:STRING=-O1 -DNDEBUG + +//Flags used by the CUDA compiler during RELEASE builds. +CMAKE_CUDA_FLAGS_RELEASE:STRING=-O3 -DNDEBUG + +//Flags used by the CUDA compiler during RELWITHDEBINFO builds. +CMAKE_CUDA_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//CXX compiler +CMAKE_CXX_COMPILER:STRING=/usr/bin/c++ + +//A wrapper around 'ar' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_CXX_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-9 + +//A wrapper around 'ranlib' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-9 + +//Flags used by the CXX compiler during all build types. +CMAKE_CXX_FLAGS:STRING= + +//Flags used by the CXX compiler during DEBUG builds. +CMAKE_CXX_FLAGS_DEBUG:STRING=-g + +//Flags used by the CXX compiler during MINSIZEREL builds. +CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the CXX compiler during RELEASE builds. +CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG + +//Flags used by the CXX compiler during RELWITHDEBINFO builds. +CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Path to a program. +CMAKE_DLLTOOL:FILEPATH=CMAKE_DLLTOOL-NOTFOUND + +//Flags used by the linker during all build types. +CMAKE_EXE_LINKER_FLAGS:STRING= + +//Flags used by the linker during DEBUG builds. +CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during MINSIZEREL builds. +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during RELEASE builds. +CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during RELWITHDEBINFO builds. +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Enable/Disable output of compile commands during generation. +CMAKE_EXPORT_COMPILE_COMMANDS:BOOL= + +//Value Computed by CMake. +CMAKE_FIND_PACKAGE_REDIRECTS_DIR:STATIC=/home/ubuntu/thrust/build/testing/cmake/test_install/CMakeFiles/pkgRedirects + +//Install path prefix, prepended onto install directories. +CMAKE_INSTALL_PREFIX:PATH=/usr/local + +//Path to a program. +CMAKE_LINKER:FILEPATH=/usr/bin/ld + +//Path to a program. +CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/make + +//Flags used by the linker during the creation of modules during +// all build types. +CMAKE_MODULE_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of modules during +// DEBUG builds. +CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of modules during +// MINSIZEREL builds. +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of modules during +// RELEASE builds. +CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of modules during +// RELWITHDEBINFO builds. +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_NM:FILEPATH=/usr/bin/nm + +//Path to a program. +CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy + +//Path to a program. +CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump + +//Value Computed by CMake +CMAKE_PROJECT_DESCRIPTION:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_HOMEPAGE_URL:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_NAME:STATIC=ThrustTestInstall + +//Path to a program. +CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib + +//Path to a program. +CMAKE_READELF:FILEPATH=/usr/bin/readelf + +//Flags used by the linker during the creation of shared libraries +// during all build types. +CMAKE_SHARED_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of shared libraries +// during DEBUG builds. +CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of shared libraries +// during MINSIZEREL builds. +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELEASE builds. +CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELWITHDEBINFO builds. +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//If set, runtime paths are not added when installing shared libraries, +// but are added when building. +CMAKE_SKIP_INSTALL_RPATH:BOOL=NO + +//If set, runtime paths are not added when using shared libraries. +CMAKE_SKIP_RPATH:BOOL=NO + +//Flags used by the linker during the creation of static libraries +// during all build types. +CMAKE_STATIC_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of static libraries +// during DEBUG builds. +CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of static libraries +// during MINSIZEREL builds. +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELEASE builds. +CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELWITHDEBINFO builds. +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_STRIP:FILEPATH=/usr/bin/strip + +//If this value is on, makefiles will be generated without the +// .SILENT directive, and all commands will be echoed to the console +// during the make. This is useful for debugging only. With Visual +// Studio IDE projects all commands are done without /nologo. +CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE + +//The directory containing a CMake configuration file for CUB. +CUB_DIR:PATH=CUB_DIR-NOTFOUND + +//No help, variable specified on the command line. +THRUST_BINARY_DIR:UNINITIALIZED=/home/ubuntu/thrust/build + +//Value Computed by CMake +ThrustTestInstall_BINARY_DIR:STATIC=/home/ubuntu/thrust/build/testing/cmake/test_install + +//Value Computed by CMake +ThrustTestInstall_IS_TOP_LEVEL:STATIC=ON + +//Value Computed by CMake +ThrustTestInstall_SOURCE_DIR:STATIC=/home/ubuntu/thrust/testing/cmake/test_install + +//The directory containing a CMake configuration file for Thrust. +Thrust_DIR:PATH=/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/lib/cmake/thrust + +//The directory containing a CMake configuration file for libcudacxx. +libcudacxx_DIR:PATH=/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/lib/cmake/libcudacxx + + +######################## +# INTERNAL cache entries +######################## + +//ADVANCED property for variable: CMAKE_ADDR2LINE +CMAKE_ADDR2LINE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_AR +CMAKE_AR-ADVANCED:INTERNAL=1 +//This is the directory where this CMakeCache.txt was created +CMAKE_CACHEFILE_DIR:INTERNAL=/home/ubuntu/thrust/build/testing/cmake/test_install +//Major version of cmake used to create the current loaded cache +CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 +//Minor version of cmake used to create the current loaded cache +CMAKE_CACHE_MINOR_VERSION:INTERNAL=26 +//Patch version of cmake used to create the current loaded cache +CMAKE_CACHE_PATCH_VERSION:INTERNAL=4 +//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE +CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1 +//Path to CMake executable. +CMAKE_COMMAND:INTERNAL=/usr/bin/cmake +//Path to cpack program executable. +CMAKE_CPACK_COMMAND:INTERNAL=/usr/bin/cpack +//Path to ctest program executable. +CMAKE_CTEST_COMMAND:INTERNAL=/usr/bin/ctest +//ADVANCED property for variable: CMAKE_CUDA_COMPILER +CMAKE_CUDA_COMPILER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CUDA_FLAGS +CMAKE_CUDA_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CUDA_FLAGS_DEBUG +CMAKE_CUDA_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CUDA_FLAGS_MINSIZEREL +CMAKE_CUDA_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CUDA_FLAGS_RELEASE +CMAKE_CUDA_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CUDA_FLAGS_RELWITHDEBINFO +CMAKE_CUDA_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER +CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR +CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB +CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS +CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG +CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL +CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE +CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO +CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_DLLTOOL +CMAKE_DLLTOOL-ADVANCED:INTERNAL=1 +//Executable file format +CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS +CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG +CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE +CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS +CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1 +//Name of external makefile project generator. +CMAKE_EXTRA_GENERATOR:INTERNAL= +//Name of generator. +CMAKE_GENERATOR:INTERNAL=Unix Makefiles +//Generator instance identifier. +CMAKE_GENERATOR_INSTANCE:INTERNAL= +//Name of generator platform. +CMAKE_GENERATOR_PLATFORM:INTERNAL= +//Name of generator toolset. +CMAKE_GENERATOR_TOOLSET:INTERNAL= +//Source directory with the top level CMakeLists.txt file for this +// project +CMAKE_HOME_DIRECTORY:INTERNAL=/home/ubuntu/thrust/testing/cmake/test_install +//Install .so files without execute permission. +CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1 +//ADVANCED property for variable: CMAKE_LINKER +CMAKE_LINKER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MAKE_PROGRAM +CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS +CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG +CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE +CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_NM +CMAKE_NM-ADVANCED:INTERNAL=1 +//number of local generators +CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJCOPY +CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJDUMP +CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 +//Platform information initialized +CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_RANLIB +CMAKE_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_READELF +CMAKE_READELF-ADVANCED:INTERNAL=1 +//Path to CMake installation. +CMAKE_ROOT:INTERNAL=/usr/share/cmake-3.26 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS +CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG +CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE +CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH +CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_RPATH +CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS +CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG +CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE +CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STRIP +CMAKE_STRIP-ADVANCED:INTERNAL=1 +//uname command +CMAKE_UNAME:INTERNAL=/usr/bin/uname +//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE +CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 +//Details about finding libcudacxx +FIND_PACKAGE_MESSAGE_DETAILS_libcudacxx:INTERNAL=[/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/lib/cmake/libcudacxx/libcudacxx-config.cmake][v1.8.1.0(1.8.0)] +LIBCUDACXX_VERSION:INTERNAL=1.8.1.0 +LIBCUDACXX_VERSION_COUNT:INTERNAL=4 +LIBCUDACXX_VERSION_MAJOR:INTERNAL=1 +LIBCUDACXX_VERSION_MINOR:INTERNAL=8 +LIBCUDACXX_VERSION_PATCH:INTERNAL=1 +LIBCUDACXX_VERSION_TWEAK:INTERNAL=0 +//Valid Thrust device systems +THRUST_DEVICE_SYSTEM_OPTIONS:INTERNAL=CUDA;CPP;OMP;TBB +//Valid Thrust host systems. +THRUST_HOST_SYSTEM_OPTIONS:INTERNAL=CPP;OMP;TBB +THRUST_VERSION:INTERNAL=2.2.0.0 +THRUST_VERSION_COUNT:INTERNAL=4 +THRUST_VERSION_MAJOR:INTERNAL=2 +THRUST_VERSION_MINOR:INTERNAL=2 +THRUST_VERSION_PATCH:INTERNAL=0 +THRUST_VERSION_TWEAK:INTERNAL=0 +//libcudacxx version used by Thrust +THRUST_libcudacxx_VERSION:INTERNAL=1.8.1.0 +//linker supports push/pop state +_CMAKE_LINKER_PUSHPOP_STATE_SUPPORTED:INTERNAL=TRUE +//Location of thrust-config.cmake +_THRUST_CMAKE_DIR:INTERNAL=/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/lib/cmake/thrust +//Location of Thrust headers. +_THRUST_INCLUDE_DIR:INTERNAL=/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include +//Location of libcudacxx headers. +_libcudacxx_INCLUDE_DIR:INTERNAL=/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include +//Path to a file. +_libcudacxx_VERSION_INCLUDE_DIR:INTERNAL=/home/ubuntu/thrust/build/testing/cmake/test_install/install_prefix/include + diff --git a/build/testing/cmake/test_install/CMakeFiles/3.26.4/CMakeCUDACompiler.cmake b/build/testing/cmake/test_install/CMakeFiles/3.26.4/CMakeCUDACompiler.cmake new file mode 100644 index 0000000000000000000000000000000000000000..384ab0854685b566d4eb1d15ce54ab5940ac553f --- /dev/null +++ b/build/testing/cmake/test_install/CMakeFiles/3.26.4/CMakeCUDACompiler.cmake @@ -0,0 +1,75 @@ +set(CMAKE_CUDA_COMPILER "/usr/bin/nvcc") +set(CMAKE_CUDA_HOST_COMPILER "") +set(CMAKE_CUDA_HOST_LINK_LAUNCHER "/usr/lib/nvidia-cuda-toolkit/bin/g++") +set(CMAKE_CUDA_COMPILER_ID "NVIDIA") +set(CMAKE_CUDA_COMPILER_VERSION "11.8.89") +set(CMAKE_CUDA_DEVICE_LINKER "/usr/bin/nvlink") +set(CMAKE_CUDA_FATBINARY "/usr/bin/fatbinary") +set(CMAKE_CUDA_STANDARD_COMPUTED_DEFAULT "14") +set(CMAKE_CUDA_EXTENSIONS_COMPUTED_DEFAULT "ON") +set(CMAKE_CUDA_COMPILE_FEATURES "cuda_std_03;cuda_std_11;cuda_std_14;cuda_std_17") +set(CMAKE_CUDA03_COMPILE_FEATURES "cuda_std_03") +set(CMAKE_CUDA11_COMPILE_FEATURES "cuda_std_11") +set(CMAKE_CUDA14_COMPILE_FEATURES "cuda_std_14") +set(CMAKE_CUDA17_COMPILE_FEATURES "cuda_std_17") +set(CMAKE_CUDA20_COMPILE_FEATURES "") +set(CMAKE_CUDA23_COMPILE_FEATURES "") + +set(CMAKE_CUDA_PLATFORM_ID "Linux") +set(CMAKE_CUDA_SIMULATE_ID "GNU") +set(CMAKE_CUDA_COMPILER_FRONTEND_VARIANT "") +set(CMAKE_CUDA_SIMULATE_VERSION "9.4") + + + +set(CMAKE_CUDA_COMPILER_ENV_VAR "CUDACXX") +set(CMAKE_CUDA_HOST_COMPILER_ENV_VAR "CUDAHOSTCXX") + +set(CMAKE_CUDA_COMPILER_LOADED 1) +set(CMAKE_CUDA_COMPILER_ID_RUN 1) +set(CMAKE_CUDA_SOURCE_FILE_EXTENSIONS cu) +set(CMAKE_CUDA_LINKER_PREFERENCE 15) +set(CMAKE_CUDA_LINKER_PREFERENCE_PROPAGATES 1) + +set(CMAKE_CUDA_SIZEOF_DATA_PTR "8") +set(CMAKE_CUDA_COMPILER_ABI "ELF") +set(CMAKE_CUDA_BYTE_ORDER "LITTLE_ENDIAN") +set(CMAKE_CUDA_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") + +if(CMAKE_CUDA_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_CUDA_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_CUDA_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CUDA_COMPILER_ABI}") +endif() + +if(CMAKE_CUDA_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") +endif() + +set(CMAKE_CUDA_COMPILER_TOOLKIT_ROOT "/usr") +set(CMAKE_CUDA_COMPILER_TOOLKIT_LIBRARY_ROOT "/usr/lib/nvidia-cuda-toolkit") +set(CMAKE_CUDA_COMPILER_TOOLKIT_VERSION "11.8.89") +set(CMAKE_CUDA_COMPILER_LIBRARY_ROOT "/usr/lib/cuda") + +set(CMAKE_CUDA_ARCHITECTURES_ALL "35-real;37-real;50-real;52-real;53-real;60-real;61-real;62-real;70-real;72-real;75-real;80-real;86-real;87-real;89-real;90") +set(CMAKE_CUDA_ARCHITECTURES_ALL_MAJOR "35-real;50-real;60-real;70-real;80-real;90") +set(CMAKE_CUDA_ARCHITECTURES_NATIVE "86-real") + +set(CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES "") + +set(CMAKE_CUDA_HOST_IMPLICIT_LINK_LIBRARIES "") +set(CMAKE_CUDA_HOST_IMPLICIT_LINK_DIRECTORIES "/usr/lib/x86_64-linux-gnu/stubs;/usr/lib/x86_64-linux-gnu") +set(CMAKE_CUDA_HOST_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") + +set(CMAKE_CUDA_IMPLICIT_INCLUDE_DIRECTORIES "/usr/include/c++/9;/usr/include/x86_64-linux-gnu/c++/9;/usr/include/c++/9/backward;/usr/lib/gcc/x86_64-linux-gnu/9/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include") +set(CMAKE_CUDA_IMPLICIT_LINK_LIBRARIES "stdc++;m;gcc_s;gcc;c;gcc_s;gcc") +set(CMAKE_CUDA_IMPLICIT_LINK_DIRECTORIES "/usr/lib/x86_64-linux-gnu/stubs;/usr/lib/x86_64-linux-gnu;/usr/lib/gcc/x86_64-linux-gnu/9;/usr/lib;/lib/x86_64-linux-gnu;/lib") +set(CMAKE_CUDA_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") + +set(CMAKE_CUDA_RUNTIME_LIBRARY_DEFAULT "STATIC") + +set(CMAKE_LINKER "/usr/bin/ld") +set(CMAKE_AR "/usr/bin/ar") +set(CMAKE_MT "") diff --git a/build/testing/cmake/test_install/CMakeFiles/3.26.4/CMakeCXXCompiler.cmake b/build/testing/cmake/test_install/CMakeFiles/3.26.4/CMakeCXXCompiler.cmake new file mode 100644 index 0000000000000000000000000000000000000000..9950db37fb622bd345960921fea167b3a6e753ec --- /dev/null +++ b/build/testing/cmake/test_install/CMakeFiles/3.26.4/CMakeCXXCompiler.cmake @@ -0,0 +1,83 @@ +set(CMAKE_CXX_COMPILER "/usr/bin/c++") +set(CMAKE_CXX_COMPILER_ARG1 "") +set(CMAKE_CXX_COMPILER_ID "GNU") +set(CMAKE_CXX_COMPILER_VERSION "9.4.0") +set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "") +set(CMAKE_CXX_COMPILER_WRAPPER "") +set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "14") +set(CMAKE_CXX_EXTENSIONS_COMPUTED_DEFAULT "ON") +set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17;cxx_std_20") +set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters") +set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates") +set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") +set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17") +set(CMAKE_CXX20_COMPILE_FEATURES "cxx_std_20") +set(CMAKE_CXX23_COMPILE_FEATURES "") + +set(CMAKE_CXX_PLATFORM_ID "Linux") +set(CMAKE_CXX_SIMULATE_ID "") +set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "GNU") +set(CMAKE_CXX_SIMULATE_VERSION "") + + + + +set(CMAKE_AR "/usr/bin/ar") +set(CMAKE_CXX_COMPILER_AR "/usr/bin/gcc-ar-9") +set(CMAKE_RANLIB "/usr/bin/ranlib") +set(CMAKE_CXX_COMPILER_RANLIB "/usr/bin/gcc-ranlib-9") +set(CMAKE_LINKER "/usr/bin/ld") +set(CMAKE_MT "") +set(CMAKE_COMPILER_IS_GNUCXX 1) +set(CMAKE_CXX_COMPILER_LOADED 1) +set(CMAKE_CXX_COMPILER_WORKS TRUE) +set(CMAKE_CXX_ABI_COMPILED TRUE) + +set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") + +set(CMAKE_CXX_COMPILER_ID_RUN 1) +set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;mpp;CPP;ixx;cppm) +set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) + +foreach (lang C OBJC OBJCXX) + if (CMAKE_${lang}_COMPILER_ID_RUN) + foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS) + list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension}) + endforeach() + endif() +endforeach() + +set(CMAKE_CXX_LINKER_PREFERENCE 30) +set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) + +# Save compiler ABI information. +set(CMAKE_CXX_SIZEOF_DATA_PTR "8") +set(CMAKE_CXX_COMPILER_ABI "ELF") +set(CMAKE_CXX_BYTE_ORDER "LITTLE_ENDIAN") +set(CMAKE_CXX_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") + +if(CMAKE_CXX_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_CXX_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") +endif() + +if(CMAKE_CXX_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") +endif() + +set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "/usr/include/c++/9;/usr/include/x86_64-linux-gnu/c++/9;/usr/include/c++/9/backward;/usr/lib/gcc/x86_64-linux-gnu/9/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include") +set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;m;gcc_s;gcc;c;gcc_s;gcc") +set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/9;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib") +set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/build/testing/cmake/test_install/CMakeFiles/3.26.4/CMakeDetermineCompilerABI_CUDA.bin b/build/testing/cmake/test_install/CMakeFiles/3.26.4/CMakeDetermineCompilerABI_CUDA.bin new file mode 100644 index 0000000000000000000000000000000000000000..4d3f1d4b8bbe27ecb2ddee5a688dd91481c23653 --- /dev/null +++ b/build/testing/cmake/test_install/CMakeFiles/3.26.4/CMakeDetermineCompilerABI_CUDA.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b0f0c83bd3e0d74822d49c0d28d8b2c80dc24c4ab6054c30eb674de83d72dfd4 +size 827920 diff --git a/build/testing/cmake/test_install/CMakeFiles/3.26.4/CMakeDetermineCompilerABI_CXX.bin b/build/testing/cmake/test_install/CMakeFiles/3.26.4/CMakeDetermineCompilerABI_CXX.bin new file mode 100644 index 0000000000000000000000000000000000000000..649d83789279121b3d975e1143c4e2d95ae7abc3 --- /dev/null +++ b/build/testing/cmake/test_install/CMakeFiles/3.26.4/CMakeDetermineCompilerABI_CXX.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6bb49a6e3b472247bd27ffc68cd0d224f3289a274d06718131a95b0d05cf81dd +size 16680 diff --git a/build/testing/cmake/test_install/CMakeFiles/3.26.4/CMakeSystem.cmake b/build/testing/cmake/test_install/CMakeFiles/3.26.4/CMakeSystem.cmake new file mode 100644 index 0000000000000000000000000000000000000000..15159f02fdd55e2aec49011279c64f5758999a3d --- /dev/null +++ b/build/testing/cmake/test_install/CMakeFiles/3.26.4/CMakeSystem.cmake @@ -0,0 +1,15 @@ +set(CMAKE_HOST_SYSTEM "Linux-5.15.0-67-generic") +set(CMAKE_HOST_SYSTEM_NAME "Linux") +set(CMAKE_HOST_SYSTEM_VERSION "5.15.0-67-generic") +set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") + + + +set(CMAKE_SYSTEM "Linux-5.15.0-67-generic") +set(CMAKE_SYSTEM_NAME "Linux") +set(CMAKE_SYSTEM_VERSION "5.15.0-67-generic") +set(CMAKE_SYSTEM_PROCESSOR "x86_64") + +set(CMAKE_CROSSCOMPILING "FALSE") + +set(CMAKE_SYSTEM_LOADED 1) diff --git a/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/CMakeCUDACompilerId.cu b/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/CMakeCUDACompilerId.cu new file mode 100644 index 0000000000000000000000000000000000000000..42c992495c2ba4109a6e63f8ed5dda3a006fde9b --- /dev/null +++ b/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/CMakeCUDACompilerId.cu @@ -0,0 +1,468 @@ +#ifndef __CUDACC__ +# error "A C or C++ compiler has been selected for CUDA" +#endif + + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__NVCC__) +# define COMPILER_ID "NVIDIA" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# elif defined(__clang__) +# define SIMULATE_ID "Clang" +# elif defined(__GNUC__) +# define SIMULATE_ID "GNU" +# endif +# if defined(__CUDACC_VER_MAJOR__) +# define COMPILER_VERSION_MAJOR DEC(__CUDACC_VER_MAJOR__) +# define COMPILER_VERSION_MINOR DEC(__CUDACC_VER_MINOR__) +# define COMPILER_VERSION_PATCH DEC(__CUDACC_VER_BUILD__) +# endif +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# elif defined(__clang__) +# define SIMULATE_VERSION_MAJOR DEC(__clang_major__) +# define SIMULATE_VERSION_MINOR DEC(__clang_minor__) +# elif defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__MSYS__) +# define PLATFORM_ID "MSYS" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# elif defined(__VXWORKS__) +# define PLATFORM_ID "VxWorks" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#elif defined(__INTEGRITY) +# if defined(INT_178B) +# define PLATFORM_ID "Integrity178" + +# else /* regular Integrity */ +# define PLATFORM_ID "Integrity" +# endif + +# elif defined(_ADI_COMPILER) +# define PLATFORM_ID "ADSP" + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_ARM64EC) +# define ARCHITECTURE_ID "ARM64EC" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCRX__) +# define ARCHITECTURE_ID "RX" + +# elif defined(__ICCRH850__) +# define ARCHITECTURE_ID "RH850" + +# elif defined(__ICCRL78__) +# define ARCHITECTURE_ID "RL78" + +# elif defined(__ICCRISCV__) +# define ARCHITECTURE_ID "RISCV" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# elif defined(__ICC430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__ICCV850__) +# define ARCHITECTURE_ID "V850" + +# elif defined(__ICC8051__) +# define ARCHITECTURE_ID "8051" + +# elif defined(__ICCSTM8__) +# define ARCHITECTURE_ID "STM8" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__ghs__) +# if defined(__PPC64__) +# define ARCHITECTURE_ID "PPC64" + +# elif defined(__ppc__) +# define ARCHITECTURE_ID "PPC" + +# elif defined(__ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__x86_64__) +# define ARCHITECTURE_ID "x64" + +# elif defined(__i386__) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__TI_COMPILER_VERSION__) +# if defined(__TI_ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__MSP430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__TMS320C28XX__) +# define ARCHITECTURE_ID "TMS320C28x" + +# elif defined(__TMS320C6X__) || defined(_TMS320C6X) +# define ARCHITECTURE_ID "TMS320C6x" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +# elif defined(__ADSPSHARC__) +# define ARCHITECTURE_ID "SHARC" + +# elif defined(__ADSPBLACKFIN__) +# define ARCHITECTURE_ID "Blackfin" + +#elif defined(__TASKING__) + +# if defined(__CTC__) || defined(__CPTC__) +# define ARCHITECTURE_ID "TriCore" + +# elif defined(__CMCS__) +# define ARCHITECTURE_ID "MCS" + +# elif defined(__CARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__CARC__) +# define ARCHITECTURE_ID "ARC" + +# elif defined(__C51__) +# define ARCHITECTURE_ID "8051" + +# elif defined(__CPCP__) +# define ARCHITECTURE_ID "PCP" + +# else +# define ARCHITECTURE_ID "" +# endif + +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number. */ +#ifdef COMPILER_VERSION +char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]"; + +/* Construct a string literal encoding the version number components. */ +#elif defined(COMPILER_VERSION_MAJOR) +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#elif defined(COMPILER_VERSION_INTERNAL_STR) +char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]"; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + +const char* info_language_standard_default = "INFO" ":" "standard_default[" +#if __cplusplus > 202002L + "23" +#elif __cplusplus > 201703L + "20" +#elif __cplusplus >= 201703L + "17" +#elif __cplusplus >= 201402L + "14" +#elif __cplusplus >= 201103L + "11" +#else + "03" +#endif +"]"; + +const char* info_language_extensions_default = "INFO" ":" "extensions_default[" +#if (defined(__clang__) || defined(__GNUC__)) && \ + !defined(__STRICT_ANSI__) + "ON" +#else + "OFF" +#endif +"]"; + +/*--------------------------------------------------------------------------*/ + +int main(int argc, char* argv[]) +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif + require += info_language_standard_default[argc]; + require += info_language_extensions_default[argc]; + (void)argv; + return require; +} diff --git a/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/a.out b/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/a.out new file mode 100644 index 0000000000000000000000000000000000000000..e48ec81b2ca740f3e6b1f39b0e37f939704d8155 Binary files /dev/null and b/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/a.out differ diff --git a/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cpp1.ii b/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cpp1.ii new file mode 100644 index 0000000000000000000000000000000000000000..b6f2294531f591d54fcc675ce282faa493e2799f --- /dev/null +++ b/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cpp1.ii @@ -0,0 +1,23526 @@ +# 1 "CMakeCUDACompilerId.cu" +# 1 "" +# 1 "" +# 1 "/usr/include/stdc-predef.h" 1 3 4 +# 1 "" 2 +# 1 "/usr/include/cuda_runtime.h" 1 3 4 +# 61 "/usr/include/cuda_runtime.h" 3 4 +#pragma GCC diagnostic push + + +#pragma GCC diagnostic ignored "-Wunused-function" +# 83 "/usr/include/cuda_runtime.h" 3 4 +# 1 "/usr/include/crt/host_config.h" 1 3 4 +# 201 "/usr/include/crt/host_config.h" 3 4 +# 1 "/usr/include/features.h" 1 3 4 +# 461 "/usr/include/features.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 1 3 4 +# 452 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 +# 453 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/long-double.h" 1 3 4 +# 454 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 2 3 4 +# 462 "/usr/include/features.h" 2 3 4 +# 485 "/usr/include/features.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 1 3 4 +# 10 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/gnu/stubs-64.h" 1 3 4 +# 11 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 2 3 4 +# 486 "/usr/include/features.h" 2 3 4 +# 202 "/usr/include/crt/host_config.h" 2 3 4 +# 84 "/usr/include/cuda_runtime.h" 2 3 4 + + + + + + + +# 1 "/usr/include/builtin_types.h" 1 3 4 +# 56 "/usr/include/builtin_types.h" 3 4 +# 1 "/usr/include/device_types.h" 1 3 4 +# 59 "/usr/include/device_types.h" 3 4 +# 1 "/usr/include/crt/host_defines.h" 1 3 4 +# 60 "/usr/include/device_types.h" 2 3 4 +# 68 "/usr/include/device_types.h" 3 4 + +# 68 "/usr/include/device_types.h" 3 4 +enum __attribute__((device_builtin)) cudaRoundMode +{ + cudaRoundNearest, + cudaRoundZero, + cudaRoundPosInf, + cudaRoundMinInf +}; +# 57 "/usr/include/builtin_types.h" 2 3 4 + + +# 1 "/usr/include/driver_types.h" 1 3 4 +# 59 "/usr/include/driver_types.h" 3 4 +# 1 "/usr/include/crt/host_defines.h" 1 3 4 +# 60 "/usr/include/driver_types.h" 2 3 4 + +# 1 "/usr/include/vector_types.h" 1 3 4 +# 65 "/usr/include/vector_types.h" 3 4 +# 1 "/usr/include/crt/host_defines.h" 1 3 4 +# 66 "/usr/include/vector_types.h" 2 3 4 +# 100 "/usr/include/vector_types.h" 3 4 +struct __attribute__((device_builtin)) char1 +{ + signed char x; +}; + +struct __attribute__((device_builtin)) uchar1 +{ + unsigned char x; +}; + + +struct __attribute__((device_builtin)) __attribute__((aligned(2))) char2 +{ + signed char x, y; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(2))) uchar2 +{ + unsigned char x, y; +}; + +struct __attribute__((device_builtin)) char3 +{ + signed char x, y, z; +}; + +struct __attribute__((device_builtin)) uchar3 +{ + unsigned char x, y, z; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(4))) char4 +{ + signed char x, y, z, w; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(4))) uchar4 +{ + unsigned char x, y, z, w; +}; + +struct __attribute__((device_builtin)) short1 +{ + short x; +}; + +struct __attribute__((device_builtin)) ushort1 +{ + unsigned short x; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(4))) short2 +{ + short x, y; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(4))) ushort2 +{ + unsigned short x, y; +}; + +struct __attribute__((device_builtin)) short3 +{ + short x, y, z; +}; + +struct __attribute__((device_builtin)) ushort3 +{ + unsigned short x, y, z; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(8))) short4 { short x; short y; short z; short w; }; +struct __attribute__((device_builtin)) __attribute__((aligned(8))) ushort4 { unsigned short x; unsigned short y; unsigned short z; unsigned short w; }; + +struct __attribute__((device_builtin)) int1 +{ + int x; +}; + +struct __attribute__((device_builtin)) uint1 +{ + unsigned int x; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(8))) int2 { int x; int y; }; +struct __attribute__((device_builtin)) __attribute__((aligned(8))) uint2 { unsigned int x; unsigned int y; }; + +struct __attribute__((device_builtin)) int3 +{ + int x, y, z; +}; + +struct __attribute__((device_builtin)) uint3 +{ + unsigned int x, y, z; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) int4 +{ + int x, y, z, w; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) uint4 +{ + unsigned int x, y, z, w; +}; + +struct __attribute__((device_builtin)) long1 +{ + long int x; +}; + +struct __attribute__((device_builtin)) ulong1 +{ + unsigned long x; +}; + + + + + + +struct __attribute__((device_builtin)) __attribute__((aligned(2*sizeof(long int)))) long2 +{ + long int x, y; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(2*sizeof(unsigned long int)))) ulong2 +{ + unsigned long int x, y; +}; + + + +struct __attribute__((device_builtin)) long3 +{ + long int x, y, z; +}; + +struct __attribute__((device_builtin)) ulong3 +{ + unsigned long int x, y, z; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) long4 +{ + long int x, y, z, w; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) ulong4 +{ + unsigned long int x, y, z, w; +}; + +struct __attribute__((device_builtin)) float1 +{ + float x; +}; +# 276 "/usr/include/vector_types.h" 3 4 +struct __attribute__((device_builtin)) __attribute__((aligned(8))) float2 { float x; float y; }; + + + + +struct __attribute__((device_builtin)) float3 +{ + float x, y, z; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) float4 +{ + float x, y, z, w; +}; + +struct __attribute__((device_builtin)) longlong1 +{ + long long int x; +}; + +struct __attribute__((device_builtin)) ulonglong1 +{ + unsigned long long int x; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) longlong2 +{ + long long int x, y; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) ulonglong2 +{ + unsigned long long int x, y; +}; + +struct __attribute__((device_builtin)) longlong3 +{ + long long int x, y, z; +}; + +struct __attribute__((device_builtin)) ulonglong3 +{ + unsigned long long int x, y, z; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) longlong4 +{ + long long int x, y, z ,w; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) ulonglong4 +{ + unsigned long long int x, y, z, w; +}; + +struct __attribute__((device_builtin)) double1 +{ + double x; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) double2 +{ + double x, y; +}; + +struct __attribute__((device_builtin)) double3 +{ + double x, y, z; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) double4 +{ + double x, y, z, w; +}; +# 363 "/usr/include/vector_types.h" 3 4 +typedef __attribute__((device_builtin)) struct char1 char1; +typedef __attribute__((device_builtin)) struct uchar1 uchar1; +typedef __attribute__((device_builtin)) struct char2 char2; +typedef __attribute__((device_builtin)) struct uchar2 uchar2; +typedef __attribute__((device_builtin)) struct char3 char3; +typedef __attribute__((device_builtin)) struct uchar3 uchar3; +typedef __attribute__((device_builtin)) struct char4 char4; +typedef __attribute__((device_builtin)) struct uchar4 uchar4; +typedef __attribute__((device_builtin)) struct short1 short1; +typedef __attribute__((device_builtin)) struct ushort1 ushort1; +typedef __attribute__((device_builtin)) struct short2 short2; +typedef __attribute__((device_builtin)) struct ushort2 ushort2; +typedef __attribute__((device_builtin)) struct short3 short3; +typedef __attribute__((device_builtin)) struct ushort3 ushort3; +typedef __attribute__((device_builtin)) struct short4 short4; +typedef __attribute__((device_builtin)) struct ushort4 ushort4; +typedef __attribute__((device_builtin)) struct int1 int1; +typedef __attribute__((device_builtin)) struct uint1 uint1; +typedef __attribute__((device_builtin)) struct int2 int2; +typedef __attribute__((device_builtin)) struct uint2 uint2; +typedef __attribute__((device_builtin)) struct int3 int3; +typedef __attribute__((device_builtin)) struct uint3 uint3; +typedef __attribute__((device_builtin)) struct int4 int4; +typedef __attribute__((device_builtin)) struct uint4 uint4; +typedef __attribute__((device_builtin)) struct long1 long1; +typedef __attribute__((device_builtin)) struct ulong1 ulong1; +typedef __attribute__((device_builtin)) struct long2 long2; +typedef __attribute__((device_builtin)) struct ulong2 ulong2; +typedef __attribute__((device_builtin)) struct long3 long3; +typedef __attribute__((device_builtin)) struct ulong3 ulong3; +typedef __attribute__((device_builtin)) struct long4 long4; +typedef __attribute__((device_builtin)) struct ulong4 ulong4; +typedef __attribute__((device_builtin)) struct float1 float1; +typedef __attribute__((device_builtin)) struct float2 float2; +typedef __attribute__((device_builtin)) struct float3 float3; +typedef __attribute__((device_builtin)) struct float4 float4; +typedef __attribute__((device_builtin)) struct longlong1 longlong1; +typedef __attribute__((device_builtin)) struct ulonglong1 ulonglong1; +typedef __attribute__((device_builtin)) struct longlong2 longlong2; +typedef __attribute__((device_builtin)) struct ulonglong2 ulonglong2; +typedef __attribute__((device_builtin)) struct longlong3 longlong3; +typedef __attribute__((device_builtin)) struct ulonglong3 ulonglong3; +typedef __attribute__((device_builtin)) struct longlong4 longlong4; +typedef __attribute__((device_builtin)) struct ulonglong4 ulonglong4; +typedef __attribute__((device_builtin)) struct double1 double1; +typedef __attribute__((device_builtin)) struct double2 double2; +typedef __attribute__((device_builtin)) struct double3 double3; +typedef __attribute__((device_builtin)) struct double4 double4; + + + + + + + +struct __attribute__((device_builtin)) dim3 +{ + unsigned int x, y, z; + + + __attribute__((host)) __attribute__((device)) constexpr dim3(unsigned int vx = 1, unsigned int vy = 1, unsigned int vz = 1) : x(vx), y(vy), z(vz) {} + __attribute__((host)) __attribute__((device)) constexpr dim3(uint3 v) : x(v.x), y(v.y), z(v.z) {} + __attribute__((host)) __attribute__((device)) constexpr operator uint3(void) const { return uint3{x, y, z}; } + + + + + + +}; + +typedef __attribute__((device_builtin)) struct dim3 dim3; +# 62 "/usr/include/driver_types.h" 2 3 4 +# 81 "/usr/include/driver_types.h" 3 4 +# 1 "/usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h" 1 3 4 +# 34 "/usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h" 3 4 +# 1 "/usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h" 1 3 4 + + + + + + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h" 1 3 4 +# 194 "/usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h" 3 4 +# 1 "/usr/include/limits.h" 1 3 4 +# 26 "/usr/include/limits.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/libc-header-start.h" 1 3 4 +# 27 "/usr/include/limits.h" 2 3 4 +# 183 "/usr/include/limits.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 1 3 4 +# 27 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 +# 28 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 2 3 4 +# 161 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/local_lim.h" 1 3 4 +# 38 "/usr/include/x86_64-linux-gnu/bits/local_lim.h" 3 4 +# 1 "/usr/include/linux/limits.h" 1 3 4 +# 39 "/usr/include/x86_64-linux-gnu/bits/local_lim.h" 2 3 4 +# 162 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 2 3 4 +# 184 "/usr/include/limits.h" 2 3 4 + + + +# 1 "/usr/include/x86_64-linux-gnu/bits/posix2_lim.h" 1 3 4 +# 188 "/usr/include/limits.h" 2 3 4 + + + +# 1 "/usr/include/x86_64-linux-gnu/bits/xopen_lim.h" 1 3 4 +# 64 "/usr/include/x86_64-linux-gnu/bits/xopen_lim.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/uio_lim.h" 1 3 4 +# 65 "/usr/include/x86_64-linux-gnu/bits/xopen_lim.h" 2 3 4 +# 192 "/usr/include/limits.h" 2 3 4 +# 195 "/usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h" 2 3 4 +# 8 "/usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h" 2 3 4 +# 35 "/usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h" 2 3 4 +# 82 "/usr/include/driver_types.h" 2 3 4 +# 1 "/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h" 1 3 4 +# 143 "/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h" 3 4 +typedef long int ptrdiff_t; +# 209 "/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h" 3 4 +typedef long unsigned int size_t; +# 415 "/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h" 3 4 +typedef struct { + long long __max_align_ll __attribute__((__aligned__(__alignof__(long long)))); + long double __max_align_ld __attribute__((__aligned__(__alignof__(long double)))); +# 426 "/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h" 3 4 +} max_align_t; + + + + + + + typedef decltype(nullptr) nullptr_t; +# 83 "/usr/include/driver_types.h" 2 3 4 +# 202 "/usr/include/driver_types.h" 3 4 +enum __attribute__((device_builtin)) cudaError +{ + + + + + + cudaSuccess = 0, + + + + + + cudaErrorInvalidValue = 1, + + + + + + cudaErrorMemoryAllocation = 2, + + + + + + cudaErrorInitializationError = 3, + + + + + + + cudaErrorCudartUnloading = 4, + + + + + + + cudaErrorProfilerDisabled = 5, + + + + + + + + cudaErrorProfilerNotInitialized = 6, + + + + + + + cudaErrorProfilerAlreadyStarted = 7, + + + + + + + cudaErrorProfilerAlreadyStopped = 8, +# 272 "/usr/include/driver_types.h" 3 4 + cudaErrorInvalidConfiguration = 9, + + + + + + cudaErrorInvalidPitchValue = 12, + + + + + + cudaErrorInvalidSymbol = 13, + + + + + + + + cudaErrorInvalidHostPointer = 16, + + + + + + + + cudaErrorInvalidDevicePointer = 17, + + + + + + cudaErrorInvalidTexture = 18, + + + + + + cudaErrorInvalidTextureBinding = 19, + + + + + + + cudaErrorInvalidChannelDescriptor = 20, + + + + + + cudaErrorInvalidMemcpyDirection = 21, +# 335 "/usr/include/driver_types.h" 3 4 + cudaErrorAddressOfConstant = 22, +# 344 "/usr/include/driver_types.h" 3 4 + cudaErrorTextureFetchFailed = 23, +# 353 "/usr/include/driver_types.h" 3 4 + cudaErrorTextureNotBound = 24, +# 362 "/usr/include/driver_types.h" 3 4 + cudaErrorSynchronizationError = 25, + + + + + + cudaErrorInvalidFilterSetting = 26, + + + + + + cudaErrorInvalidNormSetting = 27, + + + + + + + + cudaErrorMixedDeviceExecution = 28, + + + + + + + + cudaErrorNotYetImplemented = 31, +# 399 "/usr/include/driver_types.h" 3 4 + cudaErrorMemoryValueTooLarge = 32, + + + + + + + cudaErrorStubLibrary = 34, + + + + + + + cudaErrorInsufficientDriver = 35, + + + + + + + cudaErrorCallRequiresNewerDriver = 36, + + + + + + cudaErrorInvalidSurface = 37, + + + + + + cudaErrorDuplicateVariableName = 43, + + + + + + cudaErrorDuplicateTextureName = 44, + + + + + + cudaErrorDuplicateSurfaceName = 45, +# 454 "/usr/include/driver_types.h" 3 4 + cudaErrorDevicesUnavailable = 46, +# 467 "/usr/include/driver_types.h" 3 4 + cudaErrorIncompatibleDriverContext = 49, + + + + + + cudaErrorMissingConfiguration = 52, +# 482 "/usr/include/driver_types.h" 3 4 + cudaErrorPriorLaunchFailure = 53, + + + + + + + cudaErrorLaunchMaxDepthExceeded = 65, + + + + + + + + cudaErrorLaunchFileScopedTex = 66, + + + + + + + + cudaErrorLaunchFileScopedSurf = 67, +# 520 "/usr/include/driver_types.h" 3 4 + cudaErrorSyncDepthExceeded = 68, +# 532 "/usr/include/driver_types.h" 3 4 + cudaErrorLaunchPendingCountExceeded = 69, + + + + + + cudaErrorInvalidDeviceFunction = 98, + + + + + + cudaErrorNoDevice = 100, + + + + + + + cudaErrorInvalidDevice = 101, + + + + + cudaErrorDeviceNotLicensed = 102, +# 565 "/usr/include/driver_types.h" 3 4 + cudaErrorSoftwareValidityNotEstablished = 103, + + + + + cudaErrorStartupFailure = 127, + + + + + cudaErrorInvalidKernelImage = 200, +# 585 "/usr/include/driver_types.h" 3 4 + cudaErrorDeviceUninitialized = 201, + + + + + cudaErrorMapBufferObjectFailed = 205, + + + + + cudaErrorUnmapBufferObjectFailed = 206, + + + + + + cudaErrorArrayIsMapped = 207, + + + + + cudaErrorAlreadyMapped = 208, + + + + + + + + cudaErrorNoKernelImageForDevice = 209, + + + + + cudaErrorAlreadyAcquired = 210, + + + + + cudaErrorNotMapped = 211, + + + + + + cudaErrorNotMappedAsArray = 212, + + + + + + cudaErrorNotMappedAsPointer = 213, + + + + + + cudaErrorECCUncorrectable = 214, + + + + + + cudaErrorUnsupportedLimit = 215, + + + + + + cudaErrorDeviceAlreadyInUse = 216, + + + + + + cudaErrorPeerAccessUnsupported = 217, + + + + + + cudaErrorInvalidPtx = 218, + + + + + cudaErrorInvalidGraphicsContext = 219, + + + + + + cudaErrorNvlinkUncorrectable = 220, + + + + + + + cudaErrorJitCompilerNotFound = 221, + + + + + + + cudaErrorUnsupportedPtxVersion = 222, + + + + + + + cudaErrorJitCompilationDisabled = 223, + + + + + cudaErrorUnsupportedExecAffinity = 224, + + + + + cudaErrorInvalidSource = 300, + + + + + cudaErrorFileNotFound = 301, + + + + + cudaErrorSharedObjectSymbolNotFound = 302, + + + + + cudaErrorSharedObjectInitFailed = 303, + + + + + cudaErrorOperatingSystem = 304, + + + + + + + cudaErrorInvalidResourceHandle = 400, + + + + + + cudaErrorIllegalState = 401, + + + + + + + cudaErrorSymbolNotFound = 500, + + + + + + + + cudaErrorNotReady = 600, + + + + + + + + cudaErrorIllegalAddress = 700, +# 773 "/usr/include/driver_types.h" 3 4 + cudaErrorLaunchOutOfResources = 701, +# 784 "/usr/include/driver_types.h" 3 4 + cudaErrorLaunchTimeout = 702, + + + + + + cudaErrorLaunchIncompatibleTexturing = 703, + + + + + + + cudaErrorPeerAccessAlreadyEnabled = 704, + + + + + + + cudaErrorPeerAccessNotEnabled = 705, +# 817 "/usr/include/driver_types.h" 3 4 + cudaErrorSetOnActiveProcess = 708, + + + + + + + cudaErrorContextIsDestroyed = 709, + + + + + + + cudaErrorAssert = 710, + + + + + + + cudaErrorTooManyPeers = 711, + + + + + + cudaErrorHostMemoryAlreadyRegistered = 712, + + + + + + cudaErrorHostMemoryNotRegistered = 713, +# 859 "/usr/include/driver_types.h" 3 4 + cudaErrorHardwareStackError = 714, + + + + + + + + cudaErrorIllegalInstruction = 715, +# 876 "/usr/include/driver_types.h" 3 4 + cudaErrorMisalignedAddress = 716, +# 887 "/usr/include/driver_types.h" 3 4 + cudaErrorInvalidAddressSpace = 717, + + + + + + + + cudaErrorInvalidPc = 718, +# 906 "/usr/include/driver_types.h" 3 4 + cudaErrorLaunchFailure = 719, +# 915 "/usr/include/driver_types.h" 3 4 + cudaErrorCooperativeLaunchTooLarge = 720, + + + + + cudaErrorNotPermitted = 800, + + + + + + cudaErrorNotSupported = 801, +# 935 "/usr/include/driver_types.h" 3 4 + cudaErrorSystemNotReady = 802, + + + + + + + cudaErrorSystemDriverMismatch = 803, +# 951 "/usr/include/driver_types.h" 3 4 + cudaErrorCompatNotSupportedOnDevice = 804, + + + + + cudaErrorMpsConnectionFailed = 805, + + + + + cudaErrorMpsRpcFailure = 806, + + + + + + cudaErrorMpsServerNotReady = 807, + + + + + cudaErrorMpsMaxClientsReached = 808, + + + + + cudaErrorMpsMaxConnectionsReached = 809, + + + + + cudaErrorMpsClientTerminated = 810, + + + + + cudaErrorStreamCaptureUnsupported = 900, + + + + + + cudaErrorStreamCaptureInvalidated = 901, + + + + + + cudaErrorStreamCaptureMerge = 902, + + + + + cudaErrorStreamCaptureUnmatched = 903, + + + + + + cudaErrorStreamCaptureUnjoined = 904, + + + + + + + cudaErrorStreamCaptureIsolation = 905, + + + + + + cudaErrorStreamCaptureImplicit = 906, + + + + + + cudaErrorCapturedEvent = 907, + + + + + + + cudaErrorStreamCaptureWrongThread = 908, + + + + + cudaErrorTimeout = 909, + + + + + + cudaErrorGraphExecUpdateFailure = 910, +# 1057 "/usr/include/driver_types.h" 3 4 + cudaErrorExternalDevice = 911, + + + + + + cudaErrorInvalidClusterSize = 912, + + + + + cudaErrorUnknown = 999, + + + + + + + + cudaErrorApiFailureBase = 10000 +}; + + + + +enum __attribute__((device_builtin)) cudaChannelFormatKind +{ + cudaChannelFormatKindSigned = 0, + cudaChannelFormatKindUnsigned = 1, + cudaChannelFormatKindFloat = 2, + cudaChannelFormatKindNone = 3, + cudaChannelFormatKindNV12 = 4, + cudaChannelFormatKindUnsignedNormalized8X1 = 5, + cudaChannelFormatKindUnsignedNormalized8X2 = 6, + cudaChannelFormatKindUnsignedNormalized8X4 = 7, + cudaChannelFormatKindUnsignedNormalized16X1 = 8, + cudaChannelFormatKindUnsignedNormalized16X2 = 9, + cudaChannelFormatKindUnsignedNormalized16X4 = 10, + cudaChannelFormatKindSignedNormalized8X1 = 11, + cudaChannelFormatKindSignedNormalized8X2 = 12, + cudaChannelFormatKindSignedNormalized8X4 = 13, + cudaChannelFormatKindSignedNormalized16X1 = 14, + cudaChannelFormatKindSignedNormalized16X2 = 15, + cudaChannelFormatKindSignedNormalized16X4 = 16, + cudaChannelFormatKindUnsignedBlockCompressed1 = 17, + cudaChannelFormatKindUnsignedBlockCompressed1SRGB = 18, + cudaChannelFormatKindUnsignedBlockCompressed2 = 19, + cudaChannelFormatKindUnsignedBlockCompressed2SRGB = 20, + cudaChannelFormatKindUnsignedBlockCompressed3 = 21, + cudaChannelFormatKindUnsignedBlockCompressed3SRGB = 22, + cudaChannelFormatKindUnsignedBlockCompressed4 = 23, + cudaChannelFormatKindSignedBlockCompressed4 = 24, + cudaChannelFormatKindUnsignedBlockCompressed5 = 25, + cudaChannelFormatKindSignedBlockCompressed5 = 26, + cudaChannelFormatKindUnsignedBlockCompressed6H = 27, + cudaChannelFormatKindSignedBlockCompressed6H = 28, + cudaChannelFormatKindUnsignedBlockCompressed7 = 29, + cudaChannelFormatKindUnsignedBlockCompressed7SRGB = 30 +}; + + + + +struct __attribute__((device_builtin)) cudaChannelFormatDesc +{ + int x; + int y; + int z; + int w; + enum cudaChannelFormatKind f; +}; + + + + +typedef struct cudaArray *cudaArray_t; + + + + +typedef const struct cudaArray *cudaArray_const_t; + +struct cudaArray; + + + + +typedef struct cudaMipmappedArray *cudaMipmappedArray_t; + + + + +typedef const struct cudaMipmappedArray *cudaMipmappedArray_const_t; + +struct cudaMipmappedArray; +# 1161 "/usr/include/driver_types.h" 3 4 +struct __attribute__((device_builtin)) cudaArraySparseProperties { + struct { + unsigned int width; + unsigned int height; + unsigned int depth; + } tileExtent; + unsigned int miptailFirstLevel; + unsigned long long miptailSize; + unsigned int flags; + unsigned int reserved[4]; +}; + + + + +struct __attribute__((device_builtin)) cudaArrayMemoryRequirements { + size_t size; + size_t alignment; + unsigned int reserved[4]; +}; + + + + +enum __attribute__((device_builtin)) cudaMemoryType +{ + cudaMemoryTypeUnregistered = 0, + cudaMemoryTypeHost = 1, + cudaMemoryTypeDevice = 2, + cudaMemoryTypeManaged = 3 +}; + + + + +enum __attribute__((device_builtin)) cudaMemcpyKind +{ + cudaMemcpyHostToHost = 0, + cudaMemcpyHostToDevice = 1, + cudaMemcpyDeviceToHost = 2, + cudaMemcpyDeviceToDevice = 3, + cudaMemcpyDefault = 4 +}; + + + + + + +struct __attribute__((device_builtin)) cudaPitchedPtr +{ + void *ptr; + size_t pitch; + size_t xsize; + size_t ysize; +}; + + + + + + +struct __attribute__((device_builtin)) cudaExtent +{ + size_t width; + size_t height; + size_t depth; +}; + + + + + + +struct __attribute__((device_builtin)) cudaPos +{ + size_t x; + size_t y; + size_t z; +}; + + + + +struct __attribute__((device_builtin)) cudaMemcpy3DParms +{ + cudaArray_t srcArray; + struct cudaPos srcPos; + struct cudaPitchedPtr srcPtr; + + cudaArray_t dstArray; + struct cudaPos dstPos; + struct cudaPitchedPtr dstPtr; + + struct cudaExtent extent; + enum cudaMemcpyKind kind; +}; + + + + +struct __attribute__((device_builtin)) cudaMemcpy3DPeerParms +{ + cudaArray_t srcArray; + struct cudaPos srcPos; + struct cudaPitchedPtr srcPtr; + int srcDevice; + + cudaArray_t dstArray; + struct cudaPos dstPos; + struct cudaPitchedPtr dstPtr; + int dstDevice; + + struct cudaExtent extent; +}; + + + + +struct __attribute__((device_builtin)) cudaMemsetParams { + void *dst; + size_t pitch; + unsigned int value; + unsigned int elementSize; + size_t width; + size_t height; +}; + + + + +enum __attribute__((device_builtin)) cudaAccessProperty { + cudaAccessPropertyNormal = 0, + cudaAccessPropertyStreaming = 1, + cudaAccessPropertyPersisting = 2 +}; +# 1309 "/usr/include/driver_types.h" 3 4 +struct __attribute__((device_builtin)) cudaAccessPolicyWindow { + void *base_ptr; + size_t num_bytes; + float hitRatio; + enum cudaAccessProperty hitProp; + enum cudaAccessProperty missProp; +}; +# 1327 "/usr/include/driver_types.h" 3 4 +typedef void ( *cudaHostFn_t)(void *userData); + + + + +struct __attribute__((device_builtin)) cudaHostNodeParams { + cudaHostFn_t fn; + void* userData; +}; + + + + +enum __attribute__((device_builtin)) cudaStreamCaptureStatus { + cudaStreamCaptureStatusNone = 0, + cudaStreamCaptureStatusActive = 1, + cudaStreamCaptureStatusInvalidated = 2 + +}; + + + + + +enum __attribute__((device_builtin)) cudaStreamCaptureMode { + cudaStreamCaptureModeGlobal = 0, + cudaStreamCaptureModeThreadLocal = 1, + cudaStreamCaptureModeRelaxed = 2 +}; + +enum __attribute__((device_builtin)) cudaSynchronizationPolicy { + cudaSyncPolicyAuto = 1, + cudaSyncPolicySpin = 2, + cudaSyncPolicyYield = 3, + cudaSyncPolicyBlockingSync = 4 +}; + + + + +enum __attribute__((device_builtin)) cudaClusterSchedulingPolicy { + cudaClusterSchedulingPolicyDefault = 0, + cudaClusterSchedulingPolicySpread = 1, + cudaClusterSchedulingPolicyLoadBalancing = 2 +}; + + + + +enum __attribute__((device_builtin)) cudaStreamUpdateCaptureDependenciesFlags { + cudaStreamAddCaptureDependencies = 0x0, + cudaStreamSetCaptureDependencies = 0x1 +}; + + + + +enum __attribute__((device_builtin)) cudaUserObjectFlags { + cudaUserObjectNoDestructorSync = 0x1 +}; + + + + +enum __attribute__((device_builtin)) cudaUserObjectRetainFlags { + cudaGraphUserObjectMove = 0x1 +}; + + + + +struct cudaGraphicsResource; + + + + +enum __attribute__((device_builtin)) cudaGraphicsRegisterFlags +{ + cudaGraphicsRegisterFlagsNone = 0, + cudaGraphicsRegisterFlagsReadOnly = 1, + cudaGraphicsRegisterFlagsWriteDiscard = 2, + cudaGraphicsRegisterFlagsSurfaceLoadStore = 4, + cudaGraphicsRegisterFlagsTextureGather = 8 +}; + + + + +enum __attribute__((device_builtin)) cudaGraphicsMapFlags +{ + cudaGraphicsMapFlagsNone = 0, + cudaGraphicsMapFlagsReadOnly = 1, + cudaGraphicsMapFlagsWriteDiscard = 2 +}; + + + + +enum __attribute__((device_builtin)) cudaGraphicsCubeFace +{ + cudaGraphicsCubeFacePositiveX = 0x00, + cudaGraphicsCubeFaceNegativeX = 0x01, + cudaGraphicsCubeFacePositiveY = 0x02, + cudaGraphicsCubeFaceNegativeY = 0x03, + cudaGraphicsCubeFacePositiveZ = 0x04, + cudaGraphicsCubeFaceNegativeZ = 0x05 +}; + + + + +enum __attribute__((device_builtin)) cudaResourceType +{ + cudaResourceTypeArray = 0x00, + cudaResourceTypeMipmappedArray = 0x01, + cudaResourceTypeLinear = 0x02, + cudaResourceTypePitch2D = 0x03 +}; + + + + +enum __attribute__((device_builtin)) cudaResourceViewFormat +{ + cudaResViewFormatNone = 0x00, + cudaResViewFormatUnsignedChar1 = 0x01, + cudaResViewFormatUnsignedChar2 = 0x02, + cudaResViewFormatUnsignedChar4 = 0x03, + cudaResViewFormatSignedChar1 = 0x04, + cudaResViewFormatSignedChar2 = 0x05, + cudaResViewFormatSignedChar4 = 0x06, + cudaResViewFormatUnsignedShort1 = 0x07, + cudaResViewFormatUnsignedShort2 = 0x08, + cudaResViewFormatUnsignedShort4 = 0x09, + cudaResViewFormatSignedShort1 = 0x0a, + cudaResViewFormatSignedShort2 = 0x0b, + cudaResViewFormatSignedShort4 = 0x0c, + cudaResViewFormatUnsignedInt1 = 0x0d, + cudaResViewFormatUnsignedInt2 = 0x0e, + cudaResViewFormatUnsignedInt4 = 0x0f, + cudaResViewFormatSignedInt1 = 0x10, + cudaResViewFormatSignedInt2 = 0x11, + cudaResViewFormatSignedInt4 = 0x12, + cudaResViewFormatHalf1 = 0x13, + cudaResViewFormatHalf2 = 0x14, + cudaResViewFormatHalf4 = 0x15, + cudaResViewFormatFloat1 = 0x16, + cudaResViewFormatFloat2 = 0x17, + cudaResViewFormatFloat4 = 0x18, + cudaResViewFormatUnsignedBlockCompressed1 = 0x19, + cudaResViewFormatUnsignedBlockCompressed2 = 0x1a, + cudaResViewFormatUnsignedBlockCompressed3 = 0x1b, + cudaResViewFormatUnsignedBlockCompressed4 = 0x1c, + cudaResViewFormatSignedBlockCompressed4 = 0x1d, + cudaResViewFormatUnsignedBlockCompressed5 = 0x1e, + cudaResViewFormatSignedBlockCompressed5 = 0x1f, + cudaResViewFormatUnsignedBlockCompressed6H = 0x20, + cudaResViewFormatSignedBlockCompressed6H = 0x21, + cudaResViewFormatUnsignedBlockCompressed7 = 0x22 +}; + + + + +struct __attribute__((device_builtin)) cudaResourceDesc { + enum cudaResourceType resType; + + union { + struct { + cudaArray_t array; + } array; + struct { + cudaMipmappedArray_t mipmap; + } mipmap; + struct { + void *devPtr; + struct cudaChannelFormatDesc desc; + size_t sizeInBytes; + } linear; + struct { + void *devPtr; + struct cudaChannelFormatDesc desc; + size_t width; + size_t height; + size_t pitchInBytes; + } pitch2D; + } res; +}; + + + + +struct __attribute__((device_builtin)) cudaResourceViewDesc +{ + enum cudaResourceViewFormat format; + size_t width; + size_t height; + size_t depth; + unsigned int firstMipmapLevel; + unsigned int lastMipmapLevel; + unsigned int firstLayer; + unsigned int lastLayer; +}; + + + + +struct __attribute__((device_builtin)) cudaPointerAttributes +{ + + + + + enum cudaMemoryType type; +# 1551 "/usr/include/driver_types.h" 3 4 + int device; + + + + + + void *devicePointer; +# 1566 "/usr/include/driver_types.h" 3 4 + void *hostPointer; +}; + + + + +struct __attribute__((device_builtin)) cudaFuncAttributes +{ + + + + + + size_t sharedSizeBytes; + + + + + + size_t constSizeBytes; + + + + + size_t localSizeBytes; + + + + + + + int maxThreadsPerBlock; + + + + + int numRegs; + + + + + + + int ptxVersion; + + + + + + + int binaryVersion; + + + + + + int cacheModeCA; + + + + + + + int maxDynamicSharedSizeBytes; +# 1638 "/usr/include/driver_types.h" 3 4 + int preferredShmemCarveout; +}; + + + + +enum __attribute__((device_builtin)) cudaFuncAttribute +{ + cudaFuncAttributeMaxDynamicSharedMemorySize = 8, + cudaFuncAttributePreferredSharedMemoryCarveout = 9, + cudaFuncAttributeClusterDimMustBeSet = 10, + cudaFuncAttributeRequiredClusterWidth = 11, + cudaFuncAttributeRequiredClusterHeight = 12, + cudaFuncAttributeRequiredClusterDepth = 13, + cudaFuncAttributeNonPortableClusterSizeAllowed = 14, + cudaFuncAttributeClusterSchedulingPolicyPreference = 15, + cudaFuncAttributeMax +}; + + + + +enum __attribute__((device_builtin)) cudaFuncCache +{ + cudaFuncCachePreferNone = 0, + cudaFuncCachePreferShared = 1, + cudaFuncCachePreferL1 = 2, + cudaFuncCachePreferEqual = 3 +}; + + + + + +enum __attribute__((device_builtin)) cudaSharedMemConfig +{ + cudaSharedMemBankSizeDefault = 0, + cudaSharedMemBankSizeFourByte = 1, + cudaSharedMemBankSizeEightByte = 2 +}; + + + + +enum __attribute__((device_builtin)) cudaSharedCarveout { + cudaSharedmemCarveoutDefault = -1, + cudaSharedmemCarveoutMaxShared = 100, + cudaSharedmemCarveoutMaxL1 = 0 +}; + + + + +enum __attribute__((device_builtin)) cudaComputeMode +{ + cudaComputeModeDefault = 0, + cudaComputeModeExclusive = 1, + cudaComputeModeProhibited = 2, + cudaComputeModeExclusiveProcess = 3 +}; + + + + +enum __attribute__((device_builtin)) cudaLimit +{ + cudaLimitStackSize = 0x00, + cudaLimitPrintfFifoSize = 0x01, + cudaLimitMallocHeapSize = 0x02, + cudaLimitDevRuntimeSyncDepth = 0x03, + cudaLimitDevRuntimePendingLaunchCount = 0x04, + cudaLimitMaxL2FetchGranularity = 0x05, + cudaLimitPersistingL2CacheSize = 0x06 +}; + + + + +enum __attribute__((device_builtin)) cudaMemoryAdvise +{ + cudaMemAdviseSetReadMostly = 1, + cudaMemAdviseUnsetReadMostly = 2, + cudaMemAdviseSetPreferredLocation = 3, + cudaMemAdviseUnsetPreferredLocation = 4, + cudaMemAdviseSetAccessedBy = 5, + cudaMemAdviseUnsetAccessedBy = 6 +}; + + + + +enum __attribute__((device_builtin)) cudaMemRangeAttribute +{ + cudaMemRangeAttributeReadMostly = 1, + cudaMemRangeAttributePreferredLocation = 2, + cudaMemRangeAttributeAccessedBy = 3, + cudaMemRangeAttributeLastPrefetchLocation = 4 +}; + + + + +enum __attribute__((device_builtin)) cudaOutputMode +{ + cudaKeyValuePair = 0x00, + cudaCSV = 0x01 +}; + + + + +enum __attribute__((device_builtin)) cudaFlushGPUDirectRDMAWritesOptions { + cudaFlushGPUDirectRDMAWritesOptionHost = 1<<0, + cudaFlushGPUDirectRDMAWritesOptionMemOps = 1<<1 +}; + + + + +enum __attribute__((device_builtin)) cudaGPUDirectRDMAWritesOrdering { + cudaGPUDirectRDMAWritesOrderingNone = 0, + cudaGPUDirectRDMAWritesOrderingOwner = 100, + cudaGPUDirectRDMAWritesOrderingAllDevices = 200 +}; + + + + +enum __attribute__((device_builtin)) cudaFlushGPUDirectRDMAWritesScope { + cudaFlushGPUDirectRDMAWritesToOwner = 100, + cudaFlushGPUDirectRDMAWritesToAllDevices = 200 +}; + + + + +enum __attribute__((device_builtin)) cudaFlushGPUDirectRDMAWritesTarget { + cudaFlushGPUDirectRDMAWritesTargetCurrentDevice +}; + + + + + +enum __attribute__((device_builtin)) cudaDeviceAttr +{ + cudaDevAttrMaxThreadsPerBlock = 1, + cudaDevAttrMaxBlockDimX = 2, + cudaDevAttrMaxBlockDimY = 3, + cudaDevAttrMaxBlockDimZ = 4, + cudaDevAttrMaxGridDimX = 5, + cudaDevAttrMaxGridDimY = 6, + cudaDevAttrMaxGridDimZ = 7, + cudaDevAttrMaxSharedMemoryPerBlock = 8, + cudaDevAttrTotalConstantMemory = 9, + cudaDevAttrWarpSize = 10, + cudaDevAttrMaxPitch = 11, + cudaDevAttrMaxRegistersPerBlock = 12, + cudaDevAttrClockRate = 13, + cudaDevAttrTextureAlignment = 14, + cudaDevAttrGpuOverlap = 15, + cudaDevAttrMultiProcessorCount = 16, + cudaDevAttrKernelExecTimeout = 17, + cudaDevAttrIntegrated = 18, + cudaDevAttrCanMapHostMemory = 19, + cudaDevAttrComputeMode = 20, + cudaDevAttrMaxTexture1DWidth = 21, + cudaDevAttrMaxTexture2DWidth = 22, + cudaDevAttrMaxTexture2DHeight = 23, + cudaDevAttrMaxTexture3DWidth = 24, + cudaDevAttrMaxTexture3DHeight = 25, + cudaDevAttrMaxTexture3DDepth = 26, + cudaDevAttrMaxTexture2DLayeredWidth = 27, + cudaDevAttrMaxTexture2DLayeredHeight = 28, + cudaDevAttrMaxTexture2DLayeredLayers = 29, + cudaDevAttrSurfaceAlignment = 30, + cudaDevAttrConcurrentKernels = 31, + cudaDevAttrEccEnabled = 32, + cudaDevAttrPciBusId = 33, + cudaDevAttrPciDeviceId = 34, + cudaDevAttrTccDriver = 35, + cudaDevAttrMemoryClockRate = 36, + cudaDevAttrGlobalMemoryBusWidth = 37, + cudaDevAttrL2CacheSize = 38, + cudaDevAttrMaxThreadsPerMultiProcessor = 39, + cudaDevAttrAsyncEngineCount = 40, + cudaDevAttrUnifiedAddressing = 41, + cudaDevAttrMaxTexture1DLayeredWidth = 42, + cudaDevAttrMaxTexture1DLayeredLayers = 43, + cudaDevAttrMaxTexture2DGatherWidth = 45, + cudaDevAttrMaxTexture2DGatherHeight = 46, + cudaDevAttrMaxTexture3DWidthAlt = 47, + cudaDevAttrMaxTexture3DHeightAlt = 48, + cudaDevAttrMaxTexture3DDepthAlt = 49, + cudaDevAttrPciDomainId = 50, + cudaDevAttrTexturePitchAlignment = 51, + cudaDevAttrMaxTextureCubemapWidth = 52, + cudaDevAttrMaxTextureCubemapLayeredWidth = 53, + cudaDevAttrMaxTextureCubemapLayeredLayers = 54, + cudaDevAttrMaxSurface1DWidth = 55, + cudaDevAttrMaxSurface2DWidth = 56, + cudaDevAttrMaxSurface2DHeight = 57, + cudaDevAttrMaxSurface3DWidth = 58, + cudaDevAttrMaxSurface3DHeight = 59, + cudaDevAttrMaxSurface3DDepth = 60, + cudaDevAttrMaxSurface1DLayeredWidth = 61, + cudaDevAttrMaxSurface1DLayeredLayers = 62, + cudaDevAttrMaxSurface2DLayeredWidth = 63, + cudaDevAttrMaxSurface2DLayeredHeight = 64, + cudaDevAttrMaxSurface2DLayeredLayers = 65, + cudaDevAttrMaxSurfaceCubemapWidth = 66, + cudaDevAttrMaxSurfaceCubemapLayeredWidth = 67, + cudaDevAttrMaxSurfaceCubemapLayeredLayers = 68, + cudaDevAttrMaxTexture1DLinearWidth = 69, + cudaDevAttrMaxTexture2DLinearWidth = 70, + cudaDevAttrMaxTexture2DLinearHeight = 71, + cudaDevAttrMaxTexture2DLinearPitch = 72, + cudaDevAttrMaxTexture2DMipmappedWidth = 73, + cudaDevAttrMaxTexture2DMipmappedHeight = 74, + cudaDevAttrComputeCapabilityMajor = 75, + cudaDevAttrComputeCapabilityMinor = 76, + cudaDevAttrMaxTexture1DMipmappedWidth = 77, + cudaDevAttrStreamPrioritiesSupported = 78, + cudaDevAttrGlobalL1CacheSupported = 79, + cudaDevAttrLocalL1CacheSupported = 80, + cudaDevAttrMaxSharedMemoryPerMultiprocessor = 81, + cudaDevAttrMaxRegistersPerMultiprocessor = 82, + cudaDevAttrManagedMemory = 83, + cudaDevAttrIsMultiGpuBoard = 84, + cudaDevAttrMultiGpuBoardGroupID = 85, + cudaDevAttrHostNativeAtomicSupported = 86, + cudaDevAttrSingleToDoublePrecisionPerfRatio = 87, + cudaDevAttrPageableMemoryAccess = 88, + cudaDevAttrConcurrentManagedAccess = 89, + cudaDevAttrComputePreemptionSupported = 90, + cudaDevAttrCanUseHostPointerForRegisteredMem = 91, + cudaDevAttrReserved92 = 92, + cudaDevAttrReserved93 = 93, + cudaDevAttrReserved94 = 94, + cudaDevAttrCooperativeLaunch = 95, + cudaDevAttrCooperativeMultiDeviceLaunch = 96, + cudaDevAttrMaxSharedMemoryPerBlockOptin = 97, + cudaDevAttrCanFlushRemoteWrites = 98, + cudaDevAttrHostRegisterSupported = 99, + cudaDevAttrPageableMemoryAccessUsesHostPageTables = 100, + cudaDevAttrDirectManagedMemAccessFromHost = 101, + cudaDevAttrMaxBlocksPerMultiprocessor = 106, + cudaDevAttrMaxPersistingL2CacheSize = 108, + cudaDevAttrMaxAccessPolicyWindowSize = 109, + cudaDevAttrReservedSharedMemoryPerBlock = 111, + cudaDevAttrSparseCudaArraySupported = 112, + cudaDevAttrHostRegisterReadOnlySupported = 113, + cudaDevAttrTimelineSemaphoreInteropSupported = 114, + cudaDevAttrMaxTimelineSemaphoreInteropSupported = 114, + cudaDevAttrMemoryPoolsSupported = 115, + cudaDevAttrGPUDirectRDMASupported = 116, + cudaDevAttrGPUDirectRDMAFlushWritesOptions = 117, + cudaDevAttrGPUDirectRDMAWritesOrdering = 118, + cudaDevAttrMemoryPoolSupportedHandleTypes = 119, + cudaDevAttrClusterLaunch = 120, + cudaDevAttrDeferredMappingCudaArraySupported = 121, + cudaDevAttrMax +}; + + + + +enum __attribute__((device_builtin)) cudaMemPoolAttr +{ +# 1915 "/usr/include/driver_types.h" 3 4 + cudaMemPoolReuseFollowEventDependencies = 0x1, + + + + + + + cudaMemPoolReuseAllowOpportunistic = 0x2, + + + + + + + + cudaMemPoolReuseAllowInternalDependencies = 0x3, +# 1941 "/usr/include/driver_types.h" 3 4 + cudaMemPoolAttrReleaseThreshold = 0x4, + + + + + + cudaMemPoolAttrReservedMemCurrent = 0x5, + + + + + + + cudaMemPoolAttrReservedMemHigh = 0x6, + + + + + + cudaMemPoolAttrUsedMemCurrent = 0x7, + + + + + + + cudaMemPoolAttrUsedMemHigh = 0x8 +}; + + + + +enum __attribute__((device_builtin)) cudaMemLocationType { + cudaMemLocationTypeInvalid = 0, + cudaMemLocationTypeDevice = 1 +}; + + + + + + +struct __attribute__((device_builtin)) cudaMemLocation { + enum cudaMemLocationType type; + int id; +}; + + + + +enum __attribute__((device_builtin)) cudaMemAccessFlags { + cudaMemAccessFlagsProtNone = 0, + cudaMemAccessFlagsProtRead = 1, + cudaMemAccessFlagsProtReadWrite = 3 +}; + + + + +struct __attribute__((device_builtin)) cudaMemAccessDesc { + struct cudaMemLocation location; + enum cudaMemAccessFlags flags; +}; + + + + +enum __attribute__((device_builtin)) cudaMemAllocationType { + cudaMemAllocationTypeInvalid = 0x0, + + + + cudaMemAllocationTypePinned = 0x1, + cudaMemAllocationTypeMax = 0x7FFFFFFF +}; + + + + +enum __attribute__((device_builtin)) cudaMemAllocationHandleType { + cudaMemHandleTypeNone = 0x0, + cudaMemHandleTypePosixFileDescriptor = 0x1, + cudaMemHandleTypeWin32 = 0x2, + cudaMemHandleTypeWin32Kmt = 0x4 +}; + + + + +struct __attribute__((device_builtin)) cudaMemPoolProps { + enum cudaMemAllocationType allocType; + enum cudaMemAllocationHandleType handleTypes; + struct cudaMemLocation location; + + + + + + + void *win32SecurityAttributes; + unsigned char reserved[64]; +}; + + + + +struct __attribute__((device_builtin)) cudaMemPoolPtrExportData { + unsigned char reserved[64]; +}; + + + + +struct __attribute__((device_builtin)) cudaMemAllocNodeParams { + + + + + struct cudaMemPoolProps poolProps; + const struct cudaMemAccessDesc *accessDescs; + size_t accessDescCount; + size_t bytesize; + void *dptr; +}; + + + + +enum __attribute__((device_builtin)) cudaGraphMemAttributeType { + + + + + cudaGraphMemAttrUsedMemCurrent = 0x0, + + + + + + + cudaGraphMemAttrUsedMemHigh = 0x1, + + + + + + + cudaGraphMemAttrReservedMemCurrent = 0x2, + + + + + + + cudaGraphMemAttrReservedMemHigh = 0x3 +}; + + + + + +enum __attribute__((device_builtin)) cudaDeviceP2PAttr { + cudaDevP2PAttrPerformanceRank = 1, + cudaDevP2PAttrAccessSupported = 2, + cudaDevP2PAttrNativeAtomicSupported = 3, + cudaDevP2PAttrCudaArrayAccessSupported = 4 +}; + + + + + + +struct __attribute__((device_builtin)) CUuuid_st { + char bytes[16]; +}; +typedef __attribute__((device_builtin)) struct CUuuid_st CUuuid; + +typedef __attribute__((device_builtin)) struct CUuuid_st cudaUUID_t; + + + + +struct __attribute__((device_builtin)) cudaDeviceProp +{ + char name[256]; + cudaUUID_t uuid; + char luid[8]; + unsigned int luidDeviceNodeMask; + size_t totalGlobalMem; + size_t sharedMemPerBlock; + int regsPerBlock; + int warpSize; + size_t memPitch; + int maxThreadsPerBlock; + int maxThreadsDim[3]; + int maxGridSize[3]; + int clockRate; + size_t totalConstMem; + int major; + int minor; + size_t textureAlignment; + size_t texturePitchAlignment; + int deviceOverlap; + int multiProcessorCount; + int kernelExecTimeoutEnabled; + int integrated; + int canMapHostMemory; + int computeMode; + int maxTexture1D; + int maxTexture1DMipmap; + int maxTexture1DLinear; + int maxTexture2D[2]; + int maxTexture2DMipmap[2]; + int maxTexture2DLinear[3]; + int maxTexture2DGather[2]; + int maxTexture3D[3]; + int maxTexture3DAlt[3]; + int maxTextureCubemap; + int maxTexture1DLayered[2]; + int maxTexture2DLayered[3]; + int maxTextureCubemapLayered[2]; + int maxSurface1D; + int maxSurface2D[2]; + int maxSurface3D[3]; + int maxSurface1DLayered[2]; + int maxSurface2DLayered[3]; + int maxSurfaceCubemap; + int maxSurfaceCubemapLayered[2]; + size_t surfaceAlignment; + int concurrentKernels; + int ECCEnabled; + int pciBusID; + int pciDeviceID; + int pciDomainID; + int tccDriver; + int asyncEngineCount; + int unifiedAddressing; + int memoryClockRate; + int memoryBusWidth; + int l2CacheSize; + int persistingL2CacheMaxSize; + int maxThreadsPerMultiProcessor; + int streamPrioritiesSupported; + int globalL1CacheSupported; + int localL1CacheSupported; + size_t sharedMemPerMultiprocessor; + int regsPerMultiprocessor; + int managedMemory; + int isMultiGpuBoard; + int multiGpuBoardGroupID; + int hostNativeAtomicSupported; + int singleToDoublePrecisionPerfRatio; + int pageableMemoryAccess; + int concurrentManagedAccess; + int computePreemptionSupported; + int canUseHostPointerForRegisteredMem; + int cooperativeLaunch; + int cooperativeMultiDeviceLaunch; + size_t sharedMemPerBlockOptin; + int pageableMemoryAccessUsesHostPageTables; + int directManagedMemAccessFromHost; + int maxBlocksPerMultiProcessor; + int accessPolicyMaxWindowSize; + size_t reservedSharedMemPerBlock; +}; +# 2299 "/usr/include/driver_types.h" 3 4 +typedef __attribute__((device_builtin)) struct __attribute__((device_builtin)) cudaIpcEventHandle_st +{ + char reserved[64]; +}cudaIpcEventHandle_t; + + + + +typedef __attribute__((device_builtin)) struct __attribute__((device_builtin)) cudaIpcMemHandle_st +{ + char reserved[64]; +}cudaIpcMemHandle_t; + + + + +enum __attribute__((device_builtin)) cudaExternalMemoryHandleType { + + + + cudaExternalMemoryHandleTypeOpaqueFd = 1, + + + + cudaExternalMemoryHandleTypeOpaqueWin32 = 2, + + + + cudaExternalMemoryHandleTypeOpaqueWin32Kmt = 3, + + + + cudaExternalMemoryHandleTypeD3D12Heap = 4, + + + + cudaExternalMemoryHandleTypeD3D12Resource = 5, + + + + cudaExternalMemoryHandleTypeD3D11Resource = 6, + + + + cudaExternalMemoryHandleTypeD3D11ResourceKmt = 7, + + + + cudaExternalMemoryHandleTypeNvSciBuf = 8 +}; +# 2390 "/usr/include/driver_types.h" 3 4 +struct __attribute__((device_builtin)) cudaExternalMemoryHandleDesc { + + + + enum cudaExternalMemoryHandleType type; + union { + + + + + + int fd; +# 2417 "/usr/include/driver_types.h" 3 4 + struct { + + + + void *handle; + + + + + const void *name; + } win32; + + + + + const void *nvSciBufObject; + } handle; + + + + unsigned long long size; + + + + unsigned int flags; +}; + + + + +struct __attribute__((device_builtin)) cudaExternalMemoryBufferDesc { + + + + unsigned long long offset; + + + + unsigned long long size; + + + + unsigned int flags; +}; + + + + +struct __attribute__((device_builtin)) cudaExternalMemoryMipmappedArrayDesc { + + + + + unsigned long long offset; + + + + struct cudaChannelFormatDesc formatDesc; + + + + struct cudaExtent extent; + + + + + unsigned int flags; + + + + unsigned int numLevels; +}; + + + + +enum __attribute__((device_builtin)) cudaExternalSemaphoreHandleType { + + + + cudaExternalSemaphoreHandleTypeOpaqueFd = 1, + + + + cudaExternalSemaphoreHandleTypeOpaqueWin32 = 2, + + + + cudaExternalSemaphoreHandleTypeOpaqueWin32Kmt = 3, + + + + cudaExternalSemaphoreHandleTypeD3D12Fence = 4, + + + + cudaExternalSemaphoreHandleTypeD3D11Fence = 5, + + + + cudaExternalSemaphoreHandleTypeNvSciSync = 6, + + + + cudaExternalSemaphoreHandleTypeKeyedMutex = 7, + + + + cudaExternalSemaphoreHandleTypeKeyedMutexKmt = 8, + + + + cudaExternalSemaphoreHandleTypeTimelineSemaphoreFd = 9, + + + + cudaExternalSemaphoreHandleTypeTimelineSemaphoreWin32 = 10 +}; + + + + +struct __attribute__((device_builtin)) cudaExternalSemaphoreHandleDesc { + + + + enum cudaExternalSemaphoreHandleType type; + union { + + + + + + + int fd; +# 2567 "/usr/include/driver_types.h" 3 4 + struct { + + + + void *handle; + + + + + const void *name; + } win32; + + + + const void* nvSciSyncObj; + } handle; + + + + unsigned int flags; +}; + + + + +struct __attribute__((device_builtin)) cudaExternalSemaphoreSignalParams_v1 { + struct { + + + + struct { + + + + unsigned long long value; + } fence; + union { + + + + + void *fence; + unsigned long long reserved; + } nvSciSync; + + + + struct { + + + + unsigned long long key; + } keyedMutex; + } params; +# 2631 "/usr/include/driver_types.h" 3 4 + unsigned int flags; +}; + + + + +struct __attribute__((device_builtin)) cudaExternalSemaphoreWaitParams_v1 { + struct { + + + + struct { + + + + unsigned long long value; + } fence; + union { + + + + + void *fence; + unsigned long long reserved; + } nvSciSync; + + + + struct { + + + + unsigned long long key; + + + + unsigned int timeoutMs; + } keyedMutex; + } params; +# 2680 "/usr/include/driver_types.h" 3 4 + unsigned int flags; +}; + + + + +struct __attribute__((device_builtin)) cudaExternalSemaphoreSignalParams{ + struct { + + + + struct { + + + + unsigned long long value; + } fence; + union { + + + + + void *fence; + unsigned long long reserved; + } nvSciSync; + + + + struct { + + + + unsigned long long key; + } keyedMutex; + unsigned int reserved[12]; + } params; +# 2726 "/usr/include/driver_types.h" 3 4 + unsigned int flags; + unsigned int reserved[16]; +}; + + + + +struct __attribute__((device_builtin)) cudaExternalSemaphoreWaitParams { + struct { + + + + struct { + + + + unsigned long long value; + } fence; + union { + + + + + void *fence; + unsigned long long reserved; + } nvSciSync; + + + + struct { + + + + unsigned long long key; + + + + unsigned int timeoutMs; + } keyedMutex; + unsigned int reserved[10]; + } params; +# 2777 "/usr/include/driver_types.h" 3 4 + unsigned int flags; + unsigned int reserved[16]; +}; +# 2790 "/usr/include/driver_types.h" 3 4 +typedef __attribute__((device_builtin)) enum cudaError cudaError_t; + + + + +typedef __attribute__((device_builtin)) struct CUstream_st *cudaStream_t; + + + + +typedef __attribute__((device_builtin)) struct CUevent_st *cudaEvent_t; + + + + +typedef __attribute__((device_builtin)) struct cudaGraphicsResource *cudaGraphicsResource_t; + + + + +typedef __attribute__((device_builtin)) enum cudaOutputMode cudaOutputMode_t; + + + + +typedef __attribute__((device_builtin)) struct CUexternalMemory_st *cudaExternalMemory_t; + + + + +typedef __attribute__((device_builtin)) struct CUexternalSemaphore_st *cudaExternalSemaphore_t; + + + + +typedef __attribute__((device_builtin)) struct CUgraph_st *cudaGraph_t; + + + + +typedef __attribute__((device_builtin)) struct CUgraphNode_st *cudaGraphNode_t; + + + + +typedef __attribute__((device_builtin)) struct CUuserObject_st *cudaUserObject_t; + + + + +typedef __attribute__((device_builtin)) struct CUfunc_st *cudaFunction_t; + + + + +typedef __attribute__((device_builtin)) struct CUmemPoolHandle_st *cudaMemPool_t; + + + + +enum __attribute__((device_builtin)) cudaCGScope { + cudaCGScopeInvalid = 0, + cudaCGScopeGrid = 1, + cudaCGScopeMultiGrid = 2 +}; + + + + +struct __attribute__((device_builtin)) cudaLaunchParams +{ + void *func; + dim3 gridDim; + dim3 blockDim; + void **args; + size_t sharedMem; + cudaStream_t stream; +}; + + + + +struct __attribute__((device_builtin)) cudaKernelNodeParams { + void* func; + dim3 gridDim; + dim3 blockDim; + unsigned int sharedMemBytes; + void **kernelParams; + void **extra; +}; + + + + +struct __attribute__((device_builtin)) cudaExternalSemaphoreSignalNodeParams { + cudaExternalSemaphore_t* extSemArray; + const struct cudaExternalSemaphoreSignalParams* paramsArray; + unsigned int numExtSems; +}; + + + + +struct __attribute__((device_builtin)) cudaExternalSemaphoreWaitNodeParams { + cudaExternalSemaphore_t* extSemArray; + const struct cudaExternalSemaphoreWaitParams* paramsArray; + unsigned int numExtSems; +}; + + + + +enum __attribute__((device_builtin)) cudaGraphNodeType { + cudaGraphNodeTypeKernel = 0x00, + cudaGraphNodeTypeMemcpy = 0x01, + cudaGraphNodeTypeMemset = 0x02, + cudaGraphNodeTypeHost = 0x03, + cudaGraphNodeTypeGraph = 0x04, + cudaGraphNodeTypeEmpty = 0x05, + cudaGraphNodeTypeWaitEvent = 0x06, + cudaGraphNodeTypeEventRecord = 0x07, + cudaGraphNodeTypeExtSemaphoreSignal = 0x08, + cudaGraphNodeTypeExtSemaphoreWait = 0x09, + cudaGraphNodeTypeMemAlloc = 0x0a, + cudaGraphNodeTypeMemFree = 0x0b, + cudaGraphNodeTypeCount +}; + + + + +typedef struct CUgraphExec_st* cudaGraphExec_t; + + + + +enum __attribute__((device_builtin)) cudaGraphExecUpdateResult { + cudaGraphExecUpdateSuccess = 0x0, + cudaGraphExecUpdateError = 0x1, + cudaGraphExecUpdateErrorTopologyChanged = 0x2, + cudaGraphExecUpdateErrorNodeTypeChanged = 0x3, + cudaGraphExecUpdateErrorFunctionChanged = 0x4, + cudaGraphExecUpdateErrorParametersChanged = 0x5, + cudaGraphExecUpdateErrorNotSupported = 0x6, + cudaGraphExecUpdateErrorUnsupportedFunctionChange = 0x7, + cudaGraphExecUpdateErrorAttributesChanged = 0x8 +}; + + + + + +enum __attribute__((device_builtin)) cudaGetDriverEntryPointFlags { + cudaEnableDefault = 0x0, + cudaEnableLegacyStream = 0x1, + cudaEnablePerThreadDefaultStream = 0x2 +}; + + + + +enum __attribute__((device_builtin)) cudaGraphDebugDotFlags { + cudaGraphDebugDotFlagsVerbose = 1<<0, + cudaGraphDebugDotFlagsKernelNodeParams = 1<<2, + cudaGraphDebugDotFlagsMemcpyNodeParams = 1<<3, + cudaGraphDebugDotFlagsMemsetNodeParams = 1<<4, + cudaGraphDebugDotFlagsHostNodeParams = 1<<5, + cudaGraphDebugDotFlagsEventNodeParams = 1<<6, + cudaGraphDebugDotFlagsExtSemasSignalNodeParams = 1<<7, + cudaGraphDebugDotFlagsExtSemasWaitNodeParams = 1<<8, + cudaGraphDebugDotFlagsKernelNodeAttributes = 1<<9, + cudaGraphDebugDotFlagsHandles = 1<<10 +}; + + + + +enum __attribute__((device_builtin)) cudaGraphInstantiateFlags { + cudaGraphInstantiateFlagAutoFreeOnLaunch = 1 + , cudaGraphInstantiateFlagUseNodePriority = 8 + +}; + + + + +typedef __attribute__((device_builtin)) enum cudaLaunchAttributeID { + cudaLaunchAttributeIgnore = 0 + , cudaLaunchAttributeAccessPolicyWindow = 1 + , cudaLaunchAttributeCooperative = 2 + , cudaLaunchAttributeSynchronizationPolicy = 3 + , cudaLaunchAttributeClusterDimension = 4 + , cudaLaunchAttributeClusterSchedulingPolicyPreference = 5 + , cudaLaunchAttributeProgrammaticStreamSerialization = 6 + + + + + + + + , cudaLaunchAttributeProgrammaticEvent = 7 +# 3009 "/usr/include/driver_types.h" 3 4 + , cudaLaunchAttributePriority = 8 +} cudaLaunchAttributeID; + + + + +typedef __attribute__((device_builtin)) union cudaLaunchAttributeValue { + char pad[64]; + struct cudaAccessPolicyWindow accessPolicyWindow; + int cooperative; + enum cudaSynchronizationPolicy syncPolicy; + struct { + unsigned int x; + unsigned int y; + unsigned int z; + } clusterDim; + enum cudaClusterSchedulingPolicy clusterSchedulingPolicyPreference; + int programmaticStreamSerializationAllowed; + struct { + cudaEvent_t event; + int flags; + int triggerAtBlockStart; + } programmaticEvent; + int priority; +} cudaLaunchAttributeValue; + + + + +typedef __attribute__((device_builtin)) struct cudaLaunchAttribute_st { + cudaLaunchAttributeID id; + char pad[8 - sizeof(cudaLaunchAttributeID)]; + cudaLaunchAttributeValue val; +} cudaLaunchAttribute; + + + + +typedef __attribute__((device_builtin)) struct cudaLaunchConfig_st { + dim3 gridDim; + dim3 blockDim; + size_t dynamicSmemBytes; + cudaStream_t stream; + cudaLaunchAttribute *attrs; + unsigned int numAttrs; +} cudaLaunchConfig_t; +# 60 "/usr/include/builtin_types.h" 2 3 4 + + +# 1 "/usr/include/surface_types.h" 1 3 4 +# 84 "/usr/include/surface_types.h" 3 4 +enum __attribute__((device_builtin)) cudaSurfaceBoundaryMode +{ + cudaBoundaryModeZero = 0, + cudaBoundaryModeClamp = 1, + cudaBoundaryModeTrap = 2 +}; + + + + +enum __attribute__((device_builtin)) cudaSurfaceFormatMode +{ + cudaFormatModeForced = 0, + cudaFormatModeAuto = 1 +}; + + + + +struct __attribute__((device_builtin)) surfaceReference +{ + + + + struct cudaChannelFormatDesc channelDesc; +}; + + + + +typedef __attribute__((device_builtin)) unsigned long long cudaSurfaceObject_t; +# 63 "/usr/include/builtin_types.h" 2 3 4 +# 1 "/usr/include/texture_types.h" 1 3 4 +# 84 "/usr/include/texture_types.h" 3 4 +enum __attribute__((device_builtin)) cudaTextureAddressMode +{ + cudaAddressModeWrap = 0, + cudaAddressModeClamp = 1, + cudaAddressModeMirror = 2, + cudaAddressModeBorder = 3 +}; + + + + +enum __attribute__((device_builtin)) cudaTextureFilterMode +{ + cudaFilterModePoint = 0, + cudaFilterModeLinear = 1 +}; + + + + +enum __attribute__((device_builtin)) cudaTextureReadMode +{ + cudaReadModeElementType = 0, + cudaReadModeNormalizedFloat = 1 +}; + + + + +struct __attribute__((device_builtin)) textureReference +{ + + + + int normalized; + + + + enum cudaTextureFilterMode filterMode; + + + + enum cudaTextureAddressMode addressMode[3]; + + + + struct cudaChannelFormatDesc channelDesc; + + + + int sRGB; + + + + unsigned int maxAnisotropy; + + + + enum cudaTextureFilterMode mipmapFilterMode; + + + + float mipmapLevelBias; + + + + float minMipmapLevelClamp; + + + + float maxMipmapLevelClamp; + + + + int disableTrilinearOptimization; + int __cudaReserved[14]; +}; + + + + +struct __attribute__((device_builtin)) cudaTextureDesc +{ + + + + enum cudaTextureAddressMode addressMode[3]; + + + + enum cudaTextureFilterMode filterMode; + + + + enum cudaTextureReadMode readMode; + + + + int sRGB; + + + + float borderColor[4]; + + + + int normalizedCoords; + + + + unsigned int maxAnisotropy; + + + + enum cudaTextureFilterMode mipmapFilterMode; + + + + float mipmapLevelBias; + + + + float minMipmapLevelClamp; + + + + float maxMipmapLevelClamp; + + + + int disableTrilinearOptimization; +}; + +struct __attribute__((device_builtin)) cudaTextureDesc_v2 +{ + + + + enum cudaTextureAddressMode addressMode[3]; + + + + enum cudaTextureFilterMode filterMode; + + + + enum cudaTextureReadMode readMode; + + + + int sRGB; + + + + float borderColor[4]; + + + + int normalizedCoords; + + + + unsigned int maxAnisotropy; + + + + enum cudaTextureFilterMode mipmapFilterMode; + + + + float mipmapLevelBias; + + + + float minMipmapLevelClamp; + + + + float maxMipmapLevelClamp; + + + + int disableTrilinearOptimization; + + + + int seamlessCubemap; +}; + + + + +typedef __attribute__((device_builtin)) unsigned long long cudaTextureObject_t; +# 64 "/usr/include/builtin_types.h" 2 3 4 +# 92 "/usr/include/cuda_runtime.h" 2 3 4 +# 1 "/usr/include/library_types.h" 1 3 4 +# 55 "/usr/include/library_types.h" 3 4 +typedef enum cudaDataType_t +{ + CUDA_R_16F = 2, + CUDA_C_16F = 6, + CUDA_R_16BF = 14, + CUDA_C_16BF = 15, + CUDA_R_32F = 0, + CUDA_C_32F = 4, + CUDA_R_64F = 1, + CUDA_C_64F = 5, + CUDA_R_4I = 16, + CUDA_C_4I = 17, + CUDA_R_4U = 18, + CUDA_C_4U = 19, + CUDA_R_8I = 3, + CUDA_C_8I = 7, + CUDA_R_8U = 8, + CUDA_C_8U = 9, + CUDA_R_16I = 20, + CUDA_C_16I = 21, + CUDA_R_16U = 22, + CUDA_C_16U = 23, + CUDA_R_32I = 10, + CUDA_C_32I = 11, + CUDA_R_32U = 12, + CUDA_C_32U = 13, + CUDA_R_64I = 24, + CUDA_C_64I = 25, + CUDA_R_64U = 26, + CUDA_C_64U = 27, + CUDA_R_8F_E4M3 = 28, + CUDA_R_8F_E5M2 = 29, +} cudaDataType; + + +typedef enum libraryPropertyType_t +{ + MAJOR_VERSION, + MINOR_VERSION, + PATCH_LEVEL +} libraryPropertyType; +# 93 "/usr/include/cuda_runtime.h" 2 3 4 + + +# 1 "/usr/include/channel_descriptor.h" 1 3 4 +# 61 "/usr/include/channel_descriptor.h" 3 4 +# 1 "/usr/include/cuda_runtime_api.h" 1 3 4 +# 147 "/usr/include/cuda_runtime_api.h" 3 4 +# 1 "/usr/include/crt/host_defines.h" 1 3 4 +# 148 "/usr/include/cuda_runtime_api.h" 2 3 4 + +# 1 "/usr/include/builtin_types.h" 1 3 4 +# 150 "/usr/include/cuda_runtime_api.h" 2 3 4 + +# 1 "/usr/include/cuda_device_runtime_api.h" 1 3 4 +# 64 "/usr/include/cuda_device_runtime_api.h" 3 4 +extern "C" { + + +struct cudaFuncAttributes; + + +inline __attribute__((device)) cudaError_t cudaMalloc(void **p, size_t s) +{ + return cudaErrorUnknown; +} + +inline __attribute__((device)) cudaError_t cudaFuncGetAttributes(struct cudaFuncAttributes *p, const void *c) +{ + return cudaErrorUnknown; +} + +inline __attribute__((device)) cudaError_t cudaDeviceGetAttribute(int *value, enum cudaDeviceAttr attr, int device) +{ + return cudaErrorUnknown; +} + +inline __attribute__((device)) cudaError_t cudaGetDevice(int *device) +{ + return cudaErrorUnknown; +} + +inline __attribute__((device)) cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessor(int *numBlocks, const void *func, int blockSize, size_t dynamicSmemSize) +{ + return cudaErrorUnknown; +} + +inline __attribute__((device)) cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(int *numBlocks, const void *func, int blockSize, size_t dynamicSmemSize, unsigned int flags) +{ + return cudaErrorUnknown; +} + + + +} +# 129 "/usr/include/cuda_device_runtime_api.h" 3 4 +# 1 "/usr/include/crt/host_defines.h" 1 3 4 +# 130 "/usr/include/cuda_device_runtime_api.h" 2 3 4 + +extern "C" +{ +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetAttribute(int *value, enum cudaDeviceAttr attr, int device); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetLimit(size_t *pValue, enum cudaLimit limit); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetCacheConfig(enum cudaFuncCache *pCacheConfig); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetSharedMemConfig(enum cudaSharedMemConfig *pConfig); + + +extern __attribute__((device)) __attribute__((cudart_builtin)) __attribute__((deprecated("Use of ""cudaDeviceSynchronize"" from device code is deprecated. Moreover, such use will cause this module to fail to load on sm_90+ devices. If calls to ""cudaDeviceSynchronize"" from device code cannot be removed for older devices at this time, you may guard them with __CUDA_ARCH__ macros to remove them only for sm_90+ devices, making sure to generate code for compute_90 for the macros to take effect. Note that this mitigation will no longer work when support for ""cudaDeviceSynchronize"" from device code is eventually dropped for all devices. Disable this warning with -D__CDPRT_SUPPRESS_SYNC_DEPRECATION_WARNING."))) cudaError_t cudaDeviceSynchronize(void); + +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaDeviceSynchronizeDeprecationAvoidance(void); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaGetLastError(void); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaPeekAtLastError(void); +extern __attribute__((device)) __attribute__((cudart_builtin)) const char* cudaGetErrorString(cudaError_t error); +extern __attribute__((device)) __attribute__((cudart_builtin)) const char* cudaGetErrorName(cudaError_t error); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaGetDeviceCount(int *count); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaGetDevice(int *device); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaStreamCreateWithFlags(cudaStream_t *pStream, unsigned int flags); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaStreamDestroy(cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaStreamWaitEvent(cudaStream_t stream, cudaEvent_t event, unsigned int flags); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaStreamWaitEvent_ptsz(cudaStream_t stream, cudaEvent_t event, unsigned int flags); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaEventCreateWithFlags(cudaEvent_t *event, unsigned int flags); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaEventRecord(cudaEvent_t event, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaEventRecord_ptsz(cudaEvent_t event, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaEventRecordWithFlags(cudaEvent_t event, cudaStream_t stream, unsigned int flags); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaEventRecordWithFlags_ptsz(cudaEvent_t event, cudaStream_t stream, unsigned int flags); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaEventDestroy(cudaEvent_t event); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaFuncGetAttributes(struct cudaFuncAttributes *attr, const void *func); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaFree(void *devPtr); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMalloc(void **devPtr, size_t size); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMemcpyAsync(void *dst, const void *src, size_t count, enum cudaMemcpyKind kind, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMemcpyAsync_ptsz(void *dst, const void *src, size_t count, enum cudaMemcpyKind kind, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMemcpy2DAsync(void *dst, size_t dpitch, const void *src, size_t spitch, size_t width, size_t height, enum cudaMemcpyKind kind, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMemcpy2DAsync_ptsz(void *dst, size_t dpitch, const void *src, size_t spitch, size_t width, size_t height, enum cudaMemcpyKind kind, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMemcpy3DAsync(const struct cudaMemcpy3DParms *p, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMemcpy3DAsync_ptsz(const struct cudaMemcpy3DParms *p, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMemsetAsync(void *devPtr, int value, size_t count, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMemsetAsync_ptsz(void *devPtr, int value, size_t count, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMemset2DAsync(void *devPtr, size_t pitch, int value, size_t width, size_t height, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMemset2DAsync_ptsz(void *devPtr, size_t pitch, int value, size_t width, size_t height, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMemset3DAsync(struct cudaPitchedPtr pitchedDevPtr, int value, struct cudaExtent extent, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMemset3DAsync_ptsz(struct cudaPitchedPtr pitchedDevPtr, int value, struct cudaExtent extent, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaRuntimeGetVersion(int *runtimeVersion); +# 194 "/usr/include/cuda_device_runtime_api.h" 3 4 +extern __attribute__((device)) __attribute__((cudart_builtin)) void * cudaGetParameterBuffer(size_t alignment, size_t size); +# 222 "/usr/include/cuda_device_runtime_api.h" 3 4 +extern __attribute__((device)) __attribute__((cudart_builtin)) void * cudaGetParameterBufferV2(void *func, dim3 gridDimension, dim3 blockDimension, unsigned int sharedMemSize); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaLaunchDevice_ptsz(void *func, void *parameterBuffer, dim3 gridDimension, dim3 blockDimension, unsigned int sharedMemSize, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaLaunchDeviceV2_ptsz(void *parameterBuffer, cudaStream_t stream); +# 242 "/usr/include/cuda_device_runtime_api.h" 3 4 + extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaLaunchDevice(void *func, void *parameterBuffer, dim3 gridDimension, dim3 blockDimension, unsigned int sharedMemSize, cudaStream_t stream); + extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaLaunchDeviceV2(void *parameterBuffer, cudaStream_t stream); + + +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessor(int *numBlocks, const void *func, int blockSize, size_t dynamicSmemSize); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(int *numBlocks, const void *func, int blockSize, size_t dynamicSmemSize, unsigned int flags); + +extern __attribute__((device)) __attribute__((cudart_builtin)) unsigned long long cudaCGGetIntrinsicHandle(enum cudaCGScope scope); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaCGSynchronize(unsigned long long handle, unsigned int flags); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaCGSynchronizeGrid(unsigned long long handle, unsigned int flags); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaCGGetSize(unsigned int *numThreads, unsigned int *numGrids, unsigned long long handle); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaCGGetRank(unsigned int *threadRank, unsigned int *gridRank, unsigned long long handle); +} + +template static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMalloc(T **devPtr, size_t size); +template static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaFuncGetAttributes(struct cudaFuncAttributes *attr, T *entry); +template static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessor(int *numBlocks, T func, int blockSize, size_t dynamicSmemSize); +template static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(int *numBlocks, T func, int blockSize, size_t dynamicSmemSize, unsigned int flags); +# 152 "/usr/include/cuda_runtime_api.h" 2 3 4 +# 267 "/usr/include/cuda_runtime_api.h" 3 4 +extern "C" { +# 307 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaDeviceReset(void); +# 329 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceSynchronize(void); +# 416 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaDeviceSetLimit(enum cudaLimit limit, size_t value); +# 449 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetLimit(size_t *pValue, enum cudaLimit limit); +# 472 "/usr/include/cuda_runtime_api.h" 3 4 + extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetTexture1DLinearMaxWidth(size_t *maxWidthInElements, const struct cudaChannelFormatDesc *fmtDesc, int device); +# 506 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetCacheConfig(enum cudaFuncCache *pCacheConfig); +# 543 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetStreamPriorityRange(int *leastPriority, int *greatestPriority); +# 587 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaDeviceSetCacheConfig(enum cudaFuncCache cacheConfig); +# 618 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetSharedMemConfig(enum cudaSharedMemConfig *pConfig); +# 662 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaDeviceSetSharedMemConfig(enum cudaSharedMemConfig config); +# 689 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaDeviceGetByPCIBusId(int *device, const char *pciBusId); +# 719 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaDeviceGetPCIBusId(char *pciBusId, int len, int device); +# 767 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaIpcGetEventHandle(cudaIpcEventHandle_t *handle, cudaEvent_t event); +# 808 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaIpcOpenEventHandle(cudaEvent_t *event, cudaIpcEventHandle_t handle); +# 851 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaIpcGetMemHandle(cudaIpcMemHandle_t *handle, void *devPtr); +# 915 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaIpcOpenMemHandle(void **devPtr, cudaIpcMemHandle_t handle, unsigned int flags); +# 951 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaIpcCloseMemHandle(void *devPtr); +# 983 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaDeviceFlushGPUDirectRDMAWrites(enum cudaFlushGPUDirectRDMAWritesTarget target, enum cudaFlushGPUDirectRDMAWritesScope scope); +# 1026 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaThreadExit(void); +# 1052 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaThreadSynchronize(void); +# 1101 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaThreadSetLimit(enum cudaLimit limit, size_t value); +# 1134 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaThreadGetLimit(size_t *pValue, enum cudaLimit limit); +# 1170 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaThreadGetCacheConfig(enum cudaFuncCache *pCacheConfig); +# 1217 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaThreadSetCacheConfig(enum cudaFuncCache cacheConfig); +# 1278 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaGetLastError(void); +# 1326 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaPeekAtLastError(void); +# 1342 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) const char* cudaGetErrorName(cudaError_t error); +# 1358 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) const char* cudaGetErrorString(cudaError_t error); +# 1386 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaGetDeviceCount(int *count); +# 1659 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaGetDeviceProperties(struct cudaDeviceProp *prop, int device); +# 1859 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetAttribute(int *value, enum cudaDeviceAttr attr, int device); +# 1877 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaDeviceGetDefaultMemPool(cudaMemPool_t *memPool, int device); +# 1901 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaDeviceSetMemPool(int device, cudaMemPool_t memPool); +# 1921 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaDeviceGetMemPool(cudaMemPool_t *memPool, int device); +# 1969 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaDeviceGetNvSciSyncAttributes(void *nvSciSyncAttrList, int device, int flags); +# 2009 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetP2PAttribute(int *value, enum cudaDeviceP2PAttr attr, int srcDevice, int dstDevice); +# 2030 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaChooseDevice(int *device, const struct cudaDeviceProp *prop); +# 2074 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaSetDevice(int device); +# 2095 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaGetDevice(int *device); +# 2126 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaSetValidDevices(int *device_arr, int len); +# 2191 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaSetDeviceFlags( unsigned int flags ); +# 2235 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGetDeviceFlags( unsigned int *flags ); +# 2275 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaStreamCreate(cudaStream_t *pStream); +# 2307 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamCreateWithFlags(cudaStream_t *pStream, unsigned int flags); +# 2353 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamCreateWithPriority(cudaStream_t *pStream, unsigned int flags, int priority); +# 2380 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamGetPriority(cudaStream_t hStream, int *priority); +# 2405 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamGetFlags(cudaStream_t hStream, unsigned int *flags); +# 2420 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaCtxResetPersistingL2Cache(void); +# 2440 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamCopyAttributes(cudaStream_t dst, cudaStream_t src); +# 2461 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamGetAttribute( + cudaStream_t hStream, cudaLaunchAttributeID attr, + cudaLaunchAttributeValue *value_out); +# 2485 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamSetAttribute( + cudaStream_t hStream, cudaLaunchAttributeID attr, + const cudaLaunchAttributeValue *value); +# 2519 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamDestroy(cudaStream_t stream); +# 2550 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamWaitEvent(cudaStream_t stream, cudaEvent_t event, unsigned int flags = 0); + + + + + + + +typedef void ( *cudaStreamCallback_t)(cudaStream_t stream, cudaError_t status, void *userData); +# 2625 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaStreamAddCallback(cudaStream_t stream, + cudaStreamCallback_t callback, void *userData, unsigned int flags); +# 2649 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaStreamSynchronize(cudaStream_t stream); +# 2674 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaStreamQuery(cudaStream_t stream); +# 2758 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamAttachMemAsync(cudaStream_t stream, void *devPtr, size_t length = 0, unsigned int flags = 0x04); +# 2797 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaStreamBeginCapture(cudaStream_t stream, enum cudaStreamCaptureMode mode); +# 2848 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaThreadExchangeStreamCaptureMode(enum cudaStreamCaptureMode *mode); +# 2876 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaStreamEndCapture(cudaStream_t stream, cudaGraph_t *pGraph); +# 2914 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaStreamIsCapturing(cudaStream_t stream, enum cudaStreamCaptureStatus *pCaptureStatus); +# 2946 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaStreamGetCaptureInfo(cudaStream_t stream, enum cudaStreamCaptureStatus *pCaptureStatus, unsigned long long *pId); +# 3001 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaStreamGetCaptureInfo_v2(cudaStream_t stream, enum cudaStreamCaptureStatus *captureStatus_out, unsigned long long *id_out = 0, cudaGraph_t *graph_out = 0, const cudaGraphNode_t **dependencies_out = 0, size_t *numDependencies_out = 0); +# 3034 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaStreamUpdateCaptureDependencies(cudaStream_t stream, cudaGraphNode_t *dependencies, size_t numDependencies, unsigned int flags = 0); +# 3071 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaEventCreate(cudaEvent_t *event); +# 3108 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaEventCreateWithFlags(cudaEvent_t *event, unsigned int flags); +# 3148 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaEventRecord(cudaEvent_t event, cudaStream_t stream = 0); +# 3195 "/usr/include/cuda_runtime_api.h" 3 4 + extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaEventRecordWithFlags(cudaEvent_t event, cudaStream_t stream = 0, unsigned int flags = 0); +# 3227 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaEventQuery(cudaEvent_t event); +# 3257 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaEventSynchronize(cudaEvent_t event); +# 3286 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaEventDestroy(cudaEvent_t event); +# 3330 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaEventElapsedTime(float *ms, cudaEvent_t start, cudaEvent_t end); +# 3510 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaImportExternalMemory(cudaExternalMemory_t *extMem_out, const struct cudaExternalMemoryHandleDesc *memHandleDesc); +# 3565 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaExternalMemoryGetMappedBuffer(void **devPtr, cudaExternalMemory_t extMem, const struct cudaExternalMemoryBufferDesc *bufferDesc); +# 3627 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaExternalMemoryGetMappedMipmappedArray(cudaMipmappedArray_t *mipmap, cudaExternalMemory_t extMem, const struct cudaExternalMemoryMipmappedArrayDesc *mipmapDesc); +# 3651 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaDestroyExternalMemory(cudaExternalMemory_t extMem); +# 3804 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaImportExternalSemaphore(cudaExternalSemaphore_t *extSem_out, const struct cudaExternalSemaphoreHandleDesc *semHandleDesc); +# 3871 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaSignalExternalSemaphoresAsync_v2(const cudaExternalSemaphore_t *extSemArray, const struct cudaExternalSemaphoreSignalParams *paramsArray, unsigned int numExtSems, cudaStream_t stream = 0); +# 3947 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaWaitExternalSemaphoresAsync_v2(const cudaExternalSemaphore_t *extSemArray, const struct cudaExternalSemaphoreWaitParams *paramsArray, unsigned int numExtSems, cudaStream_t stream = 0); +# 3970 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaDestroyExternalSemaphore(cudaExternalSemaphore_t extSem); +# 4037 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaLaunchKernel(const void *func, dim3 gridDim, dim3 blockDim, void **args, size_t sharedMem, cudaStream_t stream); +# 4099 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaLaunchKernelExC(const cudaLaunchConfig_t *config, const void *func, void **args); +# 4156 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaLaunchCooperativeKernel(const void *func, dim3 gridDim, dim3 blockDim, void **args, size_t sharedMem, cudaStream_t stream); +# 4257 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaLaunchCooperativeKernelMultiDevice(struct cudaLaunchParams *launchParamsList, unsigned int numDevices, unsigned int flags = 0); +# 4304 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaFuncSetCacheConfig(const void *func, enum cudaFuncCache cacheConfig); +# 4359 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaFuncSetSharedMemConfig(const void *func, enum cudaSharedMemConfig config); +# 4392 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaFuncGetAttributes(struct cudaFuncAttributes *attr, const void *func); +# 4429 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaFuncSetAttribute(const void *func, enum cudaFuncAttribute attr, int value); +# 4453 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaSetDoubleForDevice(double *d); +# 4477 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaSetDoubleForHost(double *d); +# 4543 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaLaunchHostFunc(cudaStream_t stream, cudaHostFn_t fn, void *userData); +# 4600 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessor(int *numBlocks, const void *func, int blockSize, size_t dynamicSMemSize); +# 4629 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyAvailableDynamicSMemPerBlock(size_t *dynamicSmemSize, const void *func, int numBlocks, int blockSize); +# 4674 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(int *numBlocks, const void *func, int blockSize, size_t dynamicSMemSize, unsigned int flags); +# 4709 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyMaxPotentialClusterSize(int *clusterSize, const void *func, const cudaLaunchConfig_t *launchConfig); +# 4748 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyMaxActiveClusters(int *numClusters, const void *func, const cudaLaunchConfig_t *launchConfig); +# 4868 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaMallocManaged(void **devPtr, size_t size, unsigned int flags = 0x01); +# 4901 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaMalloc(void **devPtr, size_t size); +# 4934 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMallocHost(void **ptr, size_t size); +# 4977 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMallocPitch(void **devPtr, size_t *pitch, size_t width, size_t height); +# 5029 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMallocArray(cudaArray_t *array, const struct cudaChannelFormatDesc *desc, size_t width, size_t height = 0, unsigned int flags = 0); +# 5067 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaFree(void *devPtr); +# 5090 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaFreeHost(void *ptr); +# 5113 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaFreeArray(cudaArray_t array); +# 5136 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaFreeMipmappedArray(cudaMipmappedArray_t mipmappedArray); +# 5202 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaHostAlloc(void **pHost, size_t size, unsigned int flags); +# 5295 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaHostRegister(void *ptr, size_t size, unsigned int flags); +# 5318 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaHostUnregister(void *ptr); +# 5363 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaHostGetDevicePointer(void **pDevice, void *pHost, unsigned int flags); +# 5385 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaHostGetFlags(unsigned int *pFlags, void *pHost); +# 5424 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMalloc3D(struct cudaPitchedPtr* pitchedDevPtr, struct cudaExtent extent); +# 5569 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMalloc3DArray(cudaArray_t *array, const struct cudaChannelFormatDesc* desc, struct cudaExtent extent, unsigned int flags = 0); +# 5714 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMallocMipmappedArray(cudaMipmappedArray_t *mipmappedArray, const struct cudaChannelFormatDesc* desc, struct cudaExtent extent, unsigned int numLevels, unsigned int flags = 0); +# 5747 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGetMipmappedArrayLevel(cudaArray_t *levelArray, cudaMipmappedArray_const_t mipmappedArray, unsigned int level); +# 5852 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemcpy3D(const struct cudaMemcpy3DParms *p); +# 5883 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemcpy3DPeer(const struct cudaMemcpy3DPeerParms *p); +# 6001 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaMemcpy3DAsync(const struct cudaMemcpy3DParms *p, cudaStream_t stream = 0); +# 6027 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemcpy3DPeerAsync(const struct cudaMemcpy3DPeerParms *p, cudaStream_t stream = 0); +# 6061 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemGetInfo(size_t *free, size_t *total); +# 6087 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaArrayGetInfo(struct cudaChannelFormatDesc *desc, struct cudaExtent *extent, unsigned int *flags, cudaArray_t array); +# 6116 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaArrayGetPlane(cudaArray_t *pPlaneArray, cudaArray_t hArray, unsigned int planeIdx); +# 6139 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaArrayGetMemoryRequirements(struct cudaArrayMemoryRequirements *memoryRequirements, cudaArray_t array, int device); +# 6163 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMipmappedArrayGetMemoryRequirements(struct cudaArrayMemoryRequirements *memoryRequirements, cudaMipmappedArray_t mipmap, int device); +# 6191 "/usr/include/cuda_runtime_api.h" 3 4 + extern __attribute__((host)) cudaError_t cudaArrayGetSparseProperties(struct cudaArraySparseProperties *sparseProperties, cudaArray_t array); +# 6221 "/usr/include/cuda_runtime_api.h" 3 4 + extern __attribute__((host)) cudaError_t cudaMipmappedArrayGetSparseProperties(struct cudaArraySparseProperties *sparseProperties, cudaMipmappedArray_t mipmap); +# 6266 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemcpy(void *dst, const void *src, size_t count, enum cudaMemcpyKind kind); +# 6301 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemcpyPeer(void *dst, int dstDevice, const void *src, int srcDevice, size_t count); +# 6350 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemcpy2D(void *dst, size_t dpitch, const void *src, size_t spitch, size_t width, size_t height, enum cudaMemcpyKind kind); +# 6400 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemcpy2DToArray(cudaArray_t dst, size_t wOffset, size_t hOffset, const void *src, size_t spitch, size_t width, size_t height, enum cudaMemcpyKind kind); +# 6450 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemcpy2DFromArray(void *dst, size_t dpitch, cudaArray_const_t src, size_t wOffset, size_t hOffset, size_t width, size_t height, enum cudaMemcpyKind kind); +# 6497 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemcpy2DArrayToArray(cudaArray_t dst, size_t wOffsetDst, size_t hOffsetDst, cudaArray_const_t src, size_t wOffsetSrc, size_t hOffsetSrc, size_t width, size_t height, enum cudaMemcpyKind kind = cudaMemcpyDeviceToDevice); +# 6540 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemcpyToSymbol(const void *symbol, const void *src, size_t count, size_t offset = 0, enum cudaMemcpyKind kind = cudaMemcpyHostToDevice); +# 6583 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemcpyFromSymbol(void *dst, const void *symbol, size_t count, size_t offset = 0, enum cudaMemcpyKind kind = cudaMemcpyDeviceToHost); +# 6640 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaMemcpyAsync(void *dst, const void *src, size_t count, enum cudaMemcpyKind kind, cudaStream_t stream = 0); +# 6675 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemcpyPeerAsync(void *dst, int dstDevice, const void *src, int srcDevice, size_t count, cudaStream_t stream = 0); +# 6738 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaMemcpy2DAsync(void *dst, size_t dpitch, const void *src, size_t spitch, size_t width, size_t height, enum cudaMemcpyKind kind, cudaStream_t stream = 0); +# 6796 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemcpy2DToArrayAsync(cudaArray_t dst, size_t wOffset, size_t hOffset, const void *src, size_t spitch, size_t width, size_t height, enum cudaMemcpyKind kind, cudaStream_t stream = 0); +# 6853 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemcpy2DFromArrayAsync(void *dst, size_t dpitch, cudaArray_const_t src, size_t wOffset, size_t hOffset, size_t width, size_t height, enum cudaMemcpyKind kind, cudaStream_t stream = 0); +# 6904 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemcpyToSymbolAsync(const void *symbol, const void *src, size_t count, size_t offset, enum cudaMemcpyKind kind, cudaStream_t stream = 0); +# 6955 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemcpyFromSymbolAsync(void *dst, const void *symbol, size_t count, size_t offset, enum cudaMemcpyKind kind, cudaStream_t stream = 0); +# 6984 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemset(void *devPtr, int value, size_t count); +# 7018 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemset2D(void *devPtr, size_t pitch, int value, size_t width, size_t height); +# 7064 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemset3D(struct cudaPitchedPtr pitchedDevPtr, int value, struct cudaExtent extent); +# 7100 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaMemsetAsync(void *devPtr, int value, size_t count, cudaStream_t stream = 0); +# 7141 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaMemset2DAsync(void *devPtr, size_t pitch, int value, size_t width, size_t height, cudaStream_t stream = 0); +# 7194 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaMemset3DAsync(struct cudaPitchedPtr pitchedDevPtr, int value, struct cudaExtent extent, cudaStream_t stream = 0); +# 7222 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGetSymbolAddress(void **devPtr, const void *symbol); +# 7249 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGetSymbolSize(size_t *size, const void *symbol); +# 7319 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemPrefetchAsync(const void *devPtr, size_t count, int dstDevice, cudaStream_t stream = 0); +# 7435 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemAdvise(const void *devPtr, size_t count, enum cudaMemoryAdvise advice, int device); +# 7494 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemRangeGetAttribute(void *data, size_t dataSize, enum cudaMemRangeAttribute attribute, const void *devPtr, size_t count); +# 7533 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemRangeGetAttributes(void **data, size_t *dataSizes, enum cudaMemRangeAttribute *attributes, size_t numAttributes, const void *devPtr, size_t count); +# 7593 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaMemcpyToArray(cudaArray_t dst, size_t wOffset, size_t hOffset, const void *src, size_t count, enum cudaMemcpyKind kind); +# 7635 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaMemcpyFromArray(void *dst, cudaArray_const_t src, size_t wOffset, size_t hOffset, size_t count, enum cudaMemcpyKind kind); +# 7678 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaMemcpyArrayToArray(cudaArray_t dst, size_t wOffsetDst, size_t hOffsetDst, cudaArray_const_t src, size_t wOffsetSrc, size_t hOffsetSrc, size_t count, enum cudaMemcpyKind kind = cudaMemcpyDeviceToDevice); +# 7729 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaMemcpyToArrayAsync(cudaArray_t dst, size_t wOffset, size_t hOffset, const void *src, size_t count, enum cudaMemcpyKind kind, cudaStream_t stream = 0); +# 7779 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaMemcpyFromArrayAsync(void *dst, cudaArray_const_t src, size_t wOffset, size_t hOffset, size_t count, enum cudaMemcpyKind kind, cudaStream_t stream = 0); +# 7848 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMallocAsync(void **devPtr, size_t size, cudaStream_t hStream); +# 7874 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaFreeAsync(void *devPtr, cudaStream_t hStream); +# 7899 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemPoolTrimTo(cudaMemPool_t memPool, size_t minBytesToKeep); +# 7943 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemPoolSetAttribute(cudaMemPool_t memPool, enum cudaMemPoolAttr attr, void *value ); +# 7991 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemPoolGetAttribute(cudaMemPool_t memPool, enum cudaMemPoolAttr attr, void *value ); +# 8006 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemPoolSetAccess(cudaMemPool_t memPool, const struct cudaMemAccessDesc *descList, size_t count); +# 8019 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemPoolGetAccess(enum cudaMemAccessFlags *flags, cudaMemPool_t memPool, struct cudaMemLocation *location); +# 8039 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemPoolCreate(cudaMemPool_t *memPool, const struct cudaMemPoolProps *poolProps); +# 8061 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemPoolDestroy(cudaMemPool_t memPool); +# 8097 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMallocFromPoolAsync(void **ptr, size_t size, cudaMemPool_t memPool, cudaStream_t stream); +# 8122 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemPoolExportToShareableHandle( + void *shareableHandle, + cudaMemPool_t memPool, + enum cudaMemAllocationHandleType handleType, + unsigned int flags); +# 8149 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemPoolImportFromShareableHandle( + cudaMemPool_t *memPool, + void *shareableHandle, + enum cudaMemAllocationHandleType handleType, + unsigned int flags); +# 8172 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemPoolExportPointer(struct cudaMemPoolPtrExportData *exportData, void *ptr); +# 8201 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemPoolImportPointer(void **ptr, cudaMemPool_t memPool, struct cudaMemPoolPtrExportData *exportData); +# 8353 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaPointerGetAttributes(struct cudaPointerAttributes *attributes, const void *ptr); +# 8394 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaDeviceCanAccessPeer(int *canAccessPeer, int device, int peerDevice); +# 8436 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaDeviceEnablePeerAccess(int peerDevice, unsigned int flags); +# 8458 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaDeviceDisablePeerAccess(int peerDevice); +# 8522 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphicsUnregisterResource(cudaGraphicsResource_t resource); +# 8557 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphicsResourceSetMapFlags(cudaGraphicsResource_t resource, unsigned int flags); +# 8596 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphicsMapResources(int count, cudaGraphicsResource_t *resources, cudaStream_t stream = 0); +# 8631 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphicsUnmapResources(int count, cudaGraphicsResource_t *resources, cudaStream_t stream = 0); +# 8663 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphicsResourceGetMappedPointer(void **devPtr, size_t *size, cudaGraphicsResource_t resource); +# 8701 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphicsSubResourceGetMappedArray(cudaArray_t *array, cudaGraphicsResource_t resource, unsigned int arrayIndex, unsigned int mipLevel); +# 8730 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphicsResourceGetMappedMipmappedArray(cudaMipmappedArray_t *mipmappedArray, cudaGraphicsResource_t resource); +# 8801 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaBindTexture(size_t *offset, const struct textureReference *texref, const void *devPtr, const struct cudaChannelFormatDesc *desc, size_t size = (0x7fffffff * 2U + 1U)); +# 8860 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaBindTexture2D(size_t *offset, const struct textureReference *texref, const void *devPtr, const struct cudaChannelFormatDesc *desc, size_t width, size_t height, size_t pitch); +# 8898 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaBindTextureToArray(const struct textureReference *texref, cudaArray_const_t array, const struct cudaChannelFormatDesc *desc); +# 8938 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaBindTextureToMipmappedArray(const struct textureReference *texref, cudaMipmappedArray_const_t mipmappedArray, const struct cudaChannelFormatDesc *desc); +# 8964 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaUnbindTexture(const struct textureReference *texref); +# 8993 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaGetTextureAlignmentOffset(size_t *offset, const struct textureReference *texref); +# 9023 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaGetTextureReference(const struct textureReference **texref, const void *symbol); +# 9068 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaBindSurfaceToArray(const struct surfaceReference *surfref, cudaArray_const_t array, const struct cudaChannelFormatDesc *desc); +# 9093 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaGetSurfaceReference(const struct surfaceReference **surfref, const void *symbol); +# 9128 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGetChannelDesc(struct cudaChannelFormatDesc *desc, cudaArray_const_t array); +# 9158 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) struct cudaChannelFormatDesc cudaCreateChannelDesc(int x, int y, int z, int w, enum cudaChannelFormatKind f); +# 9375 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaCreateTextureObject(cudaTextureObject_t *pTexObject, const struct cudaResourceDesc *pResDesc, const struct cudaTextureDesc *pTexDesc, const struct cudaResourceViewDesc *pResViewDesc); +# 9599 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaCreateTextureObject_v2(cudaTextureObject_t *pTexObject, const struct cudaResourceDesc *pResDesc, const struct cudaTextureDesc_v2 *pTexDesc, const struct cudaResourceViewDesc *pResViewDesc); +# 9619 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaDestroyTextureObject(cudaTextureObject_t texObject); +# 9639 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGetTextureObjectResourceDesc(struct cudaResourceDesc *pResDesc, cudaTextureObject_t texObject); +# 9659 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGetTextureObjectTextureDesc(struct cudaTextureDesc *pTexDesc, cudaTextureObject_t texObject); +# 9679 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGetTextureObjectTextureDesc_v2(struct cudaTextureDesc_v2 *pTexDesc, cudaTextureObject_t texObject); +# 9700 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGetTextureObjectResourceViewDesc(struct cudaResourceViewDesc *pResViewDesc, cudaTextureObject_t texObject); +# 9745 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaCreateSurfaceObject(cudaSurfaceObject_t *pSurfObject, const struct cudaResourceDesc *pResDesc); +# 9765 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaDestroySurfaceObject(cudaSurfaceObject_t surfObject); +# 9784 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGetSurfaceObjectResourceDesc(struct cudaResourceDesc *pResDesc, cudaSurfaceObject_t surfObject); +# 9818 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaDriverGetVersion(int *driverVersion); +# 9843 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaRuntimeGetVersion(int *runtimeVersion); +# 9890 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphCreate(cudaGraph_t *pGraph, unsigned int flags); +# 9987 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphAddKernelNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, const struct cudaKernelNodeParams *pNodeParams); +# 10020 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphKernelNodeGetParams(cudaGraphNode_t node, struct cudaKernelNodeParams *pNodeParams); +# 10045 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphKernelNodeSetParams(cudaGraphNode_t node, const struct cudaKernelNodeParams *pNodeParams); +# 10065 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphKernelNodeCopyAttributes( + cudaGraphNode_t hSrc, + cudaGraphNode_t hDst); +# 10088 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphKernelNodeGetAttribute( + cudaGraphNode_t hNode, + cudaLaunchAttributeID attr, + cudaLaunchAttributeValue *value_out); +# 10112 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphKernelNodeSetAttribute( + cudaGraphNode_t hNode, + cudaLaunchAttributeID attr, + const cudaLaunchAttributeValue *value); +# 10162 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphAddMemcpyNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, const struct cudaMemcpy3DParms *pCopyParams); +# 10221 "/usr/include/cuda_runtime_api.h" 3 4 + extern __attribute__((host)) cudaError_t cudaGraphAddMemcpyNodeToSymbol( + cudaGraphNode_t *pGraphNode, + cudaGraph_t graph, + const cudaGraphNode_t *pDependencies, + size_t numDependencies, + const void* symbol, + const void* src, + size_t count, + size_t offset, + enum cudaMemcpyKind kind); +# 10290 "/usr/include/cuda_runtime_api.h" 3 4 + extern __attribute__((host)) cudaError_t cudaGraphAddMemcpyNodeFromSymbol( + cudaGraphNode_t* pGraphNode, + cudaGraph_t graph, + const cudaGraphNode_t* pDependencies, + size_t numDependencies, + void* dst, + const void* symbol, + size_t count, + size_t offset, + enum cudaMemcpyKind kind); +# 10358 "/usr/include/cuda_runtime_api.h" 3 4 + extern __attribute__((host)) cudaError_t cudaGraphAddMemcpyNode1D( + cudaGraphNode_t *pGraphNode, + cudaGraph_t graph, + const cudaGraphNode_t *pDependencies, + size_t numDependencies, + void* dst, + const void* src, + size_t count, + enum cudaMemcpyKind kind); +# 10390 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphMemcpyNodeGetParams(cudaGraphNode_t node, struct cudaMemcpy3DParms *pNodeParams); +# 10416 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphMemcpyNodeSetParams(cudaGraphNode_t node, const struct cudaMemcpy3DParms *pNodeParams); +# 10455 "/usr/include/cuda_runtime_api.h" 3 4 + extern __attribute__((host)) cudaError_t cudaGraphMemcpyNodeSetParamsToSymbol( + cudaGraphNode_t node, + const void* symbol, + const void* src, + size_t count, + size_t offset, + enum cudaMemcpyKind kind); +# 10501 "/usr/include/cuda_runtime_api.h" 3 4 + extern __attribute__((host)) cudaError_t cudaGraphMemcpyNodeSetParamsFromSymbol( + cudaGraphNode_t node, + void* dst, + const void* symbol, + size_t count, + size_t offset, + enum cudaMemcpyKind kind); +# 10547 "/usr/include/cuda_runtime_api.h" 3 4 + extern __attribute__((host)) cudaError_t cudaGraphMemcpyNodeSetParams1D( + cudaGraphNode_t node, + void* dst, + const void* src, + size_t count, + enum cudaMemcpyKind kind); +# 10594 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphAddMemsetNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, const struct cudaMemsetParams *pMemsetParams); +# 10617 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphMemsetNodeGetParams(cudaGraphNode_t node, struct cudaMemsetParams *pNodeParams); +# 10640 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphMemsetNodeSetParams(cudaGraphNode_t node, const struct cudaMemsetParams *pNodeParams); +# 10681 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphAddHostNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, const struct cudaHostNodeParams *pNodeParams); +# 10704 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphHostNodeGetParams(cudaGraphNode_t node, struct cudaHostNodeParams *pNodeParams); +# 10727 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphHostNodeSetParams(cudaGraphNode_t node, const struct cudaHostNodeParams *pNodeParams); +# 10767 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphAddChildGraphNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, cudaGraph_t childGraph); +# 10794 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphChildGraphNodeGetGraph(cudaGraphNode_t node, cudaGraph_t *pGraph); +# 10831 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphAddEmptyNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies); +# 10874 "/usr/include/cuda_runtime_api.h" 3 4 + extern __attribute__((host)) cudaError_t cudaGraphAddEventRecordNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, cudaEvent_t event); +# 10901 "/usr/include/cuda_runtime_api.h" 3 4 + extern __attribute__((host)) cudaError_t cudaGraphEventRecordNodeGetEvent(cudaGraphNode_t node, cudaEvent_t *event_out); +# 10928 "/usr/include/cuda_runtime_api.h" 3 4 + extern __attribute__((host)) cudaError_t cudaGraphEventRecordNodeSetEvent(cudaGraphNode_t node, cudaEvent_t event); +# 10974 "/usr/include/cuda_runtime_api.h" 3 4 + extern __attribute__((host)) cudaError_t cudaGraphAddEventWaitNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, cudaEvent_t event); +# 11001 "/usr/include/cuda_runtime_api.h" 3 4 + extern __attribute__((host)) cudaError_t cudaGraphEventWaitNodeGetEvent(cudaGraphNode_t node, cudaEvent_t *event_out); +# 11028 "/usr/include/cuda_runtime_api.h" 3 4 + extern __attribute__((host)) cudaError_t cudaGraphEventWaitNodeSetEvent(cudaGraphNode_t node, cudaEvent_t event); +# 11077 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphAddExternalSemaphoresSignalNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, const struct cudaExternalSemaphoreSignalNodeParams *nodeParams); +# 11110 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphExternalSemaphoresSignalNodeGetParams(cudaGraphNode_t hNode, struct cudaExternalSemaphoreSignalNodeParams *params_out); +# 11137 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphExternalSemaphoresSignalNodeSetParams(cudaGraphNode_t hNode, const struct cudaExternalSemaphoreSignalNodeParams *nodeParams); +# 11186 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphAddExternalSemaphoresWaitNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, const struct cudaExternalSemaphoreWaitNodeParams *nodeParams); +# 11219 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphExternalSemaphoresWaitNodeGetParams(cudaGraphNode_t hNode, struct cudaExternalSemaphoreWaitNodeParams *params_out); +# 11246 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphExternalSemaphoresWaitNodeSetParams(cudaGraphNode_t hNode, const struct cudaExternalSemaphoreWaitNodeParams *nodeParams); +# 11323 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphAddMemAllocNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, struct cudaMemAllocNodeParams *nodeParams); +# 11350 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphMemAllocNodeGetParams(cudaGraphNode_t node, struct cudaMemAllocNodeParams *params_out); +# 11410 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphAddMemFreeNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, void *dptr); +# 11434 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphMemFreeNodeGetParams(cudaGraphNode_t node, void *dptr_out); +# 11462 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaDeviceGraphMemTrim(int device); +# 11499 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaDeviceGetGraphMemAttribute(int device, enum cudaGraphMemAttributeType attr, void* value); +# 11533 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaDeviceSetGraphMemAttribute(int device, enum cudaGraphMemAttributeType attr, void* value); +# 11561 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphClone(cudaGraph_t *pGraphClone, cudaGraph_t originalGraph); +# 11589 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphNodeFindInClone(cudaGraphNode_t *pNode, cudaGraphNode_t originalNode, cudaGraph_t clonedGraph); +# 11620 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphNodeGetType(cudaGraphNode_t node, enum cudaGraphNodeType *pType); +# 11651 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphGetNodes(cudaGraph_t graph, cudaGraphNode_t *nodes, size_t *numNodes); +# 11682 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphGetRootNodes(cudaGraph_t graph, cudaGraphNode_t *pRootNodes, size_t *pNumRootNodes); +# 11716 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphGetEdges(cudaGraph_t graph, cudaGraphNode_t *from, cudaGraphNode_t *to, size_t *numEdges); +# 11747 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphNodeGetDependencies(cudaGraphNode_t node, cudaGraphNode_t *pDependencies, size_t *pNumDependencies); +# 11779 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphNodeGetDependentNodes(cudaGraphNode_t node, cudaGraphNode_t *pDependentNodes, size_t *pNumDependentNodes); +# 11810 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphAddDependencies(cudaGraph_t graph, const cudaGraphNode_t *from, const cudaGraphNode_t *to, size_t numDependencies); +# 11841 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphRemoveDependencies(cudaGraph_t graph, const cudaGraphNode_t *from, const cudaGraphNode_t *to, size_t numDependencies); +# 11871 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphDestroyNode(cudaGraphNode_t node); +# 11909 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphInstantiate(cudaGraphExec_t *pGraphExec, cudaGraph_t graph, cudaGraphNode_t *pErrorNode, char *pLogBuffer, size_t bufferSize); +# 11957 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphInstantiateWithFlags(cudaGraphExec_t *pGraphExec, cudaGraph_t graph, unsigned long long flags); +# 12001 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphExecKernelNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, const struct cudaKernelNodeParams *pNodeParams); +# 12051 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphExecMemcpyNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, const struct cudaMemcpy3DParms *pNodeParams); +# 12106 "/usr/include/cuda_runtime_api.h" 3 4 + extern __attribute__((host)) cudaError_t cudaGraphExecMemcpyNodeSetParamsToSymbol( + cudaGraphExec_t hGraphExec, + cudaGraphNode_t node, + const void* symbol, + const void* src, + size_t count, + size_t offset, + enum cudaMemcpyKind kind); +# 12169 "/usr/include/cuda_runtime_api.h" 3 4 + extern __attribute__((host)) cudaError_t cudaGraphExecMemcpyNodeSetParamsFromSymbol( + cudaGraphExec_t hGraphExec, + cudaGraphNode_t node, + void* dst, + const void* symbol, + size_t count, + size_t offset, + enum cudaMemcpyKind kind); +# 12230 "/usr/include/cuda_runtime_api.h" 3 4 + extern __attribute__((host)) cudaError_t cudaGraphExecMemcpyNodeSetParams1D( + cudaGraphExec_t hGraphExec, + cudaGraphNode_t node, + void* dst, + const void* src, + size_t count, + enum cudaMemcpyKind kind); +# 12284 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphExecMemsetNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, const struct cudaMemsetParams *pNodeParams); +# 12323 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphExecHostNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, const struct cudaHostNodeParams *pNodeParams); +# 12369 "/usr/include/cuda_runtime_api.h" 3 4 + extern __attribute__((host)) cudaError_t cudaGraphExecChildGraphNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, cudaGraph_t childGraph); +# 12413 "/usr/include/cuda_runtime_api.h" 3 4 + extern __attribute__((host)) cudaError_t cudaGraphExecEventRecordNodeSetEvent(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, cudaEvent_t event); +# 12457 "/usr/include/cuda_runtime_api.h" 3 4 + extern __attribute__((host)) cudaError_t cudaGraphExecEventWaitNodeSetEvent(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, cudaEvent_t event); +# 12504 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphExecExternalSemaphoresSignalNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, const struct cudaExternalSemaphoreSignalNodeParams *nodeParams); +# 12551 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphExecExternalSemaphoresWaitNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, const struct cudaExternalSemaphoreWaitNodeParams *nodeParams); +# 12591 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphNodeSetEnabled(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, unsigned int isEnabled); +# 12625 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphNodeGetEnabled(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, unsigned int *isEnabled); +# 12706 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphExecUpdate(cudaGraphExec_t hGraphExec, cudaGraph_t hGraph, cudaGraphNode_t *hErrorNode_out, enum cudaGraphExecUpdateResult *updateResult_out); +# 12731 "/usr/include/cuda_runtime_api.h" 3 4 + extern __attribute__((host)) cudaError_t cudaGraphUpload(cudaGraphExec_t graphExec, cudaStream_t stream); +# 12762 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphLaunch(cudaGraphExec_t graphExec, cudaStream_t stream); +# 12785 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphExecDestroy(cudaGraphExec_t graphExec); +# 12806 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphDestroy(cudaGraph_t graph); +# 12825 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphDebugDotPrint(cudaGraph_t graph, const char *path, unsigned int flags); +# 12861 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaUserObjectCreate(cudaUserObject_t *object_out, void *ptr, cudaHostFn_t destroy, unsigned int initialRefcount, unsigned int flags); +# 12885 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaUserObjectRetain(cudaUserObject_t object, unsigned int count = 1); +# 12913 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaUserObjectRelease(cudaUserObject_t object, unsigned int count = 1); +# 12941 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphRetainUserObject(cudaGraph_t graph, cudaUserObject_t object, unsigned int count = 1, unsigned int flags = 0); +# 12966 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphReleaseUserObject(cudaGraph_t graph, cudaUserObject_t object, unsigned int count = 1); +# 13032 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGetDriverEntryPoint(const char *symbol, void **funcPtr, unsigned long long flags); + + + + +extern __attribute__((host)) cudaError_t cudaGetExportTable(const void **ppExportTable, const cudaUUID_t *pExportTableId); +# 13213 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGetFuncBySymbol(cudaFunction_t* functionPtr, const void* symbolPtr); +# 13365 "/usr/include/cuda_runtime_api.h" 3 4 +} +# 62 "/usr/include/channel_descriptor.h" 2 3 4 +# 124 "/usr/include/channel_descriptor.h" 3 4 +template __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(0, 0, 0, 0, cudaChannelFormatKindNone); +} + +static __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDescHalf(void) +{ + int e = (int)sizeof(unsigned short) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindFloat); +} + +static __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDescHalf1(void) +{ + int e = (int)sizeof(unsigned short) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindFloat); +} + +static __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDescHalf2(void) +{ + int e = (int)sizeof(unsigned short) * 8; + + return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindFloat); +} + +static __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDescHalf4(void) +{ + int e = (int)sizeof(unsigned short) * 8; + + return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindFloat); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(char) * 8; + + + + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); + +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(signed char) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned char) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(signed char) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned char) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(signed char) * 8; + + return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned char) * 8; + + return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(signed char) * 8; + + return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned char) * 8; + + return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(short) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned short) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(short) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned short) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(short) * 8; + + return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned short) * 8; + + return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(short) * 8; + + return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned short) * 8; + + return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(int) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned int) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(int) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned int) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(int) * 8; + + return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned int) * 8; + + return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(int) * 8; + + return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned int) * 8; + + return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindUnsigned); +} +# 396 "/usr/include/channel_descriptor.h" 3 4 +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(float) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindFloat); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(float) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindFloat); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(float) * 8; + + return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindFloat); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(float) * 8; + + return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindFloat); +} + +static __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDescNV12(void) +{ + int e = (int)sizeof(char) * 8; + + return cudaCreateChannelDesc(e, e, e, 0, cudaChannelFormatKindNV12); +} + +template __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(0, 0, 0, 0, cudaChannelFormatKindNone); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 0, 0, 0, cudaChannelFormatKindSignedNormalized8X1); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 0, 0, cudaChannelFormatKindSignedNormalized8X2); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindSignedNormalized8X4); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 0, 0, 0, cudaChannelFormatKindUnsignedNormalized8X1); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 0, 0, cudaChannelFormatKindUnsignedNormalized8X2); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedNormalized8X4); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(16, 0, 0, 0, cudaChannelFormatKindSignedNormalized16X1); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(16, 16, 0, 0, cudaChannelFormatKindSignedNormalized16X2); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(16, 16, 16, 16, cudaChannelFormatKindSignedNormalized16X4); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(16, 0, 0, 0, cudaChannelFormatKindUnsignedNormalized16X1); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(16, 16, 0, 0, cudaChannelFormatKindUnsignedNormalized16X2); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(16, 16, 16, 16, cudaChannelFormatKindUnsignedNormalized16X4); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 0, cudaChannelFormatKindNV12); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed1); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed1SRGB); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed2); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed2SRGB); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed3); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed3SRGB); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 0, 0, 0, cudaChannelFormatKindUnsignedBlockCompressed4); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 0, 0, 0, cudaChannelFormatKindSignedBlockCompressed4); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 0, 0, cudaChannelFormatKindUnsignedBlockCompressed5); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 0, 0, cudaChannelFormatKindSignedBlockCompressed5); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(16, 16, 16, 0, cudaChannelFormatKindUnsignedBlockCompressed6H); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(16, 16, 16, 0, cudaChannelFormatKindSignedBlockCompressed6H); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed7); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed7SRGB); +} +# 96 "/usr/include/cuda_runtime.h" 2 3 4 + +# 1 "/usr/include/driver_functions.h" 1 3 4 +# 53 "/usr/include/driver_functions.h" 3 4 +# 1 "/usr/include/builtin_types.h" 1 3 4 +# 54 "/usr/include/driver_functions.h" 2 3 4 +# 1 "/usr/include/crt/host_defines.h" 1 3 4 +# 55 "/usr/include/driver_functions.h" 2 3 4 +# 79 "/usr/include/driver_functions.h" 3 4 +static __inline__ __attribute__((host)) struct cudaPitchedPtr make_cudaPitchedPtr(void *d, size_t p, size_t xsz, size_t ysz) +{ + struct cudaPitchedPtr s; + + s.ptr = d; + s.pitch = p; + s.xsize = xsz; + s.ysize = ysz; + + return s; +} +# 106 "/usr/include/driver_functions.h" 3 4 +static __inline__ __attribute__((host)) struct cudaPos make_cudaPos(size_t x, size_t y, size_t z) +{ + struct cudaPos p; + + p.x = x; + p.y = y; + p.z = z; + + return p; +} +# 132 "/usr/include/driver_functions.h" 3 4 +static __inline__ __attribute__((host)) struct cudaExtent make_cudaExtent(size_t w, size_t h, size_t d) +{ + struct cudaExtent e; + + e.width = w; + e.height = h; + e.depth = d; + + return e; +} +# 98 "/usr/include/cuda_runtime.h" 2 3 4 + + +# 1 "/usr/include/crt/host_defines.h" 1 3 4 +# 101 "/usr/include/cuda_runtime.h" 2 3 4 +# 1 "/usr/include/vector_functions.h" 1 3 4 +# 73 "/usr/include/vector_functions.h" 3 4 +static __inline__ __attribute__((host)) __attribute__((device)) char1 make_char1(signed char x); + +static __inline__ __attribute__((host)) __attribute__((device)) uchar1 make_uchar1(unsigned char x); + +static __inline__ __attribute__((host)) __attribute__((device)) char2 make_char2(signed char x, signed char y); + +static __inline__ __attribute__((host)) __attribute__((device)) uchar2 make_uchar2(unsigned char x, unsigned char y); + +static __inline__ __attribute__((host)) __attribute__((device)) char3 make_char3(signed char x, signed char y, signed char z); + +static __inline__ __attribute__((host)) __attribute__((device)) uchar3 make_uchar3(unsigned char x, unsigned char y, unsigned char z); + +static __inline__ __attribute__((host)) __attribute__((device)) char4 make_char4(signed char x, signed char y, signed char z, signed char w); + +static __inline__ __attribute__((host)) __attribute__((device)) uchar4 make_uchar4(unsigned char x, unsigned char y, unsigned char z, unsigned char w); + +static __inline__ __attribute__((host)) __attribute__((device)) short1 make_short1(short x); + +static __inline__ __attribute__((host)) __attribute__((device)) ushort1 make_ushort1(unsigned short x); + +static __inline__ __attribute__((host)) __attribute__((device)) short2 make_short2(short x, short y); + +static __inline__ __attribute__((host)) __attribute__((device)) ushort2 make_ushort2(unsigned short x, unsigned short y); + +static __inline__ __attribute__((host)) __attribute__((device)) short3 make_short3(short x,short y, short z); + +static __inline__ __attribute__((host)) __attribute__((device)) ushort3 make_ushort3(unsigned short x, unsigned short y, unsigned short z); + +static __inline__ __attribute__((host)) __attribute__((device)) short4 make_short4(short x, short y, short z, short w); + +static __inline__ __attribute__((host)) __attribute__((device)) ushort4 make_ushort4(unsigned short x, unsigned short y, unsigned short z, unsigned short w); + +static __inline__ __attribute__((host)) __attribute__((device)) int1 make_int1(int x); + +static __inline__ __attribute__((host)) __attribute__((device)) uint1 make_uint1(unsigned int x); + +static __inline__ __attribute__((host)) __attribute__((device)) int2 make_int2(int x, int y); + +static __inline__ __attribute__((host)) __attribute__((device)) uint2 make_uint2(unsigned int x, unsigned int y); + +static __inline__ __attribute__((host)) __attribute__((device)) int3 make_int3(int x, int y, int z); + +static __inline__ __attribute__((host)) __attribute__((device)) uint3 make_uint3(unsigned int x, unsigned int y, unsigned int z); + +static __inline__ __attribute__((host)) __attribute__((device)) int4 make_int4(int x, int y, int z, int w); + +static __inline__ __attribute__((host)) __attribute__((device)) uint4 make_uint4(unsigned int x, unsigned int y, unsigned int z, unsigned int w); + +static __inline__ __attribute__((host)) __attribute__((device)) long1 make_long1(long int x); + +static __inline__ __attribute__((host)) __attribute__((device)) ulong1 make_ulong1(unsigned long int x); + +static __inline__ __attribute__((host)) __attribute__((device)) long2 make_long2(long int x, long int y); + +static __inline__ __attribute__((host)) __attribute__((device)) ulong2 make_ulong2(unsigned long int x, unsigned long int y); + +static __inline__ __attribute__((host)) __attribute__((device)) long3 make_long3(long int x, long int y, long int z); + +static __inline__ __attribute__((host)) __attribute__((device)) ulong3 make_ulong3(unsigned long int x, unsigned long int y, unsigned long int z); + +static __inline__ __attribute__((host)) __attribute__((device)) long4 make_long4(long int x, long int y, long int z, long int w); + +static __inline__ __attribute__((host)) __attribute__((device)) ulong4 make_ulong4(unsigned long int x, unsigned long int y, unsigned long int z, unsigned long int w); + +static __inline__ __attribute__((host)) __attribute__((device)) float1 make_float1(float x); + +static __inline__ __attribute__((host)) __attribute__((device)) float2 make_float2(float x, float y); + +static __inline__ __attribute__((host)) __attribute__((device)) float3 make_float3(float x, float y, float z); + +static __inline__ __attribute__((host)) __attribute__((device)) float4 make_float4(float x, float y, float z, float w); + +static __inline__ __attribute__((host)) __attribute__((device)) longlong1 make_longlong1(long long int x); + +static __inline__ __attribute__((host)) __attribute__((device)) ulonglong1 make_ulonglong1(unsigned long long int x); + +static __inline__ __attribute__((host)) __attribute__((device)) longlong2 make_longlong2(long long int x, long long int y); + +static __inline__ __attribute__((host)) __attribute__((device)) ulonglong2 make_ulonglong2(unsigned long long int x, unsigned long long int y); + +static __inline__ __attribute__((host)) __attribute__((device)) longlong3 make_longlong3(long long int x, long long int y, long long int z); + +static __inline__ __attribute__((host)) __attribute__((device)) ulonglong3 make_ulonglong3(unsigned long long int x, unsigned long long int y, unsigned long long int z); + +static __inline__ __attribute__((host)) __attribute__((device)) longlong4 make_longlong4(long long int x, long long int y, long long int z, long long int w); + +static __inline__ __attribute__((host)) __attribute__((device)) ulonglong4 make_ulonglong4(unsigned long long int x, unsigned long long int y, unsigned long long int z, unsigned long long int w); + +static __inline__ __attribute__((host)) __attribute__((device)) double1 make_double1(double x); + +static __inline__ __attribute__((host)) __attribute__((device)) double2 make_double2(double x, double y); + +static __inline__ __attribute__((host)) __attribute__((device)) double3 make_double3(double x, double y, double z); + +static __inline__ __attribute__((host)) __attribute__((device)) double4 make_double4(double x, double y, double z, double w); + + + + +# 1 "/usr/include/vector_functions.hpp" 1 3 4 +# 73 "/usr/include/vector_functions.hpp" 3 4 +static __inline__ __attribute__((host)) __attribute__((device)) char1 make_char1(signed char x) +{ + char1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) uchar1 make_uchar1(unsigned char x) +{ + uchar1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) char2 make_char2(signed char x, signed char y) +{ + char2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) uchar2 make_uchar2(unsigned char x, unsigned char y) +{ + uchar2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) char3 make_char3(signed char x, signed char y, signed char z) +{ + char3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) uchar3 make_uchar3(unsigned char x, unsigned char y, unsigned char z) +{ + uchar3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) char4 make_char4(signed char x, signed char y, signed char z, signed char w) +{ + char4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) uchar4 make_uchar4(unsigned char x, unsigned char y, unsigned char z, unsigned char w) +{ + uchar4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) short1 make_short1(short x) +{ + short1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ushort1 make_ushort1(unsigned short x) +{ + ushort1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) short2 make_short2(short x, short y) +{ + short2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ushort2 make_ushort2(unsigned short x, unsigned short y) +{ + ushort2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) short3 make_short3(short x,short y, short z) +{ + short3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ushort3 make_ushort3(unsigned short x, unsigned short y, unsigned short z) +{ + ushort3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) short4 make_short4(short x, short y, short z, short w) +{ + short4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ushort4 make_ushort4(unsigned short x, unsigned short y, unsigned short z, unsigned short w) +{ + ushort4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) int1 make_int1(int x) +{ + int1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) uint1 make_uint1(unsigned int x) +{ + uint1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) int2 make_int2(int x, int y) +{ + int2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) uint2 make_uint2(unsigned int x, unsigned int y) +{ + uint2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) int3 make_int3(int x, int y, int z) +{ + int3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) uint3 make_uint3(unsigned int x, unsigned int y, unsigned int z) +{ + uint3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) int4 make_int4(int x, int y, int z, int w) +{ + int4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) uint4 make_uint4(unsigned int x, unsigned int y, unsigned int z, unsigned int w) +{ + uint4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) long1 make_long1(long int x) +{ + long1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ulong1 make_ulong1(unsigned long int x) +{ + ulong1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) long2 make_long2(long int x, long int y) +{ + long2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ulong2 make_ulong2(unsigned long int x, unsigned long int y) +{ + ulong2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) long3 make_long3(long int x, long int y, long int z) +{ + long3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ulong3 make_ulong3(unsigned long int x, unsigned long int y, unsigned long int z) +{ + ulong3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) long4 make_long4(long int x, long int y, long int z, long int w) +{ + long4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ulong4 make_ulong4(unsigned long int x, unsigned long int y, unsigned long int z, unsigned long int w) +{ + ulong4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) float1 make_float1(float x) +{ + float1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) float2 make_float2(float x, float y) +{ + float2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) float3 make_float3(float x, float y, float z) +{ + float3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) float4 make_float4(float x, float y, float z, float w) +{ + float4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) longlong1 make_longlong1(long long int x) +{ + longlong1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ulonglong1 make_ulonglong1(unsigned long long int x) +{ + ulonglong1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) longlong2 make_longlong2(long long int x, long long int y) +{ + longlong2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ulonglong2 make_ulonglong2(unsigned long long int x, unsigned long long int y) +{ + ulonglong2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) longlong3 make_longlong3(long long int x, long long int y, long long int z) +{ + longlong3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ulonglong3 make_ulonglong3(unsigned long long int x, unsigned long long int y, unsigned long long int z) +{ + ulonglong3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) longlong4 make_longlong4(long long int x, long long int y, long long int z, long long int w) +{ + longlong4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ulonglong4 make_ulonglong4(unsigned long long int x, unsigned long long int y, unsigned long long int z, unsigned long long int w) +{ + ulonglong4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) double1 make_double1(double x) +{ + double1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) double2 make_double2(double x, double y) +{ + double2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) double3 make_double3(double x, double y, double z) +{ + double3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) double4 make_double4(double x, double y, double z, double w) +{ + double4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} +# 173 "/usr/include/vector_functions.h" 2 3 4 +# 102 "/usr/include/cuda_runtime.h" 2 3 4 +# 115 "/usr/include/cuda_runtime.h" 3 4 +# 1 "/usr/include/crt/common_functions.h" 1 3 4 +# 71 "/usr/include/crt/common_functions.h" 3 4 +# 1 "/usr/include/builtin_types.h" 1 3 4 +# 72 "/usr/include/crt/common_functions.h" 2 3 4 +# 1 "/usr/include/crt/host_defines.h" 1 3 4 +# 73 "/usr/include/crt/common_functions.h" 2 3 4 +# 85 "/usr/include/crt/common_functions.h" 3 4 +# 1 "/usr/include/string.h" 1 3 4 +# 26 "/usr/include/string.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/libc-header-start.h" 1 3 4 +# 27 "/usr/include/string.h" 2 3 4 + +extern "C" { + + + + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h" 1 3 4 +# 34 "/usr/include/string.h" 2 3 4 +# 43 "/usr/include/string.h" 3 4 +extern void *memcpy (void *__restrict __dest, const void *__restrict __src, + size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); + + +extern void *memmove (void *__dest, const void *__src, size_t __n) + throw () __attribute__ ((__nonnull__ (1, 2))); + + + + + +extern void *memccpy (void *__restrict __dest, const void *__restrict __src, + int __c, size_t __n) + throw () __attribute__ ((__nonnull__ (1, 2))); + + + + +extern void *memset (void *__s, int __c, size_t __n) throw () __attribute__ ((__nonnull__ (1))); + + +extern int memcmp (const void *__s1, const void *__s2, size_t __n) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + + +extern "C++" +{ +extern void *memchr (void *__s, int __c, size_t __n) + throw () __asm ("memchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +extern const void *memchr (const void *__s, int __c, size_t __n) + throw () __asm ("memchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +# 89 "/usr/include/string.h" 3 4 +} +# 99 "/usr/include/string.h" 3 4 +extern "C++" void *rawmemchr (void *__s, int __c) + throw () __asm ("rawmemchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +extern "C++" const void *rawmemchr (const void *__s, int __c) + throw () __asm ("rawmemchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); + + + + + + + +extern "C++" void *memrchr (void *__s, int __c, size_t __n) + throw () __asm ("memrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +extern "C++" const void *memrchr (const void *__s, int __c, size_t __n) + throw () __asm ("memrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +# 122 "/usr/include/string.h" 3 4 +extern char *strcpy (char *__restrict __dest, const char *__restrict __src) + throw () __attribute__ ((__nonnull__ (1, 2))); + +extern char *strncpy (char *__restrict __dest, + const char *__restrict __src, size_t __n) + throw () __attribute__ ((__nonnull__ (1, 2))); + + +extern char *strcat (char *__restrict __dest, const char *__restrict __src) + throw () __attribute__ ((__nonnull__ (1, 2))); + +extern char *strncat (char *__restrict __dest, const char *__restrict __src, + size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); + + +extern int strcmp (const char *__s1, const char *__s2) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + +extern int strncmp (const char *__s1, const char *__s2, size_t __n) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern int strcoll (const char *__s1, const char *__s2) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + +extern size_t strxfrm (char *__restrict __dest, + const char *__restrict __src, size_t __n) + throw () __attribute__ ((__nonnull__ (2))); + + + +# 1 "/usr/include/x86_64-linux-gnu/bits/types/locale_t.h" 1 3 4 +# 22 "/usr/include/x86_64-linux-gnu/bits/types/locale_t.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h" 1 3 4 +# 28 "/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h" 3 4 +struct __locale_struct +{ + + struct __locale_data *__locales[13]; + + + const unsigned short int *__ctype_b; + const int *__ctype_tolower; + const int *__ctype_toupper; + + + const char *__names[13]; +}; + +typedef struct __locale_struct *__locale_t; +# 23 "/usr/include/x86_64-linux-gnu/bits/types/locale_t.h" 2 3 4 + +typedef __locale_t locale_t; +# 154 "/usr/include/string.h" 2 3 4 + + +extern int strcoll_l (const char *__s1, const char *__s2, locale_t __l) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); + + +extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n, + locale_t __l) throw () __attribute__ ((__nonnull__ (2, 4))); + + + + + +extern char *strdup (const char *__s) + throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); + + + + + + +extern char *strndup (const char *__string, size_t __n) + throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); +# 204 "/usr/include/string.h" 3 4 +extern "C++" +{ +extern char *strchr (char *__s, int __c) + throw () __asm ("strchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +extern const char *strchr (const char *__s, int __c) + throw () __asm ("strchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +# 224 "/usr/include/string.h" 3 4 +} + + + + + + +extern "C++" +{ +extern char *strrchr (char *__s, int __c) + throw () __asm ("strrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +extern const char *strrchr (const char *__s, int __c) + throw () __asm ("strrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +# 251 "/usr/include/string.h" 3 4 +} +# 261 "/usr/include/string.h" 3 4 +extern "C++" char *strchrnul (char *__s, int __c) + throw () __asm ("strchrnul") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +extern "C++" const char *strchrnul (const char *__s, int __c) + throw () __asm ("strchrnul") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +# 273 "/usr/include/string.h" 3 4 +extern size_t strcspn (const char *__s, const char *__reject) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern size_t strspn (const char *__s, const char *__accept) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern "C++" +{ +extern char *strpbrk (char *__s, const char *__accept) + throw () __asm ("strpbrk") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); +extern const char *strpbrk (const char *__s, const char *__accept) + throw () __asm ("strpbrk") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); +# 301 "/usr/include/string.h" 3 4 +} + + + + + + +extern "C++" +{ +extern char *strstr (char *__haystack, const char *__needle) + throw () __asm ("strstr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); +extern const char *strstr (const char *__haystack, const char *__needle) + throw () __asm ("strstr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); +# 328 "/usr/include/string.h" 3 4 +} + + + + + + + +extern char *strtok (char *__restrict __s, const char *__restrict __delim) + throw () __attribute__ ((__nonnull__ (2))); + + + +extern char *__strtok_r (char *__restrict __s, + const char *__restrict __delim, + char **__restrict __save_ptr) + throw () __attribute__ ((__nonnull__ (2, 3))); + +extern char *strtok_r (char *__restrict __s, const char *__restrict __delim, + char **__restrict __save_ptr) + throw () __attribute__ ((__nonnull__ (2, 3))); + + + + + +extern "C++" char *strcasestr (char *__haystack, const char *__needle) + throw () __asm ("strcasestr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); +extern "C++" const char *strcasestr (const char *__haystack, + const char *__needle) + throw () __asm ("strcasestr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); +# 369 "/usr/include/string.h" 3 4 +extern void *memmem (const void *__haystack, size_t __haystacklen, + const void *__needle, size_t __needlelen) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3))); + + + +extern void *__mempcpy (void *__restrict __dest, + const void *__restrict __src, size_t __n) + throw () __attribute__ ((__nonnull__ (1, 2))); +extern void *mempcpy (void *__restrict __dest, + const void *__restrict __src, size_t __n) + throw () __attribute__ ((__nonnull__ (1, 2))); + + + + +extern size_t strlen (const char *__s) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); + + + + +extern size_t strnlen (const char *__string, size_t __maxlen) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); + + + + +extern char *strerror (int __errnum) throw (); +# 421 "/usr/include/string.h" 3 4 +extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) + throw () __attribute__ ((__nonnull__ (2))) ; + + + + + +extern char *strerror_l (int __errnum, locale_t __l) throw (); + + + +# 1 "/usr/include/strings.h" 1 3 4 +# 23 "/usr/include/strings.h" 3 4 +# 1 "/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h" 1 3 4 +# 24 "/usr/include/strings.h" 2 3 4 + + + + + + +extern "C" { + + + +extern int bcmp (const void *__s1, const void *__s2, size_t __n) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern void bcopy (const void *__src, void *__dest, size_t __n) + throw () __attribute__ ((__nonnull__ (1, 2))); + + +extern void bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); + + + +extern "C++" +{ +extern char *index (char *__s, int __c) + throw () __asm ("index") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +extern const char *index (const char *__s, int __c) + throw () __asm ("index") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +# 66 "/usr/include/strings.h" 3 4 +} + + + + + + + +extern "C++" +{ +extern char *rindex (char *__s, int __c) + throw () __asm ("rindex") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +extern const char *rindex (const char *__s, int __c) + throw () __asm ("rindex") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +# 94 "/usr/include/strings.h" 3 4 +} +# 104 "/usr/include/strings.h" 3 4 +extern int ffs (int __i) throw () __attribute__ ((__const__)); + + + + + +extern int ffsl (long int __l) throw () __attribute__ ((__const__)); +__extension__ extern int ffsll (long long int __ll) + throw () __attribute__ ((__const__)); + + + +extern int strcasecmp (const char *__s1, const char *__s2) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern int strncasecmp (const char *__s1, const char *__s2, size_t __n) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + + + + + +extern int strcasecmp_l (const char *__s1, const char *__s2, locale_t __loc) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); + + + +extern int strncasecmp_l (const char *__s1, const char *__s2, + size_t __n, locale_t __loc) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4))); + + +} +# 433 "/usr/include/string.h" 2 3 4 + + + +extern void explicit_bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); + + + +extern char *strsep (char **__restrict __stringp, + const char *__restrict __delim) + throw () __attribute__ ((__nonnull__ (1, 2))); + + + + +extern char *strsignal (int __sig) throw (); + + +extern char *__stpcpy (char *__restrict __dest, const char *__restrict __src) + throw () __attribute__ ((__nonnull__ (1, 2))); +extern char *stpcpy (char *__restrict __dest, const char *__restrict __src) + throw () __attribute__ ((__nonnull__ (1, 2))); + + + +extern char *__stpncpy (char *__restrict __dest, + const char *__restrict __src, size_t __n) + throw () __attribute__ ((__nonnull__ (1, 2))); +extern char *stpncpy (char *__restrict __dest, + const char *__restrict __src, size_t __n) + throw () __attribute__ ((__nonnull__ (1, 2))); + + + + +extern int strverscmp (const char *__s1, const char *__s2) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern char *strfry (char *__string) throw () __attribute__ ((__nonnull__ (1))); + + +extern void *memfrob (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); + + + + + + + +extern "C++" char *basename (char *__filename) + throw () __asm ("basename") __attribute__ ((__nonnull__ (1))); +extern "C++" const char *basename (const char *__filename) + throw () __asm ("basename") __attribute__ ((__nonnull__ (1))); +# 499 "/usr/include/string.h" 3 4 +} +# 86 "/usr/include/crt/common_functions.h" 2 3 4 +# 1 "/usr/include/time.h" 1 3 4 +# 29 "/usr/include/time.h" 3 4 +# 1 "/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h" 1 3 4 +# 30 "/usr/include/time.h" 2 3 4 + + + +# 1 "/usr/include/x86_64-linux-gnu/bits/time.h" 1 3 4 +# 26 "/usr/include/x86_64-linux-gnu/bits/time.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/types.h" 1 3 4 +# 27 "/usr/include/x86_64-linux-gnu/bits/types.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 +# 28 "/usr/include/x86_64-linux-gnu/bits/types.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/timesize.h" 1 3 4 +# 29 "/usr/include/x86_64-linux-gnu/bits/types.h" 2 3 4 + + +typedef unsigned char __u_char; +typedef unsigned short int __u_short; +typedef unsigned int __u_int; +typedef unsigned long int __u_long; + + +typedef signed char __int8_t; +typedef unsigned char __uint8_t; +typedef signed short int __int16_t; +typedef unsigned short int __uint16_t; +typedef signed int __int32_t; +typedef unsigned int __uint32_t; + +typedef signed long int __int64_t; +typedef unsigned long int __uint64_t; + + + + + + +typedef __int8_t __int_least8_t; +typedef __uint8_t __uint_least8_t; +typedef __int16_t __int_least16_t; +typedef __uint16_t __uint_least16_t; +typedef __int32_t __int_least32_t; +typedef __uint32_t __uint_least32_t; +typedef __int64_t __int_least64_t; +typedef __uint64_t __uint_least64_t; + + + +typedef long int __quad_t; +typedef unsigned long int __u_quad_t; + + + + + + + +typedef long int __intmax_t; +typedef unsigned long int __uintmax_t; +# 141 "/usr/include/x86_64-linux-gnu/bits/types.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/typesizes.h" 1 3 4 +# 142 "/usr/include/x86_64-linux-gnu/bits/types.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/time64.h" 1 3 4 +# 143 "/usr/include/x86_64-linux-gnu/bits/types.h" 2 3 4 + + +typedef unsigned long int __dev_t; +typedef unsigned int __uid_t; +typedef unsigned int __gid_t; +typedef unsigned long int __ino_t; +typedef unsigned long int __ino64_t; +typedef unsigned int __mode_t; +typedef unsigned long int __nlink_t; +typedef long int __off_t; +typedef long int __off64_t; +typedef int __pid_t; +typedef struct { int __val[2]; } __fsid_t; +typedef long int __clock_t; +typedef unsigned long int __rlim_t; +typedef unsigned long int __rlim64_t; +typedef unsigned int __id_t; +typedef long int __time_t; +typedef unsigned int __useconds_t; +typedef long int __suseconds_t; + +typedef int __daddr_t; +typedef int __key_t; + + +typedef int __clockid_t; + + +typedef void * __timer_t; + + +typedef long int __blksize_t; + + + + +typedef long int __blkcnt_t; +typedef long int __blkcnt64_t; + + +typedef unsigned long int __fsblkcnt_t; +typedef unsigned long int __fsblkcnt64_t; + + +typedef unsigned long int __fsfilcnt_t; +typedef unsigned long int __fsfilcnt64_t; + + +typedef long int __fsword_t; + +typedef long int __ssize_t; + + +typedef long int __syscall_slong_t; + +typedef unsigned long int __syscall_ulong_t; + + + +typedef __off64_t __loff_t; +typedef char *__caddr_t; + + +typedef long int __intptr_t; + + +typedef unsigned int __socklen_t; + + + + +typedef int __sig_atomic_t; +# 27 "/usr/include/x86_64-linux-gnu/bits/time.h" 2 3 4 +# 73 "/usr/include/x86_64-linux-gnu/bits/time.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/timex.h" 1 3 4 +# 22 "/usr/include/x86_64-linux-gnu/bits/timex.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h" 1 3 4 + + + + + + + +struct timeval +{ + __time_t tv_sec; + __suseconds_t tv_usec; +}; +# 23 "/usr/include/x86_64-linux-gnu/bits/timex.h" 2 3 4 + + + +struct timex +{ + unsigned int modes; + __syscall_slong_t offset; + __syscall_slong_t freq; + __syscall_slong_t maxerror; + __syscall_slong_t esterror; + int status; + __syscall_slong_t constant; + __syscall_slong_t precision; + __syscall_slong_t tolerance; + struct timeval time; + __syscall_slong_t tick; + __syscall_slong_t ppsfreq; + __syscall_slong_t jitter; + int shift; + __syscall_slong_t stabil; + __syscall_slong_t jitcnt; + __syscall_slong_t calcnt; + __syscall_slong_t errcnt; + __syscall_slong_t stbcnt; + + int tai; + + + int :32; int :32; int :32; int :32; + int :32; int :32; int :32; int :32; + int :32; int :32; int :32; +}; +# 74 "/usr/include/x86_64-linux-gnu/bits/time.h" 2 3 4 + +extern "C" { + + +extern int clock_adjtime (__clockid_t __clock_id, struct timex *__utx) throw (); + +} +# 34 "/usr/include/time.h" 2 3 4 + + + +# 1 "/usr/include/x86_64-linux-gnu/bits/types/clock_t.h" 1 3 4 + + + + + + +typedef __clock_t clock_t; +# 38 "/usr/include/time.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/types/time_t.h" 1 3 4 + + + + + + +typedef __time_t time_t; +# 39 "/usr/include/time.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h" 1 3 4 + + + + + + +struct tm +{ + int tm_sec; + int tm_min; + int tm_hour; + int tm_mday; + int tm_mon; + int tm_year; + int tm_wday; + int tm_yday; + int tm_isdst; + + + long int tm_gmtoff; + const char *tm_zone; + + + + +}; +# 40 "/usr/include/time.h" 2 3 4 + + +# 1 "/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h" 1 3 4 + + + + + +# 1 "/usr/include/x86_64-linux-gnu/bits/endian.h" 1 3 4 +# 35 "/usr/include/x86_64-linux-gnu/bits/endian.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/endianness.h" 1 3 4 +# 36 "/usr/include/x86_64-linux-gnu/bits/endian.h" 2 3 4 +# 7 "/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h" 2 3 4 + + + +struct timespec +{ + __time_t tv_sec; + + + + __syscall_slong_t tv_nsec; +# 26 "/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h" 3 4 +}; +# 43 "/usr/include/time.h" 2 3 4 + + + +# 1 "/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h" 1 3 4 + + + + + + +typedef __clockid_t clockid_t; +# 47 "/usr/include/time.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/types/timer_t.h" 1 3 4 + + + + + + +typedef __timer_t timer_t; +# 48 "/usr/include/time.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h" 1 3 4 + + + + + + + +struct itimerspec + { + struct timespec it_interval; + struct timespec it_value; + }; +# 49 "/usr/include/time.h" 2 3 4 +struct sigevent; + + + + +typedef __pid_t pid_t; +# 68 "/usr/include/time.h" 3 4 +extern "C" { + + + +extern clock_t clock (void) throw (); + + +extern time_t time (time_t *__timer) throw (); + + +extern double difftime (time_t __time1, time_t __time0) + throw () __attribute__ ((__const__)); + + +extern time_t mktime (struct tm *__tp) throw (); + + + + + +extern size_t strftime (char *__restrict __s, size_t __maxsize, + const char *__restrict __format, + const struct tm *__restrict __tp) throw (); + + + + +extern char *strptime (const char *__restrict __s, + const char *__restrict __fmt, struct tm *__tp) + throw (); + + + + + + +extern size_t strftime_l (char *__restrict __s, size_t __maxsize, + const char *__restrict __format, + const struct tm *__restrict __tp, + locale_t __loc) throw (); + + + +extern char *strptime_l (const char *__restrict __s, + const char *__restrict __fmt, struct tm *__tp, + locale_t __loc) throw (); + + + + + +extern struct tm *gmtime (const time_t *__timer) throw (); + + + +extern struct tm *localtime (const time_t *__timer) throw (); + + + + +extern struct tm *gmtime_r (const time_t *__restrict __timer, + struct tm *__restrict __tp) throw (); + + + +extern struct tm *localtime_r (const time_t *__restrict __timer, + struct tm *__restrict __tp) throw (); + + + + +extern char *asctime (const struct tm *__tp) throw (); + + +extern char *ctime (const time_t *__timer) throw (); + + + + + + +extern char *asctime_r (const struct tm *__restrict __tp, + char *__restrict __buf) throw (); + + +extern char *ctime_r (const time_t *__restrict __timer, + char *__restrict __buf) throw (); + + + + +extern char *__tzname[2]; +extern int __daylight; +extern long int __timezone; + + + + +extern char *tzname[2]; + + + +extern void tzset (void) throw (); + + + +extern int daylight; +extern long int timezone; +# 190 "/usr/include/time.h" 3 4 +extern time_t timegm (struct tm *__tp) throw (); + + +extern time_t timelocal (struct tm *__tp) throw (); + + +extern int dysize (int __year) throw () __attribute__ ((__const__)); +# 205 "/usr/include/time.h" 3 4 +extern int nanosleep (const struct timespec *__requested_time, + struct timespec *__remaining); + + + +extern int clock_getres (clockid_t __clock_id, struct timespec *__res) throw (); + + +extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) throw (); + + +extern int clock_settime (clockid_t __clock_id, const struct timespec *__tp) + throw (); + + + + + + +extern int clock_nanosleep (clockid_t __clock_id, int __flags, + const struct timespec *__req, + struct timespec *__rem); + + +extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) throw (); + + + + +extern int timer_create (clockid_t __clock_id, + struct sigevent *__restrict __evp, + timer_t *__restrict __timerid) throw (); + + +extern int timer_delete (timer_t __timerid) throw (); + + +extern int timer_settime (timer_t __timerid, int __flags, + const struct itimerspec *__restrict __value, + struct itimerspec *__restrict __ovalue) throw (); + + +extern int timer_gettime (timer_t __timerid, struct itimerspec *__value) + throw (); + + +extern int timer_getoverrun (timer_t __timerid) throw (); + + + + + +extern int timespec_get (struct timespec *__ts, int __base) + throw () __attribute__ ((__nonnull__ (1))); +# 274 "/usr/include/time.h" 3 4 +extern int getdate_err; +# 283 "/usr/include/time.h" 3 4 +extern struct tm *getdate (const char *__string); +# 297 "/usr/include/time.h" 3 4 +extern int getdate_r (const char *__restrict __string, + struct tm *__restrict __resbufp); + + +} +# 87 "/usr/include/crt/common_functions.h" 2 3 4 + +extern "C" +{ + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) clock_t clock(void) + + + +throw (); +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) void* memset(void*, int, size_t) throw (); +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) void* memcpy(void*, const void*, size_t) throw (); + +} +# 111 "/usr/include/crt/common_functions.h" 3 4 +# 1 "/usr/include/c++/9/new" 1 3 4 +# 37 "/usr/include/c++/9/new" 3 4 + +# 38 "/usr/include/c++/9/new" 3 + +# 1 "/usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h" 1 3 +# 256 "/usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h" 3 +namespace std +{ + typedef long unsigned int size_t; + typedef long int ptrdiff_t; + + + typedef decltype(nullptr) nullptr_t; + +} +# 278 "/usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h" 3 +namespace std +{ + inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { } +} +namespace __gnu_cxx +{ + inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { } +} +# 528 "/usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h" 3 +# 1 "/usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h" 1 3 +# 529 "/usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h" 2 3 + + +# 1 "/usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h" 1 3 +# 532 "/usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h" 2 3 +# 40 "/usr/include/c++/9/new" 2 3 +# 1 "/usr/include/c++/9/exception" 1 3 +# 33 "/usr/include/c++/9/exception" 3 + +# 34 "/usr/include/c++/9/exception" 3 + +#pragma GCC visibility push(default) + + +# 1 "/usr/include/c++/9/bits/exception.h" 1 3 +# 34 "/usr/include/c++/9/bits/exception.h" 3 + +# 35 "/usr/include/c++/9/bits/exception.h" 3 + +#pragma GCC visibility push(default) + + + +extern "C++" { + +namespace std +{ +# 60 "/usr/include/c++/9/bits/exception.h" 3 + class exception + { + public: + exception() noexcept { } + virtual ~exception() noexcept; + + exception(const exception&) = default; + exception& operator=(const exception&) = default; + exception(exception&&) = default; + exception& operator=(exception&&) = default; + + + + + virtual const char* + what() const noexcept; + }; + + + +} + +} + +#pragma GCC visibility pop +# 39 "/usr/include/c++/9/exception" 2 3 + +extern "C++" { + +namespace std +{ + + + class bad_exception : public exception + { + public: + bad_exception() noexcept { } + + + + virtual ~bad_exception() noexcept; + + + virtual const char* + what() const noexcept; + }; + + + typedef void (*terminate_handler) (); + + + typedef void (*unexpected_handler) (); + + + terminate_handler set_terminate(terminate_handler) noexcept; + + + + terminate_handler get_terminate() noexcept; + + + + + void terminate() noexcept __attribute__ ((__noreturn__)); + + + unexpected_handler set_unexpected(unexpected_handler) noexcept; + + + + unexpected_handler get_unexpected() noexcept; + + + + + void unexpected() __attribute__ ((__noreturn__)); +# 101 "/usr/include/c++/9/exception" 3 + + bool uncaught_exception() noexcept __attribute__ ((__pure__)); + + + + + int uncaught_exceptions() noexcept __attribute__ ((__pure__)); + + + +} + +namespace __gnu_cxx +{ + +# 133 "/usr/include/c++/9/exception" 3 + void __verbose_terminate_handler(); + + +} + +} + +#pragma GCC visibility pop + + +# 1 "/usr/include/c++/9/bits/exception_ptr.h" 1 3 +# 34 "/usr/include/c++/9/bits/exception_ptr.h" 3 +#pragma GCC visibility push(default) + + +# 1 "/usr/include/c++/9/bits/exception_defines.h" 1 3 +# 38 "/usr/include/c++/9/bits/exception_ptr.h" 2 3 +# 1 "/usr/include/c++/9/bits/cxxabi_init_exception.h" 1 3 +# 34 "/usr/include/c++/9/bits/cxxabi_init_exception.h" 3 + +# 35 "/usr/include/c++/9/bits/cxxabi_init_exception.h" 3 + +#pragma GCC visibility push(default) + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h" 1 3 4 +# 39 "/usr/include/c++/9/bits/cxxabi_init_exception.h" 2 3 +# 50 "/usr/include/c++/9/bits/cxxabi_init_exception.h" 3 +namespace std +{ + class type_info; +} + +namespace __cxxabiv1 +{ + struct __cxa_refcounted_exception; + + extern "C" + { + + void* + __cxa_allocate_exception(size_t) noexcept; + + void + __cxa_free_exception(void*) noexcept; + + + __cxa_refcounted_exception* + __cxa_init_primary_exception(void *object, std::type_info *tinfo, + void ( *dest) (void *)) noexcept; + + } +} + + + +#pragma GCC visibility pop +# 39 "/usr/include/c++/9/bits/exception_ptr.h" 2 3 +# 1 "/usr/include/c++/9/typeinfo" 1 3 +# 32 "/usr/include/c++/9/typeinfo" 3 + +# 33 "/usr/include/c++/9/typeinfo" 3 + + + +# 1 "/usr/include/c++/9/bits/hash_bytes.h" 1 3 +# 33 "/usr/include/c++/9/bits/hash_bytes.h" 3 + +# 34 "/usr/include/c++/9/bits/hash_bytes.h" 3 + + + +namespace std +{ + + + + + + + + size_t + _Hash_bytes(const void* __ptr, size_t __len, size_t __seed); + + + + + + size_t + _Fnv_hash_bytes(const void* __ptr, size_t __len, size_t __seed); + + +} +# 37 "/usr/include/c++/9/typeinfo" 2 3 + + +#pragma GCC visibility push(default) + +extern "C++" { + +namespace __cxxabiv1 +{ + class __class_type_info; +} +# 80 "/usr/include/c++/9/typeinfo" 3 +namespace std +{ + + + + + + + class type_info + { + public: + + + + + virtual ~type_info(); + + + + const char* name() const noexcept + { return __name[0] == '*' ? __name + 1 : __name; } +# 115 "/usr/include/c++/9/typeinfo" 3 + bool before(const type_info& __arg) const noexcept + { return (__name[0] == '*' && __arg.__name[0] == '*') + ? __name < __arg.__name + : __builtin_strcmp (__name, __arg.__name) < 0; } + + bool operator==(const type_info& __arg) const noexcept + { + return ((__name == __arg.__name) + || (__name[0] != '*' && + __builtin_strcmp (__name, __arg.__name) == 0)); + } +# 136 "/usr/include/c++/9/typeinfo" 3 + bool operator!=(const type_info& __arg) const noexcept + { return !operator==(__arg); } + + + size_t hash_code() const noexcept + { + + return _Hash_bytes(name(), __builtin_strlen(name()), + static_cast(0xc70f6907UL)); + + + + } + + + + virtual bool __is_pointer_p() const; + + + virtual bool __is_function_p() const; + + + + + + + + virtual bool __do_catch(const type_info *__thr_type, void **__thr_obj, + unsigned __outer) const; + + + virtual bool __do_upcast(const __cxxabiv1::__class_type_info *__target, + void **__obj_ptr) const; + + protected: + const char *__name; + + explicit type_info(const char *__n): __name(__n) { } + + private: + + type_info& operator=(const type_info&); + type_info(const type_info&); + }; + + + + + + + + class bad_cast : public exception + { + public: + bad_cast() noexcept { } + + + + virtual ~bad_cast() noexcept; + + + virtual const char* what() const noexcept; + }; + + + + + + class bad_typeid : public exception + { + public: + bad_typeid () noexcept { } + + + + virtual ~bad_typeid() noexcept; + + + virtual const char* what() const noexcept; + }; +} + +} + +#pragma GCC visibility pop +# 40 "/usr/include/c++/9/bits/exception_ptr.h" 2 3 +# 1 "/usr/include/c++/9/new" 1 3 +# 41 "/usr/include/c++/9/bits/exception_ptr.h" 2 3 + +extern "C++" { + +namespace std +{ + class type_info; + + + + + + namespace __exception_ptr + { + class exception_ptr; + } + + using __exception_ptr::exception_ptr; + + + + + + exception_ptr current_exception() noexcept; + + template + exception_ptr make_exception_ptr(_Ex) noexcept; + + + void rethrow_exception(exception_ptr) __attribute__ ((__noreturn__)); + + namespace __exception_ptr + { + using std::rethrow_exception; + + + + + + class exception_ptr + { + void* _M_exception_object; + + explicit exception_ptr(void* __e) noexcept; + + void _M_addref() noexcept; + void _M_release() noexcept; + + void *_M_get() const noexcept __attribute__ ((__pure__)); + + friend exception_ptr std::current_exception() noexcept; + friend void std::rethrow_exception(exception_ptr); + template + friend exception_ptr std::make_exception_ptr(_Ex) noexcept; + + public: + exception_ptr() noexcept; + + exception_ptr(const exception_ptr&) noexcept; + + + exception_ptr(nullptr_t) noexcept + : _M_exception_object(0) + { } + + exception_ptr(exception_ptr&& __o) noexcept + : _M_exception_object(__o._M_exception_object) + { __o._M_exception_object = 0; } +# 117 "/usr/include/c++/9/bits/exception_ptr.h" 3 + exception_ptr& + operator=(const exception_ptr&) noexcept; + + + exception_ptr& + operator=(exception_ptr&& __o) noexcept + { + exception_ptr(static_cast(__o)).swap(*this); + return *this; + } + + + ~exception_ptr() noexcept; + + void + swap(exception_ptr&) noexcept; +# 144 "/usr/include/c++/9/bits/exception_ptr.h" 3 + explicit operator bool() const + { return _M_exception_object; } + + + friend bool + operator==(const exception_ptr&, const exception_ptr&) + noexcept __attribute__ ((__pure__)); + + const class std::type_info* + __cxa_exception_type() const noexcept + __attribute__ ((__pure__)); + }; + + bool + operator==(const exception_ptr&, const exception_ptr&) + noexcept __attribute__ ((__pure__)); + + bool + operator!=(const exception_ptr&, const exception_ptr&) + noexcept __attribute__ ((__pure__)); + + inline void + swap(exception_ptr& __lhs, exception_ptr& __rhs) + { __lhs.swap(__rhs); } + + template + inline void + __dest_thunk(void* __x) + { static_cast<_Ex*>(__x)->~_Ex(); } + + } + + + template + exception_ptr + make_exception_ptr(_Ex __ex) noexcept + { + + void* __e = __cxxabiv1::__cxa_allocate_exception(sizeof(_Ex)); + (void) __cxxabiv1::__cxa_init_primary_exception( + __e, const_cast(&typeid(__ex)), + __exception_ptr::__dest_thunk<_Ex>); + try + { + ::new (__e) _Ex(__ex); + return exception_ptr(__e); + } + catch(...) + { + __cxxabiv1::__cxa_free_exception(__e); + return current_exception(); + } +# 208 "/usr/include/c++/9/bits/exception_ptr.h" 3 + } + + +} + +} + +#pragma GCC visibility pop +# 144 "/usr/include/c++/9/exception" 2 3 +# 1 "/usr/include/c++/9/bits/nested_exception.h" 1 3 +# 33 "/usr/include/c++/9/bits/nested_exception.h" 3 +#pragma GCC visibility push(default) + + + + + + +# 1 "/usr/include/c++/9/bits/move.h" 1 3 +# 34 "/usr/include/c++/9/bits/move.h" 3 +# 1 "/usr/include/c++/9/bits/concept_check.h" 1 3 +# 33 "/usr/include/c++/9/bits/concept_check.h" 3 + +# 34 "/usr/include/c++/9/bits/concept_check.h" 3 +# 35 "/usr/include/c++/9/bits/move.h" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + + + + + template + inline constexpr _Tp* + __addressof(_Tp& __r) noexcept + { return __builtin_addressof(__r); } + + + + +} + +# 1 "/usr/include/c++/9/type_traits" 1 3 +# 32 "/usr/include/c++/9/type_traits" 3 + +# 33 "/usr/include/c++/9/type_traits" 3 + + + + + + + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 56 "/usr/include/c++/9/type_traits" 3 + template + struct integral_constant + { + static constexpr _Tp value = __v; + typedef _Tp value_type; + typedef integral_constant<_Tp, __v> type; + constexpr operator value_type() const noexcept { return value; } + + + + + constexpr value_type operator()() const noexcept { return value; } + + }; + + template + constexpr _Tp integral_constant<_Tp, __v>::value; + + + typedef integral_constant true_type; + + + typedef integral_constant false_type; + + template + using __bool_constant = integral_constant; +# 91 "/usr/include/c++/9/type_traits" 3 + template + struct conditional; + + template + struct __or_; + + template<> + struct __or_<> + : public false_type + { }; + + template + struct __or_<_B1> + : public _B1 + { }; + + template + struct __or_<_B1, _B2> + : public conditional<_B1::value, _B1, _B2>::type + { }; + + template + struct __or_<_B1, _B2, _B3, _Bn...> + : public conditional<_B1::value, _B1, __or_<_B2, _B3, _Bn...>>::type + { }; + + template + struct __and_; + + template<> + struct __and_<> + : public true_type + { }; + + template + struct __and_<_B1> + : public _B1 + { }; + + template + struct __and_<_B1, _B2> + : public conditional<_B1::value, _B2, _B1>::type + { }; + + template + struct __and_<_B1, _B2, _B3, _Bn...> + : public conditional<_B1::value, __and_<_B2, _B3, _Bn...>, _B1>::type + { }; + + template + struct __not_ + : public __bool_constant + { }; +# 185 "/usr/include/c++/9/type_traits" 3 + template + struct __success_type + { typedef _Tp type; }; + + struct __failure_type + { }; + + + + template + struct remove_cv; + + template + struct __is_void_helper + : public false_type { }; + + template<> + struct __is_void_helper + : public true_type { }; + + + template + struct is_void + : public __is_void_helper::type>::type + { }; + + template + struct __is_integral_helper + : public false_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + + template<> + struct __is_integral_helper + : public true_type { }; +# 243 "/usr/include/c++/9/type_traits" 3 + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + + + + template<> + struct __is_integral_helper<__int128> + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; +# 323 "/usr/include/c++/9/type_traits" 3 + template + struct is_integral + : public __is_integral_helper::type>::type + { }; + + template + struct __is_floating_point_helper + : public false_type { }; + + template<> + struct __is_floating_point_helper + : public true_type { }; + + template<> + struct __is_floating_point_helper + : public true_type { }; + + template<> + struct __is_floating_point_helper + : public true_type { }; +# 351 "/usr/include/c++/9/type_traits" 3 + template + struct is_floating_point + : public __is_floating_point_helper::type>::type + { }; + + + template + struct is_array + : public false_type { }; + + template + struct is_array<_Tp[_Size]> + : public true_type { }; + + template + struct is_array<_Tp[]> + : public true_type { }; + + template + struct __is_pointer_helper + : public false_type { }; + + template + struct __is_pointer_helper<_Tp*> + : public true_type { }; + + + template + struct is_pointer + : public __is_pointer_helper::type>::type + { }; + + + template + struct is_lvalue_reference + : public false_type { }; + + template + struct is_lvalue_reference<_Tp&> + : public true_type { }; + + + template + struct is_rvalue_reference + : public false_type { }; + + template + struct is_rvalue_reference<_Tp&&> + : public true_type { }; + + template + struct is_function; + + template + struct __is_member_object_pointer_helper + : public false_type { }; + + template + struct __is_member_object_pointer_helper<_Tp _Cp::*> + : public __not_>::type { }; + + + template + struct is_member_object_pointer + : public __is_member_object_pointer_helper< + typename remove_cv<_Tp>::type>::type + { }; + + template + struct __is_member_function_pointer_helper + : public false_type { }; + + template + struct __is_member_function_pointer_helper<_Tp _Cp::*> + : public is_function<_Tp>::type { }; + + + template + struct is_member_function_pointer + : public __is_member_function_pointer_helper< + typename remove_cv<_Tp>::type>::type + { }; + + + template + struct is_enum + : public integral_constant + { }; + + + template + struct is_union + : public integral_constant + { }; + + + template + struct is_class + : public integral_constant + { }; + + + template + struct is_function + : public false_type { }; + + template + struct is_function<_Res(_ArgTypes...) > + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes...) & > + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes...) && > + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes......) > + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes......) & > + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes......) && > + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes...) const > + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes...) const & > + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes...) const && > + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes......) const > + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes......) const & > + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes......) const && > + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes...) volatile > + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes...) volatile & > + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes...) volatile && > + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes......) volatile > + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes......) volatile & > + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes......) volatile && > + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes...) const volatile > + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes...) const volatile & > + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes...) const volatile && > + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes......) const volatile > + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes......) const volatile & > + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes......) const volatile && > + : public true_type { }; + + + + template + struct __is_null_pointer_helper + : public false_type { }; + + template<> + struct __is_null_pointer_helper + : public true_type { }; + + + template + struct is_null_pointer + : public __is_null_pointer_helper::type>::type + { }; + + + template + struct __is_nullptr_t + : public is_null_pointer<_Tp> + { }; + + + + + template + struct is_reference + : public __or_, + is_rvalue_reference<_Tp>>::type + { }; + + + template + struct is_arithmetic + : public __or_, is_floating_point<_Tp>>::type + { }; + + + template + struct is_fundamental + : public __or_, is_void<_Tp>, + is_null_pointer<_Tp>>::type + { }; + + + template + struct is_object + : public __not_<__or_, is_reference<_Tp>, + is_void<_Tp>>>::type + { }; + + template + struct is_member_pointer; + + + template + struct is_scalar + : public __or_, is_enum<_Tp>, is_pointer<_Tp>, + is_member_pointer<_Tp>, is_null_pointer<_Tp>>::type + { }; + + + template + struct is_compound + : public __not_>::type { }; + + template + struct __is_member_pointer_helper + : public false_type { }; + + template + struct __is_member_pointer_helper<_Tp _Cp::*> + : public true_type { }; + + + template + struct is_member_pointer + : public __is_member_pointer_helper::type>::type + { }; + + + + template + struct __is_referenceable + : public __or_, is_reference<_Tp>>::type + { }; + + template + struct __is_referenceable<_Res(_Args...) > + : public true_type + { }; + + template + struct __is_referenceable<_Res(_Args......) > + : public true_type + { }; + + + + + template + struct is_const + : public false_type { }; + + template + struct is_const<_Tp const> + : public true_type { }; + + + template + struct is_volatile + : public false_type { }; + + template + struct is_volatile<_Tp volatile> + : public true_type { }; + + + template + struct is_trivial + : public integral_constant + { }; + + + template + struct is_trivially_copyable + : public integral_constant + { }; + + + template + struct is_standard_layout + : public integral_constant + { }; + + + + template + struct is_pod + : public integral_constant + { }; + + + template + struct is_literal_type + : public integral_constant + { }; + + + template + struct is_empty + : public integral_constant + { }; + + + template + struct is_polymorphic + : public integral_constant + { }; + + + + + template + struct is_final + : public integral_constant + { }; + + + + template + struct is_abstract + : public integral_constant + { }; + + template::value> + struct __is_signed_helper + : public false_type { }; + + template + struct __is_signed_helper<_Tp, true> + : public integral_constant + { }; + + + template + struct is_signed + : public __is_signed_helper<_Tp>::type + { }; + + + template + struct is_unsigned + : public __and_, __not_>> + { }; +# 758 "/usr/include/c++/9/type_traits" 3 + template + _Up + __declval(int); + + template + _Tp + __declval(long); + + template + auto declval() noexcept -> decltype(__declval<_Tp>(0)); + + template + struct extent; + + template + struct remove_all_extents; + + template + struct __is_array_known_bounds + : public integral_constant::value > 0)> + { }; + + template + struct __is_array_unknown_bounds + : public __and_, __not_>> + { }; + + + + + + + struct __do_is_destructible_impl + { + template().~_Tp())> + static true_type __test(int); + + template + static false_type __test(...); + }; + + template + struct __is_destructible_impl + : public __do_is_destructible_impl + { + typedef decltype(__test<_Tp>(0)) type; + }; + + template, + __is_array_unknown_bounds<_Tp>, + is_function<_Tp>>::value, + bool = __or_, is_scalar<_Tp>>::value> + struct __is_destructible_safe; + + template + struct __is_destructible_safe<_Tp, false, false> + : public __is_destructible_impl::type>::type + { }; + + template + struct __is_destructible_safe<_Tp, true, false> + : public false_type { }; + + template + struct __is_destructible_safe<_Tp, false, true> + : public true_type { }; + + + template + struct is_destructible + : public __is_destructible_safe<_Tp>::type + { }; + + + + + + struct __do_is_nt_destructible_impl + { + template + static __bool_constant().~_Tp())> + __test(int); + + template + static false_type __test(...); + }; + + template + struct __is_nt_destructible_impl + : public __do_is_nt_destructible_impl + { + typedef decltype(__test<_Tp>(0)) type; + }; + + template, + __is_array_unknown_bounds<_Tp>, + is_function<_Tp>>::value, + bool = __or_, is_scalar<_Tp>>::value> + struct __is_nt_destructible_safe; + + template + struct __is_nt_destructible_safe<_Tp, false, false> + : public __is_nt_destructible_impl::type>::type + { }; + + template + struct __is_nt_destructible_safe<_Tp, true, false> + : public false_type { }; + + template + struct __is_nt_destructible_safe<_Tp, false, true> + : public true_type { }; + + + template + struct is_nothrow_destructible + : public __is_nt_destructible_safe<_Tp>::type + { }; + + + template + struct is_constructible + : public __bool_constant<__is_constructible(_Tp, _Args...)> + { }; + + + template + struct is_default_constructible + : public is_constructible<_Tp>::type + { }; + + template::value> + struct __is_copy_constructible_impl; + + template + struct __is_copy_constructible_impl<_Tp, false> + : public false_type { }; + + template + struct __is_copy_constructible_impl<_Tp, true> + : public is_constructible<_Tp, const _Tp&> + { }; + + + template + struct is_copy_constructible + : public __is_copy_constructible_impl<_Tp> + { }; + + template::value> + struct __is_move_constructible_impl; + + template + struct __is_move_constructible_impl<_Tp, false> + : public false_type { }; + + template + struct __is_move_constructible_impl<_Tp, true> + : public is_constructible<_Tp, _Tp&&> + { }; + + + template + struct is_move_constructible + : public __is_move_constructible_impl<_Tp> + { }; + + template + struct __is_nt_constructible_impl + : public false_type + { }; + + template + struct __is_nt_constructible_impl + : public __bool_constant()...))> + { }; + + template + struct __is_nt_constructible_impl + : public __bool_constant(std::declval<_Arg>()))> + { }; + + template + struct __is_nt_constructible_impl + : public __bool_constant + { }; + + template + struct __is_nt_constructible_impl + : public __bool_constant::type())> + { }; + + template + using __is_nothrow_constructible_impl + = __is_nt_constructible_impl<__is_constructible(_Tp, _Args...), + _Tp, _Args...>; + + + template + struct is_nothrow_constructible + : public __is_nothrow_constructible_impl<_Tp, _Args...>::type + { }; + + + template + struct is_nothrow_default_constructible + : public __is_nothrow_constructible_impl<_Tp>::type + { }; + + + template::value> + struct __is_nothrow_copy_constructible_impl; + + template + struct __is_nothrow_copy_constructible_impl<_Tp, false> + : public false_type { }; + + template + struct __is_nothrow_copy_constructible_impl<_Tp, true> + : public is_nothrow_constructible<_Tp, const _Tp&> + { }; + + + template + struct is_nothrow_copy_constructible + : public __is_nothrow_copy_constructible_impl<_Tp> + { }; + + template::value> + struct __is_nothrow_move_constructible_impl; + + template + struct __is_nothrow_move_constructible_impl<_Tp, false> + : public false_type { }; + + template + struct __is_nothrow_move_constructible_impl<_Tp, true> + : public is_nothrow_constructible<_Tp, _Tp&&> + { }; + + + template + struct is_nothrow_move_constructible + : public __is_nothrow_move_constructible_impl<_Tp> + { }; + + + template + struct is_assignable + : public __bool_constant<__is_assignable(_Tp, _Up)> + { }; + + template::value> + struct __is_copy_assignable_impl; + + template + struct __is_copy_assignable_impl<_Tp, false> + : public false_type { }; + + template + struct __is_copy_assignable_impl<_Tp, true> + : public is_assignable<_Tp&, const _Tp&> + { }; + + + template + struct is_copy_assignable + : public __is_copy_assignable_impl<_Tp> + { }; + + template::value> + struct __is_move_assignable_impl; + + template + struct __is_move_assignable_impl<_Tp, false> + : public false_type { }; + + template + struct __is_move_assignable_impl<_Tp, true> + : public is_assignable<_Tp&, _Tp&&> + { }; + + + template + struct is_move_assignable + : public __is_move_assignable_impl<_Tp> + { }; + + template + struct __is_nt_assignable_impl + : public integral_constant() = declval<_Up>())> + { }; + + + template + struct is_nothrow_assignable + : public __and_, + __is_nt_assignable_impl<_Tp, _Up>> + { }; + + template::value> + struct __is_nt_copy_assignable_impl; + + template + struct __is_nt_copy_assignable_impl<_Tp, false> + : public false_type { }; + + template + struct __is_nt_copy_assignable_impl<_Tp, true> + : public is_nothrow_assignable<_Tp&, const _Tp&> + { }; + + + template + struct is_nothrow_copy_assignable + : public __is_nt_copy_assignable_impl<_Tp> + { }; + + template::value> + struct __is_nt_move_assignable_impl; + + template + struct __is_nt_move_assignable_impl<_Tp, false> + : public false_type { }; + + template + struct __is_nt_move_assignable_impl<_Tp, true> + : public is_nothrow_assignable<_Tp&, _Tp&&> + { }; + + + template + struct is_nothrow_move_assignable + : public __is_nt_move_assignable_impl<_Tp> + { }; + + + template + struct is_trivially_constructible + : public __bool_constant<__is_trivially_constructible(_Tp, _Args...)> + { }; + + + template + struct is_trivially_default_constructible + : public is_trivially_constructible<_Tp>::type + { }; + + struct __do_is_implicitly_default_constructible_impl + { + template + static void __helper(const _Tp&); + + template + static true_type __test(const _Tp&, + decltype(__helper({}))* = 0); + + static false_type __test(...); + }; + + template + struct __is_implicitly_default_constructible_impl + : public __do_is_implicitly_default_constructible_impl + { + typedef decltype(__test(declval<_Tp>())) type; + }; + + template + struct __is_implicitly_default_constructible_safe + : public __is_implicitly_default_constructible_impl<_Tp>::type + { }; + + template + struct __is_implicitly_default_constructible + : public __and_, + __is_implicitly_default_constructible_safe<_Tp>> + { }; + + + + template::value> + struct __is_trivially_copy_constructible_impl; + + template + struct __is_trivially_copy_constructible_impl<_Tp, false> + : public false_type { }; + + template + struct __is_trivially_copy_constructible_impl<_Tp, true> + : public __and_, + integral_constant> + { }; + + template + struct is_trivially_copy_constructible + : public __is_trivially_copy_constructible_impl<_Tp> + { }; + + + + template::value> + struct __is_trivially_move_constructible_impl; + + template + struct __is_trivially_move_constructible_impl<_Tp, false> + : public false_type { }; + + template + struct __is_trivially_move_constructible_impl<_Tp, true> + : public __and_, + integral_constant> + { }; + + template + struct is_trivially_move_constructible + : public __is_trivially_move_constructible_impl<_Tp> + { }; + + + template + struct is_trivially_assignable + : public __bool_constant<__is_trivially_assignable(_Tp, _Up)> + { }; + + + + template::value> + struct __is_trivially_copy_assignable_impl; + + template + struct __is_trivially_copy_assignable_impl<_Tp, false> + : public false_type { }; + + template + struct __is_trivially_copy_assignable_impl<_Tp, true> + : public __bool_constant<__is_trivially_assignable(_Tp&, const _Tp&)> + { }; + + template + struct is_trivially_copy_assignable + : public __is_trivially_copy_assignable_impl<_Tp> + { }; + + + + template::value> + struct __is_trivially_move_assignable_impl; + + template + struct __is_trivially_move_assignable_impl<_Tp, false> + : public false_type { }; + + template + struct __is_trivially_move_assignable_impl<_Tp, true> + : public __bool_constant<__is_trivially_assignable(_Tp&, _Tp&&)> + { }; + + template + struct is_trivially_move_assignable + : public __is_trivially_move_assignable_impl<_Tp> + { }; + + + template + struct is_trivially_destructible + : public __and_, + __bool_constant<__has_trivial_destructor(_Tp)>> + { }; + + + + template + struct has_virtual_destructor + : public integral_constant + { }; + + + + + + template + struct alignment_of + : public integral_constant { }; + + + template + struct rank + : public integral_constant { }; + + template + struct rank<_Tp[_Size]> + : public integral_constant::value> { }; + + template + struct rank<_Tp[]> + : public integral_constant::value> { }; + + + template + struct extent + : public integral_constant { }; + + template + struct extent<_Tp[_Size], _Uint> + : public integral_constant::value> + { }; + + template + struct extent<_Tp[], _Uint> + : public integral_constant::value> + { }; + + + + + + template + struct is_same + : public false_type { }; + + template + struct is_same<_Tp, _Tp> + : public true_type { }; + + + template + struct is_base_of + : public integral_constant + { }; + + template, is_function<_To>, + is_array<_To>>::value> + struct __is_convertible_helper + { + typedef typename is_void<_To>::type type; + }; + + template + class __is_convertible_helper<_From, _To, false> + { + template + static void __test_aux(_To1) noexcept; + + template(std::declval<_From1>()))> + static true_type + __test(int); + + template + static false_type + __test(...); + + public: + typedef decltype(__test<_From, _To>(0)) type; + }; + + + + template + struct is_convertible + : public __is_convertible_helper<_From, _To>::type + { }; +# 1374 "/usr/include/c++/9/type_traits" 3 + template + struct remove_const + { typedef _Tp type; }; + + template + struct remove_const<_Tp const> + { typedef _Tp type; }; + + + template + struct remove_volatile + { typedef _Tp type; }; + + template + struct remove_volatile<_Tp volatile> + { typedef _Tp type; }; + + + template + struct remove_cv + { + typedef typename + remove_const::type>::type type; + }; + + + template + struct add_const + { typedef _Tp const type; }; + + + template + struct add_volatile + { typedef _Tp volatile type; }; + + + template + struct add_cv + { + typedef typename + add_const::type>::type type; + }; + + + + + + + template + using remove_const_t = typename remove_const<_Tp>::type; + + + template + using remove_volatile_t = typename remove_volatile<_Tp>::type; + + + template + using remove_cv_t = typename remove_cv<_Tp>::type; + + + template + using add_const_t = typename add_const<_Tp>::type; + + + template + using add_volatile_t = typename add_volatile<_Tp>::type; + + + template + using add_cv_t = typename add_cv<_Tp>::type; + + + + + + template + struct remove_reference + { typedef _Tp type; }; + + template + struct remove_reference<_Tp&> + { typedef _Tp type; }; + + template + struct remove_reference<_Tp&&> + { typedef _Tp type; }; + + template::value> + struct __add_lvalue_reference_helper + { typedef _Tp type; }; + + template + struct __add_lvalue_reference_helper<_Tp, true> + { typedef _Tp& type; }; + + + template + struct add_lvalue_reference + : public __add_lvalue_reference_helper<_Tp> + { }; + + template::value> + struct __add_rvalue_reference_helper + { typedef _Tp type; }; + + template + struct __add_rvalue_reference_helper<_Tp, true> + { typedef _Tp&& type; }; + + + template + struct add_rvalue_reference + : public __add_rvalue_reference_helper<_Tp> + { }; + + + + template + using remove_reference_t = typename remove_reference<_Tp>::type; + + + template + using add_lvalue_reference_t = typename add_lvalue_reference<_Tp>::type; + + + template + using add_rvalue_reference_t = typename add_rvalue_reference<_Tp>::type; + + + + + + template + struct __cv_selector; + + template + struct __cv_selector<_Unqualified, false, false> + { typedef _Unqualified __type; }; + + template + struct __cv_selector<_Unqualified, false, true> + { typedef volatile _Unqualified __type; }; + + template + struct __cv_selector<_Unqualified, true, false> + { typedef const _Unqualified __type; }; + + template + struct __cv_selector<_Unqualified, true, true> + { typedef const volatile _Unqualified __type; }; + + template::value, + bool _IsVol = is_volatile<_Qualified>::value> + class __match_cv_qualifiers + { + typedef __cv_selector<_Unqualified, _IsConst, _IsVol> __match; + + public: + typedef typename __match::__type __type; + }; + + + template + struct __make_unsigned + { typedef _Tp __type; }; + + template<> + struct __make_unsigned + { typedef unsigned char __type; }; + + template<> + struct __make_unsigned + { typedef unsigned char __type; }; + + template<> + struct __make_unsigned + { typedef unsigned short __type; }; + + template<> + struct __make_unsigned + { typedef unsigned int __type; }; + + template<> + struct __make_unsigned + { typedef unsigned long __type; }; + + template<> + struct __make_unsigned + { typedef unsigned long long __type; }; + + + template<> + struct __make_unsigned<__int128> + { typedef unsigned __int128 __type; }; +# 1587 "/usr/include/c++/9/type_traits" 3 + template::value, + bool _IsEnum = is_enum<_Tp>::value> + class __make_unsigned_selector; + + template + class __make_unsigned_selector<_Tp, true, false> + { + using __unsigned_type + = typename __make_unsigned::type>::__type; + + public: + using __type + = typename __match_cv_qualifiers<_Tp, __unsigned_type>::__type; + }; + + class __make_unsigned_selector_base + { + protected: + template struct _List { }; + + template + struct _List<_Tp, _Up...> : _List<_Up...> + { static constexpr size_t __size = sizeof(_Tp); }; + + template + struct __select; + + template + struct __select<_Sz, _List<_Uint, _UInts...>, true> + { using __type = _Uint; }; + + template + struct __select<_Sz, _List<_Uint, _UInts...>, false> + : __select<_Sz, _List<_UInts...>> + { }; + }; + + + template + class __make_unsigned_selector<_Tp, false, true> + : __make_unsigned_selector_base + { + + using _UInts = _List; + + using __unsigned_type = typename __select::__type; + + public: + using __type + = typename __match_cv_qualifiers<_Tp, __unsigned_type>::__type; + }; + + + + + + + template<> + struct __make_unsigned + { + using __type + = typename __make_unsigned_selector::__type; + }; +# 1663 "/usr/include/c++/9/type_traits" 3 + template<> + struct __make_unsigned + { + using __type + = typename __make_unsigned_selector::__type; + }; + + template<> + struct __make_unsigned + { + using __type + = typename __make_unsigned_selector::__type; + }; + + + + + + template + struct make_unsigned + { typedef typename __make_unsigned_selector<_Tp>::__type type; }; + + + template<> + struct make_unsigned; + + + + template + struct __make_signed + { typedef _Tp __type; }; + + template<> + struct __make_signed + { typedef signed char __type; }; + + template<> + struct __make_signed + { typedef signed char __type; }; + + template<> + struct __make_signed + { typedef signed short __type; }; + + template<> + struct __make_signed + { typedef signed int __type; }; + + template<> + struct __make_signed + { typedef signed long __type; }; + + template<> + struct __make_signed + { typedef signed long long __type; }; + + + template<> + struct __make_signed + { typedef __int128 __type; }; +# 1741 "/usr/include/c++/9/type_traits" 3 + template::value, + bool _IsEnum = is_enum<_Tp>::value> + class __make_signed_selector; + + template + class __make_signed_selector<_Tp, true, false> + { + using __signed_type + = typename __make_signed::type>::__type; + + public: + using __type + = typename __match_cv_qualifiers<_Tp, __signed_type>::__type; + }; + + + template + class __make_signed_selector<_Tp, false, true> + { + typedef typename __make_unsigned_selector<_Tp>::__type __unsigned_type; + + public: + typedef typename __make_signed_selector<__unsigned_type>::__type __type; + }; + + + + + + + template<> + struct __make_signed + { + using __type + = typename __make_signed_selector::__type; + }; +# 1789 "/usr/include/c++/9/type_traits" 3 + template<> + struct __make_signed + { + using __type + = typename __make_signed_selector::__type; + }; + + template<> + struct __make_signed + { + using __type + = typename __make_signed_selector::__type; + }; + + + + + + template + struct make_signed + { typedef typename __make_signed_selector<_Tp>::__type type; }; + + + template<> + struct make_signed; + + + + template + using make_signed_t = typename make_signed<_Tp>::type; + + + template + using make_unsigned_t = typename make_unsigned<_Tp>::type; + + + + + + template + struct remove_extent + { typedef _Tp type; }; + + template + struct remove_extent<_Tp[_Size]> + { typedef _Tp type; }; + + template + struct remove_extent<_Tp[]> + { typedef _Tp type; }; + + + template + struct remove_all_extents + { typedef _Tp type; }; + + template + struct remove_all_extents<_Tp[_Size]> + { typedef typename remove_all_extents<_Tp>::type type; }; + + template + struct remove_all_extents<_Tp[]> + { typedef typename remove_all_extents<_Tp>::type type; }; + + + + template + using remove_extent_t = typename remove_extent<_Tp>::type; + + + template + using remove_all_extents_t = typename remove_all_extents<_Tp>::type; + + + + + template + struct __remove_pointer_helper + { typedef _Tp type; }; + + template + struct __remove_pointer_helper<_Tp, _Up*> + { typedef _Up type; }; + + + template + struct remove_pointer + : public __remove_pointer_helper<_Tp, typename remove_cv<_Tp>::type> + { }; + + + template, + is_void<_Tp>>::value> + struct __add_pointer_helper + { typedef _Tp type; }; + + template + struct __add_pointer_helper<_Tp, true> + { typedef typename remove_reference<_Tp>::type* type; }; + + template + struct add_pointer + : public __add_pointer_helper<_Tp> + { }; + + + + template + using remove_pointer_t = typename remove_pointer<_Tp>::type; + + + template + using add_pointer_t = typename add_pointer<_Tp>::type; + + + template + struct __aligned_storage_msa + { + union __type + { + unsigned char __data[_Len]; + struct __attribute__((__aligned__)) { } __align; + }; + }; +# 1924 "/usr/include/c++/9/type_traits" 3 + template::__type)> + struct aligned_storage + { + union type + { + unsigned char __data[_Len]; + struct __attribute__((__aligned__((_Align)))) { } __align; + }; + }; + + template + struct __strictest_alignment + { + static const size_t _S_alignment = 0; + static const size_t _S_size = 0; + }; + + template + struct __strictest_alignment<_Tp, _Types...> + { + static const size_t _S_alignment = + alignof(_Tp) > __strictest_alignment<_Types...>::_S_alignment + ? alignof(_Tp) : __strictest_alignment<_Types...>::_S_alignment; + static const size_t _S_size = + sizeof(_Tp) > __strictest_alignment<_Types...>::_S_size + ? sizeof(_Tp) : __strictest_alignment<_Types...>::_S_size; + }; +# 1963 "/usr/include/c++/9/type_traits" 3 + template + struct aligned_union + { + private: + static_assert(sizeof...(_Types) != 0, "At least one type is required"); + + using __strictest = __strictest_alignment<_Types...>; + static const size_t _S_len = _Len > __strictest::_S_size + ? _Len : __strictest::_S_size; + public: + + static const size_t alignment_value = __strictest::_S_alignment; + + typedef typename aligned_storage<_S_len, alignment_value>::type type; + }; + + template + const size_t aligned_union<_Len, _Types...>::alignment_value; + + + + template::value, + bool _IsFunction = is_function<_Up>::value> + struct __decay_selector; + + + template + struct __decay_selector<_Up, false, false> + { typedef typename remove_cv<_Up>::type __type; }; + + template + struct __decay_selector<_Up, true, false> + { typedef typename remove_extent<_Up>::type* __type; }; + + template + struct __decay_selector<_Up, false, true> + { typedef typename add_pointer<_Up>::type __type; }; + + + template + class decay + { + typedef typename remove_reference<_Tp>::type __remove_type; + + public: + typedef typename __decay_selector<__remove_type>::__type type; + }; + + template + class reference_wrapper; + + + template + struct __strip_reference_wrapper + { + typedef _Tp __type; + }; + + template + struct __strip_reference_wrapper > + { + typedef _Tp& __type; + }; + + template + struct __decay_and_strip + { + typedef typename __strip_reference_wrapper< + typename decay<_Tp>::type>::__type __type; + }; + + + + + template + struct enable_if + { }; + + + template + struct enable_if + { typedef _Tp type; }; + + template + using _Require = typename enable_if<__and_<_Cond...>::value>::type; + + + + template + struct conditional + { typedef _Iftrue type; }; + + + template + struct conditional + { typedef _Iffalse type; }; + + + template + struct common_type; + + + + struct __do_common_type_impl + { + template + static __success_type() + : std::declval<_Up>())>::type> _S_test(int); + + template + static __failure_type _S_test(...); + }; + + template + struct __common_type_impl + : private __do_common_type_impl + { + typedef decltype(_S_test<_Tp, _Up>(0)) type; + }; + + struct __do_member_type_wrapper + { + template + static __success_type _S_test(int); + + template + static __failure_type _S_test(...); + }; + + template + struct __member_type_wrapper + : private __do_member_type_wrapper + { + typedef decltype(_S_test<_Tp>(0)) type; + }; + + template + struct __expanded_common_type_wrapper + { + typedef common_type type; + }; + + template + struct __expanded_common_type_wrapper<__failure_type, _Args...> + { typedef __failure_type type; }; + + template<> + struct common_type<> + { }; + + template + struct common_type<_Tp> + : common_type<_Tp, _Tp> + { }; + + template + struct common_type<_Tp, _Up> + : public __common_type_impl<_Tp, _Up>::type + { }; + + template + struct common_type<_Tp, _Up, _Vp...> + : public __expanded_common_type_wrapper>::type, _Vp...>::type + { }; + + template::value> + struct __underlying_type_impl + { + using type = __underlying_type(_Tp); + }; + + template + struct __underlying_type_impl<_Tp, false> + { }; + + + template + struct underlying_type + : public __underlying_type_impl<_Tp> + { }; + + template + struct __declval_protector + { + static const bool __stop = false; + }; + + template + auto declval() noexcept -> decltype(__declval<_Tp>(0)) + { + static_assert(__declval_protector<_Tp>::__stop, + "declval() must not be used!"); + return __declval<_Tp>(0); + } + + + template + using __remove_cvref_t + = typename remove_cv::type>::type; + + + template + class result_of; + + + + + + struct __invoke_memfun_ref { }; + struct __invoke_memfun_deref { }; + struct __invoke_memobj_ref { }; + struct __invoke_memobj_deref { }; + struct __invoke_other { }; + + + template + struct __result_of_success : __success_type<_Tp> + { using __invoke_type = _Tag; }; + + + struct __result_of_memfun_ref_impl + { + template + static __result_of_success().*std::declval<_Fp>())(std::declval<_Args>()...) + ), __invoke_memfun_ref> _S_test(int); + + template + static __failure_type _S_test(...); + }; + + template + struct __result_of_memfun_ref + : private __result_of_memfun_ref_impl + { + typedef decltype(_S_test<_MemPtr, _Arg, _Args...>(0)) type; + }; + + + struct __result_of_memfun_deref_impl + { + template + static __result_of_success()).*std::declval<_Fp>())(std::declval<_Args>()...) + ), __invoke_memfun_deref> _S_test(int); + + template + static __failure_type _S_test(...); + }; + + template + struct __result_of_memfun_deref + : private __result_of_memfun_deref_impl + { + typedef decltype(_S_test<_MemPtr, _Arg, _Args...>(0)) type; + }; + + + struct __result_of_memobj_ref_impl + { + template + static __result_of_success().*std::declval<_Fp>() + ), __invoke_memobj_ref> _S_test(int); + + template + static __failure_type _S_test(...); + }; + + template + struct __result_of_memobj_ref + : private __result_of_memobj_ref_impl + { + typedef decltype(_S_test<_MemPtr, _Arg>(0)) type; + }; + + + struct __result_of_memobj_deref_impl + { + template + static __result_of_success()).*std::declval<_Fp>() + ), __invoke_memobj_deref> _S_test(int); + + template + static __failure_type _S_test(...); + }; + + template + struct __result_of_memobj_deref + : private __result_of_memobj_deref_impl + { + typedef decltype(_S_test<_MemPtr, _Arg>(0)) type; + }; + + template + struct __result_of_memobj; + + template + struct __result_of_memobj<_Res _Class::*, _Arg> + { + typedef __remove_cvref_t<_Arg> _Argval; + typedef _Res _Class::* _MemPtr; + typedef typename conditional<__or_, + is_base_of<_Class, _Argval>>::value, + __result_of_memobj_ref<_MemPtr, _Arg>, + __result_of_memobj_deref<_MemPtr, _Arg> + >::type::type type; + }; + + template + struct __result_of_memfun; + + template + struct __result_of_memfun<_Res _Class::*, _Arg, _Args...> + { + typedef typename remove_reference<_Arg>::type _Argval; + typedef _Res _Class::* _MemPtr; + typedef typename conditional::value, + __result_of_memfun_ref<_MemPtr, _Arg, _Args...>, + __result_of_memfun_deref<_MemPtr, _Arg, _Args...> + >::type::type type; + }; + + + + + + + template> + struct __inv_unwrap + { + using type = _Tp; + }; + + template + struct __inv_unwrap<_Tp, reference_wrapper<_Up>> + { + using type = _Up&; + }; + + template + struct __result_of_impl + { + typedef __failure_type type; + }; + + template + struct __result_of_impl + : public __result_of_memobj::type, + typename __inv_unwrap<_Arg>::type> + { }; + + template + struct __result_of_impl + : public __result_of_memfun::type, + typename __inv_unwrap<_Arg>::type, _Args...> + { }; + + + struct __result_of_other_impl + { + template + static __result_of_success()(std::declval<_Args>()...) + ), __invoke_other> _S_test(int); + + template + static __failure_type _S_test(...); + }; + + template + struct __result_of_impl + : private __result_of_other_impl + { + typedef decltype(_S_test<_Functor, _ArgTypes...>(0)) type; + }; + + + template + struct __invoke_result + : public __result_of_impl< + is_member_object_pointer< + typename remove_reference<_Functor>::type + >::value, + is_member_function_pointer< + typename remove_reference<_Functor>::type + >::value, + _Functor, _ArgTypes... + >::type + { }; + + template + struct result_of<_Functor(_ArgTypes...)> + : public __invoke_result<_Functor, _ArgTypes...> + { }; + + + + template::__type)> + using aligned_storage_t = typename aligned_storage<_Len, _Align>::type; + + template + using aligned_union_t = typename aligned_union<_Len, _Types...>::type; + + + template + using decay_t = typename decay<_Tp>::type; + + + template + using enable_if_t = typename enable_if<_Cond, _Tp>::type; + + + template + using conditional_t = typename conditional<_Cond, _Iftrue, _Iffalse>::type; + + + template + using common_type_t = typename common_type<_Tp...>::type; + + + template + using underlying_type_t = typename underlying_type<_Tp>::type; + + + template + using result_of_t = typename result_of<_Tp>::type; + + + + template + using __enable_if_t = typename enable_if<_Cond, _Tp>::type; + + + template using __void_t = void; + + + + + template using void_t = void; + + + + template class _Op, typename... _Args> + struct __detector + { + using value_t = false_type; + using type = _Default; + }; + + + template class _Op, + typename... _Args> + struct __detector<_Default, __void_t<_Op<_Args...>>, _Op, _Args...> + { + using value_t = true_type; + using type = _Op<_Args...>; + }; + + + template class _Op, + typename... _Args> + using __detected_or = __detector<_Default, void, _Op, _Args...>; + + + template class _Op, + typename... _Args> + using __detected_or_t + = typename __detected_or<_Default, _Op, _Args...>::type; +# 2455 "/usr/include/c++/9/type_traits" 3 + template + struct __is_swappable; + + template + struct __is_nothrow_swappable; + + template + class tuple; + + template + struct __is_tuple_like_impl : false_type + { }; + + template + struct __is_tuple_like_impl> : true_type + { }; + + + template + struct __is_tuple_like + : public __is_tuple_like_impl<__remove_cvref_t<_Tp>>::type + { }; + + template + inline + typename enable_if<__and_<__not_<__is_tuple_like<_Tp>>, + is_move_constructible<_Tp>, + is_move_assignable<_Tp>>::value>::type + swap(_Tp&, _Tp&) + noexcept(__and_, + is_nothrow_move_assignable<_Tp>>::value); + + template + inline + typename enable_if<__is_swappable<_Tp>::value>::type + swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm]) + noexcept(__is_nothrow_swappable<_Tp>::value); + + namespace __swappable_details { + using std::swap; + + struct __do_is_swappable_impl + { + template(), std::declval<_Tp&>()))> + static true_type __test(int); + + template + static false_type __test(...); + }; + + struct __do_is_nothrow_swappable_impl + { + template + static __bool_constant< + noexcept(swap(std::declval<_Tp&>(), std::declval<_Tp&>())) + > __test(int); + + template + static false_type __test(...); + }; + + } + + template + struct __is_swappable_impl + : public __swappable_details::__do_is_swappable_impl + { + typedef decltype(__test<_Tp>(0)) type; + }; + + template + struct __is_nothrow_swappable_impl + : public __swappable_details::__do_is_nothrow_swappable_impl + { + typedef decltype(__test<_Tp>(0)) type; + }; + + template + struct __is_swappable + : public __is_swappable_impl<_Tp>::type + { }; + + template + struct __is_nothrow_swappable + : public __is_nothrow_swappable_impl<_Tp>::type + { }; + + + + + + + template + struct is_swappable + : public __is_swappable_impl<_Tp>::type + { }; + + + template + struct is_nothrow_swappable + : public __is_nothrow_swappable_impl<_Tp>::type + { }; + + + + template + constexpr bool is_swappable_v = + is_swappable<_Tp>::value; + + + template + constexpr bool is_nothrow_swappable_v = + is_nothrow_swappable<_Tp>::value; + + + namespace __swappable_with_details { + using std::swap; + + struct __do_is_swappable_with_impl + { + template(), std::declval<_Up>())), + typename + = decltype(swap(std::declval<_Up>(), std::declval<_Tp>()))> + static true_type __test(int); + + template + static false_type __test(...); + }; + + struct __do_is_nothrow_swappable_with_impl + { + template + static __bool_constant< + noexcept(swap(std::declval<_Tp>(), std::declval<_Up>())) + && + noexcept(swap(std::declval<_Up>(), std::declval<_Tp>())) + > __test(int); + + template + static false_type __test(...); + }; + + } + + template + struct __is_swappable_with_impl + : public __swappable_with_details::__do_is_swappable_with_impl + { + typedef decltype(__test<_Tp, _Up>(0)) type; + }; + + + template + struct __is_swappable_with_impl<_Tp&, _Tp&> + : public __swappable_details::__do_is_swappable_impl + { + typedef decltype(__test<_Tp&>(0)) type; + }; + + template + struct __is_nothrow_swappable_with_impl + : public __swappable_with_details::__do_is_nothrow_swappable_with_impl + { + typedef decltype(__test<_Tp, _Up>(0)) type; + }; + + + template + struct __is_nothrow_swappable_with_impl<_Tp&, _Tp&> + : public __swappable_details::__do_is_nothrow_swappable_impl + { + typedef decltype(__test<_Tp&>(0)) type; + }; + + + template + struct is_swappable_with + : public __is_swappable_with_impl<_Tp, _Up>::type + { }; + + + template + struct is_nothrow_swappable_with + : public __is_nothrow_swappable_with_impl<_Tp, _Up>::type + { }; + + + + template + constexpr bool is_swappable_with_v = + is_swappable_with<_Tp, _Up>::value; + + + template + constexpr bool is_nothrow_swappable_with_v = + is_nothrow_swappable_with<_Tp, _Up>::value; + + + + + + + + template::value, typename = void> + struct __is_invocable_impl : false_type { }; + + + template + struct __is_invocable_impl<_Result, _Ret, + true, + __void_t> + : true_type + { }; + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wctor-dtor-privacy" + + template + struct __is_invocable_impl<_Result, _Ret, + false, + __void_t> + { + private: + + + static typename _Result::type _S_get(); + + template + static void _S_conv(_Tp); + + + template(_S_get()))> + static true_type + _S_test(int); + + template + static false_type + _S_test(...); + + public: + using type = decltype(_S_test<_Ret>(1)); + }; +#pragma GCC diagnostic pop + + template + struct __is_invocable + : __is_invocable_impl<__invoke_result<_Fn, _ArgTypes...>, void>::type + { }; + + template + constexpr bool __call_is_nt(__invoke_memfun_ref) + { + using _Up = typename __inv_unwrap<_Tp>::type; + return noexcept((std::declval<_Up>().*std::declval<_Fn>())( + std::declval<_Args>()...)); + } + + template + constexpr bool __call_is_nt(__invoke_memfun_deref) + { + return noexcept(((*std::declval<_Tp>()).*std::declval<_Fn>())( + std::declval<_Args>()...)); + } + + template + constexpr bool __call_is_nt(__invoke_memobj_ref) + { + using _Up = typename __inv_unwrap<_Tp>::type; + return noexcept(std::declval<_Up>().*std::declval<_Fn>()); + } + + template + constexpr bool __call_is_nt(__invoke_memobj_deref) + { + return noexcept((*std::declval<_Tp>()).*std::declval<_Fn>()); + } + + template + constexpr bool __call_is_nt(__invoke_other) + { + return noexcept(std::declval<_Fn>()(std::declval<_Args>()...)); + } + + template + struct __call_is_nothrow + : __bool_constant< + std::__call_is_nt<_Fn, _Args...>(typename _Result::__invoke_type{}) + > + { }; + + template + using __call_is_nothrow_ + = __call_is_nothrow<__invoke_result<_Fn, _Args...>, _Fn, _Args...>; + + + template + struct __is_nothrow_invocable + : __and_<__is_invocable<_Fn, _Args...>, + __call_is_nothrow_<_Fn, _Args...>>::type + { }; + + struct __nonesuch { + __nonesuch() = delete; + ~__nonesuch() = delete; + __nonesuch(__nonesuch const&) = delete; + void operator=(__nonesuch const&) = delete; + }; +# 3096 "/usr/include/c++/9/type_traits" 3 + +} +# 56 "/usr/include/c++/9/bits/move.h" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 72 "/usr/include/c++/9/bits/move.h" 3 + template + constexpr _Tp&& + forward(typename std::remove_reference<_Tp>::type& __t) noexcept + { return static_cast<_Tp&&>(__t); } + + + + + + + + template + constexpr _Tp&& + forward(typename std::remove_reference<_Tp>::type&& __t) noexcept + { + static_assert(!std::is_lvalue_reference<_Tp>::value, "template argument" + " substituting _Tp is an lvalue reference type"); + return static_cast<_Tp&&>(__t); + } + + + + + + + template + constexpr typename std::remove_reference<_Tp>::type&& + move(_Tp&& __t) noexcept + { return static_cast::type&&>(__t); } + + + template + struct __move_if_noexcept_cond + : public __and_<__not_>, + is_copy_constructible<_Tp>>::type { }; +# 116 "/usr/include/c++/9/bits/move.h" 3 + template + constexpr typename + conditional<__move_if_noexcept_cond<_Tp>::value, const _Tp&, _Tp&&>::type + move_if_noexcept(_Tp& __x) noexcept + { return std::move(__x); } +# 136 "/usr/include/c++/9/bits/move.h" 3 + template + inline _Tp* + addressof(_Tp& __r) noexcept + { return std::__addressof(__r); } + + + + template + const _Tp* addressof(const _Tp&&) = delete; + + + template + inline _Tp + __exchange(_Tp& __obj, _Up&& __new_val) + { + _Tp __old_val = std::move(__obj); + __obj = std::forward<_Up>(__new_val); + return __old_val; + } +# 176 "/usr/include/c++/9/bits/move.h" 3 + template + inline + + typename enable_if<__and_<__not_<__is_tuple_like<_Tp>>, + is_move_constructible<_Tp>, + is_move_assignable<_Tp>>::value>::type + swap(_Tp& __a, _Tp& __b) + noexcept(__and_, + is_nothrow_move_assignable<_Tp>>::value) + + + + + { + + + + _Tp __tmp = std::move(__a); + __a = std::move(__b); + __b = std::move(__tmp); + } + + + + + template + inline + + typename enable_if<__is_swappable<_Tp>::value>::type + swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm]) + noexcept(__is_nothrow_swappable<_Tp>::value) + + + + + { + for (size_t __n = 0; __n < _Nm; ++__n) + swap(__a[__n], __b[__n]); + } + + + +} +# 41 "/usr/include/c++/9/bits/nested_exception.h" 2 3 + +extern "C++" { + +namespace std +{ + + + + + + + class nested_exception + { + exception_ptr _M_ptr; + + public: + nested_exception() noexcept : _M_ptr(current_exception()) { } + + nested_exception(const nested_exception&) noexcept = default; + + nested_exception& operator=(const nested_exception&) noexcept = default; + + virtual ~nested_exception() noexcept; + + [[noreturn]] + void + rethrow_nested() const + { + if (_M_ptr) + rethrow_exception(_M_ptr); + std::terminate(); + } + + exception_ptr + nested_ptr() const noexcept + { return _M_ptr; } + }; + + template + struct _Nested_exception : public _Except, public nested_exception + { + explicit _Nested_exception(const _Except& __ex) + : _Except(__ex) + { } + + explicit _Nested_exception(_Except&& __ex) + : _Except(static_cast<_Except&&>(__ex)) + { } + }; + + + + + template + [[noreturn]] + inline void + __throw_with_nested_impl(_Tp&& __t, true_type) + { + using _Up = typename remove_reference<_Tp>::type; + throw _Nested_exception<_Up>{std::forward<_Tp>(__t)}; + } + + template + [[noreturn]] + inline void + __throw_with_nested_impl(_Tp&& __t, false_type) + { throw std::forward<_Tp>(__t); } + + + + template + [[noreturn]] + inline void + throw_with_nested(_Tp&& __t) + { + using _Up = typename decay<_Tp>::type; + using _CopyConstructible + = __and_, is_move_constructible<_Up>>; + static_assert(_CopyConstructible::value, + "throw_with_nested argument must be CopyConstructible"); + using __nest = __and_, __bool_constant, + __not_>>; + std::__throw_with_nested_impl(std::forward<_Tp>(__t), __nest{}); + } + + + template + using __rethrow_if_nested_cond = typename enable_if< + __and_, + __or_<__not_>, + is_convertible<_Tp*, nested_exception*>>>::value + >::type; + + + template + inline __rethrow_if_nested_cond<_Ex> + __rethrow_if_nested_impl(const _Ex* __ptr) + { + if (auto __ne_ptr = dynamic_cast(__ptr)) + __ne_ptr->rethrow_nested(); + } + + + inline void + __rethrow_if_nested_impl(const void*) + { } + + + template + inline void + rethrow_if_nested(const _Ex& __ex) + { std::__rethrow_if_nested_impl(std::__addressof(__ex)); } + + +} + +} + + + +#pragma GCC visibility pop +# 145 "/usr/include/c++/9/exception" 2 3 +# 41 "/usr/include/c++/9/new" 2 3 + +#pragma GCC visibility push(default) + +extern "C++" { + +namespace std +{ + + + + + + + class bad_alloc : public exception + { + public: + bad_alloc() throw() { } + + + bad_alloc(const bad_alloc&) = default; + bad_alloc& operator=(const bad_alloc&) = default; + + + + + virtual ~bad_alloc() throw(); + + + virtual const char* what() const throw(); + }; + + + class bad_array_new_length : public bad_alloc + { + public: + bad_array_new_length() throw() { } + + + + virtual ~bad_array_new_length() throw(); + + + virtual const char* what() const throw(); + }; + + + + + + + struct nothrow_t + { + + explicit nothrow_t() = default; + + }; + + extern const nothrow_t nothrow; + + + + typedef void (*new_handler)(); + + + + new_handler set_new_handler(new_handler) throw(); + + + + new_handler get_new_handler() noexcept; + +} +# 125 "/usr/include/c++/9/new" 3 + void* operator new(std::size_t) + __attribute__((__externally_visible__)); + void* operator new[](std::size_t) + __attribute__((__externally_visible__)); +void operator delete(void*) noexcept + __attribute__((__externally_visible__)); +void operator delete[](void*) noexcept + __attribute__((__externally_visible__)); + +void operator delete(void*, std::size_t) noexcept + __attribute__((__externally_visible__)); +void operator delete[](void*, std::size_t) noexcept + __attribute__((__externally_visible__)); + + void* operator new(std::size_t, const std::nothrow_t&) noexcept + __attribute__((__externally_visible__, __malloc__)); + void* operator new[](std::size_t, const std::nothrow_t&) noexcept + __attribute__((__externally_visible__, __malloc__)); +void operator delete(void*, const std::nothrow_t&) noexcept + __attribute__((__externally_visible__)); +void operator delete[](void*, const std::nothrow_t&) noexcept + __attribute__((__externally_visible__)); +# 173 "/usr/include/c++/9/new" 3 + inline void* operator new(std::size_t, void* __p) noexcept +{ return __p; } + inline void* operator new[](std::size_t, void* __p) noexcept +{ return __p; } + + +inline void operator delete (void*, void*) noexcept { } +inline void operator delete[](void*, void*) noexcept { } + +} +# 226 "/usr/include/c++/9/new" 3 +#pragma GCC visibility pop +# 112 "/usr/include/crt/common_functions.h" 2 3 4 +# 125 "/usr/include/crt/common_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void* operator new(std:: size_t, void*) throw(); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void* operator new[](std:: size_t, void*) throw(); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void operator delete(void*, void*) throw(); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void operator delete[](void*, void*) throw(); + +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void operator delete(void*, std:: size_t) throw(); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void operator delete[](void*, std:: size_t) throw(); + + + + +# 1 "/usr/include/stdio.h" 1 3 4 +# 27 "/usr/include/stdio.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/libc-header-start.h" 1 3 4 +# 28 "/usr/include/stdio.h" 2 3 4 + +extern "C" { + + + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h" 1 3 4 +# 34 "/usr/include/stdio.h" 2 3 4 + + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h" 1 3 4 +# 40 "/usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h" 3 4 +typedef __builtin_va_list __gnuc_va_list; +# 37 "/usr/include/stdio.h" 2 3 4 + + +# 1 "/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h" 1 3 4 + + + + +# 1 "/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h" 1 3 4 +# 13 "/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h" 3 4 +typedef struct +{ + int __count; + union + { + unsigned int __wch; + char __wchb[4]; + } __value; +} __mbstate_t; +# 6 "/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h" 2 3 4 + + + + +typedef struct _G_fpos_t +{ + __off_t __pos; + __mbstate_t __state; +} __fpos_t; +# 40 "/usr/include/stdio.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h" 1 3 4 +# 10 "/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h" 3 4 +typedef struct _G_fpos64_t +{ + __off64_t __pos; + __mbstate_t __state; +} __fpos64_t; +# 41 "/usr/include/stdio.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/types/__FILE.h" 1 3 4 + + + +struct _IO_FILE; +typedef struct _IO_FILE __FILE; +# 42 "/usr/include/stdio.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/types/FILE.h" 1 3 4 + + + +struct _IO_FILE; + + +typedef struct _IO_FILE FILE; +# 43 "/usr/include/stdio.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h" 1 3 4 +# 35 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h" 3 4 +struct _IO_FILE; +struct _IO_marker; +struct _IO_codecvt; +struct _IO_wide_data; + + + + +typedef void _IO_lock_t; + + + + + +struct _IO_FILE +{ + int _flags; + + + char *_IO_read_ptr; + char *_IO_read_end; + char *_IO_read_base; + char *_IO_write_base; + char *_IO_write_ptr; + char *_IO_write_end; + char *_IO_buf_base; + char *_IO_buf_end; + + + char *_IO_save_base; + char *_IO_backup_base; + char *_IO_save_end; + + struct _IO_marker *_markers; + + struct _IO_FILE *_chain; + + int _fileno; + int _flags2; + __off_t _old_offset; + + + unsigned short _cur_column; + signed char _vtable_offset; + char _shortbuf[1]; + + _IO_lock_t *_lock; + + + + + + + + __off64_t _offset; + + struct _IO_codecvt *_codecvt; + struct _IO_wide_data *_wide_data; + struct _IO_FILE *_freeres_list; + void *_freeres_buf; + size_t __pad5; + int _mode; + + char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)]; +}; +# 44 "/usr/include/stdio.h" 2 3 4 + + +# 1 "/usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h" 1 3 4 +# 27 "/usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h" 3 4 +typedef __ssize_t cookie_read_function_t (void *__cookie, char *__buf, + size_t __nbytes); + + + + + + + +typedef __ssize_t cookie_write_function_t (void *__cookie, const char *__buf, + size_t __nbytes); + + + + + + + +typedef int cookie_seek_function_t (void *__cookie, __off64_t *__pos, int __w); + + +typedef int cookie_close_function_t (void *__cookie); + + + + + + +typedef struct _IO_cookie_io_functions_t +{ + cookie_read_function_t *read; + cookie_write_function_t *write; + cookie_seek_function_t *seek; + cookie_close_function_t *close; +} cookie_io_functions_t; +# 47 "/usr/include/stdio.h" 2 3 4 + + + + + +typedef __gnuc_va_list va_list; +# 63 "/usr/include/stdio.h" 3 4 +typedef __off_t off_t; + + + + + + +typedef __off64_t off64_t; + + + + + + +typedef __ssize_t ssize_t; + + + + + + +typedef __fpos_t fpos_t; + + + + +typedef __fpos64_t fpos64_t; +# 133 "/usr/include/stdio.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/stdio_lim.h" 1 3 4 +# 134 "/usr/include/stdio.h" 2 3 4 + + + +extern FILE *stdin; +extern FILE *stdout; +extern FILE *stderr; + + + + + + +extern int remove (const char *__filename) throw (); + +extern int rename (const char *__old, const char *__new) throw (); + + + +extern int renameat (int __oldfd, const char *__old, int __newfd, + const char *__new) throw (); +# 164 "/usr/include/stdio.h" 3 4 +extern int renameat2 (int __oldfd, const char *__old, int __newfd, + const char *__new, unsigned int __flags) throw (); + + + + + + + +extern FILE *tmpfile (void) ; +# 183 "/usr/include/stdio.h" 3 4 +extern FILE *tmpfile64 (void) ; + + + +extern char *tmpnam (char *__s) throw () ; + + + + +extern char *tmpnam_r (char *__s) throw () ; +# 204 "/usr/include/stdio.h" 3 4 +extern char *tempnam (const char *__dir, const char *__pfx) + throw () __attribute__ ((__malloc__)) ; + + + + + + + +extern int fclose (FILE *__stream); + + + + +extern int fflush (FILE *__stream); +# 227 "/usr/include/stdio.h" 3 4 +extern int fflush_unlocked (FILE *__stream); +# 237 "/usr/include/stdio.h" 3 4 +extern int fcloseall (void); +# 246 "/usr/include/stdio.h" 3 4 +extern FILE *fopen (const char *__restrict __filename, + const char *__restrict __modes) ; + + + + +extern FILE *freopen (const char *__restrict __filename, + const char *__restrict __modes, + FILE *__restrict __stream) ; +# 270 "/usr/include/stdio.h" 3 4 +extern FILE *fopen64 (const char *__restrict __filename, + const char *__restrict __modes) ; +extern FILE *freopen64 (const char *__restrict __filename, + const char *__restrict __modes, + FILE *__restrict __stream) ; + + + + +extern FILE *fdopen (int __fd, const char *__modes) throw () ; + + + + + +extern FILE *fopencookie (void *__restrict __magic_cookie, + const char *__restrict __modes, + cookie_io_functions_t __io_funcs) throw () ; + + + + +extern FILE *fmemopen (void *__s, size_t __len, const char *__modes) + throw () ; + + + + +extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) throw () ; + + + + + +extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) throw (); + + + +extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf, + int __modes, size_t __n) throw (); + + + + +extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf, + size_t __size) throw (); + + +extern void setlinebuf (FILE *__stream) throw (); + + + + + + + +extern int fprintf (FILE *__restrict __stream, + const char *__restrict __format, ...); + + + + +extern int printf (const char *__restrict __format, ...); + +extern int sprintf (char *__restrict __s, + const char *__restrict __format, ...) throw (); + + + + + +extern int vfprintf (FILE *__restrict __s, const char *__restrict __format, + __gnuc_va_list __arg); + + + + +extern int vprintf (const char *__restrict __format, __gnuc_va_list __arg); + +extern int vsprintf (char *__restrict __s, const char *__restrict __format, + __gnuc_va_list __arg) throw (); + + + +extern int snprintf (char *__restrict __s, size_t __maxlen, + const char *__restrict __format, ...) + throw () __attribute__ ((__format__ (__printf__, 3, 4))); + +extern int vsnprintf (char *__restrict __s, size_t __maxlen, + const char *__restrict __format, __gnuc_va_list __arg) + throw () __attribute__ ((__format__ (__printf__, 3, 0))); + + + + + +extern int vasprintf (char **__restrict __ptr, const char *__restrict __f, + __gnuc_va_list __arg) + throw () __attribute__ ((__format__ (__printf__, 2, 0))) ; +extern int __asprintf (char **__restrict __ptr, + const char *__restrict __fmt, ...) + throw () __attribute__ ((__format__ (__printf__, 2, 3))) ; +extern int asprintf (char **__restrict __ptr, + const char *__restrict __fmt, ...) + throw () __attribute__ ((__format__ (__printf__, 2, 3))) ; + + + + +extern int vdprintf (int __fd, const char *__restrict __fmt, + __gnuc_va_list __arg) + __attribute__ ((__format__ (__printf__, 2, 0))); +extern int dprintf (int __fd, const char *__restrict __fmt, ...) + __attribute__ ((__format__ (__printf__, 2, 3))); + + + + + + + +extern int fscanf (FILE *__restrict __stream, + const char *__restrict __format, ...) ; + + + + +extern int scanf (const char *__restrict __format, ...) ; + +extern int sscanf (const char *__restrict __s, + const char *__restrict __format, ...) throw (); + + + + + + +extern int fscanf (FILE *__restrict __stream, const char *__restrict __format, ...) __asm__ ("" "__isoc99_fscanf") + + ; +extern int scanf (const char *__restrict __format, ...) __asm__ ("" "__isoc99_scanf") + ; +extern int sscanf (const char *__restrict __s, const char *__restrict __format, ...) throw () __asm__ ("" "__isoc99_sscanf") + + ; +# 432 "/usr/include/stdio.h" 3 4 +extern int vfscanf (FILE *__restrict __s, const char *__restrict __format, + __gnuc_va_list __arg) + __attribute__ ((__format__ (__scanf__, 2, 0))) ; + + + + + +extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg) + __attribute__ ((__format__ (__scanf__, 1, 0))) ; + + +extern int vsscanf (const char *__restrict __s, + const char *__restrict __format, __gnuc_va_list __arg) + throw () __attribute__ ((__format__ (__scanf__, 2, 0))); + + + + +extern int vfscanf (FILE *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vfscanf") + + + + __attribute__ ((__format__ (__scanf__, 2, 0))) ; +extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vscanf") + + __attribute__ ((__format__ (__scanf__, 1, 0))) ; +extern int vsscanf (const char *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) throw () __asm__ ("" "__isoc99_vsscanf") + + + + __attribute__ ((__format__ (__scanf__, 2, 0))); +# 485 "/usr/include/stdio.h" 3 4 +extern int fgetc (FILE *__stream); +extern int getc (FILE *__stream); + + + + + +extern int getchar (void); + + + + + + +extern int getc_unlocked (FILE *__stream); +extern int getchar_unlocked (void); +# 510 "/usr/include/stdio.h" 3 4 +extern int fgetc_unlocked (FILE *__stream); +# 521 "/usr/include/stdio.h" 3 4 +extern int fputc (int __c, FILE *__stream); +extern int putc (int __c, FILE *__stream); + + + + + +extern int putchar (int __c); +# 537 "/usr/include/stdio.h" 3 4 +extern int fputc_unlocked (int __c, FILE *__stream); + + + + + + + +extern int putc_unlocked (int __c, FILE *__stream); +extern int putchar_unlocked (int __c); + + + + + + +extern int getw (FILE *__stream); + + +extern int putw (int __w, FILE *__stream); + + + + + + + +extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream) + ; +# 587 "/usr/include/stdio.h" 3 4 +extern char *fgets_unlocked (char *__restrict __s, int __n, + FILE *__restrict __stream) ; +# 603 "/usr/include/stdio.h" 3 4 +extern __ssize_t __getdelim (char **__restrict __lineptr, + size_t *__restrict __n, int __delimiter, + FILE *__restrict __stream) ; +extern __ssize_t getdelim (char **__restrict __lineptr, + size_t *__restrict __n, int __delimiter, + FILE *__restrict __stream) ; + + + + + + + +extern __ssize_t getline (char **__restrict __lineptr, + size_t *__restrict __n, + FILE *__restrict __stream) ; + + + + + + + +extern int fputs (const char *__restrict __s, FILE *__restrict __stream); + + + + + +extern int puts (const char *__s); + + + + + + +extern int ungetc (int __c, FILE *__stream); + + + + + + +extern size_t fread (void *__restrict __ptr, size_t __size, + size_t __n, FILE *__restrict __stream) ; + + + + +extern size_t fwrite (const void *__restrict __ptr, size_t __size, + size_t __n, FILE *__restrict __s); +# 662 "/usr/include/stdio.h" 3 4 +extern int fputs_unlocked (const char *__restrict __s, + FILE *__restrict __stream); +# 673 "/usr/include/stdio.h" 3 4 +extern size_t fread_unlocked (void *__restrict __ptr, size_t __size, + size_t __n, FILE *__restrict __stream) ; +extern size_t fwrite_unlocked (const void *__restrict __ptr, size_t __size, + size_t __n, FILE *__restrict __stream); + + + + + + + +extern int fseek (FILE *__stream, long int __off, int __whence); + + + + +extern long int ftell (FILE *__stream) ; + + + + +extern void rewind (FILE *__stream); +# 707 "/usr/include/stdio.h" 3 4 +extern int fseeko (FILE *__stream, __off_t __off, int __whence); + + + + +extern __off_t ftello (FILE *__stream) ; +# 731 "/usr/include/stdio.h" 3 4 +extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos); + + + + +extern int fsetpos (FILE *__stream, const fpos_t *__pos); +# 750 "/usr/include/stdio.h" 3 4 +extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence); +extern __off64_t ftello64 (FILE *__stream) ; +extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos); +extern int fsetpos64 (FILE *__stream, const fpos64_t *__pos); + + + +extern void clearerr (FILE *__stream) throw (); + +extern int feof (FILE *__stream) throw () ; + +extern int ferror (FILE *__stream) throw () ; + + + +extern void clearerr_unlocked (FILE *__stream) throw (); +extern int feof_unlocked (FILE *__stream) throw () ; +extern int ferror_unlocked (FILE *__stream) throw () ; + + + + + + + +extern void perror (const char *__s); + + + + + +# 1 "/usr/include/x86_64-linux-gnu/bits/sys_errlist.h" 1 3 4 +# 26 "/usr/include/x86_64-linux-gnu/bits/sys_errlist.h" 3 4 +extern int sys_nerr; +extern const char *const sys_errlist[]; + + +extern int _sys_nerr; +extern const char *const _sys_errlist[]; +# 782 "/usr/include/stdio.h" 2 3 4 + + + + +extern int fileno (FILE *__stream) throw () ; + + + + +extern int fileno_unlocked (FILE *__stream) throw () ; +# 800 "/usr/include/stdio.h" 3 4 +extern FILE *popen (const char *__command, const char *__modes) ; + + + + + +extern int pclose (FILE *__stream); + + + + + +extern char *ctermid (char *__s) throw (); + + + + + +extern char *cuserid (char *__s); + + + + +struct obstack; + + +extern int obstack_printf (struct obstack *__restrict __obstack, + const char *__restrict __format, ...) + throw () __attribute__ ((__format__ (__printf__, 2, 3))); +extern int obstack_vprintf (struct obstack *__restrict __obstack, + const char *__restrict __format, + __gnuc_va_list __args) + throw () __attribute__ ((__format__ (__printf__, 2, 0))); + + + + + + + +extern void flockfile (FILE *__stream) throw (); + + + +extern int ftrylockfile (FILE *__stream) throw () ; + + +extern void funlockfile (FILE *__stream) throw (); +# 858 "/usr/include/stdio.h" 3 4 +extern int __uflow (FILE *); +extern int __overflow (FILE *, int); +# 873 "/usr/include/stdio.h" 3 4 +} +# 137 "/usr/include/crt/common_functions.h" 2 3 4 +# 1 "/usr/include/c++/9/stdlib.h" 1 3 4 +# 36 "/usr/include/c++/9/stdlib.h" 3 4 +# 1 "/usr/include/c++/9/cstdlib" 1 3 4 +# 39 "/usr/include/c++/9/cstdlib" 3 4 + +# 40 "/usr/include/c++/9/cstdlib" 3 +# 75 "/usr/include/c++/9/cstdlib" 3 +# 1 "/usr/include/stdlib.h" 1 3 4 +# 25 "/usr/include/stdlib.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/libc-header-start.h" 1 3 4 +# 26 "/usr/include/stdlib.h" 2 3 4 + + + + + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h" 1 3 4 +# 32 "/usr/include/stdlib.h" 2 3 4 + +extern "C" { + + + + + +# 1 "/usr/include/x86_64-linux-gnu/bits/waitflags.h" 1 3 4 +# 52 "/usr/include/x86_64-linux-gnu/bits/waitflags.h" 3 4 +typedef enum +{ + P_ALL, + P_PID, + P_PGID +} idtype_t; +# 40 "/usr/include/stdlib.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/waitstatus.h" 1 3 4 +# 41 "/usr/include/stdlib.h" 2 3 4 +# 55 "/usr/include/stdlib.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/floatn.h" 1 3 4 +# 120 "/usr/include/x86_64-linux-gnu/bits/floatn.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 1 3 4 +# 24 "/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/long-double.h" 1 3 4 +# 25 "/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 2 3 4 +# 214 "/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 3 4 +typedef float _Float32; +# 251 "/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 3 4 +typedef double _Float64; +# 268 "/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 3 4 +typedef double _Float32x; +# 285 "/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 3 4 +typedef long double _Float64x; +# 121 "/usr/include/x86_64-linux-gnu/bits/floatn.h" 2 3 4 +# 56 "/usr/include/stdlib.h" 2 3 4 + + +typedef struct + { + int quot; + int rem; + } div_t; + + + +typedef struct + { + long int quot; + long int rem; + } ldiv_t; + + + + + +__extension__ typedef struct + { + long long int quot; + long long int rem; + } lldiv_t; +# 97 "/usr/include/stdlib.h" 3 4 +extern size_t __ctype_get_mb_cur_max (void) throw () ; + + + +extern double atof (const char *__nptr) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; + +extern int atoi (const char *__nptr) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; + +extern long int atol (const char *__nptr) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; + + + +__extension__ extern long long int atoll (const char *__nptr) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; + + + +extern double strtod (const char *__restrict __nptr, + char **__restrict __endptr) + throw () __attribute__ ((__nonnull__ (1))); + + + +extern float strtof (const char *__restrict __nptr, + char **__restrict __endptr) throw () __attribute__ ((__nonnull__ (1))); + +extern long double strtold (const char *__restrict __nptr, + char **__restrict __endptr) + throw () __attribute__ ((__nonnull__ (1))); +# 140 "/usr/include/stdlib.h" 3 4 +extern _Float32 strtof32 (const char *__restrict __nptr, + char **__restrict __endptr) + throw () __attribute__ ((__nonnull__ (1))); + + + +extern _Float64 strtof64 (const char *__restrict __nptr, + char **__restrict __endptr) + throw () __attribute__ ((__nonnull__ (1))); +# 158 "/usr/include/stdlib.h" 3 4 +extern _Float32x strtof32x (const char *__restrict __nptr, + char **__restrict __endptr) + throw () __attribute__ ((__nonnull__ (1))); + + + +extern _Float64x strtof64x (const char *__restrict __nptr, + char **__restrict __endptr) + throw () __attribute__ ((__nonnull__ (1))); +# 176 "/usr/include/stdlib.h" 3 4 +extern long int strtol (const char *__restrict __nptr, + char **__restrict __endptr, int __base) + throw () __attribute__ ((__nonnull__ (1))); + +extern unsigned long int strtoul (const char *__restrict __nptr, + char **__restrict __endptr, int __base) + throw () __attribute__ ((__nonnull__ (1))); + + + +__extension__ +extern long long int strtoq (const char *__restrict __nptr, + char **__restrict __endptr, int __base) + throw () __attribute__ ((__nonnull__ (1))); + +__extension__ +extern unsigned long long int strtouq (const char *__restrict __nptr, + char **__restrict __endptr, int __base) + throw () __attribute__ ((__nonnull__ (1))); + + + + +__extension__ +extern long long int strtoll (const char *__restrict __nptr, + char **__restrict __endptr, int __base) + throw () __attribute__ ((__nonnull__ (1))); + +__extension__ +extern unsigned long long int strtoull (const char *__restrict __nptr, + char **__restrict __endptr, int __base) + throw () __attribute__ ((__nonnull__ (1))); + + + + +extern int strfromd (char *__dest, size_t __size, const char *__format, + double __f) + throw () __attribute__ ((__nonnull__ (3))); + +extern int strfromf (char *__dest, size_t __size, const char *__format, + float __f) + throw () __attribute__ ((__nonnull__ (3))); + +extern int strfroml (char *__dest, size_t __size, const char *__format, + long double __f) + throw () __attribute__ ((__nonnull__ (3))); +# 232 "/usr/include/stdlib.h" 3 4 +extern int strfromf32 (char *__dest, size_t __size, const char * __format, + _Float32 __f) + throw () __attribute__ ((__nonnull__ (3))); + + + +extern int strfromf64 (char *__dest, size_t __size, const char * __format, + _Float64 __f) + throw () __attribute__ ((__nonnull__ (3))); +# 250 "/usr/include/stdlib.h" 3 4 +extern int strfromf32x (char *__dest, size_t __size, const char * __format, + _Float32x __f) + throw () __attribute__ ((__nonnull__ (3))); + + + +extern int strfromf64x (char *__dest, size_t __size, const char * __format, + _Float64x __f) + throw () __attribute__ ((__nonnull__ (3))); +# 274 "/usr/include/stdlib.h" 3 4 +extern long int strtol_l (const char *__restrict __nptr, + char **__restrict __endptr, int __base, + locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 4))); + +extern unsigned long int strtoul_l (const char *__restrict __nptr, + char **__restrict __endptr, + int __base, locale_t __loc) + throw () __attribute__ ((__nonnull__ (1, 4))); + +__extension__ +extern long long int strtoll_l (const char *__restrict __nptr, + char **__restrict __endptr, int __base, + locale_t __loc) + throw () __attribute__ ((__nonnull__ (1, 4))); + +__extension__ +extern unsigned long long int strtoull_l (const char *__restrict __nptr, + char **__restrict __endptr, + int __base, locale_t __loc) + throw () __attribute__ ((__nonnull__ (1, 4))); + +extern double strtod_l (const char *__restrict __nptr, + char **__restrict __endptr, locale_t __loc) + throw () __attribute__ ((__nonnull__ (1, 3))); + +extern float strtof_l (const char *__restrict __nptr, + char **__restrict __endptr, locale_t __loc) + throw () __attribute__ ((__nonnull__ (1, 3))); + +extern long double strtold_l (const char *__restrict __nptr, + char **__restrict __endptr, + locale_t __loc) + throw () __attribute__ ((__nonnull__ (1, 3))); +# 316 "/usr/include/stdlib.h" 3 4 +extern _Float32 strtof32_l (const char *__restrict __nptr, + char **__restrict __endptr, + locale_t __loc) + throw () __attribute__ ((__nonnull__ (1, 3))); + + + +extern _Float64 strtof64_l (const char *__restrict __nptr, + char **__restrict __endptr, + locale_t __loc) + throw () __attribute__ ((__nonnull__ (1, 3))); +# 337 "/usr/include/stdlib.h" 3 4 +extern _Float32x strtof32x_l (const char *__restrict __nptr, + char **__restrict __endptr, + locale_t __loc) + throw () __attribute__ ((__nonnull__ (1, 3))); + + + +extern _Float64x strtof64x_l (const char *__restrict __nptr, + char **__restrict __endptr, + locale_t __loc) + throw () __attribute__ ((__nonnull__ (1, 3))); +# 385 "/usr/include/stdlib.h" 3 4 +extern char *l64a (long int __n) throw () ; + + +extern long int a64l (const char *__s) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; + + + + +# 1 "/usr/include/x86_64-linux-gnu/sys/types.h" 1 3 4 +# 27 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4 +extern "C" { + + + + + +typedef __u_char u_char; +typedef __u_short u_short; +typedef __u_int u_int; +typedef __u_long u_long; +typedef __quad_t quad_t; +typedef __u_quad_t u_quad_t; +typedef __fsid_t fsid_t; + + +typedef __loff_t loff_t; + + + + +typedef __ino_t ino_t; + + + + + + +typedef __ino64_t ino64_t; + + + + +typedef __dev_t dev_t; + + + + +typedef __gid_t gid_t; + + + + +typedef __mode_t mode_t; + + + + +typedef __nlink_t nlink_t; + + + + +typedef __uid_t uid_t; +# 103 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4 +typedef __id_t id_t; +# 114 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4 +typedef __daddr_t daddr_t; +typedef __caddr_t caddr_t; + + + + + +typedef __key_t key_t; +# 134 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4 +typedef __useconds_t useconds_t; + + + +typedef __suseconds_t suseconds_t; + + + + + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h" 1 3 4 +# 145 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 + + + +typedef unsigned long int ulong; +typedef unsigned short int ushort; +typedef unsigned int uint; + + + + +# 1 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h" 1 3 4 +# 24 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h" 3 4 +typedef __int8_t int8_t; +typedef __int16_t int16_t; +typedef __int32_t int32_t; +typedef __int64_t int64_t; +# 156 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 + + +typedef __uint8_t u_int8_t; +typedef __uint16_t u_int16_t; +typedef __uint32_t u_int32_t; +typedef __uint64_t u_int64_t; + + +typedef int register_t __attribute__ ((__mode__ (__word__))); +# 176 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4 +# 1 "/usr/include/endian.h" 1 3 4 +# 35 "/usr/include/endian.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 1 3 4 +# 33 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 3 4 +static __inline __uint16_t +__bswap_16 (__uint16_t __bsx) +{ + + return __builtin_bswap16 (__bsx); + + + +} + + + + + + +static __inline __uint32_t +__bswap_32 (__uint32_t __bsx) +{ + + return __builtin_bswap32 (__bsx); + + + +} +# 69 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 3 4 +__extension__ static __inline __uint64_t +__bswap_64 (__uint64_t __bsx) +{ + + return __builtin_bswap64 (__bsx); + + + +} +# 36 "/usr/include/endian.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/uintn-identity.h" 1 3 4 +# 32 "/usr/include/x86_64-linux-gnu/bits/uintn-identity.h" 3 4 +static __inline __uint16_t +__uint16_identity (__uint16_t __x) +{ + return __x; +} + +static __inline __uint32_t +__uint32_identity (__uint32_t __x) +{ + return __x; +} + +static __inline __uint64_t +__uint64_identity (__uint64_t __x) +{ + return __x; +} +# 37 "/usr/include/endian.h" 2 3 4 +# 177 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 + + +# 1 "/usr/include/x86_64-linux-gnu/sys/select.h" 1 3 4 +# 30 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/select.h" 1 3 4 +# 22 "/usr/include/x86_64-linux-gnu/bits/select.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 +# 23 "/usr/include/x86_64-linux-gnu/bits/select.h" 2 3 4 +# 31 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4 + + +# 1 "/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h" 1 3 4 + + + +# 1 "/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h" 1 3 4 + + + + +typedef struct +{ + unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))]; +} __sigset_t; +# 5 "/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h" 2 3 4 + + +typedef __sigset_t sigset_t; +# 34 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4 +# 49 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 +typedef long int __fd_mask; +# 59 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 +typedef struct + { + + + + __fd_mask fds_bits[1024 / (8 * (int) sizeof (__fd_mask))]; + + + + + + } fd_set; + + + + + + +typedef __fd_mask fd_mask; +# 91 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 +extern "C" { +# 101 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 +extern int select (int __nfds, fd_set *__restrict __readfds, + fd_set *__restrict __writefds, + fd_set *__restrict __exceptfds, + struct timeval *__restrict __timeout); +# 113 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 +extern int pselect (int __nfds, fd_set *__restrict __readfds, + fd_set *__restrict __writefds, + fd_set *__restrict __exceptfds, + const struct timespec *__restrict __timeout, + const __sigset_t *__restrict __sigmask); +# 126 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 +} +# 180 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 + + + + + +typedef __blksize_t blksize_t; + + + + + + +typedef __blkcnt_t blkcnt_t; + + + +typedef __fsblkcnt_t fsblkcnt_t; + + + +typedef __fsfilcnt_t fsfilcnt_t; +# 219 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4 +typedef __blkcnt64_t blkcnt64_t; +typedef __fsblkcnt64_t fsblkcnt64_t; +typedef __fsfilcnt64_t fsfilcnt64_t; + + + + + +# 1 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 1 3 4 +# 23 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" 1 3 4 +# 44 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h" 1 3 4 +# 21 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 +# 22 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h" 2 3 4 +# 45 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" 2 3 4 + + + + +typedef struct __pthread_internal_list +{ + struct __pthread_internal_list *__prev; + struct __pthread_internal_list *__next; +} __pthread_list_t; + +typedef struct __pthread_internal_slist +{ + struct __pthread_internal_slist *__next; +} __pthread_slist_t; +# 74 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/struct_mutex.h" 1 3 4 +# 22 "/usr/include/x86_64-linux-gnu/bits/struct_mutex.h" 3 4 +struct __pthread_mutex_s +{ + int __lock; + unsigned int __count; + int __owner; + + unsigned int __nusers; + + + + int __kind; + + short __spins; + short __elision; + __pthread_list_t __list; +# 53 "/usr/include/x86_64-linux-gnu/bits/struct_mutex.h" 3 4 +}; +# 75 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" 2 3 4 +# 87 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h" 1 3 4 +# 23 "/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h" 3 4 +struct __pthread_rwlock_arch_t +{ + unsigned int __readers; + unsigned int __writers; + unsigned int __wrphase_futex; + unsigned int __writers_futex; + unsigned int __pad3; + unsigned int __pad4; + + int __cur_writer; + int __shared; + signed char __rwelision; + + + + + unsigned char __pad1[7]; + + + unsigned long int __pad2; + + + unsigned int __flags; +# 55 "/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h" 3 4 +}; +# 88 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" 2 3 4 + + + + +struct __pthread_cond_s +{ + __extension__ union + { + __extension__ unsigned long long int __wseq; + struct + { + unsigned int __low; + unsigned int __high; + } __wseq32; + }; + __extension__ union + { + __extension__ unsigned long long int __g1_start; + struct + { + unsigned int __low; + unsigned int __high; + } __g1_start32; + }; + unsigned int __g_refs[2] ; + unsigned int __g_size[2]; + unsigned int __g1_orig_size; + unsigned int __wrefs; + unsigned int __g_signals[2]; +}; +# 24 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 2 3 4 + + + +typedef unsigned long int pthread_t; + + + + +typedef union +{ + char __size[4]; + int __align; +} pthread_mutexattr_t; + + + + +typedef union +{ + char __size[4]; + int __align; +} pthread_condattr_t; + + + +typedef unsigned int pthread_key_t; + + + +typedef int pthread_once_t; + + +union pthread_attr_t +{ + char __size[56]; + long int __align; +}; + +typedef union pthread_attr_t pthread_attr_t; + + + + +typedef union +{ + struct __pthread_mutex_s __data; + char __size[40]; + long int __align; +} pthread_mutex_t; + + +typedef union +{ + struct __pthread_cond_s __data; + char __size[48]; + __extension__ long long int __align; +} pthread_cond_t; + + + + + +typedef union +{ + struct __pthread_rwlock_arch_t __data; + char __size[56]; + long int __align; +} pthread_rwlock_t; + +typedef union +{ + char __size[8]; + long int __align; +} pthread_rwlockattr_t; + + + + + +typedef volatile int pthread_spinlock_t; + + + + +typedef union +{ + char __size[32]; + long int __align; +} pthread_barrier_t; + +typedef union +{ + char __size[4]; + int __align; +} pthread_barrierattr_t; +# 228 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 + + +} +# 395 "/usr/include/stdlib.h" 2 3 4 + + + + + + +extern long int random (void) throw (); + + +extern void srandom (unsigned int __seed) throw (); + + + + + +extern char *initstate (unsigned int __seed, char *__statebuf, + size_t __statelen) throw () __attribute__ ((__nonnull__ (2))); + + + +extern char *setstate (char *__statebuf) throw () __attribute__ ((__nonnull__ (1))); + + + + + + + +struct random_data + { + int32_t *fptr; + int32_t *rptr; + int32_t *state; + int rand_type; + int rand_deg; + int rand_sep; + int32_t *end_ptr; + }; + +extern int random_r (struct random_data *__restrict __buf, + int32_t *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); + +extern int srandom_r (unsigned int __seed, struct random_data *__buf) + throw () __attribute__ ((__nonnull__ (2))); + +extern int initstate_r (unsigned int __seed, char *__restrict __statebuf, + size_t __statelen, + struct random_data *__restrict __buf) + throw () __attribute__ ((__nonnull__ (2, 4))); + +extern int setstate_r (char *__restrict __statebuf, + struct random_data *__restrict __buf) + throw () __attribute__ ((__nonnull__ (1, 2))); + + + + + +extern int rand (void) throw (); + +extern void srand (unsigned int __seed) throw (); + + + +extern int rand_r (unsigned int *__seed) throw (); + + + + + + + +extern double drand48 (void) throw (); +extern double erand48 (unsigned short int __xsubi[3]) throw () __attribute__ ((__nonnull__ (1))); + + +extern long int lrand48 (void) throw (); +extern long int nrand48 (unsigned short int __xsubi[3]) + throw () __attribute__ ((__nonnull__ (1))); + + +extern long int mrand48 (void) throw (); +extern long int jrand48 (unsigned short int __xsubi[3]) + throw () __attribute__ ((__nonnull__ (1))); + + +extern void srand48 (long int __seedval) throw (); +extern unsigned short int *seed48 (unsigned short int __seed16v[3]) + throw () __attribute__ ((__nonnull__ (1))); +extern void lcong48 (unsigned short int __param[7]) throw () __attribute__ ((__nonnull__ (1))); + + + + + +struct drand48_data + { + unsigned short int __x[3]; + unsigned short int __old_x[3]; + unsigned short int __c; + unsigned short int __init; + __extension__ unsigned long long int __a; + + }; + + +extern int drand48_r (struct drand48_data *__restrict __buffer, + double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); +extern int erand48_r (unsigned short int __xsubi[3], + struct drand48_data *__restrict __buffer, + double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); + + +extern int lrand48_r (struct drand48_data *__restrict __buffer, + long int *__restrict __result) + throw () __attribute__ ((__nonnull__ (1, 2))); +extern int nrand48_r (unsigned short int __xsubi[3], + struct drand48_data *__restrict __buffer, + long int *__restrict __result) + throw () __attribute__ ((__nonnull__ (1, 2))); + + +extern int mrand48_r (struct drand48_data *__restrict __buffer, + long int *__restrict __result) + throw () __attribute__ ((__nonnull__ (1, 2))); +extern int jrand48_r (unsigned short int __xsubi[3], + struct drand48_data *__restrict __buffer, + long int *__restrict __result) + throw () __attribute__ ((__nonnull__ (1, 2))); + + +extern int srand48_r (long int __seedval, struct drand48_data *__buffer) + throw () __attribute__ ((__nonnull__ (2))); + +extern int seed48_r (unsigned short int __seed16v[3], + struct drand48_data *__buffer) throw () __attribute__ ((__nonnull__ (1, 2))); + +extern int lcong48_r (unsigned short int __param[7], + struct drand48_data *__buffer) + throw () __attribute__ ((__nonnull__ (1, 2))); + + + + +extern void *malloc (size_t __size) throw () __attribute__ ((__malloc__)) + __attribute__ ((__alloc_size__ (1))) ; + +extern void *calloc (size_t __nmemb, size_t __size) + throw () __attribute__ ((__malloc__)) __attribute__ ((__alloc_size__ (1, 2))) ; + + + + + + +extern void *realloc (void *__ptr, size_t __size) + throw () __attribute__ ((__warn_unused_result__)) __attribute__ ((__alloc_size__ (2))); + + + + + + + +extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size) + throw () __attribute__ ((__warn_unused_result__)) + __attribute__ ((__alloc_size__ (2, 3))); + + + +extern void free (void *__ptr) throw (); + + +# 1 "/usr/include/alloca.h" 1 3 4 +# 24 "/usr/include/alloca.h" 3 4 +# 1 "/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h" 1 3 4 +# 25 "/usr/include/alloca.h" 2 3 4 + +extern "C" { + + + + + +extern void *alloca (size_t __size) throw (); + + + + + +} +# 569 "/usr/include/stdlib.h" 2 3 4 + + + + + +extern void *valloc (size_t __size) throw () __attribute__ ((__malloc__)) + __attribute__ ((__alloc_size__ (1))) ; + + + + +extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size) + throw () __attribute__ ((__nonnull__ (1))) ; + + + + +extern void *aligned_alloc (size_t __alignment, size_t __size) + throw () __attribute__ ((__malloc__)) __attribute__ ((__alloc_size__ (2))) ; + + + +extern void abort (void) throw () __attribute__ ((__noreturn__)); + + + +extern int atexit (void (*__func) (void)) throw () __attribute__ ((__nonnull__ (1))); + + + + +extern "C++" int at_quick_exit (void (*__func) (void)) + throw () __asm ("at_quick_exit") __attribute__ ((__nonnull__ (1))); +# 610 "/usr/include/stdlib.h" 3 4 +extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg) + throw () __attribute__ ((__nonnull__ (1))); + + + + + +extern void exit (int __status) throw () __attribute__ ((__noreturn__)); + + + + + +extern void quick_exit (int __status) throw () __attribute__ ((__noreturn__)); + + + + + +extern void _Exit (int __status) throw () __attribute__ ((__noreturn__)); + + + + +extern char *getenv (const char *__name) throw () __attribute__ ((__nonnull__ (1))) ; + + + + +extern char *secure_getenv (const char *__name) + throw () __attribute__ ((__nonnull__ (1))) ; + + + + + + +extern int putenv (char *__string) throw () __attribute__ ((__nonnull__ (1))); + + + + + +extern int setenv (const char *__name, const char *__value, int __replace) + throw () __attribute__ ((__nonnull__ (2))); + + +extern int unsetenv (const char *__name) throw () __attribute__ ((__nonnull__ (1))); + + + + + + +extern int clearenv (void) throw (); +# 675 "/usr/include/stdlib.h" 3 4 +extern char *mktemp (char *__template) throw () __attribute__ ((__nonnull__ (1))); +# 688 "/usr/include/stdlib.h" 3 4 +extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ; +# 698 "/usr/include/stdlib.h" 3 4 +extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) ; +# 710 "/usr/include/stdlib.h" 3 4 +extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) ; +# 720 "/usr/include/stdlib.h" 3 4 +extern int mkstemps64 (char *__template, int __suffixlen) + __attribute__ ((__nonnull__ (1))) ; +# 731 "/usr/include/stdlib.h" 3 4 +extern char *mkdtemp (char *__template) throw () __attribute__ ((__nonnull__ (1))) ; +# 742 "/usr/include/stdlib.h" 3 4 +extern int mkostemp (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) ; +# 752 "/usr/include/stdlib.h" 3 4 +extern int mkostemp64 (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) ; +# 762 "/usr/include/stdlib.h" 3 4 +extern int mkostemps (char *__template, int __suffixlen, int __flags) + __attribute__ ((__nonnull__ (1))) ; +# 774 "/usr/include/stdlib.h" 3 4 +extern int mkostemps64 (char *__template, int __suffixlen, int __flags) + __attribute__ ((__nonnull__ (1))) ; +# 784 "/usr/include/stdlib.h" 3 4 +extern int system (const char *__command) ; + + + + + +extern char *canonicalize_file_name (const char *__name) + throw () __attribute__ ((__nonnull__ (1))) ; +# 800 "/usr/include/stdlib.h" 3 4 +extern char *realpath (const char *__restrict __name, + char *__restrict __resolved) throw () ; + + + + + + +typedef int (*__compar_fn_t) (const void *, const void *); + + +typedef __compar_fn_t comparison_fn_t; + + + +typedef int (*__compar_d_fn_t) (const void *, const void *, void *); + + + + +extern void *bsearch (const void *__key, const void *__base, + size_t __nmemb, size_t __size, __compar_fn_t __compar) + __attribute__ ((__nonnull__ (1, 2, 5))) ; + + + + + + + +extern void qsort (void *__base, size_t __nmemb, size_t __size, + __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4))); + +extern void qsort_r (void *__base, size_t __nmemb, size_t __size, + __compar_d_fn_t __compar, void *__arg) + __attribute__ ((__nonnull__ (1, 4))); + + + + +extern int abs (int __x) throw () __attribute__ ((__const__)) ; +extern long int labs (long int __x) throw () __attribute__ ((__const__)) ; + + +__extension__ extern long long int llabs (long long int __x) + throw () __attribute__ ((__const__)) ; + + + + + + +extern div_t div (int __numer, int __denom) + throw () __attribute__ ((__const__)) ; +extern ldiv_t ldiv (long int __numer, long int __denom) + throw () __attribute__ ((__const__)) ; + + +__extension__ extern lldiv_t lldiv (long long int __numer, + long long int __denom) + throw () __attribute__ ((__const__)) ; +# 872 "/usr/include/stdlib.h" 3 4 +extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt, + int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) ; + + + + +extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, + int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) ; + + + + +extern char *gcvt (double __value, int __ndigit, char *__buf) + throw () __attribute__ ((__nonnull__ (3))) ; + + + + +extern char *qecvt (long double __value, int __ndigit, + int *__restrict __decpt, int *__restrict __sign) + throw () __attribute__ ((__nonnull__ (3, 4))) ; +extern char *qfcvt (long double __value, int __ndigit, + int *__restrict __decpt, int *__restrict __sign) + throw () __attribute__ ((__nonnull__ (3, 4))) ; +extern char *qgcvt (long double __value, int __ndigit, char *__buf) + throw () __attribute__ ((__nonnull__ (3))) ; + + + + +extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt, + int *__restrict __sign, char *__restrict __buf, + size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5))); +extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt, + int *__restrict __sign, char *__restrict __buf, + size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5))); + +extern int qecvt_r (long double __value, int __ndigit, + int *__restrict __decpt, int *__restrict __sign, + char *__restrict __buf, size_t __len) + throw () __attribute__ ((__nonnull__ (3, 4, 5))); +extern int qfcvt_r (long double __value, int __ndigit, + int *__restrict __decpt, int *__restrict __sign, + char *__restrict __buf, size_t __len) + throw () __attribute__ ((__nonnull__ (3, 4, 5))); + + + + + +extern int mblen (const char *__s, size_t __n) throw (); + + +extern int mbtowc (wchar_t *__restrict __pwc, + const char *__restrict __s, size_t __n) throw (); + + +extern int wctomb (char *__s, wchar_t __wchar) throw (); + + + +extern size_t mbstowcs (wchar_t *__restrict __pwcs, + const char *__restrict __s, size_t __n) throw (); + +extern size_t wcstombs (char *__restrict __s, + const wchar_t *__restrict __pwcs, size_t __n) + throw (); + + + + + + + +extern int rpmatch (const char *__response) throw () __attribute__ ((__nonnull__ (1))) ; +# 957 "/usr/include/stdlib.h" 3 4 +extern int getsubopt (char **__restrict __optionp, + char *const *__restrict __tokens, + char **__restrict __valuep) + throw () __attribute__ ((__nonnull__ (1, 2, 3))) ; + + + + + + + +extern int posix_openpt (int __oflag) ; + + + + + + + +extern int grantpt (int __fd) throw (); + + + +extern int unlockpt (int __fd) throw (); + + + + +extern char *ptsname (int __fd) throw () ; + + + + + + +extern int ptsname_r (int __fd, char *__buf, size_t __buflen) + throw () __attribute__ ((__nonnull__ (2))); + + +extern int getpt (void); + + + + + + +extern int getloadavg (double __loadavg[], int __nelem) + throw () __attribute__ ((__nonnull__ (1))); +# 1013 "/usr/include/stdlib.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/stdlib-float.h" 1 3 4 +# 1014 "/usr/include/stdlib.h" 2 3 4 +# 1023 "/usr/include/stdlib.h" 3 4 +} +# 76 "/usr/include/c++/9/cstdlib" 2 3 + +# 1 "/usr/include/c++/9/bits/std_abs.h" 1 3 +# 33 "/usr/include/c++/9/bits/std_abs.h" 3 + +# 34 "/usr/include/c++/9/bits/std_abs.h" 3 +# 46 "/usr/include/c++/9/bits/std_abs.h" 3 +extern "C++" +{ +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + using ::abs; + + + inline long + abs(long __i) { return __builtin_labs(__i); } + + + + inline long long + abs(long long __x) { return __builtin_llabs (__x); } +# 70 "/usr/include/c++/9/bits/std_abs.h" 3 + inline constexpr double + abs(double __x) + { return __builtin_fabs(__x); } + + inline constexpr float + abs(float __x) + { return __builtin_fabsf(__x); } + + inline constexpr long double + abs(long double __x) + { return __builtin_fabsl(__x); } + + + + inline constexpr __int128 + abs(__int128 __x) { return __x >= 0 ? __x : -__x; } +# 107 "/usr/include/c++/9/bits/std_abs.h" 3 + +} +} +# 78 "/usr/include/c++/9/cstdlib" 2 3 +# 121 "/usr/include/c++/9/cstdlib" 3 +extern "C++" +{ +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + using ::div_t; + using ::ldiv_t; + + using ::abort; + + + + using ::atexit; + + + using ::at_quick_exit; + + + using ::atof; + using ::atoi; + using ::atol; + using ::bsearch; + using ::calloc; + using ::div; + using ::exit; + using ::free; + using ::getenv; + using ::labs; + using ::ldiv; + using ::malloc; + + using ::mblen; + using ::mbstowcs; + using ::mbtowc; + + using ::qsort; + + + using ::quick_exit; + + + using ::rand; + using ::realloc; + using ::srand; + using ::strtod; + using ::strtol; + using ::strtoul; + using ::system; + + using ::wcstombs; + using ::wctomb; + + + + inline ldiv_t + div(long __i, long __j) { return ldiv(__i, __j); } + + + + +} +# 195 "/usr/include/c++/9/cstdlib" 3 +namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) +{ + + + + using ::lldiv_t; + + + + + + using ::_Exit; + + + + using ::llabs; + + inline lldiv_t + div(long long __n, long long __d) + { lldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; } + + using ::lldiv; +# 227 "/usr/include/c++/9/cstdlib" 3 + using ::atoll; + using ::strtoll; + using ::strtoull; + + using ::strtof; + using ::strtold; + + +} + +namespace std +{ + + using ::__gnu_cxx::lldiv_t; + + using ::__gnu_cxx::_Exit; + + using ::__gnu_cxx::llabs; + using ::__gnu_cxx::div; + using ::__gnu_cxx::lldiv; + + using ::__gnu_cxx::atoll; + using ::__gnu_cxx::strtof; + using ::__gnu_cxx::strtoll; + using ::__gnu_cxx::strtoull; + using ::__gnu_cxx::strtold; +} + + + +} +# 37 "/usr/include/c++/9/stdlib.h" 2 3 4 + +using std::abort; +using std::atexit; +using std::exit; + + + using std::at_quick_exit; + + + using std::quick_exit; + + + + +using std::div_t; +using std::ldiv_t; + +using std::abs; +using std::atof; +using std::atoi; +using std::atol; +using std::bsearch; +using std::calloc; +using std::div; +using std::free; +using std::getenv; +using std::labs; +using std::ldiv; +using std::malloc; + +using std::mblen; +using std::mbstowcs; +using std::mbtowc; + +using std::qsort; +using std::rand; +using std::realloc; +using std::srand; +using std::strtod; +using std::strtol; +using std::strtoul; +using std::system; + +using std::wcstombs; +using std::wctomb; +# 138 "/usr/include/crt/common_functions.h" 2 3 4 + + + + + +extern "C" +{ +extern + + + + + + + +__attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) int printf(const char*, ...); + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void* malloc(size_t) throw (); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void free(void*) throw (); +# 168 "/usr/include/crt/common_functions.h" 3 4 +} + + + + + +# 1 "/usr/include/assert.h" 1 3 4 +# 66 "/usr/include/assert.h" 3 4 +extern "C" { + + +extern void __assert_fail (const char *__assertion, const char *__file, + unsigned int __line, const char *__function) + throw () __attribute__ ((__noreturn__)); + + +extern void __assert_perror_fail (int __errnum, const char *__file, + unsigned int __line, const char *__function) + throw () __attribute__ ((__noreturn__)); + + + + +extern void __assert (const char *__assertion, const char *__file, int __line) + throw () __attribute__ ((__noreturn__)); + + +} +# 175 "/usr/include/crt/common_functions.h" 2 3 4 + + +extern "C" +{ +# 205 "/usr/include/crt/common_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void __assert_fail( + const char *, const char *, unsigned int, const char *) + throw (); + + + + +} +# 267 "/usr/include/crt/common_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void* operator new(std:: size_t) ; +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void* operator new[](std:: size_t) ; +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void operator delete(void*) throw(); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void operator delete[](void*) throw(); + +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void operator delete(void*, std:: size_t) throw(); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void operator delete[](void*, std:: size_t) throw(); +# 303 "/usr/include/crt/common_functions.h" 3 4 +# 1 "/usr/include/crt/math_functions.h" 1 3 4 +# 112 "/usr/include/crt/math_functions.h" 3 4 +# 1 "/usr/include/builtin_types.h" 1 3 4 +# 113 "/usr/include/crt/math_functions.h" 2 3 4 +# 1 "/usr/include/crt/host_defines.h" 1 3 4 +# 114 "/usr/include/crt/math_functions.h" 2 3 4 + + + + + + + +extern "C" +{ +# 219 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) int abs(int a) throw (); + + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) long int labs(long int a) throw (); + + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) long long int llabs(long long int a) throw (); +# 285 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double fabs(double x) throw (); +# 328 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float fabsf(float x) throw (); +# 338 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int min(const int a, const int b); + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) unsigned int umin(const unsigned int a, const unsigned int b); + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long long int llmin(const long long int a, const long long int b); + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) unsigned long long int ullmin(const unsigned long long int a, const unsigned long long int b); +# 380 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float fminf(float x, float y) throw (); +# 400 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double fmin(double x, double y) throw (); +# 413 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int max(const int a, const int b); + + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) unsigned int umax(const unsigned int a, const unsigned int b); + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long long int llmax(const long long int a, const long long int b); + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) unsigned long long int ullmax(const unsigned long long int a, const unsigned long long int b); +# 456 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float fmaxf(float x, float y) throw (); +# 476 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double fmax(double, double) throw (); +# 520 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double sin(double x) throw (); +# 553 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double cos(double x) throw (); +# 572 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) void sincos(double x, double *sptr, double *cptr) throw (); +# 588 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) void sincosf(float x, float *sptr, float *cptr) throw (); +# 633 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double tan(double x) throw (); +# 702 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double sqrt(double x) throw (); +# 774 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double rsqrt(double x); +# 844 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float rsqrtf(float x); +# 900 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double log2(double x) throw (); +# 965 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double exp2(double x) throw (); +# 1030 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float exp2f(float x) throw (); +# 1097 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double exp10(double x) throw (); +# 1160 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float exp10f(float x) throw (); +# 1253 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double expm1(double x) throw (); +# 1345 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float expm1f(float x) throw (); +# 1401 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float log2f(float x) throw (); +# 1455 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double log10(double x) throw (); +# 1525 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double log(double x) throw (); +# 1621 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double log1p(double x) throw (); +# 1720 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float log1pf(float x) throw (); +# 1784 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double floor(double x) throw (); +# 1863 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double exp(double x) throw (); +# 1904 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double cosh(double x) throw (); +# 1954 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double sinh(double x) throw (); +# 2004 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double tanh(double x) throw (); +# 2059 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double acosh(double x) throw (); +# 2117 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float acoshf(float x) throw (); +# 2170 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double asinh(double x) throw (); +# 2223 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float asinhf(float x) throw (); +# 2277 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double atanh(double x) throw (); +# 2331 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float atanhf(float x) throw (); +# 2380 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double ldexp(double x, int exp) throw (); +# 2426 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float ldexpf(float x, int exp) throw (); +# 2478 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double logb(double x) throw (); +# 2533 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float logbf(float x) throw (); +# 2573 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int ilogb(double x) throw (); +# 2613 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int ilogbf(float x) throw (); +# 2689 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double scalbn(double x, int n) throw (); +# 2765 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float scalbnf(float x, int n) throw (); +# 2841 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double scalbln(double x, long int n) throw (); +# 2917 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float scalblnf(float x, long int n) throw (); +# 2994 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double frexp(double x, int *nptr) throw (); +# 3068 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float frexpf(float x, int *nptr) throw (); +# 3120 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double round(double x) throw (); +# 3175 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float roundf(float x) throw (); +# 3193 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long int lround(double x) throw (); +# 3211 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long int lroundf(float x) throw (); +# 3229 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long long int llround(double x) throw (); +# 3247 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long long int llroundf(float x) throw (); +# 3321 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double rint(double x) throw (); +# 3375 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float rintf(float x) throw (); +# 3392 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long int lrint(double x) throw (); +# 3409 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long int lrintf(float x) throw (); +# 3426 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long long int llrint(double x) throw (); +# 3443 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long long int llrintf(float x) throw (); +# 3496 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double nearbyint(double x) throw (); +# 3549 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float nearbyintf(float x) throw (); +# 3611 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double ceil(double x) throw (); +# 3661 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double trunc(double x) throw (); +# 3714 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float truncf(float x) throw (); +# 3740 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double fdim(double x, double y) throw (); +# 3766 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float fdimf(float x, float y) throw (); +# 4066 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double atan2(double y, double x) throw (); +# 4137 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double atan(double x) throw (); +# 4160 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double acos(double x) throw (); +# 4211 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double asin(double x) throw (); +# 4279 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double hypot(double x, double y) throw (); +# 4334 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double rhypot(double x, double y) throw (); +# 4402 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float hypotf(float x, float y) throw (); +# 4457 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) float rhypotf(float x, float y) throw (); +# 4501 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double norm3d(double a, double b, double c) throw (); +# 4552 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double rnorm3d(double a, double b, double c) throw (); +# 4601 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double norm4d(double a, double b, double c, double d) throw (); +# 4657 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double rnorm4d(double a, double b, double c, double d) throw (); +# 4714 "/usr/include/crt/math_functions.h" 3 4 +extern "C++" __attribute__((device)) __attribute__((device_builtin)) double norm(int dim, double const * p) throw (); +# 4778 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double rnorm(int dim, double const * p) throw (); +# 4843 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) float rnormf(int dim, float const * p) throw (); +# 4900 "/usr/include/crt/math_functions.h" 3 4 +extern "C++" __attribute__((device)) __attribute__((device_builtin)) float normf(int dim, float const * p) throw (); +# 4945 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) float norm3df(float a, float b, float c) throw (); +# 4996 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) float rnorm3df(float a, float b, float c) throw (); +# 5045 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) float norm4df(float a, float b, float c, float d) throw (); +# 5101 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) float rnorm4df(float a, float b, float c, float d) throw (); +# 5188 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double cbrt(double x) throw (); +# 5274 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float cbrtf(float x) throw (); +# 5329 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double rcbrt(double x); +# 5379 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float rcbrtf(float x); +# 5439 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double sinpi(double x); +# 5499 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float sinpif(float x); +# 5551 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double cospi(double x); +# 5603 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float cospif(float x); +# 5633 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) void sincospi(double x, double *sptr, double *cptr); +# 5663 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) void sincospif(float x, float *sptr, float *cptr); +# 5996 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double pow(double x, double y) throw (); +# 6052 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double modf(double x, double *iptr) throw (); +# 6111 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double fmod(double x, double y) throw (); +# 6207 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double remainder(double x, double y) throw (); +# 6306 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float remainderf(float x, float y) throw (); +# 6378 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double remquo(double x, double y, int *quo) throw (); +# 6450 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float remquof(float x, float y, int *quo) throw (); +# 6491 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double j0(double x) throw (); +# 6533 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float j0f(float x) throw (); +# 6602 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double j1(double x) throw (); +# 6671 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float j1f(float x) throw (); +# 6714 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double jn(int n, double x) throw (); +# 6757 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float jnf(int n, float x) throw (); +# 6818 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double y0(double x) throw (); +# 6879 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float y0f(float x) throw (); +# 6940 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double y1(double x) throw (); +# 7001 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float y1f(float x) throw (); +# 7064 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double yn(int n, double x) throw (); +# 7127 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float ynf(int n, float x) throw (); +# 7154 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double cyl_bessel_i0(double x) throw (); +# 7180 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) float cyl_bessel_i0f(float x) throw (); +# 7207 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double cyl_bessel_i1(double x) throw (); +# 7233 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) float cyl_bessel_i1f(float x) throw (); +# 7316 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double erf(double x) throw (); +# 7398 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float erff(float x) throw (); +# 7470 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double erfinv(double x); +# 7535 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float erfinvf(float x); +# 7574 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double erfc(double x) throw (); +# 7612 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float erfcf(float x) throw (); +# 7729 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double lgamma(double x) throw (); +# 7791 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double erfcinv(double x); +# 7846 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float erfcinvf(float x); +# 7914 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double normcdfinv(double x); +# 7982 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float normcdfinvf(float x); +# 8025 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double normcdf(double x); +# 8068 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float normcdff(float x); +# 8132 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double erfcx(double x); +# 8196 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float erfcxf(float x); +# 8315 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float lgammaf(float x) throw (); +# 8413 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double tgamma(double x) throw (); +# 8511 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float tgammaf(float x) throw (); +# 8524 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double copysign(double x, double y) throw (); +# 8537 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float copysignf(float x, float y) throw (); +# 8556 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double nextafter(double x, double y) throw (); +# 8575 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float nextafterf(float x, float y) throw (); +# 8591 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double nan(const char *tagp) throw (); +# 8607 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float nanf(const char *tagp) throw (); + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __isinff(float) throw (); +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __isnanf(float) throw (); +# 8625 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __finite(double) throw (); +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __finitef(float) throw (); +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __signbit(double) throw (); +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __isnan(double) throw (); +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __isinf(double) throw (); + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __signbitf(float) throw (); +# 8791 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double fma(double x, double y, double z) throw (); +# 8949 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float fmaf(float x, float y, float z) throw (); +# 8960 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __signbitl(long double) throw (); + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __finitel(long double) throw (); +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __isinfl(long double) throw (); +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __isnanl(long double) throw (); +# 9018 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float acosf(float x) throw (); +# 9077 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float asinf(float x) throw (); +# 9157 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float atanf(float x) throw (); +# 9454 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float atan2f(float y, float x) throw (); +# 9488 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float cosf(float x) throw (); +# 9530 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float sinf(float x) throw (); +# 9572 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float tanf(float x) throw (); +# 9613 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float coshf(float x) throw (); +# 9663 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float sinhf(float x) throw (); +# 9713 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float tanhf(float x) throw (); +# 9765 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float logf(float x) throw (); +# 9845 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float expf(float x) throw (); +# 9897 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float log10f(float x) throw (); +# 9952 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float modff(float x, float *iptr) throw (); +# 10282 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float powf(float x, float y) throw (); +# 10351 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float sqrtf(float x) throw (); +# 10410 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float ceilf(float x) throw (); +# 10471 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float floorf(float x) throw (); +# 10529 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float fmodf(float x, float y) throw (); +# 10544 "/usr/include/crt/math_functions.h" 3 4 +} + + +# 1 "/usr/include/c++/9/math.h" 1 3 4 +# 36 "/usr/include/c++/9/math.h" 3 4 +# 1 "/usr/include/c++/9/cmath" 1 3 4 +# 39 "/usr/include/c++/9/cmath" 3 4 + +# 40 "/usr/include/c++/9/cmath" 3 + + +# 1 "/usr/include/c++/9/bits/cpp_type_traits.h" 1 3 +# 35 "/usr/include/c++/9/bits/cpp_type_traits.h" 3 + +# 36 "/usr/include/c++/9/bits/cpp_type_traits.h" 3 +# 67 "/usr/include/c++/9/bits/cpp_type_traits.h" 3 +extern "C++" { + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + struct __true_type { }; + struct __false_type { }; + + template + struct __truth_type + { typedef __false_type __type; }; + + template<> + struct __truth_type + { typedef __true_type __type; }; + + + + template + struct __traitor + { + enum { __value = bool(_Sp::__value) || bool(_Tp::__value) }; + typedef typename __truth_type<__value>::__type __type; + }; + + + template + struct __are_same + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + template + struct __are_same<_Tp, _Tp> + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + template + struct __is_void + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + template<> + struct __is_void + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + + + template + struct __is_integer + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + + + + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; +# 184 "/usr/include/c++/9/bits/cpp_type_traits.h" 3 + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; +# 270 "/usr/include/c++/9/bits/cpp_type_traits.h" 3 +template<> struct __is_integer<__int128> { enum { __value = 1 }; typedef __true_type __type; }; template<> struct __is_integer { enum { __value = 1 }; typedef __true_type __type; }; +# 287 "/usr/include/c++/9/bits/cpp_type_traits.h" 3 + template + struct __is_floating + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + + template<> + struct __is_floating + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_floating + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_floating + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + + + template + struct __is_pointer + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + template + struct __is_pointer<_Tp*> + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + + + template + struct __is_arithmetic + : public __traitor<__is_integer<_Tp>, __is_floating<_Tp> > + { }; + + + + + template + struct __is_scalar + : public __traitor<__is_arithmetic<_Tp>, __is_pointer<_Tp> > + { }; + + + + + template + struct __is_char + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + template<> + struct __is_char + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + template<> + struct __is_char + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + template + struct __is_byte + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + template<> + struct __is_byte + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_byte + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_byte + { + enum { __value = 1 }; + typedef __true_type __type; + }; +# 417 "/usr/include/c++/9/bits/cpp_type_traits.h" 3 + template + struct __is_move_iterator + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + + + template + inline _Iterator + __miter_base(_Iterator __it) + { return __it; } + + +} +} +# 43 "/usr/include/c++/9/cmath" 2 3 +# 1 "/usr/include/c++/9/ext/type_traits.h" 1 3 +# 32 "/usr/include/c++/9/ext/type_traits.h" 3 + +# 33 "/usr/include/c++/9/ext/type_traits.h" 3 + + + + +extern "C++" { + +namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) +{ + + + + template + struct __enable_if + { }; + + template + struct __enable_if + { typedef _Tp __type; }; + + + + template + struct __conditional_type + { typedef _Iftrue __type; }; + + template + struct __conditional_type + { typedef _Iffalse __type; }; + + + + template + struct __add_unsigned + { + private: + typedef __enable_if::__value, _Tp> __if_type; + + public: + typedef typename __if_type::__type __type; + }; + + template<> + struct __add_unsigned + { typedef unsigned char __type; }; + + template<> + struct __add_unsigned + { typedef unsigned char __type; }; + + template<> + struct __add_unsigned + { typedef unsigned short __type; }; + + template<> + struct __add_unsigned + { typedef unsigned int __type; }; + + template<> + struct __add_unsigned + { typedef unsigned long __type; }; + + template<> + struct __add_unsigned + { typedef unsigned long long __type; }; + + + template<> + struct __add_unsigned; + + template<> + struct __add_unsigned; + + + + template + struct __remove_unsigned + { + private: + typedef __enable_if::__value, _Tp> __if_type; + + public: + typedef typename __if_type::__type __type; + }; + + template<> + struct __remove_unsigned + { typedef signed char __type; }; + + template<> + struct __remove_unsigned + { typedef signed char __type; }; + + template<> + struct __remove_unsigned + { typedef short __type; }; + + template<> + struct __remove_unsigned + { typedef int __type; }; + + template<> + struct __remove_unsigned + { typedef long __type; }; + + template<> + struct __remove_unsigned + { typedef long long __type; }; + + + template<> + struct __remove_unsigned; + + template<> + struct __remove_unsigned; + + + + template + inline bool + __is_null_pointer(_Type* __ptr) + { return __ptr == 0; } + + template + inline bool + __is_null_pointer(_Type) + { return false; } + + + inline bool + __is_null_pointer(std::nullptr_t) + { return true; } + + + + template::__value> + struct __promote + { typedef double __type; }; + + + + + template + struct __promote<_Tp, false> + { }; + + template<> + struct __promote + { typedef long double __type; }; + + template<> + struct __promote + { typedef double __type; }; + + template<> + struct __promote + { typedef float __type; }; + + template::__type, + typename _Up2 = typename __promote<_Up>::__type> + struct __promote_2 + { + typedef __typeof__(_Tp2() + _Up2()) __type; + }; + + template::__type, + typename _Up2 = typename __promote<_Up>::__type, + typename _Vp2 = typename __promote<_Vp>::__type> + struct __promote_3 + { + typedef __typeof__(_Tp2() + _Up2() + _Vp2()) __type; + }; + + template::__type, + typename _Up2 = typename __promote<_Up>::__type, + typename _Vp2 = typename __promote<_Vp>::__type, + typename _Wp2 = typename __promote<_Wp>::__type> + struct __promote_4 + { + typedef __typeof__(_Tp2() + _Up2() + _Vp2() + _Wp2()) __type; + }; + + +} +} +# 44 "/usr/include/c++/9/cmath" 2 3 + +# 1 "/usr/include/math.h" 1 3 4 +# 27 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/libc-header-start.h" 1 3 4 +# 28 "/usr/include/math.h" 2 3 4 + + + + + + +extern "C" { + + + + + +# 1 "/usr/include/x86_64-linux-gnu/bits/math-vector.h" 1 3 4 +# 25 "/usr/include/x86_64-linux-gnu/bits/math-vector.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h" 1 3 4 +# 26 "/usr/include/x86_64-linux-gnu/bits/math-vector.h" 2 3 4 +# 41 "/usr/include/math.h" 2 3 4 +# 138 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h" 1 3 4 +# 139 "/usr/include/math.h" 2 3 4 +# 149 "/usr/include/math.h" 3 4 +typedef float float_t; +typedef double double_t; +# 190 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/fp-logb.h" 1 3 4 +# 191 "/usr/include/math.h" 2 3 4 +# 233 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/fp-fast.h" 1 3 4 +# 234 "/usr/include/math.h" 2 3 4 + + + +enum + { + FP_INT_UPWARD = + + 0, + FP_INT_DOWNWARD = + + 1, + FP_INT_TOWARDZERO = + + 2, + FP_INT_TONEARESTFROMZERO = + + 3, + FP_INT_TONEAREST = + + 4, + }; +# 289 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h" 1 3 4 +# 21 "/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h" 3 4 +extern int __fpclassify (double __value) throw () + __attribute__ ((__const__)); + + +extern int __signbit (double __value) throw () + __attribute__ ((__const__)); + + + +extern int __isinf (double __value) throw () __attribute__ ((__const__)); + + +extern int __finite (double __value) throw () __attribute__ ((__const__)); + + +extern int __isnan (double __value) throw () __attribute__ ((__const__)); + + +extern int __iseqsig (double __x, double __y) throw (); + + +extern int __issignaling (double __value) throw () + __attribute__ ((__const__)); +# 290 "/usr/include/math.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern double acos (double __x) throw (); extern double __acos (double __x) throw (); + +extern double asin (double __x) throw (); extern double __asin (double __x) throw (); + +extern double atan (double __x) throw (); extern double __atan (double __x) throw (); + +extern double atan2 (double __y, double __x) throw (); extern double __atan2 (double __y, double __x) throw (); + + + extern double cos (double __x) throw (); extern double __cos (double __x) throw (); + + extern double sin (double __x) throw (); extern double __sin (double __x) throw (); + +extern double tan (double __x) throw (); extern double __tan (double __x) throw (); + + + + +extern double cosh (double __x) throw (); extern double __cosh (double __x) throw (); + +extern double sinh (double __x) throw (); extern double __sinh (double __x) throw (); + +extern double tanh (double __x) throw (); extern double __tanh (double __x) throw (); + + + + extern void sincos (double __x, double *__sinx, double *__cosx) throw (); extern void __sincos (double __x, double *__sinx, double *__cosx) throw () + ; + + + + +extern double acosh (double __x) throw (); extern double __acosh (double __x) throw (); + +extern double asinh (double __x) throw (); extern double __asinh (double __x) throw (); + +extern double atanh (double __x) throw (); extern double __atanh (double __x) throw (); + + + + + + extern double exp (double __x) throw (); extern double __exp (double __x) throw (); + + +extern double frexp (double __x, int *__exponent) throw (); extern double __frexp (double __x, int *__exponent) throw (); + + +extern double ldexp (double __x, int __exponent) throw (); extern double __ldexp (double __x, int __exponent) throw (); + + + extern double log (double __x) throw (); extern double __log (double __x) throw (); + + +extern double log10 (double __x) throw (); extern double __log10 (double __x) throw (); + + +extern double modf (double __x, double *__iptr) throw (); extern double __modf (double __x, double *__iptr) throw () __attribute__ ((__nonnull__ (2))); + + + +extern double exp10 (double __x) throw (); extern double __exp10 (double __x) throw (); + + + + +extern double expm1 (double __x) throw (); extern double __expm1 (double __x) throw (); + + +extern double log1p (double __x) throw (); extern double __log1p (double __x) throw (); + + +extern double logb (double __x) throw (); extern double __logb (double __x) throw (); + + + + +extern double exp2 (double __x) throw (); extern double __exp2 (double __x) throw (); + + +extern double log2 (double __x) throw (); extern double __log2 (double __x) throw (); + + + + + + + extern double pow (double __x, double __y) throw (); extern double __pow (double __x, double __y) throw (); + + +extern double sqrt (double __x) throw (); extern double __sqrt (double __x) throw (); + + + +extern double hypot (double __x, double __y) throw (); extern double __hypot (double __x, double __y) throw (); + + + + +extern double cbrt (double __x) throw (); extern double __cbrt (double __x) throw (); + + + + + + +extern double ceil (double __x) throw () __attribute__ ((__const__)); extern double __ceil (double __x) throw () __attribute__ ((__const__)); + + +extern double fabs (double __x) throw () __attribute__ ((__const__)); extern double __fabs (double __x) throw () __attribute__ ((__const__)); + + +extern double floor (double __x) throw () __attribute__ ((__const__)); extern double __floor (double __x) throw () __attribute__ ((__const__)); + + +extern double fmod (double __x, double __y) throw (); extern double __fmod (double __x, double __y) throw (); +# 182 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern int finite (double __value) throw () __attribute__ ((__const__)); + + +extern double drem (double __x, double __y) throw (); extern double __drem (double __x, double __y) throw (); + + + +extern double significand (double __x) throw (); extern double __significand (double __x) throw (); + + + + + + +extern double copysign (double __x, double __y) throw () __attribute__ ((__const__)); extern double __copysign (double __x, double __y) throw () __attribute__ ((__const__)); + + + + +extern double nan (const char *__tagb) throw (); extern double __nan (const char *__tagb) throw (); +# 217 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern double j0 (double) throw (); extern double __j0 (double) throw (); +extern double j1 (double) throw (); extern double __j1 (double) throw (); +extern double jn (int, double) throw (); extern double __jn (int, double) throw (); +extern double y0 (double) throw (); extern double __y0 (double) throw (); +extern double y1 (double) throw (); extern double __y1 (double) throw (); +extern double yn (int, double) throw (); extern double __yn (int, double) throw (); + + + + + +extern double erf (double) throw (); extern double __erf (double) throw (); +extern double erfc (double) throw (); extern double __erfc (double) throw (); +extern double lgamma (double) throw (); extern double __lgamma (double) throw (); + + + + +extern double tgamma (double) throw (); extern double __tgamma (double) throw (); + + + + + +extern double gamma (double) throw (); extern double __gamma (double) throw (); + + + + + + + +extern double lgamma_r (double, int *__signgamp) throw (); extern double __lgamma_r (double, int *__signgamp) throw (); + + + + + + +extern double rint (double __x) throw (); extern double __rint (double __x) throw (); + + +extern double nextafter (double __x, double __y) throw (); extern double __nextafter (double __x, double __y) throw (); + +extern double nexttoward (double __x, long double __y) throw (); extern double __nexttoward (double __x, long double __y) throw (); + + + + +extern double nextdown (double __x) throw (); extern double __nextdown (double __x) throw (); + +extern double nextup (double __x) throw (); extern double __nextup (double __x) throw (); + + + +extern double remainder (double __x, double __y) throw (); extern double __remainder (double __x, double __y) throw (); + + + +extern double scalbn (double __x, int __n) throw (); extern double __scalbn (double __x, int __n) throw (); + + + +extern int ilogb (double __x) throw (); extern int __ilogb (double __x) throw (); + + + + +extern long int llogb (double __x) throw (); extern long int __llogb (double __x) throw (); + + + + +extern double scalbln (double __x, long int __n) throw (); extern double __scalbln (double __x, long int __n) throw (); + + + +extern double nearbyint (double __x) throw (); extern double __nearbyint (double __x) throw (); + + + +extern double round (double __x) throw () __attribute__ ((__const__)); extern double __round (double __x) throw () __attribute__ ((__const__)); + + + +extern double trunc (double __x) throw () __attribute__ ((__const__)); extern double __trunc (double __x) throw () __attribute__ ((__const__)); + + + + +extern double remquo (double __x, double __y, int *__quo) throw (); extern double __remquo (double __x, double __y, int *__quo) throw (); + + + + + + +extern long int lrint (double __x) throw (); extern long int __lrint (double __x) throw (); +__extension__ +extern long long int llrint (double __x) throw (); extern long long int __llrint (double __x) throw (); + + + +extern long int lround (double __x) throw (); extern long int __lround (double __x) throw (); +__extension__ +extern long long int llround (double __x) throw (); extern long long int __llround (double __x) throw (); + + + +extern double fdim (double __x, double __y) throw (); extern double __fdim (double __x, double __y) throw (); + + +extern double fmax (double __x, double __y) throw () __attribute__ ((__const__)); extern double __fmax (double __x, double __y) throw () __attribute__ ((__const__)); + + +extern double fmin (double __x, double __y) throw () __attribute__ ((__const__)); extern double __fmin (double __x, double __y) throw () __attribute__ ((__const__)); + + +extern double fma (double __x, double __y, double __z) throw (); extern double __fma (double __x, double __y, double __z) throw (); + + + + +extern double roundeven (double __x) throw () __attribute__ ((__const__)); extern double __roundeven (double __x) throw () __attribute__ ((__const__)); + + + +extern __intmax_t fromfp (double __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfp (double __x, int __round, unsigned int __width) throw () + ; + + + +extern __uintmax_t ufromfp (double __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfp (double __x, int __round, unsigned int __width) throw () + ; + + + + +extern __intmax_t fromfpx (double __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpx (double __x, int __round, unsigned int __width) throw () + ; + + + + +extern __uintmax_t ufromfpx (double __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpx (double __x, int __round, unsigned int __width) throw () + ; + + +extern double fmaxmag (double __x, double __y) throw () __attribute__ ((__const__)); extern double __fmaxmag (double __x, double __y) throw () __attribute__ ((__const__)); + + +extern double fminmag (double __x, double __y) throw () __attribute__ ((__const__)); extern double __fminmag (double __x, double __y) throw () __attribute__ ((__const__)); + + +extern int canonicalize (double *__cx, const double *__x) throw (); + + + + +extern int totalorder (const double *__x, const double *__y) throw () + + __attribute__ ((__pure__)); + + +extern int totalordermag (const double *__x, const double *__y) throw () + + __attribute__ ((__pure__)); + + +extern double getpayload (const double *__x) throw (); extern double __getpayload (const double *__x) throw (); + + +extern int setpayload (double *__x, double __payload) throw (); + + +extern int setpayloadsig (double *__x, double __payload) throw (); + + + + + + + +extern double scalb (double __x, double __n) throw (); extern double __scalb (double __x, double __n) throw (); +# 291 "/usr/include/math.h" 2 3 4 +# 306 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h" 1 3 4 +# 21 "/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h" 3 4 +extern int __fpclassifyf (float __value) throw () + __attribute__ ((__const__)); + + +extern int __signbitf (float __value) throw () + __attribute__ ((__const__)); + + + +extern int __isinff (float __value) throw () __attribute__ ((__const__)); + + +extern int __finitef (float __value) throw () __attribute__ ((__const__)); + + +extern int __isnanf (float __value) throw () __attribute__ ((__const__)); + + +extern int __iseqsigf (float __x, float __y) throw (); + + +extern int __issignalingf (float __value) throw () + __attribute__ ((__const__)); +# 307 "/usr/include/math.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern float acosf (float __x) throw (); extern float __acosf (float __x) throw (); + +extern float asinf (float __x) throw (); extern float __asinf (float __x) throw (); + +extern float atanf (float __x) throw (); extern float __atanf (float __x) throw (); + +extern float atan2f (float __y, float __x) throw (); extern float __atan2f (float __y, float __x) throw (); + + + extern float cosf (float __x) throw (); extern float __cosf (float __x) throw (); + + extern float sinf (float __x) throw (); extern float __sinf (float __x) throw (); + +extern float tanf (float __x) throw (); extern float __tanf (float __x) throw (); + + + + +extern float coshf (float __x) throw (); extern float __coshf (float __x) throw (); + +extern float sinhf (float __x) throw (); extern float __sinhf (float __x) throw (); + +extern float tanhf (float __x) throw (); extern float __tanhf (float __x) throw (); + + + + extern void sincosf (float __x, float *__sinx, float *__cosx) throw (); extern void __sincosf (float __x, float *__sinx, float *__cosx) throw () + ; + + + + +extern float acoshf (float __x) throw (); extern float __acoshf (float __x) throw (); + +extern float asinhf (float __x) throw (); extern float __asinhf (float __x) throw (); + +extern float atanhf (float __x) throw (); extern float __atanhf (float __x) throw (); + + + + + + extern float expf (float __x) throw (); extern float __expf (float __x) throw (); + + +extern float frexpf (float __x, int *__exponent) throw (); extern float __frexpf (float __x, int *__exponent) throw (); + + +extern float ldexpf (float __x, int __exponent) throw (); extern float __ldexpf (float __x, int __exponent) throw (); + + + extern float logf (float __x) throw (); extern float __logf (float __x) throw (); + + +extern float log10f (float __x) throw (); extern float __log10f (float __x) throw (); + + +extern float modff (float __x, float *__iptr) throw (); extern float __modff (float __x, float *__iptr) throw () __attribute__ ((__nonnull__ (2))); + + + +extern float exp10f (float __x) throw (); extern float __exp10f (float __x) throw (); + + + + +extern float expm1f (float __x) throw (); extern float __expm1f (float __x) throw (); + + +extern float log1pf (float __x) throw (); extern float __log1pf (float __x) throw (); + + +extern float logbf (float __x) throw (); extern float __logbf (float __x) throw (); + + + + +extern float exp2f (float __x) throw (); extern float __exp2f (float __x) throw (); + + +extern float log2f (float __x) throw (); extern float __log2f (float __x) throw (); + + + + + + + extern float powf (float __x, float __y) throw (); extern float __powf (float __x, float __y) throw (); + + +extern float sqrtf (float __x) throw (); extern float __sqrtf (float __x) throw (); + + + +extern float hypotf (float __x, float __y) throw (); extern float __hypotf (float __x, float __y) throw (); + + + + +extern float cbrtf (float __x) throw (); extern float __cbrtf (float __x) throw (); + + + + + + +extern float ceilf (float __x) throw () __attribute__ ((__const__)); extern float __ceilf (float __x) throw () __attribute__ ((__const__)); + + +extern float fabsf (float __x) throw () __attribute__ ((__const__)); extern float __fabsf (float __x) throw () __attribute__ ((__const__)); + + +extern float floorf (float __x) throw () __attribute__ ((__const__)); extern float __floorf (float __x) throw () __attribute__ ((__const__)); + + +extern float fmodf (float __x, float __y) throw (); extern float __fmodf (float __x, float __y) throw (); +# 177 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern int isinff (float __value) throw () __attribute__ ((__const__)); + + + + +extern int finitef (float __value) throw () __attribute__ ((__const__)); + + +extern float dremf (float __x, float __y) throw (); extern float __dremf (float __x, float __y) throw (); + + + +extern float significandf (float __x) throw (); extern float __significandf (float __x) throw (); + + + + + + +extern float copysignf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __copysignf (float __x, float __y) throw () __attribute__ ((__const__)); + + + + +extern float nanf (const char *__tagb) throw (); extern float __nanf (const char *__tagb) throw (); +# 211 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern int isnanf (float __value) throw () __attribute__ ((__const__)); + + + + + +extern float j0f (float) throw (); extern float __j0f (float) throw (); +extern float j1f (float) throw (); extern float __j1f (float) throw (); +extern float jnf (int, float) throw (); extern float __jnf (int, float) throw (); +extern float y0f (float) throw (); extern float __y0f (float) throw (); +extern float y1f (float) throw (); extern float __y1f (float) throw (); +extern float ynf (int, float) throw (); extern float __ynf (int, float) throw (); + + + + + +extern float erff (float) throw (); extern float __erff (float) throw (); +extern float erfcf (float) throw (); extern float __erfcf (float) throw (); +extern float lgammaf (float) throw (); extern float __lgammaf (float) throw (); + + + + +extern float tgammaf (float) throw (); extern float __tgammaf (float) throw (); + + + + + +extern float gammaf (float) throw (); extern float __gammaf (float) throw (); + + + + + + + +extern float lgammaf_r (float, int *__signgamp) throw (); extern float __lgammaf_r (float, int *__signgamp) throw (); + + + + + + +extern float rintf (float __x) throw (); extern float __rintf (float __x) throw (); + + +extern float nextafterf (float __x, float __y) throw (); extern float __nextafterf (float __x, float __y) throw (); + +extern float nexttowardf (float __x, long double __y) throw (); extern float __nexttowardf (float __x, long double __y) throw (); + + + + +extern float nextdownf (float __x) throw (); extern float __nextdownf (float __x) throw (); + +extern float nextupf (float __x) throw (); extern float __nextupf (float __x) throw (); + + + +extern float remainderf (float __x, float __y) throw (); extern float __remainderf (float __x, float __y) throw (); + + + +extern float scalbnf (float __x, int __n) throw (); extern float __scalbnf (float __x, int __n) throw (); + + + +extern int ilogbf (float __x) throw (); extern int __ilogbf (float __x) throw (); + + + + +extern long int llogbf (float __x) throw (); extern long int __llogbf (float __x) throw (); + + + + +extern float scalblnf (float __x, long int __n) throw (); extern float __scalblnf (float __x, long int __n) throw (); + + + +extern float nearbyintf (float __x) throw (); extern float __nearbyintf (float __x) throw (); + + + +extern float roundf (float __x) throw () __attribute__ ((__const__)); extern float __roundf (float __x) throw () __attribute__ ((__const__)); + + + +extern float truncf (float __x) throw () __attribute__ ((__const__)); extern float __truncf (float __x) throw () __attribute__ ((__const__)); + + + + +extern float remquof (float __x, float __y, int *__quo) throw (); extern float __remquof (float __x, float __y, int *__quo) throw (); + + + + + + +extern long int lrintf (float __x) throw (); extern long int __lrintf (float __x) throw (); +__extension__ +extern long long int llrintf (float __x) throw (); extern long long int __llrintf (float __x) throw (); + + + +extern long int lroundf (float __x) throw (); extern long int __lroundf (float __x) throw (); +__extension__ +extern long long int llroundf (float __x) throw (); extern long long int __llroundf (float __x) throw (); + + + +extern float fdimf (float __x, float __y) throw (); extern float __fdimf (float __x, float __y) throw (); + + +extern float fmaxf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __fmaxf (float __x, float __y) throw () __attribute__ ((__const__)); + + +extern float fminf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __fminf (float __x, float __y) throw () __attribute__ ((__const__)); + + +extern float fmaf (float __x, float __y, float __z) throw (); extern float __fmaf (float __x, float __y, float __z) throw (); + + + + +extern float roundevenf (float __x) throw () __attribute__ ((__const__)); extern float __roundevenf (float __x) throw () __attribute__ ((__const__)); + + + +extern __intmax_t fromfpf (float __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpf (float __x, int __round, unsigned int __width) throw () + ; + + + +extern __uintmax_t ufromfpf (float __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpf (float __x, int __round, unsigned int __width) throw () + ; + + + + +extern __intmax_t fromfpxf (float __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpxf (float __x, int __round, unsigned int __width) throw () + ; + + + + +extern __uintmax_t ufromfpxf (float __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpxf (float __x, int __round, unsigned int __width) throw () + ; + + +extern float fmaxmagf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __fmaxmagf (float __x, float __y) throw () __attribute__ ((__const__)); + + +extern float fminmagf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __fminmagf (float __x, float __y) throw () __attribute__ ((__const__)); + + +extern int canonicalizef (float *__cx, const float *__x) throw (); + + + + +extern int totalorderf (const float *__x, const float *__y) throw () + + __attribute__ ((__pure__)); + + +extern int totalordermagf (const float *__x, const float *__y) throw () + + __attribute__ ((__pure__)); + + +extern float getpayloadf (const float *__x) throw (); extern float __getpayloadf (const float *__x) throw (); + + +extern int setpayloadf (float *__x, float __payload) throw (); + + +extern int setpayloadsigf (float *__x, float __payload) throw (); + + + + + + + +extern float scalbf (float __x, float __n) throw (); extern float __scalbf (float __x, float __n) throw (); +# 308 "/usr/include/math.h" 2 3 4 +# 349 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h" 1 3 4 +# 21 "/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h" 3 4 +extern int __fpclassifyl (long double __value) throw () + __attribute__ ((__const__)); + + +extern int __signbitl (long double __value) throw () + __attribute__ ((__const__)); + + + +extern int __isinfl (long double __value) throw () __attribute__ ((__const__)); + + +extern int __finitel (long double __value) throw () __attribute__ ((__const__)); + + +extern int __isnanl (long double __value) throw () __attribute__ ((__const__)); + + +extern int __iseqsigl (long double __x, long double __y) throw (); + + +extern int __issignalingl (long double __value) throw () + __attribute__ ((__const__)); +# 350 "/usr/include/math.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern long double acosl (long double __x) throw (); extern long double __acosl (long double __x) throw (); + +extern long double asinl (long double __x) throw (); extern long double __asinl (long double __x) throw (); + +extern long double atanl (long double __x) throw (); extern long double __atanl (long double __x) throw (); + +extern long double atan2l (long double __y, long double __x) throw (); extern long double __atan2l (long double __y, long double __x) throw (); + + + extern long double cosl (long double __x) throw (); extern long double __cosl (long double __x) throw (); + + extern long double sinl (long double __x) throw (); extern long double __sinl (long double __x) throw (); + +extern long double tanl (long double __x) throw (); extern long double __tanl (long double __x) throw (); + + + + +extern long double coshl (long double __x) throw (); extern long double __coshl (long double __x) throw (); + +extern long double sinhl (long double __x) throw (); extern long double __sinhl (long double __x) throw (); + +extern long double tanhl (long double __x) throw (); extern long double __tanhl (long double __x) throw (); + + + + extern void sincosl (long double __x, long double *__sinx, long double *__cosx) throw (); extern void __sincosl (long double __x, long double *__sinx, long double *__cosx) throw () + ; + + + + +extern long double acoshl (long double __x) throw (); extern long double __acoshl (long double __x) throw (); + +extern long double asinhl (long double __x) throw (); extern long double __asinhl (long double __x) throw (); + +extern long double atanhl (long double __x) throw (); extern long double __atanhl (long double __x) throw (); + + + + + + extern long double expl (long double __x) throw (); extern long double __expl (long double __x) throw (); + + +extern long double frexpl (long double __x, int *__exponent) throw (); extern long double __frexpl (long double __x, int *__exponent) throw (); + + +extern long double ldexpl (long double __x, int __exponent) throw (); extern long double __ldexpl (long double __x, int __exponent) throw (); + + + extern long double logl (long double __x) throw (); extern long double __logl (long double __x) throw (); + + +extern long double log10l (long double __x) throw (); extern long double __log10l (long double __x) throw (); + + +extern long double modfl (long double __x, long double *__iptr) throw (); extern long double __modfl (long double __x, long double *__iptr) throw () __attribute__ ((__nonnull__ (2))); + + + +extern long double exp10l (long double __x) throw (); extern long double __exp10l (long double __x) throw (); + + + + +extern long double expm1l (long double __x) throw (); extern long double __expm1l (long double __x) throw (); + + +extern long double log1pl (long double __x) throw (); extern long double __log1pl (long double __x) throw (); + + +extern long double logbl (long double __x) throw (); extern long double __logbl (long double __x) throw (); + + + + +extern long double exp2l (long double __x) throw (); extern long double __exp2l (long double __x) throw (); + + +extern long double log2l (long double __x) throw (); extern long double __log2l (long double __x) throw (); + + + + + + + extern long double powl (long double __x, long double __y) throw (); extern long double __powl (long double __x, long double __y) throw (); + + +extern long double sqrtl (long double __x) throw (); extern long double __sqrtl (long double __x) throw (); + + + +extern long double hypotl (long double __x, long double __y) throw (); extern long double __hypotl (long double __x, long double __y) throw (); + + + + +extern long double cbrtl (long double __x) throw (); extern long double __cbrtl (long double __x) throw (); + + + + + + +extern long double ceill (long double __x) throw () __attribute__ ((__const__)); extern long double __ceill (long double __x) throw () __attribute__ ((__const__)); + + +extern long double fabsl (long double __x) throw () __attribute__ ((__const__)); extern long double __fabsl (long double __x) throw () __attribute__ ((__const__)); + + +extern long double floorl (long double __x) throw () __attribute__ ((__const__)); extern long double __floorl (long double __x) throw () __attribute__ ((__const__)); + + +extern long double fmodl (long double __x, long double __y) throw (); extern long double __fmodl (long double __x, long double __y) throw (); +# 177 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern int isinfl (long double __value) throw () __attribute__ ((__const__)); + + + + +extern int finitel (long double __value) throw () __attribute__ ((__const__)); + + +extern long double dreml (long double __x, long double __y) throw (); extern long double __dreml (long double __x, long double __y) throw (); + + + +extern long double significandl (long double __x) throw (); extern long double __significandl (long double __x) throw (); + + + + + + +extern long double copysignl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __copysignl (long double __x, long double __y) throw () __attribute__ ((__const__)); + + + + +extern long double nanl (const char *__tagb) throw (); extern long double __nanl (const char *__tagb) throw (); +# 211 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern int isnanl (long double __value) throw () __attribute__ ((__const__)); + + + + + +extern long double j0l (long double) throw (); extern long double __j0l (long double) throw (); +extern long double j1l (long double) throw (); extern long double __j1l (long double) throw (); +extern long double jnl (int, long double) throw (); extern long double __jnl (int, long double) throw (); +extern long double y0l (long double) throw (); extern long double __y0l (long double) throw (); +extern long double y1l (long double) throw (); extern long double __y1l (long double) throw (); +extern long double ynl (int, long double) throw (); extern long double __ynl (int, long double) throw (); + + + + + +extern long double erfl (long double) throw (); extern long double __erfl (long double) throw (); +extern long double erfcl (long double) throw (); extern long double __erfcl (long double) throw (); +extern long double lgammal (long double) throw (); extern long double __lgammal (long double) throw (); + + + + +extern long double tgammal (long double) throw (); extern long double __tgammal (long double) throw (); + + + + + +extern long double gammal (long double) throw (); extern long double __gammal (long double) throw (); + + + + + + + +extern long double lgammal_r (long double, int *__signgamp) throw (); extern long double __lgammal_r (long double, int *__signgamp) throw (); + + + + + + +extern long double rintl (long double __x) throw (); extern long double __rintl (long double __x) throw (); + + +extern long double nextafterl (long double __x, long double __y) throw (); extern long double __nextafterl (long double __x, long double __y) throw (); + +extern long double nexttowardl (long double __x, long double __y) throw (); extern long double __nexttowardl (long double __x, long double __y) throw (); + + + + +extern long double nextdownl (long double __x) throw (); extern long double __nextdownl (long double __x) throw (); + +extern long double nextupl (long double __x) throw (); extern long double __nextupl (long double __x) throw (); + + + +extern long double remainderl (long double __x, long double __y) throw (); extern long double __remainderl (long double __x, long double __y) throw (); + + + +extern long double scalbnl (long double __x, int __n) throw (); extern long double __scalbnl (long double __x, int __n) throw (); + + + +extern int ilogbl (long double __x) throw (); extern int __ilogbl (long double __x) throw (); + + + + +extern long int llogbl (long double __x) throw (); extern long int __llogbl (long double __x) throw (); + + + + +extern long double scalblnl (long double __x, long int __n) throw (); extern long double __scalblnl (long double __x, long int __n) throw (); + + + +extern long double nearbyintl (long double __x) throw (); extern long double __nearbyintl (long double __x) throw (); + + + +extern long double roundl (long double __x) throw () __attribute__ ((__const__)); extern long double __roundl (long double __x) throw () __attribute__ ((__const__)); + + + +extern long double truncl (long double __x) throw () __attribute__ ((__const__)); extern long double __truncl (long double __x) throw () __attribute__ ((__const__)); + + + + +extern long double remquol (long double __x, long double __y, int *__quo) throw (); extern long double __remquol (long double __x, long double __y, int *__quo) throw (); + + + + + + +extern long int lrintl (long double __x) throw (); extern long int __lrintl (long double __x) throw (); +__extension__ +extern long long int llrintl (long double __x) throw (); extern long long int __llrintl (long double __x) throw (); + + + +extern long int lroundl (long double __x) throw (); extern long int __lroundl (long double __x) throw (); +__extension__ +extern long long int llroundl (long double __x) throw (); extern long long int __llroundl (long double __x) throw (); + + + +extern long double fdiml (long double __x, long double __y) throw (); extern long double __fdiml (long double __x, long double __y) throw (); + + +extern long double fmaxl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __fmaxl (long double __x, long double __y) throw () __attribute__ ((__const__)); + + +extern long double fminl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __fminl (long double __x, long double __y) throw () __attribute__ ((__const__)); + + +extern long double fmal (long double __x, long double __y, long double __z) throw (); extern long double __fmal (long double __x, long double __y, long double __z) throw (); + + + + +extern long double roundevenl (long double __x) throw () __attribute__ ((__const__)); extern long double __roundevenl (long double __x) throw () __attribute__ ((__const__)); + + + +extern __intmax_t fromfpl (long double __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpl (long double __x, int __round, unsigned int __width) throw () + ; + + + +extern __uintmax_t ufromfpl (long double __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpl (long double __x, int __round, unsigned int __width) throw () + ; + + + + +extern __intmax_t fromfpxl (long double __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpxl (long double __x, int __round, unsigned int __width) throw () + ; + + + + +extern __uintmax_t ufromfpxl (long double __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpxl (long double __x, int __round, unsigned int __width) throw () + ; + + +extern long double fmaxmagl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __fmaxmagl (long double __x, long double __y) throw () __attribute__ ((__const__)); + + +extern long double fminmagl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __fminmagl (long double __x, long double __y) throw () __attribute__ ((__const__)); + + +extern int canonicalizel (long double *__cx, const long double *__x) throw (); + + + + +extern int totalorderl (const long double *__x, const long double *__y) throw () + + __attribute__ ((__pure__)); + + +extern int totalordermagl (const long double *__x, const long double *__y) throw () + + __attribute__ ((__pure__)); + + +extern long double getpayloadl (const long double *__x) throw (); extern long double __getpayloadl (const long double *__x) throw (); + + +extern int setpayloadl (long double *__x, long double __payload) throw (); + + +extern int setpayloadsigl (long double *__x, long double __payload) throw (); + + + + + + + +extern long double scalbl (long double __x, long double __n) throw (); extern long double __scalbl (long double __x, long double __n) throw (); +# 351 "/usr/include/math.h" 2 3 4 +# 389 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern _Float32 acosf32 (_Float32 __x) throw (); extern _Float32 __acosf32 (_Float32 __x) throw (); + +extern _Float32 asinf32 (_Float32 __x) throw (); extern _Float32 __asinf32 (_Float32 __x) throw (); + +extern _Float32 atanf32 (_Float32 __x) throw (); extern _Float32 __atanf32 (_Float32 __x) throw (); + +extern _Float32 atan2f32 (_Float32 __y, _Float32 __x) throw (); extern _Float32 __atan2f32 (_Float32 __y, _Float32 __x) throw (); + + + extern _Float32 cosf32 (_Float32 __x) throw (); extern _Float32 __cosf32 (_Float32 __x) throw (); + + extern _Float32 sinf32 (_Float32 __x) throw (); extern _Float32 __sinf32 (_Float32 __x) throw (); + +extern _Float32 tanf32 (_Float32 __x) throw (); extern _Float32 __tanf32 (_Float32 __x) throw (); + + + + +extern _Float32 coshf32 (_Float32 __x) throw (); extern _Float32 __coshf32 (_Float32 __x) throw (); + +extern _Float32 sinhf32 (_Float32 __x) throw (); extern _Float32 __sinhf32 (_Float32 __x) throw (); + +extern _Float32 tanhf32 (_Float32 __x) throw (); extern _Float32 __tanhf32 (_Float32 __x) throw (); + + + + extern void sincosf32 (_Float32 __x, _Float32 *__sinx, _Float32 *__cosx) throw (); extern void __sincosf32 (_Float32 __x, _Float32 *__sinx, _Float32 *__cosx) throw () + ; + + + + +extern _Float32 acoshf32 (_Float32 __x) throw (); extern _Float32 __acoshf32 (_Float32 __x) throw (); + +extern _Float32 asinhf32 (_Float32 __x) throw (); extern _Float32 __asinhf32 (_Float32 __x) throw (); + +extern _Float32 atanhf32 (_Float32 __x) throw (); extern _Float32 __atanhf32 (_Float32 __x) throw (); + + + + + + extern _Float32 expf32 (_Float32 __x) throw (); extern _Float32 __expf32 (_Float32 __x) throw (); + + +extern _Float32 frexpf32 (_Float32 __x, int *__exponent) throw (); extern _Float32 __frexpf32 (_Float32 __x, int *__exponent) throw (); + + +extern _Float32 ldexpf32 (_Float32 __x, int __exponent) throw (); extern _Float32 __ldexpf32 (_Float32 __x, int __exponent) throw (); + + + extern _Float32 logf32 (_Float32 __x) throw (); extern _Float32 __logf32 (_Float32 __x) throw (); + + +extern _Float32 log10f32 (_Float32 __x) throw (); extern _Float32 __log10f32 (_Float32 __x) throw (); + + +extern _Float32 modff32 (_Float32 __x, _Float32 *__iptr) throw (); extern _Float32 __modff32 (_Float32 __x, _Float32 *__iptr) throw () __attribute__ ((__nonnull__ (2))); + + + +extern _Float32 exp10f32 (_Float32 __x) throw (); extern _Float32 __exp10f32 (_Float32 __x) throw (); + + + + +extern _Float32 expm1f32 (_Float32 __x) throw (); extern _Float32 __expm1f32 (_Float32 __x) throw (); + + +extern _Float32 log1pf32 (_Float32 __x) throw (); extern _Float32 __log1pf32 (_Float32 __x) throw (); + + +extern _Float32 logbf32 (_Float32 __x) throw (); extern _Float32 __logbf32 (_Float32 __x) throw (); + + + + +extern _Float32 exp2f32 (_Float32 __x) throw (); extern _Float32 __exp2f32 (_Float32 __x) throw (); + + +extern _Float32 log2f32 (_Float32 __x) throw (); extern _Float32 __log2f32 (_Float32 __x) throw (); + + + + + + + extern _Float32 powf32 (_Float32 __x, _Float32 __y) throw (); extern _Float32 __powf32 (_Float32 __x, _Float32 __y) throw (); + + +extern _Float32 sqrtf32 (_Float32 __x) throw (); extern _Float32 __sqrtf32 (_Float32 __x) throw (); + + + +extern _Float32 hypotf32 (_Float32 __x, _Float32 __y) throw (); extern _Float32 __hypotf32 (_Float32 __x, _Float32 __y) throw (); + + + + +extern _Float32 cbrtf32 (_Float32 __x) throw (); extern _Float32 __cbrtf32 (_Float32 __x) throw (); + + + + + + +extern _Float32 ceilf32 (_Float32 __x) throw () __attribute__ ((__const__)); extern _Float32 __ceilf32 (_Float32 __x) throw () __attribute__ ((__const__)); + + +extern _Float32 fabsf32 (_Float32 __x) throw () __attribute__ ((__const__)); extern _Float32 __fabsf32 (_Float32 __x) throw () __attribute__ ((__const__)); + + +extern _Float32 floorf32 (_Float32 __x) throw () __attribute__ ((__const__)); extern _Float32 __floorf32 (_Float32 __x) throw () __attribute__ ((__const__)); + + +extern _Float32 fmodf32 (_Float32 __x, _Float32 __y) throw (); extern _Float32 __fmodf32 (_Float32 __x, _Float32 __y) throw (); +# 196 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern _Float32 copysignf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); extern _Float32 __copysignf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); + + + + +extern _Float32 nanf32 (const char *__tagb) throw (); extern _Float32 __nanf32 (const char *__tagb) throw (); +# 217 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern _Float32 j0f32 (_Float32) throw (); extern _Float32 __j0f32 (_Float32) throw (); +extern _Float32 j1f32 (_Float32) throw (); extern _Float32 __j1f32 (_Float32) throw (); +extern _Float32 jnf32 (int, _Float32) throw (); extern _Float32 __jnf32 (int, _Float32) throw (); +extern _Float32 y0f32 (_Float32) throw (); extern _Float32 __y0f32 (_Float32) throw (); +extern _Float32 y1f32 (_Float32) throw (); extern _Float32 __y1f32 (_Float32) throw (); +extern _Float32 ynf32 (int, _Float32) throw (); extern _Float32 __ynf32 (int, _Float32) throw (); + + + + + +extern _Float32 erff32 (_Float32) throw (); extern _Float32 __erff32 (_Float32) throw (); +extern _Float32 erfcf32 (_Float32) throw (); extern _Float32 __erfcf32 (_Float32) throw (); +extern _Float32 lgammaf32 (_Float32) throw (); extern _Float32 __lgammaf32 (_Float32) throw (); + + + + +extern _Float32 tgammaf32 (_Float32) throw (); extern _Float32 __tgammaf32 (_Float32) throw (); +# 249 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern _Float32 lgammaf32_r (_Float32, int *__signgamp) throw (); extern _Float32 __lgammaf32_r (_Float32, int *__signgamp) throw (); + + + + + + +extern _Float32 rintf32 (_Float32 __x) throw (); extern _Float32 __rintf32 (_Float32 __x) throw (); + + +extern _Float32 nextafterf32 (_Float32 __x, _Float32 __y) throw (); extern _Float32 __nextafterf32 (_Float32 __x, _Float32 __y) throw (); + + + + + + +extern _Float32 nextdownf32 (_Float32 __x) throw (); extern _Float32 __nextdownf32 (_Float32 __x) throw (); + +extern _Float32 nextupf32 (_Float32 __x) throw (); extern _Float32 __nextupf32 (_Float32 __x) throw (); + + + +extern _Float32 remainderf32 (_Float32 __x, _Float32 __y) throw (); extern _Float32 __remainderf32 (_Float32 __x, _Float32 __y) throw (); + + + +extern _Float32 scalbnf32 (_Float32 __x, int __n) throw (); extern _Float32 __scalbnf32 (_Float32 __x, int __n) throw (); + + + +extern int ilogbf32 (_Float32 __x) throw (); extern int __ilogbf32 (_Float32 __x) throw (); + + + + +extern long int llogbf32 (_Float32 __x) throw (); extern long int __llogbf32 (_Float32 __x) throw (); + + + + +extern _Float32 scalblnf32 (_Float32 __x, long int __n) throw (); extern _Float32 __scalblnf32 (_Float32 __x, long int __n) throw (); + + + +extern _Float32 nearbyintf32 (_Float32 __x) throw (); extern _Float32 __nearbyintf32 (_Float32 __x) throw (); + + + +extern _Float32 roundf32 (_Float32 __x) throw () __attribute__ ((__const__)); extern _Float32 __roundf32 (_Float32 __x) throw () __attribute__ ((__const__)); + + + +extern _Float32 truncf32 (_Float32 __x) throw () __attribute__ ((__const__)); extern _Float32 __truncf32 (_Float32 __x) throw () __attribute__ ((__const__)); + + + + +extern _Float32 remquof32 (_Float32 __x, _Float32 __y, int *__quo) throw (); extern _Float32 __remquof32 (_Float32 __x, _Float32 __y, int *__quo) throw (); + + + + + + +extern long int lrintf32 (_Float32 __x) throw (); extern long int __lrintf32 (_Float32 __x) throw (); +__extension__ +extern long long int llrintf32 (_Float32 __x) throw (); extern long long int __llrintf32 (_Float32 __x) throw (); + + + +extern long int lroundf32 (_Float32 __x) throw (); extern long int __lroundf32 (_Float32 __x) throw (); +__extension__ +extern long long int llroundf32 (_Float32 __x) throw (); extern long long int __llroundf32 (_Float32 __x) throw (); + + + +extern _Float32 fdimf32 (_Float32 __x, _Float32 __y) throw (); extern _Float32 __fdimf32 (_Float32 __x, _Float32 __y) throw (); + + +extern _Float32 fmaxf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); extern _Float32 __fmaxf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); + + +extern _Float32 fminf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); extern _Float32 __fminf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); + + +extern _Float32 fmaf32 (_Float32 __x, _Float32 __y, _Float32 __z) throw (); extern _Float32 __fmaf32 (_Float32 __x, _Float32 __y, _Float32 __z) throw (); + + + + +extern _Float32 roundevenf32 (_Float32 __x) throw () __attribute__ ((__const__)); extern _Float32 __roundevenf32 (_Float32 __x) throw () __attribute__ ((__const__)); + + + +extern __intmax_t fromfpf32 (_Float32 __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpf32 (_Float32 __x, int __round, unsigned int __width) throw () + ; + + + +extern __uintmax_t ufromfpf32 (_Float32 __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpf32 (_Float32 __x, int __round, unsigned int __width) throw () + ; + + + + +extern __intmax_t fromfpxf32 (_Float32 __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpxf32 (_Float32 __x, int __round, unsigned int __width) throw () + ; + + + + +extern __uintmax_t ufromfpxf32 (_Float32 __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpxf32 (_Float32 __x, int __round, unsigned int __width) throw () + ; + + +extern _Float32 fmaxmagf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); extern _Float32 __fmaxmagf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); + + +extern _Float32 fminmagf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); extern _Float32 __fminmagf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); + + +extern int canonicalizef32 (_Float32 *__cx, const _Float32 *__x) throw (); + + + + +extern int totalorderf32 (const _Float32 *__x, const _Float32 *__y) throw () + + __attribute__ ((__pure__)); + + +extern int totalordermagf32 (const _Float32 *__x, const _Float32 *__y) throw () + + __attribute__ ((__pure__)); + + +extern _Float32 getpayloadf32 (const _Float32 *__x) throw (); extern _Float32 __getpayloadf32 (const _Float32 *__x) throw (); + + +extern int setpayloadf32 (_Float32 *__x, _Float32 __payload) throw (); + + +extern int setpayloadsigf32 (_Float32 *__x, _Float32 __payload) throw (); +# 390 "/usr/include/math.h" 2 3 4 +# 406 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern _Float64 acosf64 (_Float64 __x) throw (); extern _Float64 __acosf64 (_Float64 __x) throw (); + +extern _Float64 asinf64 (_Float64 __x) throw (); extern _Float64 __asinf64 (_Float64 __x) throw (); + +extern _Float64 atanf64 (_Float64 __x) throw (); extern _Float64 __atanf64 (_Float64 __x) throw (); + +extern _Float64 atan2f64 (_Float64 __y, _Float64 __x) throw (); extern _Float64 __atan2f64 (_Float64 __y, _Float64 __x) throw (); + + + extern _Float64 cosf64 (_Float64 __x) throw (); extern _Float64 __cosf64 (_Float64 __x) throw (); + + extern _Float64 sinf64 (_Float64 __x) throw (); extern _Float64 __sinf64 (_Float64 __x) throw (); + +extern _Float64 tanf64 (_Float64 __x) throw (); extern _Float64 __tanf64 (_Float64 __x) throw (); + + + + +extern _Float64 coshf64 (_Float64 __x) throw (); extern _Float64 __coshf64 (_Float64 __x) throw (); + +extern _Float64 sinhf64 (_Float64 __x) throw (); extern _Float64 __sinhf64 (_Float64 __x) throw (); + +extern _Float64 tanhf64 (_Float64 __x) throw (); extern _Float64 __tanhf64 (_Float64 __x) throw (); + + + + extern void sincosf64 (_Float64 __x, _Float64 *__sinx, _Float64 *__cosx) throw (); extern void __sincosf64 (_Float64 __x, _Float64 *__sinx, _Float64 *__cosx) throw () + ; + + + + +extern _Float64 acoshf64 (_Float64 __x) throw (); extern _Float64 __acoshf64 (_Float64 __x) throw (); + +extern _Float64 asinhf64 (_Float64 __x) throw (); extern _Float64 __asinhf64 (_Float64 __x) throw (); + +extern _Float64 atanhf64 (_Float64 __x) throw (); extern _Float64 __atanhf64 (_Float64 __x) throw (); + + + + + + extern _Float64 expf64 (_Float64 __x) throw (); extern _Float64 __expf64 (_Float64 __x) throw (); + + +extern _Float64 frexpf64 (_Float64 __x, int *__exponent) throw (); extern _Float64 __frexpf64 (_Float64 __x, int *__exponent) throw (); + + +extern _Float64 ldexpf64 (_Float64 __x, int __exponent) throw (); extern _Float64 __ldexpf64 (_Float64 __x, int __exponent) throw (); + + + extern _Float64 logf64 (_Float64 __x) throw (); extern _Float64 __logf64 (_Float64 __x) throw (); + + +extern _Float64 log10f64 (_Float64 __x) throw (); extern _Float64 __log10f64 (_Float64 __x) throw (); + + +extern _Float64 modff64 (_Float64 __x, _Float64 *__iptr) throw (); extern _Float64 __modff64 (_Float64 __x, _Float64 *__iptr) throw () __attribute__ ((__nonnull__ (2))); + + + +extern _Float64 exp10f64 (_Float64 __x) throw (); extern _Float64 __exp10f64 (_Float64 __x) throw (); + + + + +extern _Float64 expm1f64 (_Float64 __x) throw (); extern _Float64 __expm1f64 (_Float64 __x) throw (); + + +extern _Float64 log1pf64 (_Float64 __x) throw (); extern _Float64 __log1pf64 (_Float64 __x) throw (); + + +extern _Float64 logbf64 (_Float64 __x) throw (); extern _Float64 __logbf64 (_Float64 __x) throw (); + + + + +extern _Float64 exp2f64 (_Float64 __x) throw (); extern _Float64 __exp2f64 (_Float64 __x) throw (); + + +extern _Float64 log2f64 (_Float64 __x) throw (); extern _Float64 __log2f64 (_Float64 __x) throw (); + + + + + + + extern _Float64 powf64 (_Float64 __x, _Float64 __y) throw (); extern _Float64 __powf64 (_Float64 __x, _Float64 __y) throw (); + + +extern _Float64 sqrtf64 (_Float64 __x) throw (); extern _Float64 __sqrtf64 (_Float64 __x) throw (); + + + +extern _Float64 hypotf64 (_Float64 __x, _Float64 __y) throw (); extern _Float64 __hypotf64 (_Float64 __x, _Float64 __y) throw (); + + + + +extern _Float64 cbrtf64 (_Float64 __x) throw (); extern _Float64 __cbrtf64 (_Float64 __x) throw (); + + + + + + +extern _Float64 ceilf64 (_Float64 __x) throw () __attribute__ ((__const__)); extern _Float64 __ceilf64 (_Float64 __x) throw () __attribute__ ((__const__)); + + +extern _Float64 fabsf64 (_Float64 __x) throw () __attribute__ ((__const__)); extern _Float64 __fabsf64 (_Float64 __x) throw () __attribute__ ((__const__)); + + +extern _Float64 floorf64 (_Float64 __x) throw () __attribute__ ((__const__)); extern _Float64 __floorf64 (_Float64 __x) throw () __attribute__ ((__const__)); + + +extern _Float64 fmodf64 (_Float64 __x, _Float64 __y) throw (); extern _Float64 __fmodf64 (_Float64 __x, _Float64 __y) throw (); +# 196 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern _Float64 copysignf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); extern _Float64 __copysignf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); + + + + +extern _Float64 nanf64 (const char *__tagb) throw (); extern _Float64 __nanf64 (const char *__tagb) throw (); +# 217 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern _Float64 j0f64 (_Float64) throw (); extern _Float64 __j0f64 (_Float64) throw (); +extern _Float64 j1f64 (_Float64) throw (); extern _Float64 __j1f64 (_Float64) throw (); +extern _Float64 jnf64 (int, _Float64) throw (); extern _Float64 __jnf64 (int, _Float64) throw (); +extern _Float64 y0f64 (_Float64) throw (); extern _Float64 __y0f64 (_Float64) throw (); +extern _Float64 y1f64 (_Float64) throw (); extern _Float64 __y1f64 (_Float64) throw (); +extern _Float64 ynf64 (int, _Float64) throw (); extern _Float64 __ynf64 (int, _Float64) throw (); + + + + + +extern _Float64 erff64 (_Float64) throw (); extern _Float64 __erff64 (_Float64) throw (); +extern _Float64 erfcf64 (_Float64) throw (); extern _Float64 __erfcf64 (_Float64) throw (); +extern _Float64 lgammaf64 (_Float64) throw (); extern _Float64 __lgammaf64 (_Float64) throw (); + + + + +extern _Float64 tgammaf64 (_Float64) throw (); extern _Float64 __tgammaf64 (_Float64) throw (); +# 249 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern _Float64 lgammaf64_r (_Float64, int *__signgamp) throw (); extern _Float64 __lgammaf64_r (_Float64, int *__signgamp) throw (); + + + + + + +extern _Float64 rintf64 (_Float64 __x) throw (); extern _Float64 __rintf64 (_Float64 __x) throw (); + + +extern _Float64 nextafterf64 (_Float64 __x, _Float64 __y) throw (); extern _Float64 __nextafterf64 (_Float64 __x, _Float64 __y) throw (); + + + + + + +extern _Float64 nextdownf64 (_Float64 __x) throw (); extern _Float64 __nextdownf64 (_Float64 __x) throw (); + +extern _Float64 nextupf64 (_Float64 __x) throw (); extern _Float64 __nextupf64 (_Float64 __x) throw (); + + + +extern _Float64 remainderf64 (_Float64 __x, _Float64 __y) throw (); extern _Float64 __remainderf64 (_Float64 __x, _Float64 __y) throw (); + + + +extern _Float64 scalbnf64 (_Float64 __x, int __n) throw (); extern _Float64 __scalbnf64 (_Float64 __x, int __n) throw (); + + + +extern int ilogbf64 (_Float64 __x) throw (); extern int __ilogbf64 (_Float64 __x) throw (); + + + + +extern long int llogbf64 (_Float64 __x) throw (); extern long int __llogbf64 (_Float64 __x) throw (); + + + + +extern _Float64 scalblnf64 (_Float64 __x, long int __n) throw (); extern _Float64 __scalblnf64 (_Float64 __x, long int __n) throw (); + + + +extern _Float64 nearbyintf64 (_Float64 __x) throw (); extern _Float64 __nearbyintf64 (_Float64 __x) throw (); + + + +extern _Float64 roundf64 (_Float64 __x) throw () __attribute__ ((__const__)); extern _Float64 __roundf64 (_Float64 __x) throw () __attribute__ ((__const__)); + + + +extern _Float64 truncf64 (_Float64 __x) throw () __attribute__ ((__const__)); extern _Float64 __truncf64 (_Float64 __x) throw () __attribute__ ((__const__)); + + + + +extern _Float64 remquof64 (_Float64 __x, _Float64 __y, int *__quo) throw (); extern _Float64 __remquof64 (_Float64 __x, _Float64 __y, int *__quo) throw (); + + + + + + +extern long int lrintf64 (_Float64 __x) throw (); extern long int __lrintf64 (_Float64 __x) throw (); +__extension__ +extern long long int llrintf64 (_Float64 __x) throw (); extern long long int __llrintf64 (_Float64 __x) throw (); + + + +extern long int lroundf64 (_Float64 __x) throw (); extern long int __lroundf64 (_Float64 __x) throw (); +__extension__ +extern long long int llroundf64 (_Float64 __x) throw (); extern long long int __llroundf64 (_Float64 __x) throw (); + + + +extern _Float64 fdimf64 (_Float64 __x, _Float64 __y) throw (); extern _Float64 __fdimf64 (_Float64 __x, _Float64 __y) throw (); + + +extern _Float64 fmaxf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); extern _Float64 __fmaxf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); + + +extern _Float64 fminf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); extern _Float64 __fminf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); + + +extern _Float64 fmaf64 (_Float64 __x, _Float64 __y, _Float64 __z) throw (); extern _Float64 __fmaf64 (_Float64 __x, _Float64 __y, _Float64 __z) throw (); + + + + +extern _Float64 roundevenf64 (_Float64 __x) throw () __attribute__ ((__const__)); extern _Float64 __roundevenf64 (_Float64 __x) throw () __attribute__ ((__const__)); + + + +extern __intmax_t fromfpf64 (_Float64 __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpf64 (_Float64 __x, int __round, unsigned int __width) throw () + ; + + + +extern __uintmax_t ufromfpf64 (_Float64 __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpf64 (_Float64 __x, int __round, unsigned int __width) throw () + ; + + + + +extern __intmax_t fromfpxf64 (_Float64 __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpxf64 (_Float64 __x, int __round, unsigned int __width) throw () + ; + + + + +extern __uintmax_t ufromfpxf64 (_Float64 __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpxf64 (_Float64 __x, int __round, unsigned int __width) throw () + ; + + +extern _Float64 fmaxmagf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); extern _Float64 __fmaxmagf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); + + +extern _Float64 fminmagf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); extern _Float64 __fminmagf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); + + +extern int canonicalizef64 (_Float64 *__cx, const _Float64 *__x) throw (); + + + + +extern int totalorderf64 (const _Float64 *__x, const _Float64 *__y) throw () + + __attribute__ ((__pure__)); + + +extern int totalordermagf64 (const _Float64 *__x, const _Float64 *__y) throw () + + __attribute__ ((__pure__)); + + +extern _Float64 getpayloadf64 (const _Float64 *__x) throw (); extern _Float64 __getpayloadf64 (const _Float64 *__x) throw (); + + +extern int setpayloadf64 (_Float64 *__x, _Float64 __payload) throw (); + + +extern int setpayloadsigf64 (_Float64 *__x, _Float64 __payload) throw (); +# 407 "/usr/include/math.h" 2 3 4 +# 440 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern _Float32x acosf32x (_Float32x __x) throw (); extern _Float32x __acosf32x (_Float32x __x) throw (); + +extern _Float32x asinf32x (_Float32x __x) throw (); extern _Float32x __asinf32x (_Float32x __x) throw (); + +extern _Float32x atanf32x (_Float32x __x) throw (); extern _Float32x __atanf32x (_Float32x __x) throw (); + +extern _Float32x atan2f32x (_Float32x __y, _Float32x __x) throw (); extern _Float32x __atan2f32x (_Float32x __y, _Float32x __x) throw (); + + + extern _Float32x cosf32x (_Float32x __x) throw (); extern _Float32x __cosf32x (_Float32x __x) throw (); + + extern _Float32x sinf32x (_Float32x __x) throw (); extern _Float32x __sinf32x (_Float32x __x) throw (); + +extern _Float32x tanf32x (_Float32x __x) throw (); extern _Float32x __tanf32x (_Float32x __x) throw (); + + + + +extern _Float32x coshf32x (_Float32x __x) throw (); extern _Float32x __coshf32x (_Float32x __x) throw (); + +extern _Float32x sinhf32x (_Float32x __x) throw (); extern _Float32x __sinhf32x (_Float32x __x) throw (); + +extern _Float32x tanhf32x (_Float32x __x) throw (); extern _Float32x __tanhf32x (_Float32x __x) throw (); + + + + extern void sincosf32x (_Float32x __x, _Float32x *__sinx, _Float32x *__cosx) throw (); extern void __sincosf32x (_Float32x __x, _Float32x *__sinx, _Float32x *__cosx) throw () + ; + + + + +extern _Float32x acoshf32x (_Float32x __x) throw (); extern _Float32x __acoshf32x (_Float32x __x) throw (); + +extern _Float32x asinhf32x (_Float32x __x) throw (); extern _Float32x __asinhf32x (_Float32x __x) throw (); + +extern _Float32x atanhf32x (_Float32x __x) throw (); extern _Float32x __atanhf32x (_Float32x __x) throw (); + + + + + + extern _Float32x expf32x (_Float32x __x) throw (); extern _Float32x __expf32x (_Float32x __x) throw (); + + +extern _Float32x frexpf32x (_Float32x __x, int *__exponent) throw (); extern _Float32x __frexpf32x (_Float32x __x, int *__exponent) throw (); + + +extern _Float32x ldexpf32x (_Float32x __x, int __exponent) throw (); extern _Float32x __ldexpf32x (_Float32x __x, int __exponent) throw (); + + + extern _Float32x logf32x (_Float32x __x) throw (); extern _Float32x __logf32x (_Float32x __x) throw (); + + +extern _Float32x log10f32x (_Float32x __x) throw (); extern _Float32x __log10f32x (_Float32x __x) throw (); + + +extern _Float32x modff32x (_Float32x __x, _Float32x *__iptr) throw (); extern _Float32x __modff32x (_Float32x __x, _Float32x *__iptr) throw () __attribute__ ((__nonnull__ (2))); + + + +extern _Float32x exp10f32x (_Float32x __x) throw (); extern _Float32x __exp10f32x (_Float32x __x) throw (); + + + + +extern _Float32x expm1f32x (_Float32x __x) throw (); extern _Float32x __expm1f32x (_Float32x __x) throw (); + + +extern _Float32x log1pf32x (_Float32x __x) throw (); extern _Float32x __log1pf32x (_Float32x __x) throw (); + + +extern _Float32x logbf32x (_Float32x __x) throw (); extern _Float32x __logbf32x (_Float32x __x) throw (); + + + + +extern _Float32x exp2f32x (_Float32x __x) throw (); extern _Float32x __exp2f32x (_Float32x __x) throw (); + + +extern _Float32x log2f32x (_Float32x __x) throw (); extern _Float32x __log2f32x (_Float32x __x) throw (); + + + + + + + extern _Float32x powf32x (_Float32x __x, _Float32x __y) throw (); extern _Float32x __powf32x (_Float32x __x, _Float32x __y) throw (); + + +extern _Float32x sqrtf32x (_Float32x __x) throw (); extern _Float32x __sqrtf32x (_Float32x __x) throw (); + + + +extern _Float32x hypotf32x (_Float32x __x, _Float32x __y) throw (); extern _Float32x __hypotf32x (_Float32x __x, _Float32x __y) throw (); + + + + +extern _Float32x cbrtf32x (_Float32x __x) throw (); extern _Float32x __cbrtf32x (_Float32x __x) throw (); + + + + + + +extern _Float32x ceilf32x (_Float32x __x) throw () __attribute__ ((__const__)); extern _Float32x __ceilf32x (_Float32x __x) throw () __attribute__ ((__const__)); + + +extern _Float32x fabsf32x (_Float32x __x) throw () __attribute__ ((__const__)); extern _Float32x __fabsf32x (_Float32x __x) throw () __attribute__ ((__const__)); + + +extern _Float32x floorf32x (_Float32x __x) throw () __attribute__ ((__const__)); extern _Float32x __floorf32x (_Float32x __x) throw () __attribute__ ((__const__)); + + +extern _Float32x fmodf32x (_Float32x __x, _Float32x __y) throw (); extern _Float32x __fmodf32x (_Float32x __x, _Float32x __y) throw (); +# 196 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern _Float32x copysignf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); extern _Float32x __copysignf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); + + + + +extern _Float32x nanf32x (const char *__tagb) throw (); extern _Float32x __nanf32x (const char *__tagb) throw (); +# 217 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern _Float32x j0f32x (_Float32x) throw (); extern _Float32x __j0f32x (_Float32x) throw (); +extern _Float32x j1f32x (_Float32x) throw (); extern _Float32x __j1f32x (_Float32x) throw (); +extern _Float32x jnf32x (int, _Float32x) throw (); extern _Float32x __jnf32x (int, _Float32x) throw (); +extern _Float32x y0f32x (_Float32x) throw (); extern _Float32x __y0f32x (_Float32x) throw (); +extern _Float32x y1f32x (_Float32x) throw (); extern _Float32x __y1f32x (_Float32x) throw (); +extern _Float32x ynf32x (int, _Float32x) throw (); extern _Float32x __ynf32x (int, _Float32x) throw (); + + + + + +extern _Float32x erff32x (_Float32x) throw (); extern _Float32x __erff32x (_Float32x) throw (); +extern _Float32x erfcf32x (_Float32x) throw (); extern _Float32x __erfcf32x (_Float32x) throw (); +extern _Float32x lgammaf32x (_Float32x) throw (); extern _Float32x __lgammaf32x (_Float32x) throw (); + + + + +extern _Float32x tgammaf32x (_Float32x) throw (); extern _Float32x __tgammaf32x (_Float32x) throw (); +# 249 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern _Float32x lgammaf32x_r (_Float32x, int *__signgamp) throw (); extern _Float32x __lgammaf32x_r (_Float32x, int *__signgamp) throw (); + + + + + + +extern _Float32x rintf32x (_Float32x __x) throw (); extern _Float32x __rintf32x (_Float32x __x) throw (); + + +extern _Float32x nextafterf32x (_Float32x __x, _Float32x __y) throw (); extern _Float32x __nextafterf32x (_Float32x __x, _Float32x __y) throw (); + + + + + + +extern _Float32x nextdownf32x (_Float32x __x) throw (); extern _Float32x __nextdownf32x (_Float32x __x) throw (); + +extern _Float32x nextupf32x (_Float32x __x) throw (); extern _Float32x __nextupf32x (_Float32x __x) throw (); + + + +extern _Float32x remainderf32x (_Float32x __x, _Float32x __y) throw (); extern _Float32x __remainderf32x (_Float32x __x, _Float32x __y) throw (); + + + +extern _Float32x scalbnf32x (_Float32x __x, int __n) throw (); extern _Float32x __scalbnf32x (_Float32x __x, int __n) throw (); + + + +extern int ilogbf32x (_Float32x __x) throw (); extern int __ilogbf32x (_Float32x __x) throw (); + + + + +extern long int llogbf32x (_Float32x __x) throw (); extern long int __llogbf32x (_Float32x __x) throw (); + + + + +extern _Float32x scalblnf32x (_Float32x __x, long int __n) throw (); extern _Float32x __scalblnf32x (_Float32x __x, long int __n) throw (); + + + +extern _Float32x nearbyintf32x (_Float32x __x) throw (); extern _Float32x __nearbyintf32x (_Float32x __x) throw (); + + + +extern _Float32x roundf32x (_Float32x __x) throw () __attribute__ ((__const__)); extern _Float32x __roundf32x (_Float32x __x) throw () __attribute__ ((__const__)); + + + +extern _Float32x truncf32x (_Float32x __x) throw () __attribute__ ((__const__)); extern _Float32x __truncf32x (_Float32x __x) throw () __attribute__ ((__const__)); + + + + +extern _Float32x remquof32x (_Float32x __x, _Float32x __y, int *__quo) throw (); extern _Float32x __remquof32x (_Float32x __x, _Float32x __y, int *__quo) throw (); + + + + + + +extern long int lrintf32x (_Float32x __x) throw (); extern long int __lrintf32x (_Float32x __x) throw (); +__extension__ +extern long long int llrintf32x (_Float32x __x) throw (); extern long long int __llrintf32x (_Float32x __x) throw (); + + + +extern long int lroundf32x (_Float32x __x) throw (); extern long int __lroundf32x (_Float32x __x) throw (); +__extension__ +extern long long int llroundf32x (_Float32x __x) throw (); extern long long int __llroundf32x (_Float32x __x) throw (); + + + +extern _Float32x fdimf32x (_Float32x __x, _Float32x __y) throw (); extern _Float32x __fdimf32x (_Float32x __x, _Float32x __y) throw (); + + +extern _Float32x fmaxf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); extern _Float32x __fmaxf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); + + +extern _Float32x fminf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); extern _Float32x __fminf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); + + +extern _Float32x fmaf32x (_Float32x __x, _Float32x __y, _Float32x __z) throw (); extern _Float32x __fmaf32x (_Float32x __x, _Float32x __y, _Float32x __z) throw (); + + + + +extern _Float32x roundevenf32x (_Float32x __x) throw () __attribute__ ((__const__)); extern _Float32x __roundevenf32x (_Float32x __x) throw () __attribute__ ((__const__)); + + + +extern __intmax_t fromfpf32x (_Float32x __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpf32x (_Float32x __x, int __round, unsigned int __width) throw () + ; + + + +extern __uintmax_t ufromfpf32x (_Float32x __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpf32x (_Float32x __x, int __round, unsigned int __width) throw () + ; + + + + +extern __intmax_t fromfpxf32x (_Float32x __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpxf32x (_Float32x __x, int __round, unsigned int __width) throw () + ; + + + + +extern __uintmax_t ufromfpxf32x (_Float32x __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpxf32x (_Float32x __x, int __round, unsigned int __width) throw () + ; + + +extern _Float32x fmaxmagf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); extern _Float32x __fmaxmagf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); + + +extern _Float32x fminmagf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); extern _Float32x __fminmagf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); + + +extern int canonicalizef32x (_Float32x *__cx, const _Float32x *__x) throw (); + + + + +extern int totalorderf32x (const _Float32x *__x, const _Float32x *__y) throw () + + __attribute__ ((__pure__)); + + +extern int totalordermagf32x (const _Float32x *__x, const _Float32x *__y) throw () + + __attribute__ ((__pure__)); + + +extern _Float32x getpayloadf32x (const _Float32x *__x) throw (); extern _Float32x __getpayloadf32x (const _Float32x *__x) throw (); + + +extern int setpayloadf32x (_Float32x *__x, _Float32x __payload) throw (); + + +extern int setpayloadsigf32x (_Float32x *__x, _Float32x __payload) throw (); +# 441 "/usr/include/math.h" 2 3 4 +# 457 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern _Float64x acosf64x (_Float64x __x) throw (); extern _Float64x __acosf64x (_Float64x __x) throw (); + +extern _Float64x asinf64x (_Float64x __x) throw (); extern _Float64x __asinf64x (_Float64x __x) throw (); + +extern _Float64x atanf64x (_Float64x __x) throw (); extern _Float64x __atanf64x (_Float64x __x) throw (); + +extern _Float64x atan2f64x (_Float64x __y, _Float64x __x) throw (); extern _Float64x __atan2f64x (_Float64x __y, _Float64x __x) throw (); + + + extern _Float64x cosf64x (_Float64x __x) throw (); extern _Float64x __cosf64x (_Float64x __x) throw (); + + extern _Float64x sinf64x (_Float64x __x) throw (); extern _Float64x __sinf64x (_Float64x __x) throw (); + +extern _Float64x tanf64x (_Float64x __x) throw (); extern _Float64x __tanf64x (_Float64x __x) throw (); + + + + +extern _Float64x coshf64x (_Float64x __x) throw (); extern _Float64x __coshf64x (_Float64x __x) throw (); + +extern _Float64x sinhf64x (_Float64x __x) throw (); extern _Float64x __sinhf64x (_Float64x __x) throw (); + +extern _Float64x tanhf64x (_Float64x __x) throw (); extern _Float64x __tanhf64x (_Float64x __x) throw (); + + + + extern void sincosf64x (_Float64x __x, _Float64x *__sinx, _Float64x *__cosx) throw (); extern void __sincosf64x (_Float64x __x, _Float64x *__sinx, _Float64x *__cosx) throw () + ; + + + + +extern _Float64x acoshf64x (_Float64x __x) throw (); extern _Float64x __acoshf64x (_Float64x __x) throw (); + +extern _Float64x asinhf64x (_Float64x __x) throw (); extern _Float64x __asinhf64x (_Float64x __x) throw (); + +extern _Float64x atanhf64x (_Float64x __x) throw (); extern _Float64x __atanhf64x (_Float64x __x) throw (); + + + + + + extern _Float64x expf64x (_Float64x __x) throw (); extern _Float64x __expf64x (_Float64x __x) throw (); + + +extern _Float64x frexpf64x (_Float64x __x, int *__exponent) throw (); extern _Float64x __frexpf64x (_Float64x __x, int *__exponent) throw (); + + +extern _Float64x ldexpf64x (_Float64x __x, int __exponent) throw (); extern _Float64x __ldexpf64x (_Float64x __x, int __exponent) throw (); + + + extern _Float64x logf64x (_Float64x __x) throw (); extern _Float64x __logf64x (_Float64x __x) throw (); + + +extern _Float64x log10f64x (_Float64x __x) throw (); extern _Float64x __log10f64x (_Float64x __x) throw (); + + +extern _Float64x modff64x (_Float64x __x, _Float64x *__iptr) throw (); extern _Float64x __modff64x (_Float64x __x, _Float64x *__iptr) throw () __attribute__ ((__nonnull__ (2))); + + + +extern _Float64x exp10f64x (_Float64x __x) throw (); extern _Float64x __exp10f64x (_Float64x __x) throw (); + + + + +extern _Float64x expm1f64x (_Float64x __x) throw (); extern _Float64x __expm1f64x (_Float64x __x) throw (); + + +extern _Float64x log1pf64x (_Float64x __x) throw (); extern _Float64x __log1pf64x (_Float64x __x) throw (); + + +extern _Float64x logbf64x (_Float64x __x) throw (); extern _Float64x __logbf64x (_Float64x __x) throw (); + + + + +extern _Float64x exp2f64x (_Float64x __x) throw (); extern _Float64x __exp2f64x (_Float64x __x) throw (); + + +extern _Float64x log2f64x (_Float64x __x) throw (); extern _Float64x __log2f64x (_Float64x __x) throw (); + + + + + + + extern _Float64x powf64x (_Float64x __x, _Float64x __y) throw (); extern _Float64x __powf64x (_Float64x __x, _Float64x __y) throw (); + + +extern _Float64x sqrtf64x (_Float64x __x) throw (); extern _Float64x __sqrtf64x (_Float64x __x) throw (); + + + +extern _Float64x hypotf64x (_Float64x __x, _Float64x __y) throw (); extern _Float64x __hypotf64x (_Float64x __x, _Float64x __y) throw (); + + + + +extern _Float64x cbrtf64x (_Float64x __x) throw (); extern _Float64x __cbrtf64x (_Float64x __x) throw (); + + + + + + +extern _Float64x ceilf64x (_Float64x __x) throw () __attribute__ ((__const__)); extern _Float64x __ceilf64x (_Float64x __x) throw () __attribute__ ((__const__)); + + +extern _Float64x fabsf64x (_Float64x __x) throw () __attribute__ ((__const__)); extern _Float64x __fabsf64x (_Float64x __x) throw () __attribute__ ((__const__)); + + +extern _Float64x floorf64x (_Float64x __x) throw () __attribute__ ((__const__)); extern _Float64x __floorf64x (_Float64x __x) throw () __attribute__ ((__const__)); + + +extern _Float64x fmodf64x (_Float64x __x, _Float64x __y) throw (); extern _Float64x __fmodf64x (_Float64x __x, _Float64x __y) throw (); +# 196 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern _Float64x copysignf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); extern _Float64x __copysignf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); + + + + +extern _Float64x nanf64x (const char *__tagb) throw (); extern _Float64x __nanf64x (const char *__tagb) throw (); +# 217 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern _Float64x j0f64x (_Float64x) throw (); extern _Float64x __j0f64x (_Float64x) throw (); +extern _Float64x j1f64x (_Float64x) throw (); extern _Float64x __j1f64x (_Float64x) throw (); +extern _Float64x jnf64x (int, _Float64x) throw (); extern _Float64x __jnf64x (int, _Float64x) throw (); +extern _Float64x y0f64x (_Float64x) throw (); extern _Float64x __y0f64x (_Float64x) throw (); +extern _Float64x y1f64x (_Float64x) throw (); extern _Float64x __y1f64x (_Float64x) throw (); +extern _Float64x ynf64x (int, _Float64x) throw (); extern _Float64x __ynf64x (int, _Float64x) throw (); + + + + + +extern _Float64x erff64x (_Float64x) throw (); extern _Float64x __erff64x (_Float64x) throw (); +extern _Float64x erfcf64x (_Float64x) throw (); extern _Float64x __erfcf64x (_Float64x) throw (); +extern _Float64x lgammaf64x (_Float64x) throw (); extern _Float64x __lgammaf64x (_Float64x) throw (); + + + + +extern _Float64x tgammaf64x (_Float64x) throw (); extern _Float64x __tgammaf64x (_Float64x) throw (); +# 249 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern _Float64x lgammaf64x_r (_Float64x, int *__signgamp) throw (); extern _Float64x __lgammaf64x_r (_Float64x, int *__signgamp) throw (); + + + + + + +extern _Float64x rintf64x (_Float64x __x) throw (); extern _Float64x __rintf64x (_Float64x __x) throw (); + + +extern _Float64x nextafterf64x (_Float64x __x, _Float64x __y) throw (); extern _Float64x __nextafterf64x (_Float64x __x, _Float64x __y) throw (); + + + + + + +extern _Float64x nextdownf64x (_Float64x __x) throw (); extern _Float64x __nextdownf64x (_Float64x __x) throw (); + +extern _Float64x nextupf64x (_Float64x __x) throw (); extern _Float64x __nextupf64x (_Float64x __x) throw (); + + + +extern _Float64x remainderf64x (_Float64x __x, _Float64x __y) throw (); extern _Float64x __remainderf64x (_Float64x __x, _Float64x __y) throw (); + + + +extern _Float64x scalbnf64x (_Float64x __x, int __n) throw (); extern _Float64x __scalbnf64x (_Float64x __x, int __n) throw (); + + + +extern int ilogbf64x (_Float64x __x) throw (); extern int __ilogbf64x (_Float64x __x) throw (); + + + + +extern long int llogbf64x (_Float64x __x) throw (); extern long int __llogbf64x (_Float64x __x) throw (); + + + + +extern _Float64x scalblnf64x (_Float64x __x, long int __n) throw (); extern _Float64x __scalblnf64x (_Float64x __x, long int __n) throw (); + + + +extern _Float64x nearbyintf64x (_Float64x __x) throw (); extern _Float64x __nearbyintf64x (_Float64x __x) throw (); + + + +extern _Float64x roundf64x (_Float64x __x) throw () __attribute__ ((__const__)); extern _Float64x __roundf64x (_Float64x __x) throw () __attribute__ ((__const__)); + + + +extern _Float64x truncf64x (_Float64x __x) throw () __attribute__ ((__const__)); extern _Float64x __truncf64x (_Float64x __x) throw () __attribute__ ((__const__)); + + + + +extern _Float64x remquof64x (_Float64x __x, _Float64x __y, int *__quo) throw (); extern _Float64x __remquof64x (_Float64x __x, _Float64x __y, int *__quo) throw (); + + + + + + +extern long int lrintf64x (_Float64x __x) throw (); extern long int __lrintf64x (_Float64x __x) throw (); +__extension__ +extern long long int llrintf64x (_Float64x __x) throw (); extern long long int __llrintf64x (_Float64x __x) throw (); + + + +extern long int lroundf64x (_Float64x __x) throw (); extern long int __lroundf64x (_Float64x __x) throw (); +__extension__ +extern long long int llroundf64x (_Float64x __x) throw (); extern long long int __llroundf64x (_Float64x __x) throw (); + + + +extern _Float64x fdimf64x (_Float64x __x, _Float64x __y) throw (); extern _Float64x __fdimf64x (_Float64x __x, _Float64x __y) throw (); + + +extern _Float64x fmaxf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); extern _Float64x __fmaxf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); + + +extern _Float64x fminf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); extern _Float64x __fminf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); + + +extern _Float64x fmaf64x (_Float64x __x, _Float64x __y, _Float64x __z) throw (); extern _Float64x __fmaf64x (_Float64x __x, _Float64x __y, _Float64x __z) throw (); + + + + +extern _Float64x roundevenf64x (_Float64x __x) throw () __attribute__ ((__const__)); extern _Float64x __roundevenf64x (_Float64x __x) throw () __attribute__ ((__const__)); + + + +extern __intmax_t fromfpf64x (_Float64x __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpf64x (_Float64x __x, int __round, unsigned int __width) throw () + ; + + + +extern __uintmax_t ufromfpf64x (_Float64x __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpf64x (_Float64x __x, int __round, unsigned int __width) throw () + ; + + + + +extern __intmax_t fromfpxf64x (_Float64x __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpxf64x (_Float64x __x, int __round, unsigned int __width) throw () + ; + + + + +extern __uintmax_t ufromfpxf64x (_Float64x __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpxf64x (_Float64x __x, int __round, unsigned int __width) throw () + ; + + +extern _Float64x fmaxmagf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); extern _Float64x __fmaxmagf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); + + +extern _Float64x fminmagf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); extern _Float64x __fminmagf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); + + +extern int canonicalizef64x (_Float64x *__cx, const _Float64x *__x) throw (); + + + + +extern int totalorderf64x (const _Float64x *__x, const _Float64x *__y) throw () + + __attribute__ ((__pure__)); + + +extern int totalordermagf64x (const _Float64x *__x, const _Float64x *__y) throw () + + __attribute__ ((__pure__)); + + +extern _Float64x getpayloadf64x (const _Float64x *__x) throw (); extern _Float64x __getpayloadf64x (const _Float64x *__x) throw (); + + +extern int setpayloadf64x (_Float64x *__x, _Float64x __payload) throw (); + + +extern int setpayloadsigf64x (_Float64x *__x, _Float64x __payload) throw (); +# 458 "/usr/include/math.h" 2 3 4 +# 503 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 3 4 +extern float fadd (double __x, double __y) throw (); + + +extern float fdiv (double __x, double __y) throw (); + + +extern float fmul (double __x, double __y) throw (); + + +extern float fsub (double __x, double __y) throw (); +# 504 "/usr/include/math.h" 2 3 4 +# 517 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 3 4 +extern float faddl (long double __x, long double __y) throw (); + + +extern float fdivl (long double __x, long double __y) throw (); + + +extern float fmull (long double __x, long double __y) throw (); + + +extern float fsubl (long double __x, long double __y) throw (); +# 518 "/usr/include/math.h" 2 3 4 +# 537 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 3 4 +extern double daddl (long double __x, long double __y) throw (); + + +extern double ddivl (long double __x, long double __y) throw (); + + +extern double dmull (long double __x, long double __y) throw (); + + +extern double dsubl (long double __x, long double __y) throw (); +# 538 "/usr/include/math.h" 2 3 4 +# 616 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 3 4 +extern _Float32 f32addf32x (_Float32x __x, _Float32x __y) throw (); + + +extern _Float32 f32divf32x (_Float32x __x, _Float32x __y) throw (); + + +extern _Float32 f32mulf32x (_Float32x __x, _Float32x __y) throw (); + + +extern _Float32 f32subf32x (_Float32x __x, _Float32x __y) throw (); +# 617 "/usr/include/math.h" 2 3 4 +# 626 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 3 4 +extern _Float32 f32addf64 (_Float64 __x, _Float64 __y) throw (); + + +extern _Float32 f32divf64 (_Float64 __x, _Float64 __y) throw (); + + +extern _Float32 f32mulf64 (_Float64 __x, _Float64 __y) throw (); + + +extern _Float32 f32subf64 (_Float64 __x, _Float64 __y) throw (); +# 627 "/usr/include/math.h" 2 3 4 +# 636 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 3 4 +extern _Float32 f32addf64x (_Float64x __x, _Float64x __y) throw (); + + +extern _Float32 f32divf64x (_Float64x __x, _Float64x __y) throw (); + + +extern _Float32 f32mulf64x (_Float64x __x, _Float64x __y) throw (); + + +extern _Float32 f32subf64x (_Float64x __x, _Float64x __y) throw (); +# 637 "/usr/include/math.h" 2 3 4 +# 666 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 3 4 +extern _Float32x f32xaddf64 (_Float64 __x, _Float64 __y) throw (); + + +extern _Float32x f32xdivf64 (_Float64 __x, _Float64 __y) throw (); + + +extern _Float32x f32xmulf64 (_Float64 __x, _Float64 __y) throw (); + + +extern _Float32x f32xsubf64 (_Float64 __x, _Float64 __y) throw (); +# 667 "/usr/include/math.h" 2 3 4 +# 676 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 3 4 +extern _Float32x f32xaddf64x (_Float64x __x, _Float64x __y) throw (); + + +extern _Float32x f32xdivf64x (_Float64x __x, _Float64x __y) throw (); + + +extern _Float32x f32xmulf64x (_Float64x __x, _Float64x __y) throw (); + + +extern _Float32x f32xsubf64x (_Float64x __x, _Float64x __y) throw (); +# 677 "/usr/include/math.h" 2 3 4 +# 706 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 3 4 +extern _Float64 f64addf64x (_Float64x __x, _Float64x __y) throw (); + + +extern _Float64 f64divf64x (_Float64x __x, _Float64x __y) throw (); + + +extern _Float64 f64mulf64x (_Float64x __x, _Float64x __y) throw (); + + +extern _Float64 f64subf64x (_Float64x __x, _Float64x __y) throw (); +# 707 "/usr/include/math.h" 2 3 4 +# 773 "/usr/include/math.h" 3 4 +extern int signgam; +# 853 "/usr/include/math.h" 3 4 +enum + { + FP_NAN = + + 0, + FP_INFINITE = + + 1, + FP_ZERO = + + 2, + FP_SUBNORMAL = + + 3, + FP_NORMAL = + + 4 + }; +# 973 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/iscanonical.h" 1 3 4 +# 23 "/usr/include/x86_64-linux-gnu/bits/iscanonical.h" 3 4 +extern int __iscanonicall (long double __x) + throw () __attribute__ ((__const__)); +# 46 "/usr/include/x86_64-linux-gnu/bits/iscanonical.h" 3 4 +extern "C++" { +inline int iscanonical (float __val) { return ((void) (__typeof (__val)) (__val), 1); } +inline int iscanonical (double __val) { return ((void) (__typeof (__val)) (__val), 1); } +inline int iscanonical (long double __val) { return __iscanonicall (__val); } + + + +} +# 974 "/usr/include/math.h" 2 3 4 +# 985 "/usr/include/math.h" 3 4 +extern "C++" { +inline int issignaling (float __val) { return __issignalingf (__val); } +inline int issignaling (double __val) { return __issignaling (__val); } +inline int +issignaling (long double __val) +{ + + + + return __issignalingl (__val); + +} + + + + + +} +# 1016 "/usr/include/math.h" 3 4 +extern "C++" { +# 1047 "/usr/include/math.h" 3 4 +template inline bool +iszero (__T __val) +{ + return __val == 0; +} + +} +# 1278 "/usr/include/math.h" 3 4 +extern "C++" { +template struct __iseqsig_type; + +template<> struct __iseqsig_type +{ + static int __call (float __x, float __y) throw () + { + return __iseqsigf (__x, __y); + } +}; + +template<> struct __iseqsig_type +{ + static int __call (double __x, double __y) throw () + { + return __iseqsig (__x, __y); + } +}; + +template<> struct __iseqsig_type +{ + static int __call (long double __x, long double __y) throw () + { + + return __iseqsigl (__x, __y); + + + + } +}; +# 1321 "/usr/include/math.h" 3 4 +template +inline int +iseqsig (_T1 __x, _T2 __y) throw () +{ + + typedef decltype (((__x) + (__y) + 0.0f)) _T3; + + + + return __iseqsig_type<_T3>::__call (__x, __y); +} + +} + + + + +} +# 46 "/usr/include/c++/9/cmath" 2 3 +# 77 "/usr/include/c++/9/cmath" 3 +extern "C++" +{ +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + using ::acos; + + + inline constexpr float + acos(float __x) + { return __builtin_acosf(__x); } + + inline constexpr long double + acos(long double __x) + { return __builtin_acosl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + acos(_Tp __x) + { return __builtin_acos(__x); } + + using ::asin; + + + inline constexpr float + asin(float __x) + { return __builtin_asinf(__x); } + + inline constexpr long double + asin(long double __x) + { return __builtin_asinl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + asin(_Tp __x) + { return __builtin_asin(__x); } + + using ::atan; + + + inline constexpr float + atan(float __x) + { return __builtin_atanf(__x); } + + inline constexpr long double + atan(long double __x) + { return __builtin_atanl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + atan(_Tp __x) + { return __builtin_atan(__x); } + + using ::atan2; + + + inline constexpr float + atan2(float __y, float __x) + { return __builtin_atan2f(__y, __x); } + + inline constexpr long double + atan2(long double __y, long double __x) + { return __builtin_atan2l(__y, __x); } + + + template + inline constexpr + typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + atan2(_Tp __y, _Up __x) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return atan2(__type(__y), __type(__x)); + } + + using ::ceil; + + + inline constexpr float + ceil(float __x) + { return __builtin_ceilf(__x); } + + inline constexpr long double + ceil(long double __x) + { return __builtin_ceill(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + ceil(_Tp __x) + { return __builtin_ceil(__x); } + + using ::cos; + + + inline constexpr float + cos(float __x) + { return __builtin_cosf(__x); } + + inline constexpr long double + cos(long double __x) + { return __builtin_cosl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + cos(_Tp __x) + { return __builtin_cos(__x); } + + using ::cosh; + + + inline constexpr float + cosh(float __x) + { return __builtin_coshf(__x); } + + inline constexpr long double + cosh(long double __x) + { return __builtin_coshl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + cosh(_Tp __x) + { return __builtin_cosh(__x); } + + using ::exp; + + + inline constexpr float + exp(float __x) + { return __builtin_expf(__x); } + + inline constexpr long double + exp(long double __x) + { return __builtin_expl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + exp(_Tp __x) + { return __builtin_exp(__x); } + + using ::fabs; + + + inline constexpr float + fabs(float __x) + { return __builtin_fabsf(__x); } + + inline constexpr long double + fabs(long double __x) + { return __builtin_fabsl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + fabs(_Tp __x) + { return __builtin_fabs(__x); } + + using ::floor; + + + inline constexpr float + floor(float __x) + { return __builtin_floorf(__x); } + + inline constexpr long double + floor(long double __x) + { return __builtin_floorl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + floor(_Tp __x) + { return __builtin_floor(__x); } + + using ::fmod; + + + inline constexpr float + fmod(float __x, float __y) + { return __builtin_fmodf(__x, __y); } + + inline constexpr long double + fmod(long double __x, long double __y) + { return __builtin_fmodl(__x, __y); } + + + template + inline constexpr + typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + fmod(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return fmod(__type(__x), __type(__y)); + } + + using ::frexp; + + + inline float + frexp(float __x, int* __exp) + { return __builtin_frexpf(__x, __exp); } + + inline long double + frexp(long double __x, int* __exp) + { return __builtin_frexpl(__x, __exp); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + frexp(_Tp __x, int* __exp) + { return __builtin_frexp(__x, __exp); } + + using ::ldexp; + + + inline constexpr float + ldexp(float __x, int __exp) + { return __builtin_ldexpf(__x, __exp); } + + inline constexpr long double + ldexp(long double __x, int __exp) + { return __builtin_ldexpl(__x, __exp); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + ldexp(_Tp __x, int __exp) + { return __builtin_ldexp(__x, __exp); } + + using ::log; + + + inline constexpr float + log(float __x) + { return __builtin_logf(__x); } + + inline constexpr long double + log(long double __x) + { return __builtin_logl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + log(_Tp __x) + { return __builtin_log(__x); } + + using ::log10; + + + inline constexpr float + log10(float __x) + { return __builtin_log10f(__x); } + + inline constexpr long double + log10(long double __x) + { return __builtin_log10l(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + log10(_Tp __x) + { return __builtin_log10(__x); } + + using ::modf; + + + inline float + modf(float __x, float* __iptr) + { return __builtin_modff(__x, __iptr); } + + inline long double + modf(long double __x, long double* __iptr) + { return __builtin_modfl(__x, __iptr); } + + + using ::pow; + + + inline constexpr float + pow(float __x, float __y) + { return __builtin_powf(__x, __y); } + + inline constexpr long double + pow(long double __x, long double __y) + { return __builtin_powl(__x, __y); } +# 412 "/usr/include/c++/9/cmath" 3 + template + inline constexpr + typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + pow(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return pow(__type(__x), __type(__y)); + } + + using ::sin; + + + inline constexpr float + sin(float __x) + { return __builtin_sinf(__x); } + + inline constexpr long double + sin(long double __x) + { return __builtin_sinl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + sin(_Tp __x) + { return __builtin_sin(__x); } + + using ::sinh; + + + inline constexpr float + sinh(float __x) + { return __builtin_sinhf(__x); } + + inline constexpr long double + sinh(long double __x) + { return __builtin_sinhl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + sinh(_Tp __x) + { return __builtin_sinh(__x); } + + using ::sqrt; + + + inline constexpr float + sqrt(float __x) + { return __builtin_sqrtf(__x); } + + inline constexpr long double + sqrt(long double __x) + { return __builtin_sqrtl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + sqrt(_Tp __x) + { return __builtin_sqrt(__x); } + + using ::tan; + + + inline constexpr float + tan(float __x) + { return __builtin_tanf(__x); } + + inline constexpr long double + tan(long double __x) + { return __builtin_tanl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + tan(_Tp __x) + { return __builtin_tan(__x); } + + using ::tanh; + + + inline constexpr float + tanh(float __x) + { return __builtin_tanhf(__x); } + + inline constexpr long double + tanh(long double __x) + { return __builtin_tanhl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + tanh(_Tp __x) + { return __builtin_tanh(__x); } +# 536 "/usr/include/c++/9/cmath" 3 + constexpr int + fpclassify(float __x) + { return __builtin_fpclassify(0, 1, 4, + 3, 2, __x); } + + constexpr int + fpclassify(double __x) + { return __builtin_fpclassify(0, 1, 4, + 3, 2, __x); } + + constexpr int + fpclassify(long double __x) + { return __builtin_fpclassify(0, 1, 4, + 3, 2, __x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + int>::__type + fpclassify(_Tp __x) + { return __x != 0 ? 4 : 2; } + + + + constexpr bool + isfinite(float __x) + { return __builtin_isfinite(__x); } + + constexpr bool + isfinite(double __x) + { return __builtin_isfinite(__x); } + + constexpr bool + isfinite(long double __x) + { return __builtin_isfinite(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + bool>::__type + isfinite(_Tp __x) + { return true; } + + + + constexpr bool + isinf(float __x) + { return __builtin_isinf(__x); } + + + + + + constexpr bool + isinf(double __x) + { return __builtin_isinf(__x); } + + + constexpr bool + isinf(long double __x) + { return __builtin_isinf(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + bool>::__type + isinf(_Tp __x) + { return false; } + + + + constexpr bool + isnan(float __x) + { return __builtin_isnan(__x); } + + + + + + constexpr bool + isnan(double __x) + { return __builtin_isnan(__x); } + + + constexpr bool + isnan(long double __x) + { return __builtin_isnan(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + bool>::__type + isnan(_Tp __x) + { return false; } + + + + constexpr bool + isnormal(float __x) + { return __builtin_isnormal(__x); } + + constexpr bool + isnormal(double __x) + { return __builtin_isnormal(__x); } + + constexpr bool + isnormal(long double __x) + { return __builtin_isnormal(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + bool>::__type + isnormal(_Tp __x) + { return __x != 0 ? true : false; } + + + + + constexpr bool + signbit(float __x) + { return __builtin_signbit(__x); } + + constexpr bool + signbit(double __x) + { return __builtin_signbit(__x); } + + constexpr bool + signbit(long double __x) + { return __builtin_signbit(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + bool>::__type + signbit(_Tp __x) + { return __x < 0 ? true : false; } + + + + constexpr bool + isgreater(float __x, float __y) + { return __builtin_isgreater(__x, __y); } + + constexpr bool + isgreater(double __x, double __y) + { return __builtin_isgreater(__x, __y); } + + constexpr bool + isgreater(long double __x, long double __y) + { return __builtin_isgreater(__x, __y); } + + + + template + constexpr typename + __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value + && __is_arithmetic<_Up>::__value), bool>::__type + isgreater(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return __builtin_isgreater(__type(__x), __type(__y)); + } + + + + constexpr bool + isgreaterequal(float __x, float __y) + { return __builtin_isgreaterequal(__x, __y); } + + constexpr bool + isgreaterequal(double __x, double __y) + { return __builtin_isgreaterequal(__x, __y); } + + constexpr bool + isgreaterequal(long double __x, long double __y) + { return __builtin_isgreaterequal(__x, __y); } + + + + template + constexpr typename + __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value + && __is_arithmetic<_Up>::__value), bool>::__type + isgreaterequal(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return __builtin_isgreaterequal(__type(__x), __type(__y)); + } + + + + constexpr bool + isless(float __x, float __y) + { return __builtin_isless(__x, __y); } + + constexpr bool + isless(double __x, double __y) + { return __builtin_isless(__x, __y); } + + constexpr bool + isless(long double __x, long double __y) + { return __builtin_isless(__x, __y); } + + + + template + constexpr typename + __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value + && __is_arithmetic<_Up>::__value), bool>::__type + isless(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return __builtin_isless(__type(__x), __type(__y)); + } + + + + constexpr bool + islessequal(float __x, float __y) + { return __builtin_islessequal(__x, __y); } + + constexpr bool + islessequal(double __x, double __y) + { return __builtin_islessequal(__x, __y); } + + constexpr bool + islessequal(long double __x, long double __y) + { return __builtin_islessequal(__x, __y); } + + + + template + constexpr typename + __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value + && __is_arithmetic<_Up>::__value), bool>::__type + islessequal(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return __builtin_islessequal(__type(__x), __type(__y)); + } + + + + constexpr bool + islessgreater(float __x, float __y) + { return __builtin_islessgreater(__x, __y); } + + constexpr bool + islessgreater(double __x, double __y) + { return __builtin_islessgreater(__x, __y); } + + constexpr bool + islessgreater(long double __x, long double __y) + { return __builtin_islessgreater(__x, __y); } + + + + template + constexpr typename + __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value + && __is_arithmetic<_Up>::__value), bool>::__type + islessgreater(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return __builtin_islessgreater(__type(__x), __type(__y)); + } + + + + constexpr bool + isunordered(float __x, float __y) + { return __builtin_isunordered(__x, __y); } + + constexpr bool + isunordered(double __x, double __y) + { return __builtin_isunordered(__x, __y); } + + constexpr bool + isunordered(long double __x, long double __y) + { return __builtin_isunordered(__x, __y); } + + + + template + constexpr typename + __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value + && __is_arithmetic<_Up>::__value), bool>::__type + isunordered(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return __builtin_isunordered(__type(__x), __type(__y)); + } +# 1065 "/usr/include/c++/9/cmath" 3 + using ::double_t; + using ::float_t; + + + using ::acosh; + using ::acoshf; + using ::acoshl; + + using ::asinh; + using ::asinhf; + using ::asinhl; + + using ::atanh; + using ::atanhf; + using ::atanhl; + + using ::cbrt; + using ::cbrtf; + using ::cbrtl; + + using ::copysign; + using ::copysignf; + using ::copysignl; + + using ::erf; + using ::erff; + using ::erfl; + + using ::erfc; + using ::erfcf; + using ::erfcl; + + using ::exp2; + using ::exp2f; + using ::exp2l; + + using ::expm1; + using ::expm1f; + using ::expm1l; + + using ::fdim; + using ::fdimf; + using ::fdiml; + + using ::fma; + using ::fmaf; + using ::fmal; + + using ::fmax; + using ::fmaxf; + using ::fmaxl; + + using ::fmin; + using ::fminf; + using ::fminl; + + using ::hypot; + using ::hypotf; + using ::hypotl; + + using ::ilogb; + using ::ilogbf; + using ::ilogbl; + + using ::lgamma; + using ::lgammaf; + using ::lgammal; + + + using ::llrint; + using ::llrintf; + using ::llrintl; + + using ::llround; + using ::llroundf; + using ::llroundl; + + + using ::log1p; + using ::log1pf; + using ::log1pl; + + using ::log2; + using ::log2f; + using ::log2l; + + using ::logb; + using ::logbf; + using ::logbl; + + using ::lrint; + using ::lrintf; + using ::lrintl; + + using ::lround; + using ::lroundf; + using ::lroundl; + + using ::nan; + using ::nanf; + using ::nanl; + + using ::nearbyint; + using ::nearbyintf; + using ::nearbyintl; + + using ::nextafter; + using ::nextafterf; + using ::nextafterl; + + using ::nexttoward; + using ::nexttowardf; + using ::nexttowardl; + + using ::remainder; + using ::remainderf; + using ::remainderl; + + using ::remquo; + using ::remquof; + using ::remquol; + + using ::rint; + using ::rintf; + using ::rintl; + + using ::round; + using ::roundf; + using ::roundl; + + using ::scalbln; + using ::scalblnf; + using ::scalblnl; + + using ::scalbn; + using ::scalbnf; + using ::scalbnl; + + using ::tgamma; + using ::tgammaf; + using ::tgammal; + + using ::trunc; + using ::truncf; + using ::truncl; + + + + constexpr float + acosh(float __x) + { return __builtin_acoshf(__x); } + + constexpr long double + acosh(long double __x) + { return __builtin_acoshl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + acosh(_Tp __x) + { return __builtin_acosh(__x); } + + + + constexpr float + asinh(float __x) + { return __builtin_asinhf(__x); } + + constexpr long double + asinh(long double __x) + { return __builtin_asinhl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + asinh(_Tp __x) + { return __builtin_asinh(__x); } + + + + constexpr float + atanh(float __x) + { return __builtin_atanhf(__x); } + + constexpr long double + atanh(long double __x) + { return __builtin_atanhl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + atanh(_Tp __x) + { return __builtin_atanh(__x); } + + + + constexpr float + cbrt(float __x) + { return __builtin_cbrtf(__x); } + + constexpr long double + cbrt(long double __x) + { return __builtin_cbrtl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + cbrt(_Tp __x) + { return __builtin_cbrt(__x); } + + + + constexpr float + copysign(float __x, float __y) + { return __builtin_copysignf(__x, __y); } + + constexpr long double + copysign(long double __x, long double __y) + { return __builtin_copysignl(__x, __y); } + + + + template + constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + copysign(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return copysign(__type(__x), __type(__y)); + } + + + + constexpr float + erf(float __x) + { return __builtin_erff(__x); } + + constexpr long double + erf(long double __x) + { return __builtin_erfl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + erf(_Tp __x) + { return __builtin_erf(__x); } + + + + constexpr float + erfc(float __x) + { return __builtin_erfcf(__x); } + + constexpr long double + erfc(long double __x) + { return __builtin_erfcl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + erfc(_Tp __x) + { return __builtin_erfc(__x); } + + + + constexpr float + exp2(float __x) + { return __builtin_exp2f(__x); } + + constexpr long double + exp2(long double __x) + { return __builtin_exp2l(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + exp2(_Tp __x) + { return __builtin_exp2(__x); } + + + + constexpr float + expm1(float __x) + { return __builtin_expm1f(__x); } + + constexpr long double + expm1(long double __x) + { return __builtin_expm1l(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + expm1(_Tp __x) + { return __builtin_expm1(__x); } + + + + constexpr float + fdim(float __x, float __y) + { return __builtin_fdimf(__x, __y); } + + constexpr long double + fdim(long double __x, long double __y) + { return __builtin_fdiml(__x, __y); } + + + + template + constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + fdim(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return fdim(__type(__x), __type(__y)); + } + + + + constexpr float + fma(float __x, float __y, float __z) + { return __builtin_fmaf(__x, __y, __z); } + + constexpr long double + fma(long double __x, long double __y, long double __z) + { return __builtin_fmal(__x, __y, __z); } + + + + template + constexpr typename __gnu_cxx::__promote_3<_Tp, _Up, _Vp>::__type + fma(_Tp __x, _Up __y, _Vp __z) + { + typedef typename __gnu_cxx::__promote_3<_Tp, _Up, _Vp>::__type __type; + return fma(__type(__x), __type(__y), __type(__z)); + } + + + + constexpr float + fmax(float __x, float __y) + { return __builtin_fmaxf(__x, __y); } + + constexpr long double + fmax(long double __x, long double __y) + { return __builtin_fmaxl(__x, __y); } + + + + template + constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + fmax(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return fmax(__type(__x), __type(__y)); + } + + + + constexpr float + fmin(float __x, float __y) + { return __builtin_fminf(__x, __y); } + + constexpr long double + fmin(long double __x, long double __y) + { return __builtin_fminl(__x, __y); } + + + + template + constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + fmin(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return fmin(__type(__x), __type(__y)); + } + + + + constexpr float + hypot(float __x, float __y) + { return __builtin_hypotf(__x, __y); } + + constexpr long double + hypot(long double __x, long double __y) + { return __builtin_hypotl(__x, __y); } + + + + template + constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + hypot(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return hypot(__type(__x), __type(__y)); + } + + + + constexpr int + ilogb(float __x) + { return __builtin_ilogbf(__x); } + + constexpr int + ilogb(long double __x) + { return __builtin_ilogbl(__x); } + + + + template + constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + int>::__type + ilogb(_Tp __x) + { return __builtin_ilogb(__x); } + + + + constexpr float + lgamma(float __x) + { return __builtin_lgammaf(__x); } + + constexpr long double + lgamma(long double __x) + { return __builtin_lgammal(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + lgamma(_Tp __x) + { return __builtin_lgamma(__x); } + + + + constexpr long long + llrint(float __x) + { return __builtin_llrintf(__x); } + + constexpr long long + llrint(long double __x) + { return __builtin_llrintl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + long long>::__type + llrint(_Tp __x) + { return __builtin_llrint(__x); } + + + + constexpr long long + llround(float __x) + { return __builtin_llroundf(__x); } + + constexpr long long + llround(long double __x) + { return __builtin_llroundl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + long long>::__type + llround(_Tp __x) + { return __builtin_llround(__x); } + + + + constexpr float + log1p(float __x) + { return __builtin_log1pf(__x); } + + constexpr long double + log1p(long double __x) + { return __builtin_log1pl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + log1p(_Tp __x) + { return __builtin_log1p(__x); } + + + + + constexpr float + log2(float __x) + { return __builtin_log2f(__x); } + + constexpr long double + log2(long double __x) + { return __builtin_log2l(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + log2(_Tp __x) + { return __builtin_log2(__x); } + + + + constexpr float + logb(float __x) + { return __builtin_logbf(__x); } + + constexpr long double + logb(long double __x) + { return __builtin_logbl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + logb(_Tp __x) + { return __builtin_logb(__x); } + + + + constexpr long + lrint(float __x) + { return __builtin_lrintf(__x); } + + constexpr long + lrint(long double __x) + { return __builtin_lrintl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + long>::__type + lrint(_Tp __x) + { return __builtin_lrint(__x); } + + + + constexpr long + lround(float __x) + { return __builtin_lroundf(__x); } + + constexpr long + lround(long double __x) + { return __builtin_lroundl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + long>::__type + lround(_Tp __x) + { return __builtin_lround(__x); } + + + + constexpr float + nearbyint(float __x) + { return __builtin_nearbyintf(__x); } + + constexpr long double + nearbyint(long double __x) + { return __builtin_nearbyintl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + nearbyint(_Tp __x) + { return __builtin_nearbyint(__x); } + + + + constexpr float + nextafter(float __x, float __y) + { return __builtin_nextafterf(__x, __y); } + + constexpr long double + nextafter(long double __x, long double __y) + { return __builtin_nextafterl(__x, __y); } + + + + template + constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + nextafter(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return nextafter(__type(__x), __type(__y)); + } + + + + constexpr float + nexttoward(float __x, long double __y) + { return __builtin_nexttowardf(__x, __y); } + + constexpr long double + nexttoward(long double __x, long double __y) + { return __builtin_nexttowardl(__x, __y); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + nexttoward(_Tp __x, long double __y) + { return __builtin_nexttoward(__x, __y); } + + + + constexpr float + remainder(float __x, float __y) + { return __builtin_remainderf(__x, __y); } + + constexpr long double + remainder(long double __x, long double __y) + { return __builtin_remainderl(__x, __y); } + + + + template + constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + remainder(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return remainder(__type(__x), __type(__y)); + } + + + + inline float + remquo(float __x, float __y, int* __pquo) + { return __builtin_remquof(__x, __y, __pquo); } + + inline long double + remquo(long double __x, long double __y, int* __pquo) + { return __builtin_remquol(__x, __y, __pquo); } + + + + template + inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + remquo(_Tp __x, _Up __y, int* __pquo) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return remquo(__type(__x), __type(__y), __pquo); + } + + + + constexpr float + rint(float __x) + { return __builtin_rintf(__x); } + + constexpr long double + rint(long double __x) + { return __builtin_rintl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + rint(_Tp __x) + { return __builtin_rint(__x); } + + + + constexpr float + round(float __x) + { return __builtin_roundf(__x); } + + constexpr long double + round(long double __x) + { return __builtin_roundl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + round(_Tp __x) + { return __builtin_round(__x); } + + + + constexpr float + scalbln(float __x, long __ex) + { return __builtin_scalblnf(__x, __ex); } + + constexpr long double + scalbln(long double __x, long __ex) + { return __builtin_scalblnl(__x, __ex); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + scalbln(_Tp __x, long __ex) + { return __builtin_scalbln(__x, __ex); } + + + + constexpr float + scalbn(float __x, int __ex) + { return __builtin_scalbnf(__x, __ex); } + + constexpr long double + scalbn(long double __x, int __ex) + { return __builtin_scalbnl(__x, __ex); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + scalbn(_Tp __x, int __ex) + { return __builtin_scalbn(__x, __ex); } + + + + constexpr float + tgamma(float __x) + { return __builtin_tgammaf(__x); } + + constexpr long double + tgamma(long double __x) + { return __builtin_tgammal(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + tgamma(_Tp __x) + { return __builtin_tgamma(__x); } + + + + constexpr float + trunc(float __x) + { return __builtin_truncf(__x); } + + constexpr long double + trunc(long double __x) + { return __builtin_truncl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + trunc(_Tp __x) + { return __builtin_trunc(__x); } +# 1923 "/usr/include/c++/9/cmath" 3 + +} + + + + + +} +# 37 "/usr/include/c++/9/math.h" 2 3 4 + +using std::abs; +using std::acos; +using std::asin; +using std::atan; +using std::atan2; +using std::cos; +using std::sin; +using std::tan; +using std::cosh; +using std::sinh; +using std::tanh; +using std::exp; +using std::frexp; +using std::ldexp; +using std::log; +using std::log10; +using std::modf; +using std::pow; +using std::sqrt; +using std::ceil; +using std::fabs; +using std::floor; +using std::fmod; + + +using std::fpclassify; +using std::isfinite; +using std::isinf; +using std::isnan; +using std::isnormal; +using std::signbit; +using std::isgreater; +using std::isgreaterequal; +using std::isless; +using std::islessequal; +using std::islessgreater; +using std::isunordered; + + + +using std::acosh; +using std::asinh; +using std::atanh; +using std::cbrt; +using std::copysign; +using std::erf; +using std::erfc; +using std::exp2; +using std::expm1; +using std::fdim; +using std::fma; +using std::fmax; +using std::fmin; +using std::hypot; +using std::ilogb; +using std::lgamma; +using std::llrint; +using std::llround; +using std::log1p; +using std::log2; +using std::logb; +using std::lrint; +using std::lround; +using std::nearbyint; +using std::nextafter; +using std::nexttoward; +using std::remainder; +using std::remquo; +using std::rint; +using std::round; +using std::scalbln; +using std::scalbn; +using std::tgamma; +using std::trunc; +# 10548 "/usr/include/crt/math_functions.h" 2 3 4 +# 1 "/usr/include/c++/9/stdlib.h" 1 3 4 +# 10549 "/usr/include/crt/math_functions.h" 2 3 4 + + +# 1 "/usr/include/c++/9/cmath" 1 3 4 +# 39 "/usr/include/c++/9/cmath" 3 4 + +# 40 "/usr/include/c++/9/cmath" 3 +# 10552 "/usr/include/crt/math_functions.h" 2 3 4 +# 1 "/usr/include/c++/9/cstdlib" 1 3 4 +# 39 "/usr/include/c++/9/cstdlib" 3 4 + +# 40 "/usr/include/c++/9/cstdlib" 3 +# 10553 "/usr/include/crt/math_functions.h" 2 3 4 +# 10622 "/usr/include/crt/math_functions.h" 3 4 +namespace std { +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool signbit(float x); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool signbit(double x); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool signbit(long double x); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool isfinite(float x); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool isfinite(double x); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool isfinite(long double x); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool isnan(float x); + + + + +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool isnan(double x); + +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool isnan(long double x); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool isinf(float x); + + + + +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool isinf(double x); + +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool isinf(long double x); +} +# 10798 "/usr/include/crt/math_functions.h" 3 4 +namespace std +{ + template extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) T __pow_helper(T, int); + template extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) T __cmath_power(T, unsigned int); +} + +using std::abs; +using std::fabs; +using std::ceil; +using std::floor; +using std::sqrt; + +using std::pow; + +using std::log; +using std::log10; +using std::fmod; +using std::modf; +using std::exp; +using std::frexp; +using std::ldexp; +using std::asin; +using std::sin; +using std::sinh; +using std::acos; +using std::cos; +using std::cosh; +using std::atan; +using std::atan2; +using std::tan; +using std::tanh; +# 11199 "/usr/include/crt/math_functions.h" 3 4 +namespace std { +# 11208 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) long long int abs(long long int); +# 11218 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) long int abs(long int); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float abs(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double abs(double); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float fabs(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float ceil(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float floor(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float sqrt(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float pow(float, float); + + + + +template +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) +typename __gnu_cxx::__promote_2<_Tp, _Up>::__type pow(_Tp, _Up); + + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float log(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float log10(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float fmod(float, float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float modf(float, float*); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float exp(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float frexp(float, int*); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float ldexp(float, int); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float asin(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float sin(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float sinh(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float acos(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float cos(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float cosh(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float atan(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float atan2(float, float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float tan(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float tanh(float); +# 11335 "/usr/include/crt/math_functions.h" 3 4 +} +# 11441 "/usr/include/crt/math_functions.h" 3 4 +namespace std { +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float logb(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr int ilogb(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float scalbn(float a, int b); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float scalbln(float a, long int b); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float exp2(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float expm1(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float log2(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float log1p(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float acosh(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float asinh(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float atanh(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float hypot(float a, float b); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float cbrt(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float erf(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float erfc(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float lgamma(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float tgamma(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float copysign(float a, float b); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float nextafter(float a, float b); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float remainder(float a, float b); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float remquo(float a, float b, int *quo); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float round(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr long int lround(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr long long int llround(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float trunc(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float rint(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr long int lrint(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr long long int llrint(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float nearbyint(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float fdim(float a, float b); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float fma(float a, float b, float c); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float fmax(float a, float b); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float fmin(float a, float b); +} +# 11580 "/usr/include/crt/math_functions.h" 3 4 +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float exp10(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float rsqrt(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float rcbrt(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float sinpi(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float cospi(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void sincospi(const float a, float *const sptr, float *const cptr); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void sincos(const float a, float *const sptr, float *const cptr); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float j0(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float j1(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float jn(const int n, const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float y0(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float y1(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float yn(const int n, const float a); + +static inline __attribute__((device)) __attribute__((cudart_builtin)) float cyl_bessel_i0(const float a); + +static inline __attribute__((device)) __attribute__((cudart_builtin)) float cyl_bessel_i1(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float erfinv(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float erfcinv(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float normcdfinv(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float normcdf(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float erfcx(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double copysign(const double a, const float b); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double copysign(const float a, const double b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned int min(const unsigned int a, const unsigned int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned int min(const int a, const unsigned int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned int min(const unsigned int a, const int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) long int min(const long int a, const long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long int min(const unsigned long int a, const unsigned long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long int min(const long int a, const unsigned long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long int min(const unsigned long int a, const long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) long long int min(const long long int a, const long long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long long int min(const unsigned long long int a, const unsigned long long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long long int min(const long long int a, const unsigned long long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long long int min(const unsigned long long int a, const long long int b); +# 11721 "/usr/include/crt/math_functions.h" 3 4 +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float min(const float a, const float b); +# 11732 "/usr/include/crt/math_functions.h" 3 4 +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double min(const double a, const double b); +# 11742 "/usr/include/crt/math_functions.h" 3 4 +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double min(const float a, const double b); +# 11752 "/usr/include/crt/math_functions.h" 3 4 +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double min(const double a, const float b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned int max(const unsigned int a, const unsigned int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned int max(const int a, const unsigned int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned int max(const unsigned int a, const int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) long int max(const long int a, const long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long int max(const unsigned long int a, const unsigned long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long int max(const long int a, const unsigned long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long int max(const unsigned long int a, const long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) long long int max(const long long int a, const long long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long long int max(const unsigned long long int a, const unsigned long long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long long int max(const long long int a, const unsigned long long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long long int max(const unsigned long long int a, const long long int b); +# 11851 "/usr/include/crt/math_functions.h" 3 4 +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float max(const float a, const float b); +# 11862 "/usr/include/crt/math_functions.h" 3 4 +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double max(const double a, const double b); +# 11872 "/usr/include/crt/math_functions.h" 3 4 +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double max(const float a, const double b); +# 11882 "/usr/include/crt/math_functions.h" 3 4 +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double max(const double a, const float b); +# 11893 "/usr/include/crt/math_functions.h" 3 4 +extern "C"{ +inline __attribute__((device)) void *__nv_aligned_device_malloc(size_t size, size_t align) +{ + __attribute__((device)) void *__nv_aligned_device_malloc_impl(size_t, size_t); + return __nv_aligned_device_malloc_impl(size, align); +} +} +# 12179 "/usr/include/crt/math_functions.h" 3 4 +# 1 "/usr/include/crt/math_functions.hpp" 1 3 4 +# 77 "/usr/include/crt/math_functions.hpp" 3 4 +# 1 "/usr/include/builtin_types.h" 1 3 4 +# 78 "/usr/include/crt/math_functions.hpp" 2 3 4 +# 1 "/usr/include/crt/host_defines.h" 1 3 4 +# 79 "/usr/include/crt/math_functions.hpp" 2 3 4 +# 758 "/usr/include/crt/math_functions.hpp" 3 4 +static inline __attribute__((host)) __attribute__((device)) float exp10(const float a) +{ + return exp10f(a); +} + +static inline __attribute__((host)) __attribute__((device)) float rsqrt(const float a) +{ + return rsqrtf(a); +} + +static inline __attribute__((host)) __attribute__((device)) float rcbrt(const float a) +{ + return rcbrtf(a); +} + +static inline __attribute__((host)) __attribute__((device)) float sinpi(const float a) +{ + return sinpif(a); +} + +static inline __attribute__((host)) __attribute__((device)) float cospi(const float a) +{ + return cospif(a); +} + +static inline __attribute__((host)) __attribute__((device)) void sincospi(const float a, float *const sptr, float *const cptr) +{ + sincospif(a, sptr, cptr); +} + +static inline __attribute__((host)) __attribute__((device)) void sincos(const float a, float *const sptr, float *const cptr) +{ + sincosf(a, sptr, cptr); +} + +static inline __attribute__((host)) __attribute__((device)) float j0(const float a) +{ + return j0f(a); +} + +static inline __attribute__((host)) __attribute__((device)) float j1(const float a) +{ + return j1f(a); +} + +static inline __attribute__((host)) __attribute__((device)) float jn(const int n, const float a) +{ + return jnf(n, a); +} + +static inline __attribute__((host)) __attribute__((device)) float y0(const float a) +{ + return y0f(a); +} + +static inline __attribute__((host)) __attribute__((device)) float y1(const float a) +{ + return y1f(a); +} + +static inline __attribute__((host)) __attribute__((device)) float yn(const int n, const float a) +{ + return ynf(n, a); +} + +static inline __attribute__((device)) float cyl_bessel_i0(const float a) +{ + return cyl_bessel_i0f(a); +} + +static inline __attribute__((device)) float cyl_bessel_i1(const float a) +{ + return cyl_bessel_i1f(a); +} + +static inline __attribute__((host)) __attribute__((device)) float erfinv(const float a) +{ + return erfinvf(a); +} + +static inline __attribute__((host)) __attribute__((device)) float erfcinv(const float a) +{ + return erfcinvf(a); +} + +static inline __attribute__((host)) __attribute__((device)) float normcdfinv(const float a) +{ + return normcdfinvf(a); +} + +static inline __attribute__((host)) __attribute__((device)) float normcdf(const float a) +{ + return normcdff(a); +} + +static inline __attribute__((host)) __attribute__((device)) float erfcx(const float a) +{ + return erfcxf(a); +} + +static inline __attribute__((host)) __attribute__((device)) double copysign(const double a, const float b) +{ + return copysign(a, static_cast(b)); +} + +static inline __attribute__((host)) __attribute__((device)) double copysign(const float a, const double b) +{ + return copysign(static_cast(a), b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned int min(const unsigned int a, const unsigned int b) +{ + return umin(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned int min(const int a, const unsigned int b) +{ + return umin(static_cast(a), b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned int min(const unsigned int a, const int b) +{ + return umin(a, static_cast(b)); +} + +static inline __attribute__((host)) __attribute__((device)) long int min(const long int a, const long int b) +{ + long int retval; + + + + + + if (sizeof(long int) == sizeof(int)) { + + + + retval = static_cast(min(static_cast(a), static_cast(b))); + } else { + retval = static_cast(llmin(static_cast(a), static_cast(b))); + } + return retval; +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long int min(const unsigned long int a, const unsigned long int b) +{ + unsigned long int retval; + + + + if (sizeof(unsigned long int) == sizeof(unsigned int)) { + + + + retval = static_cast(umin(static_cast(a), static_cast(b))); + } else { + retval = static_cast(ullmin(static_cast(a), static_cast(b))); + } + return retval; +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long int min(const long int a, const unsigned long int b) +{ + unsigned long int retval; + + + + if (sizeof(unsigned long int) == sizeof(unsigned int)) { + + + + retval = static_cast(umin(static_cast(a), static_cast(b))); + } else { + retval = static_cast(ullmin(static_cast(a), static_cast(b))); + } + return retval; +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long int min(const unsigned long int a, const long int b) +{ + unsigned long int retval; + + + + if (sizeof(unsigned long int) == sizeof(unsigned int)) { + + + + retval = static_cast(umin(static_cast(a), static_cast(b))); + } else { + retval = static_cast(ullmin(static_cast(a), static_cast(b))); + } + return retval; +} + +static inline __attribute__((host)) __attribute__((device)) long long int min(const long long int a, const long long int b) +{ + return llmin(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long long int min(const unsigned long long int a, const unsigned long long int b) +{ + return ullmin(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long long int min(const long long int a, const unsigned long long int b) +{ + return ullmin(static_cast(a), b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long long int min(const unsigned long long int a, const long long int b) +{ + return ullmin(a, static_cast(b)); +} + +static inline __attribute__((host)) __attribute__((device)) float min(const float a, const float b) +{ + return fminf(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) double min(const double a, const double b) +{ + return fmin(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) double min(const float a, const double b) +{ + return fmin(static_cast(a), b); +} + +static inline __attribute__((host)) __attribute__((device)) double min(const double a, const float b) +{ + return fmin(a, static_cast(b)); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned int max(const unsigned int a, const unsigned int b) +{ + return umax(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned int max(const int a, const unsigned int b) +{ + return umax(static_cast(a), b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned int max(const unsigned int a, const int b) +{ + return umax(a, static_cast(b)); +} + +static inline __attribute__((host)) __attribute__((device)) long int max(const long int a, const long int b) +{ + long int retval; + + + + + if (sizeof(long int) == sizeof(int)) { + + + + retval = static_cast(max(static_cast(a), static_cast(b))); + } else { + retval = static_cast(llmax(static_cast(a), static_cast(b))); + } + return retval; +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long int max(const unsigned long int a, const unsigned long int b) +{ + unsigned long int retval; + + + + if (sizeof(unsigned long int) == sizeof(unsigned int)) { + + + + retval = static_cast(umax(static_cast(a), static_cast(b))); + } else { + retval = static_cast(ullmax(static_cast(a), static_cast(b))); + } + return retval; +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long int max(const long int a, const unsigned long int b) +{ + unsigned long int retval; + + + + if (sizeof(unsigned long int) == sizeof(unsigned int)) { + + + + retval = static_cast(umax(static_cast(a), static_cast(b))); + } else { + retval = static_cast(ullmax(static_cast(a), static_cast(b))); + } + return retval; +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long int max(const unsigned long int a, const long int b) +{ + unsigned long int retval; + + + + if (sizeof(unsigned long int) == sizeof(unsigned int)) { + + + + retval = static_cast(umax(static_cast(a), static_cast(b))); + } else { + retval = static_cast(ullmax(static_cast(a), static_cast(b))); + } + return retval; +} + +static inline __attribute__((host)) __attribute__((device)) long long int max(const long long int a, const long long int b) +{ + return llmax(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long long int max(const unsigned long long int a, const unsigned long long int b) +{ + return ullmax(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long long int max(const long long int a, const unsigned long long int b) +{ + return ullmax(static_cast(a), b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long long int max(const unsigned long long int a, const long long int b) +{ + return ullmax(a, static_cast(b)); +} + +static inline __attribute__((host)) __attribute__((device)) float max(const float a, const float b) +{ + return fmaxf(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) double max(const double a, const double b) +{ + return fmax(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) double max(const float a, const double b) +{ + return fmax(static_cast(a), b); +} + +static inline __attribute__((host)) __attribute__((device)) double max(const double a, const float b) +{ + return fmax(a, static_cast(b)); +} +# 12180 "/usr/include/crt/math_functions.h" 2 3 4 +# 304 "/usr/include/crt/common_functions.h" 2 3 4 +# 116 "/usr/include/cuda_runtime.h" 2 3 4 +# 1 "/usr/include/cuda_surface_types.h" 1 3 4 +# 74 "/usr/include/cuda_surface_types.h" 3 4 +template +struct __attribute__((device_builtin_surface_type)) surface : public surfaceReference +{ + + __attribute__((host)) surface(void) + { + channelDesc = cudaCreateChannelDesc(); + } + + __attribute__((host)) surface(struct cudaChannelFormatDesc desc) + { + channelDesc = desc; + } + +}; + +template +struct __attribute__((device_builtin_surface_type)) surface : public surfaceReference +{ + + __attribute__((host)) surface(void) + { + channelDesc = cudaCreateChannelDesc(); + } + +}; +# 117 "/usr/include/cuda_runtime.h" 2 3 4 +# 1 "/usr/include/cuda_texture_types.h" 1 3 4 +# 74 "/usr/include/cuda_texture_types.h" 3 4 +template +struct __attribute__((device_builtin_texture_type)) texture : public textureReference +{ + + __attribute__((host)) texture(int norm = 0, + enum cudaTextureFilterMode fMode = cudaFilterModePoint, + enum cudaTextureAddressMode aMode = cudaAddressModeClamp) + { + normalized = norm; + filterMode = fMode; + addressMode[0] = aMode; + addressMode[1] = aMode; + addressMode[2] = aMode; + channelDesc = cudaCreateChannelDesc(); + sRGB = 0; + } + + __attribute__((host)) texture(int norm, + enum cudaTextureFilterMode fMode, + enum cudaTextureAddressMode aMode, + struct cudaChannelFormatDesc desc) + { + normalized = norm; + filterMode = fMode; + addressMode[0] = aMode; + addressMode[1] = aMode; + addressMode[2] = aMode; + channelDesc = desc; + sRGB = 0; + } + +}; +# 118 "/usr/include/cuda_runtime.h" 2 3 4 +# 1 "/usr/include/crt/device_functions.h" 1 3 4 +# 79 "/usr/include/crt/device_functions.h" 3 4 +# 1 "/usr/include/builtin_types.h" 1 3 4 +# 80 "/usr/include/crt/device_functions.h" 2 3 4 +# 1 "/usr/include/device_types.h" 1 3 4 +# 81 "/usr/include/crt/device_functions.h" 2 3 4 +# 1 "/usr/include/crt/host_defines.h" 1 3 4 +# 82 "/usr/include/crt/device_functions.h" 2 3 4 + + + + + + + +extern "C" +{ +# 100 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __mulhi(int x, int y); +# 110 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __umulhi(unsigned int x, unsigned int y); +# 120 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) long long int __mul64hi(long long int x, long long int y); +# 130 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned long long int __umul64hi(unsigned long long int x, unsigned long long int y); +# 139 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __int_as_float(int x); +# 148 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __float_as_int(float x); +# 157 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __uint_as_float(unsigned int x); +# 166 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __float_as_uint(float x); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) void __syncthreads(void); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) void __prof_trigger(int); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) void __threadfence(void); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) void __threadfence_block(void); +__attribute__((device)) __attribute__((cudart_builtin)) + +__attribute__((__noreturn__)) + + + +__attribute__((device_builtin)) void __trap(void); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) void __brkpt(); +# 201 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __saturatef(float x); +# 270 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __sad(int x, int y, unsigned int z); +# 338 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __usad(unsigned int x, unsigned int y, unsigned int z); +# 348 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __mul24(int x, int y); +# 358 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __umul24(unsigned int x, unsigned int y); +# 371 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float fdividef(float x, float y); +# 444 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fdividef(float x, float y); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) double fdivide(double x, double y); +# 457 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __sinf(float x) throw (); +# 468 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __cosf(float x) throw (); +# 481 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __tanf(float x) throw (); +# 496 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) void __sincosf(float x, float *sptr, float *cptr) throw (); +# 545 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __expf(float x) throw (); +# 576 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __exp10f(float x) throw (); +# 601 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __log2f(float x) throw (); +# 628 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __log10f(float x) throw (); +# 671 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __logf(float x) throw (); +# 713 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __powf(float x, float y) throw (); +# 722 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __float2int_rn(float x); +# 731 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __float2int_rz(float x); +# 740 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __float2int_ru(float); +# 749 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __float2int_rd(float x); +# 758 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __float2uint_rn(float x); +# 767 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __float2uint_rz(float x); +# 776 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __float2uint_ru(float x); +# 785 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __float2uint_rd(float x); +# 794 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __int2float_rn(int x); +# 803 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __int2float_rz(int x); +# 812 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __int2float_ru(int x); +# 821 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __int2float_rd(int x); +# 830 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __uint2float_rn(unsigned int x); +# 839 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __uint2float_rz(unsigned int x); +# 848 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __uint2float_ru(unsigned int x); +# 857 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __uint2float_rd(unsigned int x); +# 866 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) long long int __float2ll_rn(float x); +# 875 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) long long int __float2ll_rz(float x); +# 884 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) long long int __float2ll_ru(float x); +# 893 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) long long int __float2ll_rd(float x); +# 902 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned long long int __float2ull_rn(float x); +# 911 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned long long int __float2ull_rz(float x); +# 920 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned long long int __float2ull_ru(float x); +# 929 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned long long int __float2ull_rd(float x); +# 938 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ll2float_rn(long long int x); +# 947 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ll2float_rz(long long int x); +# 956 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ll2float_ru(long long int x); +# 965 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ll2float_rd(long long int x); +# 974 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ull2float_rn(unsigned long long int x); +# 983 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ull2float_rz(unsigned long long int x); +# 992 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ull2float_ru(unsigned long long int x); +# 1001 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ull2float_rd(unsigned long long int x); +# 1013 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fadd_rn(float x, float y); +# 1025 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fadd_rz(float x, float y); +# 1037 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fadd_ru(float x, float y); +# 1049 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fadd_rd(float x, float y); +# 1061 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsub_rn(float x, float y); +# 1073 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsub_rz(float x, float y); +# 1085 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsub_ru(float x, float y); +# 1097 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsub_rd(float x, float y); +# 1109 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmul_rn(float x, float y); +# 1121 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmul_rz(float x, float y); +# 1133 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmul_ru(float x, float y); +# 1145 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmul_rd(float x, float y); +# 1298 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmaf_rn(float x, float y, float z); +# 1451 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmaf_rz(float x, float y, float z); +# 1604 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmaf_ru(float x, float y, float z); +# 1757 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmaf_rd(float x, float y, float z); +# 1790 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __frcp_rn(float x); +# 1823 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __frcp_rz(float x); +# 1856 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __frcp_ru(float x); +# 1889 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __frcp_rd(float x); +# 1920 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsqrt_rn(float x); +# 1951 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsqrt_rz(float x); +# 1982 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsqrt_ru(float x); +# 2013 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsqrt_rd(float x); +# 2052 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __frsqrt_rn(float x); +# 2063 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fdiv_rn(float x, float y); +# 2074 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fdiv_rz(float x, float y); +# 2085 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fdiv_ru(float x, float y); +# 2096 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fdiv_rd(float x, float y); +# 2105 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __clz(int x); +# 2116 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __ffs(int x); +# 2125 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __popc(unsigned int x); +# 2134 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __brev(unsigned int x); +# 2143 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __clzll(long long int x); +# 2154 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __ffsll(long long int x); +# 2165 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __popcll(unsigned long long int x); +# 2174 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned long long int __brevll(unsigned long long int x); +# 2198 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __byte_perm(unsigned int x, unsigned int y, unsigned int s); +# 2210 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __hadd(int x, int y); +# 2223 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __rhadd(int x, int y); +# 2235 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __uhadd(unsigned int x, unsigned int y); +# 2248 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __urhadd(unsigned int x, unsigned int y); +# 2258 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __double2int_rz(double x); +# 2267 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __double2uint_rz(double x); +# 2276 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) long long int __double2ll_rz(double x); +# 2285 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned long long int __double2ull_rz(double x); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __pm0(void); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __pm1(void); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __pm2(void); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __pm3(void); +# 2315 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabs2(unsigned int a); +# 2326 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabsss2(unsigned int a); +# 2337 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vadd2(unsigned int a, unsigned int b); +# 2348 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vaddss2 (unsigned int a, unsigned int b); +# 2358 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vaddus2 (unsigned int a, unsigned int b); +# 2369 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vavgs2(unsigned int a, unsigned int b); +# 2380 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vavgu2(unsigned int a, unsigned int b); +# 2391 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vhaddu2(unsigned int a, unsigned int b); +# 2402 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpeq2(unsigned int a, unsigned int b); +# 2413 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpges2(unsigned int a, unsigned int b); +# 2424 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpgeu2(unsigned int a, unsigned int b); +# 2435 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpgts2(unsigned int a, unsigned int b); +# 2446 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpgtu2(unsigned int a, unsigned int b); +# 2457 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmples2(unsigned int a, unsigned int b); +# 2469 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpleu2(unsigned int a, unsigned int b); +# 2480 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmplts2(unsigned int a, unsigned int b); +# 2491 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpltu2(unsigned int a, unsigned int b); +# 2502 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpne2(unsigned int a, unsigned int b); +# 2513 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabsdiffu2(unsigned int a, unsigned int b); +# 2524 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vmaxs2(unsigned int a, unsigned int b); +# 2535 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vmaxu2(unsigned int a, unsigned int b); +# 2546 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vmins2(unsigned int a, unsigned int b); +# 2557 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vminu2(unsigned int a, unsigned int b); +# 2568 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vseteq2(unsigned int a, unsigned int b); +# 2579 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetges2(unsigned int a, unsigned int b); +# 2590 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetgeu2(unsigned int a, unsigned int b); +# 2601 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetgts2(unsigned int a, unsigned int b); +# 2612 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetgtu2(unsigned int a, unsigned int b); +# 2623 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetles2(unsigned int a, unsigned int b); +# 2634 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetleu2(unsigned int a, unsigned int b); +# 2645 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetlts2(unsigned int a, unsigned int b); +# 2656 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetltu2(unsigned int a, unsigned int b); +# 2667 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetne2(unsigned int a, unsigned int b); +# 2678 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsadu2(unsigned int a, unsigned int b); +# 2689 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsub2(unsigned int a, unsigned int b); +# 2700 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsubss2 (unsigned int a, unsigned int b); +# 2711 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsubus2 (unsigned int a, unsigned int b); +# 2721 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vneg2(unsigned int a); +# 2731 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vnegss2(unsigned int a); +# 2742 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabsdiffs2(unsigned int a, unsigned int b); +# 2753 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsads2(unsigned int a, unsigned int b); +# 2763 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabs4(unsigned int a); +# 2774 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabsss4(unsigned int a); +# 2785 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vadd4(unsigned int a, unsigned int b); +# 2796 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vaddss4 (unsigned int a, unsigned int b); +# 2806 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vaddus4 (unsigned int a, unsigned int b); +# 2817 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vavgs4(unsigned int a, unsigned int b); +# 2828 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vavgu4(unsigned int a, unsigned int b); +# 2839 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vhaddu4(unsigned int a, unsigned int b); +# 2850 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpeq4(unsigned int a, unsigned int b); +# 2861 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpges4(unsigned int a, unsigned int b); +# 2872 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpgeu4(unsigned int a, unsigned int b); +# 2883 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpgts4(unsigned int a, unsigned int b); +# 2894 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpgtu4(unsigned int a, unsigned int b); +# 2905 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmples4(unsigned int a, unsigned int b); +# 2916 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpleu4(unsigned int a, unsigned int b); +# 2927 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmplts4(unsigned int a, unsigned int b); +# 2938 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpltu4(unsigned int a, unsigned int b); +# 2949 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpne4(unsigned int a, unsigned int b); +# 2960 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabsdiffu4(unsigned int a, unsigned int b); +# 2971 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vmaxs4(unsigned int a, unsigned int b); +# 2982 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vmaxu4(unsigned int a, unsigned int b); +# 2993 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vmins4(unsigned int a, unsigned int b); +# 3004 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vminu4(unsigned int a, unsigned int b); +# 3015 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vseteq4(unsigned int a, unsigned int b); +# 3026 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetles4(unsigned int a, unsigned int b); +# 3037 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetleu4(unsigned int a, unsigned int b); +# 3048 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetlts4(unsigned int a, unsigned int b); +# 3059 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetltu4(unsigned int a, unsigned int b); +# 3070 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetges4(unsigned int a, unsigned int b); +# 3081 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetgeu4(unsigned int a, unsigned int b); +# 3092 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetgts4(unsigned int a, unsigned int b); +# 3103 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetgtu4(unsigned int a, unsigned int b); +# 3114 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetne4(unsigned int a, unsigned int b); +# 3125 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsadu4(unsigned int a, unsigned int b); +# 3136 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsub4(unsigned int a, unsigned int b); +# 3147 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsubss4(unsigned int a, unsigned int b); +# 3158 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsubus4(unsigned int a, unsigned int b); +# 3168 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vneg4(unsigned int a); +# 3178 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vnegss4(unsigned int a); +# 3189 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabsdiffs4(unsigned int a, unsigned int b); +# 3200 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsads4(unsigned int a, unsigned int b); + + + + + + +} +# 3229 "/usr/include/crt/device_functions.h" 3 4 +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) __attribute__((deprecated("mulhi" "() is deprecated in favor of __" "mulhi" "() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) int mulhi(const int a, const int b); + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) __attribute__((deprecated("mulhi" "() is deprecated in favor of __" "mulhi" "() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned int mulhi(const unsigned int a, const unsigned int b); + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) __attribute__((deprecated("mulhi" "() is deprecated in favor of __" "mulhi" "() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned int mulhi(const int a, const unsigned int b); + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) __attribute__((deprecated("mulhi" "() is deprecated in favor of __" "mulhi" "() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned int mulhi(const unsigned int a, const int b); + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) __attribute__((deprecated("mul64hi" "() is deprecated in favor of __" "mul64hi" "() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) long long int mul64hi(const long long int a, const long long int b); + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) __attribute__((deprecated("mul64hi" "() is deprecated in favor of __" "mul64hi" "() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned long long int mul64hi(const unsigned long long int a, const unsigned long long int b); + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) __attribute__((deprecated("mul64hi" "() is deprecated in favor of __" "mul64hi" "() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned long long int mul64hi(const long long int a, const unsigned long long int b); + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) __attribute__((deprecated("mul64hi" "() is deprecated in favor of __" "mul64hi" "() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned long long int mul64hi(const unsigned long long int a, const long long int b); + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) __attribute__((deprecated("float_as_int" "() is deprecated in favor of __" "float_as_int" "() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) int float_as_int(const float a); + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) __attribute__((deprecated("int_as_float" "() is deprecated in favor of __" "int_as_float" "() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) float int_as_float(const int a); + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) __attribute__((deprecated("float_as_uint" "() is deprecated in favor of __" "float_as_uint" "() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned int float_as_uint(const float a); + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) __attribute__((deprecated("uint_as_float" "() is deprecated in favor of __" "uint_as_float" "() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) float uint_as_float(const unsigned int a); + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) __attribute__((deprecated("saturate" "() is deprecated in favor of __" "saturate" "f" "() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) float saturate(const float a); + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) __attribute__((deprecated("mul24" "() is deprecated in favor of __" "mul24" "() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) int mul24(const int a, const int b); + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) __attribute__((deprecated("umul24" "() is deprecated in favor of __" "umul24" "() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned int umul24(const unsigned int a, const unsigned int b); + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) __attribute__((deprecated("float2int" "() is deprecated in favor of __" "float2int" "_ru|_rd|_rn|_rz" "() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) int float2int(const float a, const enum cudaRoundMode mode = cudaRoundZero); + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) __attribute__((deprecated("float2uint" "() is deprecated in favor of __" "float2uint" "_ru|_rd|_rn|_rz" "() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned int float2uint(const float a, const enum cudaRoundMode mode = cudaRoundZero); + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) __attribute__((deprecated("int2float" "() is deprecated in favor of __" "int2float" "_ru|_rd|_rn|_rz" "() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) float int2float(const int a, const enum cudaRoundMode mode = cudaRoundNearest); + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) __attribute__((deprecated("uint2float" "() is deprecated in favor of __" "uint2float" "_ru|_rd|_rn|_rz" "() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) float uint2float(const unsigned int a, const enum cudaRoundMode mode = cudaRoundNearest); +# 3285 "/usr/include/crt/device_functions.h" 3 4 +# 1 "/usr/include/crt/device_functions.hpp" 1 3 4 +# 79 "/usr/include/crt/device_functions.hpp" 3 4 +# 1 "/usr/include/builtin_types.h" 1 3 4 +# 80 "/usr/include/crt/device_functions.hpp" 2 3 4 + +# 1 "/usr/include/crt/host_defines.h" 1 3 4 +# 82 "/usr/include/crt/device_functions.hpp" 2 3 4 +# 90 "/usr/include/crt/device_functions.hpp" 3 4 +static __inline__ __attribute__((device)) int mulhi(const int a, const int b) +{ + return __mulhi(a, b); +} + +static __inline__ __attribute__((device)) unsigned int mulhi(const unsigned int a, const unsigned int b) +{ + return __umulhi(a, b); +} + +static __inline__ __attribute__((device)) unsigned int mulhi(const int a, const unsigned int b) +{ + return __umulhi(static_cast(a), b); +} + +static __inline__ __attribute__((device)) unsigned int mulhi(const unsigned int a, const int b) +{ + return __umulhi(a, static_cast(b)); +} + +static __inline__ __attribute__((device)) long long int mul64hi(const long long int a, const long long int b) +{ + return __mul64hi(a, b); +} + +static __inline__ __attribute__((device)) unsigned long long int mul64hi(const unsigned long long int a, const unsigned long long int b) +{ + return __umul64hi(a, b); +} + +static __inline__ __attribute__((device)) unsigned long long int mul64hi(const long long int a, const unsigned long long int b) +{ + return __umul64hi(static_cast(a), b); +} + +static __inline__ __attribute__((device)) unsigned long long int mul64hi(const unsigned long long int a, const long long int b) +{ + return __umul64hi(a, static_cast(b)); +} + +static __inline__ __attribute__((device)) int float_as_int(const float a) +{ + return __float_as_int(a); +} + +static __inline__ __attribute__((device)) float int_as_float(const int a) +{ + return __int_as_float(a); +} + +static __inline__ __attribute__((device)) unsigned int float_as_uint(const float a) +{ + return __float_as_uint(a); +} + +static __inline__ __attribute__((device)) float uint_as_float(const unsigned int a) +{ + return __uint_as_float(a); +} +static __inline__ __attribute__((device)) float saturate(const float a) +{ + return __saturatef(a); +} + +static __inline__ __attribute__((device)) int mul24(const int a, const int b) +{ + return __mul24(a, b); +} + +static __inline__ __attribute__((device)) unsigned int umul24(const unsigned int a, const unsigned int b) +{ + return __umul24(a, b); +} + +static __inline__ __attribute__((device)) int float2int(const float a, const enum cudaRoundMode mode) +{ + return (mode == cudaRoundNearest) ? __float2int_rn(a) : + (mode == cudaRoundPosInf ) ? __float2int_ru(a) : + (mode == cudaRoundMinInf ) ? __float2int_rd(a) : + __float2int_rz(a); +} + +static __inline__ __attribute__((device)) unsigned int float2uint(const float a, const enum cudaRoundMode mode) +{ + return (mode == cudaRoundNearest) ? __float2uint_rn(a) : + (mode == cudaRoundPosInf ) ? __float2uint_ru(a) : + (mode == cudaRoundMinInf ) ? __float2uint_rd(a) : + __float2uint_rz(a); +} + +static __inline__ __attribute__((device)) float int2float(const int a, const enum cudaRoundMode mode) +{ + return (mode == cudaRoundZero ) ? __int2float_rz(a) : + (mode == cudaRoundPosInf) ? __int2float_ru(a) : + (mode == cudaRoundMinInf) ? __int2float_rd(a) : + __int2float_rn(a); +} + +static __inline__ __attribute__((device)) float uint2float(const unsigned int a, const enum cudaRoundMode mode) +{ + return (mode == cudaRoundZero ) ? __uint2float_rz(a) : + (mode == cudaRoundPosInf) ? __uint2float_ru(a) : + (mode == cudaRoundMinInf) ? __uint2float_rd(a) : + __uint2float_rn(a); +} +# 3286 "/usr/include/crt/device_functions.h" 2 3 4 + + +# 1 "/usr/include/device_atomic_functions.h" 1 3 4 +# 76 "/usr/include/device_atomic_functions.h" 3 4 +extern "C" +{ +extern __attribute__((device)) __attribute__((device_builtin)) int __iAtomicAdd(int *address, int val); +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __uAtomicAdd(unsigned int *address, unsigned int val); +extern __attribute__((device)) __attribute__((device_builtin)) int __iAtomicExch(int *address, int val); +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __uAtomicExch(unsigned int *address, unsigned int val); +extern __attribute__((device)) __attribute__((device_builtin)) float __fAtomicExch(float *address, float val); +extern __attribute__((device)) __attribute__((device_builtin)) int __iAtomicMin(int *address, int val); +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __uAtomicMin(unsigned int *address, unsigned int val); +extern __attribute__((device)) __attribute__((device_builtin)) int __iAtomicMax(int *address, int val); +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __uAtomicMax(unsigned int *address, unsigned int val); +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __uAtomicInc(unsigned int *address, unsigned int val); +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __uAtomicDec(unsigned int *address, unsigned int val); +extern __attribute__((device)) __attribute__((device_builtin)) int __iAtomicAnd(int *address, int val); +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __uAtomicAnd(unsigned int *address, unsigned int val); +extern __attribute__((device)) __attribute__((device_builtin)) int __iAtomicOr(int *address, int val); +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __uAtomicOr(unsigned int *address, unsigned int val); +extern __attribute__((device)) __attribute__((device_builtin)) int __iAtomicXor(int *address, int val); +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __uAtomicXor(unsigned int *address, unsigned int val); +extern __attribute__((device)) __attribute__((device_builtin)) int __iAtomicCAS(int *address, int compare, int val); +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __uAtomicCAS(unsigned int *address, unsigned int compare, unsigned int val); +} +# 106 "/usr/include/device_atomic_functions.h" 3 4 +static __inline__ __attribute__((device)) int atomicAdd(int *address, int val) ; + +static __inline__ __attribute__((device)) unsigned int atomicAdd(unsigned int *address, unsigned int val) ; + +static __inline__ __attribute__((device)) int atomicSub(int *address, int val) ; + +static __inline__ __attribute__((device)) unsigned int atomicSub(unsigned int *address, unsigned int val) ; + +static __inline__ __attribute__((device)) int atomicExch(int *address, int val) ; + +static __inline__ __attribute__((device)) unsigned int atomicExch(unsigned int *address, unsigned int val) ; + +static __inline__ __attribute__((device)) float atomicExch(float *address, float val) ; + +static __inline__ __attribute__((device)) int atomicMin(int *address, int val) ; + +static __inline__ __attribute__((device)) unsigned int atomicMin(unsigned int *address, unsigned int val) ; + +static __inline__ __attribute__((device)) int atomicMax(int *address, int val) ; + +static __inline__ __attribute__((device)) unsigned int atomicMax(unsigned int *address, unsigned int val) ; + +static __inline__ __attribute__((device)) unsigned int atomicInc(unsigned int *address, unsigned int val) ; + +static __inline__ __attribute__((device)) unsigned int atomicDec(unsigned int *address, unsigned int val) ; + +static __inline__ __attribute__((device)) int atomicAnd(int *address, int val) ; + +static __inline__ __attribute__((device)) unsigned int atomicAnd(unsigned int *address, unsigned int val) ; + +static __inline__ __attribute__((device)) int atomicOr(int *address, int val) ; + +static __inline__ __attribute__((device)) unsigned int atomicOr(unsigned int *address, unsigned int val) ; + +static __inline__ __attribute__((device)) int atomicXor(int *address, int val) ; + +static __inline__ __attribute__((device)) unsigned int atomicXor(unsigned int *address, unsigned int val) ; + +static __inline__ __attribute__((device)) int atomicCAS(int *address, int compare, int val) ; + +static __inline__ __attribute__((device)) unsigned int atomicCAS(unsigned int *address, unsigned int compare, unsigned int val) ; +# 171 "/usr/include/device_atomic_functions.h" 3 4 +extern "C" +{ + +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long int __ullAtomicAdd(unsigned long long int *address, unsigned long long int val); +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long int __ullAtomicExch(unsigned long long int *address, unsigned long long int val); +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long int __ullAtomicCAS(unsigned long long int *address, unsigned long long int compare, unsigned long long int val); + +extern __attribute__((device)) __attribute__((device_builtin)) __attribute__((deprecated("__any""() is deprecated in favor of ""__any""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) int __any(int cond); +extern __attribute__((device)) __attribute__((device_builtin)) __attribute__((deprecated("__all""() is deprecated in favor of ""__all""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) int __all(int cond); +} +# 189 "/usr/include/device_atomic_functions.h" 3 4 +static __inline__ __attribute__((device)) unsigned long long int atomicAdd(unsigned long long int *address, unsigned long long int val) ; + +static __inline__ __attribute__((device)) unsigned long long int atomicExch(unsigned long long int *address, unsigned long long int val) ; + +static __inline__ __attribute__((device)) unsigned long long int atomicCAS(unsigned long long int *address, unsigned long long int compare, unsigned long long int val) ; + +static __inline__ __attribute__((device)) __attribute__((deprecated("__any""() is deprecated in favor of ""__any""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) bool any(bool cond) ; + +static __inline__ __attribute__((device)) __attribute__((deprecated("__all""() is deprecated in favor of ""__all""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) bool all(bool cond) ; +# 208 "/usr/include/device_atomic_functions.h" 3 4 +# 1 "/usr/include/device_atomic_functions.hpp" 1 3 4 +# 75 "/usr/include/device_atomic_functions.hpp" 3 4 +static __inline__ __attribute__((device)) int atomicAdd(int *address, int val) +{ + return __iAtomicAdd(address, val); +} + +static __inline__ __attribute__((device)) unsigned int atomicAdd(unsigned int *address, unsigned int val) +{ + return __uAtomicAdd(address, val); +} + +static __inline__ __attribute__((device)) int atomicSub(int *address, int val) +{ + return __iAtomicAdd(address, (unsigned int)-(int)val); +} + +static __inline__ __attribute__((device)) unsigned int atomicSub(unsigned int *address, unsigned int val) +{ + return __uAtomicAdd(address, (unsigned int)-(int)val); +} + +static __inline__ __attribute__((device)) int atomicExch(int *address, int val) +{ + return __iAtomicExch(address, val); +} + +static __inline__ __attribute__((device)) unsigned int atomicExch(unsigned int *address, unsigned int val) +{ + return __uAtomicExch(address, val); +} + +static __inline__ __attribute__((device)) float atomicExch(float *address, float val) +{ + return __fAtomicExch(address, val); +} + +static __inline__ __attribute__((device)) int atomicMin(int *address, int val) +{ + return __iAtomicMin(address, val); +} + +static __inline__ __attribute__((device)) unsigned int atomicMin(unsigned int *address, unsigned int val) +{ + return __uAtomicMin(address, val); +} + +static __inline__ __attribute__((device)) int atomicMax(int *address, int val) +{ + return __iAtomicMax(address, val); +} + +static __inline__ __attribute__((device)) unsigned int atomicMax(unsigned int *address, unsigned int val) +{ + return __uAtomicMax(address, val); +} + +static __inline__ __attribute__((device)) unsigned int atomicInc(unsigned int *address, unsigned int val) +{ + return __uAtomicInc(address, val); +} + +static __inline__ __attribute__((device)) unsigned int atomicDec(unsigned int *address, unsigned int val) +{ + return __uAtomicDec(address, val); +} + +static __inline__ __attribute__((device)) int atomicAnd(int *address, int val) +{ + return __iAtomicAnd(address, val); +} + +static __inline__ __attribute__((device)) unsigned int atomicAnd(unsigned int *address, unsigned int val) +{ + return __uAtomicAnd(address, val); +} + +static __inline__ __attribute__((device)) int atomicOr(int *address, int val) +{ + return __iAtomicOr(address, val); +} + +static __inline__ __attribute__((device)) unsigned int atomicOr(unsigned int *address, unsigned int val) +{ + return __uAtomicOr(address, val); +} + +static __inline__ __attribute__((device)) int atomicXor(int *address, int val) +{ + return __iAtomicXor(address, val); +} + +static __inline__ __attribute__((device)) unsigned int atomicXor(unsigned int *address, unsigned int val) +{ + return __uAtomicXor(address, val); +} + +static __inline__ __attribute__((device)) int atomicCAS(int *address, int compare, int val) +{ + return __iAtomicCAS(address, compare, val); +} + +static __inline__ __attribute__((device)) unsigned int atomicCAS(unsigned int *address, unsigned int compare, unsigned int val) +{ + return __uAtomicCAS(address, compare, val); +} +# 194 "/usr/include/device_atomic_functions.hpp" 3 4 +static __inline__ __attribute__((device)) unsigned long long int atomicAdd(unsigned long long int *address, unsigned long long int val) +{ + return __ullAtomicAdd(address, val); +} + +static __inline__ __attribute__((device)) unsigned long long int atomicExch(unsigned long long int *address, unsigned long long int val) +{ + return __ullAtomicExch(address, val); +} + +static __inline__ __attribute__((device)) unsigned long long int atomicCAS(unsigned long long int *address, unsigned long long int compare, unsigned long long int val) +{ + return __ullAtomicCAS(address, compare, val); +} + +static __inline__ __attribute__((device)) bool any(bool cond) +{ + return (bool)__any((int)cond); +} + +static __inline__ __attribute__((device)) bool all(bool cond) +{ + return (bool)__all((int)cond); +} +# 209 "/usr/include/device_atomic_functions.h" 2 3 4 +# 3289 "/usr/include/crt/device_functions.h" 2 3 4 +# 1 "/usr/include/crt/device_double_functions.h" 1 3 4 +# 83 "/usr/include/crt/device_double_functions.h" 3 4 +# 1 "/usr/include/builtin_types.h" 1 3 4 +# 84 "/usr/include/crt/device_double_functions.h" 2 3 4 + +# 1 "/usr/include/crt/host_defines.h" 1 3 4 +# 86 "/usr/include/crt/device_double_functions.h" 2 3 4 + +extern "C" +{ +# 97 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double_as_longlong(double x); +# 106 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __longlong_as_double(long long int x); +# 263 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_rn(double x, double y, double z); +# 420 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_rz(double x, double y, double z); +# 577 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_ru(double x, double y, double z); +# 734 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_rd(double x, double y, double z); +# 746 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_rn(double x, double y); +# 758 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_rz(double x, double y); +# 770 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_ru(double x, double y); +# 782 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_rd(double x, double y); +# 794 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_rn(double x, double y); +# 806 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_rz(double x, double y); +# 818 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_ru(double x, double y); +# 830 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_rd(double x, double y); +# 842 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_rn(double x, double y); +# 854 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_rz(double x, double y); +# 866 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_ru(double x, double y); +# 878 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_rd(double x, double y); +# 887 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_rn(double x); +# 896 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_rz(double x); +# 905 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_ru(double x); +# 914 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_rd(double x); +# 923 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) int __double2int_rn(double x); +# 932 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) int __double2int_ru(double x); +# 941 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) int __double2int_rd(double x); +# 950 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __double2uint_rn(double x); +# 959 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __double2uint_ru(double x); +# 968 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __double2uint_rd(double x); +# 977 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double2ll_rn(double x); +# 986 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double2ll_ru(double x); +# 995 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double2ll_rd(double x); +# 1004 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long int __double2ull_rn(double x); +# 1013 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long int __double2ull_ru(double x); +# 1022 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long int __double2ull_rd(double x); + + + + + + + +extern __attribute__((device)) __attribute__((device_builtin)) double __int2double_rn(int x); + + + + + + + +extern __attribute__((device)) __attribute__((device_builtin)) double __uint2double_rn(unsigned int x); +# 1047 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_rn(long long int x); +# 1056 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_rz(long long int x); +# 1065 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_ru(long long int x); +# 1074 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_rd(long long int x); +# 1083 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_rn(unsigned long long int x); +# 1092 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_rz(unsigned long long int x); +# 1101 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_ru(unsigned long long int x); +# 1110 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_rd(unsigned long long int x); +# 1119 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) int __double2hiint(double x); +# 1128 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) int __double2loint(double x); +# 1138 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __hiloint2double(int hi, int lo); +} + + + + + + + +static __inline__ __attribute__((device)) double fma(double a, double b, double c, enum cudaRoundMode mode); + +static __inline__ __attribute__((device)) double dmul(double a, double b, enum cudaRoundMode mode = cudaRoundNearest); + +static __inline__ __attribute__((device)) double dadd(double a, double b, enum cudaRoundMode mode = cudaRoundNearest); + +static __inline__ __attribute__((device)) double dsub(double a, double b, enum cudaRoundMode mode = cudaRoundNearest); + +static __inline__ __attribute__((device)) int double2int(double a, enum cudaRoundMode mode = cudaRoundZero); + +static __inline__ __attribute__((device)) unsigned int double2uint(double a, enum cudaRoundMode mode = cudaRoundZero); + +static __inline__ __attribute__((device)) long long int double2ll(double a, enum cudaRoundMode mode = cudaRoundZero); + +static __inline__ __attribute__((device)) unsigned long long int double2ull(double a, enum cudaRoundMode mode = cudaRoundZero); + +static __inline__ __attribute__((device)) double ll2double(long long int a, enum cudaRoundMode mode = cudaRoundNearest); + +static __inline__ __attribute__((device)) double ull2double(unsigned long long int a, enum cudaRoundMode mode = cudaRoundNearest); + +static __inline__ __attribute__((device)) double int2double(int a, enum cudaRoundMode mode = cudaRoundNearest); + +static __inline__ __attribute__((device)) double uint2double(unsigned int a, enum cudaRoundMode mode = cudaRoundNearest); + +static __inline__ __attribute__((device)) double float2double(float a, enum cudaRoundMode mode = cudaRoundNearest); + + + + + + +# 1 "/usr/include/crt/device_double_functions.hpp" 1 3 4 +# 83 "/usr/include/crt/device_double_functions.hpp" 3 4 +# 1 "/usr/include/builtin_types.h" 1 3 4 +# 84 "/usr/include/crt/device_double_functions.hpp" 2 3 4 + +# 1 "/usr/include/crt/host_defines.h" 1 3 4 +# 86 "/usr/include/crt/device_double_functions.hpp" 2 3 4 + + + + + + + +static __inline__ __attribute__((device)) double fma(double a, double b, double c, enum cudaRoundMode mode) +{ + return mode == cudaRoundZero ? __fma_rz(a, b, c) : + mode == cudaRoundPosInf ? __fma_ru(a, b, c) : + mode == cudaRoundMinInf ? __fma_rd(a, b, c) : + __fma_rn(a, b, c); +} + +static __inline__ __attribute__((device)) double dmul(double a, double b, enum cudaRoundMode mode) +{ + return mode == cudaRoundZero ? __dmul_rz(a, b) : + mode == cudaRoundPosInf ? __dmul_ru(a, b) : + mode == cudaRoundMinInf ? __dmul_rd(a, b) : + __dmul_rn(a, b); +} + +static __inline__ __attribute__((device)) double dadd(double a, double b, enum cudaRoundMode mode) +{ + return mode == cudaRoundZero ? __dadd_rz(a, b) : + mode == cudaRoundPosInf ? __dadd_ru(a, b) : + mode == cudaRoundMinInf ? __dadd_rd(a, b) : + __dadd_rn(a, b); +} + +static __inline__ __attribute__((device)) double dsub(double a, double b, enum cudaRoundMode mode) +{ + return mode == cudaRoundZero ? __dsub_rz(a, b) : + mode == cudaRoundPosInf ? __dsub_ru(a, b) : + mode == cudaRoundMinInf ? __dsub_rd(a, b) : + __dsub_rn(a, b); +} + +static __inline__ __attribute__((device)) int double2int(double a, enum cudaRoundMode mode) +{ + return mode == cudaRoundNearest ? __double2int_rn(a) : + mode == cudaRoundPosInf ? __double2int_ru(a) : + mode == cudaRoundMinInf ? __double2int_rd(a) : + __double2int_rz(a); +} + +static __inline__ __attribute__((device)) unsigned int double2uint(double a, enum cudaRoundMode mode) +{ + return mode == cudaRoundNearest ? __double2uint_rn(a) : + mode == cudaRoundPosInf ? __double2uint_ru(a) : + mode == cudaRoundMinInf ? __double2uint_rd(a) : + __double2uint_rz(a); +} + +static __inline__ __attribute__((device)) long long int double2ll(double a, enum cudaRoundMode mode) +{ + return mode == cudaRoundNearest ? __double2ll_rn(a) : + mode == cudaRoundPosInf ? __double2ll_ru(a) : + mode == cudaRoundMinInf ? __double2ll_rd(a) : + __double2ll_rz(a); +} + +static __inline__ __attribute__((device)) unsigned long long int double2ull(double a, enum cudaRoundMode mode) +{ + return mode == cudaRoundNearest ? __double2ull_rn(a) : + mode == cudaRoundPosInf ? __double2ull_ru(a) : + mode == cudaRoundMinInf ? __double2ull_rd(a) : + __double2ull_rz(a); +} + +static __inline__ __attribute__((device)) double ll2double(long long int a, enum cudaRoundMode mode) +{ + return mode == cudaRoundZero ? __ll2double_rz(a) : + mode == cudaRoundPosInf ? __ll2double_ru(a) : + mode == cudaRoundMinInf ? __ll2double_rd(a) : + __ll2double_rn(a); +} + +static __inline__ __attribute__((device)) double ull2double(unsigned long long int a, enum cudaRoundMode mode) +{ + return mode == cudaRoundZero ? __ull2double_rz(a) : + mode == cudaRoundPosInf ? __ull2double_ru(a) : + mode == cudaRoundMinInf ? __ull2double_rd(a) : + __ull2double_rn(a); +} + +static __inline__ __attribute__((device)) double int2double(int a, enum cudaRoundMode mode) +{ + return (double)a; +} + +static __inline__ __attribute__((device)) double uint2double(unsigned int a, enum cudaRoundMode mode) +{ + return (double)a; +} + +static __inline__ __attribute__((device)) double float2double(float a, enum cudaRoundMode mode) +{ + return (double)a; +} +# 1179 "/usr/include/crt/device_double_functions.h" 2 3 4 +# 3290 "/usr/include/crt/device_functions.h" 2 3 4 +# 1 "/usr/include/sm_20_atomic_functions.h" 1 3 4 +# 77 "/usr/include/sm_20_atomic_functions.h" 3 4 +extern "C" +{ +extern __attribute__((device)) __attribute__((device_builtin)) float __fAtomicAdd(float *address, float val); +} +# 89 "/usr/include/sm_20_atomic_functions.h" 3 4 +static __inline__ __attribute__((device)) float atomicAdd(float *address, float val) ; + + + + + + + +# 1 "/usr/include/sm_20_atomic_functions.hpp" 1 3 4 +# 75 "/usr/include/sm_20_atomic_functions.hpp" 3 4 +static __inline__ __attribute__((device)) float atomicAdd(float *address, float val) +{ + return __fAtomicAdd(address, val); +} +# 98 "/usr/include/sm_20_atomic_functions.h" 2 3 4 +# 3291 "/usr/include/crt/device_functions.h" 2 3 4 +# 1 "/usr/include/sm_32_atomic_functions.h" 1 3 4 +# 79 "/usr/include/sm_32_atomic_functions.h" 3 4 +extern "C" +{ +extern __attribute__((device)) __attribute__((device_builtin)) long long __illAtomicMin(long long *address, long long val); +extern __attribute__((device)) __attribute__((device_builtin)) long long __illAtomicMax(long long *address, long long val); +extern __attribute__((device)) __attribute__((device_builtin)) long long __llAtomicAnd(long long *address, long long val); +extern __attribute__((device)) __attribute__((device_builtin)) long long __llAtomicOr(long long *address, long long val); +extern __attribute__((device)) __attribute__((device_builtin)) long long __llAtomicXor(long long *address, long long val); +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long __ullAtomicMin(unsigned long long *address, unsigned long long val); +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long __ullAtomicMax(unsigned long long *address, unsigned long long val); +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long __ullAtomicAnd(unsigned long long *address, unsigned long long val); +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long __ullAtomicOr (unsigned long long *address, unsigned long long val); +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long __ullAtomicXor(unsigned long long *address, unsigned long long val); +} +# 100 "/usr/include/sm_32_atomic_functions.h" 3 4 +static __inline__ __attribute__((device)) long long atomicMin(long long *address, long long val) ; + +static __inline__ __attribute__((device)) long long atomicMax(long long *address, long long val) ; + +static __inline__ __attribute__((device)) long long atomicAnd(long long *address, long long val) ; + +static __inline__ __attribute__((device)) long long atomicOr(long long *address, long long val) ; + +static __inline__ __attribute__((device)) long long atomicXor(long long *address, long long val) ; + +static __inline__ __attribute__((device)) unsigned long long atomicMin(unsigned long long *address, unsigned long long val) ; + +static __inline__ __attribute__((device)) unsigned long long atomicMax(unsigned long long *address, unsigned long long val) ; + +static __inline__ __attribute__((device)) unsigned long long atomicAnd(unsigned long long *address, unsigned long long val) ; + +static __inline__ __attribute__((device)) unsigned long long atomicOr(unsigned long long *address, unsigned long long val) ; + +static __inline__ __attribute__((device)) unsigned long long atomicXor(unsigned long long *address, unsigned long long val) ; +# 128 "/usr/include/sm_32_atomic_functions.h" 3 4 +# 1 "/usr/include/sm_32_atomic_functions.hpp" 1 3 4 +# 77 "/usr/include/sm_32_atomic_functions.hpp" 3 4 +static __inline__ __attribute__((device)) long long atomicMin(long long *address, long long val) +{ + return __illAtomicMin(address, val); +} + +static __inline__ __attribute__((device)) long long atomicMax(long long *address, long long val) +{ + return __illAtomicMax(address, val); +} + +static __inline__ __attribute__((device)) long long atomicAnd(long long *address, long long val) +{ + return __llAtomicAnd(address, val); +} + +static __inline__ __attribute__((device)) long long atomicOr(long long *address, long long val) +{ + return __llAtomicOr(address, val); +} + +static __inline__ __attribute__((device)) long long atomicXor(long long *address, long long val) +{ + return __llAtomicXor(address, val); +} + +static __inline__ __attribute__((device)) unsigned long long atomicMin(unsigned long long *address, unsigned long long val) +{ + return __ullAtomicMin(address, val); +} + +static __inline__ __attribute__((device)) unsigned long long atomicMax(unsigned long long *address, unsigned long long val) +{ + return __ullAtomicMax(address, val); +} + +static __inline__ __attribute__((device)) unsigned long long atomicAnd(unsigned long long *address, unsigned long long val) +{ + return __ullAtomicAnd(address, val); +} + +static __inline__ __attribute__((device)) unsigned long long atomicOr(unsigned long long *address, unsigned long long val) +{ + return __ullAtomicOr(address, val); +} + +static __inline__ __attribute__((device)) unsigned long long atomicXor(unsigned long long *address, unsigned long long val) +{ + return __ullAtomicXor(address, val); +} +# 129 "/usr/include/sm_32_atomic_functions.h" 2 3 4 +# 3292 "/usr/include/crt/device_functions.h" 2 3 4 +# 1 "/usr/include/sm_35_atomic_functions.h" 1 3 4 +# 56 "/usr/include/sm_35_atomic_functions.h" 3 4 +# 1 "/usr/include/sm_32_atomic_functions.h" 1 3 4 +# 57 "/usr/include/sm_35_atomic_functions.h" 2 3 4 +# 3293 "/usr/include/crt/device_functions.h" 2 3 4 +# 1 "/usr/include/sm_60_atomic_functions.h" 1 3 4 +# 535 "/usr/include/sm_60_atomic_functions.h" 3 4 +# 1 "/usr/include/sm_60_atomic_functions.hpp" 1 3 4 +# 536 "/usr/include/sm_60_atomic_functions.h" 2 3 4 +# 3294 "/usr/include/crt/device_functions.h" 2 3 4 +# 1 "/usr/include/sm_20_intrinsics.h" 1 3 4 +# 90 "/usr/include/sm_20_intrinsics.h" 3 4 +extern "C" +{ +extern __attribute__((device)) __attribute__((device_builtin)) void __threadfence_system(void); +# 104 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __ddiv_rn(double x, double y); +# 116 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __ddiv_rz(double x, double y); +# 128 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __ddiv_ru(double x, double y); +# 140 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __ddiv_rd(double x, double y); +# 174 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __drcp_rn(double x); +# 208 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __drcp_rz(double x); +# 242 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __drcp_ru(double x); +# 276 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __drcp_rd(double x); +# 308 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __dsqrt_rn(double x); +# 340 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __dsqrt_rz(double x); +# 372 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __dsqrt_ru(double x); +# 404 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __dsqrt_rd(double x); +extern __attribute__((device)) __attribute__((device_builtin)) __attribute__((deprecated("__ballot""() is deprecated in favor of ""__ballot""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned int __ballot(int); +extern __attribute__((device)) __attribute__((device_builtin)) int __syncthreads_count(int); +extern __attribute__((device)) __attribute__((device_builtin)) int __syncthreads_and(int); +extern __attribute__((device)) __attribute__((device_builtin)) int __syncthreads_or(int); +extern __attribute__((device)) __attribute__((device_builtin)) long long int clock64(void); +# 419 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) float __fmaf_ieee_rn(float x, float y, float z); +# 428 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) float __fmaf_ieee_rd(float x, float y, float z); +# 437 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) float __fmaf_ieee_ru(float x, float y, float z); +# 446 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) float __fmaf_ieee_rz(float x, float y, float z); +# 459 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double_as_longlong(double x); +# 468 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __longlong_as_double(long long int x); +# 625 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_rn(double x, double y, double z); +# 782 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_rz(double x, double y, double z); +# 939 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_ru(double x, double y, double z); +# 1096 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_rd(double x, double y, double z); +# 1108 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_rn(double x, double y); +# 1120 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_rz(double x, double y); +# 1132 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_ru(double x, double y); +# 1144 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_rd(double x, double y); +# 1156 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_rn(double x, double y); +# 1168 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_rz(double x, double y); +# 1180 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_ru(double x, double y); +# 1192 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_rd(double x, double y); +# 1204 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_rn(double x, double y); +# 1216 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_rz(double x, double y); +# 1228 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_ru(double x, double y); +# 1240 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_rd(double x, double y); +# 1249 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_rn(double x); +# 1258 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_rz(double x); +# 1267 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_ru(double x); +# 1276 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_rd(double x); +# 1285 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) int __double2int_rn(double x); +# 1294 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) int __double2int_ru(double x); +# 1303 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) int __double2int_rd(double x); +# 1312 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __double2uint_rn(double x); +# 1321 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __double2uint_ru(double x); +# 1330 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __double2uint_rd(double x); +# 1339 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double2ll_rn(double x); +# 1348 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double2ll_ru(double x); +# 1357 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double2ll_rd(double x); +# 1366 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long int __double2ull_rn(double x); +# 1375 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long int __double2ull_ru(double x); +# 1384 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long int __double2ull_rd(double x); + + + + + + + +extern __attribute__((device)) __attribute__((device_builtin)) double __int2double_rn(int x); + + + + + + + +extern __attribute__((device)) __attribute__((device_builtin)) double __uint2double_rn(unsigned int x); +# 1409 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_rn(long long int x); +# 1418 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_rz(long long int x); +# 1427 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_ru(long long int x); +# 1436 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_rd(long long int x); +# 1445 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_rn(unsigned long long int x); +# 1454 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_rz(unsigned long long int x); +# 1463 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_ru(unsigned long long int x); +# 1472 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_rd(unsigned long long int x); +# 1481 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) int __double2hiint(double x); +# 1490 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) int __double2loint(double x); +# 1500 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __hiloint2double(int hi, int lo); + + +} + + + + + + +static __inline__ __attribute__((device)) __attribute__((deprecated("__ballot""() is deprecated in favor of ""__ballot""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned int ballot(bool pred) ; + +static __inline__ __attribute__((device)) int syncthreads_count(bool pred) ; + +static __inline__ __attribute__((device)) bool syncthreads_and(bool pred) ; + +static __inline__ __attribute__((device)) bool syncthreads_or(bool pred) ; + + + + +static __inline__ __attribute__((device)) unsigned int __isGlobal(const void *ptr) ; +static __inline__ __attribute__((device)) unsigned int __isShared(const void *ptr) ; +static __inline__ __attribute__((device)) unsigned int __isConstant(const void *ptr) ; +static __inline__ __attribute__((device)) unsigned int __isLocal(const void *ptr) ; + + + +static __inline__ __attribute__((device)) size_t __cvta_generic_to_global(const void *ptr) ; +static __inline__ __attribute__((device)) size_t __cvta_generic_to_shared(const void *ptr) ; +static __inline__ __attribute__((device)) size_t __cvta_generic_to_constant(const void *ptr) ; +static __inline__ __attribute__((device)) size_t __cvta_generic_to_local(const void *ptr) ; + + + + +static __inline__ __attribute__((device)) void * __cvta_global_to_generic(size_t rawbits) ; +static __inline__ __attribute__((device)) void * __cvta_shared_to_generic(size_t rawbits) ; +static __inline__ __attribute__((device)) void * __cvta_constant_to_generic(size_t rawbits) ; +static __inline__ __attribute__((device)) void * __cvta_local_to_generic(size_t rawbits) ; +# 1549 "/usr/include/sm_20_intrinsics.h" 3 4 +# 1 "/usr/include/sm_20_intrinsics.hpp" 1 3 4 +# 75 "/usr/include/sm_20_intrinsics.hpp" 3 4 +static __inline__ __attribute__((device)) unsigned int ballot(bool pred) +{ + return __ballot((int)pred); +} + +static __inline__ __attribute__((device)) int syncthreads_count(bool pred) +{ + return __syncthreads_count((int)pred); +} + +static __inline__ __attribute__((device)) bool syncthreads_and(bool pred) +{ + return (bool)__syncthreads_and((int)pred); +} + +static __inline__ __attribute__((device)) bool syncthreads_or(bool pred) +{ + return (bool)__syncthreads_or((int)pred); +} + + +extern "C" { + __attribute__((device)) unsigned __nv_isGlobal_impl(const void *); + __attribute__((device)) unsigned __nv_isShared_impl(const void *); + __attribute__((device)) unsigned __nv_isConstant_impl(const void *); + __attribute__((device)) unsigned __nv_isLocal_impl(const void *); + __attribute__((device)) unsigned __nv_isGridConstant_impl(const void *); +} + +static __inline__ __attribute__((device)) unsigned int __isGlobal(const void *ptr) +{ + return __nv_isGlobal_impl(ptr); +} + +static __inline__ __attribute__((device)) unsigned int __isShared(const void *ptr) +{ + return __nv_isShared_impl(ptr); +} + +static __inline__ __attribute__((device)) unsigned int __isConstant(const void *ptr) +{ + return __nv_isConstant_impl(ptr); +} + +static __inline__ __attribute__((device)) unsigned int __isLocal(const void *ptr) +{ + return __nv_isLocal_impl(ptr); +} +# 131 "/usr/include/sm_20_intrinsics.hpp" 3 4 +extern "C" { + __attribute__((device)) size_t __nv_cvta_generic_to_global_impl(const void *); + __attribute__((device)) size_t __nv_cvta_generic_to_shared_impl(const void *); + __attribute__((device)) size_t __nv_cvta_generic_to_constant_impl(const void *); + __attribute__((device)) size_t __nv_cvta_generic_to_local_impl(const void *); + __attribute__((device)) void * __nv_cvta_global_to_generic_impl(size_t); + __attribute__((device)) void * __nv_cvta_shared_to_generic_impl(size_t); + __attribute__((device)) void * __nv_cvta_constant_to_generic_impl(size_t); + __attribute__((device)) void * __nv_cvta_local_to_generic_impl(size_t); +} + +static __inline__ __attribute__((device)) size_t __cvta_generic_to_global(const void *p) +{ + return __nv_cvta_generic_to_global_impl(p); +} + +static __inline__ __attribute__((device)) size_t __cvta_generic_to_shared(const void *p) +{ + return __nv_cvta_generic_to_shared_impl(p); +} + +static __inline__ __attribute__((device)) size_t __cvta_generic_to_constant(const void *p) +{ + return __nv_cvta_generic_to_constant_impl(p); +} + +static __inline__ __attribute__((device)) size_t __cvta_generic_to_local(const void *p) +{ + return __nv_cvta_generic_to_local_impl(p); +} + +static __inline__ __attribute__((device)) void * __cvta_global_to_generic(size_t rawbits) +{ + return __nv_cvta_global_to_generic_impl(rawbits); +} + +static __inline__ __attribute__((device)) void * __cvta_shared_to_generic(size_t rawbits) +{ + return __nv_cvta_shared_to_generic_impl(rawbits); +} + +static __inline__ __attribute__((device)) void * __cvta_constant_to_generic(size_t rawbits) +{ + return __nv_cvta_constant_to_generic_impl(rawbits); +} + +static __inline__ __attribute__((device)) void * __cvta_local_to_generic(size_t rawbits) +{ + return __nv_cvta_local_to_generic_impl(rawbits); +} +# 1550 "/usr/include/sm_20_intrinsics.h" 2 3 4 +# 3295 "/usr/include/crt/device_functions.h" 2 3 4 +# 1 "/usr/include/sm_30_intrinsics.h" 1 3 4 +# 102 "/usr/include/sm_30_intrinsics.h" 3 4 +static __attribute__((device)) __inline__ unsigned __fns(unsigned mask, unsigned base, int offset) ; +static __attribute__((device)) __inline__ void __barrier_sync(unsigned id) ; +static __attribute__((device)) __inline__ void __barrier_sync_count(unsigned id, unsigned cnt) ; +static __attribute__((device)) __inline__ void __syncwarp(unsigned mask=0xFFFFFFFF) ; +static __attribute__((device)) __inline__ int __all_sync(unsigned mask, int pred) ; +static __attribute__((device)) __inline__ int __any_sync(unsigned mask, int pred) ; +static __attribute__((device)) __inline__ int __uni_sync(unsigned mask, int pred) ; +static __attribute__((device)) __inline__ unsigned __ballot_sync(unsigned mask, int pred) ; +static __attribute__((device)) __inline__ unsigned __activemask() ; +# 119 "/usr/include/sm_30_intrinsics.h" 3 4 +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl""() is deprecated in favor of ""__shfl""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) int __shfl(int var, int srcLane, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl""() is deprecated in favor of ""__shfl""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned int __shfl(unsigned int var, int srcLane, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_up""() is deprecated in favor of ""__shfl_up""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) int __shfl_up(int var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_up""() is deprecated in favor of ""__shfl_up""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned int __shfl_up(unsigned int var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_down""() is deprecated in favor of ""__shfl_down""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) int __shfl_down(int var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_down""() is deprecated in favor of ""__shfl_down""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned int __shfl_down(unsigned int var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_xor""() is deprecated in favor of ""__shfl_xor""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) int __shfl_xor(int var, int laneMask, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_xor""() is deprecated in favor of ""__shfl_xor""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned int __shfl_xor(unsigned int var, int laneMask, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl""() is deprecated in favor of ""__shfl""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) float __shfl(float var, int srcLane, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_up""() is deprecated in favor of ""__shfl_up""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) float __shfl_up(float var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_down""() is deprecated in favor of ""__shfl_down""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) float __shfl_down(float var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_xor""() is deprecated in favor of ""__shfl_xor""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) float __shfl_xor(float var, int laneMask, int width=32) ; + + +static __attribute__((device)) __inline__ int __shfl_sync(unsigned mask, int var, int srcLane, int width=32) ; +static __attribute__((device)) __inline__ unsigned int __shfl_sync(unsigned mask, unsigned int var, int srcLane, int width=32) ; +static __attribute__((device)) __inline__ int __shfl_up_sync(unsigned mask, int var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ unsigned int __shfl_up_sync(unsigned mask, unsigned int var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ int __shfl_down_sync(unsigned mask, int var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ unsigned int __shfl_down_sync(unsigned mask, unsigned int var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ int __shfl_xor_sync(unsigned mask, int var, int laneMask, int width=32) ; +static __attribute__((device)) __inline__ unsigned int __shfl_xor_sync(unsigned mask, unsigned int var, int laneMask, int width=32) ; +static __attribute__((device)) __inline__ float __shfl_sync(unsigned mask, float var, int srcLane, int width=32) ; +static __attribute__((device)) __inline__ float __shfl_up_sync(unsigned mask, float var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ float __shfl_down_sync(unsigned mask, float var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ float __shfl_xor_sync(unsigned mask, float var, int laneMask, int width=32) ; + + + +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl""() is deprecated in favor of ""__shfl""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned long long __shfl(unsigned long long var, int srcLane, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl""() is deprecated in favor of ""__shfl""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) long long __shfl(long long var, int srcLane, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_up""() is deprecated in favor of ""__shfl_up""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) long long __shfl_up(long long var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_up""() is deprecated in favor of ""__shfl_up""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned long long __shfl_up(unsigned long long var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_down""() is deprecated in favor of ""__shfl_down""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) long long __shfl_down(long long var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_down""() is deprecated in favor of ""__shfl_down""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned long long __shfl_down(unsigned long long var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_xor""() is deprecated in favor of ""__shfl_xor""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) long long __shfl_xor(long long var, int laneMask, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_xor""() is deprecated in favor of ""__shfl_xor""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned long long __shfl_xor(unsigned long long var, int laneMask, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl""() is deprecated in favor of ""__shfl""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) double __shfl(double var, int srcLane, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_up""() is deprecated in favor of ""__shfl_up""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) double __shfl_up(double var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_down""() is deprecated in favor of ""__shfl_down""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) double __shfl_down(double var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_xor""() is deprecated in favor of ""__shfl_xor""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) double __shfl_xor(double var, int laneMask, int width=32) ; + + +static __attribute__((device)) __inline__ long long __shfl_sync(unsigned mask, long long var, int srcLane, int width=32) ; +static __attribute__((device)) __inline__ unsigned long long __shfl_sync(unsigned mask, unsigned long long var, int srcLane, int width=32) ; +static __attribute__((device)) __inline__ long long __shfl_up_sync(unsigned mask, long long var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ unsigned long long __shfl_up_sync(unsigned mask, unsigned long long var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ long long __shfl_down_sync(unsigned mask, long long var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ unsigned long long __shfl_down_sync(unsigned mask, unsigned long long var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ long long __shfl_xor_sync(unsigned mask, long long var, int laneMask, int width=32) ; +static __attribute__((device)) __inline__ unsigned long long __shfl_xor_sync(unsigned mask, unsigned long long var, int laneMask, int width=32) ; +static __attribute__((device)) __inline__ double __shfl_sync(unsigned mask, double var, int srcLane, int width=32) ; +static __attribute__((device)) __inline__ double __shfl_up_sync(unsigned mask, double var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ double __shfl_down_sync(unsigned mask, double var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ double __shfl_xor_sync(unsigned mask, double var, int laneMask, int width=32) ; + + + +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl""() is deprecated in favor of ""__shfl""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) long __shfl(long var, int srcLane, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl""() is deprecated in favor of ""__shfl""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned long __shfl(unsigned long var, int srcLane, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_up""() is deprecated in favor of ""__shfl_up""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) long __shfl_up(long var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_up""() is deprecated in favor of ""__shfl_up""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned long __shfl_up(unsigned long var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_down""() is deprecated in favor of ""__shfl_down""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) long __shfl_down(long var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_down""() is deprecated in favor of ""__shfl_down""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned long __shfl_down(unsigned long var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_xor""() is deprecated in favor of ""__shfl_xor""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) long __shfl_xor(long var, int laneMask, int width=32) ; +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_xor""() is deprecated in favor of ""__shfl_xor""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned long __shfl_xor(unsigned long var, int laneMask, int width=32) ; + + +static __attribute__((device)) __inline__ long __shfl_sync(unsigned mask, long var, int srcLane, int width=32) ; +static __attribute__((device)) __inline__ unsigned long __shfl_sync(unsigned mask, unsigned long var, int srcLane, int width=32) ; +static __attribute__((device)) __inline__ long __shfl_up_sync(unsigned mask, long var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ unsigned long __shfl_up_sync(unsigned mask, unsigned long var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ long __shfl_down_sync(unsigned mask, long var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ unsigned long __shfl_down_sync(unsigned mask, unsigned long var, unsigned int delta, int width=32) ; +static __attribute__((device)) __inline__ long __shfl_xor_sync(unsigned mask, long var, int laneMask, int width=32) ; +static __attribute__((device)) __inline__ unsigned long __shfl_xor_sync(unsigned mask, unsigned long var, int laneMask, int width=32) ; +# 212 "/usr/include/sm_30_intrinsics.h" 3 4 +# 1 "/usr/include/sm_30_intrinsics.hpp" 1 3 4 +# 73 "/usr/include/sm_30_intrinsics.hpp" 3 4 +extern "C" +{ +} +# 89 "/usr/include/sm_30_intrinsics.hpp" 3 4 +static __attribute__((device)) __inline__ +unsigned __fns(unsigned mask, unsigned base, int offset) { + extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __nvvm_fns(unsigned int mask, unsigned int base, int offset); + return __nvvm_fns(mask, base, offset); +} + +static __attribute__((device)) __inline__ +void __barrier_sync(unsigned id) { + extern __attribute__((device)) __attribute__((device_builtin)) void __nvvm_barrier_sync(unsigned id); + return __nvvm_barrier_sync(id); +} + +static __attribute__((device)) __inline__ +void __barrier_sync_count(unsigned id, unsigned cnt) { + extern __attribute__((device)) __attribute__((device_builtin)) void __nvvm_barrier_sync_cnt(unsigned id, unsigned cnt); + return __nvvm_barrier_sync_cnt(id, cnt); +} + +static __attribute__((device)) __inline__ +void __syncwarp(unsigned mask) { + extern __attribute__((device)) __attribute__((device_builtin)) void __nvvm_bar_warp_sync(unsigned mask); + return __nvvm_bar_warp_sync(mask); +} + +static __attribute__((device)) __inline__ +int __all_sync(unsigned mask, int pred) { + extern __attribute__((device)) __attribute__((device_builtin)) int __nvvm_vote_all_sync(unsigned int mask, int pred); + return __nvvm_vote_all_sync(mask, pred); +} + +static __attribute__((device)) __inline__ +int __any_sync(unsigned mask, int pred) { + extern __attribute__((device)) __attribute__((device_builtin)) int __nvvm_vote_any_sync(unsigned int mask, int pred); + return __nvvm_vote_any_sync(mask, pred); +} + +static __attribute__((device)) __inline__ +int __uni_sync(unsigned mask, int pred) { + extern __attribute__((device)) __attribute__((device_builtin)) int __nvvm_vote_uni_sync(unsigned int mask, int pred); + return __nvvm_vote_uni_sync(mask, pred); +} + +static __attribute__((device)) __inline__ +unsigned __ballot_sync(unsigned mask, int pred) { + extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __nvvm_vote_ballot_sync(unsigned int mask, int pred); + return __nvvm_vote_ballot_sync(mask, pred); +} + +static __attribute__((device)) __inline__ +unsigned __activemask() { + unsigned ret; + asm volatile ("activemask.b32 %0;" : "=r"(ret)); + return ret; +} + + + + +static __attribute__((device)) __inline__ int __shfl(int var, int srcLane, int width) { + int ret; + int c = ((32 -width) << 8) | 0x1f; + asm volatile ("shfl.idx.b32 %0, %1, %2, %3;" : "=r"(ret) : "r"(var), "r"(srcLane), "r"(c)); + return ret; +} + +static __attribute__((device)) __inline__ unsigned int __shfl(unsigned int var, int srcLane, int width) { + return (unsigned int) __shfl((int)var, srcLane, width); +} + +static __attribute__((device)) __inline__ int __shfl_up(int var, unsigned int delta, int width) { + int ret; + int c = (32 -width) << 8; + asm volatile ("shfl.up.b32 %0, %1, %2, %3;" : "=r"(ret) : "r"(var), "r"(delta), "r"(c)); + return ret; +} + +static __attribute__((device)) __inline__ unsigned int __shfl_up(unsigned int var, unsigned int delta, int width) { + return (unsigned int) __shfl_up((int)var, delta, width); +} + +static __attribute__((device)) __inline__ int __shfl_down(int var, unsigned int delta, int width) { + int ret; + int c = ((32 -width) << 8) | 0x1f; + asm volatile ("shfl.down.b32 %0, %1, %2, %3;" : "=r"(ret) : "r"(var), "r"(delta), "r"(c)); + return ret; +} + +static __attribute__((device)) __inline__ unsigned int __shfl_down(unsigned int var, unsigned int delta, int width) { + return (unsigned int) __shfl_down((int)var, delta, width); +} + +static __attribute__((device)) __inline__ int __shfl_xor(int var, int laneMask, int width) { + int ret; + int c = ((32 -width) << 8) | 0x1f; + asm volatile ("shfl.bfly.b32 %0, %1, %2, %3;" : "=r"(ret) : "r"(var), "r"(laneMask), "r"(c)); + return ret; +} + +static __attribute__((device)) __inline__ unsigned int __shfl_xor(unsigned int var, int laneMask, int width) { + return (unsigned int) __shfl_xor((int)var, laneMask, width); +} + +static __attribute__((device)) __inline__ float __shfl(float var, int srcLane, int width) { + float ret; + int c; + c = ((32 -width) << 8) | 0x1f; + asm volatile ("shfl.idx.b32 %0, %1, %2, %3;" : "=f"(ret) : "f"(var), "r"(srcLane), "r"(c)); + return ret; +} + +static __attribute__((device)) __inline__ float __shfl_up(float var, unsigned int delta, int width) { + float ret; + int c; + c = (32 -width) << 8; + asm volatile ("shfl.up.b32 %0, %1, %2, %3;" : "=f"(ret) : "f"(var), "r"(delta), "r"(c)); + return ret; +} + +static __attribute__((device)) __inline__ float __shfl_down(float var, unsigned int delta, int width) { + float ret; + int c; + c = ((32 -width) << 8) | 0x1f; + asm volatile ("shfl.down.b32 %0, %1, %2, %3;" : "=f"(ret) : "f"(var), "r"(delta), "r"(c)); + return ret; +} + +static __attribute__((device)) __inline__ float __shfl_xor(float var, int laneMask, int width) { + float ret; + int c; + c = ((32 -width) << 8) | 0x1f; + asm volatile ("shfl.bfly.b32 %0, %1, %2, %3;" : "=f"(ret) : "f"(var), "r"(laneMask), "r"(c)); + return ret; +} + + + +static __attribute__((device)) __inline__ long long __shfl(long long var, int srcLane, int width) { + int lo, hi; + asm volatile("mov.b64 {%0,%1}, %2;" : "=r"(lo), "=r"(hi) : "l"(var)); + hi = __shfl(hi, srcLane, width); + lo = __shfl(lo, srcLane, width); + asm volatile("mov.b64 %0, {%1,%2};" : "=l"(var) : "r"(lo), "r"(hi)); + return var; +} + +static __attribute__((device)) __inline__ unsigned long long __shfl(unsigned long long var, int srcLane, int width) { + return (unsigned long long) __shfl((long long) var, srcLane, width); +} + +static __attribute__((device)) __inline__ long long __shfl_up(long long var, unsigned int delta, int width) { + int lo, hi; + asm volatile("mov.b64 {%0,%1}, %2;" : "=r"(lo), "=r"(hi) : "l"(var)); + hi = __shfl_up(hi, delta, width); + lo = __shfl_up(lo, delta, width); + asm volatile("mov.b64 %0, {%1,%2};" : "=l"(var) : "r"(lo), "r"(hi)); + return var; +} + +static __attribute__((device)) __inline__ unsigned long long __shfl_up(unsigned long long var, unsigned int delta, int width) { + return (unsigned long long) __shfl_up((long long) var, delta, width); +} + +static __attribute__((device)) __inline__ long long __shfl_down(long long var, unsigned int delta, int width) { + int lo, hi; + asm volatile("mov.b64 {%0,%1}, %2;" : "=r"(lo), "=r"(hi) : "l"(var)); + hi = __shfl_down(hi, delta, width); + lo = __shfl_down(lo, delta, width); + asm volatile("mov.b64 %0, {%1,%2};" : "=l"(var) : "r"(lo), "r"(hi)); + return var; +} + +static __attribute__((device)) __inline__ unsigned long long __shfl_down(unsigned long long var, unsigned int delta, int width) { + return (unsigned long long) __shfl_down((long long) var, delta, width); +} + +static __attribute__((device)) __inline__ long long __shfl_xor(long long var, int laneMask, int width) { + int lo, hi; + asm volatile("mov.b64 {%0,%1}, %2;" : "=r"(lo), "=r"(hi) : "l"(var)); + hi = __shfl_xor(hi, laneMask, width); + lo = __shfl_xor(lo, laneMask, width); + asm volatile("mov.b64 %0, {%1,%2};" : "=l"(var) : "r"(lo), "r"(hi)); + return var; +} + +static __attribute__((device)) __inline__ unsigned long long __shfl_xor(unsigned long long var, int laneMask, int width) { + return (unsigned long long) __shfl_xor((long long) var, laneMask, width); +} + +static __attribute__((device)) __inline__ double __shfl(double var, int srcLane, int width) { + unsigned lo, hi; + asm volatile("mov.b64 {%0,%1}, %2;" : "=r"(lo), "=r"(hi) : "d"(var)); + hi = __shfl(hi, srcLane, width); + lo = __shfl(lo, srcLane, width); + asm volatile("mov.b64 %0, {%1,%2};" : "=d"(var) : "r"(lo), "r"(hi)); + return var; +} + +static __attribute__((device)) __inline__ double __shfl_up(double var, unsigned int delta, int width) { + unsigned lo, hi; + asm volatile("mov.b64 {%0,%1}, %2;" : "=r"(lo), "=r"(hi) : "d"(var)); + hi = __shfl_up(hi, delta, width); + lo = __shfl_up(lo, delta, width); + asm volatile("mov.b64 %0, {%1,%2};" : "=d"(var) : "r"(lo), "r"(hi)); + return var; +} + +static __attribute__((device)) __inline__ double __shfl_down(double var, unsigned int delta, int width) { + unsigned lo, hi; + asm volatile("mov.b64 {%0,%1}, %2;" : "=r"(lo), "=r"(hi) : "d"(var)); + hi = __shfl_down(hi, delta, width); + lo = __shfl_down(lo, delta, width); + asm volatile("mov.b64 %0, {%1,%2};" : "=d"(var) : "r"(lo), "r"(hi)); + return var; +} + +static __attribute__((device)) __inline__ double __shfl_xor(double var, int laneMask, int width) { + unsigned lo, hi; + asm volatile("mov.b64 {%0,%1}, %2;" : "=r"(lo), "=r"(hi) : "d"(var)); + hi = __shfl_xor(hi, laneMask, width); + lo = __shfl_xor(lo, laneMask, width); + asm volatile("mov.b64 %0, {%1,%2};" : "=d"(var) : "r"(lo), "r"(hi)); + return var; +} + +static __attribute__((device)) __inline__ long __shfl(long var, int srcLane, int width) { + return (sizeof(long) == sizeof(long long)) ? + __shfl((long long) var, srcLane, width) : + __shfl((int) var, srcLane, width); +} + +static __attribute__((device)) __inline__ unsigned long __shfl(unsigned long var, int srcLane, int width) { + return (sizeof(long) == sizeof(long long)) ? + __shfl((unsigned long long) var, srcLane, width) : + __shfl((unsigned int) var, srcLane, width); +} + +static __attribute__((device)) __inline__ long __shfl_up(long var, unsigned int delta, int width) { + return (sizeof(long) == sizeof(long long)) ? + __shfl_up((long long) var, delta, width) : + __shfl_up((int) var, delta, width); +} + +static __attribute__((device)) __inline__ unsigned long __shfl_up(unsigned long var, unsigned int delta, int width) { + return (sizeof(long) == sizeof(long long)) ? + __shfl_up((unsigned long long) var, delta, width) : + __shfl_up((unsigned int) var, delta, width); +} + +static __attribute__((device)) __inline__ long __shfl_down(long var, unsigned int delta, int width) { + return (sizeof(long) == sizeof(long long)) ? + __shfl_down((long long) var, delta, width) : + __shfl_down((int) var, delta, width); +} + +static __attribute__((device)) __inline__ unsigned long __shfl_down(unsigned long var, unsigned int delta, int width) { + return (sizeof(long) == sizeof(long long)) ? + __shfl_down((unsigned long long) var, delta, width) : + __shfl_down((unsigned int) var, delta, width); +} + +static __attribute__((device)) __inline__ long __shfl_xor(long var, int laneMask, int width) { + return (sizeof(long) == sizeof(long long)) ? + __shfl_xor((long long) var, laneMask, width) : + __shfl_xor((int) var, laneMask, width); +} + +static __attribute__((device)) __inline__ unsigned long __shfl_xor(unsigned long var, int laneMask, int width) { + return (sizeof(long) == sizeof(long long)) ? + __shfl_xor((unsigned long long) var, laneMask, width) : + __shfl_xor((unsigned int) var, laneMask, width); +} +# 369 "/usr/include/sm_30_intrinsics.hpp" 3 4 +static __attribute__((device)) __inline__ int __shfl_sync(unsigned mask, int var, int srcLane, int width) { + extern __attribute__((device)) __attribute__((device_builtin)) unsigned __nvvm_shfl_idx_sync(unsigned mask, unsigned a, unsigned b, unsigned c); + int ret; + int c = ((32 -width) << 8) | 0x1f; + ret = __nvvm_shfl_idx_sync(mask, var, srcLane, c); + return ret; +} + +static __attribute__((device)) __inline__ unsigned int __shfl_sync(unsigned mask, unsigned int var, int srcLane, int width) { + return (unsigned int) __shfl_sync(mask, (int)var, srcLane, width); +} + +static __attribute__((device)) __inline__ int __shfl_up_sync(unsigned mask, int var, unsigned int delta, int width) { + extern __attribute__((device)) __attribute__((device_builtin)) unsigned __nvvm_shfl_up_sync(unsigned mask, unsigned a, unsigned b, unsigned c); + int ret; + int c = (32 -width) << 8; + ret = __nvvm_shfl_up_sync(mask, var, delta, c); + return ret; +} + +static __attribute__((device)) __inline__ unsigned int __shfl_up_sync(unsigned mask, unsigned int var, unsigned int delta, int width) { + return (unsigned int) __shfl_up_sync(mask, (int)var, delta, width); +} + +static __attribute__((device)) __inline__ int __shfl_down_sync(unsigned mask, int var, unsigned int delta, int width) { + extern __attribute__((device)) __attribute__((device_builtin)) unsigned __nvvm_shfl_down_sync(unsigned mask, unsigned a, unsigned b, unsigned c); + int ret; + int c = ((32 -width) << 8) | 0x1f; + ret = __nvvm_shfl_down_sync(mask, var, delta, c); + return ret; +} + +static __attribute__((device)) __inline__ unsigned int __shfl_down_sync(unsigned mask, unsigned int var, unsigned int delta, int width) { + return (unsigned int) __shfl_down_sync(mask, (int)var, delta, width); +} + +static __attribute__((device)) __inline__ int __shfl_xor_sync(unsigned mask, int var, int laneMask, int width) { + extern __attribute__((device)) __attribute__((device_builtin)) unsigned __nvvm_shfl_bfly_sync(unsigned mask, unsigned a, unsigned b, unsigned c); + int ret; + int c = ((32 -width) << 8) | 0x1f; + ret = __nvvm_shfl_bfly_sync(mask, var, laneMask, c); + return ret; +} + +static __attribute__((device)) __inline__ unsigned int __shfl_xor_sync(unsigned mask, unsigned int var, int laneMask, int width) { + return (unsigned int) __shfl_xor_sync(mask, (int)var, laneMask, width); +} + +static __attribute__((device)) __inline__ float __shfl_sync(unsigned mask, float var, int srcLane, int width) { + extern __attribute__((device)) __attribute__((device_builtin)) unsigned __nvvm_shfl_idx_sync(unsigned mask, unsigned a, unsigned b, unsigned c); + int ret; + int c; + c = ((32 -width) << 8) | 0x1f; + ret = __nvvm_shfl_idx_sync(mask, __float_as_int(var), srcLane, c); + return __int_as_float(ret); +} + +static __attribute__((device)) __inline__ float __shfl_up_sync(unsigned mask, float var, unsigned int delta, int width) { + extern __attribute__((device)) __attribute__((device_builtin)) unsigned __nvvm_shfl_up_sync(unsigned mask, unsigned a, unsigned b, unsigned c); + int ret; + int c; + c = (32 -width) << 8; + ret = __nvvm_shfl_up_sync(mask, __float_as_int(var), delta, c); + return __int_as_float(ret); +} + +static __attribute__((device)) __inline__ float __shfl_down_sync(unsigned mask, float var, unsigned int delta, int width) { + extern __attribute__((device)) __attribute__((device_builtin)) unsigned __nvvm_shfl_down_sync(unsigned mask, unsigned a, unsigned b, unsigned c); + int ret; + int c; + c = ((32 -width) << 8) | 0x1f; + ret = __nvvm_shfl_down_sync(mask, __float_as_int(var), delta, c); + return __int_as_float(ret); +} + +static __attribute__((device)) __inline__ float __shfl_xor_sync(unsigned mask, float var, int laneMask, int width) { + extern __attribute__((device)) __attribute__((device_builtin)) unsigned __nvvm_shfl_bfly_sync(unsigned mask, unsigned a, unsigned b, unsigned c); + int ret; + int c; + c = ((32 -width) << 8) | 0x1f; + ret = __nvvm_shfl_bfly_sync(mask, __float_as_int(var), laneMask, c); + return __int_as_float(ret); +} + + +static __attribute__((device)) __inline__ long long __shfl_sync(unsigned mask, long long var, int srcLane, int width) { + int lo, hi; + asm volatile("mov.b64 {%0,%1}, %2;" : "=r"(lo), "=r"(hi) : "l"(var)); + hi = __shfl_sync(mask, hi, srcLane, width); + lo = __shfl_sync(mask, lo, srcLane, width); + asm volatile("mov.b64 %0, {%1,%2};" : "=l"(var) : "r"(lo), "r"(hi)); + return var; +} + +static __attribute__((device)) __inline__ unsigned long long __shfl_sync(unsigned mask, unsigned long long var, int srcLane, int width) { + return (unsigned long long) __shfl_sync(mask, (long long) var, srcLane, width); +} + +static __attribute__((device)) __inline__ long long __shfl_up_sync(unsigned mask, long long var, unsigned int delta, int width) { + int lo, hi; + asm volatile("mov.b64 {%0,%1}, %2;" : "=r"(lo), "=r"(hi) : "l"(var)); + hi = __shfl_up_sync(mask, hi, delta, width); + lo = __shfl_up_sync(mask, lo, delta, width); + asm volatile("mov.b64 %0, {%1,%2};" : "=l"(var) : "r"(lo), "r"(hi)); + return var; +} + +static __attribute__((device)) __inline__ unsigned long long __shfl_up_sync(unsigned mask, unsigned long long var, unsigned int delta, int width) { + return (unsigned long long) __shfl_up_sync(mask, (long long) var, delta, width); +} + +static __attribute__((device)) __inline__ long long __shfl_down_sync(unsigned mask, long long var, unsigned int delta, int width) { + int lo, hi; + asm volatile("mov.b64 {%0,%1}, %2;" : "=r"(lo), "=r"(hi) : "l"(var)); + hi = __shfl_down_sync(mask, hi, delta, width); + lo = __shfl_down_sync(mask, lo, delta, width); + asm volatile("mov.b64 %0, {%1,%2};" : "=l"(var) : "r"(lo), "r"(hi)); + return var; +} + +static __attribute__((device)) __inline__ unsigned long long __shfl_down_sync(unsigned mask, unsigned long long var, unsigned int delta, int width) { + return (unsigned long long) __shfl_down_sync(mask, (long long) var, delta, width); +} + +static __attribute__((device)) __inline__ long long __shfl_xor_sync(unsigned mask, long long var, int laneMask, int width) { + int lo, hi; + asm volatile("mov.b64 {%0,%1}, %2;" : "=r"(lo), "=r"(hi) : "l"(var)); + hi = __shfl_xor_sync(mask, hi, laneMask, width); + lo = __shfl_xor_sync(mask, lo, laneMask, width); + asm volatile("mov.b64 %0, {%1,%2};" : "=l"(var) : "r"(lo), "r"(hi)); + return var; +} + +static __attribute__((device)) __inline__ unsigned long long __shfl_xor_sync(unsigned mask, unsigned long long var, int laneMask, int width) { + return (unsigned long long) __shfl_xor_sync(mask, (long long) var, laneMask, width); +} + +static __attribute__((device)) __inline__ double __shfl_sync(unsigned mask, double var, int srcLane, int width) { + unsigned lo, hi; + asm volatile("mov.b64 {%0,%1}, %2;" : "=r"(lo), "=r"(hi) : "d"(var)); + hi = __shfl_sync(mask, hi, srcLane, width); + lo = __shfl_sync(mask, lo, srcLane, width); + asm volatile("mov.b64 %0, {%1,%2};" : "=d"(var) : "r"(lo), "r"(hi)); + return var; +} + +static __attribute__((device)) __inline__ double __shfl_up_sync(unsigned mask, double var, unsigned int delta, int width) { + unsigned lo, hi; + asm volatile("mov.b64 {%0,%1}, %2;" : "=r"(lo), "=r"(hi) : "d"(var)); + hi = __shfl_up_sync(mask, hi, delta, width); + lo = __shfl_up_sync(mask, lo, delta, width); + asm volatile("mov.b64 %0, {%1,%2};" : "=d"(var) : "r"(lo), "r"(hi)); + return var; +} + +static __attribute__((device)) __inline__ double __shfl_down_sync(unsigned mask, double var, unsigned int delta, int width) { + unsigned lo, hi; + asm volatile("mov.b64 {%0,%1}, %2;" : "=r"(lo), "=r"(hi) : "d"(var)); + hi = __shfl_down_sync(mask, hi, delta, width); + lo = __shfl_down_sync(mask, lo, delta, width); + asm volatile("mov.b64 %0, {%1,%2};" : "=d"(var) : "r"(lo), "r"(hi)); + return var; +} + +static __attribute__((device)) __inline__ double __shfl_xor_sync(unsigned mask, double var, int laneMask, int width) { + unsigned lo, hi; + asm volatile("mov.b64 {%0,%1}, %2;" : "=r"(lo), "=r"(hi) : "d"(var)); + hi = __shfl_xor_sync(mask, hi, laneMask, width); + lo = __shfl_xor_sync(mask, lo, laneMask, width); + asm volatile("mov.b64 %0, {%1,%2};" : "=d"(var) : "r"(lo), "r"(hi)); + return var; +} + + + +static __attribute__((device)) __inline__ long __shfl_sync(unsigned mask, long var, int srcLane, int width) { + return (sizeof(long) == sizeof(long long)) ? + __shfl_sync(mask, (long long) var, srcLane, width) : + __shfl_sync(mask, (int) var, srcLane, width); +} + +static __attribute__((device)) __inline__ unsigned long __shfl_sync(unsigned mask, unsigned long var, int srcLane, int width) { + return (sizeof(long) == sizeof(long long)) ? + __shfl_sync(mask, (unsigned long long) var, srcLane, width) : + __shfl_sync(mask, (unsigned int) var, srcLane, width); +} + +static __attribute__((device)) __inline__ long __shfl_up_sync(unsigned mask, long var, unsigned int delta, int width) { + return (sizeof(long) == sizeof(long long)) ? + __shfl_up_sync(mask, (long long) var, delta, width) : + __shfl_up_sync(mask, (int) var, delta, width); +} + +static __attribute__((device)) __inline__ unsigned long __shfl_up_sync(unsigned mask, unsigned long var, unsigned int delta, int width) { + return (sizeof(long) == sizeof(long long)) ? + __shfl_up_sync(mask, (unsigned long long) var, delta, width) : + __shfl_up_sync(mask, (unsigned int) var, delta, width); +} + +static __attribute__((device)) __inline__ long __shfl_down_sync(unsigned mask, long var, unsigned int delta, int width) { + return (sizeof(long) == sizeof(long long)) ? + __shfl_down_sync(mask, (long long) var, delta, width) : + __shfl_down_sync(mask, (int) var, delta, width); +} + +static __attribute__((device)) __inline__ unsigned long __shfl_down_sync(unsigned mask, unsigned long var, unsigned int delta, int width) { + return (sizeof(long) == sizeof(long long)) ? + __shfl_down_sync(mask, (unsigned long long) var, delta, width) : + __shfl_down_sync(mask, (unsigned int) var, delta, width); +} + +static __attribute__((device)) __inline__ long __shfl_xor_sync(unsigned mask, long var, int laneMask, int width) { + return (sizeof(long) == sizeof(long long)) ? + __shfl_xor_sync(mask, (long long) var, laneMask, width) : + __shfl_xor_sync(mask, (int) var, laneMask, width); +} + +static __attribute__((device)) __inline__ unsigned long __shfl_xor_sync(unsigned mask, unsigned long var, int laneMask, int width) { + return (sizeof(long) == sizeof(long long)) ? + __shfl_xor_sync(mask, (unsigned long long) var, laneMask, width) : + __shfl_xor_sync(mask, (unsigned int) var, laneMask, width); +} +# 213 "/usr/include/sm_30_intrinsics.h" 2 3 4 +# 3296 "/usr/include/crt/device_functions.h" 2 3 4 +# 1 "/usr/include/sm_32_intrinsics.h" 1 3 4 +# 87 "/usr/include/sm_32_intrinsics.h" 3 4 +static __attribute__((device)) __inline__ long __ldg(const long *ptr) ; +static __attribute__((device)) __inline__ unsigned long __ldg(const unsigned long *ptr) ; + +static __attribute__((device)) __inline__ char __ldg(const char *ptr) ; +static __attribute__((device)) __inline__ signed char __ldg(const signed char *ptr) ; +static __attribute__((device)) __inline__ short __ldg(const short *ptr) ; +static __attribute__((device)) __inline__ int __ldg(const int *ptr) ; +static __attribute__((device)) __inline__ long long __ldg(const long long *ptr) ; +static __attribute__((device)) __inline__ char2 __ldg(const char2 *ptr) ; +static __attribute__((device)) __inline__ char4 __ldg(const char4 *ptr) ; +static __attribute__((device)) __inline__ short2 __ldg(const short2 *ptr) ; +static __attribute__((device)) __inline__ short4 __ldg(const short4 *ptr) ; +static __attribute__((device)) __inline__ int2 __ldg(const int2 *ptr) ; +static __attribute__((device)) __inline__ int4 __ldg(const int4 *ptr) ; +static __attribute__((device)) __inline__ longlong2 __ldg(const longlong2 *ptr) ; + +static __attribute__((device)) __inline__ unsigned char __ldg(const unsigned char *ptr) ; +static __attribute__((device)) __inline__ unsigned short __ldg(const unsigned short *ptr) ; +static __attribute__((device)) __inline__ unsigned int __ldg(const unsigned int *ptr) ; +static __attribute__((device)) __inline__ unsigned long long __ldg(const unsigned long long *ptr) ; +static __attribute__((device)) __inline__ uchar2 __ldg(const uchar2 *ptr) ; +static __attribute__((device)) __inline__ uchar4 __ldg(const uchar4 *ptr) ; +static __attribute__((device)) __inline__ ushort2 __ldg(const ushort2 *ptr) ; +static __attribute__((device)) __inline__ ushort4 __ldg(const ushort4 *ptr) ; +static __attribute__((device)) __inline__ uint2 __ldg(const uint2 *ptr) ; +static __attribute__((device)) __inline__ uint4 __ldg(const uint4 *ptr) ; +static __attribute__((device)) __inline__ ulonglong2 __ldg(const ulonglong2 *ptr) ; + +static __attribute__((device)) __inline__ float __ldg(const float *ptr) ; +static __attribute__((device)) __inline__ double __ldg(const double *ptr) ; +static __attribute__((device)) __inline__ float2 __ldg(const float2 *ptr) ; +static __attribute__((device)) __inline__ float4 __ldg(const float4 *ptr) ; +static __attribute__((device)) __inline__ double2 __ldg(const double2 *ptr) ; + + + +static __attribute__((device)) __inline__ long __ldcg(const long *ptr) ; +static __attribute__((device)) __inline__ unsigned long __ldcg(const unsigned long *ptr) ; + +static __attribute__((device)) __inline__ char __ldcg(const char *ptr) ; +static __attribute__((device)) __inline__ signed char __ldcg(const signed char *ptr) ; +static __attribute__((device)) __inline__ short __ldcg(const short *ptr) ; +static __attribute__((device)) __inline__ int __ldcg(const int *ptr) ; +static __attribute__((device)) __inline__ long long __ldcg(const long long *ptr) ; +static __attribute__((device)) __inline__ char2 __ldcg(const char2 *ptr) ; +static __attribute__((device)) __inline__ char4 __ldcg(const char4 *ptr) ; +static __attribute__((device)) __inline__ short2 __ldcg(const short2 *ptr) ; +static __attribute__((device)) __inline__ short4 __ldcg(const short4 *ptr) ; +static __attribute__((device)) __inline__ int2 __ldcg(const int2 *ptr) ; +static __attribute__((device)) __inline__ int4 __ldcg(const int4 *ptr) ; +static __attribute__((device)) __inline__ longlong2 __ldcg(const longlong2 *ptr) ; + +static __attribute__((device)) __inline__ unsigned char __ldcg(const unsigned char *ptr) ; +static __attribute__((device)) __inline__ unsigned short __ldcg(const unsigned short *ptr) ; +static __attribute__((device)) __inline__ unsigned int __ldcg(const unsigned int *ptr) ; +static __attribute__((device)) __inline__ unsigned long long __ldcg(const unsigned long long *ptr) ; +static __attribute__((device)) __inline__ uchar2 __ldcg(const uchar2 *ptr) ; +static __attribute__((device)) __inline__ uchar4 __ldcg(const uchar4 *ptr) ; +static __attribute__((device)) __inline__ ushort2 __ldcg(const ushort2 *ptr) ; +static __attribute__((device)) __inline__ ushort4 __ldcg(const ushort4 *ptr) ; +static __attribute__((device)) __inline__ uint2 __ldcg(const uint2 *ptr) ; +static __attribute__((device)) __inline__ uint4 __ldcg(const uint4 *ptr) ; +static __attribute__((device)) __inline__ ulonglong2 __ldcg(const ulonglong2 *ptr) ; + +static __attribute__((device)) __inline__ float __ldcg(const float *ptr) ; +static __attribute__((device)) __inline__ double __ldcg(const double *ptr) ; +static __attribute__((device)) __inline__ float2 __ldcg(const float2 *ptr) ; +static __attribute__((device)) __inline__ float4 __ldcg(const float4 *ptr) ; +static __attribute__((device)) __inline__ double2 __ldcg(const double2 *ptr) ; + + + +static __attribute__((device)) __inline__ long __ldca(const long *ptr) ; +static __attribute__((device)) __inline__ unsigned long __ldca(const unsigned long *ptr) ; + +static __attribute__((device)) __inline__ char __ldca(const char *ptr) ; +static __attribute__((device)) __inline__ signed char __ldca(const signed char *ptr) ; +static __attribute__((device)) __inline__ short __ldca(const short *ptr) ; +static __attribute__((device)) __inline__ int __ldca(const int *ptr) ; +static __attribute__((device)) __inline__ long long __ldca(const long long *ptr) ; +static __attribute__((device)) __inline__ char2 __ldca(const char2 *ptr) ; +static __attribute__((device)) __inline__ char4 __ldca(const char4 *ptr) ; +static __attribute__((device)) __inline__ short2 __ldca(const short2 *ptr) ; +static __attribute__((device)) __inline__ short4 __ldca(const short4 *ptr) ; +static __attribute__((device)) __inline__ int2 __ldca(const int2 *ptr) ; +static __attribute__((device)) __inline__ int4 __ldca(const int4 *ptr) ; +static __attribute__((device)) __inline__ longlong2 __ldca(const longlong2 *ptr) ; + +static __attribute__((device)) __inline__ unsigned char __ldca(const unsigned char *ptr) ; +static __attribute__((device)) __inline__ unsigned short __ldca(const unsigned short *ptr) ; +static __attribute__((device)) __inline__ unsigned int __ldca(const unsigned int *ptr) ; +static __attribute__((device)) __inline__ unsigned long long __ldca(const unsigned long long *ptr) ; +static __attribute__((device)) __inline__ uchar2 __ldca(const uchar2 *ptr) ; +static __attribute__((device)) __inline__ uchar4 __ldca(const uchar4 *ptr) ; +static __attribute__((device)) __inline__ ushort2 __ldca(const ushort2 *ptr) ; +static __attribute__((device)) __inline__ ushort4 __ldca(const ushort4 *ptr) ; +static __attribute__((device)) __inline__ uint2 __ldca(const uint2 *ptr) ; +static __attribute__((device)) __inline__ uint4 __ldca(const uint4 *ptr) ; +static __attribute__((device)) __inline__ ulonglong2 __ldca(const ulonglong2 *ptr) ; + +static __attribute__((device)) __inline__ float __ldca(const float *ptr) ; +static __attribute__((device)) __inline__ double __ldca(const double *ptr) ; +static __attribute__((device)) __inline__ float2 __ldca(const float2 *ptr) ; +static __attribute__((device)) __inline__ float4 __ldca(const float4 *ptr) ; +static __attribute__((device)) __inline__ double2 __ldca(const double2 *ptr) ; + + + +static __attribute__((device)) __inline__ long __ldcs(const long *ptr) ; +static __attribute__((device)) __inline__ unsigned long __ldcs(const unsigned long *ptr) ; + +static __attribute__((device)) __inline__ char __ldcs(const char *ptr) ; +static __attribute__((device)) __inline__ signed char __ldcs(const signed char *ptr) ; +static __attribute__((device)) __inline__ short __ldcs(const short *ptr) ; +static __attribute__((device)) __inline__ int __ldcs(const int *ptr) ; +static __attribute__((device)) __inline__ long long __ldcs(const long long *ptr) ; +static __attribute__((device)) __inline__ char2 __ldcs(const char2 *ptr) ; +static __attribute__((device)) __inline__ char4 __ldcs(const char4 *ptr) ; +static __attribute__((device)) __inline__ short2 __ldcs(const short2 *ptr) ; +static __attribute__((device)) __inline__ short4 __ldcs(const short4 *ptr) ; +static __attribute__((device)) __inline__ int2 __ldcs(const int2 *ptr) ; +static __attribute__((device)) __inline__ int4 __ldcs(const int4 *ptr) ; +static __attribute__((device)) __inline__ longlong2 __ldcs(const longlong2 *ptr) ; + +static __attribute__((device)) __inline__ unsigned char __ldcs(const unsigned char *ptr) ; +static __attribute__((device)) __inline__ unsigned short __ldcs(const unsigned short *ptr) ; +static __attribute__((device)) __inline__ unsigned int __ldcs(const unsigned int *ptr) ; +static __attribute__((device)) __inline__ unsigned long long __ldcs(const unsigned long long *ptr) ; +static __attribute__((device)) __inline__ uchar2 __ldcs(const uchar2 *ptr) ; +static __attribute__((device)) __inline__ uchar4 __ldcs(const uchar4 *ptr) ; +static __attribute__((device)) __inline__ ushort2 __ldcs(const ushort2 *ptr) ; +static __attribute__((device)) __inline__ ushort4 __ldcs(const ushort4 *ptr) ; +static __attribute__((device)) __inline__ uint2 __ldcs(const uint2 *ptr) ; +static __attribute__((device)) __inline__ uint4 __ldcs(const uint4 *ptr) ; +static __attribute__((device)) __inline__ ulonglong2 __ldcs(const ulonglong2 *ptr) ; + +static __attribute__((device)) __inline__ float __ldcs(const float *ptr) ; +static __attribute__((device)) __inline__ double __ldcs(const double *ptr) ; +static __attribute__((device)) __inline__ float2 __ldcs(const float2 *ptr) ; +static __attribute__((device)) __inline__ float4 __ldcs(const float4 *ptr) ; +static __attribute__((device)) __inline__ double2 __ldcs(const double2 *ptr) ; + + + +static __attribute__((device)) __inline__ long __ldlu(const long *ptr) ; +static __attribute__((device)) __inline__ unsigned long __ldlu(const unsigned long *ptr) ; + +static __attribute__((device)) __inline__ char __ldlu(const char *ptr) ; +static __attribute__((device)) __inline__ signed char __ldlu(const signed char *ptr) ; +static __attribute__((device)) __inline__ short __ldlu(const short *ptr) ; +static __attribute__((device)) __inline__ int __ldlu(const int *ptr) ; +static __attribute__((device)) __inline__ long long __ldlu(const long long *ptr) ; +static __attribute__((device)) __inline__ char2 __ldlu(const char2 *ptr) ; +static __attribute__((device)) __inline__ char4 __ldlu(const char4 *ptr) ; +static __attribute__((device)) __inline__ short2 __ldlu(const short2 *ptr) ; +static __attribute__((device)) __inline__ short4 __ldlu(const short4 *ptr) ; +static __attribute__((device)) __inline__ int2 __ldlu(const int2 *ptr) ; +static __attribute__((device)) __inline__ int4 __ldlu(const int4 *ptr) ; +static __attribute__((device)) __inline__ longlong2 __ldlu(const longlong2 *ptr) ; + +static __attribute__((device)) __inline__ unsigned char __ldlu(const unsigned char *ptr) ; +static __attribute__((device)) __inline__ unsigned short __ldlu(const unsigned short *ptr) ; +static __attribute__((device)) __inline__ unsigned int __ldlu(const unsigned int *ptr) ; +static __attribute__((device)) __inline__ unsigned long long __ldlu(const unsigned long long *ptr) ; +static __attribute__((device)) __inline__ uchar2 __ldlu(const uchar2 *ptr) ; +static __attribute__((device)) __inline__ uchar4 __ldlu(const uchar4 *ptr) ; +static __attribute__((device)) __inline__ ushort2 __ldlu(const ushort2 *ptr) ; +static __attribute__((device)) __inline__ ushort4 __ldlu(const ushort4 *ptr) ; +static __attribute__((device)) __inline__ uint2 __ldlu(const uint2 *ptr) ; +static __attribute__((device)) __inline__ uint4 __ldlu(const uint4 *ptr) ; +static __attribute__((device)) __inline__ ulonglong2 __ldlu(const ulonglong2 *ptr) ; + +static __attribute__((device)) __inline__ float __ldlu(const float *ptr) ; +static __attribute__((device)) __inline__ double __ldlu(const double *ptr) ; +static __attribute__((device)) __inline__ float2 __ldlu(const float2 *ptr) ; +static __attribute__((device)) __inline__ float4 __ldlu(const float4 *ptr) ; +static __attribute__((device)) __inline__ double2 __ldlu(const double2 *ptr) ; + + + +static __attribute__((device)) __inline__ long __ldcv(const long *ptr) ; +static __attribute__((device)) __inline__ unsigned long __ldcv(const unsigned long *ptr) ; + +static __attribute__((device)) __inline__ char __ldcv(const char *ptr) ; +static __attribute__((device)) __inline__ signed char __ldcv(const signed char *ptr) ; +static __attribute__((device)) __inline__ short __ldcv(const short *ptr) ; +static __attribute__((device)) __inline__ int __ldcv(const int *ptr) ; +static __attribute__((device)) __inline__ long long __ldcv(const long long *ptr) ; +static __attribute__((device)) __inline__ char2 __ldcv(const char2 *ptr) ; +static __attribute__((device)) __inline__ char4 __ldcv(const char4 *ptr) ; +static __attribute__((device)) __inline__ short2 __ldcv(const short2 *ptr) ; +static __attribute__((device)) __inline__ short4 __ldcv(const short4 *ptr) ; +static __attribute__((device)) __inline__ int2 __ldcv(const int2 *ptr) ; +static __attribute__((device)) __inline__ int4 __ldcv(const int4 *ptr) ; +static __attribute__((device)) __inline__ longlong2 __ldcv(const longlong2 *ptr) ; + +static __attribute__((device)) __inline__ unsigned char __ldcv(const unsigned char *ptr) ; +static __attribute__((device)) __inline__ unsigned short __ldcv(const unsigned short *ptr) ; +static __attribute__((device)) __inline__ unsigned int __ldcv(const unsigned int *ptr) ; +static __attribute__((device)) __inline__ unsigned long long __ldcv(const unsigned long long *ptr) ; +static __attribute__((device)) __inline__ uchar2 __ldcv(const uchar2 *ptr) ; +static __attribute__((device)) __inline__ uchar4 __ldcv(const uchar4 *ptr) ; +static __attribute__((device)) __inline__ ushort2 __ldcv(const ushort2 *ptr) ; +static __attribute__((device)) __inline__ ushort4 __ldcv(const ushort4 *ptr) ; +static __attribute__((device)) __inline__ uint2 __ldcv(const uint2 *ptr) ; +static __attribute__((device)) __inline__ uint4 __ldcv(const uint4 *ptr) ; +static __attribute__((device)) __inline__ ulonglong2 __ldcv(const ulonglong2 *ptr) ; + +static __attribute__((device)) __inline__ float __ldcv(const float *ptr) ; +static __attribute__((device)) __inline__ double __ldcv(const double *ptr) ; +static __attribute__((device)) __inline__ float2 __ldcv(const float2 *ptr) ; +static __attribute__((device)) __inline__ float4 __ldcv(const float4 *ptr) ; +static __attribute__((device)) __inline__ double2 __ldcv(const double2 *ptr) ; + + + +static __attribute__((device)) __inline__ void __stwb(long *ptr, long value) ; +static __attribute__((device)) __inline__ void __stwb(unsigned long *ptr, unsigned long value) ; + +static __attribute__((device)) __inline__ void __stwb(char *ptr, char value) ; +static __attribute__((device)) __inline__ void __stwb(signed char *ptr, signed char value) ; +static __attribute__((device)) __inline__ void __stwb(short *ptr, short value) ; +static __attribute__((device)) __inline__ void __stwb(int *ptr, int value) ; +static __attribute__((device)) __inline__ void __stwb(long long *ptr, long long value) ; +static __attribute__((device)) __inline__ void __stwb(char2 *ptr, char2 value) ; +static __attribute__((device)) __inline__ void __stwb(char4 *ptr, char4 value) ; +static __attribute__((device)) __inline__ void __stwb(short2 *ptr, short2 value) ; +static __attribute__((device)) __inline__ void __stwb(short4 *ptr, short4 value) ; +static __attribute__((device)) __inline__ void __stwb(int2 *ptr, int2 value) ; +static __attribute__((device)) __inline__ void __stwb(int4 *ptr, int4 value) ; +static __attribute__((device)) __inline__ void __stwb(longlong2 *ptr, longlong2 value) ; + +static __attribute__((device)) __inline__ void __stwb(unsigned char *ptr, unsigned char value) ; +static __attribute__((device)) __inline__ void __stwb(unsigned short *ptr, unsigned short value) ; +static __attribute__((device)) __inline__ void __stwb(unsigned int *ptr, unsigned int value) ; +static __attribute__((device)) __inline__ void __stwb(unsigned long long *ptr, unsigned long long value) ; +static __attribute__((device)) __inline__ void __stwb(uchar2 *ptr, uchar2 value) ; +static __attribute__((device)) __inline__ void __stwb(uchar4 *ptr, uchar4 value) ; +static __attribute__((device)) __inline__ void __stwb(ushort2 *ptr, ushort2 value) ; +static __attribute__((device)) __inline__ void __stwb(ushort4 *ptr, ushort4 value) ; +static __attribute__((device)) __inline__ void __stwb(uint2 *ptr, uint2 value) ; +static __attribute__((device)) __inline__ void __stwb(uint4 *ptr, uint4 value) ; +static __attribute__((device)) __inline__ void __stwb(ulonglong2 *ptr, ulonglong2 value) ; + +static __attribute__((device)) __inline__ void __stwb(float *ptr, float value) ; +static __attribute__((device)) __inline__ void __stwb(double *ptr, double value) ; +static __attribute__((device)) __inline__ void __stwb(float2 *ptr, float2 value) ; +static __attribute__((device)) __inline__ void __stwb(float4 *ptr, float4 value) ; +static __attribute__((device)) __inline__ void __stwb(double2 *ptr, double2 value) ; + + + +static __attribute__((device)) __inline__ void __stcg(long *ptr, long value) ; +static __attribute__((device)) __inline__ void __stcg(unsigned long *ptr, unsigned long value) ; + +static __attribute__((device)) __inline__ void __stcg(char *ptr, char value) ; +static __attribute__((device)) __inline__ void __stcg(signed char *ptr, signed char value) ; +static __attribute__((device)) __inline__ void __stcg(short *ptr, short value) ; +static __attribute__((device)) __inline__ void __stcg(int *ptr, int value) ; +static __attribute__((device)) __inline__ void __stcg(long long *ptr, long long value) ; +static __attribute__((device)) __inline__ void __stcg(char2 *ptr, char2 value) ; +static __attribute__((device)) __inline__ void __stcg(char4 *ptr, char4 value) ; +static __attribute__((device)) __inline__ void __stcg(short2 *ptr, short2 value) ; +static __attribute__((device)) __inline__ void __stcg(short4 *ptr, short4 value) ; +static __attribute__((device)) __inline__ void __stcg(int2 *ptr, int2 value) ; +static __attribute__((device)) __inline__ void __stcg(int4 *ptr, int4 value) ; +static __attribute__((device)) __inline__ void __stcg(longlong2 *ptr, longlong2 value) ; + +static __attribute__((device)) __inline__ void __stcg(unsigned char *ptr, unsigned char value) ; +static __attribute__((device)) __inline__ void __stcg(unsigned short *ptr, unsigned short value) ; +static __attribute__((device)) __inline__ void __stcg(unsigned int *ptr, unsigned int value) ; +static __attribute__((device)) __inline__ void __stcg(unsigned long long *ptr, unsigned long long value) ; +static __attribute__((device)) __inline__ void __stcg(uchar2 *ptr, uchar2 value) ; +static __attribute__((device)) __inline__ void __stcg(uchar4 *ptr, uchar4 value) ; +static __attribute__((device)) __inline__ void __stcg(ushort2 *ptr, ushort2 value) ; +static __attribute__((device)) __inline__ void __stcg(ushort4 *ptr, ushort4 value) ; +static __attribute__((device)) __inline__ void __stcg(uint2 *ptr, uint2 value) ; +static __attribute__((device)) __inline__ void __stcg(uint4 *ptr, uint4 value) ; +static __attribute__((device)) __inline__ void __stcg(ulonglong2 *ptr, ulonglong2 value) ; + +static __attribute__((device)) __inline__ void __stcg(float *ptr, float value) ; +static __attribute__((device)) __inline__ void __stcg(double *ptr, double value) ; +static __attribute__((device)) __inline__ void __stcg(float2 *ptr, float2 value) ; +static __attribute__((device)) __inline__ void __stcg(float4 *ptr, float4 value) ; +static __attribute__((device)) __inline__ void __stcg(double2 *ptr, double2 value) ; + + + +static __attribute__((device)) __inline__ void __stcs(long *ptr, long value) ; +static __attribute__((device)) __inline__ void __stcs(unsigned long *ptr, unsigned long value) ; + +static __attribute__((device)) __inline__ void __stcs(char *ptr, char value) ; +static __attribute__((device)) __inline__ void __stcs(signed char *ptr, signed char value) ; +static __attribute__((device)) __inline__ void __stcs(short *ptr, short value) ; +static __attribute__((device)) __inline__ void __stcs(int *ptr, int value) ; +static __attribute__((device)) __inline__ void __stcs(long long *ptr, long long value) ; +static __attribute__((device)) __inline__ void __stcs(char2 *ptr, char2 value) ; +static __attribute__((device)) __inline__ void __stcs(char4 *ptr, char4 value) ; +static __attribute__((device)) __inline__ void __stcs(short2 *ptr, short2 value) ; +static __attribute__((device)) __inline__ void __stcs(short4 *ptr, short4 value) ; +static __attribute__((device)) __inline__ void __stcs(int2 *ptr, int2 value) ; +static __attribute__((device)) __inline__ void __stcs(int4 *ptr, int4 value) ; +static __attribute__((device)) __inline__ void __stcs(longlong2 *ptr, longlong2 value) ; + +static __attribute__((device)) __inline__ void __stcs(unsigned char *ptr, unsigned char value) ; +static __attribute__((device)) __inline__ void __stcs(unsigned short *ptr, unsigned short value) ; +static __attribute__((device)) __inline__ void __stcs(unsigned int *ptr, unsigned int value) ; +static __attribute__((device)) __inline__ void __stcs(unsigned long long *ptr, unsigned long long value) ; +static __attribute__((device)) __inline__ void __stcs(uchar2 *ptr, uchar2 value) ; +static __attribute__((device)) __inline__ void __stcs(uchar4 *ptr, uchar4 value) ; +static __attribute__((device)) __inline__ void __stcs(ushort2 *ptr, ushort2 value) ; +static __attribute__((device)) __inline__ void __stcs(ushort4 *ptr, ushort4 value) ; +static __attribute__((device)) __inline__ void __stcs(uint2 *ptr, uint2 value) ; +static __attribute__((device)) __inline__ void __stcs(uint4 *ptr, uint4 value) ; +static __attribute__((device)) __inline__ void __stcs(ulonglong2 *ptr, ulonglong2 value) ; + +static __attribute__((device)) __inline__ void __stcs(float *ptr, float value) ; +static __attribute__((device)) __inline__ void __stcs(double *ptr, double value) ; +static __attribute__((device)) __inline__ void __stcs(float2 *ptr, float2 value) ; +static __attribute__((device)) __inline__ void __stcs(float4 *ptr, float4 value) ; +static __attribute__((device)) __inline__ void __stcs(double2 *ptr, double2 value) ; + + + +static __attribute__((device)) __inline__ void __stwt(long *ptr, long value) ; +static __attribute__((device)) __inline__ void __stwt(unsigned long *ptr, unsigned long value) ; + +static __attribute__((device)) __inline__ void __stwt(char *ptr, char value) ; +static __attribute__((device)) __inline__ void __stwt(signed char *ptr, signed char value) ; +static __attribute__((device)) __inline__ void __stwt(short *ptr, short value) ; +static __attribute__((device)) __inline__ void __stwt(int *ptr, int value) ; +static __attribute__((device)) __inline__ void __stwt(long long *ptr, long long value) ; +static __attribute__((device)) __inline__ void __stwt(char2 *ptr, char2 value) ; +static __attribute__((device)) __inline__ void __stwt(char4 *ptr, char4 value) ; +static __attribute__((device)) __inline__ void __stwt(short2 *ptr, short2 value) ; +static __attribute__((device)) __inline__ void __stwt(short4 *ptr, short4 value) ; +static __attribute__((device)) __inline__ void __stwt(int2 *ptr, int2 value) ; +static __attribute__((device)) __inline__ void __stwt(int4 *ptr, int4 value) ; +static __attribute__((device)) __inline__ void __stwt(longlong2 *ptr, longlong2 value) ; + +static __attribute__((device)) __inline__ void __stwt(unsigned char *ptr, unsigned char value) ; +static __attribute__((device)) __inline__ void __stwt(unsigned short *ptr, unsigned short value) ; +static __attribute__((device)) __inline__ void __stwt(unsigned int *ptr, unsigned int value) ; +static __attribute__((device)) __inline__ void __stwt(unsigned long long *ptr, unsigned long long value) ; +static __attribute__((device)) __inline__ void __stwt(uchar2 *ptr, uchar2 value) ; +static __attribute__((device)) __inline__ void __stwt(uchar4 *ptr, uchar4 value) ; +static __attribute__((device)) __inline__ void __stwt(ushort2 *ptr, ushort2 value) ; +static __attribute__((device)) __inline__ void __stwt(ushort4 *ptr, ushort4 value) ; +static __attribute__((device)) __inline__ void __stwt(uint2 *ptr, uint2 value) ; +static __attribute__((device)) __inline__ void __stwt(uint4 *ptr, uint4 value) ; +static __attribute__((device)) __inline__ void __stwt(ulonglong2 *ptr, ulonglong2 value) ; + +static __attribute__((device)) __inline__ void __stwt(float *ptr, float value) ; +static __attribute__((device)) __inline__ void __stwt(double *ptr, double value) ; +static __attribute__((device)) __inline__ void __stwt(float2 *ptr, float2 value) ; +static __attribute__((device)) __inline__ void __stwt(float4 *ptr, float4 value) ; +static __attribute__((device)) __inline__ void __stwt(double2 *ptr, double2 value) ; +# 460 "/usr/include/sm_32_intrinsics.h" 3 4 +static __attribute__((device)) __inline__ unsigned int __funnelshift_l(unsigned int lo, unsigned int hi, unsigned int shift) ; +# 472 "/usr/include/sm_32_intrinsics.h" 3 4 +static __attribute__((device)) __inline__ unsigned int __funnelshift_lc(unsigned int lo, unsigned int hi, unsigned int shift) ; +# 485 "/usr/include/sm_32_intrinsics.h" 3 4 +static __attribute__((device)) __inline__ unsigned int __funnelshift_r(unsigned int lo, unsigned int hi, unsigned int shift) ; +# 497 "/usr/include/sm_32_intrinsics.h" 3 4 +static __attribute__((device)) __inline__ unsigned int __funnelshift_rc(unsigned int lo, unsigned int hi, unsigned int shift) ; +# 507 "/usr/include/sm_32_intrinsics.h" 3 4 +# 1 "/usr/include/sm_32_intrinsics.hpp" 1 3 4 +# 73 "/usr/include/sm_32_intrinsics.hpp" 3 4 +extern "C" +{ + + +} +# 101 "/usr/include/sm_32_intrinsics.hpp" 3 4 +static __attribute__((device)) __inline__ long __ldg(const long *ptr) { unsigned long ret; asm volatile ("ld.global.nc.s64 %0, [%1];" : "=l"(ret) : "l" (ptr)); return (long)ret; } +static __attribute__((device)) __inline__ unsigned long __ldg(const unsigned long *ptr) { unsigned long ret; asm volatile ("ld.global.nc.u64 %0, [%1];" : "=l"(ret) : "l" (ptr)); return ret; } + + + + + + +static __attribute__((device)) __inline__ char __ldg(const char *ptr) { unsigned int ret; asm volatile ("ld.global.nc.s8 %0, [%1];" : "=r"(ret) : "l" (ptr)); return (char)ret; } +static __attribute__((device)) __inline__ signed char __ldg(const signed char *ptr) { unsigned int ret; asm volatile ("ld.global.nc.s8 %0, [%1];" : "=r"(ret) : "l" (ptr)); return (signed char)ret; } +static __attribute__((device)) __inline__ short __ldg(const short *ptr) { unsigned short ret; asm volatile ("ld.global.nc.s16 %0, [%1];" : "=h"(ret) : "l" (ptr)); return (short)ret; } +static __attribute__((device)) __inline__ int __ldg(const int *ptr) { unsigned int ret; asm volatile ("ld.global.nc.s32 %0, [%1];" : "=r"(ret) : "l" (ptr)); return (int)ret; } +static __attribute__((device)) __inline__ long long __ldg(const long long *ptr) { unsigned long long ret; asm volatile ("ld.global.nc.s64 %0, [%1];" : "=l"(ret) : "l" (ptr)); return (long long)ret; } +static __attribute__((device)) __inline__ char2 __ldg(const char2 *ptr) { char2 ret; int2 tmp; asm volatile ("ld.global.nc.v2.s8 {%0,%1}, [%2];" : "=r"(tmp.x), "=r"(tmp.y) : "l" (ptr)); ret.x = (char)tmp.x; ret.y = (char)tmp.y; return ret; } +static __attribute__((device)) __inline__ char4 __ldg(const char4 *ptr) { char4 ret; int4 tmp; asm volatile ("ld.global.nc.v4.s8 {%0,%1,%2,%3}, [%4];" : "=r"(tmp.x), "=r"(tmp.y), "=r"(tmp.z), "=r"(tmp.w) : "l" (ptr)); ret.x = (char)tmp.x; ret.y = (char)tmp.y; ret.z = (char)tmp.z; ret.w = (char)tmp.w; return ret; } +static __attribute__((device)) __inline__ short2 __ldg(const short2 *ptr) { short2 ret; asm volatile ("ld.global.nc.v2.s16 {%0,%1}, [%2];" : "=h"(ret.x), "=h"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ short4 __ldg(const short4 *ptr) { short4 ret; asm volatile ("ld.global.nc.v4.s16 {%0,%1,%2,%3}, [%4];" : "=h"(ret.x), "=h"(ret.y), "=h"(ret.z), "=h"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ int2 __ldg(const int2 *ptr) { int2 ret; asm volatile ("ld.global.nc.v2.s32 {%0,%1}, [%2];" : "=r"(ret.x), "=r"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ int4 __ldg(const int4 *ptr) { int4 ret; asm volatile ("ld.global.nc.v4.s32 {%0,%1,%2,%3}, [%4];" : "=r"(ret.x), "=r"(ret.y), "=r"(ret.z), "=r"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ longlong2 __ldg(const longlong2 *ptr) { longlong2 ret; asm volatile ("ld.global.nc.v2.s64 {%0,%1}, [%2];" : "=l"(ret.x), "=l"(ret.y) : "l" (ptr)); return ret; } + +static __attribute__((device)) __inline__ unsigned char __ldg(const unsigned char *ptr) { unsigned int ret; asm volatile ("ld.global.nc.u8 %0, [%1];" : "=r"(ret) : "l" (ptr)); return (unsigned char)ret; } +static __attribute__((device)) __inline__ unsigned short __ldg(const unsigned short *ptr) { unsigned short ret; asm volatile ("ld.global.nc.u16 %0, [%1];" : "=h"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ unsigned int __ldg(const unsigned int *ptr) { unsigned int ret; asm volatile ("ld.global.nc.u32 %0, [%1];" : "=r"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ unsigned long long __ldg(const unsigned long long *ptr) { unsigned long long ret; asm volatile ("ld.global.nc.u64 %0, [%1];" : "=l"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ uchar2 __ldg(const uchar2 *ptr) { uchar2 ret; uint2 tmp; asm volatile ("ld.global.nc.v2.u8 {%0,%1}, [%2];" : "=r"(tmp.x), "=r"(tmp.y) : "l" (ptr)); ret.x = (unsigned char)tmp.x; ret.y = (unsigned char)tmp.y; return ret; } +static __attribute__((device)) __inline__ uchar4 __ldg(const uchar4 *ptr) { uchar4 ret; uint4 tmp; asm volatile ("ld.global.nc.v4.u8 {%0,%1,%2,%3}, [%4];" : "=r"(tmp.x), "=r"(tmp.y), "=r"(tmp.z), "=r"(tmp.w) : "l" (ptr)); ret.x = (unsigned char)tmp.x; ret.y = (unsigned char)tmp.y; ret.z = (unsigned char)tmp.z; ret.w = (unsigned char)tmp.w; return ret; } +static __attribute__((device)) __inline__ ushort2 __ldg(const ushort2 *ptr) { ushort2 ret; asm volatile ("ld.global.nc.v2.u16 {%0,%1}, [%2];" : "=h"(ret.x), "=h"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ ushort4 __ldg(const ushort4 *ptr) { ushort4 ret; asm volatile ("ld.global.nc.v4.u16 {%0,%1,%2,%3}, [%4];" : "=h"(ret.x), "=h"(ret.y), "=h"(ret.z), "=h"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ uint2 __ldg(const uint2 *ptr) { uint2 ret; asm volatile ("ld.global.nc.v2.u32 {%0,%1}, [%2];" : "=r"(ret.x), "=r"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ uint4 __ldg(const uint4 *ptr) { uint4 ret; asm volatile ("ld.global.nc.v4.u32 {%0,%1,%2,%3}, [%4];" : "=r"(ret.x), "=r"(ret.y), "=r"(ret.z), "=r"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ ulonglong2 __ldg(const ulonglong2 *ptr) { ulonglong2 ret; asm volatile ("ld.global.nc.v2.u64 {%0,%1}, [%2];" : "=l"(ret.x), "=l"(ret.y) : "l" (ptr)); return ret; } + +static __attribute__((device)) __inline__ float __ldg(const float *ptr) { float ret; asm volatile ("ld.global.nc.f32 %0, [%1];" : "=f"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ double __ldg(const double *ptr) { double ret; asm volatile ("ld.global.nc.f64 %0, [%1];" : "=d"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ float2 __ldg(const float2 *ptr) { float2 ret; asm volatile ("ld.global.nc.v2.f32 {%0,%1}, [%2];" : "=f"(ret.x), "=f"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ float4 __ldg(const float4 *ptr) { float4 ret; asm volatile ("ld.global.nc.v4.f32 {%0,%1,%2,%3}, [%4];" : "=f"(ret.x), "=f"(ret.y), "=f"(ret.z), "=f"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ double2 __ldg(const double2 *ptr) { double2 ret; asm volatile ("ld.global.nc.v2.f64 {%0,%1}, [%2];" : "=d"(ret.x), "=d"(ret.y) : "l" (ptr)); return ret; } +# 147 "/usr/include/sm_32_intrinsics.hpp" 3 4 +static __attribute__((device)) __inline__ long __ldcg(const long *ptr) { unsigned long ret; asm volatile ("ld.global.cg.s64 %0, [%1];" : "=l"(ret) : "l" (ptr)); return (long)ret; } +static __attribute__((device)) __inline__ unsigned long __ldcg(const unsigned long *ptr) { unsigned long ret; asm volatile ("ld.global.cg.u64 %0, [%1];" : "=l"(ret) : "l" (ptr)); return ret; } + + + + + + +static __attribute__((device)) __inline__ char __ldcg(const char *ptr) { unsigned int ret; asm volatile ("ld.global.cg.s8 %0, [%1];" : "=r"(ret) : "l" (ptr)); return (char)ret; } +static __attribute__((device)) __inline__ signed char __ldcg(const signed char *ptr) { unsigned int ret; asm volatile ("ld.global.cg.s8 %0, [%1];" : "=r"(ret) : "l" (ptr)); return (signed char)ret; } +static __attribute__((device)) __inline__ short __ldcg(const short *ptr) { unsigned short ret; asm volatile ("ld.global.cg.s16 %0, [%1];" : "=h"(ret) : "l" (ptr)); return (short)ret; } +static __attribute__((device)) __inline__ int __ldcg(const int *ptr) { unsigned int ret; asm volatile ("ld.global.cg.s32 %0, [%1];" : "=r"(ret) : "l" (ptr)); return (int)ret; } +static __attribute__((device)) __inline__ long long __ldcg(const long long *ptr) { unsigned long long ret; asm volatile ("ld.global.cg.s64 %0, [%1];" : "=l"(ret) : "l" (ptr)); return (long long)ret; } +static __attribute__((device)) __inline__ char2 __ldcg(const char2 *ptr) { char2 ret; int2 tmp; asm volatile ("ld.global.cg.v2.s8 {%0,%1}, [%2];" : "=r"(tmp.x), "=r"(tmp.y) : "l" (ptr)); ret.x = (char)tmp.x; ret.y = (char)tmp.y; return ret; } +static __attribute__((device)) __inline__ char4 __ldcg(const char4 *ptr) { char4 ret; int4 tmp; asm volatile ("ld.global.cg.v4.s8 {%0,%1,%2,%3}, [%4];" : "=r"(tmp.x), "=r"(tmp.y), "=r"(tmp.z), "=r"(tmp.w) : "l" (ptr)); ret.x = (char)tmp.x; ret.y = (char)tmp.y; ret.z = (char)tmp.z; ret.w = (char)tmp.w; return ret; } +static __attribute__((device)) __inline__ short2 __ldcg(const short2 *ptr) { short2 ret; asm volatile ("ld.global.cg.v2.s16 {%0,%1}, [%2];" : "=h"(ret.x), "=h"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ short4 __ldcg(const short4 *ptr) { short4 ret; asm volatile ("ld.global.cg.v4.s16 {%0,%1,%2,%3}, [%4];" : "=h"(ret.x), "=h"(ret.y), "=h"(ret.z), "=h"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ int2 __ldcg(const int2 *ptr) { int2 ret; asm volatile ("ld.global.cg.v2.s32 {%0,%1}, [%2];" : "=r"(ret.x), "=r"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ int4 __ldcg(const int4 *ptr) { int4 ret; asm volatile ("ld.global.cg.v4.s32 {%0,%1,%2,%3}, [%4];" : "=r"(ret.x), "=r"(ret.y), "=r"(ret.z), "=r"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ longlong2 __ldcg(const longlong2 *ptr) { longlong2 ret; asm volatile ("ld.global.cg.v2.s64 {%0,%1}, [%2];" : "=l"(ret.x), "=l"(ret.y) : "l" (ptr)); return ret; } + +static __attribute__((device)) __inline__ unsigned char __ldcg(const unsigned char *ptr) { unsigned int ret; asm volatile ("ld.global.cg.u8 %0, [%1];" : "=r"(ret) : "l" (ptr)); return (unsigned char)ret; } +static __attribute__((device)) __inline__ unsigned short __ldcg(const unsigned short *ptr) { unsigned short ret; asm volatile ("ld.global.cg.u16 %0, [%1];" : "=h"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ unsigned int __ldcg(const unsigned int *ptr) { unsigned int ret; asm volatile ("ld.global.cg.u32 %0, [%1];" : "=r"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ unsigned long long __ldcg(const unsigned long long *ptr) { unsigned long long ret; asm volatile ("ld.global.cg.u64 %0, [%1];" : "=l"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ uchar2 __ldcg(const uchar2 *ptr) { uchar2 ret; uint2 tmp; asm volatile ("ld.global.cg.v2.u8 {%0,%1}, [%2];" : "=r"(tmp.x), "=r"(tmp.y) : "l" (ptr)); ret.x = (unsigned char)tmp.x; ret.y = (unsigned char)tmp.y; return ret; } +static __attribute__((device)) __inline__ uchar4 __ldcg(const uchar4 *ptr) { uchar4 ret; uint4 tmp; asm volatile ("ld.global.cg.v4.u8 {%0,%1,%2,%3}, [%4];" : "=r"(tmp.x), "=r"(tmp.y), "=r"(tmp.z), "=r"(tmp.w) : "l" (ptr)); ret.x = (unsigned char)tmp.x; ret.y = (unsigned char)tmp.y; ret.z = (unsigned char)tmp.z; ret.w = (unsigned char)tmp.w; return ret; } +static __attribute__((device)) __inline__ ushort2 __ldcg(const ushort2 *ptr) { ushort2 ret; asm volatile ("ld.global.cg.v2.u16 {%0,%1}, [%2];" : "=h"(ret.x), "=h"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ ushort4 __ldcg(const ushort4 *ptr) { ushort4 ret; asm volatile ("ld.global.cg.v4.u16 {%0,%1,%2,%3}, [%4];" : "=h"(ret.x), "=h"(ret.y), "=h"(ret.z), "=h"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ uint2 __ldcg(const uint2 *ptr) { uint2 ret; asm volatile ("ld.global.cg.v2.u32 {%0,%1}, [%2];" : "=r"(ret.x), "=r"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ uint4 __ldcg(const uint4 *ptr) { uint4 ret; asm volatile ("ld.global.cg.v4.u32 {%0,%1,%2,%3}, [%4];" : "=r"(ret.x), "=r"(ret.y), "=r"(ret.z), "=r"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ ulonglong2 __ldcg(const ulonglong2 *ptr) { ulonglong2 ret; asm volatile ("ld.global.cg.v2.u64 {%0,%1}, [%2];" : "=l"(ret.x), "=l"(ret.y) : "l" (ptr)); return ret; } + +static __attribute__((device)) __inline__ float __ldcg(const float *ptr) { float ret; asm volatile ("ld.global.cg.f32 %0, [%1];" : "=f"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ double __ldcg(const double *ptr) { double ret; asm volatile ("ld.global.cg.f64 %0, [%1];" : "=d"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ float2 __ldcg(const float2 *ptr) { float2 ret; asm volatile ("ld.global.cg.v2.f32 {%0,%1}, [%2];" : "=f"(ret.x), "=f"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ float4 __ldcg(const float4 *ptr) { float4 ret; asm volatile ("ld.global.cg.v4.f32 {%0,%1,%2,%3}, [%4];" : "=f"(ret.x), "=f"(ret.y), "=f"(ret.z), "=f"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ double2 __ldcg(const double2 *ptr) { double2 ret; asm volatile ("ld.global.cg.v2.f64 {%0,%1}, [%2];" : "=d"(ret.x), "=d"(ret.y) : "l" (ptr)); return ret; } + + + + + + + +static __attribute__((device)) __inline__ long __ldca(const long *ptr) { unsigned long ret; asm volatile ("ld.global.ca.s64 %0, [%1];" : "=l"(ret) : "l" (ptr)); return (long)ret; } +static __attribute__((device)) __inline__ unsigned long __ldca(const unsigned long *ptr) { unsigned long ret; asm volatile ("ld.global.ca.u64 %0, [%1];" : "=l"(ret) : "l" (ptr)); return ret; } + + + + + + +static __attribute__((device)) __inline__ char __ldca(const char *ptr) { unsigned int ret; asm volatile ("ld.global.ca.s8 %0, [%1];" : "=r"(ret) : "l" (ptr)); return (char)ret; } +static __attribute__((device)) __inline__ signed char __ldca(const signed char *ptr) { unsigned int ret; asm volatile ("ld.global.ca.s8 %0, [%1];" : "=r"(ret) : "l" (ptr)); return (signed char)ret; } +static __attribute__((device)) __inline__ short __ldca(const short *ptr) { unsigned short ret; asm volatile ("ld.global.ca.s16 %0, [%1];" : "=h"(ret) : "l" (ptr)); return (short)ret; } +static __attribute__((device)) __inline__ int __ldca(const int *ptr) { unsigned int ret; asm volatile ("ld.global.ca.s32 %0, [%1];" : "=r"(ret) : "l" (ptr)); return (int)ret; } +static __attribute__((device)) __inline__ long long __ldca(const long long *ptr) { unsigned long long ret; asm volatile ("ld.global.ca.s64 %0, [%1];" : "=l"(ret) : "l" (ptr)); return (long long)ret; } +static __attribute__((device)) __inline__ char2 __ldca(const char2 *ptr) { char2 ret; int2 tmp; asm volatile ("ld.global.ca.v2.s8 {%0,%1}, [%2];" : "=r"(tmp.x), "=r"(tmp.y) : "l" (ptr)); ret.x = (char)tmp.x; ret.y = (char)tmp.y; return ret; } +static __attribute__((device)) __inline__ char4 __ldca(const char4 *ptr) { char4 ret; int4 tmp; asm volatile ("ld.global.ca.v4.s8 {%0,%1,%2,%3}, [%4];" : "=r"(tmp.x), "=r"(tmp.y), "=r"(tmp.z), "=r"(tmp.w) : "l" (ptr)); ret.x = (char)tmp.x; ret.y = (char)tmp.y; ret.z = (char)tmp.z; ret.w = (char)tmp.w; return ret; } +static __attribute__((device)) __inline__ short2 __ldca(const short2 *ptr) { short2 ret; asm volatile ("ld.global.ca.v2.s16 {%0,%1}, [%2];" : "=h"(ret.x), "=h"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ short4 __ldca(const short4 *ptr) { short4 ret; asm volatile ("ld.global.ca.v4.s16 {%0,%1,%2,%3}, [%4];" : "=h"(ret.x), "=h"(ret.y), "=h"(ret.z), "=h"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ int2 __ldca(const int2 *ptr) { int2 ret; asm volatile ("ld.global.ca.v2.s32 {%0,%1}, [%2];" : "=r"(ret.x), "=r"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ int4 __ldca(const int4 *ptr) { int4 ret; asm volatile ("ld.global.ca.v4.s32 {%0,%1,%2,%3}, [%4];" : "=r"(ret.x), "=r"(ret.y), "=r"(ret.z), "=r"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ longlong2 __ldca(const longlong2 *ptr) { longlong2 ret; asm volatile ("ld.global.ca.v2.s64 {%0,%1}, [%2];" : "=l"(ret.x), "=l"(ret.y) : "l" (ptr)); return ret; } + +static __attribute__((device)) __inline__ unsigned char __ldca(const unsigned char *ptr) { unsigned int ret; asm volatile ("ld.global.ca.u8 %0, [%1];" : "=r"(ret) : "l" (ptr)); return (unsigned char)ret; } +static __attribute__((device)) __inline__ unsigned short __ldca(const unsigned short *ptr) { unsigned short ret; asm volatile ("ld.global.ca.u16 %0, [%1];" : "=h"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ unsigned int __ldca(const unsigned int *ptr) { unsigned int ret; asm volatile ("ld.global.ca.u32 %0, [%1];" : "=r"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ unsigned long long __ldca(const unsigned long long *ptr) { unsigned long long ret; asm volatile ("ld.global.ca.u64 %0, [%1];" : "=l"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ uchar2 __ldca(const uchar2 *ptr) { uchar2 ret; uint2 tmp; asm volatile ("ld.global.ca.v2.u8 {%0,%1}, [%2];" : "=r"(tmp.x), "=r"(tmp.y) : "l" (ptr)); ret.x = (unsigned char)tmp.x; ret.y = (unsigned char)tmp.y; return ret; } +static __attribute__((device)) __inline__ uchar4 __ldca(const uchar4 *ptr) { uchar4 ret; uint4 tmp; asm volatile ("ld.global.ca.v4.u8 {%0,%1,%2,%3}, [%4];" : "=r"(tmp.x), "=r"(tmp.y), "=r"(tmp.z), "=r"(tmp.w) : "l" (ptr)); ret.x = (unsigned char)tmp.x; ret.y = (unsigned char)tmp.y; ret.z = (unsigned char)tmp.z; ret.w = (unsigned char)tmp.w; return ret; } +static __attribute__((device)) __inline__ ushort2 __ldca(const ushort2 *ptr) { ushort2 ret; asm volatile ("ld.global.ca.v2.u16 {%0,%1}, [%2];" : "=h"(ret.x), "=h"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ ushort4 __ldca(const ushort4 *ptr) { ushort4 ret; asm volatile ("ld.global.ca.v4.u16 {%0,%1,%2,%3}, [%4];" : "=h"(ret.x), "=h"(ret.y), "=h"(ret.z), "=h"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ uint2 __ldca(const uint2 *ptr) { uint2 ret; asm volatile ("ld.global.ca.v2.u32 {%0,%1}, [%2];" : "=r"(ret.x), "=r"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ uint4 __ldca(const uint4 *ptr) { uint4 ret; asm volatile ("ld.global.ca.v4.u32 {%0,%1,%2,%3}, [%4];" : "=r"(ret.x), "=r"(ret.y), "=r"(ret.z), "=r"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ ulonglong2 __ldca(const ulonglong2 *ptr) { ulonglong2 ret; asm volatile ("ld.global.ca.v2.u64 {%0,%1}, [%2];" : "=l"(ret.x), "=l"(ret.y) : "l" (ptr)); return ret; } + +static __attribute__((device)) __inline__ float __ldca(const float *ptr) { float ret; asm volatile ("ld.global.ca.f32 %0, [%1];" : "=f"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ double __ldca(const double *ptr) { double ret; asm volatile ("ld.global.ca.f64 %0, [%1];" : "=d"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ float2 __ldca(const float2 *ptr) { float2 ret; asm volatile ("ld.global.ca.v2.f32 {%0,%1}, [%2];" : "=f"(ret.x), "=f"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ float4 __ldca(const float4 *ptr) { float4 ret; asm volatile ("ld.global.ca.v4.f32 {%0,%1,%2,%3}, [%4];" : "=f"(ret.x), "=f"(ret.y), "=f"(ret.z), "=f"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ double2 __ldca(const double2 *ptr) { double2 ret; asm volatile ("ld.global.ca.v2.f64 {%0,%1}, [%2];" : "=d"(ret.x), "=d"(ret.y) : "l" (ptr)); return ret; } + + + + + + + +static __attribute__((device)) __inline__ long __ldcs(const long *ptr) { unsigned long ret; asm volatile ("ld.global.cs.s64 %0, [%1];" : "=l"(ret) : "l" (ptr)); return (long)ret; } +static __attribute__((device)) __inline__ unsigned long __ldcs(const unsigned long *ptr) { unsigned long ret; asm volatile ("ld.global.cs.u64 %0, [%1];" : "=l"(ret) : "l" (ptr)); return ret; } + + + + + + +static __attribute__((device)) __inline__ char __ldcs(const char *ptr) { unsigned int ret; asm volatile ("ld.global.cs.s8 %0, [%1];" : "=r"(ret) : "l" (ptr)); return (char)ret; } +static __attribute__((device)) __inline__ signed char __ldcs(const signed char *ptr) { unsigned int ret; asm volatile ("ld.global.cs.s8 %0, [%1];" : "=r"(ret) : "l" (ptr)); return (signed char)ret; } +static __attribute__((device)) __inline__ short __ldcs(const short *ptr) { unsigned short ret; asm volatile ("ld.global.cs.s16 %0, [%1];" : "=h"(ret) : "l" (ptr)); return (short)ret; } +static __attribute__((device)) __inline__ int __ldcs(const int *ptr) { unsigned int ret; asm volatile ("ld.global.cs.s32 %0, [%1];" : "=r"(ret) : "l" (ptr)); return (int)ret; } +static __attribute__((device)) __inline__ long long __ldcs(const long long *ptr) { unsigned long long ret; asm volatile ("ld.global.cs.s64 %0, [%1];" : "=l"(ret) : "l" (ptr)); return (long long)ret; } +static __attribute__((device)) __inline__ char2 __ldcs(const char2 *ptr) { char2 ret; int2 tmp; asm volatile ("ld.global.cs.v2.s8 {%0,%1}, [%2];" : "=r"(tmp.x), "=r"(tmp.y) : "l" (ptr)); ret.x = (char)tmp.x; ret.y = (char)tmp.y; return ret; } +static __attribute__((device)) __inline__ char4 __ldcs(const char4 *ptr) { char4 ret; int4 tmp; asm volatile ("ld.global.cs.v4.s8 {%0,%1,%2,%3}, [%4];" : "=r"(tmp.x), "=r"(tmp.y), "=r"(tmp.z), "=r"(tmp.w) : "l" (ptr)); ret.x = (char)tmp.x; ret.y = (char)tmp.y; ret.z = (char)tmp.z; ret.w = (char)tmp.w; return ret; } +static __attribute__((device)) __inline__ short2 __ldcs(const short2 *ptr) { short2 ret; asm volatile ("ld.global.cs.v2.s16 {%0,%1}, [%2];" : "=h"(ret.x), "=h"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ short4 __ldcs(const short4 *ptr) { short4 ret; asm volatile ("ld.global.cs.v4.s16 {%0,%1,%2,%3}, [%4];" : "=h"(ret.x), "=h"(ret.y), "=h"(ret.z), "=h"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ int2 __ldcs(const int2 *ptr) { int2 ret; asm volatile ("ld.global.cs.v2.s32 {%0,%1}, [%2];" : "=r"(ret.x), "=r"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ int4 __ldcs(const int4 *ptr) { int4 ret; asm volatile ("ld.global.cs.v4.s32 {%0,%1,%2,%3}, [%4];" : "=r"(ret.x), "=r"(ret.y), "=r"(ret.z), "=r"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ longlong2 __ldcs(const longlong2 *ptr) { longlong2 ret; asm volatile ("ld.global.cs.v2.s64 {%0,%1}, [%2];" : "=l"(ret.x), "=l"(ret.y) : "l" (ptr)); return ret; } + +static __attribute__((device)) __inline__ unsigned char __ldcs(const unsigned char *ptr) { unsigned int ret; asm volatile ("ld.global.cs.u8 %0, [%1];" : "=r"(ret) : "l" (ptr)); return (unsigned char)ret; } +static __attribute__((device)) __inline__ unsigned short __ldcs(const unsigned short *ptr) { unsigned short ret; asm volatile ("ld.global.cs.u16 %0, [%1];" : "=h"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ unsigned int __ldcs(const unsigned int *ptr) { unsigned int ret; asm volatile ("ld.global.cs.u32 %0, [%1];" : "=r"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ unsigned long long __ldcs(const unsigned long long *ptr) { unsigned long long ret; asm volatile ("ld.global.cs.u64 %0, [%1];" : "=l"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ uchar2 __ldcs(const uchar2 *ptr) { uchar2 ret; uint2 tmp; asm volatile ("ld.global.cs.v2.u8 {%0,%1}, [%2];" : "=r"(tmp.x), "=r"(tmp.y) : "l" (ptr)); ret.x = (unsigned char)tmp.x; ret.y = (unsigned char)tmp.y; return ret; } +static __attribute__((device)) __inline__ uchar4 __ldcs(const uchar4 *ptr) { uchar4 ret; uint4 tmp; asm volatile ("ld.global.cs.v4.u8 {%0,%1,%2,%3}, [%4];" : "=r"(tmp.x), "=r"(tmp.y), "=r"(tmp.z), "=r"(tmp.w) : "l" (ptr)); ret.x = (unsigned char)tmp.x; ret.y = (unsigned char)tmp.y; ret.z = (unsigned char)tmp.z; ret.w = (unsigned char)tmp.w; return ret; } +static __attribute__((device)) __inline__ ushort2 __ldcs(const ushort2 *ptr) { ushort2 ret; asm volatile ("ld.global.cs.v2.u16 {%0,%1}, [%2];" : "=h"(ret.x), "=h"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ ushort4 __ldcs(const ushort4 *ptr) { ushort4 ret; asm volatile ("ld.global.cs.v4.u16 {%0,%1,%2,%3}, [%4];" : "=h"(ret.x), "=h"(ret.y), "=h"(ret.z), "=h"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ uint2 __ldcs(const uint2 *ptr) { uint2 ret; asm volatile ("ld.global.cs.v2.u32 {%0,%1}, [%2];" : "=r"(ret.x), "=r"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ uint4 __ldcs(const uint4 *ptr) { uint4 ret; asm volatile ("ld.global.cs.v4.u32 {%0,%1,%2,%3}, [%4];" : "=r"(ret.x), "=r"(ret.y), "=r"(ret.z), "=r"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ ulonglong2 __ldcs(const ulonglong2 *ptr) { ulonglong2 ret; asm volatile ("ld.global.cs.v2.u64 {%0,%1}, [%2];" : "=l"(ret.x), "=l"(ret.y) : "l" (ptr)); return ret; } + +static __attribute__((device)) __inline__ float __ldcs(const float *ptr) { float ret; asm volatile ("ld.global.cs.f32 %0, [%1];" : "=f"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ double __ldcs(const double *ptr) { double ret; asm volatile ("ld.global.cs.f64 %0, [%1];" : "=d"(ret) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ float2 __ldcs(const float2 *ptr) { float2 ret; asm volatile ("ld.global.cs.v2.f32 {%0,%1}, [%2];" : "=f"(ret.x), "=f"(ret.y) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ float4 __ldcs(const float4 *ptr) { float4 ret; asm volatile ("ld.global.cs.v4.f32 {%0,%1,%2,%3}, [%4];" : "=f"(ret.x), "=f"(ret.y), "=f"(ret.z), "=f"(ret.w) : "l" (ptr)); return ret; } +static __attribute__((device)) __inline__ double2 __ldcs(const double2 *ptr) { double2 ret; asm volatile ("ld.global.cs.v2.f64 {%0,%1}, [%2];" : "=d"(ret.x), "=d"(ret.y) : "l" (ptr)); return ret; } + + + + + + + +static __attribute__((device)) __inline__ long __ldlu(const long *ptr) { unsigned long ret; asm ("ld.global.lu.s64 %0, [%1];" : "=l"(ret) : "l" (ptr) : "memory"); return (long)ret; } +static __attribute__((device)) __inline__ unsigned long __ldlu(const unsigned long *ptr) { unsigned long ret; asm ("ld.global.lu.u64 %0, [%1];" : "=l"(ret) : "l" (ptr) : "memory"); return ret; } + + + + + + +static __attribute__((device)) __inline__ char __ldlu(const char *ptr) { unsigned int ret; asm ("ld.global.lu.s8 %0, [%1];" : "=r"(ret) : "l" (ptr) : "memory"); return (char)ret; } +static __attribute__((device)) __inline__ signed char __ldlu(const signed char *ptr) { unsigned int ret; asm ("ld.global.lu.s8 %0, [%1];" : "=r"(ret) : "l" (ptr) : "memory"); return (signed char)ret; } +static __attribute__((device)) __inline__ short __ldlu(const short *ptr) { unsigned short ret; asm ("ld.global.lu.s16 %0, [%1];" : "=h"(ret) : "l" (ptr) : "memory"); return (short)ret; } +static __attribute__((device)) __inline__ int __ldlu(const int *ptr) { unsigned int ret; asm ("ld.global.lu.s32 %0, [%1];" : "=r"(ret) : "l" (ptr) : "memory"); return (int)ret; } +static __attribute__((device)) __inline__ long long __ldlu(const long long *ptr) { unsigned long long ret; asm ("ld.global.lu.s64 %0, [%1];" : "=l"(ret) : "l" (ptr) : "memory"); return (long long)ret; } +static __attribute__((device)) __inline__ char2 __ldlu(const char2 *ptr) { char2 ret; int2 tmp; asm ("ld.global.lu.v2.s8 {%0,%1}, [%2];" : "=r"(tmp.x), "=r"(tmp.y) : "l" (ptr) : "memory"); ret.x = (char)tmp.x; ret.y = (char)tmp.y; return ret; } +static __attribute__((device)) __inline__ char4 __ldlu(const char4 *ptr) { char4 ret; int4 tmp; asm ("ld.global.lu.v4.s8 {%0,%1,%2,%3}, [%4];" : "=r"(tmp.x), "=r"(tmp.y), "=r"(tmp.z), "=r"(tmp.w) : "l" (ptr) : "memory"); ret.x = (char)tmp.x; ret.y = (char)tmp.y; ret.z = (char)tmp.z; ret.w = (char)tmp.w; return ret; } +static __attribute__((device)) __inline__ short2 __ldlu(const short2 *ptr) { short2 ret; asm ("ld.global.lu.v2.s16 {%0,%1}, [%2];" : "=h"(ret.x), "=h"(ret.y) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ short4 __ldlu(const short4 *ptr) { short4 ret; asm ("ld.global.lu.v4.s16 {%0,%1,%2,%3}, [%4];" : "=h"(ret.x), "=h"(ret.y), "=h"(ret.z), "=h"(ret.w) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ int2 __ldlu(const int2 *ptr) { int2 ret; asm ("ld.global.lu.v2.s32 {%0,%1}, [%2];" : "=r"(ret.x), "=r"(ret.y) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ int4 __ldlu(const int4 *ptr) { int4 ret; asm ("ld.global.lu.v4.s32 {%0,%1,%2,%3}, [%4];" : "=r"(ret.x), "=r"(ret.y), "=r"(ret.z), "=r"(ret.w) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ longlong2 __ldlu(const longlong2 *ptr) { longlong2 ret; asm ("ld.global.lu.v2.s64 {%0,%1}, [%2];" : "=l"(ret.x), "=l"(ret.y) : "l" (ptr) : "memory"); return ret; } + +static __attribute__((device)) __inline__ unsigned char __ldlu(const unsigned char *ptr) { unsigned int ret; asm ("ld.global.lu.u8 %0, [%1];" : "=r"(ret) : "l" (ptr) : "memory"); return (unsigned char)ret; } +static __attribute__((device)) __inline__ unsigned short __ldlu(const unsigned short *ptr) { unsigned short ret; asm ("ld.global.lu.u16 %0, [%1];" : "=h"(ret) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ unsigned int __ldlu(const unsigned int *ptr) { unsigned int ret; asm ("ld.global.lu.u32 %0, [%1];" : "=r"(ret) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ unsigned long long __ldlu(const unsigned long long *ptr) { unsigned long long ret; asm ("ld.global.lu.u64 %0, [%1];" : "=l"(ret) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ uchar2 __ldlu(const uchar2 *ptr) { uchar2 ret; uint2 tmp; asm ("ld.global.lu.v2.u8 {%0,%1}, [%2];" : "=r"(tmp.x), "=r"(tmp.y) : "l" (ptr) : "memory"); ret.x = (unsigned char)tmp.x; ret.y = (unsigned char)tmp.y; return ret; } +static __attribute__((device)) __inline__ uchar4 __ldlu(const uchar4 *ptr) { uchar4 ret; uint4 tmp; asm ("ld.global.lu.v4.u8 {%0,%1,%2,%3}, [%4];" : "=r"(tmp.x), "=r"(tmp.y), "=r"(tmp.z), "=r"(tmp.w) : "l" (ptr) : "memory"); ret.x = (unsigned char)tmp.x; ret.y = (unsigned char)tmp.y; ret.z = (unsigned char)tmp.z; ret.w = (unsigned char)tmp.w; return ret; } +static __attribute__((device)) __inline__ ushort2 __ldlu(const ushort2 *ptr) { ushort2 ret; asm ("ld.global.lu.v2.u16 {%0,%1}, [%2];" : "=h"(ret.x), "=h"(ret.y) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ ushort4 __ldlu(const ushort4 *ptr) { ushort4 ret; asm ("ld.global.lu.v4.u16 {%0,%1,%2,%3}, [%4];" : "=h"(ret.x), "=h"(ret.y), "=h"(ret.z), "=h"(ret.w) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ uint2 __ldlu(const uint2 *ptr) { uint2 ret; asm ("ld.global.lu.v2.u32 {%0,%1}, [%2];" : "=r"(ret.x), "=r"(ret.y) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ uint4 __ldlu(const uint4 *ptr) { uint4 ret; asm ("ld.global.lu.v4.u32 {%0,%1,%2,%3}, [%4];" : "=r"(ret.x), "=r"(ret.y), "=r"(ret.z), "=r"(ret.w) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ ulonglong2 __ldlu(const ulonglong2 *ptr) { ulonglong2 ret; asm ("ld.global.lu.v2.u64 {%0,%1}, [%2];" : "=l"(ret.x), "=l"(ret.y) : "l" (ptr) : "memory"); return ret; } + +static __attribute__((device)) __inline__ float __ldlu(const float *ptr) { float ret; asm ("ld.global.lu.f32 %0, [%1];" : "=f"(ret) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ double __ldlu(const double *ptr) { double ret; asm ("ld.global.lu.f64 %0, [%1];" : "=d"(ret) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ float2 __ldlu(const float2 *ptr) { float2 ret; asm ("ld.global.lu.v2.f32 {%0,%1}, [%2];" : "=f"(ret.x), "=f"(ret.y) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ float4 __ldlu(const float4 *ptr) { float4 ret; asm ("ld.global.lu.v4.f32 {%0,%1,%2,%3}, [%4];" : "=f"(ret.x), "=f"(ret.y), "=f"(ret.z), "=f"(ret.w) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ double2 __ldlu(const double2 *ptr) { double2 ret; asm ("ld.global.lu.v2.f64 {%0,%1}, [%2];" : "=d"(ret.x), "=d"(ret.y) : "l" (ptr) : "memory"); return ret; } + + + + + + + +static __attribute__((device)) __inline__ long __ldcv(const long *ptr) { unsigned long ret; asm ("ld.global.cv.s64 %0, [%1];" : "=l"(ret) : "l" (ptr) : "memory"); return (long)ret; } +static __attribute__((device)) __inline__ unsigned long __ldcv(const unsigned long *ptr) { unsigned long ret; asm ("ld.global.cv.u64 %0, [%1];" : "=l"(ret) : "l" (ptr) : "memory"); return ret; } + + + + + + +static __attribute__((device)) __inline__ char __ldcv(const char *ptr) { unsigned int ret; asm ("ld.global.cv.s8 %0, [%1];" : "=r"(ret) : "l" (ptr) : "memory"); return (char)ret; } +static __attribute__((device)) __inline__ signed char __ldcv(const signed char *ptr) { unsigned int ret; asm ("ld.global.cv.s8 %0, [%1];" : "=r"(ret) : "l" (ptr) : "memory"); return (signed char)ret; } +static __attribute__((device)) __inline__ short __ldcv(const short *ptr) { unsigned short ret; asm ("ld.global.cv.s16 %0, [%1];" : "=h"(ret) : "l" (ptr) : "memory"); return (short)ret; } +static __attribute__((device)) __inline__ int __ldcv(const int *ptr) { unsigned int ret; asm ("ld.global.cv.s32 %0, [%1];" : "=r"(ret) : "l" (ptr) : "memory"); return (int)ret; } +static __attribute__((device)) __inline__ long long __ldcv(const long long *ptr) { unsigned long long ret; asm ("ld.global.cv.s64 %0, [%1];" : "=l"(ret) : "l" (ptr) : "memory"); return (long long)ret; } +static __attribute__((device)) __inline__ char2 __ldcv(const char2 *ptr) { char2 ret; int2 tmp; asm ("ld.global.cv.v2.s8 {%0,%1}, [%2];" : "=r"(tmp.x), "=r"(tmp.y) : "l" (ptr) : "memory"); ret.x = (char)tmp.x; ret.y = (char)tmp.y; return ret; } +static __attribute__((device)) __inline__ char4 __ldcv(const char4 *ptr) { char4 ret; int4 tmp; asm ("ld.global.cv.v4.s8 {%0,%1,%2,%3}, [%4];" : "=r"(tmp.x), "=r"(tmp.y), "=r"(tmp.z), "=r"(tmp.w) : "l" (ptr) : "memory"); ret.x = (char)tmp.x; ret.y = (char)tmp.y; ret.z = (char)tmp.z; ret.w = (char)tmp.w; return ret; } +static __attribute__((device)) __inline__ short2 __ldcv(const short2 *ptr) { short2 ret; asm ("ld.global.cv.v2.s16 {%0,%1}, [%2];" : "=h"(ret.x), "=h"(ret.y) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ short4 __ldcv(const short4 *ptr) { short4 ret; asm ("ld.global.cv.v4.s16 {%0,%1,%2,%3}, [%4];" : "=h"(ret.x), "=h"(ret.y), "=h"(ret.z), "=h"(ret.w) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ int2 __ldcv(const int2 *ptr) { int2 ret; asm ("ld.global.cv.v2.s32 {%0,%1}, [%2];" : "=r"(ret.x), "=r"(ret.y) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ int4 __ldcv(const int4 *ptr) { int4 ret; asm ("ld.global.cv.v4.s32 {%0,%1,%2,%3}, [%4];" : "=r"(ret.x), "=r"(ret.y), "=r"(ret.z), "=r"(ret.w) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ longlong2 __ldcv(const longlong2 *ptr) { longlong2 ret; asm ("ld.global.cv.v2.s64 {%0,%1}, [%2];" : "=l"(ret.x), "=l"(ret.y) : "l" (ptr) : "memory"); return ret; } + +static __attribute__((device)) __inline__ unsigned char __ldcv(const unsigned char *ptr) { unsigned int ret; asm ("ld.global.cv.u8 %0, [%1];" : "=r"(ret) : "l" (ptr) : "memory"); return (unsigned char)ret; } +static __attribute__((device)) __inline__ unsigned short __ldcv(const unsigned short *ptr) { unsigned short ret; asm ("ld.global.cv.u16 %0, [%1];" : "=h"(ret) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ unsigned int __ldcv(const unsigned int *ptr) { unsigned int ret; asm ("ld.global.cv.u32 %0, [%1];" : "=r"(ret) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ unsigned long long __ldcv(const unsigned long long *ptr) { unsigned long long ret; asm ("ld.global.cv.u64 %0, [%1];" : "=l"(ret) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ uchar2 __ldcv(const uchar2 *ptr) { uchar2 ret; uint2 tmp; asm ("ld.global.cv.v2.u8 {%0,%1}, [%2];" : "=r"(tmp.x), "=r"(tmp.y) : "l" (ptr) : "memory"); ret.x = (unsigned char)tmp.x; ret.y = (unsigned char)tmp.y; return ret; } +static __attribute__((device)) __inline__ uchar4 __ldcv(const uchar4 *ptr) { uchar4 ret; uint4 tmp; asm ("ld.global.cv.v4.u8 {%0,%1,%2,%3}, [%4];" : "=r"(tmp.x), "=r"(tmp.y), "=r"(tmp.z), "=r"(tmp.w) : "l" (ptr) : "memory"); ret.x = (unsigned char)tmp.x; ret.y = (unsigned char)tmp.y; ret.z = (unsigned char)tmp.z; ret.w = (unsigned char)tmp.w; return ret; } +static __attribute__((device)) __inline__ ushort2 __ldcv(const ushort2 *ptr) { ushort2 ret; asm ("ld.global.cv.v2.u16 {%0,%1}, [%2];" : "=h"(ret.x), "=h"(ret.y) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ ushort4 __ldcv(const ushort4 *ptr) { ushort4 ret; asm ("ld.global.cv.v4.u16 {%0,%1,%2,%3}, [%4];" : "=h"(ret.x), "=h"(ret.y), "=h"(ret.z), "=h"(ret.w) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ uint2 __ldcv(const uint2 *ptr) { uint2 ret; asm ("ld.global.cv.v2.u32 {%0,%1}, [%2];" : "=r"(ret.x), "=r"(ret.y) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ uint4 __ldcv(const uint4 *ptr) { uint4 ret; asm ("ld.global.cv.v4.u32 {%0,%1,%2,%3}, [%4];" : "=r"(ret.x), "=r"(ret.y), "=r"(ret.z), "=r"(ret.w) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ ulonglong2 __ldcv(const ulonglong2 *ptr) { ulonglong2 ret; asm ("ld.global.cv.v2.u64 {%0,%1}, [%2];" : "=l"(ret.x), "=l"(ret.y) : "l" (ptr) : "memory"); return ret; } + +static __attribute__((device)) __inline__ float __ldcv(const float *ptr) { float ret; asm ("ld.global.cv.f32 %0, [%1];" : "=f"(ret) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ double __ldcv(const double *ptr) { double ret; asm ("ld.global.cv.f64 %0, [%1];" : "=d"(ret) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ float2 __ldcv(const float2 *ptr) { float2 ret; asm ("ld.global.cv.v2.f32 {%0,%1}, [%2];" : "=f"(ret.x), "=f"(ret.y) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ float4 __ldcv(const float4 *ptr) { float4 ret; asm ("ld.global.cv.v4.f32 {%0,%1,%2,%3}, [%4];" : "=f"(ret.x), "=f"(ret.y), "=f"(ret.z), "=f"(ret.w) : "l" (ptr) : "memory"); return ret; } +static __attribute__((device)) __inline__ double2 __ldcv(const double2 *ptr) { double2 ret; asm ("ld.global.cv.v2.f64 {%0,%1}, [%2];" : "=d"(ret.x), "=d"(ret.y) : "l" (ptr) : "memory"); return ret; } + + + + + + + +static __attribute__((device)) __inline__ void __stwb(long *ptr, long value) { asm ("st.global.wb.s64 [%0], %1;" :: "l" (ptr), "l"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(unsigned long *ptr, unsigned long value) { asm ("st.global.wb.u64 [%0], %1;" :: "l" (ptr), "l"(value) : "memory"); } + + + + + + +static __attribute__((device)) __inline__ void __stwb(char *ptr, char value) { asm ("st.global.wb.s8 [%0], %1;" :: "l" (ptr), "r"((int)value) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(signed char *ptr, signed char value) { asm ("st.global.wb.s8 [%0], %1;" :: "l" (ptr), "r"((int)value) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(short *ptr, short value) { asm ("st.global.wb.s16 [%0], %1;" :: "l" (ptr), "h"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(int *ptr, int value) { asm ("st.global.wb.s32 [%0], %1;" :: "l" (ptr), "r"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(long long *ptr, long long value) { asm ("st.global.wb.s64 [%0], %1;" :: "l" (ptr), "l"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(char2 *ptr, char2 value) { const int x = value.x, y = value.y; asm ("st.global.wb.v2.s8 [%0], {%1,%2};" :: "l" (ptr), "r"(x), "r"(y) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(char4 *ptr, char4 value) { const int x = value.x, y = value.y, z = value.z, w = value.w; asm ("st.global.wb.v4.s8 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "r"(x), "r"(y), "r"(z), "r"(w) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(short2 *ptr, short2 value) { asm ("st.global.wb.v2.s16 [%0], {%1,%2};" :: "l" (ptr), "h"(value.x), "h"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(short4 *ptr, short4 value) { asm ("st.global.wb.v4.s16 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "h"(value.x), "h"(value.y), "h"(value.z), "h"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(int2 *ptr, int2 value) { asm ("st.global.wb.v2.s32 [%0], {%1,%2};" :: "l" (ptr), "r"(value.x), "r"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(int4 *ptr, int4 value) { asm ("st.global.wb.v4.s32 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "r"(value.x), "r"(value.y), "r"(value.z), "r"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(longlong2 *ptr, longlong2 value) { asm ("st.global.wb.v2.s64 [%0], {%1,%2};" :: "l" (ptr), "l"(value.x), "l"(value.y) : "memory"); } + +static __attribute__((device)) __inline__ void __stwb(unsigned char *ptr, unsigned char value) { asm ("st.global.wb.u8 [%0], %1;" :: "l" (ptr), "r"((int)value) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(unsigned short *ptr, unsigned short value) { asm ("st.global.wb.u16 [%0], %1;" :: "l" (ptr), "h"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(unsigned int *ptr, unsigned int value) { asm ("st.global.wb.u32 [%0], %1;" :: "l" (ptr), "r"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(unsigned long long *ptr, unsigned long long value) { asm ("st.global.wb.u64 [%0], %1;" :: "l" (ptr), "l"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(uchar2 *ptr, uchar2 value) { const int x = value.x, y = value.y; asm ("st.global.wb.v2.u8 [%0], {%1,%2};" :: "l" (ptr), "r"(x), "r"(y) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(uchar4 *ptr, uchar4 value) { const int x = value.x, y = value.y, z = value.z, w = value.w; asm ("st.global.wb.v4.u8 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "r"(x), "r"(y), "r"(z), "r"(w) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(ushort2 *ptr, ushort2 value) { asm ("st.global.wb.v2.u16 [%0], {%1,%2};" :: "l" (ptr), "h"(value.x), "h"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(ushort4 *ptr, ushort4 value) { asm ("st.global.wb.v4.u16 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "h"(value.x), "h"(value.y), "h"(value.z), "h"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(uint2 *ptr, uint2 value) { asm ("st.global.wb.v2.u32 [%0], {%1,%2};" :: "l" (ptr), "r"(value.x), "r"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(uint4 *ptr, uint4 value) { asm ("st.global.wb.v4.u32 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "r"(value.x), "r"(value.y), "r"(value.z), "r"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(ulonglong2 *ptr, ulonglong2 value) { asm ("st.global.wb.v2.u64 [%0], {%1,%2};" :: "l" (ptr), "l"(value.x), "l"(value.y) : "memory"); } + +static __attribute__((device)) __inline__ void __stwb(float *ptr, float value) { asm ("st.global.wb.f32 [%0], %1;" :: "l" (ptr), "f"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(double *ptr, double value) { asm ("st.global.wb.f64 [%0], %1;" :: "l" (ptr), "d"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(float2 *ptr, float2 value) { asm ("st.global.wb.v2.f32 [%0], {%1,%2};" :: "l" (ptr), "f"(value.x), "f"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(float4 *ptr, float4 value) { asm ("st.global.wb.v4.f32 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "f"(value.x), "f"(value.y), "f"(value.z), "f"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stwb(double2 *ptr, double2 value) { asm ("st.global.wb.v2.f64 [%0], {%1,%2};" :: "l" (ptr), "d"(value.x), "d"(value.y) : "memory"); } + + + + + + + +static __attribute__((device)) __inline__ void __stcg(long *ptr, long value) { asm ("st.global.cg.s64 [%0], %1;" :: "l" (ptr), "l"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(unsigned long *ptr, unsigned long value) { asm ("st.global.cg.u64 [%0], %1;" :: "l" (ptr), "l"(value) : "memory"); } + + + + + + +static __attribute__((device)) __inline__ void __stcg(char *ptr, char value) { asm ("st.global.cg.s8 [%0], %1;" :: "l" (ptr), "r"((int)value) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(signed char *ptr, signed char value) { asm ("st.global.cg.s8 [%0], %1;" :: "l" (ptr), "r"((int)value) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(short *ptr, short value) { asm ("st.global.cg.s16 [%0], %1;" :: "l" (ptr), "h"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(int *ptr, int value) { asm ("st.global.cg.s32 [%0], %1;" :: "l" (ptr), "r"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(long long *ptr, long long value) { asm ("st.global.cg.s64 [%0], %1;" :: "l" (ptr), "l"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(char2 *ptr, char2 value) { const int x = value.x, y = value.y; asm ("st.global.cg.v2.s8 [%0], {%1,%2};" :: "l" (ptr), "r"(x), "r"(y) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(char4 *ptr, char4 value) { const int x = value.x, y = value.y, z = value.z, w = value.w; asm ("st.global.cg.v4.s8 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "r"(x), "r"(y), "r"(z), "r"(w) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(short2 *ptr, short2 value) { asm ("st.global.cg.v2.s16 [%0], {%1,%2};" :: "l" (ptr), "h"(value.x), "h"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(short4 *ptr, short4 value) { asm ("st.global.cg.v4.s16 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "h"(value.x), "h"(value.y), "h"(value.z), "h"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(int2 *ptr, int2 value) { asm ("st.global.cg.v2.s32 [%0], {%1,%2};" :: "l" (ptr), "r"(value.x), "r"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(int4 *ptr, int4 value) { asm ("st.global.cg.v4.s32 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "r"(value.x), "r"(value.y), "r"(value.z), "r"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(longlong2 *ptr, longlong2 value) { asm ("st.global.cg.v2.s64 [%0], {%1,%2};" :: "l" (ptr), "l"(value.x), "l"(value.y) : "memory"); } + +static __attribute__((device)) __inline__ void __stcg(unsigned char *ptr, unsigned char value) { asm ("st.global.cg.u8 [%0], %1;" :: "l" (ptr), "r"((int)value) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(unsigned short *ptr, unsigned short value) { asm ("st.global.cg.u16 [%0], %1;" :: "l" (ptr), "h"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(unsigned int *ptr, unsigned int value) { asm ("st.global.cg.u32 [%0], %1;" :: "l" (ptr), "r"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(unsigned long long *ptr, unsigned long long value) { asm ("st.global.cg.u64 [%0], %1;" :: "l" (ptr), "l"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(uchar2 *ptr, uchar2 value) { const int x = value.x, y = value.y; asm ("st.global.cg.v2.u8 [%0], {%1,%2};" :: "l" (ptr), "r"(x), "r"(y) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(uchar4 *ptr, uchar4 value) { const int x = value.x, y = value.y, z = value.z, w = value.w; asm ("st.global.cg.v4.u8 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "r"(x), "r"(y), "r"(z), "r"(w) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(ushort2 *ptr, ushort2 value) { asm ("st.global.cg.v2.u16 [%0], {%1,%2};" :: "l" (ptr), "h"(value.x), "h"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(ushort4 *ptr, ushort4 value) { asm ("st.global.cg.v4.u16 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "h"(value.x), "h"(value.y), "h"(value.z), "h"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(uint2 *ptr, uint2 value) { asm ("st.global.cg.v2.u32 [%0], {%1,%2};" :: "l" (ptr), "r"(value.x), "r"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(uint4 *ptr, uint4 value) { asm ("st.global.cg.v4.u32 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "r"(value.x), "r"(value.y), "r"(value.z), "r"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(ulonglong2 *ptr, ulonglong2 value) { asm ("st.global.cg.v2.u64 [%0], {%1,%2};" :: "l" (ptr), "l"(value.x), "l"(value.y) : "memory"); } + +static __attribute__((device)) __inline__ void __stcg(float *ptr, float value) { asm ("st.global.cg.f32 [%0], %1;" :: "l" (ptr), "f"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(double *ptr, double value) { asm ("st.global.cg.f64 [%0], %1;" :: "l" (ptr), "d"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(float2 *ptr, float2 value) { asm ("st.global.cg.v2.f32 [%0], {%1,%2};" :: "l" (ptr), "f"(value.x), "f"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(float4 *ptr, float4 value) { asm ("st.global.cg.v4.f32 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "f"(value.x), "f"(value.y), "f"(value.z), "f"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stcg(double2 *ptr, double2 value) { asm ("st.global.cg.v2.f64 [%0], {%1,%2};" :: "l" (ptr), "d"(value.x), "d"(value.y) : "memory"); } + + + + + + + +static __attribute__((device)) __inline__ void __stcs(long *ptr, long value) { asm ("st.global.cs.s64 [%0], %1;" :: "l" (ptr), "l"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(unsigned long *ptr, unsigned long value) { asm ("st.global.cs.u64 [%0], %1;" :: "l" (ptr), "l"(value) : "memory"); } + + + + + + +static __attribute__((device)) __inline__ void __stcs(char *ptr, char value) { asm ("st.global.cs.s8 [%0], %1;" :: "l" (ptr), "r"((int)value) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(signed char *ptr, signed char value) { asm ("st.global.cs.s8 [%0], %1;" :: "l" (ptr), "r"((int)value) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(short *ptr, short value) { asm ("st.global.cs.s16 [%0], %1;" :: "l" (ptr), "h"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(int *ptr, int value) { asm ("st.global.cs.s32 [%0], %1;" :: "l" (ptr), "r"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(long long *ptr, long long value) { asm ("st.global.cs.s64 [%0], %1;" :: "l" (ptr), "l"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(char2 *ptr, char2 value) { const int x = value.x, y = value.y; asm ("st.global.cs.v2.s8 [%0], {%1,%2};" :: "l" (ptr), "r"(x), "r"(y) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(char4 *ptr, char4 value) { const int x = value.x, y = value.y, z = value.z, w = value.w; asm ("st.global.cs.v4.s8 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "r"(x), "r"(y), "r"(z), "r"(w) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(short2 *ptr, short2 value) { asm ("st.global.cs.v2.s16 [%0], {%1,%2};" :: "l" (ptr), "h"(value.x), "h"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(short4 *ptr, short4 value) { asm ("st.global.cs.v4.s16 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "h"(value.x), "h"(value.y), "h"(value.z), "h"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(int2 *ptr, int2 value) { asm ("st.global.cs.v2.s32 [%0], {%1,%2};" :: "l" (ptr), "r"(value.x), "r"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(int4 *ptr, int4 value) { asm ("st.global.cs.v4.s32 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "r"(value.x), "r"(value.y), "r"(value.z), "r"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(longlong2 *ptr, longlong2 value) { asm ("st.global.cs.v2.s64 [%0], {%1,%2};" :: "l" (ptr), "l"(value.x), "l"(value.y) : "memory"); } + +static __attribute__((device)) __inline__ void __stcs(unsigned char *ptr, unsigned char value) { asm ("st.global.cs.u8 [%0], %1;" :: "l" (ptr), "r"((int)value) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(unsigned short *ptr, unsigned short value) { asm ("st.global.cs.u16 [%0], %1;" :: "l" (ptr), "h"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(unsigned int *ptr, unsigned int value) { asm ("st.global.cs.u32 [%0], %1;" :: "l" (ptr), "r"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(unsigned long long *ptr, unsigned long long value) { asm ("st.global.cs.u64 [%0], %1;" :: "l" (ptr), "l"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(uchar2 *ptr, uchar2 value) { const int x = value.x, y = value.y; asm ("st.global.cs.v2.u8 [%0], {%1,%2};" :: "l" (ptr), "r"(x), "r"(y) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(uchar4 *ptr, uchar4 value) { const int x = value.x, y = value.y, z = value.z, w = value.w; asm ("st.global.cs.v4.u8 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "r"(x), "r"(y), "r"(z), "r"(w) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(ushort2 *ptr, ushort2 value) { asm ("st.global.cs.v2.u16 [%0], {%1,%2};" :: "l" (ptr), "h"(value.x), "h"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(ushort4 *ptr, ushort4 value) { asm ("st.global.cs.v4.u16 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "h"(value.x), "h"(value.y), "h"(value.z), "h"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(uint2 *ptr, uint2 value) { asm ("st.global.cs.v2.u32 [%0], {%1,%2};" :: "l" (ptr), "r"(value.x), "r"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(uint4 *ptr, uint4 value) { asm ("st.global.cs.v4.u32 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "r"(value.x), "r"(value.y), "r"(value.z), "r"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(ulonglong2 *ptr, ulonglong2 value) { asm ("st.global.cs.v2.u64 [%0], {%1,%2};" :: "l" (ptr), "l"(value.x), "l"(value.y) : "memory"); } + +static __attribute__((device)) __inline__ void __stcs(float *ptr, float value) { asm ("st.global.cs.f32 [%0], %1;" :: "l" (ptr), "f"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(double *ptr, double value) { asm ("st.global.cs.f64 [%0], %1;" :: "l" (ptr), "d"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(float2 *ptr, float2 value) { asm ("st.global.cs.v2.f32 [%0], {%1,%2};" :: "l" (ptr), "f"(value.x), "f"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(float4 *ptr, float4 value) { asm ("st.global.cs.v4.f32 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "f"(value.x), "f"(value.y), "f"(value.z), "f"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stcs(double2 *ptr, double2 value) { asm ("st.global.cs.v2.f64 [%0], {%1,%2};" :: "l" (ptr), "d"(value.x), "d"(value.y) : "memory"); } + + + + + + + +static __attribute__((device)) __inline__ void __stwt(long *ptr, long value) { asm ("st.global.wt.s64 [%0], %1;" :: "l" (ptr), "l"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(unsigned long *ptr, unsigned long value) { asm ("st.global.wt.u64 [%0], %1;" :: "l" (ptr), "l"(value) : "memory"); } + + + + + + +static __attribute__((device)) __inline__ void __stwt(char *ptr, char value) { asm ("st.global.wt.s8 [%0], %1;" :: "l" (ptr), "r"((int)value) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(signed char *ptr, signed char value) { asm ("st.global.wt.s8 [%0], %1;" :: "l" (ptr), "r"((int)value) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(short *ptr, short value) { asm ("st.global.wt.s16 [%0], %1;" :: "l" (ptr), "h"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(int *ptr, int value) { asm ("st.global.wt.s32 [%0], %1;" :: "l" (ptr), "r"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(long long *ptr, long long value) { asm ("st.global.wt.s64 [%0], %1;" :: "l" (ptr), "l"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(char2 *ptr, char2 value) { const int x = value.x, y = value.y; asm ("st.global.wt.v2.s8 [%0], {%1,%2};" :: "l" (ptr), "r"(x), "r"(y) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(char4 *ptr, char4 value) { const int x = value.x, y = value.y, z = value.z, w = value.w; asm ("st.global.wt.v4.s8 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "r"(x), "r"(y), "r"(z), "r"(w) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(short2 *ptr, short2 value) { asm ("st.global.wt.v2.s16 [%0], {%1,%2};" :: "l" (ptr), "h"(value.x), "h"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(short4 *ptr, short4 value) { asm ("st.global.wt.v4.s16 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "h"(value.x), "h"(value.y), "h"(value.z), "h"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(int2 *ptr, int2 value) { asm ("st.global.wt.v2.s32 [%0], {%1,%2};" :: "l" (ptr), "r"(value.x), "r"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(int4 *ptr, int4 value) { asm ("st.global.wt.v4.s32 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "r"(value.x), "r"(value.y), "r"(value.z), "r"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(longlong2 *ptr, longlong2 value) { asm ("st.global.wt.v2.s64 [%0], {%1,%2};" :: "l" (ptr), "l"(value.x), "l"(value.y) : "memory"); } + +static __attribute__((device)) __inline__ void __stwt(unsigned char *ptr, unsigned char value) { asm ("st.global.wt.u8 [%0], %1;" :: "l" (ptr), "r"((int)value) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(unsigned short *ptr, unsigned short value) { asm ("st.global.wt.u16 [%0], %1;" :: "l" (ptr), "h"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(unsigned int *ptr, unsigned int value) { asm ("st.global.wt.u32 [%0], %1;" :: "l" (ptr), "r"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(unsigned long long *ptr, unsigned long long value) { asm ("st.global.wt.u64 [%0], %1;" :: "l" (ptr), "l"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(uchar2 *ptr, uchar2 value) { const int x = value.x, y = value.y; asm ("st.global.wt.v2.u8 [%0], {%1,%2};" :: "l" (ptr), "r"(x), "r"(y) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(uchar4 *ptr, uchar4 value) { const int x = value.x, y = value.y, z = value.z, w = value.w; asm ("st.global.wt.v4.u8 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "r"(x), "r"(y), "r"(z), "r"(w) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(ushort2 *ptr, ushort2 value) { asm ("st.global.wt.v2.u16 [%0], {%1,%2};" :: "l" (ptr), "h"(value.x), "h"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(ushort4 *ptr, ushort4 value) { asm ("st.global.wt.v4.u16 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "h"(value.x), "h"(value.y), "h"(value.z), "h"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(uint2 *ptr, uint2 value) { asm ("st.global.wt.v2.u32 [%0], {%1,%2};" :: "l" (ptr), "r"(value.x), "r"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(uint4 *ptr, uint4 value) { asm ("st.global.wt.v4.u32 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "r"(value.x), "r"(value.y), "r"(value.z), "r"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(ulonglong2 *ptr, ulonglong2 value) { asm ("st.global.wt.v2.u64 [%0], {%1,%2};" :: "l" (ptr), "l"(value.x), "l"(value.y) : "memory"); } + +static __attribute__((device)) __inline__ void __stwt(float *ptr, float value) { asm ("st.global.wt.f32 [%0], %1;" :: "l" (ptr), "f"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(double *ptr, double value) { asm ("st.global.wt.f64 [%0], %1;" :: "l" (ptr), "d"(value) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(float2 *ptr, float2 value) { asm ("st.global.wt.v2.f32 [%0], {%1,%2};" :: "l" (ptr), "f"(value.x), "f"(value.y) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(float4 *ptr, float4 value) { asm ("st.global.wt.v4.f32 [%0], {%1,%2,%3,%4};" :: "l" (ptr), "f"(value.x), "f"(value.y), "f"(value.z), "f"(value.w) : "memory"); } +static __attribute__((device)) __inline__ void __stwt(double2 *ptr, double2 value) { asm ("st.global.wt.v2.f64 [%0], {%1,%2};" :: "l" (ptr), "d"(value.x), "d"(value.y) : "memory"); } +# 553 "/usr/include/sm_32_intrinsics.hpp" 3 4 +static __attribute__((device)) __inline__ unsigned int __funnelshift_l(unsigned int lo, unsigned int hi, unsigned int shift) +{ + unsigned int ret; + asm volatile ("shf.l.wrap.b32 %0, %1, %2, %3;" : "=r"(ret) : "r"(lo), "r"(hi), "r"(shift)); + return ret; +} +static __attribute__((device)) __inline__ unsigned int __funnelshift_lc(unsigned int lo, unsigned int hi, unsigned int shift) +{ + unsigned int ret; + asm volatile ("shf.l.clamp.b32 %0, %1, %2, %3;" : "=r"(ret) : "r"(lo), "r"(hi), "r"(shift)); + return ret; +} + + +static __attribute__((device)) __inline__ unsigned int __funnelshift_r(unsigned int lo, unsigned int hi, unsigned int shift) +{ + unsigned int ret; + asm volatile ("shf.r.wrap.b32 %0, %1, %2, %3;" : "=r"(ret) : "r"(lo), "r"(hi), "r"(shift)); + return ret; +} +static __attribute__((device)) __inline__ unsigned int __funnelshift_rc(unsigned int lo, unsigned int hi, unsigned int shift) +{ + unsigned int ret; + asm volatile ("shf.r.clamp.b32 %0, %1, %2, %3;" : "=r"(ret) : "r"(lo), "r"(hi), "r"(shift)); + return ret; +} +# 508 "/usr/include/sm_32_intrinsics.h" 2 3 4 +# 3297 "/usr/include/crt/device_functions.h" 2 3 4 +# 1 "/usr/include/sm_35_intrinsics.h" 1 3 4 +# 111 "/usr/include/sm_35_intrinsics.h" 3 4 +# 1 "/usr/include/sm_32_intrinsics.h" 1 3 4 +# 112 "/usr/include/sm_35_intrinsics.h" 2 3 4 +# 3298 "/usr/include/crt/device_functions.h" 2 3 4 +# 1 "/usr/include/sm_61_intrinsics.h" 1 3 4 +# 120 "/usr/include/sm_61_intrinsics.h" 3 4 +# 1 "/usr/include/sm_61_intrinsics.hpp" 1 3 4 +# 121 "/usr/include/sm_61_intrinsics.h" 2 3 4 +# 3299 "/usr/include/crt/device_functions.h" 2 3 4 +# 1 "/usr/include/crt/sm_70_rt.h" 1 3 4 +# 123 "/usr/include/crt/sm_70_rt.h" 3 4 +# 1 "/usr/include/crt/sm_70_rt.hpp" 1 3 4 +# 124 "/usr/include/crt/sm_70_rt.h" 2 3 4 +# 3300 "/usr/include/crt/device_functions.h" 2 3 4 +# 1 "/usr/include/crt/sm_80_rt.h" 1 3 4 +# 150 "/usr/include/crt/sm_80_rt.h" 3 4 +# 1 "/usr/include/crt/sm_80_rt.hpp" 1 3 4 +# 151 "/usr/include/crt/sm_80_rt.h" 2 3 4 +# 3301 "/usr/include/crt/device_functions.h" 2 3 4 +# 1 "/usr/include/crt/sm_90_rt.h" 1 3 4 +# 113 "/usr/include/crt/sm_90_rt.h" 3 4 +# 1 "/usr/include/crt/sm_90_rt.hpp" 1 3 4 +# 114 "/usr/include/crt/sm_90_rt.h" 2 3 4 +# 3302 "/usr/include/crt/device_functions.h" 2 3 4 +# 1 "/usr/include/surface_functions.h" 1 3 4 +# 73 "/usr/include/surface_functions.h" 3 4 +template struct __nv_surf_trait { typedef void * cast_type; }; + +template<> struct __nv_surf_trait { typedef char * cast_type; }; +template<> struct __nv_surf_trait { typedef signed char * cast_type; }; +template<> struct __nv_surf_trait { typedef unsigned char * cast_type; }; +template<> struct __nv_surf_trait { typedef char1 * cast_type; }; +template<> struct __nv_surf_trait { typedef uchar1 * cast_type; }; +template<> struct __nv_surf_trait { typedef char2 * cast_type; }; +template<> struct __nv_surf_trait { typedef uchar2 * cast_type; }; +template<> struct __nv_surf_trait { typedef char4 * cast_type; }; +template<> struct __nv_surf_trait { typedef uchar4 * cast_type; }; +template<> struct __nv_surf_trait { typedef short * cast_type; }; +template<> struct __nv_surf_trait { typedef unsigned short * cast_type; }; +template<> struct __nv_surf_trait { typedef short1 * cast_type; }; +template<> struct __nv_surf_trait { typedef ushort1 * cast_type; }; +template<> struct __nv_surf_trait { typedef short2 * cast_type; }; +template<> struct __nv_surf_trait { typedef ushort2 * cast_type; }; +template<> struct __nv_surf_trait { typedef short4 * cast_type; }; +template<> struct __nv_surf_trait { typedef ushort4 * cast_type; }; +template<> struct __nv_surf_trait { typedef int * cast_type; }; +template<> struct __nv_surf_trait { typedef unsigned int * cast_type; }; +template<> struct __nv_surf_trait { typedef int1 * cast_type; }; +template<> struct __nv_surf_trait { typedef uint1 * cast_type; }; +template<> struct __nv_surf_trait { typedef int2 * cast_type; }; +template<> struct __nv_surf_trait { typedef uint2 * cast_type; }; +template<> struct __nv_surf_trait { typedef int4 * cast_type; }; +template<> struct __nv_surf_trait { typedef uint4 * cast_type; }; +template<> struct __nv_surf_trait { typedef long long * cast_type; }; +template<> struct __nv_surf_trait { typedef unsigned long long * cast_type; }; +template<> struct __nv_surf_trait { typedef longlong1 * cast_type; }; +template<> struct __nv_surf_trait { typedef ulonglong1 * cast_type; }; +template<> struct __nv_surf_trait { typedef longlong2 * cast_type; }; +template<> struct __nv_surf_trait { typedef ulonglong2 * cast_type; }; +# 116 "/usr/include/surface_functions.h" 3 4 +template<> struct __nv_surf_trait { typedef float * cast_type; }; +template<> struct __nv_surf_trait { typedef float1 * cast_type; }; +template<> struct __nv_surf_trait { typedef float2 * cast_type; }; +template<> struct __nv_surf_trait { typedef float4 * cast_type; }; + + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) void surf1Dread(T *res, surface surf, int x, int s, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + __nv_tex_surf_handler("__surf1Dread_v2", (void *)res, s, surf, x, mode); + +} + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) T surf1Dread(surface surf, int x, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + T temp; + __nv_tex_surf_handler("__surf1Dread_v2", (typename __nv_surf_trait::cast_type)&temp, (int)sizeof(T), surf, x, mode); + return temp; + +} + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) void surf1Dread(T *res, surface surf, int x, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + *res = surf1Dread(surf, x, mode); + +} + + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) void surf2Dread(T *res, surface surf, int x, int y, int s, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + __nv_tex_surf_handler("__surf2Dread_v2", (void *)res, s, surf, x, y, mode); + +} + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) T surf2Dread(surface surf, int x, int y, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + T temp; + __nv_tex_surf_handler("__surf2Dread_v2", (typename __nv_surf_trait::cast_type)&temp, (int)sizeof(T), surf, x, y, mode); + return temp; + +} + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) void surf2Dread(T *res, surface surf, int x, int y, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + *res = surf2Dread(surf, x, y, mode); + +} + + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) void surf3Dread(T *res, surface surf, int x, int y, int z, int s, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + __nv_tex_surf_handler("__surf3Dread_v2", (void *)res, s, surf, x, y, z, mode); + +} + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) T surf3Dread(surface surf, int x, int y, int z, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + T temp; + __nv_tex_surf_handler("__surf3Dread_v2", (typename __nv_surf_trait::cast_type)&temp, (int)sizeof(T), surf, x, y, z, mode); + return temp; + +} + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) void surf3Dread(T *res, surface surf, int x, int y, int z, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + *res = surf3Dread(surf, x, y, z, mode); + +} + + + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) void surf1DLayeredread(T *res, surface surf, int x, int layer, int s, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + __nv_tex_surf_handler("__surf1DLayeredread_v2", (void *)res, s, surf, x, layer, mode); + +} + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) T surf1DLayeredread(surface surf, int x, int layer, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + T temp; + __nv_tex_surf_handler("__surf1DLayeredread_v2", (typename __nv_surf_trait::cast_type)&temp, (int)sizeof(T), surf, x, layer, mode); + return temp; + +} + + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) void surf1DLayeredread(T *res, surface surf, int x, int layer, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + *res = surf1DLayeredread(surf, x, layer, mode); + +} + + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) void surf2DLayeredread(T *res, surface surf, int x, int y, int layer, int s, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + __nv_tex_surf_handler("__surf2DLayeredread_v2", (void *)res, s, surf, x, y, layer, mode); + +} + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) T surf2DLayeredread(surface surf, int x, int y, int layer, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + T temp; + __nv_tex_surf_handler("__surf2DLayeredread_v2", (typename __nv_surf_trait::cast_type)&temp, (int)sizeof(T), surf, x, y, layer, mode); + return temp; + +} + + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) void surf2DLayeredread(T *res, surface surf, int x, int y, int layer, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + *res = surf2DLayeredread(surf, x, y, layer, mode); + +} + + +template +static __attribute__((device)) __inline__ __attribute__((always_inline)) void surfCubemapread(T *res, surface surf, int x, int y, int face, int s, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + __nv_tex_surf_handler("__surfCubemapread_v2", (void *)res, s, surf, x, y, face, mode); + +} + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) T surfCubemapread(surface surf, int x, int y, int face, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + T temp; + + __nv_tex_surf_handler("__surfCubemapread_v2", (typename __nv_surf_trait::cast_type)&temp, (int)sizeof(T), surf, x, y, face, mode); + return temp; + +} + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) void surfCubemapread(T *res, surface surf, int x, int y, int face, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + *res = surfCubemapread(surf, x, y, face, mode); + +} + + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) void surfCubemapLayeredread(T *res, surface surf, int x, int y, int layerFace, int s, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + __nv_tex_surf_handler("__surfCubemapLayeredread_v2", (void *)res, s, surf, x, y, layerFace, mode); + +} + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) T surfCubemapLayeredread(surface surf, int x, int y, int layerFace, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + T temp; + __nv_tex_surf_handler("__surfCubemapLayeredread_v2", (typename __nv_surf_trait::cast_type)&temp, (int)sizeof(T), surf, x, y, layerFace, mode); + return temp; + +} + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) void surfCubemapLayeredread(T *res, surface surf, int x, int y, int layerFace, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + *res = surfCubemapLayeredread(surf, x, y, layerFace, mode); + +} + + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) void surf1Dwrite(T val, surface surf, int x, int s, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + __nv_tex_surf_handler("__surf1Dwrite_v2", (void *)&val, s, surf, x, mode); + +} + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) void surf1Dwrite(T val, surface surf, int x, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + __nv_tex_surf_handler("__surf1Dwrite_v2", (typename __nv_surf_trait::cast_type)&val, (int)sizeof(T), surf, x, mode); + +} + + + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) void surf2Dwrite(T val, surface surf, int x, int y, int s, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + __nv_tex_surf_handler("__surf2Dwrite_v2", (void *)&val, s, surf, x, y, mode); + +} + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) void surf2Dwrite(T val, surface surf, int x, int y, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + __nv_tex_surf_handler("__surf2Dwrite_v2", (typename __nv_surf_trait::cast_type)&val, (int)sizeof(T), surf, x, y, mode); + +} + + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) void surf3Dwrite(T val, surface surf, int x, int y, int z, int s, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + __nv_tex_surf_handler("__surf3Dwrite_v2", (void *)&val, s, surf, x, y, z,mode); + +} + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) void surf3Dwrite(T val, surface surf, int x, int y, int z, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + __nv_tex_surf_handler("__surf3Dwrite_v2", (typename __nv_surf_trait::cast_type)&val, (int)sizeof(T), surf, x, y, z, mode); + +} + + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) void surf1DLayeredwrite(T val, surface surf, int x, int layer, int s, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + __nv_tex_surf_handler("__surf1DLayeredwrite_v2", (void *)&val, s, surf, x, layer,mode); + +} + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) void surf1DLayeredwrite(T val, surface surf, int x, int layer, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + __nv_tex_surf_handler("__surf1DLayeredwrite_v2", (typename __nv_surf_trait::cast_type)&val, (int)sizeof(T), surf, x, layer, mode); + +} + + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) void surf2DLayeredwrite(T val, surface surf, int x, int y, int layer, int s, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + __nv_tex_surf_handler("__surf2DLayeredwrite_v2", (void *)&val, s, surf, x, y, layer,mode); + +} + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) void surf2DLayeredwrite(T val, surface surf, int x, int y, int layer, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + __nv_tex_surf_handler("__surf2DLayeredwrite_v2", (typename __nv_surf_trait::cast_type)&val, (int)sizeof(T), surf, x, y, layer, mode); + +} + + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) void surfCubemapwrite(T val, surface surf, int x, int y, int face, int s, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + __nv_tex_surf_handler("__surfCubemapwrite_v2", (void *)&val, s, surf, x, y, face, mode); + +} + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) void surfCubemapwrite(T val, surface surf, int x, int y, int face, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + __nv_tex_surf_handler("__surfCubemapwrite_v2", (typename __nv_surf_trait::cast_type)&val, (int)sizeof(T), surf, x, y, face, mode); + +} + + + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) void surfCubemapLayeredwrite(T val, surface surf, int x, int y, int layerFace, int s, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + __nv_tex_surf_handler("__surfCubemapLayeredwrite_v2", (void *)&val, s, surf, x, y, layerFace, mode); + +} + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) void surfCubemapLayeredwrite(T val, surface surf, int x, int y, int layerFace, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + __nv_tex_surf_handler("__surfCubemapLayeredwrite_v2", (typename __nv_surf_trait::cast_type)&val, (int)sizeof(T), surf, x, y, layerFace, mode); + +} +# 3303 "/usr/include/crt/device_functions.h" 2 3 4 +# 1 "/usr/include/texture_fetch_functions.h" 1 3 4 +# 72 "/usr/include/texture_fetch_functions.h" 3 4 +template +struct __nv_tex_rmet_ret { }; + +template<> struct __nv_tex_rmet_ret { typedef char type; }; +template<> struct __nv_tex_rmet_ret { typedef signed char type; }; +template<> struct __nv_tex_rmet_ret { typedef unsigned char type; }; +template<> struct __nv_tex_rmet_ret { typedef char1 type; }; +template<> struct __nv_tex_rmet_ret { typedef uchar1 type; }; +template<> struct __nv_tex_rmet_ret { typedef char2 type; }; +template<> struct __nv_tex_rmet_ret { typedef uchar2 type; }; +template<> struct __nv_tex_rmet_ret { typedef char4 type; }; +template<> struct __nv_tex_rmet_ret { typedef uchar4 type; }; + +template<> struct __nv_tex_rmet_ret { typedef short type; }; +template<> struct __nv_tex_rmet_ret { typedef unsigned short type; }; +template<> struct __nv_tex_rmet_ret { typedef short1 type; }; +template<> struct __nv_tex_rmet_ret { typedef ushort1 type; }; +template<> struct __nv_tex_rmet_ret { typedef short2 type; }; +template<> struct __nv_tex_rmet_ret { typedef ushort2 type; }; +template<> struct __nv_tex_rmet_ret { typedef short4 type; }; +template<> struct __nv_tex_rmet_ret { typedef ushort4 type; }; + +template<> struct __nv_tex_rmet_ret { typedef int type; }; +template<> struct __nv_tex_rmet_ret { typedef unsigned int type; }; +template<> struct __nv_tex_rmet_ret { typedef int1 type; }; +template<> struct __nv_tex_rmet_ret { typedef uint1 type; }; +template<> struct __nv_tex_rmet_ret { typedef int2 type; }; +template<> struct __nv_tex_rmet_ret { typedef uint2 type; }; +template<> struct __nv_tex_rmet_ret { typedef int4 type; }; +template<> struct __nv_tex_rmet_ret { typedef uint4 type; }; +# 113 "/usr/include/texture_fetch_functions.h" 3 4 +template<> struct __nv_tex_rmet_ret { typedef float type; }; +template<> struct __nv_tex_rmet_ret { typedef float1 type; }; +template<> struct __nv_tex_rmet_ret { typedef float2 type; }; +template<> struct __nv_tex_rmet_ret { typedef float4 type; }; + + +template struct __nv_tex_rmet_cast { typedef T* type; }; +# 131 "/usr/include/texture_fetch_functions.h" 3 4 +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmet_ret::type tex1Dfetch(texture t, int x) +{ + + typename __nv_tex_rmet_ret::type temp; + __nv_tex_surf_handler("__tex1Dfetch_v2", (typename __nv_tex_rmet_cast::type)&temp, t, x); + return temp; + +} + +template +struct __nv_tex_rmnf_ret { }; + +template <> struct __nv_tex_rmnf_ret { typedef float type; }; +template <> struct __nv_tex_rmnf_ret { typedef float type; }; +template <> struct __nv_tex_rmnf_ret { typedef float type; }; +template <> struct __nv_tex_rmnf_ret { typedef float type; }; +template <> struct __nv_tex_rmnf_ret { typedef float type; }; +template <> struct __nv_tex_rmnf_ret { typedef float1 type; }; +template <> struct __nv_tex_rmnf_ret { typedef float1 type; }; +template <> struct __nv_tex_rmnf_ret { typedef float1 type; }; +template <> struct __nv_tex_rmnf_ret { typedef float1 type; }; +template <> struct __nv_tex_rmnf_ret { typedef float2 type; }; +template <> struct __nv_tex_rmnf_ret { typedef float2 type; }; +template <> struct __nv_tex_rmnf_ret { typedef float2 type; }; +template <> struct __nv_tex_rmnf_ret { typedef float2 type; }; +template <> struct __nv_tex_rmnf_ret { typedef float4 type; }; +template <> struct __nv_tex_rmnf_ret { typedef float4 type; }; +template <> struct __nv_tex_rmnf_ret { typedef float4 type; }; +template <> struct __nv_tex_rmnf_ret { typedef float4 type; }; + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmnf_ret::type tex1Dfetch(texture t, int x) +{ + + T type_dummy; + typename __nv_tex_rmnf_ret::type retval; + __nv_tex_surf_handler("__tex1Dfetch_rmnf_v2", &type_dummy, &retval, t, x); + return retval; + +} + + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmet_ret::type tex1D(texture t, float x) +{ + + typename __nv_tex_rmet_ret::type temp; + __nv_tex_surf_handler("__tex1D_v2", (typename __nv_tex_rmet_cast::type) &temp, t, x); + return temp; + +} + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmnf_ret::type tex1D(texture t, float x) +{ + + T type_dummy; + typename __nv_tex_rmnf_ret::type retval; + __nv_tex_surf_handler("__tex1D_rmnf_v2", &type_dummy, &retval, t, x); + return retval; + +} + + + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmet_ret::type tex2D(texture t, float x, float y) +{ + + typename __nv_tex_rmet_ret::type temp; + + __nv_tex_surf_handler("__tex2D_v2", (typename __nv_tex_rmet_cast::type) &temp, t, x, y); + return temp; + +} + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmnf_ret::type tex2D(texture t, float x, float y) +{ + + T type_dummy; + typename __nv_tex_rmnf_ret::type retval; + __nv_tex_surf_handler("__tex2D_rmnf_v2", &type_dummy, &retval, t, x, y); + return retval; + +} + + + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmet_ret::type tex1DLayered(texture t, float x, int layer) +{ + + typename __nv_tex_rmet_ret::type temp; + __nv_tex_surf_handler("__tex1DLayered_v2", (typename __nv_tex_rmet_cast::type) &temp, t, x, layer); + return temp; + +} + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmnf_ret::type tex1DLayered(texture t, float x, int layer) +{ + + T type_dummy; + typename __nv_tex_rmnf_ret::type retval; + __nv_tex_surf_handler("__tex1DLayered_rmnf_v2", &type_dummy, &retval, t, x, layer); + return retval; + +} + + + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmet_ret::type tex2DLayered(texture t, float x, float y, int layer) +{ + + typename __nv_tex_rmet_ret::type temp; + __nv_tex_surf_handler("__tex2DLayered_v2", (typename __nv_tex_rmet_cast::type) &temp, t, x, y, layer); + return temp; + +} + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmnf_ret::type tex2DLayered(texture t, float x, float y, int layer) +{ + + T type_dummy; + typename __nv_tex_rmnf_ret::type retval; + __nv_tex_surf_handler("__tex2DLayered_rmnf_v2", &type_dummy, &retval, t, x, y, layer); + return retval; + +} + + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmet_ret::type tex3D(texture t, float x, float y, float z) +{ + + typename __nv_tex_rmet_ret::type temp; + __nv_tex_surf_handler("__tex3D_v2", (typename __nv_tex_rmet_cast::type) &temp, t, x, y, z); + return temp; + +} + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmnf_ret::type tex3D(texture t, float x, float y, float z) +{ + + T type_dummy; + typename __nv_tex_rmnf_ret::type retval; + __nv_tex_surf_handler("__tex3D_rmnf_v2", &type_dummy, &retval, t, x, y, z); + return retval; + +} + + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmet_ret::type texCubemap(texture t, float x, float y, float z) +{ + + typename __nv_tex_rmet_ret::type temp; + __nv_tex_surf_handler("__texCubemap_v2", (typename __nv_tex_rmet_cast::type) &temp, t, x, y, z); + return temp; + +} + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmnf_ret::type texCubemap(texture t, float x, float y, float z) +{ + + T type_dummy; + typename __nv_tex_rmnf_ret::type retval; + __nv_tex_surf_handler("__texCubemap_rmnf_v2", &type_dummy, &retval, t, x, y, z); + return retval; + +} + + +template +struct __nv_tex2dgather_ret { }; +template <> struct __nv_tex2dgather_ret { typedef char4 type; }; +template <> struct __nv_tex2dgather_ret { typedef char4 type; }; +template <> struct __nv_tex2dgather_ret { typedef char4 type; }; +template <> struct __nv_tex2dgather_ret { typedef char4 type; }; +template <> struct __nv_tex2dgather_ret { typedef char4 type; }; +template <> struct __nv_tex2dgather_ret { typedef char4 type; }; +template <> struct __nv_tex2dgather_ret { typedef uchar4 type; }; +template <> struct __nv_tex2dgather_ret { typedef uchar4 type; }; +template <> struct __nv_tex2dgather_ret { typedef uchar4 type; }; +template <> struct __nv_tex2dgather_ret { typedef uchar4 type; }; +template <> struct __nv_tex2dgather_ret { typedef uchar4 type; }; + +template <> struct __nv_tex2dgather_ret { typedef short4 type; }; +template <> struct __nv_tex2dgather_ret { typedef short4 type; }; +template <> struct __nv_tex2dgather_ret { typedef short4 type; }; +template <> struct __nv_tex2dgather_ret { typedef short4 type; }; +template <> struct __nv_tex2dgather_ret { typedef short4 type; }; +template <> struct __nv_tex2dgather_ret { typedef ushort4 type; }; +template <> struct __nv_tex2dgather_ret { typedef ushort4 type; }; +template <> struct __nv_tex2dgather_ret { typedef ushort4 type; }; +template <> struct __nv_tex2dgather_ret { typedef ushort4 type; }; +template <> struct __nv_tex2dgather_ret { typedef ushort4 type; }; + +template <> struct __nv_tex2dgather_ret { typedef int4 type; }; +template <> struct __nv_tex2dgather_ret { typedef int4 type; }; +template <> struct __nv_tex2dgather_ret { typedef int4 type; }; +template <> struct __nv_tex2dgather_ret { typedef int4 type; }; +template <> struct __nv_tex2dgather_ret { typedef int4 type; }; +template <> struct __nv_tex2dgather_ret { typedef uint4 type; }; +template <> struct __nv_tex2dgather_ret { typedef uint4 type; }; +template <> struct __nv_tex2dgather_ret { typedef uint4 type; }; +template <> struct __nv_tex2dgather_ret { typedef uint4 type; }; +template <> struct __nv_tex2dgather_ret { typedef uint4 type; }; + +template <> struct __nv_tex2dgather_ret { typedef float4 type; }; +template <> struct __nv_tex2dgather_ret { typedef float4 type; }; +template <> struct __nv_tex2dgather_ret { typedef float4 type; }; +template <> struct __nv_tex2dgather_ret { typedef float4 type; }; +template <> struct __nv_tex2dgather_ret { typedef float4 type; }; + +template +static __attribute__((device)) __inline__ __attribute__((always_inline)) typename __nv_tex2dgather_ret::type tex2Dgather(texture t, float x, float y, int comp=0) +{ + + T type_dummy; + typename __nv_tex2dgather_ret::type retval; + __nv_tex_surf_handler("__tex2Dgather_v2", &type_dummy, &retval, t, x, y, comp); + return retval; + +} + + +template struct __nv_tex2dgather_rmnf_ret { }; +template<> struct __nv_tex2dgather_rmnf_ret { typedef float4 type; }; +template<> struct __nv_tex2dgather_rmnf_ret { typedef float4 type; }; +template<> struct __nv_tex2dgather_rmnf_ret { typedef float4 type; }; +template<> struct __nv_tex2dgather_rmnf_ret { typedef float4 type; }; +template<> struct __nv_tex2dgather_rmnf_ret { typedef float4 type; }; +template<> struct __nv_tex2dgather_rmnf_ret { typedef float4 type; }; +template<> struct __nv_tex2dgather_rmnf_ret { typedef float4 type; }; +template<> struct __nv_tex2dgather_rmnf_ret { typedef float4 type; }; +template<> struct __nv_tex2dgather_rmnf_ret { typedef float4 type; }; +template<> struct __nv_tex2dgather_rmnf_ret { typedef float4 type; }; +template<> struct __nv_tex2dgather_rmnf_ret { typedef float4 type; }; +template<> struct __nv_tex2dgather_rmnf_ret { typedef float4 type; }; +template<> struct __nv_tex2dgather_rmnf_ret { typedef float4 type; }; +template<> struct __nv_tex2dgather_rmnf_ret { typedef float4 type; }; +template<> struct __nv_tex2dgather_rmnf_ret { typedef float4 type; }; +template<> struct __nv_tex2dgather_rmnf_ret { typedef float4 type; }; +template<> struct __nv_tex2dgather_rmnf_ret { typedef float4 type; }; +template<> struct __nv_tex2dgather_rmnf_ret { typedef float4 type; }; +template<> struct __nv_tex2dgather_rmnf_ret { typedef float4 type; }; +template<> struct __nv_tex2dgather_rmnf_ret { typedef float4 type; }; +template<> struct __nv_tex2dgather_rmnf_ret { typedef float4 type; }; + +template +static __attribute__((device)) __inline__ __attribute__((always_inline)) typename __nv_tex2dgather_rmnf_ret::type tex2Dgather(texture t, float x, float y, int comp = 0) +{ + + T type_dummy; + typename __nv_tex2dgather_rmnf_ret::type retval; + __nv_tex_surf_handler("__tex2Dgather_rmnf_v2", &type_dummy, &retval, t, x, y, comp); + return retval; + +} + + + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmet_ret::type tex1DLod(texture t, float x, float level) +{ + + typename __nv_tex_rmet_ret::type temp; + __nv_tex_surf_handler("__tex1DLod_v2", (typename __nv_tex_rmet_cast::type)&temp, t, x, level); + return temp; + +} + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmnf_ret::type tex1DLod(texture t, float x, float level) +{ + + T type_dummy; + typename __nv_tex_rmnf_ret::type retval; + __nv_tex_surf_handler("__tex1DLod_rmnf_v2", &type_dummy, &retval, t, x, level); + return retval; + +} + + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmet_ret::type tex2DLod(texture t, float x, float y, float level) +{ + + typename __nv_tex_rmet_ret::type temp; + __nv_tex_surf_handler("__tex2DLod_v2", (typename __nv_tex_rmet_cast::type)&temp, t, x, y, level); + return temp; + +} + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmnf_ret::type tex2DLod(texture t, float x, float y, float level) +{ + + T type_dummy; + typename __nv_tex_rmnf_ret::type retval; + __nv_tex_surf_handler("__tex2DLod_rmnf_v2", &type_dummy, &retval, t, x, y, level); + return retval; + +} + + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmet_ret::type tex1DLayeredLod(texture t, float x, int layer, float level) +{ + + typename __nv_tex_rmet_ret::type temp; + __nv_tex_surf_handler("__tex1DLayeredLod_v2", (typename __nv_tex_rmet_cast::type)&temp, t, x, layer, level); + return temp; + +} + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmnf_ret::type tex1DLayeredLod(texture t, float x, int layer, float level) +{ + + T type_dummy; + typename __nv_tex_rmnf_ret::type retval; + __nv_tex_surf_handler("__tex1DLayeredLod_rmnf_v2", &type_dummy, &retval, t, x, layer, level); + return retval; + +} + + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmet_ret::type tex2DLayeredLod(texture t, float x, float y, int layer, float level) +{ + + typename __nv_tex_rmet_ret::type temp; + __nv_tex_surf_handler("__tex2DLayeredLod_v2", (typename __nv_tex_rmet_cast::type)&temp, t, x, y, layer, level); + return temp; + +} + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmnf_ret::type tex2DLayeredLod(texture t, float x, float y, int layer, float level) +{ + + T type_dummy; + typename __nv_tex_rmnf_ret::type retval; + __nv_tex_surf_handler("__tex2DLayeredLod_rmnf_v2", &type_dummy, &retval, t, x, y, layer, level); + return retval; + +} + + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmet_ret::type tex3DLod(texture t, float x, float y, float z, float level) +{ + + typename __nv_tex_rmet_ret::type temp; + __nv_tex_surf_handler("__tex3DLod_v2",(typename __nv_tex_rmet_cast::type)&temp, t, x, y, z, level); + return temp; + +} + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmnf_ret::type tex3DLod(texture t, float x, float y, float z, float level) +{ + + T type_dummy; + typename __nv_tex_rmnf_ret::type retval; + __nv_tex_surf_handler("__tex3DLod_rmnf_v2", &type_dummy, &retval, t, x, y, z, level); + return retval; + +} + + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmet_ret::type texCubemapLod(texture t, float x, float y, float z, float level) +{ + + typename __nv_tex_rmet_ret::type temp; + __nv_tex_surf_handler("__texCubemapLod_v2",(typename __nv_tex_rmet_cast::type)&temp, t, x, y, z, level); + return temp; + +} + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmnf_ret::type texCubemapLod(texture t, float x, float y, float z, float level) +{ + + T type_dummy; + typename __nv_tex_rmnf_ret::type retval; + __nv_tex_surf_handler("__texCubemapLod_rmnf_v2", &type_dummy, &retval, t, x, y, z, level); + return retval; + +} + + + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmet_ret::type texCubemapLayered(texture t, float x, float y, float z, int layer) +{ + + typename __nv_tex_rmet_ret::type temp; + __nv_tex_surf_handler("__texCubemapLayered_v2",(typename __nv_tex_rmet_cast::type)&temp, t, x, y, z, layer); + return temp; + +} + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmnf_ret::type texCubemapLayered(texture t, float x, float y, float z, int layer) +{ + + T type_dummy; + typename __nv_tex_rmnf_ret::type retval; + __nv_tex_surf_handler("__texCubemapLayered_rmnf_v2", &type_dummy, &retval, t, x, y, z, layer); + return retval; + +} + + + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmet_ret::type texCubemapLayeredLod(texture t, float x, float y, float z, int layer, float level) +{ + + typename __nv_tex_rmet_ret::type temp; + __nv_tex_surf_handler("__texCubemapLayeredLod_v2", (typename __nv_tex_rmet_cast::type)&temp, t, x, y, z, layer, level); + return temp; + +} + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmnf_ret::type texCubemapLayeredLod(texture t, float x, float y, float z, int layer, float level) +{ + + T type_dummy; + typename __nv_tex_rmnf_ret::type retval; + __nv_tex_surf_handler("__texCubemapLayeredLod_rmnf_v2", &type_dummy, &retval, t, x, y, z, layer, level); + return retval; + +} + + + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmet_ret::type texCubemapGrad(texture t, float x, float y, float z, float4 dPdx, float4 dPdy) +{ + + typename __nv_tex_rmet_ret::type temp; + __nv_tex_surf_handler("__texCubemapGrad_v2", (typename __nv_tex_rmet_cast::type)&temp, t, x, y, z, &dPdx, &dPdy); + return temp; + +} + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmnf_ret::type texCubemapGrad(texture t, float x, float y, float z, float4 dPdx, float4 dPdy) +{ + + T type_dummy; + typename __nv_tex_rmnf_ret::type retval; + __nv_tex_surf_handler("__texCubemapGrad_rmnf_v2", &type_dummy, &retval, t, x, y, z, &dPdx, &dPdy); + return retval; + +} + + + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmet_ret::type texCubemapLayeredGrad(texture t, float x, float y, float z, int layer, float4 dPdx, float4 dPdy) +{ + + typename __nv_tex_rmet_ret::type temp; + __nv_tex_surf_handler("__texCubemapLayeredGrad_v2", (typename __nv_tex_rmet_cast::type)&temp, t, x, y, z, layer, &dPdx, &dPdy); + return temp; + +} + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmnf_ret::type texCubemapLayeredGrad(texture t, float x, float y, float z, int layer, float4 dPdx, float4 dPdy) +{ + + T type_dummy; + typename __nv_tex_rmnf_ret::type retval; + __nv_tex_surf_handler("__texCubemapLayeredGrad_rmnf_v2", &type_dummy, &retval,t, x, y, z, layer, &dPdx, &dPdy); + return retval; + +} + + + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmet_ret::type tex1DGrad(texture t, float x, float dPdx, float dPdy) +{ + + typename __nv_tex_rmet_ret::type temp; + __nv_tex_surf_handler("__tex1DGrad_v2", (typename __nv_tex_rmet_cast::type)&temp, t, x, dPdx, dPdy); + return temp; + +} + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmnf_ret::type tex1DGrad(texture t, float x, float dPdx, float dPdy) +{ + + T type_dummy; + typename __nv_tex_rmnf_ret::type retval; + __nv_tex_surf_handler("__tex1DGrad_rmnf_v2", &type_dummy, &retval,t, x,dPdx, dPdy); + return retval; + +} + + + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmet_ret::type tex2DGrad(texture t, float x, float y, float2 dPdx, float2 dPdy) +{ + + typename __nv_tex_rmet_ret::type temp; + __nv_tex_surf_handler("__tex2DGrad_v2", (typename __nv_tex_rmet_cast::type)&temp, t, x, y, &dPdx, &dPdy); + return temp; + +} + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmnf_ret::type tex2DGrad(texture t, float x, float y, float2 dPdx, float2 dPdy) +{ + + T type_dummy; + typename __nv_tex_rmnf_ret::type retval; + __nv_tex_surf_handler("__tex2DGrad_rmnf_v2", &type_dummy, &retval,t, x, y, &dPdx, &dPdy); + return retval; + +} + + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmet_ret::type tex1DLayeredGrad(texture t, float x, int layer, float dPdx, float dPdy) +{ + + typename __nv_tex_rmet_ret::type temp; + __nv_tex_surf_handler("__tex1DLayeredGrad_v2",(typename __nv_tex_rmet_cast::type)&temp, t, x, layer, dPdx, dPdy); + return temp; + +} + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmnf_ret::type tex1DLayeredGrad(texture t, float x, int layer, float dPdx, float dPdy) +{ + + T type_dummy; + typename __nv_tex_rmnf_ret::type retval; + __nv_tex_surf_handler("__tex1DLayeredGrad_rmnf_v2", &type_dummy, &retval,t, x, layer, dPdx, dPdy); + return retval; + +} + + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmet_ret::type tex2DLayeredGrad(texture t, float x, float y, int layer, float2 dPdx, float2 dPdy) +{ + + typename __nv_tex_rmet_ret::type temp; + __nv_tex_surf_handler("__tex2DLayeredGrad_v2",(typename __nv_tex_rmet_cast::type)&temp, t, x, y, layer, &dPdx, &dPdy); + return temp; + +} + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmnf_ret::type tex2DLayeredGrad(texture t, float x, float y, int layer, float2 dPdx, float2 dPdy) +{ + + T type_dummy; + typename __nv_tex_rmnf_ret::type retval; + __nv_tex_surf_handler("__tex2DLayeredGrad_rmnf_v2", &type_dummy, &retval,t, x, y, layer, &dPdx, &dPdy); + return retval; + +} + + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmet_ret::type tex3DGrad(texture t, float x, float y, float z, float4 dPdx, float4 dPdy) +{ + + typename __nv_tex_rmet_ret::type temp; + __nv_tex_surf_handler("__tex3DGrad_v2", (typename __nv_tex_rmet_cast::type)&temp, t, x, y, z, &dPdx, &dPdy); + return temp; + +} + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmnf_ret::type tex3DGrad(texture t, float x, float y, float z, float4 dPdx, float4 dPdy) +{ + + T type_dummy; + typename __nv_tex_rmnf_ret::type retval; + __nv_tex_surf_handler("__tex3DGrad_rmnf_v2", &type_dummy, &retval,t, x, y, z, &dPdx, &dPdy); + return retval; + +} +# 3304 "/usr/include/crt/device_functions.h" 2 3 4 +# 1 "/usr/include/texture_indirect_functions.h" 1 3 4 +# 64 "/usr/include/texture_indirect_functions.h" 3 4 +template struct __nv_itex_trait { }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +# 100 "/usr/include/texture_indirect_functions.h" 3 4 +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; + + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex1Dfetch(T *ptr, cudaTextureObject_t obj, int x) +{ + + __nv_tex_surf_handler("__itex1Dfetch", ptr, obj, x); + +} + +template +static __attribute__((device)) T tex1Dfetch(cudaTextureObject_t texObject, int x) +{ + + T ret; + tex1Dfetch(&ret, texObject, x); + return ret; + +} + +template +static __attribute__((device)) typename __nv_itex_trait::type tex1D(T *ptr, cudaTextureObject_t obj, float x) +{ + + __nv_tex_surf_handler("__itex1D", ptr, obj, x); + +} + + +template +static __attribute__((device)) T tex1D(cudaTextureObject_t texObject, float x) +{ + + T ret; + tex1D(&ret, texObject, x); + return ret; + +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2D(T *ptr, cudaTextureObject_t obj, float x, float y) +{ + + __nv_tex_surf_handler("__itex2D", ptr, obj, x, y); + +} + +template +static __attribute__((device)) T tex2D(cudaTextureObject_t texObject, float x, float y) +{ + + T ret; + tex2D(&ret, texObject, x, y); + return ret; + +} +# 188 "/usr/include/texture_indirect_functions.h" 3 4 +template +static __attribute__((device)) typename __nv_itex_trait::type tex3D(T *ptr, cudaTextureObject_t obj, float x, float y, float z) +{ + + __nv_tex_surf_handler("__itex3D", ptr, obj, x, y, z); + +} + +template +static __attribute__((device)) T tex3D(cudaTextureObject_t texObject, float x, float y, float z) +{ + + T ret; + tex3D(&ret, texObject, x, y, z); + return ret; + +} +# 230 "/usr/include/texture_indirect_functions.h" 3 4 +template +static __attribute__((device)) typename __nv_itex_trait::type tex1DLayered(T *ptr, cudaTextureObject_t obj, float x, int layer) +{ + + __nv_tex_surf_handler("__itex1DLayered", ptr, obj, x, layer); + +} + +template +static __attribute__((device)) T tex1DLayered(cudaTextureObject_t texObject, float x, int layer) +{ + + T ret; + tex1DLayered(&ret, texObject, x, layer); + return ret; + +} + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2DLayered(T *ptr, cudaTextureObject_t obj, float x, float y, int layer) +{ + + __nv_tex_surf_handler("__itex2DLayered", ptr, obj, x, y, layer); + +} + +template +static __attribute__((device)) T tex2DLayered(cudaTextureObject_t texObject, float x, float y, int layer) +{ + + T ret; + tex2DLayered(&ret, texObject, x, y, layer); + return ret; + +} +# 289 "/usr/include/texture_indirect_functions.h" 3 4 +template +static __attribute__((device)) typename __nv_itex_trait::type texCubemap(T *ptr, cudaTextureObject_t obj, float x, float y, float z) +{ + + __nv_tex_surf_handler("__itexCubemap", ptr, obj, x, y, z); + +} + + +template +static __attribute__((device)) T texCubemap(cudaTextureObject_t texObject, float x, float y, float z) +{ + + T ret; + texCubemap(&ret, texObject, x, y, z); + return ret; + +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type texCubemapLayered(T *ptr, cudaTextureObject_t obj, float x, float y, float z, int layer) +{ + + __nv_tex_surf_handler("__itexCubemapLayered", ptr, obj, x, y, z, layer); + +} + +template +static __attribute__((device)) T texCubemapLayered(cudaTextureObject_t texObject, float x, float y, float z, int layer) +{ + + T ret; + texCubemapLayered(&ret, texObject, x, y, z, layer); + return ret; + +} + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2Dgather(T *ptr, cudaTextureObject_t obj, float x, float y, int comp = 0) +{ + + __nv_tex_surf_handler("__itex2Dgather", ptr, obj, x, y, comp); + +} + +template +static __attribute__((device)) T tex2Dgather(cudaTextureObject_t to, float x, float y, int comp = 0) +{ + + T ret; + tex2Dgather(&ret, to, x, y, comp); + return ret; + +} +# 368 "/usr/include/texture_indirect_functions.h" 3 4 +template +static __attribute__((device)) typename __nv_itex_trait::type tex1DLod(T *ptr, cudaTextureObject_t obj, float x, float level) +{ + + __nv_tex_surf_handler("__itex1DLod", ptr, obj, x, level); + +} + +template +static __attribute__((device)) T tex1DLod(cudaTextureObject_t texObject, float x, float level) +{ + + T ret; + tex1DLod(&ret, texObject, x, level); + return ret; + +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2DLod(T *ptr, cudaTextureObject_t obj, float x, float y, float level) +{ + + __nv_tex_surf_handler("__itex2DLod", ptr, obj, x, y, level); + +} + +template +static __attribute__((device)) T tex2DLod(cudaTextureObject_t texObject, float x, float y, float level) +{ + + T ret; + tex2DLod(&ret, texObject, x, y, level); + return ret; + +} +# 430 "/usr/include/texture_indirect_functions.h" 3 4 +template +static __attribute__((device)) typename __nv_itex_trait::type tex3DLod(T *ptr, cudaTextureObject_t obj, float x, float y, float z, float level) +{ + + __nv_tex_surf_handler("__itex3DLod", ptr, obj, x, y, z, level); + +} + +template +static __attribute__((device)) T tex3DLod(cudaTextureObject_t texObject, float x, float y, float z, float level) +{ + + T ret; + tex3DLod(&ret, texObject, x, y, z, level); + return ret; + +} +# 472 "/usr/include/texture_indirect_functions.h" 3 4 +template +static __attribute__((device)) typename __nv_itex_trait::type tex1DLayeredLod(T *ptr, cudaTextureObject_t obj, float x, int layer, float level) +{ + + __nv_tex_surf_handler("__itex1DLayeredLod", ptr, obj, x, layer, level); + +} + +template +static __attribute__((device)) T tex1DLayeredLod(cudaTextureObject_t texObject, float x, int layer, float level) +{ + + T ret; + tex1DLayeredLod(&ret, texObject, x, layer, level); + return ret; + +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2DLayeredLod(T *ptr, cudaTextureObject_t obj, float x, float y, int layer, float level) +{ + + __nv_tex_surf_handler("__itex2DLayeredLod", ptr, obj, x, y, layer, level); + +} + +template +static __attribute__((device)) T tex2DLayeredLod(cudaTextureObject_t texObject, float x, float y, int layer, float level) +{ + + T ret; + tex2DLayeredLod(&ret, texObject, x, y, layer, level); + return ret; + +} +# 531 "/usr/include/texture_indirect_functions.h" 3 4 +template +static __attribute__((device)) typename __nv_itex_trait::type texCubemapLod(T *ptr, cudaTextureObject_t obj, float x, float y, float z, float level) +{ + + __nv_tex_surf_handler("__itexCubemapLod", ptr, obj, x, y, z, level); + +} + +template +static __attribute__((device)) T texCubemapLod(cudaTextureObject_t texObject, float x, float y, float z, float level) +{ + + T ret; + texCubemapLod(&ret, texObject, x, y, z, level); + return ret; + +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type texCubemapGrad(T *ptr, cudaTextureObject_t obj, float x, float y, float z, float4 dPdx, float4 dPdy) +{ + + __nv_tex_surf_handler("__itexCubemapGrad_v2", ptr, obj, x, y, z, &dPdx, &dPdy); + +} + +template +static __attribute__((device)) T texCubemapGrad(cudaTextureObject_t texObject, float x, float y, float z, float4 dPdx, float4 dPdy) +{ + + T ret; + texCubemapGrad(&ret, texObject, x, y, z, dPdx, dPdy); + return ret; + +} + +template +static __attribute__((device)) typename __nv_itex_trait::type texCubemapLayeredLod(T *ptr, cudaTextureObject_t obj, float x, float y, float z, int layer, float level) +{ + + __nv_tex_surf_handler("__itexCubemapLayeredLod", ptr, obj, x, y, z, layer, level); + +} + +template +static __attribute__((device)) T texCubemapLayeredLod(cudaTextureObject_t texObject, float x, float y, float z, int layer, float level) +{ + + T ret; + texCubemapLayeredLod(&ret, texObject, x, y, z, layer, level); + return ret; + +} + +template +static __attribute__((device)) typename __nv_itex_trait::type tex1DGrad(T *ptr, cudaTextureObject_t obj, float x, float dPdx, float dPdy) +{ + + __nv_tex_surf_handler("__itex1DGrad", ptr, obj, x, dPdx, dPdy); + +} + +template +static __attribute__((device)) T tex1DGrad(cudaTextureObject_t texObject, float x, float dPdx, float dPdy) +{ + + T ret; + tex1DGrad(&ret, texObject, x, dPdx, dPdy); + return ret; + +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2DGrad(T *ptr, cudaTextureObject_t obj, float x, float y, float2 dPdx, float2 dPdy) +{ + + __nv_tex_surf_handler("__itex2DGrad_v2", ptr, obj, x, y, &dPdx, &dPdy); + + +} + +template +static __attribute__((device)) T tex2DGrad(cudaTextureObject_t texObject, float x, float y, float2 dPdx, float2 dPdy) +{ + + T ret; + tex2DGrad(&ret, texObject, x, y, dPdx, dPdy); + return ret; + +} +# 648 "/usr/include/texture_indirect_functions.h" 3 4 +template +static __attribute__((device)) typename __nv_itex_trait::type tex3DGrad(T *ptr, cudaTextureObject_t obj, float x, float y, float z, float4 dPdx, float4 dPdy) +{ + + __nv_tex_surf_handler("__itex3DGrad_v2", ptr, obj, x, y, z, &dPdx, &dPdy); + +} + +template +static __attribute__((device)) T tex3DGrad(cudaTextureObject_t texObject, float x, float y, float z, float4 dPdx, float4 dPdy) +{ + + T ret; + tex3DGrad(&ret, texObject, x, y, z, dPdx, dPdy); + return ret; + +} +# 690 "/usr/include/texture_indirect_functions.h" 3 4 +template +static __attribute__((device)) typename __nv_itex_trait::type tex1DLayeredGrad(T *ptr, cudaTextureObject_t obj, float x, int layer, float dPdx, float dPdy) +{ + + __nv_tex_surf_handler("__itex1DLayeredGrad", ptr, obj, x, layer, dPdx, dPdy); + +} + +template +static __attribute__((device)) T tex1DLayeredGrad(cudaTextureObject_t texObject, float x, int layer, float dPdx, float dPdy) +{ + + T ret; + tex1DLayeredGrad(&ret, texObject, x, layer, dPdx, dPdy); + return ret; + +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2DLayeredGrad(T * ptr, cudaTextureObject_t obj, float x, float y, int layer, float2 dPdx, float2 dPdy) +{ + + __nv_tex_surf_handler("__itex2DLayeredGrad_v2", ptr, obj, x, y, layer, &dPdx, &dPdy); + +} + +template +static __attribute__((device)) T tex2DLayeredGrad(cudaTextureObject_t texObject, float x, float y, int layer, float2 dPdx, float2 dPdy) +{ + + T ret; + tex2DLayeredGrad(&ret, texObject, x, y, layer, dPdx, dPdy); + return ret; + +} +# 750 "/usr/include/texture_indirect_functions.h" 3 4 +template +static __attribute__((device)) typename __nv_itex_trait::type texCubemapLayeredGrad(T *ptr, cudaTextureObject_t obj, float x, float y, float z, int layer, float4 dPdx, float4 dPdy) +{ + + __nv_tex_surf_handler("__itexCubemapLayeredGrad_v2", ptr, obj, x, y, z, layer, &dPdx, &dPdy); + +} + +template +static __attribute__((device)) T texCubemapLayeredGrad(cudaTextureObject_t texObject, float x, float y, float z, int layer, float4 dPdx, float4 dPdy) +{ + + T ret; + texCubemapLayeredGrad(&ret, texObject, x, y, z, layer, dPdx, dPdy); + return ret; + +} +# 3305 "/usr/include/crt/device_functions.h" 2 3 4 +# 1 "/usr/include/surface_indirect_functions.h" 1 3 4 +# 59 "/usr/include/surface_indirect_functions.h" 3 4 +template struct __nv_isurf_trait { }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; + +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; + +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; + + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf1Dread(T *ptr, cudaSurfaceObject_t obj, int x, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + __nv_tex_surf_handler("__isurf1Dread", ptr, obj, x, mode); + +} + +template +static __attribute__((device)) T surf1Dread(cudaSurfaceObject_t surfObject, int x, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +{ + + T ret; + surf1Dread(&ret, surfObject, x, boundaryMode); + return ret; + +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf2Dread(T *ptr, cudaSurfaceObject_t obj, int x, int y, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + __nv_tex_surf_handler("__isurf2Dread", ptr, obj, x, y, mode); + +} + +template +static __attribute__((device)) T surf2Dread(cudaSurfaceObject_t surfObject, int x, int y, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +{ + + T ret; + surf2Dread(&ret, surfObject, x, y, boundaryMode); + return ret; + +} + + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf3Dread(T *ptr, cudaSurfaceObject_t obj, int x, int y, int z, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + __nv_tex_surf_handler("__isurf3Dread", ptr, obj, x, y, z, mode); + +} + +template +static __attribute__((device)) T surf3Dread(cudaSurfaceObject_t surfObject, int x, int y, int z, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +{ + + T ret; + surf3Dread(&ret, surfObject, x, y, z, boundaryMode); + return ret; + +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf1DLayeredread(T *ptr, cudaSurfaceObject_t obj, int x, int layer, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + __nv_tex_surf_handler("__isurf1DLayeredread", ptr, obj, x, layer, mode); + +} + +template +static __attribute__((device)) T surf1DLayeredread(cudaSurfaceObject_t surfObject, int x, int layer, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +{ + + T ret; + surf1DLayeredread(&ret, surfObject, x, layer, boundaryMode); + return ret; + +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf2DLayeredread(T *ptr, cudaSurfaceObject_t obj, int x, int y, int layer, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + __nv_tex_surf_handler("__isurf2DLayeredread", ptr, obj, x, y, layer, mode); + +} + +template +static __attribute__((device)) T surf2DLayeredread(cudaSurfaceObject_t surfObject, int x, int y, int layer, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +{ + + T ret; + surf2DLayeredread(&ret, surfObject, x, y, layer, boundaryMode); + return ret; + +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surfCubemapread(T *ptr, cudaSurfaceObject_t obj, int x, int y, int face, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + __nv_tex_surf_handler("__isurfCubemapread", ptr, obj, x, y, face, mode); + +} + +template +static __attribute__((device)) T surfCubemapread(cudaSurfaceObject_t surfObject, int x, int y, int face, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +{ + + T ret; + surfCubemapread(&ret, surfObject, x, y, face, boundaryMode); + return ret; + +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surfCubemapLayeredread(T *ptr, cudaSurfaceObject_t obj, int x, int y, int layerface, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + __nv_tex_surf_handler("__isurfCubemapLayeredread", ptr, obj, x, y, layerface, mode); + +} + +template +static __attribute__((device)) T surfCubemapLayeredread(cudaSurfaceObject_t surfObject, int x, int y, int layerface, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +{ + + T ret; + surfCubemapLayeredread(&ret, surfObject, x, y, layerface, boundaryMode); + return ret; + +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf1Dwrite(T val, cudaSurfaceObject_t obj, int x, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + __nv_tex_surf_handler("__isurf1Dwrite_v2", &val, obj, x, mode); + +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf2Dwrite(T val, cudaSurfaceObject_t obj, int x, int y, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + __nv_tex_surf_handler("__isurf2Dwrite_v2", &val, obj, x, y, mode); + +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf3Dwrite(T val, cudaSurfaceObject_t obj, int x, int y, int z, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + __nv_tex_surf_handler("__isurf3Dwrite_v2", &val, obj, x, y, z, mode); + +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf1DLayeredwrite(T val, cudaSurfaceObject_t obj, int x, int layer, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + __nv_tex_surf_handler("__isurf1DLayeredwrite_v2", &val, obj, x, layer, mode); + +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf2DLayeredwrite(T val, cudaSurfaceObject_t obj, int x, int y, int layer, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + __nv_tex_surf_handler("__isurf2DLayeredwrite_v2", &val, obj, x, y, layer, mode); + +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surfCubemapwrite(T val, cudaSurfaceObject_t obj, int x, int y, int face, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + __nv_tex_surf_handler("__isurfCubemapwrite_v2", &val, obj, x, y, face, mode); + +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surfCubemapLayeredwrite(T val, cudaSurfaceObject_t obj, int x, int y, int layerface, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + __nv_tex_surf_handler("__isurfCubemapLayeredwrite_v2", &val, obj, x, y, layerface, mode); + +} +# 3306 "/usr/include/crt/device_functions.h" 2 3 4 +# 1 "/usr/include/crt/cudacc_ext.h" 1 3 4 +# 3307 "/usr/include/crt/device_functions.h" 2 3 4 + + +extern "C" __attribute__((host)) __attribute__((device)) unsigned __cudaPushCallConfiguration(dim3 gridDim, + dim3 blockDim, + size_t sharedMem = 0, + struct CUstream_st *stream = 0); +# 119 "/usr/include/cuda_runtime.h" 2 3 4 +# 1 "/usr/include/device_launch_parameters.h" 1 3 4 +# 68 "/usr/include/device_launch_parameters.h" 3 4 +extern "C" { + + +uint3 __attribute__((device_builtin)) extern const threadIdx; +uint3 __attribute__((device_builtin)) extern const blockIdx; +dim3 __attribute__((device_builtin)) extern const blockDim; +dim3 __attribute__((device_builtin)) extern const gridDim; +int __attribute__((device_builtin)) extern const warpSize; + + + + +} +# 120 "/usr/include/cuda_runtime.h" 2 3 4 +# 147 "/usr/include/cuda_runtime.h" 3 4 +# 1 "/usr/include/c++/9/utility" 1 3 4 +# 58 "/usr/include/c++/9/utility" 3 4 + +# 59 "/usr/include/c++/9/utility" 3 +# 69 "/usr/include/c++/9/utility" 3 +# 1 "/usr/include/c++/9/bits/stl_relops.h" 1 3 +# 67 "/usr/include/c++/9/bits/stl_relops.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + namespace rel_ops + { +# 85 "/usr/include/c++/9/bits/stl_relops.h" 3 + template + inline bool + operator!=(const _Tp& __x, const _Tp& __y) + { return !(__x == __y); } +# 98 "/usr/include/c++/9/bits/stl_relops.h" 3 + template + inline bool + operator>(const _Tp& __x, const _Tp& __y) + { return __y < __x; } +# 111 "/usr/include/c++/9/bits/stl_relops.h" 3 + template + inline bool + operator<=(const _Tp& __x, const _Tp& __y) + { return !(__y < __x); } +# 124 "/usr/include/c++/9/bits/stl_relops.h" 3 + template + inline bool + operator>=(const _Tp& __x, const _Tp& __y) + { return !(__x < __y); } + } + + +} +# 70 "/usr/include/c++/9/utility" 2 3 +# 1 "/usr/include/c++/9/bits/stl_pair.h" 1 3 +# 65 "/usr/include/c++/9/bits/stl_pair.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 76 "/usr/include/c++/9/bits/stl_pair.h" 3 + struct piecewise_construct_t { explicit piecewise_construct_t() = default; }; + + + constexpr piecewise_construct_t piecewise_construct = + piecewise_construct_t(); + + + template + class tuple; + + template + struct _Index_tuple; + + + + + + + template + struct _PCC + { + template + static constexpr bool _ConstructiblePair() + { + return __and_, + is_constructible<_T2, const _U2&>>::value; + } + + template + static constexpr bool _ImplicitlyConvertiblePair() + { + return __and_, + is_convertible>::value; + } + + template + static constexpr bool _MoveConstructiblePair() + { + return __and_, + is_constructible<_T2, _U2&&>>::value; + } + + template + static constexpr bool _ImplicitlyMoveConvertiblePair() + { + return __and_, + is_convertible<_U2&&, _T2>>::value; + } + + template + static constexpr bool _CopyMovePair() + { + using __do_converts = __and_, + is_convertible<_U2&&, _T2>>; + using __converts = typename conditional<__implicit, + __do_converts, + __not_<__do_converts>>::type; + return __and_, + is_constructible<_T2, _U2&&>, + __converts + >::value; + } + + template + static constexpr bool _MoveCopyPair() + { + using __do_converts = __and_, + is_convertible>; + using __converts = typename conditional<__implicit, + __do_converts, + __not_<__do_converts>>::type; + return __and_, + is_constructible<_T2, const _U2&&>, + __converts + >::value; + } + }; + + template + struct _PCC + { + template + static constexpr bool _ConstructiblePair() + { + return false; + } + + template + static constexpr bool _ImplicitlyConvertiblePair() + { + return false; + } + + template + static constexpr bool _MoveConstructiblePair() + { + return false; + } + + template + static constexpr bool _ImplicitlyMoveConvertiblePair() + { + return false; + } + }; + + + + + struct __nonesuch_no_braces : std::__nonesuch { + explicit __nonesuch_no_braces(const __nonesuch&) = delete; + }; + + + template class __pair_base + { + + template friend struct pair; + __pair_base() = default; + ~__pair_base() = default; + __pair_base(const __pair_base&) = default; + __pair_base& operator=(const __pair_base&) = delete; + + }; + + + + + + + + template + struct pair + : private __pair_base<_T1, _T2> + { + typedef _T1 first_type; + typedef _T2 second_type; + + _T1 first; + _T2 second; + + + + + + + template , + __is_implicitly_default_constructible<_U2>> + ::value, bool>::type = true> + + constexpr pair() + : first(), second() { } + + + template , + is_default_constructible<_U2>, + __not_< + __and_<__is_implicitly_default_constructible<_U1>, + __is_implicitly_default_constructible<_U2>>>> + ::value, bool>::type = false> + explicit constexpr pair() + : first(), second() { } +# 252 "/usr/include/c++/9/bits/stl_pair.h" 3 + using _PCCP = _PCC; + + template() + && _PCCP::template + _ImplicitlyConvertiblePair<_U1, _U2>(), + bool>::type=true> + constexpr pair(const _T1& __a, const _T2& __b) + : first(__a), second(__b) { } + + template() + && !_PCCP::template + _ImplicitlyConvertiblePair<_U1, _U2>(), + bool>::type=false> + explicit constexpr pair(const _T1& __a, const _T2& __b) + : first(__a), second(__b) { } +# 280 "/usr/include/c++/9/bits/stl_pair.h" 3 + template + using _PCCFP = _PCC::value + || !is_same<_T2, _U2>::value, + _T1, _T2>; + + template::template + _ConstructiblePair<_U1, _U2>() + && _PCCFP<_U1, _U2>::template + _ImplicitlyConvertiblePair<_U1, _U2>(), + bool>::type=true> + constexpr pair(const pair<_U1, _U2>& __p) + : first(__p.first), second(__p.second) { } + + template::template + _ConstructiblePair<_U1, _U2>() + && !_PCCFP<_U1, _U2>::template + _ImplicitlyConvertiblePair<_U1, _U2>(), + bool>::type=false> + explicit constexpr pair(const pair<_U1, _U2>& __p) + : first(__p.first), second(__p.second) { } + + constexpr pair(const pair&) = default; + constexpr pair(pair&&) = default; + + + template(), + bool>::type=true> + constexpr pair(_U1&& __x, const _T2& __y) + : first(std::forward<_U1>(__x)), second(__y) { } + + template(), + bool>::type=false> + explicit constexpr pair(_U1&& __x, const _T2& __y) + : first(std::forward<_U1>(__x)), second(__y) { } + + template(), + bool>::type=true> + constexpr pair(const _T1& __x, _U2&& __y) + : first(__x), second(std::forward<_U2>(__y)) { } + + template(), + bool>::type=false> + explicit pair(const _T1& __x, _U2&& __y) + : first(__x), second(std::forward<_U2>(__y)) { } + + template() + && _PCCP::template + _ImplicitlyMoveConvertiblePair<_U1, _U2>(), + bool>::type=true> + constexpr pair(_U1&& __x, _U2&& __y) + : first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) { } + + template() + && !_PCCP::template + _ImplicitlyMoveConvertiblePair<_U1, _U2>(), + bool>::type=false> + explicit constexpr pair(_U1&& __x, _U2&& __y) + : first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) { } + + + template::template + _MoveConstructiblePair<_U1, _U2>() + && _PCCFP<_U1, _U2>::template + _ImplicitlyMoveConvertiblePair<_U1, _U2>(), + bool>::type=true> + constexpr pair(pair<_U1, _U2>&& __p) + : first(std::forward<_U1>(__p.first)), + second(std::forward<_U2>(__p.second)) { } + + template::template + _MoveConstructiblePair<_U1, _U2>() + && !_PCCFP<_U1, _U2>::template + _ImplicitlyMoveConvertiblePair<_U1, _U2>(), + bool>::type=false> + explicit constexpr pair(pair<_U1, _U2>&& __p) + : first(std::forward<_U1>(__p.first)), + second(std::forward<_U2>(__p.second)) { } + + template + pair(piecewise_construct_t, tuple<_Args1...>, tuple<_Args2...>); + + pair& + operator=(typename conditional< + __and_, + is_copy_assignable<_T2>>::value, + const pair&, const __nonesuch_no_braces&>::type __p) + { + first = __p.first; + second = __p.second; + return *this; + } + + pair& + operator=(typename conditional< + __and_, + is_move_assignable<_T2>>::value, + pair&&, __nonesuch_no_braces&&>::type __p) + noexcept(__and_, + is_nothrow_move_assignable<_T2>>::value) + { + first = std::forward(__p.first); + second = std::forward(__p.second); + return *this; + } + + template + typename enable_if<__and_, + is_assignable<_T2&, const _U2&>>::value, + pair&>::type + operator=(const pair<_U1, _U2>& __p) + { + first = __p.first; + second = __p.second; + return *this; + } + + template + typename enable_if<__and_, + is_assignable<_T2&, _U2&&>>::value, + pair&>::type + operator=(pair<_U1, _U2>&& __p) + { + first = std::forward<_U1>(__p.first); + second = std::forward<_U2>(__p.second); + return *this; + } + + void + swap(pair& __p) + noexcept(__and_<__is_nothrow_swappable<_T1>, + __is_nothrow_swappable<_T2>>::value) + { + using std::swap; + swap(first, __p.first); + swap(second, __p.second); + } + + private: + template + pair(tuple<_Args1...>&, tuple<_Args2...>&, + _Index_tuple<_Indexes1...>, _Index_tuple<_Indexes2...>); + + }; + + + + + + + template + inline constexpr bool + operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) + { return __x.first == __y.first && __x.second == __y.second; } + + + template + inline constexpr bool + operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) + { return __x.first < __y.first + || (!(__y.first < __x.first) && __x.second < __y.second); } + + + template + inline constexpr bool + operator!=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) + { return !(__x == __y); } + + + template + inline constexpr bool + operator>(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) + { return __y < __x; } + + + template + inline constexpr bool + operator<=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) + { return !(__y < __x); } + + + template + inline constexpr bool + operator>=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) + { return !(__x < __y); } + + + + + + template + inline + + + typename enable_if<__and_<__is_swappable<_T1>, + __is_swappable<_T2>>::value>::type + + + + swap(pair<_T1, _T2>& __x, pair<_T1, _T2>& __y) + noexcept(noexcept(__x.swap(__y))) + { __x.swap(__y); } + + + template + typename enable_if, + __is_swappable<_T2>>::value>::type + swap(pair<_T1, _T2>&, pair<_T1, _T2>&) = delete; +# 521 "/usr/include/c++/9/bits/stl_pair.h" 3 + template + constexpr pair::__type, + typename __decay_and_strip<_T2>::__type> + make_pair(_T1&& __x, _T2&& __y) + { + typedef typename __decay_and_strip<_T1>::__type __ds_type1; + typedef typename __decay_and_strip<_T2>::__type __ds_type2; + typedef pair<__ds_type1, __ds_type2> __pair_type; + return __pair_type(std::forward<_T1>(__x), std::forward<_T2>(__y)); + } +# 540 "/usr/include/c++/9/bits/stl_pair.h" 3 + +} +# 71 "/usr/include/c++/9/utility" 2 3 + + + + + +# 1 "/usr/include/c++/9/initializer_list" 1 3 +# 33 "/usr/include/c++/9/initializer_list" 3 + +# 34 "/usr/include/c++/9/initializer_list" 3 + + + + + +#pragma GCC visibility push(default) + + + +namespace std +{ + + template + class initializer_list + { + public: + typedef _E value_type; + typedef const _E& reference; + typedef const _E& const_reference; + typedef size_t size_type; + typedef const _E* iterator; + typedef const _E* const_iterator; + + private: + iterator _M_array; + size_type _M_len; + + + constexpr initializer_list(const_iterator __a, size_type __l) + : _M_array(__a), _M_len(__l) { } + + public: + constexpr initializer_list() noexcept + : _M_array(0), _M_len(0) { } + + + constexpr size_type + size() const noexcept { return _M_len; } + + + constexpr const_iterator + begin() const noexcept { return _M_array; } + + + constexpr const_iterator + end() const noexcept { return begin() + size(); } + }; + + + + + + + template + constexpr const _Tp* + begin(initializer_list<_Tp> __ils) noexcept + { return __ils.begin(); } + + + + + + + template + constexpr const _Tp* + end(initializer_list<_Tp> __ils) noexcept + { return __ils.end(); } +} + +#pragma GCC visibility pop +# 77 "/usr/include/c++/9/utility" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + template + struct tuple_size; + + + + + + template::type, + typename = typename enable_if::value>::type, + size_t = tuple_size<_Tp>::value> + using __enable_if_has_tuple_size = _Tp; + + template + struct tuple_size> + : public tuple_size<_Tp> { }; + + template + struct tuple_size> + : public tuple_size<_Tp> { }; + + template + struct tuple_size> + : public tuple_size<_Tp> { }; + + + template + struct tuple_element; + + + template + using __tuple_element_t = typename tuple_element<__i, _Tp>::type; + + template + struct tuple_element<__i, const _Tp> + { + typedef typename add_const<__tuple_element_t<__i, _Tp>>::type type; + }; + + template + struct tuple_element<__i, volatile _Tp> + { + typedef typename add_volatile<__tuple_element_t<__i, _Tp>>::type type; + }; + + template + struct tuple_element<__i, const volatile _Tp> + { + typedef typename add_cv<__tuple_element_t<__i, _Tp>>::type type; + }; + + + + + + + + template + using tuple_element_t = typename tuple_element<__i, _Tp>::type; + + + + + + template + struct __is_tuple_like_impl> : true_type + { }; + + + template + struct tuple_size> + : public integral_constant { }; + + + template + struct tuple_element<0, std::pair<_Tp1, _Tp2>> + { typedef _Tp1 type; }; + + + template + struct tuple_element<1, std::pair<_Tp1, _Tp2>> + { typedef _Tp2 type; }; + + template + struct __pair_get; + + template<> + struct __pair_get<0> + { + template + static constexpr _Tp1& + __get(std::pair<_Tp1, _Tp2>& __pair) noexcept + { return __pair.first; } + + template + static constexpr _Tp1&& + __move_get(std::pair<_Tp1, _Tp2>&& __pair) noexcept + { return std::forward<_Tp1>(__pair.first); } + + template + static constexpr const _Tp1& + __const_get(const std::pair<_Tp1, _Tp2>& __pair) noexcept + { return __pair.first; } + + template + static constexpr const _Tp1&& + __const_move_get(const std::pair<_Tp1, _Tp2>&& __pair) noexcept + { return std::forward(__pair.first); } + }; + + template<> + struct __pair_get<1> + { + template + static constexpr _Tp2& + __get(std::pair<_Tp1, _Tp2>& __pair) noexcept + { return __pair.second; } + + template + static constexpr _Tp2&& + __move_get(std::pair<_Tp1, _Tp2>&& __pair) noexcept + { return std::forward<_Tp2>(__pair.second); } + + template + static constexpr const _Tp2& + __const_get(const std::pair<_Tp1, _Tp2>& __pair) noexcept + { return __pair.second; } + + template + static constexpr const _Tp2&& + __const_move_get(const std::pair<_Tp1, _Tp2>&& __pair) noexcept + { return std::forward(__pair.second); } + }; + + template + constexpr typename tuple_element<_Int, std::pair<_Tp1, _Tp2>>::type& + get(std::pair<_Tp1, _Tp2>& __in) noexcept + { return __pair_get<_Int>::__get(__in); } + + template + constexpr typename tuple_element<_Int, std::pair<_Tp1, _Tp2>>::type&& + get(std::pair<_Tp1, _Tp2>&& __in) noexcept + { return __pair_get<_Int>::__move_get(std::move(__in)); } + + template + constexpr const typename tuple_element<_Int, std::pair<_Tp1, _Tp2>>::type& + get(const std::pair<_Tp1, _Tp2>& __in) noexcept + { return __pair_get<_Int>::__const_get(__in); } + + template + constexpr const typename tuple_element<_Int, std::pair<_Tp1, _Tp2>>::type&& + get(const std::pair<_Tp1, _Tp2>&& __in) noexcept + { return __pair_get<_Int>::__const_move_get(std::move(__in)); } + + + + + + template + constexpr _Tp& + get(pair<_Tp, _Up>& __p) noexcept + { return __p.first; } + + template + constexpr const _Tp& + get(const pair<_Tp, _Up>& __p) noexcept + { return __p.first; } + + template + constexpr _Tp&& + get(pair<_Tp, _Up>&& __p) noexcept + { return std::move(__p.first); } + + template + constexpr const _Tp&& + get(const pair<_Tp, _Up>&& __p) noexcept + { return std::move(__p.first); } + + template + constexpr _Tp& + get(pair<_Up, _Tp>& __p) noexcept + { return __p.second; } + + template + constexpr const _Tp& + get(const pair<_Up, _Tp>& __p) noexcept + { return __p.second; } + + template + constexpr _Tp&& + get(pair<_Up, _Tp>&& __p) noexcept + { return std::move(__p.second); } + + template + constexpr const _Tp&& + get(const pair<_Up, _Tp>&& __p) noexcept + { return std::move(__p.second); } + + + + + template + inline _Tp + exchange(_Tp& __obj, _Up&& __new_val) + { return std::__exchange(__obj, std::forward<_Up>(__new_val)); } + + + + + template struct _Index_tuple { }; +# 301 "/usr/include/c++/9/utility" 3 + template + struct _Build_index_tuple + { + + + + + + + using __type = _Index_tuple<__integer_pack(_Num)...>; + + }; + + + + + + + template + struct integer_sequence + { + typedef _Tp value_type; + static constexpr size_t size() noexcept { return sizeof...(_Idx); } + }; + + + template + using make_integer_sequence + + + + = integer_sequence<_Tp, __integer_pack(_Num)...>; + + + + + + template + using index_sequence = integer_sequence; + + + template + using make_index_sequence = make_integer_sequence; + + + template + using index_sequence_for = make_index_sequence; +# 396 "/usr/include/c++/9/utility" 3 + +} +# 148 "/usr/include/cuda_runtime.h" 2 3 4 +# 205 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) cudaError_t cudaLaunchKernel( + const T *func, + dim3 gridDim, + dim3 blockDim, + void **args, + size_t sharedMem = 0, + cudaStream_t stream = 0 +) +{ + return ::cudaLaunchKernel((const void *)func, gridDim, blockDim, args, sharedMem, stream); +} +# 276 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) cudaError_t cudaLaunchKernelEx( + const cudaLaunchConfig_t *config, + void (*kernel)(ExpTypes...), + ActTypes &&... args +) +{ + return [&](ExpTypes... coercedArgs){ + void *pArgs[] = { &coercedArgs... }; + return ::cudaLaunchKernelExC(config, (const void *)kernel, pArgs); + }(std::forward(args)...); +} +# 339 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) cudaError_t cudaLaunchCooperativeKernel( + const T *func, + dim3 gridDim, + dim3 blockDim, + void **args, + size_t sharedMem = 0, + cudaStream_t stream = 0 +) +{ + return ::cudaLaunchCooperativeKernel((const void *)func, gridDim, blockDim, args, sharedMem, stream); +} +# 383 "/usr/include/cuda_runtime.h" 3 4 +static __inline__ __attribute__((host)) cudaError_t cudaEventCreate( + cudaEvent_t *event, + unsigned int flags +) +{ + return ::cudaEventCreateWithFlags(event, flags); +} +# 448 "/usr/include/cuda_runtime.h" 3 4 +static __inline__ __attribute__((host)) cudaError_t cudaMallocHost( + void **ptr, + size_t size, + unsigned int flags +) +{ + return ::cudaHostAlloc(ptr, size, flags); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaHostAlloc( + T **ptr, + size_t size, + unsigned int flags +) +{ + return ::cudaHostAlloc((void**)(void*)ptr, size, flags); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaHostGetDevicePointer( + T **pDevice, + void *pHost, + unsigned int flags +) +{ + return ::cudaHostGetDevicePointer((void**)(void*)pDevice, pHost, flags); +} +# 577 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) cudaError_t cudaMallocManaged( + T **devPtr, + size_t size, + unsigned int flags = 0x01 +) +{ + return ::cudaMallocManaged((void**)(void*)devPtr, size, flags); +} +# 667 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) cudaError_t cudaStreamAttachMemAsync( + cudaStream_t stream, + T *devPtr, + size_t length = 0, + unsigned int flags = 0x04 +) +{ + return ::cudaStreamAttachMemAsync(stream, (void*)devPtr, length, flags); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaMalloc( + T **devPtr, + size_t size +) +{ + return ::cudaMalloc((void**)(void*)devPtr, size); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaMallocHost( + T **ptr, + size_t size, + unsigned int flags = 0 +) +{ + return cudaMallocHost((void**)(void*)ptr, size, flags); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaMallocPitch( + T **devPtr, + size_t *pitch, + size_t width, + size_t height +) +{ + return ::cudaMallocPitch((void**)(void*)devPtr, pitch, width, height); +} +# 717 "/usr/include/cuda_runtime.h" 3 4 +static __inline__ __attribute__((host)) cudaError_t cudaMallocAsync( + void **ptr, + size_t size, + cudaMemPool_t memPool, + cudaStream_t stream +) +{ + return ::cudaMallocFromPoolAsync(ptr, size, memPool, stream); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaMallocAsync( + T **ptr, + size_t size, + cudaMemPool_t memPool, + cudaStream_t stream +) +{ + return ::cudaMallocFromPoolAsync((void**)(void*)ptr, size, memPool, stream); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaMallocAsync( + T **ptr, + size_t size, + cudaStream_t stream +) +{ + return ::cudaMallocAsync((void**)(void*)ptr, size, stream); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaMallocFromPoolAsync( + T **ptr, + size_t size, + cudaMemPool_t memPool, + cudaStream_t stream +) +{ + return ::cudaMallocFromPoolAsync((void**)(void*)ptr, size, memPool, stream); +} +# 796 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) cudaError_t cudaMemcpyToSymbol( + const T &symbol, + const void *src, + size_t count, + size_t offset = 0, + enum cudaMemcpyKind kind = cudaMemcpyHostToDevice +) +{ + return ::cudaMemcpyToSymbol((const void*)&symbol, src, count, offset, kind); +} +# 850 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) cudaError_t cudaMemcpyToSymbolAsync( + const T &symbol, + const void *src, + size_t count, + size_t offset = 0, + enum cudaMemcpyKind kind = cudaMemcpyHostToDevice, + cudaStream_t stream = 0 +) +{ + return ::cudaMemcpyToSymbolAsync((const void*)&symbol, src, count, offset, kind, stream); +} +# 898 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) cudaError_t cudaMemcpyFromSymbol( + void *dst, + const T &symbol, + size_t count, + size_t offset = 0, + enum cudaMemcpyKind kind = cudaMemcpyDeviceToHost +) +{ + return ::cudaMemcpyFromSymbol(dst, (const void*)&symbol, count, offset, kind); +} +# 952 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) cudaError_t cudaMemcpyFromSymbolAsync( + void *dst, + const T &symbol, + size_t count, + size_t offset = 0, + enum cudaMemcpyKind kind = cudaMemcpyDeviceToHost, + cudaStream_t stream = 0 +) +{ + return ::cudaMemcpyFromSymbolAsync(dst, (const void*)&symbol, count, offset, kind, stream); +} +# 1021 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) cudaError_t cudaGraphAddMemcpyNodeToSymbol( + cudaGraphNode_t *pGraphNode, + cudaGraph_t graph, + const cudaGraphNode_t *pDependencies, + size_t numDependencies, + const T &symbol, + const void* src, + size_t count, + size_t offset, + enum cudaMemcpyKind kind) +{ + return ::cudaGraphAddMemcpyNodeToSymbol(pGraphNode, graph, pDependencies, numDependencies, (const void*)&symbol, src, count, offset, kind); +} +# 1092 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) cudaError_t cudaGraphAddMemcpyNodeFromSymbol( + cudaGraphNode_t* pGraphNode, + cudaGraph_t graph, + const cudaGraphNode_t* pDependencies, + size_t numDependencies, + void* dst, + const T &symbol, + size_t count, + size_t offset, + enum cudaMemcpyKind kind) +{ + return ::cudaGraphAddMemcpyNodeFromSymbol(pGraphNode, graph, pDependencies, numDependencies, dst, (const void*)&symbol, count, offset, kind); +} +# 1143 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) cudaError_t cudaGraphMemcpyNodeSetParamsToSymbol( + cudaGraphNode_t node, + const T &symbol, + const void* src, + size_t count, + size_t offset, + enum cudaMemcpyKind kind) +{ + return ::cudaGraphMemcpyNodeSetParamsToSymbol(node, (const void*)&symbol, src, count, offset, kind); +} +# 1191 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) cudaError_t cudaGraphMemcpyNodeSetParamsFromSymbol( + cudaGraphNode_t node, + void* dst, + const T &symbol, + size_t count, + size_t offset, + enum cudaMemcpyKind kind) +{ + return ::cudaGraphMemcpyNodeSetParamsFromSymbol(node, dst, (const void*)&symbol, count, offset, kind); +} +# 1249 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) cudaError_t cudaGraphExecMemcpyNodeSetParamsToSymbol( + cudaGraphExec_t hGraphExec, + cudaGraphNode_t node, + const T &symbol, + const void* src, + size_t count, + size_t offset, + enum cudaMemcpyKind kind) +{ + return ::cudaGraphExecMemcpyNodeSetParamsToSymbol(hGraphExec, node, (const void*)&symbol, src, count, offset, kind); +} +# 1308 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) cudaError_t cudaGraphExecMemcpyNodeSetParamsFromSymbol( + cudaGraphExec_t hGraphExec, + cudaGraphNode_t node, + void* dst, + const T &symbol, + size_t count, + size_t offset, + enum cudaMemcpyKind kind) +{ + return ::cudaGraphExecMemcpyNodeSetParamsFromSymbol(hGraphExec, node, dst, (const void*)&symbol, count, offset, kind); +} +# 1347 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) cudaError_t cudaUserObjectCreate( + cudaUserObject_t *object_out, + T *objectToWrap, + unsigned int initialRefcount, + unsigned int flags) +{ + return ::cudaUserObjectCreate( + object_out, + objectToWrap, + [](void *vpObj) { delete reinterpret_cast(vpObj); }, + initialRefcount, + flags); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaUserObjectCreate( + cudaUserObject_t *object_out, + T *objectToWrap, + unsigned int initialRefcount, + cudaUserObjectFlags flags) +{ + return cudaUserObjectCreate(object_out, objectToWrap, initialRefcount, (unsigned int)flags); +} +# 1397 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) cudaError_t cudaGetSymbolAddress( + void **devPtr, + const T &symbol +) +{ + return ::cudaGetSymbolAddress(devPtr, (const void*)&symbol); +} +# 1429 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) cudaError_t cudaGetSymbolSize( + size_t *size, + const T &symbol +) +{ + return ::cudaGetSymbolSize(size, (const void*)&symbol); +} +# 1473 "/usr/include/cuda_runtime.h" 3 4 +template +static __attribute__((deprecated)) __inline__ __attribute__((host)) cudaError_t cudaBindTexture( + size_t *offset, + const struct texture &tex, + const void *devPtr, + const struct cudaChannelFormatDesc &desc, + size_t size = (0x7fffffff * 2U + 1U) +) +{ + return ::cudaBindTexture(offset, &tex, devPtr, &desc, size); +} +# 1519 "/usr/include/cuda_runtime.h" 3 4 +template +static __attribute__((deprecated)) __inline__ __attribute__((host)) cudaError_t cudaBindTexture( + size_t *offset, + const struct texture &tex, + const void *devPtr, + size_t size = (0x7fffffff * 2U + 1U) +) +{ + return cudaBindTexture(offset, tex, devPtr, tex.channelDesc, size); +} +# 1576 "/usr/include/cuda_runtime.h" 3 4 +template +static __attribute__((deprecated)) __inline__ __attribute__((host)) cudaError_t cudaBindTexture2D( + size_t *offset, + const struct texture &tex, + const void *devPtr, + const struct cudaChannelFormatDesc &desc, + size_t width, + size_t height, + size_t pitch +) +{ + return ::cudaBindTexture2D(offset, &tex, devPtr, &desc, width, height, pitch); +} +# 1635 "/usr/include/cuda_runtime.h" 3 4 +template +static __attribute__((deprecated)) __inline__ __attribute__((host)) cudaError_t cudaBindTexture2D( + size_t *offset, + const struct texture &tex, + const void *devPtr, + size_t width, + size_t height, + size_t pitch +) +{ + return ::cudaBindTexture2D(offset, &tex, devPtr, &tex.channelDesc, width, height, pitch); +} +# 1678 "/usr/include/cuda_runtime.h" 3 4 +template +static __attribute__((deprecated)) __inline__ __attribute__((host)) cudaError_t cudaBindTextureToArray( + const struct texture &tex, + cudaArray_const_t array, + const struct cudaChannelFormatDesc &desc +) +{ + return ::cudaBindTextureToArray(&tex, array, &desc); +} +# 1717 "/usr/include/cuda_runtime.h" 3 4 +template +static __attribute__((deprecated)) __inline__ __attribute__((host)) cudaError_t cudaBindTextureToArray( + const struct texture &tex, + cudaArray_const_t array +) +{ + struct cudaChannelFormatDesc desc; + cudaError_t err = ::cudaGetChannelDesc(&desc, array); + + return err == cudaSuccess ? cudaBindTextureToArray(tex, array, desc) : err; +} +# 1759 "/usr/include/cuda_runtime.h" 3 4 +template +static __attribute__((deprecated)) __inline__ __attribute__((host)) cudaError_t cudaBindTextureToMipmappedArray( + const struct texture &tex, + cudaMipmappedArray_const_t mipmappedArray, + const struct cudaChannelFormatDesc &desc +) +{ + return ::cudaBindTextureToMipmappedArray(&tex, mipmappedArray, &desc); +} +# 1798 "/usr/include/cuda_runtime.h" 3 4 +template +static __attribute__((deprecated)) __inline__ __attribute__((host)) cudaError_t cudaBindTextureToMipmappedArray( + const struct texture &tex, + cudaMipmappedArray_const_t mipmappedArray +) +{ + struct cudaChannelFormatDesc desc; + cudaArray_t levelArray; + cudaError_t err = ::cudaGetMipmappedArrayLevel(&levelArray, mipmappedArray, 0); + + if (err != cudaSuccess) { + return err; + } + err = ::cudaGetChannelDesc(&desc, levelArray); + + return err == cudaSuccess ? cudaBindTextureToMipmappedArray(tex, mipmappedArray, desc) : err; +} +# 1841 "/usr/include/cuda_runtime.h" 3 4 +template +static __attribute__((deprecated)) __inline__ __attribute__((host)) cudaError_t cudaUnbindTexture( + const struct texture &tex +) +{ + return ::cudaUnbindTexture(&tex); +} +# 1877 "/usr/include/cuda_runtime.h" 3 4 +template +static __attribute__((deprecated)) __inline__ __attribute__((host)) cudaError_t cudaGetTextureAlignmentOffset( + size_t *offset, + const struct texture &tex +) +{ + return ::cudaGetTextureAlignmentOffset(offset, &tex); +} +# 1929 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) cudaError_t cudaFuncSetCacheConfig( + T *func, + enum cudaFuncCache cacheConfig +) +{ + return ::cudaFuncSetCacheConfig((const void*)func, cacheConfig); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaFuncSetSharedMemConfig( + T *func, + enum cudaSharedMemConfig config +) +{ + return ::cudaFuncSetSharedMemConfig((const void*)func, config); +} +# 1977 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessor( + int *numBlocks, + T func, + int blockSize, + size_t dynamicSMemSize) +{ + return ::cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(numBlocks, (const void*)func, blockSize, dynamicSMemSize, 0x00); +} +# 2029 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags( + int *numBlocks, + T func, + int blockSize, + size_t dynamicSMemSize, + unsigned int flags) +{ + return ::cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(numBlocks, (const void*)func, blockSize, dynamicSMemSize, flags); +} + + + + +class __cudaOccupancyB2DHelper { + size_t n; +public: + inline __attribute__((host)) __attribute__((device)) __cudaOccupancyB2DHelper(size_t n_) : n(n_) {} + inline __attribute__((host)) __attribute__((device)) size_t operator()(int) + { + return n; + } +}; +# 2099 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) __attribute__((device)) cudaError_t cudaOccupancyMaxPotentialBlockSizeVariableSMemWithFlags( + int *minGridSize, + int *blockSize, + T func, + UnaryFunction blockSizeToDynamicSMemSize, + int blockSizeLimit = 0, + unsigned int flags = 0) +{ + cudaError_t status; + + + int device; + struct cudaFuncAttributes attr; + + + int maxThreadsPerMultiProcessor; + int warpSize; + int devMaxThreadsPerBlock; + int multiProcessorCount; + int funcMaxThreadsPerBlock; + int occupancyLimit; + int granularity; + + + int maxBlockSize = 0; + int numBlocks = 0; + int maxOccupancy = 0; + + + int blockSizeToTryAligned; + int blockSizeToTry; + int blockSizeLimitAligned; + int occupancyInBlocks; + int occupancyInThreads; + size_t dynamicSMemSize; + + + + + + if (!minGridSize || !blockSize || !func) { + return cudaErrorInvalidValue; + } + + + + + + status = ::cudaGetDevice(&device); + if (status != cudaSuccess) { + return status; + } + + status = cudaDeviceGetAttribute( + &maxThreadsPerMultiProcessor, + cudaDevAttrMaxThreadsPerMultiProcessor, + device); + if (status != cudaSuccess) { + return status; + } + + status = cudaDeviceGetAttribute( + &warpSize, + cudaDevAttrWarpSize, + device); + if (status != cudaSuccess) { + return status; + } + + status = cudaDeviceGetAttribute( + &devMaxThreadsPerBlock, + cudaDevAttrMaxThreadsPerBlock, + device); + if (status != cudaSuccess) { + return status; + } + + status = cudaDeviceGetAttribute( + &multiProcessorCount, + cudaDevAttrMultiProcessorCount, + device); + if (status != cudaSuccess) { + return status; + } + + status = cudaFuncGetAttributes(&attr, func); + if (status != cudaSuccess) { + return status; + } + + funcMaxThreadsPerBlock = attr.maxThreadsPerBlock; + + + + + + occupancyLimit = maxThreadsPerMultiProcessor; + granularity = warpSize; + + if (blockSizeLimit == 0) { + blockSizeLimit = devMaxThreadsPerBlock; + } + + if (devMaxThreadsPerBlock < blockSizeLimit) { + blockSizeLimit = devMaxThreadsPerBlock; + } + + if (funcMaxThreadsPerBlock < blockSizeLimit) { + blockSizeLimit = funcMaxThreadsPerBlock; + } + + blockSizeLimitAligned = ((blockSizeLimit + (granularity - 1)) / granularity) * granularity; + + for (blockSizeToTryAligned = blockSizeLimitAligned; blockSizeToTryAligned > 0; blockSizeToTryAligned -= granularity) { + + + + if (blockSizeLimit < blockSizeToTryAligned) { + blockSizeToTry = blockSizeLimit; + } else { + blockSizeToTry = blockSizeToTryAligned; + } + + dynamicSMemSize = blockSizeToDynamicSMemSize(blockSizeToTry); + + status = cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags( + &occupancyInBlocks, + func, + blockSizeToTry, + dynamicSMemSize, + flags); + + if (status != cudaSuccess) { + return status; + } + + occupancyInThreads = blockSizeToTry * occupancyInBlocks; + + if (occupancyInThreads > maxOccupancy) { + maxBlockSize = blockSizeToTry; + numBlocks = occupancyInBlocks; + maxOccupancy = occupancyInThreads; + } + + + + if (occupancyLimit == maxOccupancy) { + break; + } + } + + + + + + + + *minGridSize = numBlocks * multiProcessorCount; + *blockSize = maxBlockSize; + + return status; +} +# 2295 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) __attribute__((device)) cudaError_t cudaOccupancyMaxPotentialBlockSizeVariableSMem( + int *minGridSize, + int *blockSize, + T func, + UnaryFunction blockSizeToDynamicSMemSize, + int blockSizeLimit = 0) +{ + return cudaOccupancyMaxPotentialBlockSizeVariableSMemWithFlags(minGridSize, blockSize, func, blockSizeToDynamicSMemSize, blockSizeLimit, 0x00); +} +# 2341 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) __attribute__((device)) cudaError_t cudaOccupancyMaxPotentialBlockSize( + int *minGridSize, + int *blockSize, + T func, + size_t dynamicSMemSize = 0, + int blockSizeLimit = 0) +{ + return cudaOccupancyMaxPotentialBlockSizeVariableSMemWithFlags(minGridSize, blockSize, func, __cudaOccupancyB2DHelper(dynamicSMemSize), blockSizeLimit, 0x00); +} +# 2379 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) cudaError_t cudaOccupancyAvailableDynamicSMemPerBlock( + size_t *dynamicSmemSize, + T func, + int numBlocks, + int blockSize) +{ + return ::cudaOccupancyAvailableDynamicSMemPerBlock(dynamicSmemSize, (const void*)func, numBlocks, blockSize); +} +# 2438 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) __attribute__((device)) cudaError_t cudaOccupancyMaxPotentialBlockSizeWithFlags( + int *minGridSize, + int *blockSize, + T func, + size_t dynamicSMemSize = 0, + int blockSizeLimit = 0, + unsigned int flags = 0) +{ + return cudaOccupancyMaxPotentialBlockSizeVariableSMemWithFlags(minGridSize, blockSize, func, __cudaOccupancyB2DHelper(dynamicSMemSize), blockSizeLimit, flags); +} +# 2482 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) cudaError_t cudaOccupancyMaxPotentialClusterSize( + int *clusterSize, + T *func, + const cudaLaunchConfig_t *config) +{ + return ::cudaOccupancyMaxPotentialClusterSize(clusterSize, (const void*)func, config); +} +# 2525 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) cudaError_t cudaOccupancyMaxActiveClusters( + int *numClusters, + T *func, + const cudaLaunchConfig_t *config) +{ + return ::cudaOccupancyMaxActiveClusters(numClusters, (const void*)func, config); +} +# 2565 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) cudaError_t cudaFuncGetAttributes( + struct cudaFuncAttributes *attr, + T *entry +) +{ + return ::cudaFuncGetAttributes(attr, (const void*)entry); +} +# 2627 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) cudaError_t cudaFuncSetAttribute( + T *entry, + enum cudaFuncAttribute attr, + int value +) +{ + return ::cudaFuncSetAttribute((const void*)entry, attr, value); +} +# 2659 "/usr/include/cuda_runtime.h" 3 4 +template +static __attribute__((deprecated)) __inline__ __attribute__((host)) cudaError_t cudaBindSurfaceToArray( + const struct surface &surf, + cudaArray_const_t array, + const struct cudaChannelFormatDesc &desc +) +{ + return ::cudaBindSurfaceToArray(&surf, array, &desc); +} +# 2690 "/usr/include/cuda_runtime.h" 3 4 +template +static __attribute__((deprecated)) __inline__ __attribute__((host)) cudaError_t cudaBindSurfaceToArray( + const struct surface &surf, + cudaArray_const_t array +) +{ + struct cudaChannelFormatDesc desc; + cudaError_t err = ::cudaGetChannelDesc(&desc, array); + + return err == cudaSuccess ? cudaBindSurfaceToArray(surf, array, desc) : err; +} +# 2711 "/usr/include/cuda_runtime.h" 3 4 +#pragma GCC diagnostic pop +# 1 "" 2 +# 1 "CMakeCUDACompilerId.cu" +# 64 "CMakeCUDACompilerId.cu" + +# 64 "CMakeCUDACompilerId.cu" +char const* info_compiler = "INFO" ":" "compiler[" "NVIDIA" "]"; + +char const* info_simulate = "INFO" ":" "simulate[" "GNU" "]"; +# 369 "CMakeCUDACompilerId.cu" +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + ('0' + (((11) / 10000000)%10)), ('0' + (((11) / 1000000)%10)), ('0' + (((11) / 100000)%10)), ('0' + (((11) / 10000)%10)), ('0' + (((11) / 1000)%10)), ('0' + (((11) / 100)%10)), ('0' + (((11) / 10)%10)), ('0' + ((11) % 10)), + + '.', ('0' + (((8) / 10000000)%10)), ('0' + (((8) / 1000000)%10)), ('0' + (((8) / 100000)%10)), ('0' + (((8) / 10000)%10)), ('0' + (((8) / 1000)%10)), ('0' + (((8) / 100)%10)), ('0' + (((8) / 10)%10)), ('0' + ((8) % 10)), + + '.', ('0' + (((89) / 10000000)%10)), ('0' + (((89) / 1000000)%10)), ('0' + (((89) / 100000)%10)), ('0' + (((89) / 10000)%10)), ('0' + (((89) / 1000)%10)), ('0' + (((89) / 100)%10)), ('0' + (((89) / 10)%10)), ('0' + ((89) % 10)), + + + + + + ']','\0'}; +# 398 "CMakeCUDACompilerId.cu" +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + ('0' + (((9) / 10000000)%10)), ('0' + (((9) / 1000000)%10)), ('0' + (((9) / 100000)%10)), ('0' + (((9) / 10000)%10)), ('0' + (((9) / 1000)%10)), ('0' + (((9) / 100)%10)), ('0' + (((9) / 10)%10)), ('0' + ((9) % 10)), + + '.', ('0' + (((4) / 10000000)%10)), ('0' + (((4) / 1000000)%10)), ('0' + (((4) / 100000)%10)), ('0' + (((4) / 10000)%10)), ('0' + (((4) / 1000)%10)), ('0' + (((4) / 100)%10)), ('0' + (((4) / 10)%10)), ('0' + ((4) % 10)), + + + + + + + + ']','\0'}; + + + + + + +char const* info_platform = "INFO" ":" "platform[" "Linux" "]"; +char const* info_arch = "INFO" ":" "arch[" "]"; + + + +const char* info_language_standard_default = "INFO" ":" "standard_default[" + + + + + + + + "14" + + + + + +"]"; + +const char* info_language_extensions_default = "INFO" ":" "extensions_default[" + + + "ON" + + + +"]"; + + + +int main(int argc, char* argv[]) +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; + + require += info_version[argc]; + + + require += info_simulate[argc]; + + + require += info_simulate_version[argc]; + + require += info_language_standard_default[argc]; + require += info_language_extensions_default[argc]; + (void)argv; + return require; +} diff --git a/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cpp4.ii b/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cpp4.ii new file mode 100644 index 0000000000000000000000000000000000000000..b7a0abf672026380673e64452afd1efcd843c0b3 --- /dev/null +++ b/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cpp4.ii @@ -0,0 +1,21237 @@ +# 1 "CMakeCUDACompilerId.cu" +# 1 "" +# 1 "" +# 1 "/usr/include/stdc-predef.h" 1 3 4 +# 1 "" 2 +# 1 "/usr/include/cuda_runtime.h" 1 3 4 +# 61 "/usr/include/cuda_runtime.h" 3 4 +#pragma GCC diagnostic push + + +#pragma GCC diagnostic ignored "-Wunused-function" +# 83 "/usr/include/cuda_runtime.h" 3 4 +# 1 "/usr/include/crt/host_config.h" 1 3 4 +# 201 "/usr/include/crt/host_config.h" 3 4 +# 1 "/usr/include/features.h" 1 3 4 +# 461 "/usr/include/features.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 1 3 4 +# 452 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 +# 453 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/long-double.h" 1 3 4 +# 454 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 2 3 4 +# 462 "/usr/include/features.h" 2 3 4 +# 485 "/usr/include/features.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 1 3 4 +# 10 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/gnu/stubs-64.h" 1 3 4 +# 11 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 2 3 4 +# 486 "/usr/include/features.h" 2 3 4 +# 202 "/usr/include/crt/host_config.h" 2 3 4 +# 84 "/usr/include/cuda_runtime.h" 2 3 4 + + + + + + + +# 1 "/usr/include/builtin_types.h" 1 3 4 +# 56 "/usr/include/builtin_types.h" 3 4 +# 1 "/usr/include/device_types.h" 1 3 4 +# 59 "/usr/include/device_types.h" 3 4 +# 1 "/usr/include/crt/host_defines.h" 1 3 4 +# 60 "/usr/include/device_types.h" 2 3 4 +# 68 "/usr/include/device_types.h" 3 4 + +# 68 "/usr/include/device_types.h" 3 4 +enum __attribute__((device_builtin)) cudaRoundMode +{ + cudaRoundNearest, + cudaRoundZero, + cudaRoundPosInf, + cudaRoundMinInf +}; +# 57 "/usr/include/builtin_types.h" 2 3 4 + + +# 1 "/usr/include/driver_types.h" 1 3 4 +# 59 "/usr/include/driver_types.h" 3 4 +# 1 "/usr/include/crt/host_defines.h" 1 3 4 +# 60 "/usr/include/driver_types.h" 2 3 4 + +# 1 "/usr/include/vector_types.h" 1 3 4 +# 65 "/usr/include/vector_types.h" 3 4 +# 1 "/usr/include/crt/host_defines.h" 1 3 4 +# 66 "/usr/include/vector_types.h" 2 3 4 +# 100 "/usr/include/vector_types.h" 3 4 +struct __attribute__((device_builtin)) char1 +{ + signed char x; +}; + +struct __attribute__((device_builtin)) uchar1 +{ + unsigned char x; +}; + + +struct __attribute__((device_builtin)) __attribute__((aligned(2))) char2 +{ + signed char x, y; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(2))) uchar2 +{ + unsigned char x, y; +}; + +struct __attribute__((device_builtin)) char3 +{ + signed char x, y, z; +}; + +struct __attribute__((device_builtin)) uchar3 +{ + unsigned char x, y, z; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(4))) char4 +{ + signed char x, y, z, w; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(4))) uchar4 +{ + unsigned char x, y, z, w; +}; + +struct __attribute__((device_builtin)) short1 +{ + short x; +}; + +struct __attribute__((device_builtin)) ushort1 +{ + unsigned short x; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(4))) short2 +{ + short x, y; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(4))) ushort2 +{ + unsigned short x, y; +}; + +struct __attribute__((device_builtin)) short3 +{ + short x, y, z; +}; + +struct __attribute__((device_builtin)) ushort3 +{ + unsigned short x, y, z; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(8))) short4 { short x; short y; short z; short w; }; +struct __attribute__((device_builtin)) __attribute__((aligned(8))) ushort4 { unsigned short x; unsigned short y; unsigned short z; unsigned short w; }; + +struct __attribute__((device_builtin)) int1 +{ + int x; +}; + +struct __attribute__((device_builtin)) uint1 +{ + unsigned int x; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(8))) int2 { int x; int y; }; +struct __attribute__((device_builtin)) __attribute__((aligned(8))) uint2 { unsigned int x; unsigned int y; }; + +struct __attribute__((device_builtin)) int3 +{ + int x, y, z; +}; + +struct __attribute__((device_builtin)) uint3 +{ + unsigned int x, y, z; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) int4 +{ + int x, y, z, w; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) uint4 +{ + unsigned int x, y, z, w; +}; + +struct __attribute__((device_builtin)) long1 +{ + long int x; +}; + +struct __attribute__((device_builtin)) ulong1 +{ + unsigned long x; +}; + + + + + + +struct __attribute__((device_builtin)) __attribute__((aligned(2*sizeof(long int)))) long2 +{ + long int x, y; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(2*sizeof(unsigned long int)))) ulong2 +{ + unsigned long int x, y; +}; + + + +struct __attribute__((device_builtin)) long3 +{ + long int x, y, z; +}; + +struct __attribute__((device_builtin)) ulong3 +{ + unsigned long int x, y, z; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) long4 +{ + long int x, y, z, w; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) ulong4 +{ + unsigned long int x, y, z, w; +}; + +struct __attribute__((device_builtin)) float1 +{ + float x; +}; +# 276 "/usr/include/vector_types.h" 3 4 +struct __attribute__((device_builtin)) __attribute__((aligned(8))) float2 { float x; float y; }; + + + + +struct __attribute__((device_builtin)) float3 +{ + float x, y, z; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) float4 +{ + float x, y, z, w; +}; + +struct __attribute__((device_builtin)) longlong1 +{ + long long int x; +}; + +struct __attribute__((device_builtin)) ulonglong1 +{ + unsigned long long int x; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) longlong2 +{ + long long int x, y; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) ulonglong2 +{ + unsigned long long int x, y; +}; + +struct __attribute__((device_builtin)) longlong3 +{ + long long int x, y, z; +}; + +struct __attribute__((device_builtin)) ulonglong3 +{ + unsigned long long int x, y, z; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) longlong4 +{ + long long int x, y, z ,w; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) ulonglong4 +{ + unsigned long long int x, y, z, w; +}; + +struct __attribute__((device_builtin)) double1 +{ + double x; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) double2 +{ + double x, y; +}; + +struct __attribute__((device_builtin)) double3 +{ + double x, y, z; +}; + +struct __attribute__((device_builtin)) __attribute__((aligned(16))) double4 +{ + double x, y, z, w; +}; +# 363 "/usr/include/vector_types.h" 3 4 +typedef __attribute__((device_builtin)) struct char1 char1; +typedef __attribute__((device_builtin)) struct uchar1 uchar1; +typedef __attribute__((device_builtin)) struct char2 char2; +typedef __attribute__((device_builtin)) struct uchar2 uchar2; +typedef __attribute__((device_builtin)) struct char3 char3; +typedef __attribute__((device_builtin)) struct uchar3 uchar3; +typedef __attribute__((device_builtin)) struct char4 char4; +typedef __attribute__((device_builtin)) struct uchar4 uchar4; +typedef __attribute__((device_builtin)) struct short1 short1; +typedef __attribute__((device_builtin)) struct ushort1 ushort1; +typedef __attribute__((device_builtin)) struct short2 short2; +typedef __attribute__((device_builtin)) struct ushort2 ushort2; +typedef __attribute__((device_builtin)) struct short3 short3; +typedef __attribute__((device_builtin)) struct ushort3 ushort3; +typedef __attribute__((device_builtin)) struct short4 short4; +typedef __attribute__((device_builtin)) struct ushort4 ushort4; +typedef __attribute__((device_builtin)) struct int1 int1; +typedef __attribute__((device_builtin)) struct uint1 uint1; +typedef __attribute__((device_builtin)) struct int2 int2; +typedef __attribute__((device_builtin)) struct uint2 uint2; +typedef __attribute__((device_builtin)) struct int3 int3; +typedef __attribute__((device_builtin)) struct uint3 uint3; +typedef __attribute__((device_builtin)) struct int4 int4; +typedef __attribute__((device_builtin)) struct uint4 uint4; +typedef __attribute__((device_builtin)) struct long1 long1; +typedef __attribute__((device_builtin)) struct ulong1 ulong1; +typedef __attribute__((device_builtin)) struct long2 long2; +typedef __attribute__((device_builtin)) struct ulong2 ulong2; +typedef __attribute__((device_builtin)) struct long3 long3; +typedef __attribute__((device_builtin)) struct ulong3 ulong3; +typedef __attribute__((device_builtin)) struct long4 long4; +typedef __attribute__((device_builtin)) struct ulong4 ulong4; +typedef __attribute__((device_builtin)) struct float1 float1; +typedef __attribute__((device_builtin)) struct float2 float2; +typedef __attribute__((device_builtin)) struct float3 float3; +typedef __attribute__((device_builtin)) struct float4 float4; +typedef __attribute__((device_builtin)) struct longlong1 longlong1; +typedef __attribute__((device_builtin)) struct ulonglong1 ulonglong1; +typedef __attribute__((device_builtin)) struct longlong2 longlong2; +typedef __attribute__((device_builtin)) struct ulonglong2 ulonglong2; +typedef __attribute__((device_builtin)) struct longlong3 longlong3; +typedef __attribute__((device_builtin)) struct ulonglong3 ulonglong3; +typedef __attribute__((device_builtin)) struct longlong4 longlong4; +typedef __attribute__((device_builtin)) struct ulonglong4 ulonglong4; +typedef __attribute__((device_builtin)) struct double1 double1; +typedef __attribute__((device_builtin)) struct double2 double2; +typedef __attribute__((device_builtin)) struct double3 double3; +typedef __attribute__((device_builtin)) struct double4 double4; + + + + + + + +struct __attribute__((device_builtin)) dim3 +{ + unsigned int x, y, z; + + + __attribute__((host)) __attribute__((device)) constexpr dim3(unsigned int vx = 1, unsigned int vy = 1, unsigned int vz = 1) : x(vx), y(vy), z(vz) {} + __attribute__((host)) __attribute__((device)) constexpr dim3(uint3 v) : x(v.x), y(v.y), z(v.z) {} + __attribute__((host)) __attribute__((device)) constexpr operator uint3(void) const { return uint3{x, y, z}; } + + + + + + +}; + +typedef __attribute__((device_builtin)) struct dim3 dim3; +# 62 "/usr/include/driver_types.h" 2 3 4 +# 81 "/usr/include/driver_types.h" 3 4 +# 1 "/usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h" 1 3 4 +# 34 "/usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h" 3 4 +# 1 "/usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h" 1 3 4 + + + + + + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h" 1 3 4 +# 194 "/usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h" 3 4 +# 1 "/usr/include/limits.h" 1 3 4 +# 26 "/usr/include/limits.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/libc-header-start.h" 1 3 4 +# 27 "/usr/include/limits.h" 2 3 4 +# 183 "/usr/include/limits.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 1 3 4 +# 27 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 +# 28 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 2 3 4 +# 161 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/local_lim.h" 1 3 4 +# 38 "/usr/include/x86_64-linux-gnu/bits/local_lim.h" 3 4 +# 1 "/usr/include/linux/limits.h" 1 3 4 +# 39 "/usr/include/x86_64-linux-gnu/bits/local_lim.h" 2 3 4 +# 162 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 2 3 4 +# 184 "/usr/include/limits.h" 2 3 4 + + + +# 1 "/usr/include/x86_64-linux-gnu/bits/posix2_lim.h" 1 3 4 +# 188 "/usr/include/limits.h" 2 3 4 + + + +# 1 "/usr/include/x86_64-linux-gnu/bits/xopen_lim.h" 1 3 4 +# 64 "/usr/include/x86_64-linux-gnu/bits/xopen_lim.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/uio_lim.h" 1 3 4 +# 65 "/usr/include/x86_64-linux-gnu/bits/xopen_lim.h" 2 3 4 +# 192 "/usr/include/limits.h" 2 3 4 +# 195 "/usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h" 2 3 4 +# 8 "/usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h" 2 3 4 +# 35 "/usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h" 2 3 4 +# 82 "/usr/include/driver_types.h" 2 3 4 +# 1 "/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h" 1 3 4 +# 143 "/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h" 3 4 +typedef long int ptrdiff_t; +# 209 "/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h" 3 4 +typedef long unsigned int size_t; +# 415 "/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h" 3 4 +typedef struct { + long long __max_align_ll __attribute__((__aligned__(__alignof__(long long)))); + long double __max_align_ld __attribute__((__aligned__(__alignof__(long double)))); +# 426 "/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h" 3 4 +} max_align_t; + + + + + + + typedef decltype(nullptr) nullptr_t; +# 83 "/usr/include/driver_types.h" 2 3 4 +# 202 "/usr/include/driver_types.h" 3 4 +enum __attribute__((device_builtin)) cudaError +{ + + + + + + cudaSuccess = 0, + + + + + + cudaErrorInvalidValue = 1, + + + + + + cudaErrorMemoryAllocation = 2, + + + + + + cudaErrorInitializationError = 3, + + + + + + + cudaErrorCudartUnloading = 4, + + + + + + + cudaErrorProfilerDisabled = 5, + + + + + + + + cudaErrorProfilerNotInitialized = 6, + + + + + + + cudaErrorProfilerAlreadyStarted = 7, + + + + + + + cudaErrorProfilerAlreadyStopped = 8, +# 272 "/usr/include/driver_types.h" 3 4 + cudaErrorInvalidConfiguration = 9, + + + + + + cudaErrorInvalidPitchValue = 12, + + + + + + cudaErrorInvalidSymbol = 13, + + + + + + + + cudaErrorInvalidHostPointer = 16, + + + + + + + + cudaErrorInvalidDevicePointer = 17, + + + + + + cudaErrorInvalidTexture = 18, + + + + + + cudaErrorInvalidTextureBinding = 19, + + + + + + + cudaErrorInvalidChannelDescriptor = 20, + + + + + + cudaErrorInvalidMemcpyDirection = 21, +# 335 "/usr/include/driver_types.h" 3 4 + cudaErrorAddressOfConstant = 22, +# 344 "/usr/include/driver_types.h" 3 4 + cudaErrorTextureFetchFailed = 23, +# 353 "/usr/include/driver_types.h" 3 4 + cudaErrorTextureNotBound = 24, +# 362 "/usr/include/driver_types.h" 3 4 + cudaErrorSynchronizationError = 25, + + + + + + cudaErrorInvalidFilterSetting = 26, + + + + + + cudaErrorInvalidNormSetting = 27, + + + + + + + + cudaErrorMixedDeviceExecution = 28, + + + + + + + + cudaErrorNotYetImplemented = 31, +# 399 "/usr/include/driver_types.h" 3 4 + cudaErrorMemoryValueTooLarge = 32, + + + + + + + cudaErrorStubLibrary = 34, + + + + + + + cudaErrorInsufficientDriver = 35, + + + + + + + cudaErrorCallRequiresNewerDriver = 36, + + + + + + cudaErrorInvalidSurface = 37, + + + + + + cudaErrorDuplicateVariableName = 43, + + + + + + cudaErrorDuplicateTextureName = 44, + + + + + + cudaErrorDuplicateSurfaceName = 45, +# 454 "/usr/include/driver_types.h" 3 4 + cudaErrorDevicesUnavailable = 46, +# 467 "/usr/include/driver_types.h" 3 4 + cudaErrorIncompatibleDriverContext = 49, + + + + + + cudaErrorMissingConfiguration = 52, +# 482 "/usr/include/driver_types.h" 3 4 + cudaErrorPriorLaunchFailure = 53, + + + + + + + cudaErrorLaunchMaxDepthExceeded = 65, + + + + + + + + cudaErrorLaunchFileScopedTex = 66, + + + + + + + + cudaErrorLaunchFileScopedSurf = 67, +# 520 "/usr/include/driver_types.h" 3 4 + cudaErrorSyncDepthExceeded = 68, +# 532 "/usr/include/driver_types.h" 3 4 + cudaErrorLaunchPendingCountExceeded = 69, + + + + + + cudaErrorInvalidDeviceFunction = 98, + + + + + + cudaErrorNoDevice = 100, + + + + + + + cudaErrorInvalidDevice = 101, + + + + + cudaErrorDeviceNotLicensed = 102, +# 565 "/usr/include/driver_types.h" 3 4 + cudaErrorSoftwareValidityNotEstablished = 103, + + + + + cudaErrorStartupFailure = 127, + + + + + cudaErrorInvalidKernelImage = 200, +# 585 "/usr/include/driver_types.h" 3 4 + cudaErrorDeviceUninitialized = 201, + + + + + cudaErrorMapBufferObjectFailed = 205, + + + + + cudaErrorUnmapBufferObjectFailed = 206, + + + + + + cudaErrorArrayIsMapped = 207, + + + + + cudaErrorAlreadyMapped = 208, + + + + + + + + cudaErrorNoKernelImageForDevice = 209, + + + + + cudaErrorAlreadyAcquired = 210, + + + + + cudaErrorNotMapped = 211, + + + + + + cudaErrorNotMappedAsArray = 212, + + + + + + cudaErrorNotMappedAsPointer = 213, + + + + + + cudaErrorECCUncorrectable = 214, + + + + + + cudaErrorUnsupportedLimit = 215, + + + + + + cudaErrorDeviceAlreadyInUse = 216, + + + + + + cudaErrorPeerAccessUnsupported = 217, + + + + + + cudaErrorInvalidPtx = 218, + + + + + cudaErrorInvalidGraphicsContext = 219, + + + + + + cudaErrorNvlinkUncorrectable = 220, + + + + + + + cudaErrorJitCompilerNotFound = 221, + + + + + + + cudaErrorUnsupportedPtxVersion = 222, + + + + + + + cudaErrorJitCompilationDisabled = 223, + + + + + cudaErrorUnsupportedExecAffinity = 224, + + + + + cudaErrorInvalidSource = 300, + + + + + cudaErrorFileNotFound = 301, + + + + + cudaErrorSharedObjectSymbolNotFound = 302, + + + + + cudaErrorSharedObjectInitFailed = 303, + + + + + cudaErrorOperatingSystem = 304, + + + + + + + cudaErrorInvalidResourceHandle = 400, + + + + + + cudaErrorIllegalState = 401, + + + + + + + cudaErrorSymbolNotFound = 500, + + + + + + + + cudaErrorNotReady = 600, + + + + + + + + cudaErrorIllegalAddress = 700, +# 773 "/usr/include/driver_types.h" 3 4 + cudaErrorLaunchOutOfResources = 701, +# 784 "/usr/include/driver_types.h" 3 4 + cudaErrorLaunchTimeout = 702, + + + + + + cudaErrorLaunchIncompatibleTexturing = 703, + + + + + + + cudaErrorPeerAccessAlreadyEnabled = 704, + + + + + + + cudaErrorPeerAccessNotEnabled = 705, +# 817 "/usr/include/driver_types.h" 3 4 + cudaErrorSetOnActiveProcess = 708, + + + + + + + cudaErrorContextIsDestroyed = 709, + + + + + + + cudaErrorAssert = 710, + + + + + + + cudaErrorTooManyPeers = 711, + + + + + + cudaErrorHostMemoryAlreadyRegistered = 712, + + + + + + cudaErrorHostMemoryNotRegistered = 713, +# 859 "/usr/include/driver_types.h" 3 4 + cudaErrorHardwareStackError = 714, + + + + + + + + cudaErrorIllegalInstruction = 715, +# 876 "/usr/include/driver_types.h" 3 4 + cudaErrorMisalignedAddress = 716, +# 887 "/usr/include/driver_types.h" 3 4 + cudaErrorInvalidAddressSpace = 717, + + + + + + + + cudaErrorInvalidPc = 718, +# 906 "/usr/include/driver_types.h" 3 4 + cudaErrorLaunchFailure = 719, +# 915 "/usr/include/driver_types.h" 3 4 + cudaErrorCooperativeLaunchTooLarge = 720, + + + + + cudaErrorNotPermitted = 800, + + + + + + cudaErrorNotSupported = 801, +# 935 "/usr/include/driver_types.h" 3 4 + cudaErrorSystemNotReady = 802, + + + + + + + cudaErrorSystemDriverMismatch = 803, +# 951 "/usr/include/driver_types.h" 3 4 + cudaErrorCompatNotSupportedOnDevice = 804, + + + + + cudaErrorMpsConnectionFailed = 805, + + + + + cudaErrorMpsRpcFailure = 806, + + + + + + cudaErrorMpsServerNotReady = 807, + + + + + cudaErrorMpsMaxClientsReached = 808, + + + + + cudaErrorMpsMaxConnectionsReached = 809, + + + + + cudaErrorMpsClientTerminated = 810, + + + + + cudaErrorStreamCaptureUnsupported = 900, + + + + + + cudaErrorStreamCaptureInvalidated = 901, + + + + + + cudaErrorStreamCaptureMerge = 902, + + + + + cudaErrorStreamCaptureUnmatched = 903, + + + + + + cudaErrorStreamCaptureUnjoined = 904, + + + + + + + cudaErrorStreamCaptureIsolation = 905, + + + + + + cudaErrorStreamCaptureImplicit = 906, + + + + + + cudaErrorCapturedEvent = 907, + + + + + + + cudaErrorStreamCaptureWrongThread = 908, + + + + + cudaErrorTimeout = 909, + + + + + + cudaErrorGraphExecUpdateFailure = 910, +# 1057 "/usr/include/driver_types.h" 3 4 + cudaErrorExternalDevice = 911, + + + + + + cudaErrorInvalidClusterSize = 912, + + + + + cudaErrorUnknown = 999, + + + + + + + + cudaErrorApiFailureBase = 10000 +}; + + + + +enum __attribute__((device_builtin)) cudaChannelFormatKind +{ + cudaChannelFormatKindSigned = 0, + cudaChannelFormatKindUnsigned = 1, + cudaChannelFormatKindFloat = 2, + cudaChannelFormatKindNone = 3, + cudaChannelFormatKindNV12 = 4, + cudaChannelFormatKindUnsignedNormalized8X1 = 5, + cudaChannelFormatKindUnsignedNormalized8X2 = 6, + cudaChannelFormatKindUnsignedNormalized8X4 = 7, + cudaChannelFormatKindUnsignedNormalized16X1 = 8, + cudaChannelFormatKindUnsignedNormalized16X2 = 9, + cudaChannelFormatKindUnsignedNormalized16X4 = 10, + cudaChannelFormatKindSignedNormalized8X1 = 11, + cudaChannelFormatKindSignedNormalized8X2 = 12, + cudaChannelFormatKindSignedNormalized8X4 = 13, + cudaChannelFormatKindSignedNormalized16X1 = 14, + cudaChannelFormatKindSignedNormalized16X2 = 15, + cudaChannelFormatKindSignedNormalized16X4 = 16, + cudaChannelFormatKindUnsignedBlockCompressed1 = 17, + cudaChannelFormatKindUnsignedBlockCompressed1SRGB = 18, + cudaChannelFormatKindUnsignedBlockCompressed2 = 19, + cudaChannelFormatKindUnsignedBlockCompressed2SRGB = 20, + cudaChannelFormatKindUnsignedBlockCompressed3 = 21, + cudaChannelFormatKindUnsignedBlockCompressed3SRGB = 22, + cudaChannelFormatKindUnsignedBlockCompressed4 = 23, + cudaChannelFormatKindSignedBlockCompressed4 = 24, + cudaChannelFormatKindUnsignedBlockCompressed5 = 25, + cudaChannelFormatKindSignedBlockCompressed5 = 26, + cudaChannelFormatKindUnsignedBlockCompressed6H = 27, + cudaChannelFormatKindSignedBlockCompressed6H = 28, + cudaChannelFormatKindUnsignedBlockCompressed7 = 29, + cudaChannelFormatKindUnsignedBlockCompressed7SRGB = 30 +}; + + + + +struct __attribute__((device_builtin)) cudaChannelFormatDesc +{ + int x; + int y; + int z; + int w; + enum cudaChannelFormatKind f; +}; + + + + +typedef struct cudaArray *cudaArray_t; + + + + +typedef const struct cudaArray *cudaArray_const_t; + +struct cudaArray; + + + + +typedef struct cudaMipmappedArray *cudaMipmappedArray_t; + + + + +typedef const struct cudaMipmappedArray *cudaMipmappedArray_const_t; + +struct cudaMipmappedArray; +# 1161 "/usr/include/driver_types.h" 3 4 +struct __attribute__((device_builtin)) cudaArraySparseProperties { + struct { + unsigned int width; + unsigned int height; + unsigned int depth; + } tileExtent; + unsigned int miptailFirstLevel; + unsigned long long miptailSize; + unsigned int flags; + unsigned int reserved[4]; +}; + + + + +struct __attribute__((device_builtin)) cudaArrayMemoryRequirements { + size_t size; + size_t alignment; + unsigned int reserved[4]; +}; + + + + +enum __attribute__((device_builtin)) cudaMemoryType +{ + cudaMemoryTypeUnregistered = 0, + cudaMemoryTypeHost = 1, + cudaMemoryTypeDevice = 2, + cudaMemoryTypeManaged = 3 +}; + + + + +enum __attribute__((device_builtin)) cudaMemcpyKind +{ + cudaMemcpyHostToHost = 0, + cudaMemcpyHostToDevice = 1, + cudaMemcpyDeviceToHost = 2, + cudaMemcpyDeviceToDevice = 3, + cudaMemcpyDefault = 4 +}; + + + + + + +struct __attribute__((device_builtin)) cudaPitchedPtr +{ + void *ptr; + size_t pitch; + size_t xsize; + size_t ysize; +}; + + + + + + +struct __attribute__((device_builtin)) cudaExtent +{ + size_t width; + size_t height; + size_t depth; +}; + + + + + + +struct __attribute__((device_builtin)) cudaPos +{ + size_t x; + size_t y; + size_t z; +}; + + + + +struct __attribute__((device_builtin)) cudaMemcpy3DParms +{ + cudaArray_t srcArray; + struct cudaPos srcPos; + struct cudaPitchedPtr srcPtr; + + cudaArray_t dstArray; + struct cudaPos dstPos; + struct cudaPitchedPtr dstPtr; + + struct cudaExtent extent; + enum cudaMemcpyKind kind; +}; + + + + +struct __attribute__((device_builtin)) cudaMemcpy3DPeerParms +{ + cudaArray_t srcArray; + struct cudaPos srcPos; + struct cudaPitchedPtr srcPtr; + int srcDevice; + + cudaArray_t dstArray; + struct cudaPos dstPos; + struct cudaPitchedPtr dstPtr; + int dstDevice; + + struct cudaExtent extent; +}; + + + + +struct __attribute__((device_builtin)) cudaMemsetParams { + void *dst; + size_t pitch; + unsigned int value; + unsigned int elementSize; + size_t width; + size_t height; +}; + + + + +enum __attribute__((device_builtin)) cudaAccessProperty { + cudaAccessPropertyNormal = 0, + cudaAccessPropertyStreaming = 1, + cudaAccessPropertyPersisting = 2 +}; +# 1309 "/usr/include/driver_types.h" 3 4 +struct __attribute__((device_builtin)) cudaAccessPolicyWindow { + void *base_ptr; + size_t num_bytes; + float hitRatio; + enum cudaAccessProperty hitProp; + enum cudaAccessProperty missProp; +}; +# 1327 "/usr/include/driver_types.h" 3 4 +typedef void ( *cudaHostFn_t)(void *userData); + + + + +struct __attribute__((device_builtin)) cudaHostNodeParams { + cudaHostFn_t fn; + void* userData; +}; + + + + +enum __attribute__((device_builtin)) cudaStreamCaptureStatus { + cudaStreamCaptureStatusNone = 0, + cudaStreamCaptureStatusActive = 1, + cudaStreamCaptureStatusInvalidated = 2 + +}; + + + + + +enum __attribute__((device_builtin)) cudaStreamCaptureMode { + cudaStreamCaptureModeGlobal = 0, + cudaStreamCaptureModeThreadLocal = 1, + cudaStreamCaptureModeRelaxed = 2 +}; + +enum __attribute__((device_builtin)) cudaSynchronizationPolicy { + cudaSyncPolicyAuto = 1, + cudaSyncPolicySpin = 2, + cudaSyncPolicyYield = 3, + cudaSyncPolicyBlockingSync = 4 +}; + + + + +enum __attribute__((device_builtin)) cudaClusterSchedulingPolicy { + cudaClusterSchedulingPolicyDefault = 0, + cudaClusterSchedulingPolicySpread = 1, + cudaClusterSchedulingPolicyLoadBalancing = 2 +}; + + + + +enum __attribute__((device_builtin)) cudaStreamUpdateCaptureDependenciesFlags { + cudaStreamAddCaptureDependencies = 0x0, + cudaStreamSetCaptureDependencies = 0x1 +}; + + + + +enum __attribute__((device_builtin)) cudaUserObjectFlags { + cudaUserObjectNoDestructorSync = 0x1 +}; + + + + +enum __attribute__((device_builtin)) cudaUserObjectRetainFlags { + cudaGraphUserObjectMove = 0x1 +}; + + + + +struct cudaGraphicsResource; + + + + +enum __attribute__((device_builtin)) cudaGraphicsRegisterFlags +{ + cudaGraphicsRegisterFlagsNone = 0, + cudaGraphicsRegisterFlagsReadOnly = 1, + cudaGraphicsRegisterFlagsWriteDiscard = 2, + cudaGraphicsRegisterFlagsSurfaceLoadStore = 4, + cudaGraphicsRegisterFlagsTextureGather = 8 +}; + + + + +enum __attribute__((device_builtin)) cudaGraphicsMapFlags +{ + cudaGraphicsMapFlagsNone = 0, + cudaGraphicsMapFlagsReadOnly = 1, + cudaGraphicsMapFlagsWriteDiscard = 2 +}; + + + + +enum __attribute__((device_builtin)) cudaGraphicsCubeFace +{ + cudaGraphicsCubeFacePositiveX = 0x00, + cudaGraphicsCubeFaceNegativeX = 0x01, + cudaGraphicsCubeFacePositiveY = 0x02, + cudaGraphicsCubeFaceNegativeY = 0x03, + cudaGraphicsCubeFacePositiveZ = 0x04, + cudaGraphicsCubeFaceNegativeZ = 0x05 +}; + + + + +enum __attribute__((device_builtin)) cudaResourceType +{ + cudaResourceTypeArray = 0x00, + cudaResourceTypeMipmappedArray = 0x01, + cudaResourceTypeLinear = 0x02, + cudaResourceTypePitch2D = 0x03 +}; + + + + +enum __attribute__((device_builtin)) cudaResourceViewFormat +{ + cudaResViewFormatNone = 0x00, + cudaResViewFormatUnsignedChar1 = 0x01, + cudaResViewFormatUnsignedChar2 = 0x02, + cudaResViewFormatUnsignedChar4 = 0x03, + cudaResViewFormatSignedChar1 = 0x04, + cudaResViewFormatSignedChar2 = 0x05, + cudaResViewFormatSignedChar4 = 0x06, + cudaResViewFormatUnsignedShort1 = 0x07, + cudaResViewFormatUnsignedShort2 = 0x08, + cudaResViewFormatUnsignedShort4 = 0x09, + cudaResViewFormatSignedShort1 = 0x0a, + cudaResViewFormatSignedShort2 = 0x0b, + cudaResViewFormatSignedShort4 = 0x0c, + cudaResViewFormatUnsignedInt1 = 0x0d, + cudaResViewFormatUnsignedInt2 = 0x0e, + cudaResViewFormatUnsignedInt4 = 0x0f, + cudaResViewFormatSignedInt1 = 0x10, + cudaResViewFormatSignedInt2 = 0x11, + cudaResViewFormatSignedInt4 = 0x12, + cudaResViewFormatHalf1 = 0x13, + cudaResViewFormatHalf2 = 0x14, + cudaResViewFormatHalf4 = 0x15, + cudaResViewFormatFloat1 = 0x16, + cudaResViewFormatFloat2 = 0x17, + cudaResViewFormatFloat4 = 0x18, + cudaResViewFormatUnsignedBlockCompressed1 = 0x19, + cudaResViewFormatUnsignedBlockCompressed2 = 0x1a, + cudaResViewFormatUnsignedBlockCompressed3 = 0x1b, + cudaResViewFormatUnsignedBlockCompressed4 = 0x1c, + cudaResViewFormatSignedBlockCompressed4 = 0x1d, + cudaResViewFormatUnsignedBlockCompressed5 = 0x1e, + cudaResViewFormatSignedBlockCompressed5 = 0x1f, + cudaResViewFormatUnsignedBlockCompressed6H = 0x20, + cudaResViewFormatSignedBlockCompressed6H = 0x21, + cudaResViewFormatUnsignedBlockCompressed7 = 0x22 +}; + + + + +struct __attribute__((device_builtin)) cudaResourceDesc { + enum cudaResourceType resType; + + union { + struct { + cudaArray_t array; + } array; + struct { + cudaMipmappedArray_t mipmap; + } mipmap; + struct { + void *devPtr; + struct cudaChannelFormatDesc desc; + size_t sizeInBytes; + } linear; + struct { + void *devPtr; + struct cudaChannelFormatDesc desc; + size_t width; + size_t height; + size_t pitchInBytes; + } pitch2D; + } res; +}; + + + + +struct __attribute__((device_builtin)) cudaResourceViewDesc +{ + enum cudaResourceViewFormat format; + size_t width; + size_t height; + size_t depth; + unsigned int firstMipmapLevel; + unsigned int lastMipmapLevel; + unsigned int firstLayer; + unsigned int lastLayer; +}; + + + + +struct __attribute__((device_builtin)) cudaPointerAttributes +{ + + + + + enum cudaMemoryType type; +# 1551 "/usr/include/driver_types.h" 3 4 + int device; + + + + + + void *devicePointer; +# 1566 "/usr/include/driver_types.h" 3 4 + void *hostPointer; +}; + + + + +struct __attribute__((device_builtin)) cudaFuncAttributes +{ + + + + + + size_t sharedSizeBytes; + + + + + + size_t constSizeBytes; + + + + + size_t localSizeBytes; + + + + + + + int maxThreadsPerBlock; + + + + + int numRegs; + + + + + + + int ptxVersion; + + + + + + + int binaryVersion; + + + + + + int cacheModeCA; + + + + + + + int maxDynamicSharedSizeBytes; +# 1638 "/usr/include/driver_types.h" 3 4 + int preferredShmemCarveout; +}; + + + + +enum __attribute__((device_builtin)) cudaFuncAttribute +{ + cudaFuncAttributeMaxDynamicSharedMemorySize = 8, + cudaFuncAttributePreferredSharedMemoryCarveout = 9, + cudaFuncAttributeClusterDimMustBeSet = 10, + cudaFuncAttributeRequiredClusterWidth = 11, + cudaFuncAttributeRequiredClusterHeight = 12, + cudaFuncAttributeRequiredClusterDepth = 13, + cudaFuncAttributeNonPortableClusterSizeAllowed = 14, + cudaFuncAttributeClusterSchedulingPolicyPreference = 15, + cudaFuncAttributeMax +}; + + + + +enum __attribute__((device_builtin)) cudaFuncCache +{ + cudaFuncCachePreferNone = 0, + cudaFuncCachePreferShared = 1, + cudaFuncCachePreferL1 = 2, + cudaFuncCachePreferEqual = 3 +}; + + + + + +enum __attribute__((device_builtin)) cudaSharedMemConfig +{ + cudaSharedMemBankSizeDefault = 0, + cudaSharedMemBankSizeFourByte = 1, + cudaSharedMemBankSizeEightByte = 2 +}; + + + + +enum __attribute__((device_builtin)) cudaSharedCarveout { + cudaSharedmemCarveoutDefault = -1, + cudaSharedmemCarveoutMaxShared = 100, + cudaSharedmemCarveoutMaxL1 = 0 +}; + + + + +enum __attribute__((device_builtin)) cudaComputeMode +{ + cudaComputeModeDefault = 0, + cudaComputeModeExclusive = 1, + cudaComputeModeProhibited = 2, + cudaComputeModeExclusiveProcess = 3 +}; + + + + +enum __attribute__((device_builtin)) cudaLimit +{ + cudaLimitStackSize = 0x00, + cudaLimitPrintfFifoSize = 0x01, + cudaLimitMallocHeapSize = 0x02, + cudaLimitDevRuntimeSyncDepth = 0x03, + cudaLimitDevRuntimePendingLaunchCount = 0x04, + cudaLimitMaxL2FetchGranularity = 0x05, + cudaLimitPersistingL2CacheSize = 0x06 +}; + + + + +enum __attribute__((device_builtin)) cudaMemoryAdvise +{ + cudaMemAdviseSetReadMostly = 1, + cudaMemAdviseUnsetReadMostly = 2, + cudaMemAdviseSetPreferredLocation = 3, + cudaMemAdviseUnsetPreferredLocation = 4, + cudaMemAdviseSetAccessedBy = 5, + cudaMemAdviseUnsetAccessedBy = 6 +}; + + + + +enum __attribute__((device_builtin)) cudaMemRangeAttribute +{ + cudaMemRangeAttributeReadMostly = 1, + cudaMemRangeAttributePreferredLocation = 2, + cudaMemRangeAttributeAccessedBy = 3, + cudaMemRangeAttributeLastPrefetchLocation = 4 +}; + + + + +enum __attribute__((device_builtin)) cudaOutputMode +{ + cudaKeyValuePair = 0x00, + cudaCSV = 0x01 +}; + + + + +enum __attribute__((device_builtin)) cudaFlushGPUDirectRDMAWritesOptions { + cudaFlushGPUDirectRDMAWritesOptionHost = 1<<0, + cudaFlushGPUDirectRDMAWritesOptionMemOps = 1<<1 +}; + + + + +enum __attribute__((device_builtin)) cudaGPUDirectRDMAWritesOrdering { + cudaGPUDirectRDMAWritesOrderingNone = 0, + cudaGPUDirectRDMAWritesOrderingOwner = 100, + cudaGPUDirectRDMAWritesOrderingAllDevices = 200 +}; + + + + +enum __attribute__((device_builtin)) cudaFlushGPUDirectRDMAWritesScope { + cudaFlushGPUDirectRDMAWritesToOwner = 100, + cudaFlushGPUDirectRDMAWritesToAllDevices = 200 +}; + + + + +enum __attribute__((device_builtin)) cudaFlushGPUDirectRDMAWritesTarget { + cudaFlushGPUDirectRDMAWritesTargetCurrentDevice +}; + + + + + +enum __attribute__((device_builtin)) cudaDeviceAttr +{ + cudaDevAttrMaxThreadsPerBlock = 1, + cudaDevAttrMaxBlockDimX = 2, + cudaDevAttrMaxBlockDimY = 3, + cudaDevAttrMaxBlockDimZ = 4, + cudaDevAttrMaxGridDimX = 5, + cudaDevAttrMaxGridDimY = 6, + cudaDevAttrMaxGridDimZ = 7, + cudaDevAttrMaxSharedMemoryPerBlock = 8, + cudaDevAttrTotalConstantMemory = 9, + cudaDevAttrWarpSize = 10, + cudaDevAttrMaxPitch = 11, + cudaDevAttrMaxRegistersPerBlock = 12, + cudaDevAttrClockRate = 13, + cudaDevAttrTextureAlignment = 14, + cudaDevAttrGpuOverlap = 15, + cudaDevAttrMultiProcessorCount = 16, + cudaDevAttrKernelExecTimeout = 17, + cudaDevAttrIntegrated = 18, + cudaDevAttrCanMapHostMemory = 19, + cudaDevAttrComputeMode = 20, + cudaDevAttrMaxTexture1DWidth = 21, + cudaDevAttrMaxTexture2DWidth = 22, + cudaDevAttrMaxTexture2DHeight = 23, + cudaDevAttrMaxTexture3DWidth = 24, + cudaDevAttrMaxTexture3DHeight = 25, + cudaDevAttrMaxTexture3DDepth = 26, + cudaDevAttrMaxTexture2DLayeredWidth = 27, + cudaDevAttrMaxTexture2DLayeredHeight = 28, + cudaDevAttrMaxTexture2DLayeredLayers = 29, + cudaDevAttrSurfaceAlignment = 30, + cudaDevAttrConcurrentKernels = 31, + cudaDevAttrEccEnabled = 32, + cudaDevAttrPciBusId = 33, + cudaDevAttrPciDeviceId = 34, + cudaDevAttrTccDriver = 35, + cudaDevAttrMemoryClockRate = 36, + cudaDevAttrGlobalMemoryBusWidth = 37, + cudaDevAttrL2CacheSize = 38, + cudaDevAttrMaxThreadsPerMultiProcessor = 39, + cudaDevAttrAsyncEngineCount = 40, + cudaDevAttrUnifiedAddressing = 41, + cudaDevAttrMaxTexture1DLayeredWidth = 42, + cudaDevAttrMaxTexture1DLayeredLayers = 43, + cudaDevAttrMaxTexture2DGatherWidth = 45, + cudaDevAttrMaxTexture2DGatherHeight = 46, + cudaDevAttrMaxTexture3DWidthAlt = 47, + cudaDevAttrMaxTexture3DHeightAlt = 48, + cudaDevAttrMaxTexture3DDepthAlt = 49, + cudaDevAttrPciDomainId = 50, + cudaDevAttrTexturePitchAlignment = 51, + cudaDevAttrMaxTextureCubemapWidth = 52, + cudaDevAttrMaxTextureCubemapLayeredWidth = 53, + cudaDevAttrMaxTextureCubemapLayeredLayers = 54, + cudaDevAttrMaxSurface1DWidth = 55, + cudaDevAttrMaxSurface2DWidth = 56, + cudaDevAttrMaxSurface2DHeight = 57, + cudaDevAttrMaxSurface3DWidth = 58, + cudaDevAttrMaxSurface3DHeight = 59, + cudaDevAttrMaxSurface3DDepth = 60, + cudaDevAttrMaxSurface1DLayeredWidth = 61, + cudaDevAttrMaxSurface1DLayeredLayers = 62, + cudaDevAttrMaxSurface2DLayeredWidth = 63, + cudaDevAttrMaxSurface2DLayeredHeight = 64, + cudaDevAttrMaxSurface2DLayeredLayers = 65, + cudaDevAttrMaxSurfaceCubemapWidth = 66, + cudaDevAttrMaxSurfaceCubemapLayeredWidth = 67, + cudaDevAttrMaxSurfaceCubemapLayeredLayers = 68, + cudaDevAttrMaxTexture1DLinearWidth = 69, + cudaDevAttrMaxTexture2DLinearWidth = 70, + cudaDevAttrMaxTexture2DLinearHeight = 71, + cudaDevAttrMaxTexture2DLinearPitch = 72, + cudaDevAttrMaxTexture2DMipmappedWidth = 73, + cudaDevAttrMaxTexture2DMipmappedHeight = 74, + cudaDevAttrComputeCapabilityMajor = 75, + cudaDevAttrComputeCapabilityMinor = 76, + cudaDevAttrMaxTexture1DMipmappedWidth = 77, + cudaDevAttrStreamPrioritiesSupported = 78, + cudaDevAttrGlobalL1CacheSupported = 79, + cudaDevAttrLocalL1CacheSupported = 80, + cudaDevAttrMaxSharedMemoryPerMultiprocessor = 81, + cudaDevAttrMaxRegistersPerMultiprocessor = 82, + cudaDevAttrManagedMemory = 83, + cudaDevAttrIsMultiGpuBoard = 84, + cudaDevAttrMultiGpuBoardGroupID = 85, + cudaDevAttrHostNativeAtomicSupported = 86, + cudaDevAttrSingleToDoublePrecisionPerfRatio = 87, + cudaDevAttrPageableMemoryAccess = 88, + cudaDevAttrConcurrentManagedAccess = 89, + cudaDevAttrComputePreemptionSupported = 90, + cudaDevAttrCanUseHostPointerForRegisteredMem = 91, + cudaDevAttrReserved92 = 92, + cudaDevAttrReserved93 = 93, + cudaDevAttrReserved94 = 94, + cudaDevAttrCooperativeLaunch = 95, + cudaDevAttrCooperativeMultiDeviceLaunch = 96, + cudaDevAttrMaxSharedMemoryPerBlockOptin = 97, + cudaDevAttrCanFlushRemoteWrites = 98, + cudaDevAttrHostRegisterSupported = 99, + cudaDevAttrPageableMemoryAccessUsesHostPageTables = 100, + cudaDevAttrDirectManagedMemAccessFromHost = 101, + cudaDevAttrMaxBlocksPerMultiprocessor = 106, + cudaDevAttrMaxPersistingL2CacheSize = 108, + cudaDevAttrMaxAccessPolicyWindowSize = 109, + cudaDevAttrReservedSharedMemoryPerBlock = 111, + cudaDevAttrSparseCudaArraySupported = 112, + cudaDevAttrHostRegisterReadOnlySupported = 113, + cudaDevAttrTimelineSemaphoreInteropSupported = 114, + cudaDevAttrMaxTimelineSemaphoreInteropSupported = 114, + cudaDevAttrMemoryPoolsSupported = 115, + cudaDevAttrGPUDirectRDMASupported = 116, + cudaDevAttrGPUDirectRDMAFlushWritesOptions = 117, + cudaDevAttrGPUDirectRDMAWritesOrdering = 118, + cudaDevAttrMemoryPoolSupportedHandleTypes = 119, + cudaDevAttrClusterLaunch = 120, + cudaDevAttrDeferredMappingCudaArraySupported = 121, + cudaDevAttrMax +}; + + + + +enum __attribute__((device_builtin)) cudaMemPoolAttr +{ +# 1915 "/usr/include/driver_types.h" 3 4 + cudaMemPoolReuseFollowEventDependencies = 0x1, + + + + + + + cudaMemPoolReuseAllowOpportunistic = 0x2, + + + + + + + + cudaMemPoolReuseAllowInternalDependencies = 0x3, +# 1941 "/usr/include/driver_types.h" 3 4 + cudaMemPoolAttrReleaseThreshold = 0x4, + + + + + + cudaMemPoolAttrReservedMemCurrent = 0x5, + + + + + + + cudaMemPoolAttrReservedMemHigh = 0x6, + + + + + + cudaMemPoolAttrUsedMemCurrent = 0x7, + + + + + + + cudaMemPoolAttrUsedMemHigh = 0x8 +}; + + + + +enum __attribute__((device_builtin)) cudaMemLocationType { + cudaMemLocationTypeInvalid = 0, + cudaMemLocationTypeDevice = 1 +}; + + + + + + +struct __attribute__((device_builtin)) cudaMemLocation { + enum cudaMemLocationType type; + int id; +}; + + + + +enum __attribute__((device_builtin)) cudaMemAccessFlags { + cudaMemAccessFlagsProtNone = 0, + cudaMemAccessFlagsProtRead = 1, + cudaMemAccessFlagsProtReadWrite = 3 +}; + + + + +struct __attribute__((device_builtin)) cudaMemAccessDesc { + struct cudaMemLocation location; + enum cudaMemAccessFlags flags; +}; + + + + +enum __attribute__((device_builtin)) cudaMemAllocationType { + cudaMemAllocationTypeInvalid = 0x0, + + + + cudaMemAllocationTypePinned = 0x1, + cudaMemAllocationTypeMax = 0x7FFFFFFF +}; + + + + +enum __attribute__((device_builtin)) cudaMemAllocationHandleType { + cudaMemHandleTypeNone = 0x0, + cudaMemHandleTypePosixFileDescriptor = 0x1, + cudaMemHandleTypeWin32 = 0x2, + cudaMemHandleTypeWin32Kmt = 0x4 +}; + + + + +struct __attribute__((device_builtin)) cudaMemPoolProps { + enum cudaMemAllocationType allocType; + enum cudaMemAllocationHandleType handleTypes; + struct cudaMemLocation location; + + + + + + + void *win32SecurityAttributes; + unsigned char reserved[64]; +}; + + + + +struct __attribute__((device_builtin)) cudaMemPoolPtrExportData { + unsigned char reserved[64]; +}; + + + + +struct __attribute__((device_builtin)) cudaMemAllocNodeParams { + + + + + struct cudaMemPoolProps poolProps; + const struct cudaMemAccessDesc *accessDescs; + size_t accessDescCount; + size_t bytesize; + void *dptr; +}; + + + + +enum __attribute__((device_builtin)) cudaGraphMemAttributeType { + + + + + cudaGraphMemAttrUsedMemCurrent = 0x0, + + + + + + + cudaGraphMemAttrUsedMemHigh = 0x1, + + + + + + + cudaGraphMemAttrReservedMemCurrent = 0x2, + + + + + + + cudaGraphMemAttrReservedMemHigh = 0x3 +}; + + + + + +enum __attribute__((device_builtin)) cudaDeviceP2PAttr { + cudaDevP2PAttrPerformanceRank = 1, + cudaDevP2PAttrAccessSupported = 2, + cudaDevP2PAttrNativeAtomicSupported = 3, + cudaDevP2PAttrCudaArrayAccessSupported = 4 +}; + + + + + + +struct __attribute__((device_builtin)) CUuuid_st { + char bytes[16]; +}; +typedef __attribute__((device_builtin)) struct CUuuid_st CUuuid; + +typedef __attribute__((device_builtin)) struct CUuuid_st cudaUUID_t; + + + + +struct __attribute__((device_builtin)) cudaDeviceProp +{ + char name[256]; + cudaUUID_t uuid; + char luid[8]; + unsigned int luidDeviceNodeMask; + size_t totalGlobalMem; + size_t sharedMemPerBlock; + int regsPerBlock; + int warpSize; + size_t memPitch; + int maxThreadsPerBlock; + int maxThreadsDim[3]; + int maxGridSize[3]; + int clockRate; + size_t totalConstMem; + int major; + int minor; + size_t textureAlignment; + size_t texturePitchAlignment; + int deviceOverlap; + int multiProcessorCount; + int kernelExecTimeoutEnabled; + int integrated; + int canMapHostMemory; + int computeMode; + int maxTexture1D; + int maxTexture1DMipmap; + int maxTexture1DLinear; + int maxTexture2D[2]; + int maxTexture2DMipmap[2]; + int maxTexture2DLinear[3]; + int maxTexture2DGather[2]; + int maxTexture3D[3]; + int maxTexture3DAlt[3]; + int maxTextureCubemap; + int maxTexture1DLayered[2]; + int maxTexture2DLayered[3]; + int maxTextureCubemapLayered[2]; + int maxSurface1D; + int maxSurface2D[2]; + int maxSurface3D[3]; + int maxSurface1DLayered[2]; + int maxSurface2DLayered[3]; + int maxSurfaceCubemap; + int maxSurfaceCubemapLayered[2]; + size_t surfaceAlignment; + int concurrentKernels; + int ECCEnabled; + int pciBusID; + int pciDeviceID; + int pciDomainID; + int tccDriver; + int asyncEngineCount; + int unifiedAddressing; + int memoryClockRate; + int memoryBusWidth; + int l2CacheSize; + int persistingL2CacheMaxSize; + int maxThreadsPerMultiProcessor; + int streamPrioritiesSupported; + int globalL1CacheSupported; + int localL1CacheSupported; + size_t sharedMemPerMultiprocessor; + int regsPerMultiprocessor; + int managedMemory; + int isMultiGpuBoard; + int multiGpuBoardGroupID; + int hostNativeAtomicSupported; + int singleToDoublePrecisionPerfRatio; + int pageableMemoryAccess; + int concurrentManagedAccess; + int computePreemptionSupported; + int canUseHostPointerForRegisteredMem; + int cooperativeLaunch; + int cooperativeMultiDeviceLaunch; + size_t sharedMemPerBlockOptin; + int pageableMemoryAccessUsesHostPageTables; + int directManagedMemAccessFromHost; + int maxBlocksPerMultiProcessor; + int accessPolicyMaxWindowSize; + size_t reservedSharedMemPerBlock; +}; +# 2299 "/usr/include/driver_types.h" 3 4 +typedef __attribute__((device_builtin)) struct __attribute__((device_builtin)) cudaIpcEventHandle_st +{ + char reserved[64]; +}cudaIpcEventHandle_t; + + + + +typedef __attribute__((device_builtin)) struct __attribute__((device_builtin)) cudaIpcMemHandle_st +{ + char reserved[64]; +}cudaIpcMemHandle_t; + + + + +enum __attribute__((device_builtin)) cudaExternalMemoryHandleType { + + + + cudaExternalMemoryHandleTypeOpaqueFd = 1, + + + + cudaExternalMemoryHandleTypeOpaqueWin32 = 2, + + + + cudaExternalMemoryHandleTypeOpaqueWin32Kmt = 3, + + + + cudaExternalMemoryHandleTypeD3D12Heap = 4, + + + + cudaExternalMemoryHandleTypeD3D12Resource = 5, + + + + cudaExternalMemoryHandleTypeD3D11Resource = 6, + + + + cudaExternalMemoryHandleTypeD3D11ResourceKmt = 7, + + + + cudaExternalMemoryHandleTypeNvSciBuf = 8 +}; +# 2390 "/usr/include/driver_types.h" 3 4 +struct __attribute__((device_builtin)) cudaExternalMemoryHandleDesc { + + + + enum cudaExternalMemoryHandleType type; + union { + + + + + + int fd; +# 2417 "/usr/include/driver_types.h" 3 4 + struct { + + + + void *handle; + + + + + const void *name; + } win32; + + + + + const void *nvSciBufObject; + } handle; + + + + unsigned long long size; + + + + unsigned int flags; +}; + + + + +struct __attribute__((device_builtin)) cudaExternalMemoryBufferDesc { + + + + unsigned long long offset; + + + + unsigned long long size; + + + + unsigned int flags; +}; + + + + +struct __attribute__((device_builtin)) cudaExternalMemoryMipmappedArrayDesc { + + + + + unsigned long long offset; + + + + struct cudaChannelFormatDesc formatDesc; + + + + struct cudaExtent extent; + + + + + unsigned int flags; + + + + unsigned int numLevels; +}; + + + + +enum __attribute__((device_builtin)) cudaExternalSemaphoreHandleType { + + + + cudaExternalSemaphoreHandleTypeOpaqueFd = 1, + + + + cudaExternalSemaphoreHandleTypeOpaqueWin32 = 2, + + + + cudaExternalSemaphoreHandleTypeOpaqueWin32Kmt = 3, + + + + cudaExternalSemaphoreHandleTypeD3D12Fence = 4, + + + + cudaExternalSemaphoreHandleTypeD3D11Fence = 5, + + + + cudaExternalSemaphoreHandleTypeNvSciSync = 6, + + + + cudaExternalSemaphoreHandleTypeKeyedMutex = 7, + + + + cudaExternalSemaphoreHandleTypeKeyedMutexKmt = 8, + + + + cudaExternalSemaphoreHandleTypeTimelineSemaphoreFd = 9, + + + + cudaExternalSemaphoreHandleTypeTimelineSemaphoreWin32 = 10 +}; + + + + +struct __attribute__((device_builtin)) cudaExternalSemaphoreHandleDesc { + + + + enum cudaExternalSemaphoreHandleType type; + union { + + + + + + + int fd; +# 2567 "/usr/include/driver_types.h" 3 4 + struct { + + + + void *handle; + + + + + const void *name; + } win32; + + + + const void* nvSciSyncObj; + } handle; + + + + unsigned int flags; +}; + + + + +struct __attribute__((device_builtin)) cudaExternalSemaphoreSignalParams_v1 { + struct { + + + + struct { + + + + unsigned long long value; + } fence; + union { + + + + + void *fence; + unsigned long long reserved; + } nvSciSync; + + + + struct { + + + + unsigned long long key; + } keyedMutex; + } params; +# 2631 "/usr/include/driver_types.h" 3 4 + unsigned int flags; +}; + + + + +struct __attribute__((device_builtin)) cudaExternalSemaphoreWaitParams_v1 { + struct { + + + + struct { + + + + unsigned long long value; + } fence; + union { + + + + + void *fence; + unsigned long long reserved; + } nvSciSync; + + + + struct { + + + + unsigned long long key; + + + + unsigned int timeoutMs; + } keyedMutex; + } params; +# 2680 "/usr/include/driver_types.h" 3 4 + unsigned int flags; +}; + + + + +struct __attribute__((device_builtin)) cudaExternalSemaphoreSignalParams{ + struct { + + + + struct { + + + + unsigned long long value; + } fence; + union { + + + + + void *fence; + unsigned long long reserved; + } nvSciSync; + + + + struct { + + + + unsigned long long key; + } keyedMutex; + unsigned int reserved[12]; + } params; +# 2726 "/usr/include/driver_types.h" 3 4 + unsigned int flags; + unsigned int reserved[16]; +}; + + + + +struct __attribute__((device_builtin)) cudaExternalSemaphoreWaitParams { + struct { + + + + struct { + + + + unsigned long long value; + } fence; + union { + + + + + void *fence; + unsigned long long reserved; + } nvSciSync; + + + + struct { + + + + unsigned long long key; + + + + unsigned int timeoutMs; + } keyedMutex; + unsigned int reserved[10]; + } params; +# 2777 "/usr/include/driver_types.h" 3 4 + unsigned int flags; + unsigned int reserved[16]; +}; +# 2790 "/usr/include/driver_types.h" 3 4 +typedef __attribute__((device_builtin)) enum cudaError cudaError_t; + + + + +typedef __attribute__((device_builtin)) struct CUstream_st *cudaStream_t; + + + + +typedef __attribute__((device_builtin)) struct CUevent_st *cudaEvent_t; + + + + +typedef __attribute__((device_builtin)) struct cudaGraphicsResource *cudaGraphicsResource_t; + + + + +typedef __attribute__((device_builtin)) enum cudaOutputMode cudaOutputMode_t; + + + + +typedef __attribute__((device_builtin)) struct CUexternalMemory_st *cudaExternalMemory_t; + + + + +typedef __attribute__((device_builtin)) struct CUexternalSemaphore_st *cudaExternalSemaphore_t; + + + + +typedef __attribute__((device_builtin)) struct CUgraph_st *cudaGraph_t; + + + + +typedef __attribute__((device_builtin)) struct CUgraphNode_st *cudaGraphNode_t; + + + + +typedef __attribute__((device_builtin)) struct CUuserObject_st *cudaUserObject_t; + + + + +typedef __attribute__((device_builtin)) struct CUfunc_st *cudaFunction_t; + + + + +typedef __attribute__((device_builtin)) struct CUmemPoolHandle_st *cudaMemPool_t; + + + + +enum __attribute__((device_builtin)) cudaCGScope { + cudaCGScopeInvalid = 0, + cudaCGScopeGrid = 1, + cudaCGScopeMultiGrid = 2 +}; + + + + +struct __attribute__((device_builtin)) cudaLaunchParams +{ + void *func; + dim3 gridDim; + dim3 blockDim; + void **args; + size_t sharedMem; + cudaStream_t stream; +}; + + + + +struct __attribute__((device_builtin)) cudaKernelNodeParams { + void* func; + dim3 gridDim; + dim3 blockDim; + unsigned int sharedMemBytes; + void **kernelParams; + void **extra; +}; + + + + +struct __attribute__((device_builtin)) cudaExternalSemaphoreSignalNodeParams { + cudaExternalSemaphore_t* extSemArray; + const struct cudaExternalSemaphoreSignalParams* paramsArray; + unsigned int numExtSems; +}; + + + + +struct __attribute__((device_builtin)) cudaExternalSemaphoreWaitNodeParams { + cudaExternalSemaphore_t* extSemArray; + const struct cudaExternalSemaphoreWaitParams* paramsArray; + unsigned int numExtSems; +}; + + + + +enum __attribute__((device_builtin)) cudaGraphNodeType { + cudaGraphNodeTypeKernel = 0x00, + cudaGraphNodeTypeMemcpy = 0x01, + cudaGraphNodeTypeMemset = 0x02, + cudaGraphNodeTypeHost = 0x03, + cudaGraphNodeTypeGraph = 0x04, + cudaGraphNodeTypeEmpty = 0x05, + cudaGraphNodeTypeWaitEvent = 0x06, + cudaGraphNodeTypeEventRecord = 0x07, + cudaGraphNodeTypeExtSemaphoreSignal = 0x08, + cudaGraphNodeTypeExtSemaphoreWait = 0x09, + cudaGraphNodeTypeMemAlloc = 0x0a, + cudaGraphNodeTypeMemFree = 0x0b, + cudaGraphNodeTypeCount +}; + + + + +typedef struct CUgraphExec_st* cudaGraphExec_t; + + + + +enum __attribute__((device_builtin)) cudaGraphExecUpdateResult { + cudaGraphExecUpdateSuccess = 0x0, + cudaGraphExecUpdateError = 0x1, + cudaGraphExecUpdateErrorTopologyChanged = 0x2, + cudaGraphExecUpdateErrorNodeTypeChanged = 0x3, + cudaGraphExecUpdateErrorFunctionChanged = 0x4, + cudaGraphExecUpdateErrorParametersChanged = 0x5, + cudaGraphExecUpdateErrorNotSupported = 0x6, + cudaGraphExecUpdateErrorUnsupportedFunctionChange = 0x7, + cudaGraphExecUpdateErrorAttributesChanged = 0x8 +}; + + + + + +enum __attribute__((device_builtin)) cudaGetDriverEntryPointFlags { + cudaEnableDefault = 0x0, + cudaEnableLegacyStream = 0x1, + cudaEnablePerThreadDefaultStream = 0x2 +}; + + + + +enum __attribute__((device_builtin)) cudaGraphDebugDotFlags { + cudaGraphDebugDotFlagsVerbose = 1<<0, + cudaGraphDebugDotFlagsKernelNodeParams = 1<<2, + cudaGraphDebugDotFlagsMemcpyNodeParams = 1<<3, + cudaGraphDebugDotFlagsMemsetNodeParams = 1<<4, + cudaGraphDebugDotFlagsHostNodeParams = 1<<5, + cudaGraphDebugDotFlagsEventNodeParams = 1<<6, + cudaGraphDebugDotFlagsExtSemasSignalNodeParams = 1<<7, + cudaGraphDebugDotFlagsExtSemasWaitNodeParams = 1<<8, + cudaGraphDebugDotFlagsKernelNodeAttributes = 1<<9, + cudaGraphDebugDotFlagsHandles = 1<<10 +}; + + + + +enum __attribute__((device_builtin)) cudaGraphInstantiateFlags { + cudaGraphInstantiateFlagAutoFreeOnLaunch = 1 + , cudaGraphInstantiateFlagUseNodePriority = 8 + +}; + + + + +typedef __attribute__((device_builtin)) enum cudaLaunchAttributeID { + cudaLaunchAttributeIgnore = 0 + , cudaLaunchAttributeAccessPolicyWindow = 1 + , cudaLaunchAttributeCooperative = 2 + , cudaLaunchAttributeSynchronizationPolicy = 3 + , cudaLaunchAttributeClusterDimension = 4 + , cudaLaunchAttributeClusterSchedulingPolicyPreference = 5 + , cudaLaunchAttributeProgrammaticStreamSerialization = 6 + + + + + + + + , cudaLaunchAttributeProgrammaticEvent = 7 +# 3009 "/usr/include/driver_types.h" 3 4 + , cudaLaunchAttributePriority = 8 +} cudaLaunchAttributeID; + + + + +typedef __attribute__((device_builtin)) union cudaLaunchAttributeValue { + char pad[64]; + struct cudaAccessPolicyWindow accessPolicyWindow; + int cooperative; + enum cudaSynchronizationPolicy syncPolicy; + struct { + unsigned int x; + unsigned int y; + unsigned int z; + } clusterDim; + enum cudaClusterSchedulingPolicy clusterSchedulingPolicyPreference; + int programmaticStreamSerializationAllowed; + struct { + cudaEvent_t event; + int flags; + int triggerAtBlockStart; + } programmaticEvent; + int priority; +} cudaLaunchAttributeValue; + + + + +typedef __attribute__((device_builtin)) struct cudaLaunchAttribute_st { + cudaLaunchAttributeID id; + char pad[8 - sizeof(cudaLaunchAttributeID)]; + cudaLaunchAttributeValue val; +} cudaLaunchAttribute; + + + + +typedef __attribute__((device_builtin)) struct cudaLaunchConfig_st { + dim3 gridDim; + dim3 blockDim; + size_t dynamicSmemBytes; + cudaStream_t stream; + cudaLaunchAttribute *attrs; + unsigned int numAttrs; +} cudaLaunchConfig_t; +# 60 "/usr/include/builtin_types.h" 2 3 4 + + +# 1 "/usr/include/surface_types.h" 1 3 4 +# 84 "/usr/include/surface_types.h" 3 4 +enum __attribute__((device_builtin)) cudaSurfaceBoundaryMode +{ + cudaBoundaryModeZero = 0, + cudaBoundaryModeClamp = 1, + cudaBoundaryModeTrap = 2 +}; + + + + +enum __attribute__((device_builtin)) cudaSurfaceFormatMode +{ + cudaFormatModeForced = 0, + cudaFormatModeAuto = 1 +}; + + + + +struct __attribute__((device_builtin)) surfaceReference +{ + + + + struct cudaChannelFormatDesc channelDesc; +}; + + + + +typedef __attribute__((device_builtin)) unsigned long long cudaSurfaceObject_t; +# 63 "/usr/include/builtin_types.h" 2 3 4 +# 1 "/usr/include/texture_types.h" 1 3 4 +# 84 "/usr/include/texture_types.h" 3 4 +enum __attribute__((device_builtin)) cudaTextureAddressMode +{ + cudaAddressModeWrap = 0, + cudaAddressModeClamp = 1, + cudaAddressModeMirror = 2, + cudaAddressModeBorder = 3 +}; + + + + +enum __attribute__((device_builtin)) cudaTextureFilterMode +{ + cudaFilterModePoint = 0, + cudaFilterModeLinear = 1 +}; + + + + +enum __attribute__((device_builtin)) cudaTextureReadMode +{ + cudaReadModeElementType = 0, + cudaReadModeNormalizedFloat = 1 +}; + + + + +struct __attribute__((device_builtin)) textureReference +{ + + + + int normalized; + + + + enum cudaTextureFilterMode filterMode; + + + + enum cudaTextureAddressMode addressMode[3]; + + + + struct cudaChannelFormatDesc channelDesc; + + + + int sRGB; + + + + unsigned int maxAnisotropy; + + + + enum cudaTextureFilterMode mipmapFilterMode; + + + + float mipmapLevelBias; + + + + float minMipmapLevelClamp; + + + + float maxMipmapLevelClamp; + + + + int disableTrilinearOptimization; + int __cudaReserved[14]; +}; + + + + +struct __attribute__((device_builtin)) cudaTextureDesc +{ + + + + enum cudaTextureAddressMode addressMode[3]; + + + + enum cudaTextureFilterMode filterMode; + + + + enum cudaTextureReadMode readMode; + + + + int sRGB; + + + + float borderColor[4]; + + + + int normalizedCoords; + + + + unsigned int maxAnisotropy; + + + + enum cudaTextureFilterMode mipmapFilterMode; + + + + float mipmapLevelBias; + + + + float minMipmapLevelClamp; + + + + float maxMipmapLevelClamp; + + + + int disableTrilinearOptimization; +}; + +struct __attribute__((device_builtin)) cudaTextureDesc_v2 +{ + + + + enum cudaTextureAddressMode addressMode[3]; + + + + enum cudaTextureFilterMode filterMode; + + + + enum cudaTextureReadMode readMode; + + + + int sRGB; + + + + float borderColor[4]; + + + + int normalizedCoords; + + + + unsigned int maxAnisotropy; + + + + enum cudaTextureFilterMode mipmapFilterMode; + + + + float mipmapLevelBias; + + + + float minMipmapLevelClamp; + + + + float maxMipmapLevelClamp; + + + + int disableTrilinearOptimization; + + + + int seamlessCubemap; +}; + + + + +typedef __attribute__((device_builtin)) unsigned long long cudaTextureObject_t; +# 64 "/usr/include/builtin_types.h" 2 3 4 +# 92 "/usr/include/cuda_runtime.h" 2 3 4 +# 1 "/usr/include/library_types.h" 1 3 4 +# 55 "/usr/include/library_types.h" 3 4 +typedef enum cudaDataType_t +{ + CUDA_R_16F = 2, + CUDA_C_16F = 6, + CUDA_R_16BF = 14, + CUDA_C_16BF = 15, + CUDA_R_32F = 0, + CUDA_C_32F = 4, + CUDA_R_64F = 1, + CUDA_C_64F = 5, + CUDA_R_4I = 16, + CUDA_C_4I = 17, + CUDA_R_4U = 18, + CUDA_C_4U = 19, + CUDA_R_8I = 3, + CUDA_C_8I = 7, + CUDA_R_8U = 8, + CUDA_C_8U = 9, + CUDA_R_16I = 20, + CUDA_C_16I = 21, + CUDA_R_16U = 22, + CUDA_C_16U = 23, + CUDA_R_32I = 10, + CUDA_C_32I = 11, + CUDA_R_32U = 12, + CUDA_C_32U = 13, + CUDA_R_64I = 24, + CUDA_C_64I = 25, + CUDA_R_64U = 26, + CUDA_C_64U = 27, + CUDA_R_8F_E4M3 = 28, + CUDA_R_8F_E5M2 = 29, +} cudaDataType; + + +typedef enum libraryPropertyType_t +{ + MAJOR_VERSION, + MINOR_VERSION, + PATCH_LEVEL +} libraryPropertyType; +# 93 "/usr/include/cuda_runtime.h" 2 3 4 + + +# 1 "/usr/include/channel_descriptor.h" 1 3 4 +# 61 "/usr/include/channel_descriptor.h" 3 4 +# 1 "/usr/include/cuda_runtime_api.h" 1 3 4 +# 147 "/usr/include/cuda_runtime_api.h" 3 4 +# 1 "/usr/include/crt/host_defines.h" 1 3 4 +# 148 "/usr/include/cuda_runtime_api.h" 2 3 4 + +# 1 "/usr/include/builtin_types.h" 1 3 4 +# 150 "/usr/include/cuda_runtime_api.h" 2 3 4 + +# 1 "/usr/include/cuda_device_runtime_api.h" 1 3 4 +# 129 "/usr/include/cuda_device_runtime_api.h" 3 4 +# 1 "/usr/include/crt/host_defines.h" 1 3 4 +# 130 "/usr/include/cuda_device_runtime_api.h" 2 3 4 + +extern "C" +{ +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetAttribute(int *value, enum cudaDeviceAttr attr, int device); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetLimit(size_t *pValue, enum cudaLimit limit); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetCacheConfig(enum cudaFuncCache *pCacheConfig); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetSharedMemConfig(enum cudaSharedMemConfig *pConfig); + + +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceSynchronize(void); + +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t __cudaDeviceSynchronizeDeprecationAvoidance(void); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaGetLastError(void); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaPeekAtLastError(void); +extern __attribute__((device)) __attribute__((cudart_builtin)) const char* cudaGetErrorString(cudaError_t error); +extern __attribute__((device)) __attribute__((cudart_builtin)) const char* cudaGetErrorName(cudaError_t error); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaGetDeviceCount(int *count); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaGetDevice(int *device); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaStreamCreateWithFlags(cudaStream_t *pStream, unsigned int flags); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaStreamDestroy(cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaStreamWaitEvent(cudaStream_t stream, cudaEvent_t event, unsigned int flags); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaStreamWaitEvent_ptsz(cudaStream_t stream, cudaEvent_t event, unsigned int flags); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaEventCreateWithFlags(cudaEvent_t *event, unsigned int flags); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaEventRecord(cudaEvent_t event, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaEventRecord_ptsz(cudaEvent_t event, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaEventRecordWithFlags(cudaEvent_t event, cudaStream_t stream, unsigned int flags); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaEventRecordWithFlags_ptsz(cudaEvent_t event, cudaStream_t stream, unsigned int flags); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaEventDestroy(cudaEvent_t event); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaFuncGetAttributes(struct cudaFuncAttributes *attr, const void *func); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaFree(void *devPtr); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMalloc(void **devPtr, size_t size); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMemcpyAsync(void *dst, const void *src, size_t count, enum cudaMemcpyKind kind, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMemcpyAsync_ptsz(void *dst, const void *src, size_t count, enum cudaMemcpyKind kind, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMemcpy2DAsync(void *dst, size_t dpitch, const void *src, size_t spitch, size_t width, size_t height, enum cudaMemcpyKind kind, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMemcpy2DAsync_ptsz(void *dst, size_t dpitch, const void *src, size_t spitch, size_t width, size_t height, enum cudaMemcpyKind kind, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMemcpy3DAsync(const struct cudaMemcpy3DParms *p, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMemcpy3DAsync_ptsz(const struct cudaMemcpy3DParms *p, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMemsetAsync(void *devPtr, int value, size_t count, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMemsetAsync_ptsz(void *devPtr, int value, size_t count, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMemset2DAsync(void *devPtr, size_t pitch, int value, size_t width, size_t height, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMemset2DAsync_ptsz(void *devPtr, size_t pitch, int value, size_t width, size_t height, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMemset3DAsync(struct cudaPitchedPtr pitchedDevPtr, int value, struct cudaExtent extent, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMemset3DAsync_ptsz(struct cudaPitchedPtr pitchedDevPtr, int value, struct cudaExtent extent, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaRuntimeGetVersion(int *runtimeVersion); +# 194 "/usr/include/cuda_device_runtime_api.h" 3 4 +extern __attribute__((device)) __attribute__((cudart_builtin)) void * cudaGetParameterBuffer(size_t alignment, size_t size); +# 222 "/usr/include/cuda_device_runtime_api.h" 3 4 +extern __attribute__((device)) __attribute__((cudart_builtin)) void * cudaGetParameterBufferV2(void *func, dim3 gridDimension, dim3 blockDimension, unsigned int sharedMemSize); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaLaunchDevice_ptsz(void *func, void *parameterBuffer, dim3 gridDimension, dim3 blockDimension, unsigned int sharedMemSize, cudaStream_t stream); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaLaunchDeviceV2_ptsz(void *parameterBuffer, cudaStream_t stream); +# 242 "/usr/include/cuda_device_runtime_api.h" 3 4 + extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaLaunchDevice(void *func, void *parameterBuffer, dim3 gridDimension, dim3 blockDimension, unsigned int sharedMemSize, cudaStream_t stream); + extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaLaunchDeviceV2(void *parameterBuffer, cudaStream_t stream); + + +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessor(int *numBlocks, const void *func, int blockSize, size_t dynamicSmemSize); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(int *numBlocks, const void *func, int blockSize, size_t dynamicSmemSize, unsigned int flags); + +extern __attribute__((device)) __attribute__((cudart_builtin)) unsigned long long cudaCGGetIntrinsicHandle(enum cudaCGScope scope); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaCGSynchronize(unsigned long long handle, unsigned int flags); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaCGSynchronizeGrid(unsigned long long handle, unsigned int flags); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaCGGetSize(unsigned int *numThreads, unsigned int *numGrids, unsigned long long handle); +extern __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaCGGetRank(unsigned int *threadRank, unsigned int *gridRank, unsigned long long handle); +} + +template static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaMalloc(T **devPtr, size_t size); +template static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaFuncGetAttributes(struct cudaFuncAttributes *attr, T *entry); +template static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessor(int *numBlocks, T func, int blockSize, size_t dynamicSmemSize); +template static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(int *numBlocks, T func, int blockSize, size_t dynamicSmemSize, unsigned int flags); +# 152 "/usr/include/cuda_runtime_api.h" 2 3 4 +# 267 "/usr/include/cuda_runtime_api.h" 3 4 +extern "C" { +# 307 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaDeviceReset(void); +# 329 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceSynchronize(void); +# 416 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaDeviceSetLimit(enum cudaLimit limit, size_t value); +# 449 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetLimit(size_t *pValue, enum cudaLimit limit); +# 472 "/usr/include/cuda_runtime_api.h" 3 4 + extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetTexture1DLinearMaxWidth(size_t *maxWidthInElements, const struct cudaChannelFormatDesc *fmtDesc, int device); +# 506 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetCacheConfig(enum cudaFuncCache *pCacheConfig); +# 543 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetStreamPriorityRange(int *leastPriority, int *greatestPriority); +# 587 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaDeviceSetCacheConfig(enum cudaFuncCache cacheConfig); +# 618 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetSharedMemConfig(enum cudaSharedMemConfig *pConfig); +# 662 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaDeviceSetSharedMemConfig(enum cudaSharedMemConfig config); +# 689 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaDeviceGetByPCIBusId(int *device, const char *pciBusId); +# 719 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaDeviceGetPCIBusId(char *pciBusId, int len, int device); +# 767 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaIpcGetEventHandle(cudaIpcEventHandle_t *handle, cudaEvent_t event); +# 808 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaIpcOpenEventHandle(cudaEvent_t *event, cudaIpcEventHandle_t handle); +# 851 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaIpcGetMemHandle(cudaIpcMemHandle_t *handle, void *devPtr); +# 915 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaIpcOpenMemHandle(void **devPtr, cudaIpcMemHandle_t handle, unsigned int flags); +# 951 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaIpcCloseMemHandle(void *devPtr); +# 983 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaDeviceFlushGPUDirectRDMAWrites(enum cudaFlushGPUDirectRDMAWritesTarget target, enum cudaFlushGPUDirectRDMAWritesScope scope); +# 1026 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaThreadExit(void); +# 1052 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaThreadSynchronize(void); +# 1101 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaThreadSetLimit(enum cudaLimit limit, size_t value); +# 1134 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaThreadGetLimit(size_t *pValue, enum cudaLimit limit); +# 1170 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaThreadGetCacheConfig(enum cudaFuncCache *pCacheConfig); +# 1217 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaThreadSetCacheConfig(enum cudaFuncCache cacheConfig); +# 1278 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaGetLastError(void); +# 1326 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaPeekAtLastError(void); +# 1342 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) const char* cudaGetErrorName(cudaError_t error); +# 1358 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) const char* cudaGetErrorString(cudaError_t error); +# 1386 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaGetDeviceCount(int *count); +# 1659 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaGetDeviceProperties(struct cudaDeviceProp *prop, int device); +# 1859 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetAttribute(int *value, enum cudaDeviceAttr attr, int device); +# 1877 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaDeviceGetDefaultMemPool(cudaMemPool_t *memPool, int device); +# 1901 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaDeviceSetMemPool(int device, cudaMemPool_t memPool); +# 1921 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaDeviceGetMemPool(cudaMemPool_t *memPool, int device); +# 1969 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaDeviceGetNvSciSyncAttributes(void *nvSciSyncAttrList, int device, int flags); +# 2009 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaDeviceGetP2PAttribute(int *value, enum cudaDeviceP2PAttr attr, int srcDevice, int dstDevice); +# 2030 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaChooseDevice(int *device, const struct cudaDeviceProp *prop); +# 2074 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaSetDevice(int device); +# 2095 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaGetDevice(int *device); +# 2126 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaSetValidDevices(int *device_arr, int len); +# 2191 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaSetDeviceFlags( unsigned int flags ); +# 2235 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGetDeviceFlags( unsigned int *flags ); +# 2275 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaStreamCreate(cudaStream_t *pStream); +# 2307 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamCreateWithFlags(cudaStream_t *pStream, unsigned int flags); +# 2353 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamCreateWithPriority(cudaStream_t *pStream, unsigned int flags, int priority); +# 2380 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamGetPriority(cudaStream_t hStream, int *priority); +# 2405 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamGetFlags(cudaStream_t hStream, unsigned int *flags); +# 2420 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaCtxResetPersistingL2Cache(void); +# 2440 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamCopyAttributes(cudaStream_t dst, cudaStream_t src); +# 2461 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamGetAttribute( + cudaStream_t hStream, cudaLaunchAttributeID attr, + cudaLaunchAttributeValue *value_out); +# 2485 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamSetAttribute( + cudaStream_t hStream, cudaLaunchAttributeID attr, + const cudaLaunchAttributeValue *value); +# 2519 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamDestroy(cudaStream_t stream); +# 2550 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamWaitEvent(cudaStream_t stream, cudaEvent_t event, unsigned int flags = 0); + + + + + + + +typedef void ( *cudaStreamCallback_t)(cudaStream_t stream, cudaError_t status, void *userData); +# 2625 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaStreamAddCallback(cudaStream_t stream, + cudaStreamCallback_t callback, void *userData, unsigned int flags); +# 2649 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaStreamSynchronize(cudaStream_t stream); +# 2674 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaStreamQuery(cudaStream_t stream); +# 2758 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaStreamAttachMemAsync(cudaStream_t stream, void *devPtr, size_t length = 0, unsigned int flags = 0x04); +# 2797 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaStreamBeginCapture(cudaStream_t stream, enum cudaStreamCaptureMode mode); +# 2848 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaThreadExchangeStreamCaptureMode(enum cudaStreamCaptureMode *mode); +# 2876 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaStreamEndCapture(cudaStream_t stream, cudaGraph_t *pGraph); +# 2914 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaStreamIsCapturing(cudaStream_t stream, enum cudaStreamCaptureStatus *pCaptureStatus); +# 2946 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaStreamGetCaptureInfo(cudaStream_t stream, enum cudaStreamCaptureStatus *pCaptureStatus, unsigned long long *pId); +# 3001 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaStreamGetCaptureInfo_v2(cudaStream_t stream, enum cudaStreamCaptureStatus *captureStatus_out, unsigned long long *id_out = 0, cudaGraph_t *graph_out = 0, const cudaGraphNode_t **dependencies_out = 0, size_t *numDependencies_out = 0); +# 3034 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaStreamUpdateCaptureDependencies(cudaStream_t stream, cudaGraphNode_t *dependencies, size_t numDependencies, unsigned int flags = 0); +# 3071 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaEventCreate(cudaEvent_t *event); +# 3108 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaEventCreateWithFlags(cudaEvent_t *event, unsigned int flags); +# 3148 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaEventRecord(cudaEvent_t event, cudaStream_t stream = 0); +# 3195 "/usr/include/cuda_runtime_api.h" 3 4 + extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaEventRecordWithFlags(cudaEvent_t event, cudaStream_t stream = 0, unsigned int flags = 0); +# 3227 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaEventQuery(cudaEvent_t event); +# 3257 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaEventSynchronize(cudaEvent_t event); +# 3286 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaEventDestroy(cudaEvent_t event); +# 3330 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaEventElapsedTime(float *ms, cudaEvent_t start, cudaEvent_t end); +# 3510 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaImportExternalMemory(cudaExternalMemory_t *extMem_out, const struct cudaExternalMemoryHandleDesc *memHandleDesc); +# 3565 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaExternalMemoryGetMappedBuffer(void **devPtr, cudaExternalMemory_t extMem, const struct cudaExternalMemoryBufferDesc *bufferDesc); +# 3627 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaExternalMemoryGetMappedMipmappedArray(cudaMipmappedArray_t *mipmap, cudaExternalMemory_t extMem, const struct cudaExternalMemoryMipmappedArrayDesc *mipmapDesc); +# 3651 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaDestroyExternalMemory(cudaExternalMemory_t extMem); +# 3804 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaImportExternalSemaphore(cudaExternalSemaphore_t *extSem_out, const struct cudaExternalSemaphoreHandleDesc *semHandleDesc); +# 3871 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaSignalExternalSemaphoresAsync_v2(const cudaExternalSemaphore_t *extSemArray, const struct cudaExternalSemaphoreSignalParams *paramsArray, unsigned int numExtSems, cudaStream_t stream = 0); +# 3947 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaWaitExternalSemaphoresAsync_v2(const cudaExternalSemaphore_t *extSemArray, const struct cudaExternalSemaphoreWaitParams *paramsArray, unsigned int numExtSems, cudaStream_t stream = 0); +# 3970 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaDestroyExternalSemaphore(cudaExternalSemaphore_t extSem); +# 4037 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaLaunchKernel(const void *func, dim3 gridDim, dim3 blockDim, void **args, size_t sharedMem, cudaStream_t stream); +# 4099 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaLaunchKernelExC(const cudaLaunchConfig_t *config, const void *func, void **args); +# 4156 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaLaunchCooperativeKernel(const void *func, dim3 gridDim, dim3 blockDim, void **args, size_t sharedMem, cudaStream_t stream); +# 4257 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaLaunchCooperativeKernelMultiDevice(struct cudaLaunchParams *launchParamsList, unsigned int numDevices, unsigned int flags = 0); +# 4304 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaFuncSetCacheConfig(const void *func, enum cudaFuncCache cacheConfig); +# 4359 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaFuncSetSharedMemConfig(const void *func, enum cudaSharedMemConfig config); +# 4392 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaFuncGetAttributes(struct cudaFuncAttributes *attr, const void *func); +# 4429 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaFuncSetAttribute(const void *func, enum cudaFuncAttribute attr, int value); +# 4453 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaSetDoubleForDevice(double *d); +# 4477 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaSetDoubleForHost(double *d); +# 4543 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaLaunchHostFunc(cudaStream_t stream, cudaHostFn_t fn, void *userData); +# 4600 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessor(int *numBlocks, const void *func, int blockSize, size_t dynamicSMemSize); +# 4629 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyAvailableDynamicSMemPerBlock(size_t *dynamicSmemSize, const void *func, int numBlocks, int blockSize); +# 4674 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(int *numBlocks, const void *func, int blockSize, size_t dynamicSMemSize, unsigned int flags); +# 4709 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyMaxPotentialClusterSize(int *clusterSize, const void *func, const cudaLaunchConfig_t *launchConfig); +# 4748 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaOccupancyMaxActiveClusters(int *numClusters, const void *func, const cudaLaunchConfig_t *launchConfig); +# 4868 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaMallocManaged(void **devPtr, size_t size, unsigned int flags = 0x01); +# 4901 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaMalloc(void **devPtr, size_t size); +# 4934 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMallocHost(void **ptr, size_t size); +# 4977 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMallocPitch(void **devPtr, size_t *pitch, size_t width, size_t height); +# 5029 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMallocArray(cudaArray_t *array, const struct cudaChannelFormatDesc *desc, size_t width, size_t height = 0, unsigned int flags = 0); +# 5067 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaFree(void *devPtr); +# 5090 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaFreeHost(void *ptr); +# 5113 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaFreeArray(cudaArray_t array); +# 5136 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaFreeMipmappedArray(cudaMipmappedArray_t mipmappedArray); +# 5202 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaHostAlloc(void **pHost, size_t size, unsigned int flags); +# 5295 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaHostRegister(void *ptr, size_t size, unsigned int flags); +# 5318 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaHostUnregister(void *ptr); +# 5363 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaHostGetDevicePointer(void **pDevice, void *pHost, unsigned int flags); +# 5385 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaHostGetFlags(unsigned int *pFlags, void *pHost); +# 5424 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMalloc3D(struct cudaPitchedPtr* pitchedDevPtr, struct cudaExtent extent); +# 5569 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMalloc3DArray(cudaArray_t *array, const struct cudaChannelFormatDesc* desc, struct cudaExtent extent, unsigned int flags = 0); +# 5714 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMallocMipmappedArray(cudaMipmappedArray_t *mipmappedArray, const struct cudaChannelFormatDesc* desc, struct cudaExtent extent, unsigned int numLevels, unsigned int flags = 0); +# 5747 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGetMipmappedArrayLevel(cudaArray_t *levelArray, cudaMipmappedArray_const_t mipmappedArray, unsigned int level); +# 5852 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemcpy3D(const struct cudaMemcpy3DParms *p); +# 5883 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemcpy3DPeer(const struct cudaMemcpy3DPeerParms *p); +# 6001 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaMemcpy3DAsync(const struct cudaMemcpy3DParms *p, cudaStream_t stream = 0); +# 6027 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemcpy3DPeerAsync(const struct cudaMemcpy3DPeerParms *p, cudaStream_t stream = 0); +# 6061 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemGetInfo(size_t *free, size_t *total); +# 6087 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaArrayGetInfo(struct cudaChannelFormatDesc *desc, struct cudaExtent *extent, unsigned int *flags, cudaArray_t array); +# 6116 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaArrayGetPlane(cudaArray_t *pPlaneArray, cudaArray_t hArray, unsigned int planeIdx); +# 6139 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaArrayGetMemoryRequirements(struct cudaArrayMemoryRequirements *memoryRequirements, cudaArray_t array, int device); +# 6163 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMipmappedArrayGetMemoryRequirements(struct cudaArrayMemoryRequirements *memoryRequirements, cudaMipmappedArray_t mipmap, int device); +# 6191 "/usr/include/cuda_runtime_api.h" 3 4 + extern __attribute__((host)) cudaError_t cudaArrayGetSparseProperties(struct cudaArraySparseProperties *sparseProperties, cudaArray_t array); +# 6221 "/usr/include/cuda_runtime_api.h" 3 4 + extern __attribute__((host)) cudaError_t cudaMipmappedArrayGetSparseProperties(struct cudaArraySparseProperties *sparseProperties, cudaMipmappedArray_t mipmap); +# 6266 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemcpy(void *dst, const void *src, size_t count, enum cudaMemcpyKind kind); +# 6301 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemcpyPeer(void *dst, int dstDevice, const void *src, int srcDevice, size_t count); +# 6350 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemcpy2D(void *dst, size_t dpitch, const void *src, size_t spitch, size_t width, size_t height, enum cudaMemcpyKind kind); +# 6400 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemcpy2DToArray(cudaArray_t dst, size_t wOffset, size_t hOffset, const void *src, size_t spitch, size_t width, size_t height, enum cudaMemcpyKind kind); +# 6450 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemcpy2DFromArray(void *dst, size_t dpitch, cudaArray_const_t src, size_t wOffset, size_t hOffset, size_t width, size_t height, enum cudaMemcpyKind kind); +# 6497 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemcpy2DArrayToArray(cudaArray_t dst, size_t wOffsetDst, size_t hOffsetDst, cudaArray_const_t src, size_t wOffsetSrc, size_t hOffsetSrc, size_t width, size_t height, enum cudaMemcpyKind kind = cudaMemcpyDeviceToDevice); +# 6540 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemcpyToSymbol(const void *symbol, const void *src, size_t count, size_t offset = 0, enum cudaMemcpyKind kind = cudaMemcpyHostToDevice); +# 6583 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemcpyFromSymbol(void *dst, const void *symbol, size_t count, size_t offset = 0, enum cudaMemcpyKind kind = cudaMemcpyDeviceToHost); +# 6640 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaMemcpyAsync(void *dst, const void *src, size_t count, enum cudaMemcpyKind kind, cudaStream_t stream = 0); +# 6675 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemcpyPeerAsync(void *dst, int dstDevice, const void *src, int srcDevice, size_t count, cudaStream_t stream = 0); +# 6738 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaMemcpy2DAsync(void *dst, size_t dpitch, const void *src, size_t spitch, size_t width, size_t height, enum cudaMemcpyKind kind, cudaStream_t stream = 0); +# 6796 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemcpy2DToArrayAsync(cudaArray_t dst, size_t wOffset, size_t hOffset, const void *src, size_t spitch, size_t width, size_t height, enum cudaMemcpyKind kind, cudaStream_t stream = 0); +# 6853 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemcpy2DFromArrayAsync(void *dst, size_t dpitch, cudaArray_const_t src, size_t wOffset, size_t hOffset, size_t width, size_t height, enum cudaMemcpyKind kind, cudaStream_t stream = 0); +# 6904 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemcpyToSymbolAsync(const void *symbol, const void *src, size_t count, size_t offset, enum cudaMemcpyKind kind, cudaStream_t stream = 0); +# 6955 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemcpyFromSymbolAsync(void *dst, const void *symbol, size_t count, size_t offset, enum cudaMemcpyKind kind, cudaStream_t stream = 0); +# 6984 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemset(void *devPtr, int value, size_t count); +# 7018 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemset2D(void *devPtr, size_t pitch, int value, size_t width, size_t height); +# 7064 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemset3D(struct cudaPitchedPtr pitchedDevPtr, int value, struct cudaExtent extent); +# 7100 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaMemsetAsync(void *devPtr, int value, size_t count, cudaStream_t stream = 0); +# 7141 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaMemset2DAsync(void *devPtr, size_t pitch, int value, size_t width, size_t height, cudaStream_t stream = 0); +# 7194 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaMemset3DAsync(struct cudaPitchedPtr pitchedDevPtr, int value, struct cudaExtent extent, cudaStream_t stream = 0); +# 7222 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGetSymbolAddress(void **devPtr, const void *symbol); +# 7249 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGetSymbolSize(size_t *size, const void *symbol); +# 7319 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemPrefetchAsync(const void *devPtr, size_t count, int dstDevice, cudaStream_t stream = 0); +# 7435 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemAdvise(const void *devPtr, size_t count, enum cudaMemoryAdvise advice, int device); +# 7494 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemRangeGetAttribute(void *data, size_t dataSize, enum cudaMemRangeAttribute attribute, const void *devPtr, size_t count); +# 7533 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemRangeGetAttributes(void **data, size_t *dataSizes, enum cudaMemRangeAttribute *attributes, size_t numAttributes, const void *devPtr, size_t count); +# 7593 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaMemcpyToArray(cudaArray_t dst, size_t wOffset, size_t hOffset, const void *src, size_t count, enum cudaMemcpyKind kind); +# 7635 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaMemcpyFromArray(void *dst, cudaArray_const_t src, size_t wOffset, size_t hOffset, size_t count, enum cudaMemcpyKind kind); +# 7678 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaMemcpyArrayToArray(cudaArray_t dst, size_t wOffsetDst, size_t hOffsetDst, cudaArray_const_t src, size_t wOffsetSrc, size_t hOffsetSrc, size_t count, enum cudaMemcpyKind kind = cudaMemcpyDeviceToDevice); +# 7729 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaMemcpyToArrayAsync(cudaArray_t dst, size_t wOffset, size_t hOffset, const void *src, size_t count, enum cudaMemcpyKind kind, cudaStream_t stream = 0); +# 7779 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaMemcpyFromArrayAsync(void *dst, cudaArray_const_t src, size_t wOffset, size_t hOffset, size_t count, enum cudaMemcpyKind kind, cudaStream_t stream = 0); +# 7848 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMallocAsync(void **devPtr, size_t size, cudaStream_t hStream); +# 7874 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaFreeAsync(void *devPtr, cudaStream_t hStream); +# 7899 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemPoolTrimTo(cudaMemPool_t memPool, size_t minBytesToKeep); +# 7943 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemPoolSetAttribute(cudaMemPool_t memPool, enum cudaMemPoolAttr attr, void *value ); +# 7991 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemPoolGetAttribute(cudaMemPool_t memPool, enum cudaMemPoolAttr attr, void *value ); +# 8006 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemPoolSetAccess(cudaMemPool_t memPool, const struct cudaMemAccessDesc *descList, size_t count); +# 8019 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemPoolGetAccess(enum cudaMemAccessFlags *flags, cudaMemPool_t memPool, struct cudaMemLocation *location); +# 8039 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemPoolCreate(cudaMemPool_t *memPool, const struct cudaMemPoolProps *poolProps); +# 8061 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemPoolDestroy(cudaMemPool_t memPool); +# 8097 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMallocFromPoolAsync(void **ptr, size_t size, cudaMemPool_t memPool, cudaStream_t stream); +# 8122 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemPoolExportToShareableHandle( + void *shareableHandle, + cudaMemPool_t memPool, + enum cudaMemAllocationHandleType handleType, + unsigned int flags); +# 8149 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemPoolImportFromShareableHandle( + cudaMemPool_t *memPool, + void *shareableHandle, + enum cudaMemAllocationHandleType handleType, + unsigned int flags); +# 8172 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemPoolExportPointer(struct cudaMemPoolPtrExportData *exportData, void *ptr); +# 8201 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaMemPoolImportPointer(void **ptr, cudaMemPool_t memPool, struct cudaMemPoolPtrExportData *exportData); +# 8353 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaPointerGetAttributes(struct cudaPointerAttributes *attributes, const void *ptr); +# 8394 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaDeviceCanAccessPeer(int *canAccessPeer, int device, int peerDevice); +# 8436 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaDeviceEnablePeerAccess(int peerDevice, unsigned int flags); +# 8458 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaDeviceDisablePeerAccess(int peerDevice); +# 8522 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphicsUnregisterResource(cudaGraphicsResource_t resource); +# 8557 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphicsResourceSetMapFlags(cudaGraphicsResource_t resource, unsigned int flags); +# 8596 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphicsMapResources(int count, cudaGraphicsResource_t *resources, cudaStream_t stream = 0); +# 8631 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphicsUnmapResources(int count, cudaGraphicsResource_t *resources, cudaStream_t stream = 0); +# 8663 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphicsResourceGetMappedPointer(void **devPtr, size_t *size, cudaGraphicsResource_t resource); +# 8701 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphicsSubResourceGetMappedArray(cudaArray_t *array, cudaGraphicsResource_t resource, unsigned int arrayIndex, unsigned int mipLevel); +# 8730 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphicsResourceGetMappedMipmappedArray(cudaMipmappedArray_t *mipmappedArray, cudaGraphicsResource_t resource); +# 8801 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaBindTexture(size_t *offset, const struct textureReference *texref, const void *devPtr, const struct cudaChannelFormatDesc *desc, size_t size = (0x7fffffff * 2U + 1U)); +# 8860 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaBindTexture2D(size_t *offset, const struct textureReference *texref, const void *devPtr, const struct cudaChannelFormatDesc *desc, size_t width, size_t height, size_t pitch); +# 8898 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaBindTextureToArray(const struct textureReference *texref, cudaArray_const_t array, const struct cudaChannelFormatDesc *desc); +# 8938 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaBindTextureToMipmappedArray(const struct textureReference *texref, cudaMipmappedArray_const_t mipmappedArray, const struct cudaChannelFormatDesc *desc); +# 8964 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaUnbindTexture(const struct textureReference *texref); +# 8993 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaGetTextureAlignmentOffset(size_t *offset, const struct textureReference *texref); +# 9023 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaGetTextureReference(const struct textureReference **texref, const void *symbol); +# 9068 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaBindSurfaceToArray(const struct surfaceReference *surfref, cudaArray_const_t array, const struct cudaChannelFormatDesc *desc); +# 9093 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((deprecated)) __attribute__((host)) cudaError_t cudaGetSurfaceReference(const struct surfaceReference **surfref, const void *symbol); +# 9128 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGetChannelDesc(struct cudaChannelFormatDesc *desc, cudaArray_const_t array); +# 9158 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) struct cudaChannelFormatDesc cudaCreateChannelDesc(int x, int y, int z, int w, enum cudaChannelFormatKind f); +# 9375 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaCreateTextureObject(cudaTextureObject_t *pTexObject, const struct cudaResourceDesc *pResDesc, const struct cudaTextureDesc *pTexDesc, const struct cudaResourceViewDesc *pResViewDesc); +# 9599 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaCreateTextureObject_v2(cudaTextureObject_t *pTexObject, const struct cudaResourceDesc *pResDesc, const struct cudaTextureDesc_v2 *pTexDesc, const struct cudaResourceViewDesc *pResViewDesc); +# 9619 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaDestroyTextureObject(cudaTextureObject_t texObject); +# 9639 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGetTextureObjectResourceDesc(struct cudaResourceDesc *pResDesc, cudaTextureObject_t texObject); +# 9659 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGetTextureObjectTextureDesc(struct cudaTextureDesc *pTexDesc, cudaTextureObject_t texObject); +# 9679 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGetTextureObjectTextureDesc_v2(struct cudaTextureDesc_v2 *pTexDesc, cudaTextureObject_t texObject); +# 9700 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGetTextureObjectResourceViewDesc(struct cudaResourceViewDesc *pResViewDesc, cudaTextureObject_t texObject); +# 9745 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaCreateSurfaceObject(cudaSurfaceObject_t *pSurfObject, const struct cudaResourceDesc *pResDesc); +# 9765 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaDestroySurfaceObject(cudaSurfaceObject_t surfObject); +# 9784 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGetSurfaceObjectResourceDesc(struct cudaResourceDesc *pResDesc, cudaSurfaceObject_t surfObject); +# 9818 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaDriverGetVersion(int *driverVersion); +# 9843 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) __attribute__((cudart_builtin)) cudaError_t cudaRuntimeGetVersion(int *runtimeVersion); +# 9890 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphCreate(cudaGraph_t *pGraph, unsigned int flags); +# 9987 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphAddKernelNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, const struct cudaKernelNodeParams *pNodeParams); +# 10020 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphKernelNodeGetParams(cudaGraphNode_t node, struct cudaKernelNodeParams *pNodeParams); +# 10045 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphKernelNodeSetParams(cudaGraphNode_t node, const struct cudaKernelNodeParams *pNodeParams); +# 10065 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphKernelNodeCopyAttributes( + cudaGraphNode_t hSrc, + cudaGraphNode_t hDst); +# 10088 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphKernelNodeGetAttribute( + cudaGraphNode_t hNode, + cudaLaunchAttributeID attr, + cudaLaunchAttributeValue *value_out); +# 10112 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphKernelNodeSetAttribute( + cudaGraphNode_t hNode, + cudaLaunchAttributeID attr, + const cudaLaunchAttributeValue *value); +# 10162 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphAddMemcpyNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, const struct cudaMemcpy3DParms *pCopyParams); +# 10221 "/usr/include/cuda_runtime_api.h" 3 4 + extern __attribute__((host)) cudaError_t cudaGraphAddMemcpyNodeToSymbol( + cudaGraphNode_t *pGraphNode, + cudaGraph_t graph, + const cudaGraphNode_t *pDependencies, + size_t numDependencies, + const void* symbol, + const void* src, + size_t count, + size_t offset, + enum cudaMemcpyKind kind); +# 10290 "/usr/include/cuda_runtime_api.h" 3 4 + extern __attribute__((host)) cudaError_t cudaGraphAddMemcpyNodeFromSymbol( + cudaGraphNode_t* pGraphNode, + cudaGraph_t graph, + const cudaGraphNode_t* pDependencies, + size_t numDependencies, + void* dst, + const void* symbol, + size_t count, + size_t offset, + enum cudaMemcpyKind kind); +# 10358 "/usr/include/cuda_runtime_api.h" 3 4 + extern __attribute__((host)) cudaError_t cudaGraphAddMemcpyNode1D( + cudaGraphNode_t *pGraphNode, + cudaGraph_t graph, + const cudaGraphNode_t *pDependencies, + size_t numDependencies, + void* dst, + const void* src, + size_t count, + enum cudaMemcpyKind kind); +# 10390 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphMemcpyNodeGetParams(cudaGraphNode_t node, struct cudaMemcpy3DParms *pNodeParams); +# 10416 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphMemcpyNodeSetParams(cudaGraphNode_t node, const struct cudaMemcpy3DParms *pNodeParams); +# 10455 "/usr/include/cuda_runtime_api.h" 3 4 + extern __attribute__((host)) cudaError_t cudaGraphMemcpyNodeSetParamsToSymbol( + cudaGraphNode_t node, + const void* symbol, + const void* src, + size_t count, + size_t offset, + enum cudaMemcpyKind kind); +# 10501 "/usr/include/cuda_runtime_api.h" 3 4 + extern __attribute__((host)) cudaError_t cudaGraphMemcpyNodeSetParamsFromSymbol( + cudaGraphNode_t node, + void* dst, + const void* symbol, + size_t count, + size_t offset, + enum cudaMemcpyKind kind); +# 10547 "/usr/include/cuda_runtime_api.h" 3 4 + extern __attribute__((host)) cudaError_t cudaGraphMemcpyNodeSetParams1D( + cudaGraphNode_t node, + void* dst, + const void* src, + size_t count, + enum cudaMemcpyKind kind); +# 10594 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphAddMemsetNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, const struct cudaMemsetParams *pMemsetParams); +# 10617 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphMemsetNodeGetParams(cudaGraphNode_t node, struct cudaMemsetParams *pNodeParams); +# 10640 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphMemsetNodeSetParams(cudaGraphNode_t node, const struct cudaMemsetParams *pNodeParams); +# 10681 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphAddHostNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, const struct cudaHostNodeParams *pNodeParams); +# 10704 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphHostNodeGetParams(cudaGraphNode_t node, struct cudaHostNodeParams *pNodeParams); +# 10727 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphHostNodeSetParams(cudaGraphNode_t node, const struct cudaHostNodeParams *pNodeParams); +# 10767 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphAddChildGraphNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, cudaGraph_t childGraph); +# 10794 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphChildGraphNodeGetGraph(cudaGraphNode_t node, cudaGraph_t *pGraph); +# 10831 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphAddEmptyNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies); +# 10874 "/usr/include/cuda_runtime_api.h" 3 4 + extern __attribute__((host)) cudaError_t cudaGraphAddEventRecordNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, cudaEvent_t event); +# 10901 "/usr/include/cuda_runtime_api.h" 3 4 + extern __attribute__((host)) cudaError_t cudaGraphEventRecordNodeGetEvent(cudaGraphNode_t node, cudaEvent_t *event_out); +# 10928 "/usr/include/cuda_runtime_api.h" 3 4 + extern __attribute__((host)) cudaError_t cudaGraphEventRecordNodeSetEvent(cudaGraphNode_t node, cudaEvent_t event); +# 10974 "/usr/include/cuda_runtime_api.h" 3 4 + extern __attribute__((host)) cudaError_t cudaGraphAddEventWaitNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, cudaEvent_t event); +# 11001 "/usr/include/cuda_runtime_api.h" 3 4 + extern __attribute__((host)) cudaError_t cudaGraphEventWaitNodeGetEvent(cudaGraphNode_t node, cudaEvent_t *event_out); +# 11028 "/usr/include/cuda_runtime_api.h" 3 4 + extern __attribute__((host)) cudaError_t cudaGraphEventWaitNodeSetEvent(cudaGraphNode_t node, cudaEvent_t event); +# 11077 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphAddExternalSemaphoresSignalNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, const struct cudaExternalSemaphoreSignalNodeParams *nodeParams); +# 11110 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphExternalSemaphoresSignalNodeGetParams(cudaGraphNode_t hNode, struct cudaExternalSemaphoreSignalNodeParams *params_out); +# 11137 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphExternalSemaphoresSignalNodeSetParams(cudaGraphNode_t hNode, const struct cudaExternalSemaphoreSignalNodeParams *nodeParams); +# 11186 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphAddExternalSemaphoresWaitNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, const struct cudaExternalSemaphoreWaitNodeParams *nodeParams); +# 11219 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphExternalSemaphoresWaitNodeGetParams(cudaGraphNode_t hNode, struct cudaExternalSemaphoreWaitNodeParams *params_out); +# 11246 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphExternalSemaphoresWaitNodeSetParams(cudaGraphNode_t hNode, const struct cudaExternalSemaphoreWaitNodeParams *nodeParams); +# 11323 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphAddMemAllocNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, struct cudaMemAllocNodeParams *nodeParams); +# 11350 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphMemAllocNodeGetParams(cudaGraphNode_t node, struct cudaMemAllocNodeParams *params_out); +# 11410 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphAddMemFreeNode(cudaGraphNode_t *pGraphNode, cudaGraph_t graph, const cudaGraphNode_t *pDependencies, size_t numDependencies, void *dptr); +# 11434 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphMemFreeNodeGetParams(cudaGraphNode_t node, void *dptr_out); +# 11462 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaDeviceGraphMemTrim(int device); +# 11499 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaDeviceGetGraphMemAttribute(int device, enum cudaGraphMemAttributeType attr, void* value); +# 11533 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaDeviceSetGraphMemAttribute(int device, enum cudaGraphMemAttributeType attr, void* value); +# 11561 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphClone(cudaGraph_t *pGraphClone, cudaGraph_t originalGraph); +# 11589 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphNodeFindInClone(cudaGraphNode_t *pNode, cudaGraphNode_t originalNode, cudaGraph_t clonedGraph); +# 11620 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphNodeGetType(cudaGraphNode_t node, enum cudaGraphNodeType *pType); +# 11651 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphGetNodes(cudaGraph_t graph, cudaGraphNode_t *nodes, size_t *numNodes); +# 11682 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphGetRootNodes(cudaGraph_t graph, cudaGraphNode_t *pRootNodes, size_t *pNumRootNodes); +# 11716 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphGetEdges(cudaGraph_t graph, cudaGraphNode_t *from, cudaGraphNode_t *to, size_t *numEdges); +# 11747 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphNodeGetDependencies(cudaGraphNode_t node, cudaGraphNode_t *pDependencies, size_t *pNumDependencies); +# 11779 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphNodeGetDependentNodes(cudaGraphNode_t node, cudaGraphNode_t *pDependentNodes, size_t *pNumDependentNodes); +# 11810 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphAddDependencies(cudaGraph_t graph, const cudaGraphNode_t *from, const cudaGraphNode_t *to, size_t numDependencies); +# 11841 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphRemoveDependencies(cudaGraph_t graph, const cudaGraphNode_t *from, const cudaGraphNode_t *to, size_t numDependencies); +# 11871 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphDestroyNode(cudaGraphNode_t node); +# 11909 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphInstantiate(cudaGraphExec_t *pGraphExec, cudaGraph_t graph, cudaGraphNode_t *pErrorNode, char *pLogBuffer, size_t bufferSize); +# 11957 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphInstantiateWithFlags(cudaGraphExec_t *pGraphExec, cudaGraph_t graph, unsigned long long flags); +# 12001 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphExecKernelNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, const struct cudaKernelNodeParams *pNodeParams); +# 12051 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphExecMemcpyNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, const struct cudaMemcpy3DParms *pNodeParams); +# 12106 "/usr/include/cuda_runtime_api.h" 3 4 + extern __attribute__((host)) cudaError_t cudaGraphExecMemcpyNodeSetParamsToSymbol( + cudaGraphExec_t hGraphExec, + cudaGraphNode_t node, + const void* symbol, + const void* src, + size_t count, + size_t offset, + enum cudaMemcpyKind kind); +# 12169 "/usr/include/cuda_runtime_api.h" 3 4 + extern __attribute__((host)) cudaError_t cudaGraphExecMemcpyNodeSetParamsFromSymbol( + cudaGraphExec_t hGraphExec, + cudaGraphNode_t node, + void* dst, + const void* symbol, + size_t count, + size_t offset, + enum cudaMemcpyKind kind); +# 12230 "/usr/include/cuda_runtime_api.h" 3 4 + extern __attribute__((host)) cudaError_t cudaGraphExecMemcpyNodeSetParams1D( + cudaGraphExec_t hGraphExec, + cudaGraphNode_t node, + void* dst, + const void* src, + size_t count, + enum cudaMemcpyKind kind); +# 12284 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphExecMemsetNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, const struct cudaMemsetParams *pNodeParams); +# 12323 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphExecHostNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, const struct cudaHostNodeParams *pNodeParams); +# 12369 "/usr/include/cuda_runtime_api.h" 3 4 + extern __attribute__((host)) cudaError_t cudaGraphExecChildGraphNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, cudaGraph_t childGraph); +# 12413 "/usr/include/cuda_runtime_api.h" 3 4 + extern __attribute__((host)) cudaError_t cudaGraphExecEventRecordNodeSetEvent(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, cudaEvent_t event); +# 12457 "/usr/include/cuda_runtime_api.h" 3 4 + extern __attribute__((host)) cudaError_t cudaGraphExecEventWaitNodeSetEvent(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, cudaEvent_t event); +# 12504 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphExecExternalSemaphoresSignalNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, const struct cudaExternalSemaphoreSignalNodeParams *nodeParams); +# 12551 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphExecExternalSemaphoresWaitNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, const struct cudaExternalSemaphoreWaitNodeParams *nodeParams); +# 12591 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphNodeSetEnabled(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, unsigned int isEnabled); +# 12625 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphNodeGetEnabled(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, unsigned int *isEnabled); +# 12706 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphExecUpdate(cudaGraphExec_t hGraphExec, cudaGraph_t hGraph, cudaGraphNode_t *hErrorNode_out, enum cudaGraphExecUpdateResult *updateResult_out); +# 12731 "/usr/include/cuda_runtime_api.h" 3 4 + extern __attribute__((host)) cudaError_t cudaGraphUpload(cudaGraphExec_t graphExec, cudaStream_t stream); +# 12762 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphLaunch(cudaGraphExec_t graphExec, cudaStream_t stream); +# 12785 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphExecDestroy(cudaGraphExec_t graphExec); +# 12806 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphDestroy(cudaGraph_t graph); +# 12825 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphDebugDotPrint(cudaGraph_t graph, const char *path, unsigned int flags); +# 12861 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaUserObjectCreate(cudaUserObject_t *object_out, void *ptr, cudaHostFn_t destroy, unsigned int initialRefcount, unsigned int flags); +# 12885 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaUserObjectRetain(cudaUserObject_t object, unsigned int count = 1); +# 12913 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaUserObjectRelease(cudaUserObject_t object, unsigned int count = 1); +# 12941 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphRetainUserObject(cudaGraph_t graph, cudaUserObject_t object, unsigned int count = 1, unsigned int flags = 0); +# 12966 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGraphReleaseUserObject(cudaGraph_t graph, cudaUserObject_t object, unsigned int count = 1); +# 13032 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGetDriverEntryPoint(const char *symbol, void **funcPtr, unsigned long long flags); + + + + +extern __attribute__((host)) cudaError_t cudaGetExportTable(const void **ppExportTable, const cudaUUID_t *pExportTableId); +# 13213 "/usr/include/cuda_runtime_api.h" 3 4 +extern __attribute__((host)) cudaError_t cudaGetFuncBySymbol(cudaFunction_t* functionPtr, const void* symbolPtr); +# 13365 "/usr/include/cuda_runtime_api.h" 3 4 +} +# 62 "/usr/include/channel_descriptor.h" 2 3 4 +# 124 "/usr/include/channel_descriptor.h" 3 4 +template __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(0, 0, 0, 0, cudaChannelFormatKindNone); +} + +static __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDescHalf(void) +{ + int e = (int)sizeof(unsigned short) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindFloat); +} + +static __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDescHalf1(void) +{ + int e = (int)sizeof(unsigned short) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindFloat); +} + +static __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDescHalf2(void) +{ + int e = (int)sizeof(unsigned short) * 8; + + return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindFloat); +} + +static __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDescHalf4(void) +{ + int e = (int)sizeof(unsigned short) * 8; + + return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindFloat); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(char) * 8; + + + + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); + +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(signed char) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned char) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(signed char) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned char) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(signed char) * 8; + + return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned char) * 8; + + return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(signed char) * 8; + + return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned char) * 8; + + return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(short) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned short) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(short) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned short) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(short) * 8; + + return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned short) * 8; + + return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(short) * 8; + + return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned short) * 8; + + return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(int) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned int) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(int) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned int) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(int) * 8; + + return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned int) * 8; + + return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindUnsigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(int) * 8; + + return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindSigned); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(unsigned int) * 8; + + return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindUnsigned); +} +# 396 "/usr/include/channel_descriptor.h" 3 4 +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(float) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindFloat); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(float) * 8; + + return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindFloat); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(float) * 8; + + return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindFloat); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + int e = (int)sizeof(float) * 8; + + return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindFloat); +} + +static __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDescNV12(void) +{ + int e = (int)sizeof(char) * 8; + + return cudaCreateChannelDesc(e, e, e, 0, cudaChannelFormatKindNV12); +} + +template __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(0, 0, 0, 0, cudaChannelFormatKindNone); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 0, 0, 0, cudaChannelFormatKindSignedNormalized8X1); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 0, 0, cudaChannelFormatKindSignedNormalized8X2); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindSignedNormalized8X4); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 0, 0, 0, cudaChannelFormatKindUnsignedNormalized8X1); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 0, 0, cudaChannelFormatKindUnsignedNormalized8X2); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedNormalized8X4); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(16, 0, 0, 0, cudaChannelFormatKindSignedNormalized16X1); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(16, 16, 0, 0, cudaChannelFormatKindSignedNormalized16X2); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(16, 16, 16, 16, cudaChannelFormatKindSignedNormalized16X4); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(16, 0, 0, 0, cudaChannelFormatKindUnsignedNormalized16X1); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(16, 16, 0, 0, cudaChannelFormatKindUnsignedNormalized16X2); +} + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(16, 16, 16, 16, cudaChannelFormatKindUnsignedNormalized16X4); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 0, cudaChannelFormatKindNV12); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed1); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed1SRGB); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed2); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed2SRGB); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed3); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed3SRGB); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 0, 0, 0, cudaChannelFormatKindUnsignedBlockCompressed4); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 0, 0, 0, cudaChannelFormatKindSignedBlockCompressed4); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 0, 0, cudaChannelFormatKindUnsignedBlockCompressed5); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 0, 0, cudaChannelFormatKindSignedBlockCompressed5); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(16, 16, 16, 0, cudaChannelFormatKindUnsignedBlockCompressed6H); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(16, 16, 16, 0, cudaChannelFormatKindSignedBlockCompressed6H); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed7); +} + + +template<> __inline__ __attribute__((host)) cudaChannelFormatDesc cudaCreateChannelDesc(void) +{ + return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed7SRGB); +} +# 96 "/usr/include/cuda_runtime.h" 2 3 4 + +# 1 "/usr/include/driver_functions.h" 1 3 4 +# 53 "/usr/include/driver_functions.h" 3 4 +# 1 "/usr/include/builtin_types.h" 1 3 4 +# 54 "/usr/include/driver_functions.h" 2 3 4 +# 1 "/usr/include/crt/host_defines.h" 1 3 4 +# 55 "/usr/include/driver_functions.h" 2 3 4 +# 79 "/usr/include/driver_functions.h" 3 4 +static __inline__ __attribute__((host)) struct cudaPitchedPtr make_cudaPitchedPtr(void *d, size_t p, size_t xsz, size_t ysz) +{ + struct cudaPitchedPtr s; + + s.ptr = d; + s.pitch = p; + s.xsize = xsz; + s.ysize = ysz; + + return s; +} +# 106 "/usr/include/driver_functions.h" 3 4 +static __inline__ __attribute__((host)) struct cudaPos make_cudaPos(size_t x, size_t y, size_t z) +{ + struct cudaPos p; + + p.x = x; + p.y = y; + p.z = z; + + return p; +} +# 132 "/usr/include/driver_functions.h" 3 4 +static __inline__ __attribute__((host)) struct cudaExtent make_cudaExtent(size_t w, size_t h, size_t d) +{ + struct cudaExtent e; + + e.width = w; + e.height = h; + e.depth = d; + + return e; +} +# 98 "/usr/include/cuda_runtime.h" 2 3 4 + + +# 1 "/usr/include/crt/host_defines.h" 1 3 4 +# 101 "/usr/include/cuda_runtime.h" 2 3 4 +# 1 "/usr/include/vector_functions.h" 1 3 4 +# 73 "/usr/include/vector_functions.h" 3 4 +static __inline__ __attribute__((host)) __attribute__((device)) char1 make_char1(signed char x); + +static __inline__ __attribute__((host)) __attribute__((device)) uchar1 make_uchar1(unsigned char x); + +static __inline__ __attribute__((host)) __attribute__((device)) char2 make_char2(signed char x, signed char y); + +static __inline__ __attribute__((host)) __attribute__((device)) uchar2 make_uchar2(unsigned char x, unsigned char y); + +static __inline__ __attribute__((host)) __attribute__((device)) char3 make_char3(signed char x, signed char y, signed char z); + +static __inline__ __attribute__((host)) __attribute__((device)) uchar3 make_uchar3(unsigned char x, unsigned char y, unsigned char z); + +static __inline__ __attribute__((host)) __attribute__((device)) char4 make_char4(signed char x, signed char y, signed char z, signed char w); + +static __inline__ __attribute__((host)) __attribute__((device)) uchar4 make_uchar4(unsigned char x, unsigned char y, unsigned char z, unsigned char w); + +static __inline__ __attribute__((host)) __attribute__((device)) short1 make_short1(short x); + +static __inline__ __attribute__((host)) __attribute__((device)) ushort1 make_ushort1(unsigned short x); + +static __inline__ __attribute__((host)) __attribute__((device)) short2 make_short2(short x, short y); + +static __inline__ __attribute__((host)) __attribute__((device)) ushort2 make_ushort2(unsigned short x, unsigned short y); + +static __inline__ __attribute__((host)) __attribute__((device)) short3 make_short3(short x,short y, short z); + +static __inline__ __attribute__((host)) __attribute__((device)) ushort3 make_ushort3(unsigned short x, unsigned short y, unsigned short z); + +static __inline__ __attribute__((host)) __attribute__((device)) short4 make_short4(short x, short y, short z, short w); + +static __inline__ __attribute__((host)) __attribute__((device)) ushort4 make_ushort4(unsigned short x, unsigned short y, unsigned short z, unsigned short w); + +static __inline__ __attribute__((host)) __attribute__((device)) int1 make_int1(int x); + +static __inline__ __attribute__((host)) __attribute__((device)) uint1 make_uint1(unsigned int x); + +static __inline__ __attribute__((host)) __attribute__((device)) int2 make_int2(int x, int y); + +static __inline__ __attribute__((host)) __attribute__((device)) uint2 make_uint2(unsigned int x, unsigned int y); + +static __inline__ __attribute__((host)) __attribute__((device)) int3 make_int3(int x, int y, int z); + +static __inline__ __attribute__((host)) __attribute__((device)) uint3 make_uint3(unsigned int x, unsigned int y, unsigned int z); + +static __inline__ __attribute__((host)) __attribute__((device)) int4 make_int4(int x, int y, int z, int w); + +static __inline__ __attribute__((host)) __attribute__((device)) uint4 make_uint4(unsigned int x, unsigned int y, unsigned int z, unsigned int w); + +static __inline__ __attribute__((host)) __attribute__((device)) long1 make_long1(long int x); + +static __inline__ __attribute__((host)) __attribute__((device)) ulong1 make_ulong1(unsigned long int x); + +static __inline__ __attribute__((host)) __attribute__((device)) long2 make_long2(long int x, long int y); + +static __inline__ __attribute__((host)) __attribute__((device)) ulong2 make_ulong2(unsigned long int x, unsigned long int y); + +static __inline__ __attribute__((host)) __attribute__((device)) long3 make_long3(long int x, long int y, long int z); + +static __inline__ __attribute__((host)) __attribute__((device)) ulong3 make_ulong3(unsigned long int x, unsigned long int y, unsigned long int z); + +static __inline__ __attribute__((host)) __attribute__((device)) long4 make_long4(long int x, long int y, long int z, long int w); + +static __inline__ __attribute__((host)) __attribute__((device)) ulong4 make_ulong4(unsigned long int x, unsigned long int y, unsigned long int z, unsigned long int w); + +static __inline__ __attribute__((host)) __attribute__((device)) float1 make_float1(float x); + +static __inline__ __attribute__((host)) __attribute__((device)) float2 make_float2(float x, float y); + +static __inline__ __attribute__((host)) __attribute__((device)) float3 make_float3(float x, float y, float z); + +static __inline__ __attribute__((host)) __attribute__((device)) float4 make_float4(float x, float y, float z, float w); + +static __inline__ __attribute__((host)) __attribute__((device)) longlong1 make_longlong1(long long int x); + +static __inline__ __attribute__((host)) __attribute__((device)) ulonglong1 make_ulonglong1(unsigned long long int x); + +static __inline__ __attribute__((host)) __attribute__((device)) longlong2 make_longlong2(long long int x, long long int y); + +static __inline__ __attribute__((host)) __attribute__((device)) ulonglong2 make_ulonglong2(unsigned long long int x, unsigned long long int y); + +static __inline__ __attribute__((host)) __attribute__((device)) longlong3 make_longlong3(long long int x, long long int y, long long int z); + +static __inline__ __attribute__((host)) __attribute__((device)) ulonglong3 make_ulonglong3(unsigned long long int x, unsigned long long int y, unsigned long long int z); + +static __inline__ __attribute__((host)) __attribute__((device)) longlong4 make_longlong4(long long int x, long long int y, long long int z, long long int w); + +static __inline__ __attribute__((host)) __attribute__((device)) ulonglong4 make_ulonglong4(unsigned long long int x, unsigned long long int y, unsigned long long int z, unsigned long long int w); + +static __inline__ __attribute__((host)) __attribute__((device)) double1 make_double1(double x); + +static __inline__ __attribute__((host)) __attribute__((device)) double2 make_double2(double x, double y); + +static __inline__ __attribute__((host)) __attribute__((device)) double3 make_double3(double x, double y, double z); + +static __inline__ __attribute__((host)) __attribute__((device)) double4 make_double4(double x, double y, double z, double w); + + + + +# 1 "/usr/include/vector_functions.hpp" 1 3 4 +# 73 "/usr/include/vector_functions.hpp" 3 4 +static __inline__ __attribute__((host)) __attribute__((device)) char1 make_char1(signed char x) +{ + char1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) uchar1 make_uchar1(unsigned char x) +{ + uchar1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) char2 make_char2(signed char x, signed char y) +{ + char2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) uchar2 make_uchar2(unsigned char x, unsigned char y) +{ + uchar2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) char3 make_char3(signed char x, signed char y, signed char z) +{ + char3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) uchar3 make_uchar3(unsigned char x, unsigned char y, unsigned char z) +{ + uchar3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) char4 make_char4(signed char x, signed char y, signed char z, signed char w) +{ + char4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) uchar4 make_uchar4(unsigned char x, unsigned char y, unsigned char z, unsigned char w) +{ + uchar4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) short1 make_short1(short x) +{ + short1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ushort1 make_ushort1(unsigned short x) +{ + ushort1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) short2 make_short2(short x, short y) +{ + short2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ushort2 make_ushort2(unsigned short x, unsigned short y) +{ + ushort2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) short3 make_short3(short x,short y, short z) +{ + short3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ushort3 make_ushort3(unsigned short x, unsigned short y, unsigned short z) +{ + ushort3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) short4 make_short4(short x, short y, short z, short w) +{ + short4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ushort4 make_ushort4(unsigned short x, unsigned short y, unsigned short z, unsigned short w) +{ + ushort4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) int1 make_int1(int x) +{ + int1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) uint1 make_uint1(unsigned int x) +{ + uint1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) int2 make_int2(int x, int y) +{ + int2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) uint2 make_uint2(unsigned int x, unsigned int y) +{ + uint2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) int3 make_int3(int x, int y, int z) +{ + int3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) uint3 make_uint3(unsigned int x, unsigned int y, unsigned int z) +{ + uint3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) int4 make_int4(int x, int y, int z, int w) +{ + int4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) uint4 make_uint4(unsigned int x, unsigned int y, unsigned int z, unsigned int w) +{ + uint4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) long1 make_long1(long int x) +{ + long1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ulong1 make_ulong1(unsigned long int x) +{ + ulong1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) long2 make_long2(long int x, long int y) +{ + long2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ulong2 make_ulong2(unsigned long int x, unsigned long int y) +{ + ulong2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) long3 make_long3(long int x, long int y, long int z) +{ + long3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ulong3 make_ulong3(unsigned long int x, unsigned long int y, unsigned long int z) +{ + ulong3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) long4 make_long4(long int x, long int y, long int z, long int w) +{ + long4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ulong4 make_ulong4(unsigned long int x, unsigned long int y, unsigned long int z, unsigned long int w) +{ + ulong4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) float1 make_float1(float x) +{ + float1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) float2 make_float2(float x, float y) +{ + float2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) float3 make_float3(float x, float y, float z) +{ + float3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) float4 make_float4(float x, float y, float z, float w) +{ + float4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) longlong1 make_longlong1(long long int x) +{ + longlong1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ulonglong1 make_ulonglong1(unsigned long long int x) +{ + ulonglong1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) longlong2 make_longlong2(long long int x, long long int y) +{ + longlong2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ulonglong2 make_ulonglong2(unsigned long long int x, unsigned long long int y) +{ + ulonglong2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) longlong3 make_longlong3(long long int x, long long int y, long long int z) +{ + longlong3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ulonglong3 make_ulonglong3(unsigned long long int x, unsigned long long int y, unsigned long long int z) +{ + ulonglong3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) longlong4 make_longlong4(long long int x, long long int y, long long int z, long long int w) +{ + longlong4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) ulonglong4 make_ulonglong4(unsigned long long int x, unsigned long long int y, unsigned long long int z, unsigned long long int w) +{ + ulonglong4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) double1 make_double1(double x) +{ + double1 t; t.x = x; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) double2 make_double2(double x, double y) +{ + double2 t; t.x = x; t.y = y; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) double3 make_double3(double x, double y, double z) +{ + double3 t; t.x = x; t.y = y; t.z = z; return t; +} + +static __inline__ __attribute__((host)) __attribute__((device)) double4 make_double4(double x, double y, double z, double w) +{ + double4 t; t.x = x; t.y = y; t.z = z; t.w = w; return t; +} +# 173 "/usr/include/vector_functions.h" 2 3 4 +# 102 "/usr/include/cuda_runtime.h" 2 3 4 +# 115 "/usr/include/cuda_runtime.h" 3 4 +# 1 "/usr/include/crt/common_functions.h" 1 3 4 +# 71 "/usr/include/crt/common_functions.h" 3 4 +# 1 "/usr/include/builtin_types.h" 1 3 4 +# 72 "/usr/include/crt/common_functions.h" 2 3 4 +# 1 "/usr/include/crt/host_defines.h" 1 3 4 +# 73 "/usr/include/crt/common_functions.h" 2 3 4 +# 85 "/usr/include/crt/common_functions.h" 3 4 +# 1 "/usr/include/string.h" 1 3 4 +# 26 "/usr/include/string.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/libc-header-start.h" 1 3 4 +# 27 "/usr/include/string.h" 2 3 4 + +extern "C" { + + + + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h" 1 3 4 +# 34 "/usr/include/string.h" 2 3 4 +# 43 "/usr/include/string.h" 3 4 +extern void *memcpy (void *__restrict __dest, const void *__restrict __src, + size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); + + +extern void *memmove (void *__dest, const void *__src, size_t __n) + throw () __attribute__ ((__nonnull__ (1, 2))); + + + + + +extern void *memccpy (void *__restrict __dest, const void *__restrict __src, + int __c, size_t __n) + throw () __attribute__ ((__nonnull__ (1, 2))); + + + + +extern void *memset (void *__s, int __c, size_t __n) throw () __attribute__ ((__nonnull__ (1))); + + +extern int memcmp (const void *__s1, const void *__s2, size_t __n) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + + +extern "C++" +{ +extern void *memchr (void *__s, int __c, size_t __n) + throw () __asm ("memchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +extern const void *memchr (const void *__s, int __c, size_t __n) + throw () __asm ("memchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +# 89 "/usr/include/string.h" 3 4 +} +# 99 "/usr/include/string.h" 3 4 +extern "C++" void *rawmemchr (void *__s, int __c) + throw () __asm ("rawmemchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +extern "C++" const void *rawmemchr (const void *__s, int __c) + throw () __asm ("rawmemchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); + + + + + + + +extern "C++" void *memrchr (void *__s, int __c, size_t __n) + throw () __asm ("memrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +extern "C++" const void *memrchr (const void *__s, int __c, size_t __n) + throw () __asm ("memrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +# 122 "/usr/include/string.h" 3 4 +extern char *strcpy (char *__restrict __dest, const char *__restrict __src) + throw () __attribute__ ((__nonnull__ (1, 2))); + +extern char *strncpy (char *__restrict __dest, + const char *__restrict __src, size_t __n) + throw () __attribute__ ((__nonnull__ (1, 2))); + + +extern char *strcat (char *__restrict __dest, const char *__restrict __src) + throw () __attribute__ ((__nonnull__ (1, 2))); + +extern char *strncat (char *__restrict __dest, const char *__restrict __src, + size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); + + +extern int strcmp (const char *__s1, const char *__s2) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + +extern int strncmp (const char *__s1, const char *__s2, size_t __n) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern int strcoll (const char *__s1, const char *__s2) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + +extern size_t strxfrm (char *__restrict __dest, + const char *__restrict __src, size_t __n) + throw () __attribute__ ((__nonnull__ (2))); + + + +# 1 "/usr/include/x86_64-linux-gnu/bits/types/locale_t.h" 1 3 4 +# 22 "/usr/include/x86_64-linux-gnu/bits/types/locale_t.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h" 1 3 4 +# 28 "/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h" 3 4 +struct __locale_struct +{ + + struct __locale_data *__locales[13]; + + + const unsigned short int *__ctype_b; + const int *__ctype_tolower; + const int *__ctype_toupper; + + + const char *__names[13]; +}; + +typedef struct __locale_struct *__locale_t; +# 23 "/usr/include/x86_64-linux-gnu/bits/types/locale_t.h" 2 3 4 + +typedef __locale_t locale_t; +# 154 "/usr/include/string.h" 2 3 4 + + +extern int strcoll_l (const char *__s1, const char *__s2, locale_t __l) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); + + +extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n, + locale_t __l) throw () __attribute__ ((__nonnull__ (2, 4))); + + + + + +extern char *strdup (const char *__s) + throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); + + + + + + +extern char *strndup (const char *__string, size_t __n) + throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); +# 204 "/usr/include/string.h" 3 4 +extern "C++" +{ +extern char *strchr (char *__s, int __c) + throw () __asm ("strchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +extern const char *strchr (const char *__s, int __c) + throw () __asm ("strchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +# 224 "/usr/include/string.h" 3 4 +} + + + + + + +extern "C++" +{ +extern char *strrchr (char *__s, int __c) + throw () __asm ("strrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +extern const char *strrchr (const char *__s, int __c) + throw () __asm ("strrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +# 251 "/usr/include/string.h" 3 4 +} +# 261 "/usr/include/string.h" 3 4 +extern "C++" char *strchrnul (char *__s, int __c) + throw () __asm ("strchrnul") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +extern "C++" const char *strchrnul (const char *__s, int __c) + throw () __asm ("strchrnul") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +# 273 "/usr/include/string.h" 3 4 +extern size_t strcspn (const char *__s, const char *__reject) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern size_t strspn (const char *__s, const char *__accept) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern "C++" +{ +extern char *strpbrk (char *__s, const char *__accept) + throw () __asm ("strpbrk") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); +extern const char *strpbrk (const char *__s, const char *__accept) + throw () __asm ("strpbrk") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); +# 301 "/usr/include/string.h" 3 4 +} + + + + + + +extern "C++" +{ +extern char *strstr (char *__haystack, const char *__needle) + throw () __asm ("strstr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); +extern const char *strstr (const char *__haystack, const char *__needle) + throw () __asm ("strstr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); +# 328 "/usr/include/string.h" 3 4 +} + + + + + + + +extern char *strtok (char *__restrict __s, const char *__restrict __delim) + throw () __attribute__ ((__nonnull__ (2))); + + + +extern char *__strtok_r (char *__restrict __s, + const char *__restrict __delim, + char **__restrict __save_ptr) + throw () __attribute__ ((__nonnull__ (2, 3))); + +extern char *strtok_r (char *__restrict __s, const char *__restrict __delim, + char **__restrict __save_ptr) + throw () __attribute__ ((__nonnull__ (2, 3))); + + + + + +extern "C++" char *strcasestr (char *__haystack, const char *__needle) + throw () __asm ("strcasestr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); +extern "C++" const char *strcasestr (const char *__haystack, + const char *__needle) + throw () __asm ("strcasestr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); +# 369 "/usr/include/string.h" 3 4 +extern void *memmem (const void *__haystack, size_t __haystacklen, + const void *__needle, size_t __needlelen) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3))); + + + +extern void *__mempcpy (void *__restrict __dest, + const void *__restrict __src, size_t __n) + throw () __attribute__ ((__nonnull__ (1, 2))); +extern void *mempcpy (void *__restrict __dest, + const void *__restrict __src, size_t __n) + throw () __attribute__ ((__nonnull__ (1, 2))); + + + + +extern size_t strlen (const char *__s) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); + + + + +extern size_t strnlen (const char *__string, size_t __maxlen) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); + + + + +extern char *strerror (int __errnum) throw (); +# 421 "/usr/include/string.h" 3 4 +extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) + throw () __attribute__ ((__nonnull__ (2))) ; + + + + + +extern char *strerror_l (int __errnum, locale_t __l) throw (); + + + +# 1 "/usr/include/strings.h" 1 3 4 +# 23 "/usr/include/strings.h" 3 4 +# 1 "/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h" 1 3 4 +# 24 "/usr/include/strings.h" 2 3 4 + + + + + + +extern "C" { + + + +extern int bcmp (const void *__s1, const void *__s2, size_t __n) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern void bcopy (const void *__src, void *__dest, size_t __n) + throw () __attribute__ ((__nonnull__ (1, 2))); + + +extern void bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); + + + +extern "C++" +{ +extern char *index (char *__s, int __c) + throw () __asm ("index") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +extern const char *index (const char *__s, int __c) + throw () __asm ("index") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +# 66 "/usr/include/strings.h" 3 4 +} + + + + + + + +extern "C++" +{ +extern char *rindex (char *__s, int __c) + throw () __asm ("rindex") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +extern const char *rindex (const char *__s, int __c) + throw () __asm ("rindex") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +# 94 "/usr/include/strings.h" 3 4 +} +# 104 "/usr/include/strings.h" 3 4 +extern int ffs (int __i) throw () __attribute__ ((__const__)); + + + + + +extern int ffsl (long int __l) throw () __attribute__ ((__const__)); +__extension__ extern int ffsll (long long int __ll) + throw () __attribute__ ((__const__)); + + + +extern int strcasecmp (const char *__s1, const char *__s2) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern int strncasecmp (const char *__s1, const char *__s2, size_t __n) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + + + + + +extern int strcasecmp_l (const char *__s1, const char *__s2, locale_t __loc) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); + + + +extern int strncasecmp_l (const char *__s1, const char *__s2, + size_t __n, locale_t __loc) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4))); + + +} +# 433 "/usr/include/string.h" 2 3 4 + + + +extern void explicit_bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); + + + +extern char *strsep (char **__restrict __stringp, + const char *__restrict __delim) + throw () __attribute__ ((__nonnull__ (1, 2))); + + + + +extern char *strsignal (int __sig) throw (); + + +extern char *__stpcpy (char *__restrict __dest, const char *__restrict __src) + throw () __attribute__ ((__nonnull__ (1, 2))); +extern char *stpcpy (char *__restrict __dest, const char *__restrict __src) + throw () __attribute__ ((__nonnull__ (1, 2))); + + + +extern char *__stpncpy (char *__restrict __dest, + const char *__restrict __src, size_t __n) + throw () __attribute__ ((__nonnull__ (1, 2))); +extern char *stpncpy (char *__restrict __dest, + const char *__restrict __src, size_t __n) + throw () __attribute__ ((__nonnull__ (1, 2))); + + + + +extern int strverscmp (const char *__s1, const char *__s2) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern char *strfry (char *__string) throw () __attribute__ ((__nonnull__ (1))); + + +extern void *memfrob (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); + + + + + + + +extern "C++" char *basename (char *__filename) + throw () __asm ("basename") __attribute__ ((__nonnull__ (1))); +extern "C++" const char *basename (const char *__filename) + throw () __asm ("basename") __attribute__ ((__nonnull__ (1))); +# 499 "/usr/include/string.h" 3 4 +} +# 86 "/usr/include/crt/common_functions.h" 2 3 4 +# 1 "/usr/include/time.h" 1 3 4 +# 29 "/usr/include/time.h" 3 4 +# 1 "/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h" 1 3 4 +# 30 "/usr/include/time.h" 2 3 4 + + + +# 1 "/usr/include/x86_64-linux-gnu/bits/time.h" 1 3 4 +# 26 "/usr/include/x86_64-linux-gnu/bits/time.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/types.h" 1 3 4 +# 27 "/usr/include/x86_64-linux-gnu/bits/types.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 +# 28 "/usr/include/x86_64-linux-gnu/bits/types.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/timesize.h" 1 3 4 +# 29 "/usr/include/x86_64-linux-gnu/bits/types.h" 2 3 4 + + +typedef unsigned char __u_char; +typedef unsigned short int __u_short; +typedef unsigned int __u_int; +typedef unsigned long int __u_long; + + +typedef signed char __int8_t; +typedef unsigned char __uint8_t; +typedef signed short int __int16_t; +typedef unsigned short int __uint16_t; +typedef signed int __int32_t; +typedef unsigned int __uint32_t; + +typedef signed long int __int64_t; +typedef unsigned long int __uint64_t; + + + + + + +typedef __int8_t __int_least8_t; +typedef __uint8_t __uint_least8_t; +typedef __int16_t __int_least16_t; +typedef __uint16_t __uint_least16_t; +typedef __int32_t __int_least32_t; +typedef __uint32_t __uint_least32_t; +typedef __int64_t __int_least64_t; +typedef __uint64_t __uint_least64_t; + + + +typedef long int __quad_t; +typedef unsigned long int __u_quad_t; + + + + + + + +typedef long int __intmax_t; +typedef unsigned long int __uintmax_t; +# 141 "/usr/include/x86_64-linux-gnu/bits/types.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/typesizes.h" 1 3 4 +# 142 "/usr/include/x86_64-linux-gnu/bits/types.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/time64.h" 1 3 4 +# 143 "/usr/include/x86_64-linux-gnu/bits/types.h" 2 3 4 + + +typedef unsigned long int __dev_t; +typedef unsigned int __uid_t; +typedef unsigned int __gid_t; +typedef unsigned long int __ino_t; +typedef unsigned long int __ino64_t; +typedef unsigned int __mode_t; +typedef unsigned long int __nlink_t; +typedef long int __off_t; +typedef long int __off64_t; +typedef int __pid_t; +typedef struct { int __val[2]; } __fsid_t; +typedef long int __clock_t; +typedef unsigned long int __rlim_t; +typedef unsigned long int __rlim64_t; +typedef unsigned int __id_t; +typedef long int __time_t; +typedef unsigned int __useconds_t; +typedef long int __suseconds_t; + +typedef int __daddr_t; +typedef int __key_t; + + +typedef int __clockid_t; + + +typedef void * __timer_t; + + +typedef long int __blksize_t; + + + + +typedef long int __blkcnt_t; +typedef long int __blkcnt64_t; + + +typedef unsigned long int __fsblkcnt_t; +typedef unsigned long int __fsblkcnt64_t; + + +typedef unsigned long int __fsfilcnt_t; +typedef unsigned long int __fsfilcnt64_t; + + +typedef long int __fsword_t; + +typedef long int __ssize_t; + + +typedef long int __syscall_slong_t; + +typedef unsigned long int __syscall_ulong_t; + + + +typedef __off64_t __loff_t; +typedef char *__caddr_t; + + +typedef long int __intptr_t; + + +typedef unsigned int __socklen_t; + + + + +typedef int __sig_atomic_t; +# 27 "/usr/include/x86_64-linux-gnu/bits/time.h" 2 3 4 +# 73 "/usr/include/x86_64-linux-gnu/bits/time.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/timex.h" 1 3 4 +# 22 "/usr/include/x86_64-linux-gnu/bits/timex.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h" 1 3 4 + + + + + + + +struct timeval +{ + __time_t tv_sec; + __suseconds_t tv_usec; +}; +# 23 "/usr/include/x86_64-linux-gnu/bits/timex.h" 2 3 4 + + + +struct timex +{ + unsigned int modes; + __syscall_slong_t offset; + __syscall_slong_t freq; + __syscall_slong_t maxerror; + __syscall_slong_t esterror; + int status; + __syscall_slong_t constant; + __syscall_slong_t precision; + __syscall_slong_t tolerance; + struct timeval time; + __syscall_slong_t tick; + __syscall_slong_t ppsfreq; + __syscall_slong_t jitter; + int shift; + __syscall_slong_t stabil; + __syscall_slong_t jitcnt; + __syscall_slong_t calcnt; + __syscall_slong_t errcnt; + __syscall_slong_t stbcnt; + + int tai; + + + int :32; int :32; int :32; int :32; + int :32; int :32; int :32; int :32; + int :32; int :32; int :32; +}; +# 74 "/usr/include/x86_64-linux-gnu/bits/time.h" 2 3 4 + +extern "C" { + + +extern int clock_adjtime (__clockid_t __clock_id, struct timex *__utx) throw (); + +} +# 34 "/usr/include/time.h" 2 3 4 + + + +# 1 "/usr/include/x86_64-linux-gnu/bits/types/clock_t.h" 1 3 4 + + + + + + +typedef __clock_t clock_t; +# 38 "/usr/include/time.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/types/time_t.h" 1 3 4 + + + + + + +typedef __time_t time_t; +# 39 "/usr/include/time.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h" 1 3 4 + + + + + + +struct tm +{ + int tm_sec; + int tm_min; + int tm_hour; + int tm_mday; + int tm_mon; + int tm_year; + int tm_wday; + int tm_yday; + int tm_isdst; + + + long int tm_gmtoff; + const char *tm_zone; + + + + +}; +# 40 "/usr/include/time.h" 2 3 4 + + +# 1 "/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h" 1 3 4 + + + + + +# 1 "/usr/include/x86_64-linux-gnu/bits/endian.h" 1 3 4 +# 35 "/usr/include/x86_64-linux-gnu/bits/endian.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/endianness.h" 1 3 4 +# 36 "/usr/include/x86_64-linux-gnu/bits/endian.h" 2 3 4 +# 7 "/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h" 2 3 4 + + + +struct timespec +{ + __time_t tv_sec; + + + + __syscall_slong_t tv_nsec; +# 26 "/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h" 3 4 +}; +# 43 "/usr/include/time.h" 2 3 4 + + + +# 1 "/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h" 1 3 4 + + + + + + +typedef __clockid_t clockid_t; +# 47 "/usr/include/time.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/types/timer_t.h" 1 3 4 + + + + + + +typedef __timer_t timer_t; +# 48 "/usr/include/time.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h" 1 3 4 + + + + + + + +struct itimerspec + { + struct timespec it_interval; + struct timespec it_value; + }; +# 49 "/usr/include/time.h" 2 3 4 +struct sigevent; + + + + +typedef __pid_t pid_t; +# 68 "/usr/include/time.h" 3 4 +extern "C" { + + + +extern clock_t clock (void) throw (); + + +extern time_t time (time_t *__timer) throw (); + + +extern double difftime (time_t __time1, time_t __time0) + throw () __attribute__ ((__const__)); + + +extern time_t mktime (struct tm *__tp) throw (); + + + + + +extern size_t strftime (char *__restrict __s, size_t __maxsize, + const char *__restrict __format, + const struct tm *__restrict __tp) throw (); + + + + +extern char *strptime (const char *__restrict __s, + const char *__restrict __fmt, struct tm *__tp) + throw (); + + + + + + +extern size_t strftime_l (char *__restrict __s, size_t __maxsize, + const char *__restrict __format, + const struct tm *__restrict __tp, + locale_t __loc) throw (); + + + +extern char *strptime_l (const char *__restrict __s, + const char *__restrict __fmt, struct tm *__tp, + locale_t __loc) throw (); + + + + + +extern struct tm *gmtime (const time_t *__timer) throw (); + + + +extern struct tm *localtime (const time_t *__timer) throw (); + + + + +extern struct tm *gmtime_r (const time_t *__restrict __timer, + struct tm *__restrict __tp) throw (); + + + +extern struct tm *localtime_r (const time_t *__restrict __timer, + struct tm *__restrict __tp) throw (); + + + + +extern char *asctime (const struct tm *__tp) throw (); + + +extern char *ctime (const time_t *__timer) throw (); + + + + + + +extern char *asctime_r (const struct tm *__restrict __tp, + char *__restrict __buf) throw (); + + +extern char *ctime_r (const time_t *__restrict __timer, + char *__restrict __buf) throw (); + + + + +extern char *__tzname[2]; +extern int __daylight; +extern long int __timezone; + + + + +extern char *tzname[2]; + + + +extern void tzset (void) throw (); + + + +extern int daylight; +extern long int timezone; +# 190 "/usr/include/time.h" 3 4 +extern time_t timegm (struct tm *__tp) throw (); + + +extern time_t timelocal (struct tm *__tp) throw (); + + +extern int dysize (int __year) throw () __attribute__ ((__const__)); +# 205 "/usr/include/time.h" 3 4 +extern int nanosleep (const struct timespec *__requested_time, + struct timespec *__remaining); + + + +extern int clock_getres (clockid_t __clock_id, struct timespec *__res) throw (); + + +extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) throw (); + + +extern int clock_settime (clockid_t __clock_id, const struct timespec *__tp) + throw (); + + + + + + +extern int clock_nanosleep (clockid_t __clock_id, int __flags, + const struct timespec *__req, + struct timespec *__rem); + + +extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) throw (); + + + + +extern int timer_create (clockid_t __clock_id, + struct sigevent *__restrict __evp, + timer_t *__restrict __timerid) throw (); + + +extern int timer_delete (timer_t __timerid) throw (); + + +extern int timer_settime (timer_t __timerid, int __flags, + const struct itimerspec *__restrict __value, + struct itimerspec *__restrict __ovalue) throw (); + + +extern int timer_gettime (timer_t __timerid, struct itimerspec *__value) + throw (); + + +extern int timer_getoverrun (timer_t __timerid) throw (); + + + + + +extern int timespec_get (struct timespec *__ts, int __base) + throw () __attribute__ ((__nonnull__ (1))); +# 274 "/usr/include/time.h" 3 4 +extern int getdate_err; +# 283 "/usr/include/time.h" 3 4 +extern struct tm *getdate (const char *__string); +# 297 "/usr/include/time.h" 3 4 +extern int getdate_r (const char *__restrict __string, + struct tm *__restrict __resbufp); + + +} +# 87 "/usr/include/crt/common_functions.h" 2 3 4 + +extern "C" +{ + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) clock_t clock(void) + + + +throw (); +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) void* memset(void*, int, size_t) throw (); +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) void* memcpy(void*, const void*, size_t) throw (); + +} +# 303 "/usr/include/crt/common_functions.h" 3 4 +# 1 "/usr/include/crt/math_functions.h" 1 3 4 +# 112 "/usr/include/crt/math_functions.h" 3 4 +# 1 "/usr/include/builtin_types.h" 1 3 4 +# 113 "/usr/include/crt/math_functions.h" 2 3 4 +# 1 "/usr/include/crt/host_defines.h" 1 3 4 +# 114 "/usr/include/crt/math_functions.h" 2 3 4 + + + + + + + +extern "C" +{ +# 219 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) int abs(int a) throw (); + + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) long int labs(long int a) throw (); + + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) long long int llabs(long long int a) throw (); +# 285 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double fabs(double x) throw (); +# 328 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float fabsf(float x) throw (); +# 338 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int min(const int a, const int b); + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) unsigned int umin(const unsigned int a, const unsigned int b); + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long long int llmin(const long long int a, const long long int b); + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) unsigned long long int ullmin(const unsigned long long int a, const unsigned long long int b); +# 380 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float fminf(float x, float y) throw (); +# 400 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double fmin(double x, double y) throw (); +# 413 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int max(const int a, const int b); + + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) unsigned int umax(const unsigned int a, const unsigned int b); + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long long int llmax(const long long int a, const long long int b); + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) unsigned long long int ullmax(const unsigned long long int a, const unsigned long long int b); +# 456 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float fmaxf(float x, float y) throw (); +# 476 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double fmax(double, double) throw (); +# 520 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double sin(double x) throw (); +# 553 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double cos(double x) throw (); +# 572 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) void sincos(double x, double *sptr, double *cptr) throw (); +# 588 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) void sincosf(float x, float *sptr, float *cptr) throw (); +# 633 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double tan(double x) throw (); +# 702 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double sqrt(double x) throw (); +# 774 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double rsqrt(double x); +# 844 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float rsqrtf(float x); +# 900 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double log2(double x) throw (); +# 965 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double exp2(double x) throw (); +# 1030 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float exp2f(float x) throw (); +# 1097 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double exp10(double x) throw (); +# 1160 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float exp10f(float x) throw (); +# 1253 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double expm1(double x) throw (); +# 1345 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float expm1f(float x) throw (); +# 1401 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float log2f(float x) throw (); +# 1455 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double log10(double x) throw (); +# 1525 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double log(double x) throw (); +# 1621 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double log1p(double x) throw (); +# 1720 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float log1pf(float x) throw (); +# 1784 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double floor(double x) throw (); +# 1863 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double exp(double x) throw (); +# 1904 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double cosh(double x) throw (); +# 1954 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double sinh(double x) throw (); +# 2004 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double tanh(double x) throw (); +# 2059 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double acosh(double x) throw (); +# 2117 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float acoshf(float x) throw (); +# 2170 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double asinh(double x) throw (); +# 2223 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float asinhf(float x) throw (); +# 2277 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double atanh(double x) throw (); +# 2331 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float atanhf(float x) throw (); +# 2380 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double ldexp(double x, int exp) throw (); +# 2426 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float ldexpf(float x, int exp) throw (); +# 2478 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double logb(double x) throw (); +# 2533 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float logbf(float x) throw (); +# 2573 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int ilogb(double x) throw (); +# 2613 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int ilogbf(float x) throw (); +# 2689 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double scalbn(double x, int n) throw (); +# 2765 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float scalbnf(float x, int n) throw (); +# 2841 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double scalbln(double x, long int n) throw (); +# 2917 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float scalblnf(float x, long int n) throw (); +# 2994 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double frexp(double x, int *nptr) throw (); +# 3068 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float frexpf(float x, int *nptr) throw (); +# 3120 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double round(double x) throw (); +# 3175 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float roundf(float x) throw (); +# 3193 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long int lround(double x) throw (); +# 3211 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long int lroundf(float x) throw (); +# 3229 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long long int llround(double x) throw (); +# 3247 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long long int llroundf(float x) throw (); +# 3375 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float rintf(float x) throw (); +# 3392 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long int lrint(double x) throw (); +# 3409 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long int lrintf(float x) throw (); +# 3426 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long long int llrint(double x) throw (); +# 3443 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) long long int llrintf(float x) throw (); +# 3496 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double nearbyint(double x) throw (); +# 3549 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float nearbyintf(float x) throw (); +# 3611 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double ceil(double x) throw (); +# 3661 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double trunc(double x) throw (); +# 3714 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float truncf(float x) throw (); +# 3740 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double fdim(double x, double y) throw (); +# 3766 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float fdimf(float x, float y) throw (); +# 4066 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double atan2(double y, double x) throw (); +# 4137 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double atan(double x) throw (); +# 4160 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double acos(double x) throw (); +# 4211 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double asin(double x) throw (); +# 4279 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double hypot(double x, double y) throw (); +# 4334 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double rhypot(double x, double y) throw (); +# 4402 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float hypotf(float x, float y) throw (); +# 4457 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) float rhypotf(float x, float y) throw (); +# 4501 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double norm3d(double a, double b, double c) throw (); +# 4552 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double rnorm3d(double a, double b, double c) throw (); +# 4601 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double norm4d(double a, double b, double c, double d) throw (); +# 4657 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double rnorm4d(double a, double b, double c, double d) throw (); +# 4714 "/usr/include/crt/math_functions.h" 3 4 +extern "C++" __attribute__((device)) __attribute__((device_builtin)) double norm(int dim, double const * p) throw (); +# 4778 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double rnorm(int dim, double const * p) throw (); +# 4843 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) float rnormf(int dim, float const * p) throw (); +# 4900 "/usr/include/crt/math_functions.h" 3 4 +extern "C++" __attribute__((device)) __attribute__((device_builtin)) float normf(int dim, float const * p) throw (); +# 4945 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) float norm3df(float a, float b, float c) throw (); +# 4996 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) float rnorm3df(float a, float b, float c) throw (); +# 5045 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) float norm4df(float a, float b, float c, float d) throw (); +# 5101 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) float rnorm4df(float a, float b, float c, float d) throw (); +# 5188 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double cbrt(double x) throw (); +# 5274 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float cbrtf(float x) throw (); +# 5329 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double rcbrt(double x); +# 5379 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float rcbrtf(float x); +# 5439 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double sinpi(double x); +# 5499 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float sinpif(float x); +# 5551 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double cospi(double x); +# 5603 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float cospif(float x); +# 5633 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) void sincospi(double x, double *sptr, double *cptr); +# 5663 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) void sincospif(float x, float *sptr, float *cptr); +# 5996 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double pow(double x, double y) throw (); +# 6052 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double modf(double x, double *iptr) throw (); +# 6111 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double fmod(double x, double y) throw (); +# 6207 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double remainder(double x, double y) throw (); +# 6306 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float remainderf(float x, float y) throw (); +# 6378 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double remquo(double x, double y, int *quo) throw (); +# 6450 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float remquof(float x, float y, int *quo) throw (); +# 6491 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double j0(double x) throw (); +# 6533 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float j0f(float x) throw (); +# 6602 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double j1(double x) throw (); +# 6671 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float j1f(float x) throw (); +# 6714 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double jn(int n, double x) throw (); +# 6757 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float jnf(int n, float x) throw (); +# 6818 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double y0(double x) throw (); +# 6879 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float y0f(float x) throw (); +# 6940 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double y1(double x) throw (); +# 7001 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float y1f(float x) throw (); +# 7064 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double yn(int n, double x) throw (); +# 7127 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float ynf(int n, float x) throw (); +# 7154 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double cyl_bessel_i0(double x) throw (); +# 7180 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) float cyl_bessel_i0f(float x) throw (); +# 7207 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double cyl_bessel_i1(double x) throw (); +# 7233 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) float cyl_bessel_i1f(float x) throw (); +# 7316 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double erf(double x) throw (); +# 7398 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float erff(float x) throw (); +# 7470 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double erfinv(double x); +# 7535 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float erfinvf(float x); +# 7574 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double erfc(double x) throw (); +# 7612 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float erfcf(float x) throw (); +# 7729 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double lgamma(double x) throw (); +# 7791 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double erfcinv(double x); +# 7846 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float erfcinvf(float x); +# 7914 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double normcdfinv(double x); +# 7982 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float normcdfinvf(float x); +# 8025 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double normcdf(double x); +# 8068 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float normcdff(float x); +# 8132 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double erfcx(double x); +# 8196 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float erfcxf(float x); +# 8315 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float lgammaf(float x) throw (); +# 8413 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double tgamma(double x) throw (); +# 8511 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float tgammaf(float x) throw (); +# 8524 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double copysign(double x, double y) throw (); +# 8537 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float copysignf(float x, float y) throw (); +# 8556 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double nextafter(double x, double y) throw (); +# 8575 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float nextafterf(float x, float y) throw (); +# 8591 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double nan(const char *tagp) throw (); +# 8607 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float nanf(const char *tagp) throw (); + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __isinff(float) throw (); +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __isnanf(float) throw (); +# 8625 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __finite(double) throw (); +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __finitef(float) throw (); +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __signbit(double) throw (); +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __isnan(double) throw (); +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __isinf(double) throw (); + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __signbitf(float) throw (); +# 8791 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) double fma(double x, double y, double z) throw (); +# 8949 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float fmaf(float x, float y, float z) throw (); +# 8960 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __signbitl(long double) throw (); + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __finitel(long double) throw (); +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __isinfl(long double) throw (); +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) int __isnanl(long double) throw (); +# 9018 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float acosf(float x) throw (); +# 9077 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float asinf(float x) throw (); +# 9157 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float atanf(float x) throw (); +# 9454 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float atan2f(float y, float x) throw (); +# 9488 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float cosf(float x) throw (); +# 9530 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float sinf(float x) throw (); +# 9572 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float tanf(float x) throw (); +# 9613 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float coshf(float x) throw (); +# 9663 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float sinhf(float x) throw (); +# 9713 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float tanhf(float x) throw (); +# 9765 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float logf(float x) throw (); +# 9845 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float expf(float x) throw (); +# 9897 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float log10f(float x) throw (); +# 9952 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float modff(float x, float *iptr) throw (); +# 10282 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float powf(float x, float y) throw (); +# 10351 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float sqrtf(float x) throw (); +# 10410 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float ceilf(float x) throw (); +# 10471 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float floorf(float x) throw (); +# 10529 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((device_builtin)) float fmodf(float x, float y) throw (); +# 10544 "/usr/include/crt/math_functions.h" 3 4 +} + + +# 1 "/usr/include/c++/9/math.h" 1 3 4 +# 36 "/usr/include/c++/9/math.h" 3 4 +# 1 "/usr/include/c++/9/cmath" 1 3 4 +# 39 "/usr/include/c++/9/cmath" 3 4 + +# 40 "/usr/include/c++/9/cmath" 3 + +# 1 "/usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h" 1 3 +# 256 "/usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h" 3 +namespace std +{ + typedef long unsigned int size_t; + typedef long int ptrdiff_t; + + + typedef decltype(nullptr) nullptr_t; + +} +# 278 "/usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h" 3 +namespace std +{ + inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { } +} +namespace __gnu_cxx +{ + inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { } +} +# 528 "/usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h" 3 +# 1 "/usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h" 1 3 +# 529 "/usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h" 2 3 + + +# 1 "/usr/include/x86_64-linux-gnu/c++/9/bits/cpu_defines.h" 1 3 +# 532 "/usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h" 2 3 +# 42 "/usr/include/c++/9/cmath" 2 3 +# 1 "/usr/include/c++/9/bits/cpp_type_traits.h" 1 3 +# 35 "/usr/include/c++/9/bits/cpp_type_traits.h" 3 + +# 36 "/usr/include/c++/9/bits/cpp_type_traits.h" 3 +# 67 "/usr/include/c++/9/bits/cpp_type_traits.h" 3 +extern "C++" { + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + struct __true_type { }; + struct __false_type { }; + + template + struct __truth_type + { typedef __false_type __type; }; + + template<> + struct __truth_type + { typedef __true_type __type; }; + + + + template + struct __traitor + { + enum { __value = bool(_Sp::__value) || bool(_Tp::__value) }; + typedef typename __truth_type<__value>::__type __type; + }; + + + template + struct __are_same + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + template + struct __are_same<_Tp, _Tp> + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + template + struct __is_void + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + template<> + struct __is_void + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + + + template + struct __is_integer + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + + + + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; +# 184 "/usr/include/c++/9/bits/cpp_type_traits.h" 3 + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_integer + { + enum { __value = 1 }; + typedef __true_type __type; + }; +# 270 "/usr/include/c++/9/bits/cpp_type_traits.h" 3 +template<> struct __is_integer<__int128> { enum { __value = 1 }; typedef __true_type __type; }; template<> struct __is_integer { enum { __value = 1 }; typedef __true_type __type; }; +# 287 "/usr/include/c++/9/bits/cpp_type_traits.h" 3 + template + struct __is_floating + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + + template<> + struct __is_floating + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_floating + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_floating + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + + + template + struct __is_pointer + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + template + struct __is_pointer<_Tp*> + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + + + template + struct __is_arithmetic + : public __traitor<__is_integer<_Tp>, __is_floating<_Tp> > + { }; + + + + + template + struct __is_scalar + : public __traitor<__is_arithmetic<_Tp>, __is_pointer<_Tp> > + { }; + + + + + template + struct __is_char + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + template<> + struct __is_char + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + template<> + struct __is_char + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + + template + struct __is_byte + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + template<> + struct __is_byte + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_byte + { + enum { __value = 1 }; + typedef __true_type __type; + }; + + template<> + struct __is_byte + { + enum { __value = 1 }; + typedef __true_type __type; + }; +# 417 "/usr/include/c++/9/bits/cpp_type_traits.h" 3 + template + struct __is_move_iterator + { + enum { __value = 0 }; + typedef __false_type __type; + }; + + + + template + inline _Iterator + __miter_base(_Iterator __it) + { return __it; } + + +} +} +# 43 "/usr/include/c++/9/cmath" 2 3 +# 1 "/usr/include/c++/9/ext/type_traits.h" 1 3 +# 32 "/usr/include/c++/9/ext/type_traits.h" 3 + +# 33 "/usr/include/c++/9/ext/type_traits.h" 3 + + + + +extern "C++" { + +namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) +{ + + + + template + struct __enable_if + { }; + + template + struct __enable_if + { typedef _Tp __type; }; + + + + template + struct __conditional_type + { typedef _Iftrue __type; }; + + template + struct __conditional_type + { typedef _Iffalse __type; }; + + + + template + struct __add_unsigned + { + private: + typedef __enable_if::__value, _Tp> __if_type; + + public: + typedef typename __if_type::__type __type; + }; + + template<> + struct __add_unsigned + { typedef unsigned char __type; }; + + template<> + struct __add_unsigned + { typedef unsigned char __type; }; + + template<> + struct __add_unsigned + { typedef unsigned short __type; }; + + template<> + struct __add_unsigned + { typedef unsigned int __type; }; + + template<> + struct __add_unsigned + { typedef unsigned long __type; }; + + template<> + struct __add_unsigned + { typedef unsigned long long __type; }; + + + template<> + struct __add_unsigned; + + template<> + struct __add_unsigned; + + + + template + struct __remove_unsigned + { + private: + typedef __enable_if::__value, _Tp> __if_type; + + public: + typedef typename __if_type::__type __type; + }; + + template<> + struct __remove_unsigned + { typedef signed char __type; }; + + template<> + struct __remove_unsigned + { typedef signed char __type; }; + + template<> + struct __remove_unsigned + { typedef short __type; }; + + template<> + struct __remove_unsigned + { typedef int __type; }; + + template<> + struct __remove_unsigned + { typedef long __type; }; + + template<> + struct __remove_unsigned + { typedef long long __type; }; + + + template<> + struct __remove_unsigned; + + template<> + struct __remove_unsigned; + + + + template + inline bool + __is_null_pointer(_Type* __ptr) + { return __ptr == 0; } + + template + inline bool + __is_null_pointer(_Type) + { return false; } + + + inline bool + __is_null_pointer(std::nullptr_t) + { return true; } + + + + template::__value> + struct __promote + { typedef double __type; }; + + + + + template + struct __promote<_Tp, false> + { }; + + template<> + struct __promote + { typedef long double __type; }; + + template<> + struct __promote + { typedef double __type; }; + + template<> + struct __promote + { typedef float __type; }; + + template::__type, + typename _Up2 = typename __promote<_Up>::__type> + struct __promote_2 + { + typedef __typeof__(_Tp2() + _Up2()) __type; + }; + + template::__type, + typename _Up2 = typename __promote<_Up>::__type, + typename _Vp2 = typename __promote<_Vp>::__type> + struct __promote_3 + { + typedef __typeof__(_Tp2() + _Up2() + _Vp2()) __type; + }; + + template::__type, + typename _Up2 = typename __promote<_Up>::__type, + typename _Vp2 = typename __promote<_Vp>::__type, + typename _Wp2 = typename __promote<_Wp>::__type> + struct __promote_4 + { + typedef __typeof__(_Tp2() + _Up2() + _Vp2() + _Wp2()) __type; + }; + + +} +} +# 44 "/usr/include/c++/9/cmath" 2 3 + +# 1 "/usr/include/math.h" 1 3 4 +# 27 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/libc-header-start.h" 1 3 4 +# 28 "/usr/include/math.h" 2 3 4 + + + + + + +extern "C" { + + + + + +# 1 "/usr/include/x86_64-linux-gnu/bits/math-vector.h" 1 3 4 +# 25 "/usr/include/x86_64-linux-gnu/bits/math-vector.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h" 1 3 4 +# 26 "/usr/include/x86_64-linux-gnu/bits/math-vector.h" 2 3 4 +# 41 "/usr/include/math.h" 2 3 4 + + +# 1 "/usr/include/x86_64-linux-gnu/bits/floatn.h" 1 3 4 +# 120 "/usr/include/x86_64-linux-gnu/bits/floatn.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 1 3 4 +# 24 "/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/long-double.h" 1 3 4 +# 25 "/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 2 3 4 +# 214 "/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 3 4 +typedef float _Float32; +# 251 "/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 3 4 +typedef double _Float64; +# 268 "/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 3 4 +typedef double _Float32x; +# 285 "/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 3 4 +typedef long double _Float64x; +# 121 "/usr/include/x86_64-linux-gnu/bits/floatn.h" 2 3 4 +# 44 "/usr/include/math.h" 2 3 4 +# 138 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h" 1 3 4 +# 139 "/usr/include/math.h" 2 3 4 +# 149 "/usr/include/math.h" 3 4 +typedef float float_t; +typedef double double_t; +# 190 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/fp-logb.h" 1 3 4 +# 191 "/usr/include/math.h" 2 3 4 +# 233 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/fp-fast.h" 1 3 4 +# 234 "/usr/include/math.h" 2 3 4 + + + +enum + { + FP_INT_UPWARD = + + 0, + FP_INT_DOWNWARD = + + 1, + FP_INT_TOWARDZERO = + + 2, + FP_INT_TONEARESTFROMZERO = + + 3, + FP_INT_TONEAREST = + + 4, + }; +# 289 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h" 1 3 4 +# 21 "/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h" 3 4 +extern int __fpclassify (double __value) throw () + __attribute__ ((__const__)); + + +extern int __signbit (double __value) throw () + __attribute__ ((__const__)); + + + +extern int __isinf (double __value) throw () __attribute__ ((__const__)); + + +extern int __finite (double __value) throw () __attribute__ ((__const__)); + + +extern int __isnan (double __value) throw () __attribute__ ((__const__)); + + +extern int __iseqsig (double __x, double __y) throw (); + + +extern int __issignaling (double __value) throw () + __attribute__ ((__const__)); +# 290 "/usr/include/math.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern double acos (double __x) throw (); extern double __acos (double __x) throw (); + +extern double asin (double __x) throw (); extern double __asin (double __x) throw (); + +extern double atan (double __x) throw (); extern double __atan (double __x) throw (); + +extern double atan2 (double __y, double __x) throw (); extern double __atan2 (double __y, double __x) throw (); + + + extern double cos (double __x) throw (); extern double __cos (double __x) throw (); + + extern double sin (double __x) throw (); extern double __sin (double __x) throw (); + +extern double tan (double __x) throw (); extern double __tan (double __x) throw (); + + + + +extern double cosh (double __x) throw (); extern double __cosh (double __x) throw (); + +extern double sinh (double __x) throw (); extern double __sinh (double __x) throw (); + +extern double tanh (double __x) throw (); extern double __tanh (double __x) throw (); + + + + extern void sincos (double __x, double *__sinx, double *__cosx) throw (); extern void __sincos (double __x, double *__sinx, double *__cosx) throw () + ; + + + + +extern double acosh (double __x) throw (); extern double __acosh (double __x) throw (); + +extern double asinh (double __x) throw (); extern double __asinh (double __x) throw (); + +extern double atanh (double __x) throw (); extern double __atanh (double __x) throw (); + + + + + + extern double exp (double __x) throw (); extern double __exp (double __x) throw (); + + +extern double frexp (double __x, int *__exponent) throw (); extern double __frexp (double __x, int *__exponent) throw (); + + +extern double ldexp (double __x, int __exponent) throw (); extern double __ldexp (double __x, int __exponent) throw (); + + + extern double log (double __x) throw (); extern double __log (double __x) throw (); + + +extern double log10 (double __x) throw (); extern double __log10 (double __x) throw (); + + +extern double modf (double __x, double *__iptr) throw (); extern double __modf (double __x, double *__iptr) throw () __attribute__ ((__nonnull__ (2))); + + + +extern double exp10 (double __x) throw (); extern double __exp10 (double __x) throw (); + + + + +extern double expm1 (double __x) throw (); extern double __expm1 (double __x) throw (); + + +extern double log1p (double __x) throw (); extern double __log1p (double __x) throw (); + + +extern double logb (double __x) throw (); extern double __logb (double __x) throw (); + + + + +extern double exp2 (double __x) throw (); extern double __exp2 (double __x) throw (); + + +extern double log2 (double __x) throw (); extern double __log2 (double __x) throw (); + + + + + + + extern double pow (double __x, double __y) throw (); extern double __pow (double __x, double __y) throw (); + + +extern double sqrt (double __x) throw (); extern double __sqrt (double __x) throw (); + + + +extern double hypot (double __x, double __y) throw (); extern double __hypot (double __x, double __y) throw (); + + + + +extern double cbrt (double __x) throw (); extern double __cbrt (double __x) throw (); + + + + + + +extern double ceil (double __x) throw () __attribute__ ((__const__)); extern double __ceil (double __x) throw () __attribute__ ((__const__)); + + +extern double fabs (double __x) throw () __attribute__ ((__const__)); extern double __fabs (double __x) throw () __attribute__ ((__const__)); + + +extern double floor (double __x) throw () __attribute__ ((__const__)); extern double __floor (double __x) throw () __attribute__ ((__const__)); + + +extern double fmod (double __x, double __y) throw (); extern double __fmod (double __x, double __y) throw (); +# 182 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern int finite (double __value) throw () __attribute__ ((__const__)); + + +extern double drem (double __x, double __y) throw (); extern double __drem (double __x, double __y) throw (); + + + +extern double significand (double __x) throw (); extern double __significand (double __x) throw (); + + + + + + +extern double copysign (double __x, double __y) throw () __attribute__ ((__const__)); extern double __copysign (double __x, double __y) throw () __attribute__ ((__const__)); + + + + +extern double nan (const char *__tagb) throw (); extern double __nan (const char *__tagb) throw (); +# 217 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern double j0 (double) throw (); extern double __j0 (double) throw (); +extern double j1 (double) throw (); extern double __j1 (double) throw (); +extern double jn (int, double) throw (); extern double __jn (int, double) throw (); +extern double y0 (double) throw (); extern double __y0 (double) throw (); +extern double y1 (double) throw (); extern double __y1 (double) throw (); +extern double yn (int, double) throw (); extern double __yn (int, double) throw (); + + + + + +extern double erf (double) throw (); extern double __erf (double) throw (); +extern double erfc (double) throw (); extern double __erfc (double) throw (); +extern double lgamma (double) throw (); extern double __lgamma (double) throw (); + + + + +extern double tgamma (double) throw (); extern double __tgamma (double) throw (); + + + + + +extern double gamma (double) throw (); extern double __gamma (double) throw (); + + + + + + + +extern double lgamma_r (double, int *__signgamp) throw (); extern double __lgamma_r (double, int *__signgamp) throw (); + + + + + + +extern double rint (double __x) throw (); extern double __rint (double __x) throw (); + + +extern double nextafter (double __x, double __y) throw (); extern double __nextafter (double __x, double __y) throw (); + +extern double nexttoward (double __x, long double __y) throw (); extern double __nexttoward (double __x, long double __y) throw (); + + + + +extern double nextdown (double __x) throw (); extern double __nextdown (double __x) throw (); + +extern double nextup (double __x) throw (); extern double __nextup (double __x) throw (); + + + +extern double remainder (double __x, double __y) throw (); extern double __remainder (double __x, double __y) throw (); + + + +extern double scalbn (double __x, int __n) throw (); extern double __scalbn (double __x, int __n) throw (); + + + +extern int ilogb (double __x) throw (); extern int __ilogb (double __x) throw (); + + + + +extern long int llogb (double __x) throw (); extern long int __llogb (double __x) throw (); + + + + +extern double scalbln (double __x, long int __n) throw (); extern double __scalbln (double __x, long int __n) throw (); + + + +extern double nearbyint (double __x) throw (); extern double __nearbyint (double __x) throw (); + + + +extern double round (double __x) throw () __attribute__ ((__const__)); extern double __round (double __x) throw () __attribute__ ((__const__)); + + + +extern double trunc (double __x) throw () __attribute__ ((__const__)); extern double __trunc (double __x) throw () __attribute__ ((__const__)); + + + + +extern double remquo (double __x, double __y, int *__quo) throw (); extern double __remquo (double __x, double __y, int *__quo) throw (); + + + + + + +extern long int lrint (double __x) throw (); extern long int __lrint (double __x) throw (); +__extension__ +extern long long int llrint (double __x) throw (); extern long long int __llrint (double __x) throw (); + + + +extern long int lround (double __x) throw (); extern long int __lround (double __x) throw (); +__extension__ +extern long long int llround (double __x) throw (); extern long long int __llround (double __x) throw (); + + + +extern double fdim (double __x, double __y) throw (); extern double __fdim (double __x, double __y) throw (); + + +extern double fmax (double __x, double __y) throw () __attribute__ ((__const__)); extern double __fmax (double __x, double __y) throw () __attribute__ ((__const__)); + + +extern double fmin (double __x, double __y) throw () __attribute__ ((__const__)); extern double __fmin (double __x, double __y) throw () __attribute__ ((__const__)); + + +extern double fma (double __x, double __y, double __z) throw (); extern double __fma (double __x, double __y, double __z) throw (); + + + + +extern double roundeven (double __x) throw () __attribute__ ((__const__)); extern double __roundeven (double __x) throw () __attribute__ ((__const__)); + + + +extern __intmax_t fromfp (double __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfp (double __x, int __round, unsigned int __width) throw () + ; + + + +extern __uintmax_t ufromfp (double __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfp (double __x, int __round, unsigned int __width) throw () + ; + + + + +extern __intmax_t fromfpx (double __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpx (double __x, int __round, unsigned int __width) throw () + ; + + + + +extern __uintmax_t ufromfpx (double __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpx (double __x, int __round, unsigned int __width) throw () + ; + + +extern double fmaxmag (double __x, double __y) throw () __attribute__ ((__const__)); extern double __fmaxmag (double __x, double __y) throw () __attribute__ ((__const__)); + + +extern double fminmag (double __x, double __y) throw () __attribute__ ((__const__)); extern double __fminmag (double __x, double __y) throw () __attribute__ ((__const__)); + + +extern int canonicalize (double *__cx, const double *__x) throw (); + + + + +extern int totalorder (const double *__x, const double *__y) throw () + + __attribute__ ((__pure__)); + + +extern int totalordermag (const double *__x, const double *__y) throw () + + __attribute__ ((__pure__)); + + +extern double getpayload (const double *__x) throw (); extern double __getpayload (const double *__x) throw (); + + +extern int setpayload (double *__x, double __payload) throw (); + + +extern int setpayloadsig (double *__x, double __payload) throw (); + + + + + + + +extern double scalb (double __x, double __n) throw (); extern double __scalb (double __x, double __n) throw (); +# 291 "/usr/include/math.h" 2 3 4 +# 306 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h" 1 3 4 +# 21 "/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h" 3 4 +extern int __fpclassifyf (float __value) throw () + __attribute__ ((__const__)); + + +extern int __signbitf (float __value) throw () + __attribute__ ((__const__)); + + + +extern int __isinff (float __value) throw () __attribute__ ((__const__)); + + +extern int __finitef (float __value) throw () __attribute__ ((__const__)); + + +extern int __isnanf (float __value) throw () __attribute__ ((__const__)); + + +extern int __iseqsigf (float __x, float __y) throw (); + + +extern int __issignalingf (float __value) throw () + __attribute__ ((__const__)); +# 307 "/usr/include/math.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern float acosf (float __x) throw (); extern float __acosf (float __x) throw (); + +extern float asinf (float __x) throw (); extern float __asinf (float __x) throw (); + +extern float atanf (float __x) throw (); extern float __atanf (float __x) throw (); + +extern float atan2f (float __y, float __x) throw (); extern float __atan2f (float __y, float __x) throw (); + + + extern float cosf (float __x) throw (); extern float __cosf (float __x) throw (); + + extern float sinf (float __x) throw (); extern float __sinf (float __x) throw (); + +extern float tanf (float __x) throw (); extern float __tanf (float __x) throw (); + + + + +extern float coshf (float __x) throw (); extern float __coshf (float __x) throw (); + +extern float sinhf (float __x) throw (); extern float __sinhf (float __x) throw (); + +extern float tanhf (float __x) throw (); extern float __tanhf (float __x) throw (); + + + + extern void sincosf (float __x, float *__sinx, float *__cosx) throw (); extern void __sincosf (float __x, float *__sinx, float *__cosx) throw () + ; + + + + +extern float acoshf (float __x) throw (); extern float __acoshf (float __x) throw (); + +extern float asinhf (float __x) throw (); extern float __asinhf (float __x) throw (); + +extern float atanhf (float __x) throw (); extern float __atanhf (float __x) throw (); + + + + + + extern float expf (float __x) throw (); extern float __expf (float __x) throw (); + + +extern float frexpf (float __x, int *__exponent) throw (); extern float __frexpf (float __x, int *__exponent) throw (); + + +extern float ldexpf (float __x, int __exponent) throw (); extern float __ldexpf (float __x, int __exponent) throw (); + + + extern float logf (float __x) throw (); extern float __logf (float __x) throw (); + + +extern float log10f (float __x) throw (); extern float __log10f (float __x) throw (); + + +extern float modff (float __x, float *__iptr) throw (); extern float __modff (float __x, float *__iptr) throw () __attribute__ ((__nonnull__ (2))); + + + +extern float exp10f (float __x) throw (); extern float __exp10f (float __x) throw (); + + + + +extern float expm1f (float __x) throw (); extern float __expm1f (float __x) throw (); + + +extern float log1pf (float __x) throw (); extern float __log1pf (float __x) throw (); + + +extern float logbf (float __x) throw (); extern float __logbf (float __x) throw (); + + + + +extern float exp2f (float __x) throw (); extern float __exp2f (float __x) throw (); + + +extern float log2f (float __x) throw (); extern float __log2f (float __x) throw (); + + + + + + + extern float powf (float __x, float __y) throw (); extern float __powf (float __x, float __y) throw (); + + +extern float sqrtf (float __x) throw (); extern float __sqrtf (float __x) throw (); + + + +extern float hypotf (float __x, float __y) throw (); extern float __hypotf (float __x, float __y) throw (); + + + + +extern float cbrtf (float __x) throw (); extern float __cbrtf (float __x) throw (); + + + + + + +extern float ceilf (float __x) throw () __attribute__ ((__const__)); extern float __ceilf (float __x) throw () __attribute__ ((__const__)); + + +extern float fabsf (float __x) throw () __attribute__ ((__const__)); extern float __fabsf (float __x) throw () __attribute__ ((__const__)); + + +extern float floorf (float __x) throw () __attribute__ ((__const__)); extern float __floorf (float __x) throw () __attribute__ ((__const__)); + + +extern float fmodf (float __x, float __y) throw (); extern float __fmodf (float __x, float __y) throw (); +# 177 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern int isinff (float __value) throw () __attribute__ ((__const__)); + + + + +extern int finitef (float __value) throw () __attribute__ ((__const__)); + + +extern float dremf (float __x, float __y) throw (); extern float __dremf (float __x, float __y) throw (); + + + +extern float significandf (float __x) throw (); extern float __significandf (float __x) throw (); + + + + + + +extern float copysignf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __copysignf (float __x, float __y) throw () __attribute__ ((__const__)); + + + + +extern float nanf (const char *__tagb) throw (); extern float __nanf (const char *__tagb) throw (); +# 211 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern int isnanf (float __value) throw () __attribute__ ((__const__)); + + + + + +extern float j0f (float) throw (); extern float __j0f (float) throw (); +extern float j1f (float) throw (); extern float __j1f (float) throw (); +extern float jnf (int, float) throw (); extern float __jnf (int, float) throw (); +extern float y0f (float) throw (); extern float __y0f (float) throw (); +extern float y1f (float) throw (); extern float __y1f (float) throw (); +extern float ynf (int, float) throw (); extern float __ynf (int, float) throw (); + + + + + +extern float erff (float) throw (); extern float __erff (float) throw (); +extern float erfcf (float) throw (); extern float __erfcf (float) throw (); +extern float lgammaf (float) throw (); extern float __lgammaf (float) throw (); + + + + +extern float tgammaf (float) throw (); extern float __tgammaf (float) throw (); + + + + + +extern float gammaf (float) throw (); extern float __gammaf (float) throw (); + + + + + + + +extern float lgammaf_r (float, int *__signgamp) throw (); extern float __lgammaf_r (float, int *__signgamp) throw (); + + + + + + +extern float rintf (float __x) throw (); extern float __rintf (float __x) throw (); + + +extern float nextafterf (float __x, float __y) throw (); extern float __nextafterf (float __x, float __y) throw (); + +extern float nexttowardf (float __x, long double __y) throw (); extern float __nexttowardf (float __x, long double __y) throw (); + + + + +extern float nextdownf (float __x) throw (); extern float __nextdownf (float __x) throw (); + +extern float nextupf (float __x) throw (); extern float __nextupf (float __x) throw (); + + + +extern float remainderf (float __x, float __y) throw (); extern float __remainderf (float __x, float __y) throw (); + + + +extern float scalbnf (float __x, int __n) throw (); extern float __scalbnf (float __x, int __n) throw (); + + + +extern int ilogbf (float __x) throw (); extern int __ilogbf (float __x) throw (); + + + + +extern long int llogbf (float __x) throw (); extern long int __llogbf (float __x) throw (); + + + + +extern float scalblnf (float __x, long int __n) throw (); extern float __scalblnf (float __x, long int __n) throw (); + + + +extern float nearbyintf (float __x) throw (); extern float __nearbyintf (float __x) throw (); + + + +extern float roundf (float __x) throw () __attribute__ ((__const__)); extern float __roundf (float __x) throw () __attribute__ ((__const__)); + + + +extern float truncf (float __x) throw () __attribute__ ((__const__)); extern float __truncf (float __x) throw () __attribute__ ((__const__)); + + + + +extern float remquof (float __x, float __y, int *__quo) throw (); extern float __remquof (float __x, float __y, int *__quo) throw (); + + + + + + +extern long int lrintf (float __x) throw (); extern long int __lrintf (float __x) throw (); +__extension__ +extern long long int llrintf (float __x) throw (); extern long long int __llrintf (float __x) throw (); + + + +extern long int lroundf (float __x) throw (); extern long int __lroundf (float __x) throw (); +__extension__ +extern long long int llroundf (float __x) throw (); extern long long int __llroundf (float __x) throw (); + + + +extern float fdimf (float __x, float __y) throw (); extern float __fdimf (float __x, float __y) throw (); + + +extern float fmaxf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __fmaxf (float __x, float __y) throw () __attribute__ ((__const__)); + + +extern float fminf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __fminf (float __x, float __y) throw () __attribute__ ((__const__)); + + +extern float fmaf (float __x, float __y, float __z) throw (); extern float __fmaf (float __x, float __y, float __z) throw (); + + + + +extern float roundevenf (float __x) throw () __attribute__ ((__const__)); extern float __roundevenf (float __x) throw () __attribute__ ((__const__)); + + + +extern __intmax_t fromfpf (float __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpf (float __x, int __round, unsigned int __width) throw () + ; + + + +extern __uintmax_t ufromfpf (float __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpf (float __x, int __round, unsigned int __width) throw () + ; + + + + +extern __intmax_t fromfpxf (float __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpxf (float __x, int __round, unsigned int __width) throw () + ; + + + + +extern __uintmax_t ufromfpxf (float __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpxf (float __x, int __round, unsigned int __width) throw () + ; + + +extern float fmaxmagf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __fmaxmagf (float __x, float __y) throw () __attribute__ ((__const__)); + + +extern float fminmagf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __fminmagf (float __x, float __y) throw () __attribute__ ((__const__)); + + +extern int canonicalizef (float *__cx, const float *__x) throw (); + + + + +extern int totalorderf (const float *__x, const float *__y) throw () + + __attribute__ ((__pure__)); + + +extern int totalordermagf (const float *__x, const float *__y) throw () + + __attribute__ ((__pure__)); + + +extern float getpayloadf (const float *__x) throw (); extern float __getpayloadf (const float *__x) throw (); + + +extern int setpayloadf (float *__x, float __payload) throw (); + + +extern int setpayloadsigf (float *__x, float __payload) throw (); + + + + + + + +extern float scalbf (float __x, float __n) throw (); extern float __scalbf (float __x, float __n) throw (); +# 308 "/usr/include/math.h" 2 3 4 +# 349 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h" 1 3 4 +# 21 "/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h" 3 4 +extern int __fpclassifyl (long double __value) throw () + __attribute__ ((__const__)); + + +extern int __signbitl (long double __value) throw () + __attribute__ ((__const__)); + + + +extern int __isinfl (long double __value) throw () __attribute__ ((__const__)); + + +extern int __finitel (long double __value) throw () __attribute__ ((__const__)); + + +extern int __isnanl (long double __value) throw () __attribute__ ((__const__)); + + +extern int __iseqsigl (long double __x, long double __y) throw (); + + +extern int __issignalingl (long double __value) throw () + __attribute__ ((__const__)); +# 350 "/usr/include/math.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern long double acosl (long double __x) throw (); extern long double __acosl (long double __x) throw (); + +extern long double asinl (long double __x) throw (); extern long double __asinl (long double __x) throw (); + +extern long double atanl (long double __x) throw (); extern long double __atanl (long double __x) throw (); + +extern long double atan2l (long double __y, long double __x) throw (); extern long double __atan2l (long double __y, long double __x) throw (); + + + extern long double cosl (long double __x) throw (); extern long double __cosl (long double __x) throw (); + + extern long double sinl (long double __x) throw (); extern long double __sinl (long double __x) throw (); + +extern long double tanl (long double __x) throw (); extern long double __tanl (long double __x) throw (); + + + + +extern long double coshl (long double __x) throw (); extern long double __coshl (long double __x) throw (); + +extern long double sinhl (long double __x) throw (); extern long double __sinhl (long double __x) throw (); + +extern long double tanhl (long double __x) throw (); extern long double __tanhl (long double __x) throw (); + + + + extern void sincosl (long double __x, long double *__sinx, long double *__cosx) throw (); extern void __sincosl (long double __x, long double *__sinx, long double *__cosx) throw () + ; + + + + +extern long double acoshl (long double __x) throw (); extern long double __acoshl (long double __x) throw (); + +extern long double asinhl (long double __x) throw (); extern long double __asinhl (long double __x) throw (); + +extern long double atanhl (long double __x) throw (); extern long double __atanhl (long double __x) throw (); + + + + + + extern long double expl (long double __x) throw (); extern long double __expl (long double __x) throw (); + + +extern long double frexpl (long double __x, int *__exponent) throw (); extern long double __frexpl (long double __x, int *__exponent) throw (); + + +extern long double ldexpl (long double __x, int __exponent) throw (); extern long double __ldexpl (long double __x, int __exponent) throw (); + + + extern long double logl (long double __x) throw (); extern long double __logl (long double __x) throw (); + + +extern long double log10l (long double __x) throw (); extern long double __log10l (long double __x) throw (); + + +extern long double modfl (long double __x, long double *__iptr) throw (); extern long double __modfl (long double __x, long double *__iptr) throw () __attribute__ ((__nonnull__ (2))); + + + +extern long double exp10l (long double __x) throw (); extern long double __exp10l (long double __x) throw (); + + + + +extern long double expm1l (long double __x) throw (); extern long double __expm1l (long double __x) throw (); + + +extern long double log1pl (long double __x) throw (); extern long double __log1pl (long double __x) throw (); + + +extern long double logbl (long double __x) throw (); extern long double __logbl (long double __x) throw (); + + + + +extern long double exp2l (long double __x) throw (); extern long double __exp2l (long double __x) throw (); + + +extern long double log2l (long double __x) throw (); extern long double __log2l (long double __x) throw (); + + + + + + + extern long double powl (long double __x, long double __y) throw (); extern long double __powl (long double __x, long double __y) throw (); + + +extern long double sqrtl (long double __x) throw (); extern long double __sqrtl (long double __x) throw (); + + + +extern long double hypotl (long double __x, long double __y) throw (); extern long double __hypotl (long double __x, long double __y) throw (); + + + + +extern long double cbrtl (long double __x) throw (); extern long double __cbrtl (long double __x) throw (); + + + + + + +extern long double ceill (long double __x) throw () __attribute__ ((__const__)); extern long double __ceill (long double __x) throw () __attribute__ ((__const__)); + + +extern long double fabsl (long double __x) throw () __attribute__ ((__const__)); extern long double __fabsl (long double __x) throw () __attribute__ ((__const__)); + + +extern long double floorl (long double __x) throw () __attribute__ ((__const__)); extern long double __floorl (long double __x) throw () __attribute__ ((__const__)); + + +extern long double fmodl (long double __x, long double __y) throw (); extern long double __fmodl (long double __x, long double __y) throw (); +# 177 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern int isinfl (long double __value) throw () __attribute__ ((__const__)); + + + + +extern int finitel (long double __value) throw () __attribute__ ((__const__)); + + +extern long double dreml (long double __x, long double __y) throw (); extern long double __dreml (long double __x, long double __y) throw (); + + + +extern long double significandl (long double __x) throw (); extern long double __significandl (long double __x) throw (); + + + + + + +extern long double copysignl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __copysignl (long double __x, long double __y) throw () __attribute__ ((__const__)); + + + + +extern long double nanl (const char *__tagb) throw (); extern long double __nanl (const char *__tagb) throw (); +# 211 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern int isnanl (long double __value) throw () __attribute__ ((__const__)); + + + + + +extern long double j0l (long double) throw (); extern long double __j0l (long double) throw (); +extern long double j1l (long double) throw (); extern long double __j1l (long double) throw (); +extern long double jnl (int, long double) throw (); extern long double __jnl (int, long double) throw (); +extern long double y0l (long double) throw (); extern long double __y0l (long double) throw (); +extern long double y1l (long double) throw (); extern long double __y1l (long double) throw (); +extern long double ynl (int, long double) throw (); extern long double __ynl (int, long double) throw (); + + + + + +extern long double erfl (long double) throw (); extern long double __erfl (long double) throw (); +extern long double erfcl (long double) throw (); extern long double __erfcl (long double) throw (); +extern long double lgammal (long double) throw (); extern long double __lgammal (long double) throw (); + + + + +extern long double tgammal (long double) throw (); extern long double __tgammal (long double) throw (); + + + + + +extern long double gammal (long double) throw (); extern long double __gammal (long double) throw (); + + + + + + + +extern long double lgammal_r (long double, int *__signgamp) throw (); extern long double __lgammal_r (long double, int *__signgamp) throw (); + + + + + + +extern long double rintl (long double __x) throw (); extern long double __rintl (long double __x) throw (); + + +extern long double nextafterl (long double __x, long double __y) throw (); extern long double __nextafterl (long double __x, long double __y) throw (); + +extern long double nexttowardl (long double __x, long double __y) throw (); extern long double __nexttowardl (long double __x, long double __y) throw (); + + + + +extern long double nextdownl (long double __x) throw (); extern long double __nextdownl (long double __x) throw (); + +extern long double nextupl (long double __x) throw (); extern long double __nextupl (long double __x) throw (); + + + +extern long double remainderl (long double __x, long double __y) throw (); extern long double __remainderl (long double __x, long double __y) throw (); + + + +extern long double scalbnl (long double __x, int __n) throw (); extern long double __scalbnl (long double __x, int __n) throw (); + + + +extern int ilogbl (long double __x) throw (); extern int __ilogbl (long double __x) throw (); + + + + +extern long int llogbl (long double __x) throw (); extern long int __llogbl (long double __x) throw (); + + + + +extern long double scalblnl (long double __x, long int __n) throw (); extern long double __scalblnl (long double __x, long int __n) throw (); + + + +extern long double nearbyintl (long double __x) throw (); extern long double __nearbyintl (long double __x) throw (); + + + +extern long double roundl (long double __x) throw () __attribute__ ((__const__)); extern long double __roundl (long double __x) throw () __attribute__ ((__const__)); + + + +extern long double truncl (long double __x) throw () __attribute__ ((__const__)); extern long double __truncl (long double __x) throw () __attribute__ ((__const__)); + + + + +extern long double remquol (long double __x, long double __y, int *__quo) throw (); extern long double __remquol (long double __x, long double __y, int *__quo) throw (); + + + + + + +extern long int lrintl (long double __x) throw (); extern long int __lrintl (long double __x) throw (); +__extension__ +extern long long int llrintl (long double __x) throw (); extern long long int __llrintl (long double __x) throw (); + + + +extern long int lroundl (long double __x) throw (); extern long int __lroundl (long double __x) throw (); +__extension__ +extern long long int llroundl (long double __x) throw (); extern long long int __llroundl (long double __x) throw (); + + + +extern long double fdiml (long double __x, long double __y) throw (); extern long double __fdiml (long double __x, long double __y) throw (); + + +extern long double fmaxl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __fmaxl (long double __x, long double __y) throw () __attribute__ ((__const__)); + + +extern long double fminl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __fminl (long double __x, long double __y) throw () __attribute__ ((__const__)); + + +extern long double fmal (long double __x, long double __y, long double __z) throw (); extern long double __fmal (long double __x, long double __y, long double __z) throw (); + + + + +extern long double roundevenl (long double __x) throw () __attribute__ ((__const__)); extern long double __roundevenl (long double __x) throw () __attribute__ ((__const__)); + + + +extern __intmax_t fromfpl (long double __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpl (long double __x, int __round, unsigned int __width) throw () + ; + + + +extern __uintmax_t ufromfpl (long double __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpl (long double __x, int __round, unsigned int __width) throw () + ; + + + + +extern __intmax_t fromfpxl (long double __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpxl (long double __x, int __round, unsigned int __width) throw () + ; + + + + +extern __uintmax_t ufromfpxl (long double __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpxl (long double __x, int __round, unsigned int __width) throw () + ; + + +extern long double fmaxmagl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __fmaxmagl (long double __x, long double __y) throw () __attribute__ ((__const__)); + + +extern long double fminmagl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __fminmagl (long double __x, long double __y) throw () __attribute__ ((__const__)); + + +extern int canonicalizel (long double *__cx, const long double *__x) throw (); + + + + +extern int totalorderl (const long double *__x, const long double *__y) throw () + + __attribute__ ((__pure__)); + + +extern int totalordermagl (const long double *__x, const long double *__y) throw () + + __attribute__ ((__pure__)); + + +extern long double getpayloadl (const long double *__x) throw (); extern long double __getpayloadl (const long double *__x) throw (); + + +extern int setpayloadl (long double *__x, long double __payload) throw (); + + +extern int setpayloadsigl (long double *__x, long double __payload) throw (); + + + + + + + +extern long double scalbl (long double __x, long double __n) throw (); extern long double __scalbl (long double __x, long double __n) throw (); +# 351 "/usr/include/math.h" 2 3 4 +# 389 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern _Float32 acosf32 (_Float32 __x) throw (); extern _Float32 __acosf32 (_Float32 __x) throw (); + +extern _Float32 asinf32 (_Float32 __x) throw (); extern _Float32 __asinf32 (_Float32 __x) throw (); + +extern _Float32 atanf32 (_Float32 __x) throw (); extern _Float32 __atanf32 (_Float32 __x) throw (); + +extern _Float32 atan2f32 (_Float32 __y, _Float32 __x) throw (); extern _Float32 __atan2f32 (_Float32 __y, _Float32 __x) throw (); + + + extern _Float32 cosf32 (_Float32 __x) throw (); extern _Float32 __cosf32 (_Float32 __x) throw (); + + extern _Float32 sinf32 (_Float32 __x) throw (); extern _Float32 __sinf32 (_Float32 __x) throw (); + +extern _Float32 tanf32 (_Float32 __x) throw (); extern _Float32 __tanf32 (_Float32 __x) throw (); + + + + +extern _Float32 coshf32 (_Float32 __x) throw (); extern _Float32 __coshf32 (_Float32 __x) throw (); + +extern _Float32 sinhf32 (_Float32 __x) throw (); extern _Float32 __sinhf32 (_Float32 __x) throw (); + +extern _Float32 tanhf32 (_Float32 __x) throw (); extern _Float32 __tanhf32 (_Float32 __x) throw (); + + + + extern void sincosf32 (_Float32 __x, _Float32 *__sinx, _Float32 *__cosx) throw (); extern void __sincosf32 (_Float32 __x, _Float32 *__sinx, _Float32 *__cosx) throw () + ; + + + + +extern _Float32 acoshf32 (_Float32 __x) throw (); extern _Float32 __acoshf32 (_Float32 __x) throw (); + +extern _Float32 asinhf32 (_Float32 __x) throw (); extern _Float32 __asinhf32 (_Float32 __x) throw (); + +extern _Float32 atanhf32 (_Float32 __x) throw (); extern _Float32 __atanhf32 (_Float32 __x) throw (); + + + + + + extern _Float32 expf32 (_Float32 __x) throw (); extern _Float32 __expf32 (_Float32 __x) throw (); + + +extern _Float32 frexpf32 (_Float32 __x, int *__exponent) throw (); extern _Float32 __frexpf32 (_Float32 __x, int *__exponent) throw (); + + +extern _Float32 ldexpf32 (_Float32 __x, int __exponent) throw (); extern _Float32 __ldexpf32 (_Float32 __x, int __exponent) throw (); + + + extern _Float32 logf32 (_Float32 __x) throw (); extern _Float32 __logf32 (_Float32 __x) throw (); + + +extern _Float32 log10f32 (_Float32 __x) throw (); extern _Float32 __log10f32 (_Float32 __x) throw (); + + +extern _Float32 modff32 (_Float32 __x, _Float32 *__iptr) throw (); extern _Float32 __modff32 (_Float32 __x, _Float32 *__iptr) throw () __attribute__ ((__nonnull__ (2))); + + + +extern _Float32 exp10f32 (_Float32 __x) throw (); extern _Float32 __exp10f32 (_Float32 __x) throw (); + + + + +extern _Float32 expm1f32 (_Float32 __x) throw (); extern _Float32 __expm1f32 (_Float32 __x) throw (); + + +extern _Float32 log1pf32 (_Float32 __x) throw (); extern _Float32 __log1pf32 (_Float32 __x) throw (); + + +extern _Float32 logbf32 (_Float32 __x) throw (); extern _Float32 __logbf32 (_Float32 __x) throw (); + + + + +extern _Float32 exp2f32 (_Float32 __x) throw (); extern _Float32 __exp2f32 (_Float32 __x) throw (); + + +extern _Float32 log2f32 (_Float32 __x) throw (); extern _Float32 __log2f32 (_Float32 __x) throw (); + + + + + + + extern _Float32 powf32 (_Float32 __x, _Float32 __y) throw (); extern _Float32 __powf32 (_Float32 __x, _Float32 __y) throw (); + + +extern _Float32 sqrtf32 (_Float32 __x) throw (); extern _Float32 __sqrtf32 (_Float32 __x) throw (); + + + +extern _Float32 hypotf32 (_Float32 __x, _Float32 __y) throw (); extern _Float32 __hypotf32 (_Float32 __x, _Float32 __y) throw (); + + + + +extern _Float32 cbrtf32 (_Float32 __x) throw (); extern _Float32 __cbrtf32 (_Float32 __x) throw (); + + + + + + +extern _Float32 ceilf32 (_Float32 __x) throw () __attribute__ ((__const__)); extern _Float32 __ceilf32 (_Float32 __x) throw () __attribute__ ((__const__)); + + +extern _Float32 fabsf32 (_Float32 __x) throw () __attribute__ ((__const__)); extern _Float32 __fabsf32 (_Float32 __x) throw () __attribute__ ((__const__)); + + +extern _Float32 floorf32 (_Float32 __x) throw () __attribute__ ((__const__)); extern _Float32 __floorf32 (_Float32 __x) throw () __attribute__ ((__const__)); + + +extern _Float32 fmodf32 (_Float32 __x, _Float32 __y) throw (); extern _Float32 __fmodf32 (_Float32 __x, _Float32 __y) throw (); +# 196 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern _Float32 copysignf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); extern _Float32 __copysignf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); + + + + +extern _Float32 nanf32 (const char *__tagb) throw (); extern _Float32 __nanf32 (const char *__tagb) throw (); +# 217 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern _Float32 j0f32 (_Float32) throw (); extern _Float32 __j0f32 (_Float32) throw (); +extern _Float32 j1f32 (_Float32) throw (); extern _Float32 __j1f32 (_Float32) throw (); +extern _Float32 jnf32 (int, _Float32) throw (); extern _Float32 __jnf32 (int, _Float32) throw (); +extern _Float32 y0f32 (_Float32) throw (); extern _Float32 __y0f32 (_Float32) throw (); +extern _Float32 y1f32 (_Float32) throw (); extern _Float32 __y1f32 (_Float32) throw (); +extern _Float32 ynf32 (int, _Float32) throw (); extern _Float32 __ynf32 (int, _Float32) throw (); + + + + + +extern _Float32 erff32 (_Float32) throw (); extern _Float32 __erff32 (_Float32) throw (); +extern _Float32 erfcf32 (_Float32) throw (); extern _Float32 __erfcf32 (_Float32) throw (); +extern _Float32 lgammaf32 (_Float32) throw (); extern _Float32 __lgammaf32 (_Float32) throw (); + + + + +extern _Float32 tgammaf32 (_Float32) throw (); extern _Float32 __tgammaf32 (_Float32) throw (); +# 249 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern _Float32 lgammaf32_r (_Float32, int *__signgamp) throw (); extern _Float32 __lgammaf32_r (_Float32, int *__signgamp) throw (); + + + + + + +extern _Float32 rintf32 (_Float32 __x) throw (); extern _Float32 __rintf32 (_Float32 __x) throw (); + + +extern _Float32 nextafterf32 (_Float32 __x, _Float32 __y) throw (); extern _Float32 __nextafterf32 (_Float32 __x, _Float32 __y) throw (); + + + + + + +extern _Float32 nextdownf32 (_Float32 __x) throw (); extern _Float32 __nextdownf32 (_Float32 __x) throw (); + +extern _Float32 nextupf32 (_Float32 __x) throw (); extern _Float32 __nextupf32 (_Float32 __x) throw (); + + + +extern _Float32 remainderf32 (_Float32 __x, _Float32 __y) throw (); extern _Float32 __remainderf32 (_Float32 __x, _Float32 __y) throw (); + + + +extern _Float32 scalbnf32 (_Float32 __x, int __n) throw (); extern _Float32 __scalbnf32 (_Float32 __x, int __n) throw (); + + + +extern int ilogbf32 (_Float32 __x) throw (); extern int __ilogbf32 (_Float32 __x) throw (); + + + + +extern long int llogbf32 (_Float32 __x) throw (); extern long int __llogbf32 (_Float32 __x) throw (); + + + + +extern _Float32 scalblnf32 (_Float32 __x, long int __n) throw (); extern _Float32 __scalblnf32 (_Float32 __x, long int __n) throw (); + + + +extern _Float32 nearbyintf32 (_Float32 __x) throw (); extern _Float32 __nearbyintf32 (_Float32 __x) throw (); + + + +extern _Float32 roundf32 (_Float32 __x) throw () __attribute__ ((__const__)); extern _Float32 __roundf32 (_Float32 __x) throw () __attribute__ ((__const__)); + + + +extern _Float32 truncf32 (_Float32 __x) throw () __attribute__ ((__const__)); extern _Float32 __truncf32 (_Float32 __x) throw () __attribute__ ((__const__)); + + + + +extern _Float32 remquof32 (_Float32 __x, _Float32 __y, int *__quo) throw (); extern _Float32 __remquof32 (_Float32 __x, _Float32 __y, int *__quo) throw (); + + + + + + +extern long int lrintf32 (_Float32 __x) throw (); extern long int __lrintf32 (_Float32 __x) throw (); +__extension__ +extern long long int llrintf32 (_Float32 __x) throw (); extern long long int __llrintf32 (_Float32 __x) throw (); + + + +extern long int lroundf32 (_Float32 __x) throw (); extern long int __lroundf32 (_Float32 __x) throw (); +__extension__ +extern long long int llroundf32 (_Float32 __x) throw (); extern long long int __llroundf32 (_Float32 __x) throw (); + + + +extern _Float32 fdimf32 (_Float32 __x, _Float32 __y) throw (); extern _Float32 __fdimf32 (_Float32 __x, _Float32 __y) throw (); + + +extern _Float32 fmaxf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); extern _Float32 __fmaxf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); + + +extern _Float32 fminf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); extern _Float32 __fminf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); + + +extern _Float32 fmaf32 (_Float32 __x, _Float32 __y, _Float32 __z) throw (); extern _Float32 __fmaf32 (_Float32 __x, _Float32 __y, _Float32 __z) throw (); + + + + +extern _Float32 roundevenf32 (_Float32 __x) throw () __attribute__ ((__const__)); extern _Float32 __roundevenf32 (_Float32 __x) throw () __attribute__ ((__const__)); + + + +extern __intmax_t fromfpf32 (_Float32 __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpf32 (_Float32 __x, int __round, unsigned int __width) throw () + ; + + + +extern __uintmax_t ufromfpf32 (_Float32 __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpf32 (_Float32 __x, int __round, unsigned int __width) throw () + ; + + + + +extern __intmax_t fromfpxf32 (_Float32 __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpxf32 (_Float32 __x, int __round, unsigned int __width) throw () + ; + + + + +extern __uintmax_t ufromfpxf32 (_Float32 __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpxf32 (_Float32 __x, int __round, unsigned int __width) throw () + ; + + +extern _Float32 fmaxmagf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); extern _Float32 __fmaxmagf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); + + +extern _Float32 fminmagf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); extern _Float32 __fminmagf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); + + +extern int canonicalizef32 (_Float32 *__cx, const _Float32 *__x) throw (); + + + + +extern int totalorderf32 (const _Float32 *__x, const _Float32 *__y) throw () + + __attribute__ ((__pure__)); + + +extern int totalordermagf32 (const _Float32 *__x, const _Float32 *__y) throw () + + __attribute__ ((__pure__)); + + +extern _Float32 getpayloadf32 (const _Float32 *__x) throw (); extern _Float32 __getpayloadf32 (const _Float32 *__x) throw (); + + +extern int setpayloadf32 (_Float32 *__x, _Float32 __payload) throw (); + + +extern int setpayloadsigf32 (_Float32 *__x, _Float32 __payload) throw (); +# 390 "/usr/include/math.h" 2 3 4 +# 406 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern _Float64 acosf64 (_Float64 __x) throw (); extern _Float64 __acosf64 (_Float64 __x) throw (); + +extern _Float64 asinf64 (_Float64 __x) throw (); extern _Float64 __asinf64 (_Float64 __x) throw (); + +extern _Float64 atanf64 (_Float64 __x) throw (); extern _Float64 __atanf64 (_Float64 __x) throw (); + +extern _Float64 atan2f64 (_Float64 __y, _Float64 __x) throw (); extern _Float64 __atan2f64 (_Float64 __y, _Float64 __x) throw (); + + + extern _Float64 cosf64 (_Float64 __x) throw (); extern _Float64 __cosf64 (_Float64 __x) throw (); + + extern _Float64 sinf64 (_Float64 __x) throw (); extern _Float64 __sinf64 (_Float64 __x) throw (); + +extern _Float64 tanf64 (_Float64 __x) throw (); extern _Float64 __tanf64 (_Float64 __x) throw (); + + + + +extern _Float64 coshf64 (_Float64 __x) throw (); extern _Float64 __coshf64 (_Float64 __x) throw (); + +extern _Float64 sinhf64 (_Float64 __x) throw (); extern _Float64 __sinhf64 (_Float64 __x) throw (); + +extern _Float64 tanhf64 (_Float64 __x) throw (); extern _Float64 __tanhf64 (_Float64 __x) throw (); + + + + extern void sincosf64 (_Float64 __x, _Float64 *__sinx, _Float64 *__cosx) throw (); extern void __sincosf64 (_Float64 __x, _Float64 *__sinx, _Float64 *__cosx) throw () + ; + + + + +extern _Float64 acoshf64 (_Float64 __x) throw (); extern _Float64 __acoshf64 (_Float64 __x) throw (); + +extern _Float64 asinhf64 (_Float64 __x) throw (); extern _Float64 __asinhf64 (_Float64 __x) throw (); + +extern _Float64 atanhf64 (_Float64 __x) throw (); extern _Float64 __atanhf64 (_Float64 __x) throw (); + + + + + + extern _Float64 expf64 (_Float64 __x) throw (); extern _Float64 __expf64 (_Float64 __x) throw (); + + +extern _Float64 frexpf64 (_Float64 __x, int *__exponent) throw (); extern _Float64 __frexpf64 (_Float64 __x, int *__exponent) throw (); + + +extern _Float64 ldexpf64 (_Float64 __x, int __exponent) throw (); extern _Float64 __ldexpf64 (_Float64 __x, int __exponent) throw (); + + + extern _Float64 logf64 (_Float64 __x) throw (); extern _Float64 __logf64 (_Float64 __x) throw (); + + +extern _Float64 log10f64 (_Float64 __x) throw (); extern _Float64 __log10f64 (_Float64 __x) throw (); + + +extern _Float64 modff64 (_Float64 __x, _Float64 *__iptr) throw (); extern _Float64 __modff64 (_Float64 __x, _Float64 *__iptr) throw () __attribute__ ((__nonnull__ (2))); + + + +extern _Float64 exp10f64 (_Float64 __x) throw (); extern _Float64 __exp10f64 (_Float64 __x) throw (); + + + + +extern _Float64 expm1f64 (_Float64 __x) throw (); extern _Float64 __expm1f64 (_Float64 __x) throw (); + + +extern _Float64 log1pf64 (_Float64 __x) throw (); extern _Float64 __log1pf64 (_Float64 __x) throw (); + + +extern _Float64 logbf64 (_Float64 __x) throw (); extern _Float64 __logbf64 (_Float64 __x) throw (); + + + + +extern _Float64 exp2f64 (_Float64 __x) throw (); extern _Float64 __exp2f64 (_Float64 __x) throw (); + + +extern _Float64 log2f64 (_Float64 __x) throw (); extern _Float64 __log2f64 (_Float64 __x) throw (); + + + + + + + extern _Float64 powf64 (_Float64 __x, _Float64 __y) throw (); extern _Float64 __powf64 (_Float64 __x, _Float64 __y) throw (); + + +extern _Float64 sqrtf64 (_Float64 __x) throw (); extern _Float64 __sqrtf64 (_Float64 __x) throw (); + + + +extern _Float64 hypotf64 (_Float64 __x, _Float64 __y) throw (); extern _Float64 __hypotf64 (_Float64 __x, _Float64 __y) throw (); + + + + +extern _Float64 cbrtf64 (_Float64 __x) throw (); extern _Float64 __cbrtf64 (_Float64 __x) throw (); + + + + + + +extern _Float64 ceilf64 (_Float64 __x) throw () __attribute__ ((__const__)); extern _Float64 __ceilf64 (_Float64 __x) throw () __attribute__ ((__const__)); + + +extern _Float64 fabsf64 (_Float64 __x) throw () __attribute__ ((__const__)); extern _Float64 __fabsf64 (_Float64 __x) throw () __attribute__ ((__const__)); + + +extern _Float64 floorf64 (_Float64 __x) throw () __attribute__ ((__const__)); extern _Float64 __floorf64 (_Float64 __x) throw () __attribute__ ((__const__)); + + +extern _Float64 fmodf64 (_Float64 __x, _Float64 __y) throw (); extern _Float64 __fmodf64 (_Float64 __x, _Float64 __y) throw (); +# 196 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern _Float64 copysignf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); extern _Float64 __copysignf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); + + + + +extern _Float64 nanf64 (const char *__tagb) throw (); extern _Float64 __nanf64 (const char *__tagb) throw (); +# 217 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern _Float64 j0f64 (_Float64) throw (); extern _Float64 __j0f64 (_Float64) throw (); +extern _Float64 j1f64 (_Float64) throw (); extern _Float64 __j1f64 (_Float64) throw (); +extern _Float64 jnf64 (int, _Float64) throw (); extern _Float64 __jnf64 (int, _Float64) throw (); +extern _Float64 y0f64 (_Float64) throw (); extern _Float64 __y0f64 (_Float64) throw (); +extern _Float64 y1f64 (_Float64) throw (); extern _Float64 __y1f64 (_Float64) throw (); +extern _Float64 ynf64 (int, _Float64) throw (); extern _Float64 __ynf64 (int, _Float64) throw (); + + + + + +extern _Float64 erff64 (_Float64) throw (); extern _Float64 __erff64 (_Float64) throw (); +extern _Float64 erfcf64 (_Float64) throw (); extern _Float64 __erfcf64 (_Float64) throw (); +extern _Float64 lgammaf64 (_Float64) throw (); extern _Float64 __lgammaf64 (_Float64) throw (); + + + + +extern _Float64 tgammaf64 (_Float64) throw (); extern _Float64 __tgammaf64 (_Float64) throw (); +# 249 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern _Float64 lgammaf64_r (_Float64, int *__signgamp) throw (); extern _Float64 __lgammaf64_r (_Float64, int *__signgamp) throw (); + + + + + + +extern _Float64 rintf64 (_Float64 __x) throw (); extern _Float64 __rintf64 (_Float64 __x) throw (); + + +extern _Float64 nextafterf64 (_Float64 __x, _Float64 __y) throw (); extern _Float64 __nextafterf64 (_Float64 __x, _Float64 __y) throw (); + + + + + + +extern _Float64 nextdownf64 (_Float64 __x) throw (); extern _Float64 __nextdownf64 (_Float64 __x) throw (); + +extern _Float64 nextupf64 (_Float64 __x) throw (); extern _Float64 __nextupf64 (_Float64 __x) throw (); + + + +extern _Float64 remainderf64 (_Float64 __x, _Float64 __y) throw (); extern _Float64 __remainderf64 (_Float64 __x, _Float64 __y) throw (); + + + +extern _Float64 scalbnf64 (_Float64 __x, int __n) throw (); extern _Float64 __scalbnf64 (_Float64 __x, int __n) throw (); + + + +extern int ilogbf64 (_Float64 __x) throw (); extern int __ilogbf64 (_Float64 __x) throw (); + + + + +extern long int llogbf64 (_Float64 __x) throw (); extern long int __llogbf64 (_Float64 __x) throw (); + + + + +extern _Float64 scalblnf64 (_Float64 __x, long int __n) throw (); extern _Float64 __scalblnf64 (_Float64 __x, long int __n) throw (); + + + +extern _Float64 nearbyintf64 (_Float64 __x) throw (); extern _Float64 __nearbyintf64 (_Float64 __x) throw (); + + + +extern _Float64 roundf64 (_Float64 __x) throw () __attribute__ ((__const__)); extern _Float64 __roundf64 (_Float64 __x) throw () __attribute__ ((__const__)); + + + +extern _Float64 truncf64 (_Float64 __x) throw () __attribute__ ((__const__)); extern _Float64 __truncf64 (_Float64 __x) throw () __attribute__ ((__const__)); + + + + +extern _Float64 remquof64 (_Float64 __x, _Float64 __y, int *__quo) throw (); extern _Float64 __remquof64 (_Float64 __x, _Float64 __y, int *__quo) throw (); + + + + + + +extern long int lrintf64 (_Float64 __x) throw (); extern long int __lrintf64 (_Float64 __x) throw (); +__extension__ +extern long long int llrintf64 (_Float64 __x) throw (); extern long long int __llrintf64 (_Float64 __x) throw (); + + + +extern long int lroundf64 (_Float64 __x) throw (); extern long int __lroundf64 (_Float64 __x) throw (); +__extension__ +extern long long int llroundf64 (_Float64 __x) throw (); extern long long int __llroundf64 (_Float64 __x) throw (); + + + +extern _Float64 fdimf64 (_Float64 __x, _Float64 __y) throw (); extern _Float64 __fdimf64 (_Float64 __x, _Float64 __y) throw (); + + +extern _Float64 fmaxf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); extern _Float64 __fmaxf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); + + +extern _Float64 fminf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); extern _Float64 __fminf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); + + +extern _Float64 fmaf64 (_Float64 __x, _Float64 __y, _Float64 __z) throw (); extern _Float64 __fmaf64 (_Float64 __x, _Float64 __y, _Float64 __z) throw (); + + + + +extern _Float64 roundevenf64 (_Float64 __x) throw () __attribute__ ((__const__)); extern _Float64 __roundevenf64 (_Float64 __x) throw () __attribute__ ((__const__)); + + + +extern __intmax_t fromfpf64 (_Float64 __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpf64 (_Float64 __x, int __round, unsigned int __width) throw () + ; + + + +extern __uintmax_t ufromfpf64 (_Float64 __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpf64 (_Float64 __x, int __round, unsigned int __width) throw () + ; + + + + +extern __intmax_t fromfpxf64 (_Float64 __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpxf64 (_Float64 __x, int __round, unsigned int __width) throw () + ; + + + + +extern __uintmax_t ufromfpxf64 (_Float64 __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpxf64 (_Float64 __x, int __round, unsigned int __width) throw () + ; + + +extern _Float64 fmaxmagf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); extern _Float64 __fmaxmagf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); + + +extern _Float64 fminmagf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); extern _Float64 __fminmagf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); + + +extern int canonicalizef64 (_Float64 *__cx, const _Float64 *__x) throw (); + + + + +extern int totalorderf64 (const _Float64 *__x, const _Float64 *__y) throw () + + __attribute__ ((__pure__)); + + +extern int totalordermagf64 (const _Float64 *__x, const _Float64 *__y) throw () + + __attribute__ ((__pure__)); + + +extern _Float64 getpayloadf64 (const _Float64 *__x) throw (); extern _Float64 __getpayloadf64 (const _Float64 *__x) throw (); + + +extern int setpayloadf64 (_Float64 *__x, _Float64 __payload) throw (); + + +extern int setpayloadsigf64 (_Float64 *__x, _Float64 __payload) throw (); +# 407 "/usr/include/math.h" 2 3 4 +# 440 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern _Float32x acosf32x (_Float32x __x) throw (); extern _Float32x __acosf32x (_Float32x __x) throw (); + +extern _Float32x asinf32x (_Float32x __x) throw (); extern _Float32x __asinf32x (_Float32x __x) throw (); + +extern _Float32x atanf32x (_Float32x __x) throw (); extern _Float32x __atanf32x (_Float32x __x) throw (); + +extern _Float32x atan2f32x (_Float32x __y, _Float32x __x) throw (); extern _Float32x __atan2f32x (_Float32x __y, _Float32x __x) throw (); + + + extern _Float32x cosf32x (_Float32x __x) throw (); extern _Float32x __cosf32x (_Float32x __x) throw (); + + extern _Float32x sinf32x (_Float32x __x) throw (); extern _Float32x __sinf32x (_Float32x __x) throw (); + +extern _Float32x tanf32x (_Float32x __x) throw (); extern _Float32x __tanf32x (_Float32x __x) throw (); + + + + +extern _Float32x coshf32x (_Float32x __x) throw (); extern _Float32x __coshf32x (_Float32x __x) throw (); + +extern _Float32x sinhf32x (_Float32x __x) throw (); extern _Float32x __sinhf32x (_Float32x __x) throw (); + +extern _Float32x tanhf32x (_Float32x __x) throw (); extern _Float32x __tanhf32x (_Float32x __x) throw (); + + + + extern void sincosf32x (_Float32x __x, _Float32x *__sinx, _Float32x *__cosx) throw (); extern void __sincosf32x (_Float32x __x, _Float32x *__sinx, _Float32x *__cosx) throw () + ; + + + + +extern _Float32x acoshf32x (_Float32x __x) throw (); extern _Float32x __acoshf32x (_Float32x __x) throw (); + +extern _Float32x asinhf32x (_Float32x __x) throw (); extern _Float32x __asinhf32x (_Float32x __x) throw (); + +extern _Float32x atanhf32x (_Float32x __x) throw (); extern _Float32x __atanhf32x (_Float32x __x) throw (); + + + + + + extern _Float32x expf32x (_Float32x __x) throw (); extern _Float32x __expf32x (_Float32x __x) throw (); + + +extern _Float32x frexpf32x (_Float32x __x, int *__exponent) throw (); extern _Float32x __frexpf32x (_Float32x __x, int *__exponent) throw (); + + +extern _Float32x ldexpf32x (_Float32x __x, int __exponent) throw (); extern _Float32x __ldexpf32x (_Float32x __x, int __exponent) throw (); + + + extern _Float32x logf32x (_Float32x __x) throw (); extern _Float32x __logf32x (_Float32x __x) throw (); + + +extern _Float32x log10f32x (_Float32x __x) throw (); extern _Float32x __log10f32x (_Float32x __x) throw (); + + +extern _Float32x modff32x (_Float32x __x, _Float32x *__iptr) throw (); extern _Float32x __modff32x (_Float32x __x, _Float32x *__iptr) throw () __attribute__ ((__nonnull__ (2))); + + + +extern _Float32x exp10f32x (_Float32x __x) throw (); extern _Float32x __exp10f32x (_Float32x __x) throw (); + + + + +extern _Float32x expm1f32x (_Float32x __x) throw (); extern _Float32x __expm1f32x (_Float32x __x) throw (); + + +extern _Float32x log1pf32x (_Float32x __x) throw (); extern _Float32x __log1pf32x (_Float32x __x) throw (); + + +extern _Float32x logbf32x (_Float32x __x) throw (); extern _Float32x __logbf32x (_Float32x __x) throw (); + + + + +extern _Float32x exp2f32x (_Float32x __x) throw (); extern _Float32x __exp2f32x (_Float32x __x) throw (); + + +extern _Float32x log2f32x (_Float32x __x) throw (); extern _Float32x __log2f32x (_Float32x __x) throw (); + + + + + + + extern _Float32x powf32x (_Float32x __x, _Float32x __y) throw (); extern _Float32x __powf32x (_Float32x __x, _Float32x __y) throw (); + + +extern _Float32x sqrtf32x (_Float32x __x) throw (); extern _Float32x __sqrtf32x (_Float32x __x) throw (); + + + +extern _Float32x hypotf32x (_Float32x __x, _Float32x __y) throw (); extern _Float32x __hypotf32x (_Float32x __x, _Float32x __y) throw (); + + + + +extern _Float32x cbrtf32x (_Float32x __x) throw (); extern _Float32x __cbrtf32x (_Float32x __x) throw (); + + + + + + +extern _Float32x ceilf32x (_Float32x __x) throw () __attribute__ ((__const__)); extern _Float32x __ceilf32x (_Float32x __x) throw () __attribute__ ((__const__)); + + +extern _Float32x fabsf32x (_Float32x __x) throw () __attribute__ ((__const__)); extern _Float32x __fabsf32x (_Float32x __x) throw () __attribute__ ((__const__)); + + +extern _Float32x floorf32x (_Float32x __x) throw () __attribute__ ((__const__)); extern _Float32x __floorf32x (_Float32x __x) throw () __attribute__ ((__const__)); + + +extern _Float32x fmodf32x (_Float32x __x, _Float32x __y) throw (); extern _Float32x __fmodf32x (_Float32x __x, _Float32x __y) throw (); +# 196 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern _Float32x copysignf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); extern _Float32x __copysignf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); + + + + +extern _Float32x nanf32x (const char *__tagb) throw (); extern _Float32x __nanf32x (const char *__tagb) throw (); +# 217 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern _Float32x j0f32x (_Float32x) throw (); extern _Float32x __j0f32x (_Float32x) throw (); +extern _Float32x j1f32x (_Float32x) throw (); extern _Float32x __j1f32x (_Float32x) throw (); +extern _Float32x jnf32x (int, _Float32x) throw (); extern _Float32x __jnf32x (int, _Float32x) throw (); +extern _Float32x y0f32x (_Float32x) throw (); extern _Float32x __y0f32x (_Float32x) throw (); +extern _Float32x y1f32x (_Float32x) throw (); extern _Float32x __y1f32x (_Float32x) throw (); +extern _Float32x ynf32x (int, _Float32x) throw (); extern _Float32x __ynf32x (int, _Float32x) throw (); + + + + + +extern _Float32x erff32x (_Float32x) throw (); extern _Float32x __erff32x (_Float32x) throw (); +extern _Float32x erfcf32x (_Float32x) throw (); extern _Float32x __erfcf32x (_Float32x) throw (); +extern _Float32x lgammaf32x (_Float32x) throw (); extern _Float32x __lgammaf32x (_Float32x) throw (); + + + + +extern _Float32x tgammaf32x (_Float32x) throw (); extern _Float32x __tgammaf32x (_Float32x) throw (); +# 249 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern _Float32x lgammaf32x_r (_Float32x, int *__signgamp) throw (); extern _Float32x __lgammaf32x_r (_Float32x, int *__signgamp) throw (); + + + + + + +extern _Float32x rintf32x (_Float32x __x) throw (); extern _Float32x __rintf32x (_Float32x __x) throw (); + + +extern _Float32x nextafterf32x (_Float32x __x, _Float32x __y) throw (); extern _Float32x __nextafterf32x (_Float32x __x, _Float32x __y) throw (); + + + + + + +extern _Float32x nextdownf32x (_Float32x __x) throw (); extern _Float32x __nextdownf32x (_Float32x __x) throw (); + +extern _Float32x nextupf32x (_Float32x __x) throw (); extern _Float32x __nextupf32x (_Float32x __x) throw (); + + + +extern _Float32x remainderf32x (_Float32x __x, _Float32x __y) throw (); extern _Float32x __remainderf32x (_Float32x __x, _Float32x __y) throw (); + + + +extern _Float32x scalbnf32x (_Float32x __x, int __n) throw (); extern _Float32x __scalbnf32x (_Float32x __x, int __n) throw (); + + + +extern int ilogbf32x (_Float32x __x) throw (); extern int __ilogbf32x (_Float32x __x) throw (); + + + + +extern long int llogbf32x (_Float32x __x) throw (); extern long int __llogbf32x (_Float32x __x) throw (); + + + + +extern _Float32x scalblnf32x (_Float32x __x, long int __n) throw (); extern _Float32x __scalblnf32x (_Float32x __x, long int __n) throw (); + + + +extern _Float32x nearbyintf32x (_Float32x __x) throw (); extern _Float32x __nearbyintf32x (_Float32x __x) throw (); + + + +extern _Float32x roundf32x (_Float32x __x) throw () __attribute__ ((__const__)); extern _Float32x __roundf32x (_Float32x __x) throw () __attribute__ ((__const__)); + + + +extern _Float32x truncf32x (_Float32x __x) throw () __attribute__ ((__const__)); extern _Float32x __truncf32x (_Float32x __x) throw () __attribute__ ((__const__)); + + + + +extern _Float32x remquof32x (_Float32x __x, _Float32x __y, int *__quo) throw (); extern _Float32x __remquof32x (_Float32x __x, _Float32x __y, int *__quo) throw (); + + + + + + +extern long int lrintf32x (_Float32x __x) throw (); extern long int __lrintf32x (_Float32x __x) throw (); +__extension__ +extern long long int llrintf32x (_Float32x __x) throw (); extern long long int __llrintf32x (_Float32x __x) throw (); + + + +extern long int lroundf32x (_Float32x __x) throw (); extern long int __lroundf32x (_Float32x __x) throw (); +__extension__ +extern long long int llroundf32x (_Float32x __x) throw (); extern long long int __llroundf32x (_Float32x __x) throw (); + + + +extern _Float32x fdimf32x (_Float32x __x, _Float32x __y) throw (); extern _Float32x __fdimf32x (_Float32x __x, _Float32x __y) throw (); + + +extern _Float32x fmaxf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); extern _Float32x __fmaxf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); + + +extern _Float32x fminf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); extern _Float32x __fminf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); + + +extern _Float32x fmaf32x (_Float32x __x, _Float32x __y, _Float32x __z) throw (); extern _Float32x __fmaf32x (_Float32x __x, _Float32x __y, _Float32x __z) throw (); + + + + +extern _Float32x roundevenf32x (_Float32x __x) throw () __attribute__ ((__const__)); extern _Float32x __roundevenf32x (_Float32x __x) throw () __attribute__ ((__const__)); + + + +extern __intmax_t fromfpf32x (_Float32x __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpf32x (_Float32x __x, int __round, unsigned int __width) throw () + ; + + + +extern __uintmax_t ufromfpf32x (_Float32x __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpf32x (_Float32x __x, int __round, unsigned int __width) throw () + ; + + + + +extern __intmax_t fromfpxf32x (_Float32x __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpxf32x (_Float32x __x, int __round, unsigned int __width) throw () + ; + + + + +extern __uintmax_t ufromfpxf32x (_Float32x __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpxf32x (_Float32x __x, int __round, unsigned int __width) throw () + ; + + +extern _Float32x fmaxmagf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); extern _Float32x __fmaxmagf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); + + +extern _Float32x fminmagf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); extern _Float32x __fminmagf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); + + +extern int canonicalizef32x (_Float32x *__cx, const _Float32x *__x) throw (); + + + + +extern int totalorderf32x (const _Float32x *__x, const _Float32x *__y) throw () + + __attribute__ ((__pure__)); + + +extern int totalordermagf32x (const _Float32x *__x, const _Float32x *__y) throw () + + __attribute__ ((__pure__)); + + +extern _Float32x getpayloadf32x (const _Float32x *__x) throw (); extern _Float32x __getpayloadf32x (const _Float32x *__x) throw (); + + +extern int setpayloadf32x (_Float32x *__x, _Float32x __payload) throw (); + + +extern int setpayloadsigf32x (_Float32x *__x, _Float32x __payload) throw (); +# 441 "/usr/include/math.h" 2 3 4 +# 457 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern _Float64x acosf64x (_Float64x __x) throw (); extern _Float64x __acosf64x (_Float64x __x) throw (); + +extern _Float64x asinf64x (_Float64x __x) throw (); extern _Float64x __asinf64x (_Float64x __x) throw (); + +extern _Float64x atanf64x (_Float64x __x) throw (); extern _Float64x __atanf64x (_Float64x __x) throw (); + +extern _Float64x atan2f64x (_Float64x __y, _Float64x __x) throw (); extern _Float64x __atan2f64x (_Float64x __y, _Float64x __x) throw (); + + + extern _Float64x cosf64x (_Float64x __x) throw (); extern _Float64x __cosf64x (_Float64x __x) throw (); + + extern _Float64x sinf64x (_Float64x __x) throw (); extern _Float64x __sinf64x (_Float64x __x) throw (); + +extern _Float64x tanf64x (_Float64x __x) throw (); extern _Float64x __tanf64x (_Float64x __x) throw (); + + + + +extern _Float64x coshf64x (_Float64x __x) throw (); extern _Float64x __coshf64x (_Float64x __x) throw (); + +extern _Float64x sinhf64x (_Float64x __x) throw (); extern _Float64x __sinhf64x (_Float64x __x) throw (); + +extern _Float64x tanhf64x (_Float64x __x) throw (); extern _Float64x __tanhf64x (_Float64x __x) throw (); + + + + extern void sincosf64x (_Float64x __x, _Float64x *__sinx, _Float64x *__cosx) throw (); extern void __sincosf64x (_Float64x __x, _Float64x *__sinx, _Float64x *__cosx) throw () + ; + + + + +extern _Float64x acoshf64x (_Float64x __x) throw (); extern _Float64x __acoshf64x (_Float64x __x) throw (); + +extern _Float64x asinhf64x (_Float64x __x) throw (); extern _Float64x __asinhf64x (_Float64x __x) throw (); + +extern _Float64x atanhf64x (_Float64x __x) throw (); extern _Float64x __atanhf64x (_Float64x __x) throw (); + + + + + + extern _Float64x expf64x (_Float64x __x) throw (); extern _Float64x __expf64x (_Float64x __x) throw (); + + +extern _Float64x frexpf64x (_Float64x __x, int *__exponent) throw (); extern _Float64x __frexpf64x (_Float64x __x, int *__exponent) throw (); + + +extern _Float64x ldexpf64x (_Float64x __x, int __exponent) throw (); extern _Float64x __ldexpf64x (_Float64x __x, int __exponent) throw (); + + + extern _Float64x logf64x (_Float64x __x) throw (); extern _Float64x __logf64x (_Float64x __x) throw (); + + +extern _Float64x log10f64x (_Float64x __x) throw (); extern _Float64x __log10f64x (_Float64x __x) throw (); + + +extern _Float64x modff64x (_Float64x __x, _Float64x *__iptr) throw (); extern _Float64x __modff64x (_Float64x __x, _Float64x *__iptr) throw () __attribute__ ((__nonnull__ (2))); + + + +extern _Float64x exp10f64x (_Float64x __x) throw (); extern _Float64x __exp10f64x (_Float64x __x) throw (); + + + + +extern _Float64x expm1f64x (_Float64x __x) throw (); extern _Float64x __expm1f64x (_Float64x __x) throw (); + + +extern _Float64x log1pf64x (_Float64x __x) throw (); extern _Float64x __log1pf64x (_Float64x __x) throw (); + + +extern _Float64x logbf64x (_Float64x __x) throw (); extern _Float64x __logbf64x (_Float64x __x) throw (); + + + + +extern _Float64x exp2f64x (_Float64x __x) throw (); extern _Float64x __exp2f64x (_Float64x __x) throw (); + + +extern _Float64x log2f64x (_Float64x __x) throw (); extern _Float64x __log2f64x (_Float64x __x) throw (); + + + + + + + extern _Float64x powf64x (_Float64x __x, _Float64x __y) throw (); extern _Float64x __powf64x (_Float64x __x, _Float64x __y) throw (); + + +extern _Float64x sqrtf64x (_Float64x __x) throw (); extern _Float64x __sqrtf64x (_Float64x __x) throw (); + + + +extern _Float64x hypotf64x (_Float64x __x, _Float64x __y) throw (); extern _Float64x __hypotf64x (_Float64x __x, _Float64x __y) throw (); + + + + +extern _Float64x cbrtf64x (_Float64x __x) throw (); extern _Float64x __cbrtf64x (_Float64x __x) throw (); + + + + + + +extern _Float64x ceilf64x (_Float64x __x) throw () __attribute__ ((__const__)); extern _Float64x __ceilf64x (_Float64x __x) throw () __attribute__ ((__const__)); + + +extern _Float64x fabsf64x (_Float64x __x) throw () __attribute__ ((__const__)); extern _Float64x __fabsf64x (_Float64x __x) throw () __attribute__ ((__const__)); + + +extern _Float64x floorf64x (_Float64x __x) throw () __attribute__ ((__const__)); extern _Float64x __floorf64x (_Float64x __x) throw () __attribute__ ((__const__)); + + +extern _Float64x fmodf64x (_Float64x __x, _Float64x __y) throw (); extern _Float64x __fmodf64x (_Float64x __x, _Float64x __y) throw (); +# 196 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern _Float64x copysignf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); extern _Float64x __copysignf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); + + + + +extern _Float64x nanf64x (const char *__tagb) throw (); extern _Float64x __nanf64x (const char *__tagb) throw (); +# 217 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern _Float64x j0f64x (_Float64x) throw (); extern _Float64x __j0f64x (_Float64x) throw (); +extern _Float64x j1f64x (_Float64x) throw (); extern _Float64x __j1f64x (_Float64x) throw (); +extern _Float64x jnf64x (int, _Float64x) throw (); extern _Float64x __jnf64x (int, _Float64x) throw (); +extern _Float64x y0f64x (_Float64x) throw (); extern _Float64x __y0f64x (_Float64x) throw (); +extern _Float64x y1f64x (_Float64x) throw (); extern _Float64x __y1f64x (_Float64x) throw (); +extern _Float64x ynf64x (int, _Float64x) throw (); extern _Float64x __ynf64x (int, _Float64x) throw (); + + + + + +extern _Float64x erff64x (_Float64x) throw (); extern _Float64x __erff64x (_Float64x) throw (); +extern _Float64x erfcf64x (_Float64x) throw (); extern _Float64x __erfcf64x (_Float64x) throw (); +extern _Float64x lgammaf64x (_Float64x) throw (); extern _Float64x __lgammaf64x (_Float64x) throw (); + + + + +extern _Float64x tgammaf64x (_Float64x) throw (); extern _Float64x __tgammaf64x (_Float64x) throw (); +# 249 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 +extern _Float64x lgammaf64x_r (_Float64x, int *__signgamp) throw (); extern _Float64x __lgammaf64x_r (_Float64x, int *__signgamp) throw (); + + + + + + +extern _Float64x rintf64x (_Float64x __x) throw (); extern _Float64x __rintf64x (_Float64x __x) throw (); + + +extern _Float64x nextafterf64x (_Float64x __x, _Float64x __y) throw (); extern _Float64x __nextafterf64x (_Float64x __x, _Float64x __y) throw (); + + + + + + +extern _Float64x nextdownf64x (_Float64x __x) throw (); extern _Float64x __nextdownf64x (_Float64x __x) throw (); + +extern _Float64x nextupf64x (_Float64x __x) throw (); extern _Float64x __nextupf64x (_Float64x __x) throw (); + + + +extern _Float64x remainderf64x (_Float64x __x, _Float64x __y) throw (); extern _Float64x __remainderf64x (_Float64x __x, _Float64x __y) throw (); + + + +extern _Float64x scalbnf64x (_Float64x __x, int __n) throw (); extern _Float64x __scalbnf64x (_Float64x __x, int __n) throw (); + + + +extern int ilogbf64x (_Float64x __x) throw (); extern int __ilogbf64x (_Float64x __x) throw (); + + + + +extern long int llogbf64x (_Float64x __x) throw (); extern long int __llogbf64x (_Float64x __x) throw (); + + + + +extern _Float64x scalblnf64x (_Float64x __x, long int __n) throw (); extern _Float64x __scalblnf64x (_Float64x __x, long int __n) throw (); + + + +extern _Float64x nearbyintf64x (_Float64x __x) throw (); extern _Float64x __nearbyintf64x (_Float64x __x) throw (); + + + +extern _Float64x roundf64x (_Float64x __x) throw () __attribute__ ((__const__)); extern _Float64x __roundf64x (_Float64x __x) throw () __attribute__ ((__const__)); + + + +extern _Float64x truncf64x (_Float64x __x) throw () __attribute__ ((__const__)); extern _Float64x __truncf64x (_Float64x __x) throw () __attribute__ ((__const__)); + + + + +extern _Float64x remquof64x (_Float64x __x, _Float64x __y, int *__quo) throw (); extern _Float64x __remquof64x (_Float64x __x, _Float64x __y, int *__quo) throw (); + + + + + + +extern long int lrintf64x (_Float64x __x) throw (); extern long int __lrintf64x (_Float64x __x) throw (); +__extension__ +extern long long int llrintf64x (_Float64x __x) throw (); extern long long int __llrintf64x (_Float64x __x) throw (); + + + +extern long int lroundf64x (_Float64x __x) throw (); extern long int __lroundf64x (_Float64x __x) throw (); +__extension__ +extern long long int llroundf64x (_Float64x __x) throw (); extern long long int __llroundf64x (_Float64x __x) throw (); + + + +extern _Float64x fdimf64x (_Float64x __x, _Float64x __y) throw (); extern _Float64x __fdimf64x (_Float64x __x, _Float64x __y) throw (); + + +extern _Float64x fmaxf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); extern _Float64x __fmaxf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); + + +extern _Float64x fminf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); extern _Float64x __fminf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); + + +extern _Float64x fmaf64x (_Float64x __x, _Float64x __y, _Float64x __z) throw (); extern _Float64x __fmaf64x (_Float64x __x, _Float64x __y, _Float64x __z) throw (); + + + + +extern _Float64x roundevenf64x (_Float64x __x) throw () __attribute__ ((__const__)); extern _Float64x __roundevenf64x (_Float64x __x) throw () __attribute__ ((__const__)); + + + +extern __intmax_t fromfpf64x (_Float64x __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpf64x (_Float64x __x, int __round, unsigned int __width) throw () + ; + + + +extern __uintmax_t ufromfpf64x (_Float64x __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpf64x (_Float64x __x, int __round, unsigned int __width) throw () + ; + + + + +extern __intmax_t fromfpxf64x (_Float64x __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpxf64x (_Float64x __x, int __round, unsigned int __width) throw () + ; + + + + +extern __uintmax_t ufromfpxf64x (_Float64x __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpxf64x (_Float64x __x, int __round, unsigned int __width) throw () + ; + + +extern _Float64x fmaxmagf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); extern _Float64x __fmaxmagf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); + + +extern _Float64x fminmagf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); extern _Float64x __fminmagf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); + + +extern int canonicalizef64x (_Float64x *__cx, const _Float64x *__x) throw (); + + + + +extern int totalorderf64x (const _Float64x *__x, const _Float64x *__y) throw () + + __attribute__ ((__pure__)); + + +extern int totalordermagf64x (const _Float64x *__x, const _Float64x *__y) throw () + + __attribute__ ((__pure__)); + + +extern _Float64x getpayloadf64x (const _Float64x *__x) throw (); extern _Float64x __getpayloadf64x (const _Float64x *__x) throw (); + + +extern int setpayloadf64x (_Float64x *__x, _Float64x __payload) throw (); + + +extern int setpayloadsigf64x (_Float64x *__x, _Float64x __payload) throw (); +# 458 "/usr/include/math.h" 2 3 4 +# 503 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 3 4 +extern float fadd (double __x, double __y) throw (); + + +extern float fdiv (double __x, double __y) throw (); + + +extern float fmul (double __x, double __y) throw (); + + +extern float fsub (double __x, double __y) throw (); +# 504 "/usr/include/math.h" 2 3 4 +# 517 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 3 4 +extern float faddl (long double __x, long double __y) throw (); + + +extern float fdivl (long double __x, long double __y) throw (); + + +extern float fmull (long double __x, long double __y) throw (); + + +extern float fsubl (long double __x, long double __y) throw (); +# 518 "/usr/include/math.h" 2 3 4 +# 537 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 3 4 +extern double daddl (long double __x, long double __y) throw (); + + +extern double ddivl (long double __x, long double __y) throw (); + + +extern double dmull (long double __x, long double __y) throw (); + + +extern double dsubl (long double __x, long double __y) throw (); +# 538 "/usr/include/math.h" 2 3 4 +# 616 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 3 4 +extern _Float32 f32addf32x (_Float32x __x, _Float32x __y) throw (); + + +extern _Float32 f32divf32x (_Float32x __x, _Float32x __y) throw (); + + +extern _Float32 f32mulf32x (_Float32x __x, _Float32x __y) throw (); + + +extern _Float32 f32subf32x (_Float32x __x, _Float32x __y) throw (); +# 617 "/usr/include/math.h" 2 3 4 +# 626 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 3 4 +extern _Float32 f32addf64 (_Float64 __x, _Float64 __y) throw (); + + +extern _Float32 f32divf64 (_Float64 __x, _Float64 __y) throw (); + + +extern _Float32 f32mulf64 (_Float64 __x, _Float64 __y) throw (); + + +extern _Float32 f32subf64 (_Float64 __x, _Float64 __y) throw (); +# 627 "/usr/include/math.h" 2 3 4 +# 636 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 3 4 +extern _Float32 f32addf64x (_Float64x __x, _Float64x __y) throw (); + + +extern _Float32 f32divf64x (_Float64x __x, _Float64x __y) throw (); + + +extern _Float32 f32mulf64x (_Float64x __x, _Float64x __y) throw (); + + +extern _Float32 f32subf64x (_Float64x __x, _Float64x __y) throw (); +# 637 "/usr/include/math.h" 2 3 4 +# 666 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 3 4 +extern _Float32x f32xaddf64 (_Float64 __x, _Float64 __y) throw (); + + +extern _Float32x f32xdivf64 (_Float64 __x, _Float64 __y) throw (); + + +extern _Float32x f32xmulf64 (_Float64 __x, _Float64 __y) throw (); + + +extern _Float32x f32xsubf64 (_Float64 __x, _Float64 __y) throw (); +# 667 "/usr/include/math.h" 2 3 4 +# 676 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 3 4 +extern _Float32x f32xaddf64x (_Float64x __x, _Float64x __y) throw (); + + +extern _Float32x f32xdivf64x (_Float64x __x, _Float64x __y) throw (); + + +extern _Float32x f32xmulf64x (_Float64x __x, _Float64x __y) throw (); + + +extern _Float32x f32xsubf64x (_Float64x __x, _Float64x __y) throw (); +# 677 "/usr/include/math.h" 2 3 4 +# 706 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 +# 24 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 3 4 +extern _Float64 f64addf64x (_Float64x __x, _Float64x __y) throw (); + + +extern _Float64 f64divf64x (_Float64x __x, _Float64x __y) throw (); + + +extern _Float64 f64mulf64x (_Float64x __x, _Float64x __y) throw (); + + +extern _Float64 f64subf64x (_Float64x __x, _Float64x __y) throw (); +# 707 "/usr/include/math.h" 2 3 4 +# 773 "/usr/include/math.h" 3 4 +extern int signgam; +# 853 "/usr/include/math.h" 3 4 +enum + { + FP_NAN = + + 0, + FP_INFINITE = + + 1, + FP_ZERO = + + 2, + FP_SUBNORMAL = + + 3, + FP_NORMAL = + + 4 + }; +# 973 "/usr/include/math.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/iscanonical.h" 1 3 4 +# 23 "/usr/include/x86_64-linux-gnu/bits/iscanonical.h" 3 4 +extern int __iscanonicall (long double __x) + throw () __attribute__ ((__const__)); +# 46 "/usr/include/x86_64-linux-gnu/bits/iscanonical.h" 3 4 +extern "C++" { +inline int iscanonical (float __val) { return ((void) (__typeof (__val)) (__val), 1); } +inline int iscanonical (double __val) { return ((void) (__typeof (__val)) (__val), 1); } +inline int iscanonical (long double __val) { return __iscanonicall (__val); } + + + +} +# 974 "/usr/include/math.h" 2 3 4 +# 985 "/usr/include/math.h" 3 4 +extern "C++" { +inline int issignaling (float __val) { return __issignalingf (__val); } +inline int issignaling (double __val) { return __issignaling (__val); } +inline int +issignaling (long double __val) +{ + + + + return __issignalingl (__val); + +} + + + + + +} +# 1016 "/usr/include/math.h" 3 4 +extern "C++" { +# 1047 "/usr/include/math.h" 3 4 +template inline bool +iszero (__T __val) +{ + return __val == 0; +} + +} +# 1278 "/usr/include/math.h" 3 4 +extern "C++" { +template struct __iseqsig_type; + +template<> struct __iseqsig_type +{ + static int __call (float __x, float __y) throw () + { + return __iseqsigf (__x, __y); + } +}; + +template<> struct __iseqsig_type +{ + static int __call (double __x, double __y) throw () + { + return __iseqsig (__x, __y); + } +}; + +template<> struct __iseqsig_type +{ + static int __call (long double __x, long double __y) throw () + { + + return __iseqsigl (__x, __y); + + + + } +}; +# 1321 "/usr/include/math.h" 3 4 +template +inline int +iseqsig (_T1 __x, _T2 __y) throw () +{ + + typedef decltype (((__x) + (__y) + 0.0f)) _T3; + + + + return __iseqsig_type<_T3>::__call (__x, __y); +} + +} + + + + +} +# 46 "/usr/include/c++/9/cmath" 2 3 + +# 1 "/usr/include/c++/9/bits/std_abs.h" 1 3 +# 33 "/usr/include/c++/9/bits/std_abs.h" 3 + +# 34 "/usr/include/c++/9/bits/std_abs.h" 3 + + + + +# 1 "/usr/include/stdlib.h" 1 3 4 +# 25 "/usr/include/stdlib.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/libc-header-start.h" 1 3 4 +# 26 "/usr/include/stdlib.h" 2 3 4 + + + + + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h" 1 3 4 +# 32 "/usr/include/stdlib.h" 2 3 4 + +extern "C" { + + + + + +# 1 "/usr/include/x86_64-linux-gnu/bits/waitflags.h" 1 3 4 +# 52 "/usr/include/x86_64-linux-gnu/bits/waitflags.h" 3 4 +typedef enum +{ + P_ALL, + P_PID, + P_PGID +} idtype_t; +# 40 "/usr/include/stdlib.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/waitstatus.h" 1 3 4 +# 41 "/usr/include/stdlib.h" 2 3 4 +# 58 "/usr/include/stdlib.h" 3 4 +typedef struct + { + int quot; + int rem; + } div_t; + + + +typedef struct + { + long int quot; + long int rem; + } ldiv_t; + + + + + +__extension__ typedef struct + { + long long int quot; + long long int rem; + } lldiv_t; +# 97 "/usr/include/stdlib.h" 3 4 +extern size_t __ctype_get_mb_cur_max (void) throw () ; + + + +extern double atof (const char *__nptr) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; + +extern int atoi (const char *__nptr) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; + +extern long int atol (const char *__nptr) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; + + + +__extension__ extern long long int atoll (const char *__nptr) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; + + + +extern double strtod (const char *__restrict __nptr, + char **__restrict __endptr) + throw () __attribute__ ((__nonnull__ (1))); + + + +extern float strtof (const char *__restrict __nptr, + char **__restrict __endptr) throw () __attribute__ ((__nonnull__ (1))); + +extern long double strtold (const char *__restrict __nptr, + char **__restrict __endptr) + throw () __attribute__ ((__nonnull__ (1))); +# 140 "/usr/include/stdlib.h" 3 4 +extern _Float32 strtof32 (const char *__restrict __nptr, + char **__restrict __endptr) + throw () __attribute__ ((__nonnull__ (1))); + + + +extern _Float64 strtof64 (const char *__restrict __nptr, + char **__restrict __endptr) + throw () __attribute__ ((__nonnull__ (1))); +# 158 "/usr/include/stdlib.h" 3 4 +extern _Float32x strtof32x (const char *__restrict __nptr, + char **__restrict __endptr) + throw () __attribute__ ((__nonnull__ (1))); + + + +extern _Float64x strtof64x (const char *__restrict __nptr, + char **__restrict __endptr) + throw () __attribute__ ((__nonnull__ (1))); +# 176 "/usr/include/stdlib.h" 3 4 +extern long int strtol (const char *__restrict __nptr, + char **__restrict __endptr, int __base) + throw () __attribute__ ((__nonnull__ (1))); + +extern unsigned long int strtoul (const char *__restrict __nptr, + char **__restrict __endptr, int __base) + throw () __attribute__ ((__nonnull__ (1))); + + + +__extension__ +extern long long int strtoq (const char *__restrict __nptr, + char **__restrict __endptr, int __base) + throw () __attribute__ ((__nonnull__ (1))); + +__extension__ +extern unsigned long long int strtouq (const char *__restrict __nptr, + char **__restrict __endptr, int __base) + throw () __attribute__ ((__nonnull__ (1))); + + + + +__extension__ +extern long long int strtoll (const char *__restrict __nptr, + char **__restrict __endptr, int __base) + throw () __attribute__ ((__nonnull__ (1))); + +__extension__ +extern unsigned long long int strtoull (const char *__restrict __nptr, + char **__restrict __endptr, int __base) + throw () __attribute__ ((__nonnull__ (1))); + + + + +extern int strfromd (char *__dest, size_t __size, const char *__format, + double __f) + throw () __attribute__ ((__nonnull__ (3))); + +extern int strfromf (char *__dest, size_t __size, const char *__format, + float __f) + throw () __attribute__ ((__nonnull__ (3))); + +extern int strfroml (char *__dest, size_t __size, const char *__format, + long double __f) + throw () __attribute__ ((__nonnull__ (3))); +# 232 "/usr/include/stdlib.h" 3 4 +extern int strfromf32 (char *__dest, size_t __size, const char * __format, + _Float32 __f) + throw () __attribute__ ((__nonnull__ (3))); + + + +extern int strfromf64 (char *__dest, size_t __size, const char * __format, + _Float64 __f) + throw () __attribute__ ((__nonnull__ (3))); +# 250 "/usr/include/stdlib.h" 3 4 +extern int strfromf32x (char *__dest, size_t __size, const char * __format, + _Float32x __f) + throw () __attribute__ ((__nonnull__ (3))); + + + +extern int strfromf64x (char *__dest, size_t __size, const char * __format, + _Float64x __f) + throw () __attribute__ ((__nonnull__ (3))); +# 274 "/usr/include/stdlib.h" 3 4 +extern long int strtol_l (const char *__restrict __nptr, + char **__restrict __endptr, int __base, + locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 4))); + +extern unsigned long int strtoul_l (const char *__restrict __nptr, + char **__restrict __endptr, + int __base, locale_t __loc) + throw () __attribute__ ((__nonnull__ (1, 4))); + +__extension__ +extern long long int strtoll_l (const char *__restrict __nptr, + char **__restrict __endptr, int __base, + locale_t __loc) + throw () __attribute__ ((__nonnull__ (1, 4))); + +__extension__ +extern unsigned long long int strtoull_l (const char *__restrict __nptr, + char **__restrict __endptr, + int __base, locale_t __loc) + throw () __attribute__ ((__nonnull__ (1, 4))); + +extern double strtod_l (const char *__restrict __nptr, + char **__restrict __endptr, locale_t __loc) + throw () __attribute__ ((__nonnull__ (1, 3))); + +extern float strtof_l (const char *__restrict __nptr, + char **__restrict __endptr, locale_t __loc) + throw () __attribute__ ((__nonnull__ (1, 3))); + +extern long double strtold_l (const char *__restrict __nptr, + char **__restrict __endptr, + locale_t __loc) + throw () __attribute__ ((__nonnull__ (1, 3))); +# 316 "/usr/include/stdlib.h" 3 4 +extern _Float32 strtof32_l (const char *__restrict __nptr, + char **__restrict __endptr, + locale_t __loc) + throw () __attribute__ ((__nonnull__ (1, 3))); + + + +extern _Float64 strtof64_l (const char *__restrict __nptr, + char **__restrict __endptr, + locale_t __loc) + throw () __attribute__ ((__nonnull__ (1, 3))); +# 337 "/usr/include/stdlib.h" 3 4 +extern _Float32x strtof32x_l (const char *__restrict __nptr, + char **__restrict __endptr, + locale_t __loc) + throw () __attribute__ ((__nonnull__ (1, 3))); + + + +extern _Float64x strtof64x_l (const char *__restrict __nptr, + char **__restrict __endptr, + locale_t __loc) + throw () __attribute__ ((__nonnull__ (1, 3))); +# 385 "/usr/include/stdlib.h" 3 4 +extern char *l64a (long int __n) throw () ; + + +extern long int a64l (const char *__s) + throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; + + + + +# 1 "/usr/include/x86_64-linux-gnu/sys/types.h" 1 3 4 +# 27 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4 +extern "C" { + + + + + +typedef __u_char u_char; +typedef __u_short u_short; +typedef __u_int u_int; +typedef __u_long u_long; +typedef __quad_t quad_t; +typedef __u_quad_t u_quad_t; +typedef __fsid_t fsid_t; + + +typedef __loff_t loff_t; + + + + +typedef __ino_t ino_t; + + + + + + +typedef __ino64_t ino64_t; + + + + +typedef __dev_t dev_t; + + + + +typedef __gid_t gid_t; + + + + +typedef __mode_t mode_t; + + + + +typedef __nlink_t nlink_t; + + + + +typedef __uid_t uid_t; + + + + + +typedef __off_t off_t; + + + + + + +typedef __off64_t off64_t; +# 103 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4 +typedef __id_t id_t; + + + + +typedef __ssize_t ssize_t; + + + + + +typedef __daddr_t daddr_t; +typedef __caddr_t caddr_t; + + + + + +typedef __key_t key_t; +# 134 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4 +typedef __useconds_t useconds_t; + + + +typedef __suseconds_t suseconds_t; + + + + + +# 1 "/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h" 1 3 4 +# 145 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 + + + +typedef unsigned long int ulong; +typedef unsigned short int ushort; +typedef unsigned int uint; + + + + +# 1 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h" 1 3 4 +# 24 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h" 3 4 +typedef __int8_t int8_t; +typedef __int16_t int16_t; +typedef __int32_t int32_t; +typedef __int64_t int64_t; +# 156 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 + + +typedef __uint8_t u_int8_t; +typedef __uint16_t u_int16_t; +typedef __uint32_t u_int32_t; +typedef __uint64_t u_int64_t; + + +typedef int register_t __attribute__ ((__mode__ (__word__))); +# 176 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4 +# 1 "/usr/include/endian.h" 1 3 4 +# 35 "/usr/include/endian.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 1 3 4 +# 33 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 3 4 +static __inline __uint16_t +__bswap_16 (__uint16_t __bsx) +{ + + return __builtin_bswap16 (__bsx); + + + +} + + + + + + +static __inline __uint32_t +__bswap_32 (__uint32_t __bsx) +{ + + return __builtin_bswap32 (__bsx); + + + +} +# 69 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 3 4 +__extension__ static __inline __uint64_t +__bswap_64 (__uint64_t __bsx) +{ + + return __builtin_bswap64 (__bsx); + + + +} +# 36 "/usr/include/endian.h" 2 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/uintn-identity.h" 1 3 4 +# 32 "/usr/include/x86_64-linux-gnu/bits/uintn-identity.h" 3 4 +static __inline __uint16_t +__uint16_identity (__uint16_t __x) +{ + return __x; +} + +static __inline __uint32_t +__uint32_identity (__uint32_t __x) +{ + return __x; +} + +static __inline __uint64_t +__uint64_identity (__uint64_t __x) +{ + return __x; +} +# 37 "/usr/include/endian.h" 2 3 4 +# 177 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 + + +# 1 "/usr/include/x86_64-linux-gnu/sys/select.h" 1 3 4 +# 30 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/select.h" 1 3 4 +# 22 "/usr/include/x86_64-linux-gnu/bits/select.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 +# 23 "/usr/include/x86_64-linux-gnu/bits/select.h" 2 3 4 +# 31 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4 + + +# 1 "/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h" 1 3 4 + + + +# 1 "/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h" 1 3 4 + + + + +typedef struct +{ + unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))]; +} __sigset_t; +# 5 "/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h" 2 3 4 + + +typedef __sigset_t sigset_t; +# 34 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4 +# 49 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 +typedef long int __fd_mask; +# 59 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 +typedef struct + { + + + + __fd_mask fds_bits[1024 / (8 * (int) sizeof (__fd_mask))]; + + + + + + } fd_set; + + + + + + +typedef __fd_mask fd_mask; +# 91 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 +extern "C" { +# 101 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 +extern int select (int __nfds, fd_set *__restrict __readfds, + fd_set *__restrict __writefds, + fd_set *__restrict __exceptfds, + struct timeval *__restrict __timeout); +# 113 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 +extern int pselect (int __nfds, fd_set *__restrict __readfds, + fd_set *__restrict __writefds, + fd_set *__restrict __exceptfds, + const struct timespec *__restrict __timeout, + const __sigset_t *__restrict __sigmask); +# 126 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 +} +# 180 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 + + + + + +typedef __blksize_t blksize_t; + + + + + + +typedef __blkcnt_t blkcnt_t; + + + +typedef __fsblkcnt_t fsblkcnt_t; + + + +typedef __fsfilcnt_t fsfilcnt_t; +# 219 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4 +typedef __blkcnt64_t blkcnt64_t; +typedef __fsblkcnt64_t fsblkcnt64_t; +typedef __fsfilcnt64_t fsfilcnt64_t; + + + + + +# 1 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 1 3 4 +# 23 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" 1 3 4 +# 44 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h" 1 3 4 +# 21 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 +# 22 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h" 2 3 4 +# 45 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" 2 3 4 + + + + +typedef struct __pthread_internal_list +{ + struct __pthread_internal_list *__prev; + struct __pthread_internal_list *__next; +} __pthread_list_t; + +typedef struct __pthread_internal_slist +{ + struct __pthread_internal_slist *__next; +} __pthread_slist_t; +# 74 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/struct_mutex.h" 1 3 4 +# 22 "/usr/include/x86_64-linux-gnu/bits/struct_mutex.h" 3 4 +struct __pthread_mutex_s +{ + int __lock; + unsigned int __count; + int __owner; + + unsigned int __nusers; + + + + int __kind; + + short __spins; + short __elision; + __pthread_list_t __list; +# 53 "/usr/include/x86_64-linux-gnu/bits/struct_mutex.h" 3 4 +}; +# 75 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" 2 3 4 +# 87 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h" 1 3 4 +# 23 "/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h" 3 4 +struct __pthread_rwlock_arch_t +{ + unsigned int __readers; + unsigned int __writers; + unsigned int __wrphase_futex; + unsigned int __writers_futex; + unsigned int __pad3; + unsigned int __pad4; + + int __cur_writer; + int __shared; + signed char __rwelision; + + + + + unsigned char __pad1[7]; + + + unsigned long int __pad2; + + + unsigned int __flags; +# 55 "/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h" 3 4 +}; +# 88 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" 2 3 4 + + + + +struct __pthread_cond_s +{ + __extension__ union + { + __extension__ unsigned long long int __wseq; + struct + { + unsigned int __low; + unsigned int __high; + } __wseq32; + }; + __extension__ union + { + __extension__ unsigned long long int __g1_start; + struct + { + unsigned int __low; + unsigned int __high; + } __g1_start32; + }; + unsigned int __g_refs[2] ; + unsigned int __g_size[2]; + unsigned int __g1_orig_size; + unsigned int __wrefs; + unsigned int __g_signals[2]; +}; +# 24 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 2 3 4 + + + +typedef unsigned long int pthread_t; + + + + +typedef union +{ + char __size[4]; + int __align; +} pthread_mutexattr_t; + + + + +typedef union +{ + char __size[4]; + int __align; +} pthread_condattr_t; + + + +typedef unsigned int pthread_key_t; + + + +typedef int pthread_once_t; + + +union pthread_attr_t +{ + char __size[56]; + long int __align; +}; + +typedef union pthread_attr_t pthread_attr_t; + + + + +typedef union +{ + struct __pthread_mutex_s __data; + char __size[40]; + long int __align; +} pthread_mutex_t; + + +typedef union +{ + struct __pthread_cond_s __data; + char __size[48]; + __extension__ long long int __align; +} pthread_cond_t; + + + + + +typedef union +{ + struct __pthread_rwlock_arch_t __data; + char __size[56]; + long int __align; +} pthread_rwlock_t; + +typedef union +{ + char __size[8]; + long int __align; +} pthread_rwlockattr_t; + + + + + +typedef volatile int pthread_spinlock_t; + + + + +typedef union +{ + char __size[32]; + long int __align; +} pthread_barrier_t; + +typedef union +{ + char __size[4]; + int __align; +} pthread_barrierattr_t; +# 228 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 + + +} +# 395 "/usr/include/stdlib.h" 2 3 4 + + + + + + +extern long int random (void) throw (); + + +extern void srandom (unsigned int __seed) throw (); + + + + + +extern char *initstate (unsigned int __seed, char *__statebuf, + size_t __statelen) throw () __attribute__ ((__nonnull__ (2))); + + + +extern char *setstate (char *__statebuf) throw () __attribute__ ((__nonnull__ (1))); + + + + + + + +struct random_data + { + int32_t *fptr; + int32_t *rptr; + int32_t *state; + int rand_type; + int rand_deg; + int rand_sep; + int32_t *end_ptr; + }; + +extern int random_r (struct random_data *__restrict __buf, + int32_t *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); + +extern int srandom_r (unsigned int __seed, struct random_data *__buf) + throw () __attribute__ ((__nonnull__ (2))); + +extern int initstate_r (unsigned int __seed, char *__restrict __statebuf, + size_t __statelen, + struct random_data *__restrict __buf) + throw () __attribute__ ((__nonnull__ (2, 4))); + +extern int setstate_r (char *__restrict __statebuf, + struct random_data *__restrict __buf) + throw () __attribute__ ((__nonnull__ (1, 2))); + + + + + +extern int rand (void) throw (); + +extern void srand (unsigned int __seed) throw (); + + + +extern int rand_r (unsigned int *__seed) throw (); + + + + + + + +extern double drand48 (void) throw (); +extern double erand48 (unsigned short int __xsubi[3]) throw () __attribute__ ((__nonnull__ (1))); + + +extern long int lrand48 (void) throw (); +extern long int nrand48 (unsigned short int __xsubi[3]) + throw () __attribute__ ((__nonnull__ (1))); + + +extern long int mrand48 (void) throw (); +extern long int jrand48 (unsigned short int __xsubi[3]) + throw () __attribute__ ((__nonnull__ (1))); + + +extern void srand48 (long int __seedval) throw (); +extern unsigned short int *seed48 (unsigned short int __seed16v[3]) + throw () __attribute__ ((__nonnull__ (1))); +extern void lcong48 (unsigned short int __param[7]) throw () __attribute__ ((__nonnull__ (1))); + + + + + +struct drand48_data + { + unsigned short int __x[3]; + unsigned short int __old_x[3]; + unsigned short int __c; + unsigned short int __init; + __extension__ unsigned long long int __a; + + }; + + +extern int drand48_r (struct drand48_data *__restrict __buffer, + double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); +extern int erand48_r (unsigned short int __xsubi[3], + struct drand48_data *__restrict __buffer, + double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); + + +extern int lrand48_r (struct drand48_data *__restrict __buffer, + long int *__restrict __result) + throw () __attribute__ ((__nonnull__ (1, 2))); +extern int nrand48_r (unsigned short int __xsubi[3], + struct drand48_data *__restrict __buffer, + long int *__restrict __result) + throw () __attribute__ ((__nonnull__ (1, 2))); + + +extern int mrand48_r (struct drand48_data *__restrict __buffer, + long int *__restrict __result) + throw () __attribute__ ((__nonnull__ (1, 2))); +extern int jrand48_r (unsigned short int __xsubi[3], + struct drand48_data *__restrict __buffer, + long int *__restrict __result) + throw () __attribute__ ((__nonnull__ (1, 2))); + + +extern int srand48_r (long int __seedval, struct drand48_data *__buffer) + throw () __attribute__ ((__nonnull__ (2))); + +extern int seed48_r (unsigned short int __seed16v[3], + struct drand48_data *__buffer) throw () __attribute__ ((__nonnull__ (1, 2))); + +extern int lcong48_r (unsigned short int __param[7], + struct drand48_data *__buffer) + throw () __attribute__ ((__nonnull__ (1, 2))); + + + + +extern void *malloc (size_t __size) throw () __attribute__ ((__malloc__)) + __attribute__ ((__alloc_size__ (1))) ; + +extern void *calloc (size_t __nmemb, size_t __size) + throw () __attribute__ ((__malloc__)) __attribute__ ((__alloc_size__ (1, 2))) ; + + + + + + +extern void *realloc (void *__ptr, size_t __size) + throw () __attribute__ ((__warn_unused_result__)) __attribute__ ((__alloc_size__ (2))); + + + + + + + +extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size) + throw () __attribute__ ((__warn_unused_result__)) + __attribute__ ((__alloc_size__ (2, 3))); + + + +extern void free (void *__ptr) throw (); + + +# 1 "/usr/include/alloca.h" 1 3 4 +# 24 "/usr/include/alloca.h" 3 4 +# 1 "/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h" 1 3 4 +# 25 "/usr/include/alloca.h" 2 3 4 + +extern "C" { + + + + + +extern void *alloca (size_t __size) throw (); + + + + + +} +# 569 "/usr/include/stdlib.h" 2 3 4 + + + + + +extern void *valloc (size_t __size) throw () __attribute__ ((__malloc__)) + __attribute__ ((__alloc_size__ (1))) ; + + + + +extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size) + throw () __attribute__ ((__nonnull__ (1))) ; + + + + +extern void *aligned_alloc (size_t __alignment, size_t __size) + throw () __attribute__ ((__malloc__)) __attribute__ ((__alloc_size__ (2))) ; + + + +extern void abort (void) throw () __attribute__ ((__noreturn__)); + + + +extern int atexit (void (*__func) (void)) throw () __attribute__ ((__nonnull__ (1))); + + + + +extern "C++" int at_quick_exit (void (*__func) (void)) + throw () __asm ("at_quick_exit") __attribute__ ((__nonnull__ (1))); +# 610 "/usr/include/stdlib.h" 3 4 +extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg) + throw () __attribute__ ((__nonnull__ (1))); + + + + + +extern void exit (int __status) throw () __attribute__ ((__noreturn__)); + + + + + +extern void quick_exit (int __status) throw () __attribute__ ((__noreturn__)); + + + + + +extern void _Exit (int __status) throw () __attribute__ ((__noreturn__)); + + + + +extern char *getenv (const char *__name) throw () __attribute__ ((__nonnull__ (1))) ; + + + + +extern char *secure_getenv (const char *__name) + throw () __attribute__ ((__nonnull__ (1))) ; + + + + + + +extern int putenv (char *__string) throw () __attribute__ ((__nonnull__ (1))); + + + + + +extern int setenv (const char *__name, const char *__value, int __replace) + throw () __attribute__ ((__nonnull__ (2))); + + +extern int unsetenv (const char *__name) throw () __attribute__ ((__nonnull__ (1))); + + + + + + +extern int clearenv (void) throw (); +# 675 "/usr/include/stdlib.h" 3 4 +extern char *mktemp (char *__template) throw () __attribute__ ((__nonnull__ (1))); +# 688 "/usr/include/stdlib.h" 3 4 +extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ; +# 698 "/usr/include/stdlib.h" 3 4 +extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) ; +# 710 "/usr/include/stdlib.h" 3 4 +extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) ; +# 720 "/usr/include/stdlib.h" 3 4 +extern int mkstemps64 (char *__template, int __suffixlen) + __attribute__ ((__nonnull__ (1))) ; +# 731 "/usr/include/stdlib.h" 3 4 +extern char *mkdtemp (char *__template) throw () __attribute__ ((__nonnull__ (1))) ; +# 742 "/usr/include/stdlib.h" 3 4 +extern int mkostemp (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) ; +# 752 "/usr/include/stdlib.h" 3 4 +extern int mkostemp64 (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) ; +# 762 "/usr/include/stdlib.h" 3 4 +extern int mkostemps (char *__template, int __suffixlen, int __flags) + __attribute__ ((__nonnull__ (1))) ; +# 774 "/usr/include/stdlib.h" 3 4 +extern int mkostemps64 (char *__template, int __suffixlen, int __flags) + __attribute__ ((__nonnull__ (1))) ; +# 784 "/usr/include/stdlib.h" 3 4 +extern int system (const char *__command) ; + + + + + +extern char *canonicalize_file_name (const char *__name) + throw () __attribute__ ((__nonnull__ (1))) ; +# 800 "/usr/include/stdlib.h" 3 4 +extern char *realpath (const char *__restrict __name, + char *__restrict __resolved) throw () ; + + + + + + +typedef int (*__compar_fn_t) (const void *, const void *); + + +typedef __compar_fn_t comparison_fn_t; + + + +typedef int (*__compar_d_fn_t) (const void *, const void *, void *); + + + + +extern void *bsearch (const void *__key, const void *__base, + size_t __nmemb, size_t __size, __compar_fn_t __compar) + __attribute__ ((__nonnull__ (1, 2, 5))) ; + + + + + + + +extern void qsort (void *__base, size_t __nmemb, size_t __size, + __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4))); + +extern void qsort_r (void *__base, size_t __nmemb, size_t __size, + __compar_d_fn_t __compar, void *__arg) + __attribute__ ((__nonnull__ (1, 4))); + + + + +extern int abs (int __x) throw () __attribute__ ((__const__)) ; +extern long int labs (long int __x) throw () __attribute__ ((__const__)) ; + + +__extension__ extern long long int llabs (long long int __x) + throw () __attribute__ ((__const__)) ; + + + + + + +extern div_t div (int __numer, int __denom) + throw () __attribute__ ((__const__)) ; +extern ldiv_t ldiv (long int __numer, long int __denom) + throw () __attribute__ ((__const__)) ; + + +__extension__ extern lldiv_t lldiv (long long int __numer, + long long int __denom) + throw () __attribute__ ((__const__)) ; +# 872 "/usr/include/stdlib.h" 3 4 +extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt, + int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) ; + + + + +extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, + int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) ; + + + + +extern char *gcvt (double __value, int __ndigit, char *__buf) + throw () __attribute__ ((__nonnull__ (3))) ; + + + + +extern char *qecvt (long double __value, int __ndigit, + int *__restrict __decpt, int *__restrict __sign) + throw () __attribute__ ((__nonnull__ (3, 4))) ; +extern char *qfcvt (long double __value, int __ndigit, + int *__restrict __decpt, int *__restrict __sign) + throw () __attribute__ ((__nonnull__ (3, 4))) ; +extern char *qgcvt (long double __value, int __ndigit, char *__buf) + throw () __attribute__ ((__nonnull__ (3))) ; + + + + +extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt, + int *__restrict __sign, char *__restrict __buf, + size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5))); +extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt, + int *__restrict __sign, char *__restrict __buf, + size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5))); + +extern int qecvt_r (long double __value, int __ndigit, + int *__restrict __decpt, int *__restrict __sign, + char *__restrict __buf, size_t __len) + throw () __attribute__ ((__nonnull__ (3, 4, 5))); +extern int qfcvt_r (long double __value, int __ndigit, + int *__restrict __decpt, int *__restrict __sign, + char *__restrict __buf, size_t __len) + throw () __attribute__ ((__nonnull__ (3, 4, 5))); + + + + + +extern int mblen (const char *__s, size_t __n) throw (); + + +extern int mbtowc (wchar_t *__restrict __pwc, + const char *__restrict __s, size_t __n) throw (); + + +extern int wctomb (char *__s, wchar_t __wchar) throw (); + + + +extern size_t mbstowcs (wchar_t *__restrict __pwcs, + const char *__restrict __s, size_t __n) throw (); + +extern size_t wcstombs (char *__restrict __s, + const wchar_t *__restrict __pwcs, size_t __n) + throw (); + + + + + + + +extern int rpmatch (const char *__response) throw () __attribute__ ((__nonnull__ (1))) ; +# 957 "/usr/include/stdlib.h" 3 4 +extern int getsubopt (char **__restrict __optionp, + char *const *__restrict __tokens, + char **__restrict __valuep) + throw () __attribute__ ((__nonnull__ (1, 2, 3))) ; + + + + + + + +extern int posix_openpt (int __oflag) ; + + + + + + + +extern int grantpt (int __fd) throw (); + + + +extern int unlockpt (int __fd) throw (); + + + + +extern char *ptsname (int __fd) throw () ; + + + + + + +extern int ptsname_r (int __fd, char *__buf, size_t __buflen) + throw () __attribute__ ((__nonnull__ (2))); + + +extern int getpt (void); + + + + + + +extern int getloadavg (double __loadavg[], int __nelem) + throw () __attribute__ ((__nonnull__ (1))); +# 1013 "/usr/include/stdlib.h" 3 4 +# 1 "/usr/include/x86_64-linux-gnu/bits/stdlib-float.h" 1 3 4 +# 1014 "/usr/include/stdlib.h" 2 3 4 +# 1023 "/usr/include/stdlib.h" 3 4 +} +# 39 "/usr/include/c++/9/bits/std_abs.h" 2 3 + + + + + + + +extern "C++" +{ +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + using ::abs; + + + inline long + abs(long __i) { return __builtin_labs(__i); } + + + + inline long long + abs(long long __x) { return __builtin_llabs (__x); } +# 70 "/usr/include/c++/9/bits/std_abs.h" 3 + inline constexpr double + abs(double __x) + { return __builtin_fabs(__x); } + + inline constexpr float + abs(float __x) + { return __builtin_fabsf(__x); } + + inline constexpr long double + abs(long double __x) + { return __builtin_fabsl(__x); } + + + + inline constexpr __int128 + abs(__int128 __x) { return __x >= 0 ? __x : -__x; } +# 107 "/usr/include/c++/9/bits/std_abs.h" 3 + +} +} +# 48 "/usr/include/c++/9/cmath" 2 3 +# 77 "/usr/include/c++/9/cmath" 3 +extern "C++" +{ +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + using ::acos; + + + inline constexpr float + acos(float __x) + { return __builtin_acosf(__x); } + + inline constexpr long double + acos(long double __x) + { return __builtin_acosl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + acos(_Tp __x) + { return __builtin_acos(__x); } + + using ::asin; + + + inline constexpr float + asin(float __x) + { return __builtin_asinf(__x); } + + inline constexpr long double + asin(long double __x) + { return __builtin_asinl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + asin(_Tp __x) + { return __builtin_asin(__x); } + + using ::atan; + + + inline constexpr float + atan(float __x) + { return __builtin_atanf(__x); } + + inline constexpr long double + atan(long double __x) + { return __builtin_atanl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + atan(_Tp __x) + { return __builtin_atan(__x); } + + using ::atan2; + + + inline constexpr float + atan2(float __y, float __x) + { return __builtin_atan2f(__y, __x); } + + inline constexpr long double + atan2(long double __y, long double __x) + { return __builtin_atan2l(__y, __x); } + + + template + inline constexpr + typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + atan2(_Tp __y, _Up __x) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return atan2(__type(__y), __type(__x)); + } + + using ::ceil; + + + inline constexpr float + ceil(float __x) + { return __builtin_ceilf(__x); } + + inline constexpr long double + ceil(long double __x) + { return __builtin_ceill(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + ceil(_Tp __x) + { return __builtin_ceil(__x); } + + using ::cos; + + + inline constexpr float + cos(float __x) + { return __builtin_cosf(__x); } + + inline constexpr long double + cos(long double __x) + { return __builtin_cosl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + cos(_Tp __x) + { return __builtin_cos(__x); } + + using ::cosh; + + + inline constexpr float + cosh(float __x) + { return __builtin_coshf(__x); } + + inline constexpr long double + cosh(long double __x) + { return __builtin_coshl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + cosh(_Tp __x) + { return __builtin_cosh(__x); } + + using ::exp; + + + inline constexpr float + exp(float __x) + { return __builtin_expf(__x); } + + inline constexpr long double + exp(long double __x) + { return __builtin_expl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + exp(_Tp __x) + { return __builtin_exp(__x); } + + using ::fabs; + + + inline constexpr float + fabs(float __x) + { return __builtin_fabsf(__x); } + + inline constexpr long double + fabs(long double __x) + { return __builtin_fabsl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + fabs(_Tp __x) + { return __builtin_fabs(__x); } + + using ::floor; + + + inline constexpr float + floor(float __x) + { return __builtin_floorf(__x); } + + inline constexpr long double + floor(long double __x) + { return __builtin_floorl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + floor(_Tp __x) + { return __builtin_floor(__x); } + + using ::fmod; + + + inline constexpr float + fmod(float __x, float __y) + { return __builtin_fmodf(__x, __y); } + + inline constexpr long double + fmod(long double __x, long double __y) + { return __builtin_fmodl(__x, __y); } + + + template + inline constexpr + typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + fmod(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return fmod(__type(__x), __type(__y)); + } + + using ::frexp; + + + inline float + frexp(float __x, int* __exp) + { return __builtin_frexpf(__x, __exp); } + + inline long double + frexp(long double __x, int* __exp) + { return __builtin_frexpl(__x, __exp); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + frexp(_Tp __x, int* __exp) + { return __builtin_frexp(__x, __exp); } + + using ::ldexp; + + + inline constexpr float + ldexp(float __x, int __exp) + { return __builtin_ldexpf(__x, __exp); } + + inline constexpr long double + ldexp(long double __x, int __exp) + { return __builtin_ldexpl(__x, __exp); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + ldexp(_Tp __x, int __exp) + { return __builtin_ldexp(__x, __exp); } + + using ::log; + + + inline constexpr float + log(float __x) + { return __builtin_logf(__x); } + + inline constexpr long double + log(long double __x) + { return __builtin_logl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + log(_Tp __x) + { return __builtin_log(__x); } + + using ::log10; + + + inline constexpr float + log10(float __x) + { return __builtin_log10f(__x); } + + inline constexpr long double + log10(long double __x) + { return __builtin_log10l(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + log10(_Tp __x) + { return __builtin_log10(__x); } + + using ::modf; + + + inline float + modf(float __x, float* __iptr) + { return __builtin_modff(__x, __iptr); } + + inline long double + modf(long double __x, long double* __iptr) + { return __builtin_modfl(__x, __iptr); } + + + using ::pow; + + + inline constexpr float + pow(float __x, float __y) + { return __builtin_powf(__x, __y); } + + inline constexpr long double + pow(long double __x, long double __y) + { return __builtin_powl(__x, __y); } +# 412 "/usr/include/c++/9/cmath" 3 + template + inline constexpr + typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + pow(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return pow(__type(__x), __type(__y)); + } + + using ::sin; + + + inline constexpr float + sin(float __x) + { return __builtin_sinf(__x); } + + inline constexpr long double + sin(long double __x) + { return __builtin_sinl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + sin(_Tp __x) + { return __builtin_sin(__x); } + + using ::sinh; + + + inline constexpr float + sinh(float __x) + { return __builtin_sinhf(__x); } + + inline constexpr long double + sinh(long double __x) + { return __builtin_sinhl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + sinh(_Tp __x) + { return __builtin_sinh(__x); } + + using ::sqrt; + + + inline constexpr float + sqrt(float __x) + { return __builtin_sqrtf(__x); } + + inline constexpr long double + sqrt(long double __x) + { return __builtin_sqrtl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + sqrt(_Tp __x) + { return __builtin_sqrt(__x); } + + using ::tan; + + + inline constexpr float + tan(float __x) + { return __builtin_tanf(__x); } + + inline constexpr long double + tan(long double __x) + { return __builtin_tanl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + tan(_Tp __x) + { return __builtin_tan(__x); } + + using ::tanh; + + + inline constexpr float + tanh(float __x) + { return __builtin_tanhf(__x); } + + inline constexpr long double + tanh(long double __x) + { return __builtin_tanhl(__x); } + + + template + inline constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + tanh(_Tp __x) + { return __builtin_tanh(__x); } +# 536 "/usr/include/c++/9/cmath" 3 + constexpr int + fpclassify(float __x) + { return __builtin_fpclassify(0, 1, 4, + 3, 2, __x); } + + constexpr int + fpclassify(double __x) + { return __builtin_fpclassify(0, 1, 4, + 3, 2, __x); } + + constexpr int + fpclassify(long double __x) + { return __builtin_fpclassify(0, 1, 4, + 3, 2, __x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + int>::__type + fpclassify(_Tp __x) + { return __x != 0 ? 4 : 2; } + + + + constexpr bool + isfinite(float __x) + { return __builtin_isfinite(__x); } + + constexpr bool + isfinite(double __x) + { return __builtin_isfinite(__x); } + + constexpr bool + isfinite(long double __x) + { return __builtin_isfinite(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + bool>::__type + isfinite(_Tp __x) + { return true; } + + + + constexpr bool + isinf(float __x) + { return __builtin_isinf(__x); } + + + + + + constexpr bool + isinf(double __x) + { return __builtin_isinf(__x); } + + + constexpr bool + isinf(long double __x) + { return __builtin_isinf(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + bool>::__type + isinf(_Tp __x) + { return false; } + + + + constexpr bool + isnan(float __x) + { return __builtin_isnan(__x); } + + + + + + constexpr bool + isnan(double __x) + { return __builtin_isnan(__x); } + + + constexpr bool + isnan(long double __x) + { return __builtin_isnan(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + bool>::__type + isnan(_Tp __x) + { return false; } + + + + constexpr bool + isnormal(float __x) + { return __builtin_isnormal(__x); } + + constexpr bool + isnormal(double __x) + { return __builtin_isnormal(__x); } + + constexpr bool + isnormal(long double __x) + { return __builtin_isnormal(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + bool>::__type + isnormal(_Tp __x) + { return __x != 0 ? true : false; } + + + + + constexpr bool + signbit(float __x) + { return __builtin_signbit(__x); } + + constexpr bool + signbit(double __x) + { return __builtin_signbit(__x); } + + constexpr bool + signbit(long double __x) + { return __builtin_signbit(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + bool>::__type + signbit(_Tp __x) + { return __x < 0 ? true : false; } + + + + constexpr bool + isgreater(float __x, float __y) + { return __builtin_isgreater(__x, __y); } + + constexpr bool + isgreater(double __x, double __y) + { return __builtin_isgreater(__x, __y); } + + constexpr bool + isgreater(long double __x, long double __y) + { return __builtin_isgreater(__x, __y); } + + + + template + constexpr typename + __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value + && __is_arithmetic<_Up>::__value), bool>::__type + isgreater(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return __builtin_isgreater(__type(__x), __type(__y)); + } + + + + constexpr bool + isgreaterequal(float __x, float __y) + { return __builtin_isgreaterequal(__x, __y); } + + constexpr bool + isgreaterequal(double __x, double __y) + { return __builtin_isgreaterequal(__x, __y); } + + constexpr bool + isgreaterequal(long double __x, long double __y) + { return __builtin_isgreaterequal(__x, __y); } + + + + template + constexpr typename + __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value + && __is_arithmetic<_Up>::__value), bool>::__type + isgreaterequal(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return __builtin_isgreaterequal(__type(__x), __type(__y)); + } + + + + constexpr bool + isless(float __x, float __y) + { return __builtin_isless(__x, __y); } + + constexpr bool + isless(double __x, double __y) + { return __builtin_isless(__x, __y); } + + constexpr bool + isless(long double __x, long double __y) + { return __builtin_isless(__x, __y); } + + + + template + constexpr typename + __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value + && __is_arithmetic<_Up>::__value), bool>::__type + isless(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return __builtin_isless(__type(__x), __type(__y)); + } + + + + constexpr bool + islessequal(float __x, float __y) + { return __builtin_islessequal(__x, __y); } + + constexpr bool + islessequal(double __x, double __y) + { return __builtin_islessequal(__x, __y); } + + constexpr bool + islessequal(long double __x, long double __y) + { return __builtin_islessequal(__x, __y); } + + + + template + constexpr typename + __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value + && __is_arithmetic<_Up>::__value), bool>::__type + islessequal(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return __builtin_islessequal(__type(__x), __type(__y)); + } + + + + constexpr bool + islessgreater(float __x, float __y) + { return __builtin_islessgreater(__x, __y); } + + constexpr bool + islessgreater(double __x, double __y) + { return __builtin_islessgreater(__x, __y); } + + constexpr bool + islessgreater(long double __x, long double __y) + { return __builtin_islessgreater(__x, __y); } + + + + template + constexpr typename + __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value + && __is_arithmetic<_Up>::__value), bool>::__type + islessgreater(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return __builtin_islessgreater(__type(__x), __type(__y)); + } + + + + constexpr bool + isunordered(float __x, float __y) + { return __builtin_isunordered(__x, __y); } + + constexpr bool + isunordered(double __x, double __y) + { return __builtin_isunordered(__x, __y); } + + constexpr bool + isunordered(long double __x, long double __y) + { return __builtin_isunordered(__x, __y); } + + + + template + constexpr typename + __gnu_cxx::__enable_if<(__is_arithmetic<_Tp>::__value + && __is_arithmetic<_Up>::__value), bool>::__type + isunordered(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return __builtin_isunordered(__type(__x), __type(__y)); + } +# 1065 "/usr/include/c++/9/cmath" 3 + using ::double_t; + using ::float_t; + + + using ::acosh; + using ::acoshf; + using ::acoshl; + + using ::asinh; + using ::asinhf; + using ::asinhl; + + using ::atanh; + using ::atanhf; + using ::atanhl; + + using ::cbrt; + using ::cbrtf; + using ::cbrtl; + + using ::copysign; + using ::copysignf; + using ::copysignl; + + using ::erf; + using ::erff; + using ::erfl; + + using ::erfc; + using ::erfcf; + using ::erfcl; + + using ::exp2; + using ::exp2f; + using ::exp2l; + + using ::expm1; + using ::expm1f; + using ::expm1l; + + using ::fdim; + using ::fdimf; + using ::fdiml; + + using ::fma; + using ::fmaf; + using ::fmal; + + using ::fmax; + using ::fmaxf; + using ::fmaxl; + + using ::fmin; + using ::fminf; + using ::fminl; + + using ::hypot; + using ::hypotf; + using ::hypotl; + + using ::ilogb; + using ::ilogbf; + using ::ilogbl; + + using ::lgamma; + using ::lgammaf; + using ::lgammal; + + + using ::llrint; + using ::llrintf; + using ::llrintl; + + using ::llround; + using ::llroundf; + using ::llroundl; + + + using ::log1p; + using ::log1pf; + using ::log1pl; + + using ::log2; + using ::log2f; + using ::log2l; + + using ::logb; + using ::logbf; + using ::logbl; + + using ::lrint; + using ::lrintf; + using ::lrintl; + + using ::lround; + using ::lroundf; + using ::lroundl; + + using ::nan; + using ::nanf; + using ::nanl; + + using ::nearbyint; + using ::nearbyintf; + using ::nearbyintl; + + using ::nextafter; + using ::nextafterf; + using ::nextafterl; + + using ::nexttoward; + using ::nexttowardf; + using ::nexttowardl; + + using ::remainder; + using ::remainderf; + using ::remainderl; + + using ::remquo; + using ::remquof; + using ::remquol; + + using ::rint; + using ::rintf; + using ::rintl; + + using ::round; + using ::roundf; + using ::roundl; + + using ::scalbln; + using ::scalblnf; + using ::scalblnl; + + using ::scalbn; + using ::scalbnf; + using ::scalbnl; + + using ::tgamma; + using ::tgammaf; + using ::tgammal; + + using ::trunc; + using ::truncf; + using ::truncl; + + + + constexpr float + acosh(float __x) + { return __builtin_acoshf(__x); } + + constexpr long double + acosh(long double __x) + { return __builtin_acoshl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + acosh(_Tp __x) + { return __builtin_acosh(__x); } + + + + constexpr float + asinh(float __x) + { return __builtin_asinhf(__x); } + + constexpr long double + asinh(long double __x) + { return __builtin_asinhl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + asinh(_Tp __x) + { return __builtin_asinh(__x); } + + + + constexpr float + atanh(float __x) + { return __builtin_atanhf(__x); } + + constexpr long double + atanh(long double __x) + { return __builtin_atanhl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + atanh(_Tp __x) + { return __builtin_atanh(__x); } + + + + constexpr float + cbrt(float __x) + { return __builtin_cbrtf(__x); } + + constexpr long double + cbrt(long double __x) + { return __builtin_cbrtl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + cbrt(_Tp __x) + { return __builtin_cbrt(__x); } + + + + constexpr float + copysign(float __x, float __y) + { return __builtin_copysignf(__x, __y); } + + constexpr long double + copysign(long double __x, long double __y) + { return __builtin_copysignl(__x, __y); } + + + + template + constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + copysign(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return copysign(__type(__x), __type(__y)); + } + + + + constexpr float + erf(float __x) + { return __builtin_erff(__x); } + + constexpr long double + erf(long double __x) + { return __builtin_erfl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + erf(_Tp __x) + { return __builtin_erf(__x); } + + + + constexpr float + erfc(float __x) + { return __builtin_erfcf(__x); } + + constexpr long double + erfc(long double __x) + { return __builtin_erfcl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + erfc(_Tp __x) + { return __builtin_erfc(__x); } + + + + constexpr float + exp2(float __x) + { return __builtin_exp2f(__x); } + + constexpr long double + exp2(long double __x) + { return __builtin_exp2l(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + exp2(_Tp __x) + { return __builtin_exp2(__x); } + + + + constexpr float + expm1(float __x) + { return __builtin_expm1f(__x); } + + constexpr long double + expm1(long double __x) + { return __builtin_expm1l(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + expm1(_Tp __x) + { return __builtin_expm1(__x); } + + + + constexpr float + fdim(float __x, float __y) + { return __builtin_fdimf(__x, __y); } + + constexpr long double + fdim(long double __x, long double __y) + { return __builtin_fdiml(__x, __y); } + + + + template + constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + fdim(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return fdim(__type(__x), __type(__y)); + } + + + + constexpr float + fma(float __x, float __y, float __z) + { return __builtin_fmaf(__x, __y, __z); } + + constexpr long double + fma(long double __x, long double __y, long double __z) + { return __builtin_fmal(__x, __y, __z); } + + + + template + constexpr typename __gnu_cxx::__promote_3<_Tp, _Up, _Vp>::__type + fma(_Tp __x, _Up __y, _Vp __z) + { + typedef typename __gnu_cxx::__promote_3<_Tp, _Up, _Vp>::__type __type; + return fma(__type(__x), __type(__y), __type(__z)); + } + + + + constexpr float + fmax(float __x, float __y) + { return __builtin_fmaxf(__x, __y); } + + constexpr long double + fmax(long double __x, long double __y) + { return __builtin_fmaxl(__x, __y); } + + + + template + constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + fmax(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return fmax(__type(__x), __type(__y)); + } + + + + constexpr float + fmin(float __x, float __y) + { return __builtin_fminf(__x, __y); } + + constexpr long double + fmin(long double __x, long double __y) + { return __builtin_fminl(__x, __y); } + + + + template + constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + fmin(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return fmin(__type(__x), __type(__y)); + } + + + + constexpr float + hypot(float __x, float __y) + { return __builtin_hypotf(__x, __y); } + + constexpr long double + hypot(long double __x, long double __y) + { return __builtin_hypotl(__x, __y); } + + + + template + constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + hypot(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return hypot(__type(__x), __type(__y)); + } + + + + constexpr int + ilogb(float __x) + { return __builtin_ilogbf(__x); } + + constexpr int + ilogb(long double __x) + { return __builtin_ilogbl(__x); } + + + + template + constexpr + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + int>::__type + ilogb(_Tp __x) + { return __builtin_ilogb(__x); } + + + + constexpr float + lgamma(float __x) + { return __builtin_lgammaf(__x); } + + constexpr long double + lgamma(long double __x) + { return __builtin_lgammal(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + lgamma(_Tp __x) + { return __builtin_lgamma(__x); } + + + + constexpr long long + llrint(float __x) + { return __builtin_llrintf(__x); } + + constexpr long long + llrint(long double __x) + { return __builtin_llrintl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + long long>::__type + llrint(_Tp __x) + { return __builtin_llrint(__x); } + + + + constexpr long long + llround(float __x) + { return __builtin_llroundf(__x); } + + constexpr long long + llround(long double __x) + { return __builtin_llroundl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + long long>::__type + llround(_Tp __x) + { return __builtin_llround(__x); } + + + + constexpr float + log1p(float __x) + { return __builtin_log1pf(__x); } + + constexpr long double + log1p(long double __x) + { return __builtin_log1pl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + log1p(_Tp __x) + { return __builtin_log1p(__x); } + + + + + constexpr float + log2(float __x) + { return __builtin_log2f(__x); } + + constexpr long double + log2(long double __x) + { return __builtin_log2l(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + log2(_Tp __x) + { return __builtin_log2(__x); } + + + + constexpr float + logb(float __x) + { return __builtin_logbf(__x); } + + constexpr long double + logb(long double __x) + { return __builtin_logbl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + logb(_Tp __x) + { return __builtin_logb(__x); } + + + + constexpr long + lrint(float __x) + { return __builtin_lrintf(__x); } + + constexpr long + lrint(long double __x) + { return __builtin_lrintl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + long>::__type + lrint(_Tp __x) + { return __builtin_lrint(__x); } + + + + constexpr long + lround(float __x) + { return __builtin_lroundf(__x); } + + constexpr long + lround(long double __x) + { return __builtin_lroundl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + long>::__type + lround(_Tp __x) + { return __builtin_lround(__x); } + + + + constexpr float + nearbyint(float __x) + { return __builtin_nearbyintf(__x); } + + constexpr long double + nearbyint(long double __x) + { return __builtin_nearbyintl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + nearbyint(_Tp __x) + { return __builtin_nearbyint(__x); } + + + + constexpr float + nextafter(float __x, float __y) + { return __builtin_nextafterf(__x, __y); } + + constexpr long double + nextafter(long double __x, long double __y) + { return __builtin_nextafterl(__x, __y); } + + + + template + constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + nextafter(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return nextafter(__type(__x), __type(__y)); + } + + + + constexpr float + nexttoward(float __x, long double __y) + { return __builtin_nexttowardf(__x, __y); } + + constexpr long double + nexttoward(long double __x, long double __y) + { return __builtin_nexttowardl(__x, __y); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + nexttoward(_Tp __x, long double __y) + { return __builtin_nexttoward(__x, __y); } + + + + constexpr float + remainder(float __x, float __y) + { return __builtin_remainderf(__x, __y); } + + constexpr long double + remainder(long double __x, long double __y) + { return __builtin_remainderl(__x, __y); } + + + + template + constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + remainder(_Tp __x, _Up __y) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return remainder(__type(__x), __type(__y)); + } + + + + inline float + remquo(float __x, float __y, int* __pquo) + { return __builtin_remquof(__x, __y, __pquo); } + + inline long double + remquo(long double __x, long double __y, int* __pquo) + { return __builtin_remquol(__x, __y, __pquo); } + + + + template + inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type + remquo(_Tp __x, _Up __y, int* __pquo) + { + typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type; + return remquo(__type(__x), __type(__y), __pquo); + } + + + + constexpr float + rint(float __x) + { return __builtin_rintf(__x); } + + constexpr long double + rint(long double __x) + { return __builtin_rintl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + rint(_Tp __x) + { return __builtin_rint(__x); } + + + + constexpr float + round(float __x) + { return __builtin_roundf(__x); } + + constexpr long double + round(long double __x) + { return __builtin_roundl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + round(_Tp __x) + { return __builtin_round(__x); } + + + + constexpr float + scalbln(float __x, long __ex) + { return __builtin_scalblnf(__x, __ex); } + + constexpr long double + scalbln(long double __x, long __ex) + { return __builtin_scalblnl(__x, __ex); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + scalbln(_Tp __x, long __ex) + { return __builtin_scalbln(__x, __ex); } + + + + constexpr float + scalbn(float __x, int __ex) + { return __builtin_scalbnf(__x, __ex); } + + constexpr long double + scalbn(long double __x, int __ex) + { return __builtin_scalbnl(__x, __ex); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + scalbn(_Tp __x, int __ex) + { return __builtin_scalbn(__x, __ex); } + + + + constexpr float + tgamma(float __x) + { return __builtin_tgammaf(__x); } + + constexpr long double + tgamma(long double __x) + { return __builtin_tgammal(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + tgamma(_Tp __x) + { return __builtin_tgamma(__x); } + + + + constexpr float + trunc(float __x) + { return __builtin_truncf(__x); } + + constexpr long double + trunc(long double __x) + { return __builtin_truncl(__x); } + + + + template + constexpr typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + double>::__type + trunc(_Tp __x) + { return __builtin_trunc(__x); } +# 1923 "/usr/include/c++/9/cmath" 3 + +} + + + + + +} +# 37 "/usr/include/c++/9/math.h" 2 3 4 + +using std::abs; +using std::acos; +using std::asin; +using std::atan; +using std::atan2; +using std::cos; +using std::sin; +using std::tan; +using std::cosh; +using std::sinh; +using std::tanh; +using std::exp; +using std::frexp; +using std::ldexp; +using std::log; +using std::log10; +using std::modf; +using std::pow; +using std::sqrt; +using std::ceil; +using std::fabs; +using std::floor; +using std::fmod; + + +using std::fpclassify; +using std::isfinite; +using std::isinf; +using std::isnan; +using std::isnormal; +using std::signbit; +using std::isgreater; +using std::isgreaterequal; +using std::isless; +using std::islessequal; +using std::islessgreater; +using std::isunordered; + + + +using std::acosh; +using std::asinh; +using std::atanh; +using std::cbrt; +using std::copysign; +using std::erf; +using std::erfc; +using std::exp2; +using std::expm1; +using std::fdim; +using std::fma; +using std::fmax; +using std::fmin; +using std::hypot; +using std::ilogb; +using std::lgamma; +using std::llrint; +using std::llround; +using std::log1p; +using std::log2; +using std::logb; +using std::lrint; +using std::lround; +using std::nearbyint; +using std::nextafter; +using std::nexttoward; +using std::remainder; +using std::remquo; +using std::rint; +using std::round; +using std::scalbln; +using std::scalbn; +using std::tgamma; +using std::trunc; +# 10548 "/usr/include/crt/math_functions.h" 2 3 4 +# 1 "/usr/include/c++/9/stdlib.h" 1 3 4 +# 36 "/usr/include/c++/9/stdlib.h" 3 4 +# 1 "/usr/include/c++/9/cstdlib" 1 3 4 +# 39 "/usr/include/c++/9/cstdlib" 3 4 + +# 40 "/usr/include/c++/9/cstdlib" 3 +# 121 "/usr/include/c++/9/cstdlib" 3 +extern "C++" +{ +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + using ::div_t; + using ::ldiv_t; + + using ::abort; + + + + using ::atexit; + + + using ::at_quick_exit; + + + using ::atof; + using ::atoi; + using ::atol; + using ::bsearch; + using ::calloc; + using ::div; + using ::exit; + using ::free; + using ::getenv; + using ::labs; + using ::ldiv; + using ::malloc; + + using ::mblen; + using ::mbstowcs; + using ::mbtowc; + + using ::qsort; + + + using ::quick_exit; + + + using ::rand; + using ::realloc; + using ::srand; + using ::strtod; + using ::strtol; + using ::strtoul; + using ::system; + + using ::wcstombs; + using ::wctomb; + + + + inline ldiv_t + div(long __i, long __j) { return ldiv(__i, __j); } + + + + +} +# 195 "/usr/include/c++/9/cstdlib" 3 +namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) +{ + + + + using ::lldiv_t; + + + + + + using ::_Exit; + + + + using ::llabs; + + inline lldiv_t + div(long long __n, long long __d) + { lldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; } + + using ::lldiv; +# 227 "/usr/include/c++/9/cstdlib" 3 + using ::atoll; + using ::strtoll; + using ::strtoull; + + using ::strtof; + using ::strtold; + + +} + +namespace std +{ + + using ::__gnu_cxx::lldiv_t; + + using ::__gnu_cxx::_Exit; + + using ::__gnu_cxx::llabs; + using ::__gnu_cxx::div; + using ::__gnu_cxx::lldiv; + + using ::__gnu_cxx::atoll; + using ::__gnu_cxx::strtof; + using ::__gnu_cxx::strtoll; + using ::__gnu_cxx::strtoull; + using ::__gnu_cxx::strtold; +} + + + +} +# 37 "/usr/include/c++/9/stdlib.h" 2 3 4 + +using std::abort; +using std::atexit; +using std::exit; + + + using std::at_quick_exit; + + + using std::quick_exit; + + + + +using std::div_t; +using std::ldiv_t; + +using std::abs; +using std::atof; +using std::atoi; +using std::atol; +using std::bsearch; +using std::calloc; +using std::div; +using std::free; +using std::getenv; +using std::labs; +using std::ldiv; +using std::malloc; + +using std::mblen; +using std::mbstowcs; +using std::mbtowc; + +using std::qsort; +using std::rand; +using std::realloc; +using std::srand; +using std::strtod; +using std::strtol; +using std::strtoul; +using std::system; + +using std::wcstombs; +using std::wctomb; +# 10549 "/usr/include/crt/math_functions.h" 2 3 4 + + +# 1 "/usr/include/c++/9/cmath" 1 3 4 +# 39 "/usr/include/c++/9/cmath" 3 4 + +# 40 "/usr/include/c++/9/cmath" 3 +# 10552 "/usr/include/crt/math_functions.h" 2 3 4 +# 1 "/usr/include/c++/9/cstdlib" 1 3 4 +# 39 "/usr/include/c++/9/cstdlib" 3 4 + +# 40 "/usr/include/c++/9/cstdlib" 3 +# 10553 "/usr/include/crt/math_functions.h" 2 3 4 +# 10622 "/usr/include/crt/math_functions.h" 3 4 +namespace std { +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool signbit(float x); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool signbit(double x); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool signbit(long double x); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool isfinite(float x); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool isfinite(double x); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool isfinite(long double x); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool isnan(float x); + + + + +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool isnan(double x); + +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool isnan(long double x); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool isinf(float x); + + + + +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool isinf(double x); + +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr bool isinf(long double x); +} +# 10798 "/usr/include/crt/math_functions.h" 3 4 +namespace std +{ + template extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) T __pow_helper(T, int); + template extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) T __cmath_power(T, unsigned int); +} + +using std::abs; +using std::fabs; +using std::ceil; +using std::floor; +using std::sqrt; + +using std::pow; + +using std::log; +using std::log10; +using std::fmod; +using std::modf; +using std::exp; +using std::frexp; +using std::ldexp; +using std::asin; +using std::sin; +using std::sinh; +using std::acos; +using std::cos; +using std::cosh; +using std::atan; +using std::atan2; +using std::tan; +using std::tanh; +# 11199 "/usr/include/crt/math_functions.h" 3 4 +namespace std { +# 11208 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) long long int abs(long long int); +# 11218 "/usr/include/crt/math_functions.h" 3 4 +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) long int abs(long int); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float abs(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double abs(double); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float fabs(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float ceil(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float floor(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float sqrt(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float pow(float, float); + + + + +template +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) +typename __gnu_cxx::__promote_2<_Tp, _Up>::__type pow(_Tp, _Up); + + + + + + + +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float log(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float log10(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float fmod(float, float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float modf(float, float*); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float exp(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float frexp(float, int*); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float ldexp(float, int); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float asin(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float sin(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float sinh(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float acos(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float cos(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float cosh(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float atan(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float atan2(float, float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float tan(float); +extern __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float tanh(float); +# 11335 "/usr/include/crt/math_functions.h" 3 4 +} +# 11441 "/usr/include/crt/math_functions.h" 3 4 +namespace std { +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float logb(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr int ilogb(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float scalbn(float a, int b); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float scalbln(float a, long int b); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float exp2(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float expm1(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float log2(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float log1p(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float acosh(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float asinh(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float atanh(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float hypot(float a, float b); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float cbrt(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float erf(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float erfc(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float lgamma(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float tgamma(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float copysign(float a, float b); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float nextafter(float a, float b); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float remainder(float a, float b); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float remquo(float a, float b, int *quo); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float round(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr long int lround(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr long long int llround(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float trunc(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float rint(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr long int lrint(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr long long int llrint(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float nearbyint(float a); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float fdim(float a, float b); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float fma(float a, float b, float c); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float fmax(float a, float b); +__attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) constexpr float fmin(float a, float b); +} +# 11580 "/usr/include/crt/math_functions.h" 3 4 +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float exp10(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float rsqrt(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float rcbrt(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float sinpi(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float cospi(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void sincospi(const float a, float *const sptr, float *const cptr); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) void sincos(const float a, float *const sptr, float *const cptr); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float j0(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float j1(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float jn(const int n, const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float y0(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float y1(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float yn(const int n, const float a); + +static inline __attribute__((device)) __attribute__((cudart_builtin)) float cyl_bessel_i0(const float a); + +static inline __attribute__((device)) __attribute__((cudart_builtin)) float cyl_bessel_i1(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float erfinv(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float erfcinv(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float normcdfinv(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float normcdf(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float erfcx(const float a); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double copysign(const double a, const float b); + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double copysign(const float a, const double b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned int min(const unsigned int a, const unsigned int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned int min(const int a, const unsigned int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned int min(const unsigned int a, const int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) long int min(const long int a, const long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long int min(const unsigned long int a, const unsigned long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long int min(const long int a, const unsigned long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long int min(const unsigned long int a, const long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) long long int min(const long long int a, const long long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long long int min(const unsigned long long int a, const unsigned long long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long long int min(const long long int a, const unsigned long long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long long int min(const unsigned long long int a, const long long int b); +# 11721 "/usr/include/crt/math_functions.h" 3 4 +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float min(const float a, const float b); +# 11732 "/usr/include/crt/math_functions.h" 3 4 +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double min(const double a, const double b); +# 11742 "/usr/include/crt/math_functions.h" 3 4 +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double min(const float a, const double b); +# 11752 "/usr/include/crt/math_functions.h" 3 4 +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double min(const double a, const float b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned int max(const unsigned int a, const unsigned int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned int max(const int a, const unsigned int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned int max(const unsigned int a, const int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) long int max(const long int a, const long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long int max(const unsigned long int a, const unsigned long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long int max(const long int a, const unsigned long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long int max(const unsigned long int a, const long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) long long int max(const long long int a, const long long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long long int max(const unsigned long long int a, const unsigned long long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long long int max(const long long int a, const unsigned long long int b); + + + + + + + +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) unsigned long long int max(const unsigned long long int a, const long long int b); +# 11851 "/usr/include/crt/math_functions.h" 3 4 +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) float max(const float a, const float b); +# 11862 "/usr/include/crt/math_functions.h" 3 4 +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double max(const double a, const double b); +# 11872 "/usr/include/crt/math_functions.h" 3 4 +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double max(const float a, const double b); +# 11882 "/usr/include/crt/math_functions.h" 3 4 +static inline __attribute__((host)) __attribute__((device)) __attribute__((cudart_builtin)) double max(const double a, const float b); +# 11893 "/usr/include/crt/math_functions.h" 3 4 +extern "C"{ +inline __attribute__((device)) void *__nv_aligned_device_malloc(size_t size, size_t align) +{ + __attribute__((device)) void *__nv_aligned_device_malloc_impl(size_t, size_t); + return __nv_aligned_device_malloc_impl(size, align); +} +} +# 12179 "/usr/include/crt/math_functions.h" 3 4 +# 1 "/usr/include/crt/math_functions.hpp" 1 3 4 +# 77 "/usr/include/crt/math_functions.hpp" 3 4 +# 1 "/usr/include/builtin_types.h" 1 3 4 +# 78 "/usr/include/crt/math_functions.hpp" 2 3 4 +# 1 "/usr/include/crt/host_defines.h" 1 3 4 +# 79 "/usr/include/crt/math_functions.hpp" 2 3 4 +# 758 "/usr/include/crt/math_functions.hpp" 3 4 +static inline __attribute__((host)) __attribute__((device)) float exp10(const float a) +{ + return exp10f(a); +} + +static inline __attribute__((host)) __attribute__((device)) float rsqrt(const float a) +{ + return rsqrtf(a); +} + +static inline __attribute__((host)) __attribute__((device)) float rcbrt(const float a) +{ + return rcbrtf(a); +} + +static inline __attribute__((host)) __attribute__((device)) float sinpi(const float a) +{ + return sinpif(a); +} + +static inline __attribute__((host)) __attribute__((device)) float cospi(const float a) +{ + return cospif(a); +} + +static inline __attribute__((host)) __attribute__((device)) void sincospi(const float a, float *const sptr, float *const cptr) +{ + sincospif(a, sptr, cptr); +} + +static inline __attribute__((host)) __attribute__((device)) void sincos(const float a, float *const sptr, float *const cptr) +{ + sincosf(a, sptr, cptr); +} + +static inline __attribute__((host)) __attribute__((device)) float j0(const float a) +{ + return j0f(a); +} + +static inline __attribute__((host)) __attribute__((device)) float j1(const float a) +{ + return j1f(a); +} + +static inline __attribute__((host)) __attribute__((device)) float jn(const int n, const float a) +{ + return jnf(n, a); +} + +static inline __attribute__((host)) __attribute__((device)) float y0(const float a) +{ + return y0f(a); +} + +static inline __attribute__((host)) __attribute__((device)) float y1(const float a) +{ + return y1f(a); +} + +static inline __attribute__((host)) __attribute__((device)) float yn(const int n, const float a) +{ + return ynf(n, a); +} + +static inline __attribute__((device)) float cyl_bessel_i0(const float a) +{ + return cyl_bessel_i0f(a); +} + +static inline __attribute__((device)) float cyl_bessel_i1(const float a) +{ + return cyl_bessel_i1f(a); +} + +static inline __attribute__((host)) __attribute__((device)) float erfinv(const float a) +{ + return erfinvf(a); +} + +static inline __attribute__((host)) __attribute__((device)) float erfcinv(const float a) +{ + return erfcinvf(a); +} + +static inline __attribute__((host)) __attribute__((device)) float normcdfinv(const float a) +{ + return normcdfinvf(a); +} + +static inline __attribute__((host)) __attribute__((device)) float normcdf(const float a) +{ + return normcdff(a); +} + +static inline __attribute__((host)) __attribute__((device)) float erfcx(const float a) +{ + return erfcxf(a); +} + +static inline __attribute__((host)) __attribute__((device)) double copysign(const double a, const float b) +{ + return copysign(a, static_cast(b)); +} + +static inline __attribute__((host)) __attribute__((device)) double copysign(const float a, const double b) +{ + return copysign(static_cast(a), b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned int min(const unsigned int a, const unsigned int b) +{ + return umin(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned int min(const int a, const unsigned int b) +{ + return umin(static_cast(a), b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned int min(const unsigned int a, const int b) +{ + return umin(a, static_cast(b)); +} + +static inline __attribute__((host)) __attribute__((device)) long int min(const long int a, const long int b) +{ + long int retval; + + + + + + if (sizeof(long int) == sizeof(int)) { + + + + retval = static_cast(min(static_cast(a), static_cast(b))); + } else { + retval = static_cast(llmin(static_cast(a), static_cast(b))); + } + return retval; +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long int min(const unsigned long int a, const unsigned long int b) +{ + unsigned long int retval; + + + + if (sizeof(unsigned long int) == sizeof(unsigned int)) { + + + + retval = static_cast(umin(static_cast(a), static_cast(b))); + } else { + retval = static_cast(ullmin(static_cast(a), static_cast(b))); + } + return retval; +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long int min(const long int a, const unsigned long int b) +{ + unsigned long int retval; + + + + if (sizeof(unsigned long int) == sizeof(unsigned int)) { + + + + retval = static_cast(umin(static_cast(a), static_cast(b))); + } else { + retval = static_cast(ullmin(static_cast(a), static_cast(b))); + } + return retval; +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long int min(const unsigned long int a, const long int b) +{ + unsigned long int retval; + + + + if (sizeof(unsigned long int) == sizeof(unsigned int)) { + + + + retval = static_cast(umin(static_cast(a), static_cast(b))); + } else { + retval = static_cast(ullmin(static_cast(a), static_cast(b))); + } + return retval; +} + +static inline __attribute__((host)) __attribute__((device)) long long int min(const long long int a, const long long int b) +{ + return llmin(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long long int min(const unsigned long long int a, const unsigned long long int b) +{ + return ullmin(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long long int min(const long long int a, const unsigned long long int b) +{ + return ullmin(static_cast(a), b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long long int min(const unsigned long long int a, const long long int b) +{ + return ullmin(a, static_cast(b)); +} + +static inline __attribute__((host)) __attribute__((device)) float min(const float a, const float b) +{ + return fminf(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) double min(const double a, const double b) +{ + return fmin(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) double min(const float a, const double b) +{ + return fmin(static_cast(a), b); +} + +static inline __attribute__((host)) __attribute__((device)) double min(const double a, const float b) +{ + return fmin(a, static_cast(b)); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned int max(const unsigned int a, const unsigned int b) +{ + return umax(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned int max(const int a, const unsigned int b) +{ + return umax(static_cast(a), b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned int max(const unsigned int a, const int b) +{ + return umax(a, static_cast(b)); +} + +static inline __attribute__((host)) __attribute__((device)) long int max(const long int a, const long int b) +{ + long int retval; + + + + + if (sizeof(long int) == sizeof(int)) { + + + + retval = static_cast(max(static_cast(a), static_cast(b))); + } else { + retval = static_cast(llmax(static_cast(a), static_cast(b))); + } + return retval; +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long int max(const unsigned long int a, const unsigned long int b) +{ + unsigned long int retval; + + + + if (sizeof(unsigned long int) == sizeof(unsigned int)) { + + + + retval = static_cast(umax(static_cast(a), static_cast(b))); + } else { + retval = static_cast(ullmax(static_cast(a), static_cast(b))); + } + return retval; +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long int max(const long int a, const unsigned long int b) +{ + unsigned long int retval; + + + + if (sizeof(unsigned long int) == sizeof(unsigned int)) { + + + + retval = static_cast(umax(static_cast(a), static_cast(b))); + } else { + retval = static_cast(ullmax(static_cast(a), static_cast(b))); + } + return retval; +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long int max(const unsigned long int a, const long int b) +{ + unsigned long int retval; + + + + if (sizeof(unsigned long int) == sizeof(unsigned int)) { + + + + retval = static_cast(umax(static_cast(a), static_cast(b))); + } else { + retval = static_cast(ullmax(static_cast(a), static_cast(b))); + } + return retval; +} + +static inline __attribute__((host)) __attribute__((device)) long long int max(const long long int a, const long long int b) +{ + return llmax(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long long int max(const unsigned long long int a, const unsigned long long int b) +{ + return ullmax(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long long int max(const long long int a, const unsigned long long int b) +{ + return ullmax(static_cast(a), b); +} + +static inline __attribute__((host)) __attribute__((device)) unsigned long long int max(const unsigned long long int a, const long long int b) +{ + return ullmax(a, static_cast(b)); +} + +static inline __attribute__((host)) __attribute__((device)) float max(const float a, const float b) +{ + return fmaxf(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) double max(const double a, const double b) +{ + return fmax(a, b); +} + +static inline __attribute__((host)) __attribute__((device)) double max(const float a, const double b) +{ + return fmax(static_cast(a), b); +} + +static inline __attribute__((host)) __attribute__((device)) double max(const double a, const float b) +{ + return fmax(a, static_cast(b)); +} +# 1126 "/usr/include/crt/math_functions.hpp" 3 4 +inline __attribute__((host)) __attribute__((device)) int min(const int a, const int b) +{ + return (a < b) ? a : b; +} + +inline __attribute__((host)) __attribute__((device)) unsigned int umin(const unsigned int a, const unsigned int b) +{ + return (a < b) ? a : b; +} + +inline __attribute__((host)) __attribute__((device)) long long int llmin(const long long int a, const long long int b) +{ + return (a < b) ? a : b; +} + +inline __attribute__((host)) __attribute__((device)) unsigned long long int ullmin(const unsigned long long int a, + const unsigned long long int b) +{ + return (a < b) ? a : b; +} + +inline __attribute__((host)) __attribute__((device)) int max(const int a, const int b) +{ + return (a > b) ? a : b; +} + +inline __attribute__((host)) __attribute__((device)) unsigned int umax(const unsigned int a, const unsigned int b) +{ + return (a > b) ? a : b; +} + +inline __attribute__((host)) __attribute__((device)) long long int llmax(const long long int a, const long long int b) +{ + return (a > b) ? a : b; +} + +inline __attribute__((host)) __attribute__((device)) unsigned long long int ullmax(const unsigned long long int a, + const unsigned long long int b) +{ + return (a > b) ? a : b; +} +# 12180 "/usr/include/crt/math_functions.h" 2 3 4 +# 304 "/usr/include/crt/common_functions.h" 2 3 4 +# 116 "/usr/include/cuda_runtime.h" 2 3 4 +# 1 "/usr/include/cuda_surface_types.h" 1 3 4 +# 74 "/usr/include/cuda_surface_types.h" 3 4 +template +struct __attribute__((device_builtin_surface_type)) surface : public surfaceReference +{ + + __attribute__((host)) surface(void) + { + channelDesc = cudaCreateChannelDesc(); + } + + __attribute__((host)) surface(struct cudaChannelFormatDesc desc) + { + channelDesc = desc; + } + +}; + +template +struct __attribute__((device_builtin_surface_type)) surface : public surfaceReference +{ + + __attribute__((host)) surface(void) + { + channelDesc = cudaCreateChannelDesc(); + } + +}; +# 117 "/usr/include/cuda_runtime.h" 2 3 4 +# 1 "/usr/include/cuda_texture_types.h" 1 3 4 +# 74 "/usr/include/cuda_texture_types.h" 3 4 +template +struct __attribute__((device_builtin_texture_type)) texture : public textureReference +{ + + __attribute__((host)) texture(int norm = 0, + enum cudaTextureFilterMode fMode = cudaFilterModePoint, + enum cudaTextureAddressMode aMode = cudaAddressModeClamp) + { + normalized = norm; + filterMode = fMode; + addressMode[0] = aMode; + addressMode[1] = aMode; + addressMode[2] = aMode; + channelDesc = cudaCreateChannelDesc(); + sRGB = 0; + } + + __attribute__((host)) texture(int norm, + enum cudaTextureFilterMode fMode, + enum cudaTextureAddressMode aMode, + struct cudaChannelFormatDesc desc) + { + normalized = norm; + filterMode = fMode; + addressMode[0] = aMode; + addressMode[1] = aMode; + addressMode[2] = aMode; + channelDesc = desc; + sRGB = 0; + } + +}; +# 118 "/usr/include/cuda_runtime.h" 2 3 4 +# 1 "/usr/include/crt/device_functions.h" 1 3 4 +# 79 "/usr/include/crt/device_functions.h" 3 4 +# 1 "/usr/include/builtin_types.h" 1 3 4 +# 80 "/usr/include/crt/device_functions.h" 2 3 4 +# 1 "/usr/include/device_types.h" 1 3 4 +# 81 "/usr/include/crt/device_functions.h" 2 3 4 +# 1 "/usr/include/crt/host_defines.h" 1 3 4 +# 82 "/usr/include/crt/device_functions.h" 2 3 4 + + + + + + + +extern "C" +{ +# 100 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __mulhi(int x, int y); +# 110 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __umulhi(unsigned int x, unsigned int y); +# 120 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) long long int __mul64hi(long long int x, long long int y); +# 130 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned long long int __umul64hi(unsigned long long int x, unsigned long long int y); +# 139 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __int_as_float(int x); +# 148 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __float_as_int(float x); +# 157 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __uint_as_float(unsigned int x); +# 166 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __float_as_uint(float x); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) void __syncthreads(void); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) void __prof_trigger(int); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) void __threadfence(void); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) void __threadfence_block(void); +__attribute__((device)) __attribute__((cudart_builtin)) + +__attribute__((__noreturn__)) + + + +__attribute__((device_builtin)) void __trap(void); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) void __brkpt(); +# 201 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __saturatef(float x); +# 270 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __sad(int x, int y, unsigned int z); +# 338 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __usad(unsigned int x, unsigned int y, unsigned int z); +# 348 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __mul24(int x, int y); +# 358 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __umul24(unsigned int x, unsigned int y); +# 371 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float fdividef(float x, float y); +# 444 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fdividef(float x, float y); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) double fdivide(double x, double y); +# 457 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __sinf(float x) throw (); +# 468 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __cosf(float x) throw (); +# 481 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __tanf(float x) throw (); +# 496 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) void __sincosf(float x, float *sptr, float *cptr) throw (); +# 545 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __expf(float x) throw (); +# 576 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __exp10f(float x) throw (); +# 601 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __log2f(float x) throw (); +# 628 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __log10f(float x) throw (); +# 671 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __logf(float x) throw (); +# 713 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) __attribute__((cudart_builtin)) float __powf(float x, float y) throw (); +# 722 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __float2int_rn(float x); +# 731 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __float2int_rz(float x); +# 740 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __float2int_ru(float); +# 749 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __float2int_rd(float x); +# 758 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __float2uint_rn(float x); +# 767 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __float2uint_rz(float x); +# 776 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __float2uint_ru(float x); +# 785 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __float2uint_rd(float x); +# 794 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __int2float_rn(int x); +# 803 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __int2float_rz(int x); +# 812 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __int2float_ru(int x); +# 821 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __int2float_rd(int x); +# 830 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __uint2float_rn(unsigned int x); +# 839 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __uint2float_rz(unsigned int x); +# 848 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __uint2float_ru(unsigned int x); +# 857 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __uint2float_rd(unsigned int x); +# 866 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) long long int __float2ll_rn(float x); +# 875 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) long long int __float2ll_rz(float x); +# 884 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) long long int __float2ll_ru(float x); +# 893 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) long long int __float2ll_rd(float x); +# 902 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned long long int __float2ull_rn(float x); +# 911 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned long long int __float2ull_rz(float x); +# 920 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned long long int __float2ull_ru(float x); +# 929 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned long long int __float2ull_rd(float x); +# 938 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ll2float_rn(long long int x); +# 947 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ll2float_rz(long long int x); +# 956 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ll2float_ru(long long int x); +# 965 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ll2float_rd(long long int x); +# 974 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ull2float_rn(unsigned long long int x); +# 983 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ull2float_rz(unsigned long long int x); +# 992 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ull2float_ru(unsigned long long int x); +# 1001 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __ull2float_rd(unsigned long long int x); +# 1013 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fadd_rn(float x, float y); +# 1025 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fadd_rz(float x, float y); +# 1037 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fadd_ru(float x, float y); +# 1049 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fadd_rd(float x, float y); +# 1061 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsub_rn(float x, float y); +# 1073 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsub_rz(float x, float y); +# 1085 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsub_ru(float x, float y); +# 1097 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsub_rd(float x, float y); +# 1109 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmul_rn(float x, float y); +# 1121 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmul_rz(float x, float y); +# 1133 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmul_ru(float x, float y); +# 1145 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmul_rd(float x, float y); +# 1298 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmaf_rn(float x, float y, float z); +# 1451 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmaf_rz(float x, float y, float z); +# 1604 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmaf_ru(float x, float y, float z); +# 1757 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fmaf_rd(float x, float y, float z); +# 1790 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __frcp_rn(float x); +# 1823 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __frcp_rz(float x); +# 1856 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __frcp_ru(float x); +# 1889 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __frcp_rd(float x); +# 1920 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsqrt_rn(float x); +# 1951 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsqrt_rz(float x); +# 1982 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsqrt_ru(float x); +# 2013 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fsqrt_rd(float x); +# 2052 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __frsqrt_rn(float x); +# 2063 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fdiv_rn(float x, float y); +# 2074 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fdiv_rz(float x, float y); +# 2085 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fdiv_ru(float x, float y); +# 2096 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) float __fdiv_rd(float x, float y); +# 2105 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __clz(int x); +# 2116 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __ffs(int x); +# 2125 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __popc(unsigned int x); +# 2134 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __brev(unsigned int x); +# 2143 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __clzll(long long int x); +# 2154 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __ffsll(long long int x); +# 2165 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __popcll(unsigned long long int x); +# 2174 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned long long int __brevll(unsigned long long int x); +# 2198 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __byte_perm(unsigned int x, unsigned int y, unsigned int s); +# 2210 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __hadd(int x, int y); +# 2223 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __rhadd(int x, int y); +# 2235 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __uhadd(unsigned int x, unsigned int y); +# 2248 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __urhadd(unsigned int x, unsigned int y); +# 2258 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) int __double2int_rz(double x); +# 2267 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __double2uint_rz(double x); +# 2276 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) long long int __double2ll_rz(double x); +# 2285 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned long long int __double2ull_rz(double x); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __pm0(void); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __pm1(void); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __pm2(void); +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __pm3(void); +# 2315 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabs2(unsigned int a); +# 2326 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabsss2(unsigned int a); +# 2337 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vadd2(unsigned int a, unsigned int b); +# 2348 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vaddss2 (unsigned int a, unsigned int b); +# 2358 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vaddus2 (unsigned int a, unsigned int b); +# 2369 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vavgs2(unsigned int a, unsigned int b); +# 2380 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vavgu2(unsigned int a, unsigned int b); +# 2391 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vhaddu2(unsigned int a, unsigned int b); +# 2402 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpeq2(unsigned int a, unsigned int b); +# 2413 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpges2(unsigned int a, unsigned int b); +# 2424 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpgeu2(unsigned int a, unsigned int b); +# 2435 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpgts2(unsigned int a, unsigned int b); +# 2446 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpgtu2(unsigned int a, unsigned int b); +# 2457 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmples2(unsigned int a, unsigned int b); +# 2469 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpleu2(unsigned int a, unsigned int b); +# 2480 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmplts2(unsigned int a, unsigned int b); +# 2491 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpltu2(unsigned int a, unsigned int b); +# 2502 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpne2(unsigned int a, unsigned int b); +# 2513 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabsdiffu2(unsigned int a, unsigned int b); +# 2524 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vmaxs2(unsigned int a, unsigned int b); +# 2535 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vmaxu2(unsigned int a, unsigned int b); +# 2546 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vmins2(unsigned int a, unsigned int b); +# 2557 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vminu2(unsigned int a, unsigned int b); +# 2568 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vseteq2(unsigned int a, unsigned int b); +# 2579 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetges2(unsigned int a, unsigned int b); +# 2590 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetgeu2(unsigned int a, unsigned int b); +# 2601 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetgts2(unsigned int a, unsigned int b); +# 2612 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetgtu2(unsigned int a, unsigned int b); +# 2623 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetles2(unsigned int a, unsigned int b); +# 2634 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetleu2(unsigned int a, unsigned int b); +# 2645 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetlts2(unsigned int a, unsigned int b); +# 2656 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetltu2(unsigned int a, unsigned int b); +# 2667 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetne2(unsigned int a, unsigned int b); +# 2678 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsadu2(unsigned int a, unsigned int b); +# 2689 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsub2(unsigned int a, unsigned int b); +# 2700 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsubss2 (unsigned int a, unsigned int b); +# 2711 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsubus2 (unsigned int a, unsigned int b); +# 2721 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vneg2(unsigned int a); +# 2731 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vnegss2(unsigned int a); +# 2742 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabsdiffs2(unsigned int a, unsigned int b); +# 2753 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsads2(unsigned int a, unsigned int b); +# 2763 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabs4(unsigned int a); +# 2774 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabsss4(unsigned int a); +# 2785 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vadd4(unsigned int a, unsigned int b); +# 2796 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vaddss4 (unsigned int a, unsigned int b); +# 2806 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vaddus4 (unsigned int a, unsigned int b); +# 2817 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vavgs4(unsigned int a, unsigned int b); +# 2828 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vavgu4(unsigned int a, unsigned int b); +# 2839 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vhaddu4(unsigned int a, unsigned int b); +# 2850 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpeq4(unsigned int a, unsigned int b); +# 2861 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpges4(unsigned int a, unsigned int b); +# 2872 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpgeu4(unsigned int a, unsigned int b); +# 2883 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpgts4(unsigned int a, unsigned int b); +# 2894 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpgtu4(unsigned int a, unsigned int b); +# 2905 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmples4(unsigned int a, unsigned int b); +# 2916 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpleu4(unsigned int a, unsigned int b); +# 2927 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmplts4(unsigned int a, unsigned int b); +# 2938 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpltu4(unsigned int a, unsigned int b); +# 2949 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vcmpne4(unsigned int a, unsigned int b); +# 2960 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabsdiffu4(unsigned int a, unsigned int b); +# 2971 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vmaxs4(unsigned int a, unsigned int b); +# 2982 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vmaxu4(unsigned int a, unsigned int b); +# 2993 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vmins4(unsigned int a, unsigned int b); +# 3004 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vminu4(unsigned int a, unsigned int b); +# 3015 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vseteq4(unsigned int a, unsigned int b); +# 3026 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetles4(unsigned int a, unsigned int b); +# 3037 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetleu4(unsigned int a, unsigned int b); +# 3048 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetlts4(unsigned int a, unsigned int b); +# 3059 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetltu4(unsigned int a, unsigned int b); +# 3070 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetges4(unsigned int a, unsigned int b); +# 3081 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetgeu4(unsigned int a, unsigned int b); +# 3092 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetgts4(unsigned int a, unsigned int b); +# 3103 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetgtu4(unsigned int a, unsigned int b); +# 3114 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsetne4(unsigned int a, unsigned int b); +# 3125 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsadu4(unsigned int a, unsigned int b); +# 3136 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsub4(unsigned int a, unsigned int b); +# 3147 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsubss4(unsigned int a, unsigned int b); +# 3158 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsubus4(unsigned int a, unsigned int b); +# 3168 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vneg4(unsigned int a); +# 3178 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vnegss4(unsigned int a); +# 3189 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vabsdiffs4(unsigned int a, unsigned int b); +# 3200 "/usr/include/crt/device_functions.h" 3 4 +__attribute__((device)) __attribute__((cudart_builtin)) __attribute__((device_builtin)) unsigned int __vsads4(unsigned int a, unsigned int b); + + + + + + +} +# 3229 "/usr/include/crt/device_functions.h" 3 4 +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) __attribute__((deprecated("mulhi" "() is deprecated in favor of __" "mulhi" "() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) int mulhi(const int a, const int b); + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) __attribute__((deprecated("mulhi" "() is deprecated in favor of __" "mulhi" "() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned int mulhi(const unsigned int a, const unsigned int b); + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) __attribute__((deprecated("mulhi" "() is deprecated in favor of __" "mulhi" "() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned int mulhi(const int a, const unsigned int b); + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) __attribute__((deprecated("mulhi" "() is deprecated in favor of __" "mulhi" "() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned int mulhi(const unsigned int a, const int b); + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) __attribute__((deprecated("mul64hi" "() is deprecated in favor of __" "mul64hi" "() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) long long int mul64hi(const long long int a, const long long int b); + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) __attribute__((deprecated("mul64hi" "() is deprecated in favor of __" "mul64hi" "() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned long long int mul64hi(const unsigned long long int a, const unsigned long long int b); + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) __attribute__((deprecated("mul64hi" "() is deprecated in favor of __" "mul64hi" "() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned long long int mul64hi(const long long int a, const unsigned long long int b); + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) __attribute__((deprecated("mul64hi" "() is deprecated in favor of __" "mul64hi" "() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned long long int mul64hi(const unsigned long long int a, const long long int b); + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) __attribute__((deprecated("float_as_int" "() is deprecated in favor of __" "float_as_int" "() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) int float_as_int(const float a); + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) __attribute__((deprecated("int_as_float" "() is deprecated in favor of __" "int_as_float" "() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) float int_as_float(const int a); + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) __attribute__((deprecated("float_as_uint" "() is deprecated in favor of __" "float_as_uint" "() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned int float_as_uint(const float a); + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) __attribute__((deprecated("uint_as_float" "() is deprecated in favor of __" "uint_as_float" "() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) float uint_as_float(const unsigned int a); + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) __attribute__((deprecated("saturate" "() is deprecated in favor of __" "saturate" "f" "() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) float saturate(const float a); + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) __attribute__((deprecated("mul24" "() is deprecated in favor of __" "mul24" "() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) int mul24(const int a, const int b); + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) __attribute__((deprecated("umul24" "() is deprecated in favor of __" "umul24" "() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned int umul24(const unsigned int a, const unsigned int b); + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) __attribute__((deprecated("float2int" "() is deprecated in favor of __" "float2int" "_ru|_rd|_rn|_rz" "() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) int float2int(const float a, const enum cudaRoundMode mode = cudaRoundZero); + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) __attribute__((deprecated("float2uint" "() is deprecated in favor of __" "float2uint" "_ru|_rd|_rn|_rz" "() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned int float2uint(const float a, const enum cudaRoundMode mode = cudaRoundZero); + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) __attribute__((deprecated("int2float" "() is deprecated in favor of __" "int2float" "_ru|_rd|_rn|_rz" "() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) float int2float(const int a, const enum cudaRoundMode mode = cudaRoundNearest); + +static __inline__ __attribute__((device)) __attribute__((cudart_builtin)) __attribute__((deprecated("uint2float" "() is deprecated in favor of __" "uint2float" "_ru|_rd|_rn|_rz" "() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) float uint2float(const unsigned int a, const enum cudaRoundMode mode = cudaRoundNearest); +# 3285 "/usr/include/crt/device_functions.h" 3 4 +# 1 "/usr/include/crt/device_functions.hpp" 1 3 4 +# 79 "/usr/include/crt/device_functions.hpp" 3 4 +# 1 "/usr/include/builtin_types.h" 1 3 4 +# 80 "/usr/include/crt/device_functions.hpp" 2 3 4 + +# 1 "/usr/include/crt/host_defines.h" 1 3 4 +# 82 "/usr/include/crt/device_functions.hpp" 2 3 4 +# 90 "/usr/include/crt/device_functions.hpp" 3 4 +static __inline__ __attribute__((device)) int mulhi(const int a, const int b) +{ + return __mulhi(a, b); +} + +static __inline__ __attribute__((device)) unsigned int mulhi(const unsigned int a, const unsigned int b) +{ + return __umulhi(a, b); +} + +static __inline__ __attribute__((device)) unsigned int mulhi(const int a, const unsigned int b) +{ + return __umulhi(static_cast(a), b); +} + +static __inline__ __attribute__((device)) unsigned int mulhi(const unsigned int a, const int b) +{ + return __umulhi(a, static_cast(b)); +} + +static __inline__ __attribute__((device)) long long int mul64hi(const long long int a, const long long int b) +{ + return __mul64hi(a, b); +} + +static __inline__ __attribute__((device)) unsigned long long int mul64hi(const unsigned long long int a, const unsigned long long int b) +{ + return __umul64hi(a, b); +} + +static __inline__ __attribute__((device)) unsigned long long int mul64hi(const long long int a, const unsigned long long int b) +{ + return __umul64hi(static_cast(a), b); +} + +static __inline__ __attribute__((device)) unsigned long long int mul64hi(const unsigned long long int a, const long long int b) +{ + return __umul64hi(a, static_cast(b)); +} + +static __inline__ __attribute__((device)) int float_as_int(const float a) +{ + return __float_as_int(a); +} + +static __inline__ __attribute__((device)) float int_as_float(const int a) +{ + return __int_as_float(a); +} + +static __inline__ __attribute__((device)) unsigned int float_as_uint(const float a) +{ + return __float_as_uint(a); +} + +static __inline__ __attribute__((device)) float uint_as_float(const unsigned int a) +{ + return __uint_as_float(a); +} +static __inline__ __attribute__((device)) float saturate(const float a) +{ + return __saturatef(a); +} + +static __inline__ __attribute__((device)) int mul24(const int a, const int b) +{ + return __mul24(a, b); +} + +static __inline__ __attribute__((device)) unsigned int umul24(const unsigned int a, const unsigned int b) +{ + return __umul24(a, b); +} + +static __inline__ __attribute__((device)) int float2int(const float a, const enum cudaRoundMode mode) +{ + return (mode == cudaRoundNearest) ? __float2int_rn(a) : + (mode == cudaRoundPosInf ) ? __float2int_ru(a) : + (mode == cudaRoundMinInf ) ? __float2int_rd(a) : + __float2int_rz(a); +} + +static __inline__ __attribute__((device)) unsigned int float2uint(const float a, const enum cudaRoundMode mode) +{ + return (mode == cudaRoundNearest) ? __float2uint_rn(a) : + (mode == cudaRoundPosInf ) ? __float2uint_ru(a) : + (mode == cudaRoundMinInf ) ? __float2uint_rd(a) : + __float2uint_rz(a); +} + +static __inline__ __attribute__((device)) float int2float(const int a, const enum cudaRoundMode mode) +{ + return (mode == cudaRoundZero ) ? __int2float_rz(a) : + (mode == cudaRoundPosInf) ? __int2float_ru(a) : + (mode == cudaRoundMinInf) ? __int2float_rd(a) : + __int2float_rn(a); +} + +static __inline__ __attribute__((device)) float uint2float(const unsigned int a, const enum cudaRoundMode mode) +{ + return (mode == cudaRoundZero ) ? __uint2float_rz(a) : + (mode == cudaRoundPosInf) ? __uint2float_ru(a) : + (mode == cudaRoundMinInf) ? __uint2float_rd(a) : + __uint2float_rn(a); +} +# 3286 "/usr/include/crt/device_functions.h" 2 3 4 + + +# 1 "/usr/include/device_atomic_functions.h" 1 3 4 +# 106 "/usr/include/device_atomic_functions.h" 3 4 +static __inline__ __attribute__((device)) int atomicAdd(int *address, int val) { } + +static __inline__ __attribute__((device)) unsigned int atomicAdd(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) int atomicSub(int *address, int val) { } + +static __inline__ __attribute__((device)) unsigned int atomicSub(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) int atomicExch(int *address, int val) { } + +static __inline__ __attribute__((device)) unsigned int atomicExch(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) float atomicExch(float *address, float val) { } + +static __inline__ __attribute__((device)) int atomicMin(int *address, int val) { } + +static __inline__ __attribute__((device)) unsigned int atomicMin(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) int atomicMax(int *address, int val) { } + +static __inline__ __attribute__((device)) unsigned int atomicMax(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) unsigned int atomicInc(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) unsigned int atomicDec(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) int atomicAnd(int *address, int val) { } + +static __inline__ __attribute__((device)) unsigned int atomicAnd(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) int atomicOr(int *address, int val) { } + +static __inline__ __attribute__((device)) unsigned int atomicOr(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) int atomicXor(int *address, int val) { } + +static __inline__ __attribute__((device)) unsigned int atomicXor(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) int atomicCAS(int *address, int compare, int val) { } + +static __inline__ __attribute__((device)) unsigned int atomicCAS(unsigned int *address, unsigned int compare, unsigned int val) { } +# 171 "/usr/include/device_atomic_functions.h" 3 4 +extern "C" +{ + + + + + +extern __attribute__((device)) __attribute__((device_builtin)) __attribute__((deprecated("__any""() is deprecated in favor of ""__any""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) int __any(int cond); +extern __attribute__((device)) __attribute__((device_builtin)) __attribute__((deprecated("__all""() is deprecated in favor of ""__all""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) int __all(int cond); +} +# 189 "/usr/include/device_atomic_functions.h" 3 4 +static __inline__ __attribute__((device)) unsigned long long int atomicAdd(unsigned long long int *address, unsigned long long int val) { } + +static __inline__ __attribute__((device)) unsigned long long int atomicExch(unsigned long long int *address, unsigned long long int val) { } + +static __inline__ __attribute__((device)) unsigned long long int atomicCAS(unsigned long long int *address, unsigned long long int compare, unsigned long long int val) { } + +static __inline__ __attribute__((device)) __attribute__((deprecated("__any""() is deprecated in favor of ""__any""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) bool any(bool cond) { } + +static __inline__ __attribute__((device)) __attribute__((deprecated("__all""() is deprecated in favor of ""__all""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) bool all(bool cond) { } +# 3289 "/usr/include/crt/device_functions.h" 2 3 4 +# 1 "/usr/include/crt/device_double_functions.h" 1 3 4 +# 83 "/usr/include/crt/device_double_functions.h" 3 4 +# 1 "/usr/include/builtin_types.h" 1 3 4 +# 84 "/usr/include/crt/device_double_functions.h" 2 3 4 + +# 1 "/usr/include/crt/host_defines.h" 1 3 4 +# 86 "/usr/include/crt/device_double_functions.h" 2 3 4 + +extern "C" +{ +# 97 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double_as_longlong(double x); +# 106 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __longlong_as_double(long long int x); +# 263 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_rn(double x, double y, double z); +# 420 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_rz(double x, double y, double z); +# 577 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_ru(double x, double y, double z); +# 734 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_rd(double x, double y, double z); +# 746 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_rn(double x, double y); +# 758 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_rz(double x, double y); +# 770 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_ru(double x, double y); +# 782 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_rd(double x, double y); +# 794 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_rn(double x, double y); +# 806 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_rz(double x, double y); +# 818 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_ru(double x, double y); +# 830 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_rd(double x, double y); +# 842 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_rn(double x, double y); +# 854 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_rz(double x, double y); +# 866 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_ru(double x, double y); +# 878 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_rd(double x, double y); +# 887 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_rn(double x); +# 896 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_rz(double x); +# 905 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_ru(double x); +# 914 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_rd(double x); +# 923 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) int __double2int_rn(double x); +# 932 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) int __double2int_ru(double x); +# 941 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) int __double2int_rd(double x); +# 950 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __double2uint_rn(double x); +# 959 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __double2uint_ru(double x); +# 968 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __double2uint_rd(double x); +# 977 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double2ll_rn(double x); +# 986 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double2ll_ru(double x); +# 995 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double2ll_rd(double x); +# 1004 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long int __double2ull_rn(double x); +# 1013 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long int __double2ull_ru(double x); +# 1022 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long int __double2ull_rd(double x); + + + + + + + +extern __attribute__((device)) __attribute__((device_builtin)) double __int2double_rn(int x); + + + + + + + +extern __attribute__((device)) __attribute__((device_builtin)) double __uint2double_rn(unsigned int x); +# 1047 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_rn(long long int x); +# 1056 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_rz(long long int x); +# 1065 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_ru(long long int x); +# 1074 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_rd(long long int x); +# 1083 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_rn(unsigned long long int x); +# 1092 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_rz(unsigned long long int x); +# 1101 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_ru(unsigned long long int x); +# 1110 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_rd(unsigned long long int x); +# 1119 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) int __double2hiint(double x); +# 1128 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) int __double2loint(double x); +# 1138 "/usr/include/crt/device_double_functions.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __hiloint2double(int hi, int lo); +} + + + + + + + +static __inline__ __attribute__((device)) double fma(double a, double b, double c, enum cudaRoundMode mode); + +static __inline__ __attribute__((device)) double dmul(double a, double b, enum cudaRoundMode mode = cudaRoundNearest); + +static __inline__ __attribute__((device)) double dadd(double a, double b, enum cudaRoundMode mode = cudaRoundNearest); + +static __inline__ __attribute__((device)) double dsub(double a, double b, enum cudaRoundMode mode = cudaRoundNearest); + +static __inline__ __attribute__((device)) int double2int(double a, enum cudaRoundMode mode = cudaRoundZero); + +static __inline__ __attribute__((device)) unsigned int double2uint(double a, enum cudaRoundMode mode = cudaRoundZero); + +static __inline__ __attribute__((device)) long long int double2ll(double a, enum cudaRoundMode mode = cudaRoundZero); + +static __inline__ __attribute__((device)) unsigned long long int double2ull(double a, enum cudaRoundMode mode = cudaRoundZero); + +static __inline__ __attribute__((device)) double ll2double(long long int a, enum cudaRoundMode mode = cudaRoundNearest); + +static __inline__ __attribute__((device)) double ull2double(unsigned long long int a, enum cudaRoundMode mode = cudaRoundNearest); + +static __inline__ __attribute__((device)) double int2double(int a, enum cudaRoundMode mode = cudaRoundNearest); + +static __inline__ __attribute__((device)) double uint2double(unsigned int a, enum cudaRoundMode mode = cudaRoundNearest); + +static __inline__ __attribute__((device)) double float2double(float a, enum cudaRoundMode mode = cudaRoundNearest); + + + + + + +# 1 "/usr/include/crt/device_double_functions.hpp" 1 3 4 +# 83 "/usr/include/crt/device_double_functions.hpp" 3 4 +# 1 "/usr/include/builtin_types.h" 1 3 4 +# 84 "/usr/include/crt/device_double_functions.hpp" 2 3 4 + +# 1 "/usr/include/crt/host_defines.h" 1 3 4 +# 86 "/usr/include/crt/device_double_functions.hpp" 2 3 4 + + + + + + + +static __inline__ __attribute__((device)) double fma(double a, double b, double c, enum cudaRoundMode mode) +{ + return mode == cudaRoundZero ? __fma_rz(a, b, c) : + mode == cudaRoundPosInf ? __fma_ru(a, b, c) : + mode == cudaRoundMinInf ? __fma_rd(a, b, c) : + __fma_rn(a, b, c); +} + +static __inline__ __attribute__((device)) double dmul(double a, double b, enum cudaRoundMode mode) +{ + return mode == cudaRoundZero ? __dmul_rz(a, b) : + mode == cudaRoundPosInf ? __dmul_ru(a, b) : + mode == cudaRoundMinInf ? __dmul_rd(a, b) : + __dmul_rn(a, b); +} + +static __inline__ __attribute__((device)) double dadd(double a, double b, enum cudaRoundMode mode) +{ + return mode == cudaRoundZero ? __dadd_rz(a, b) : + mode == cudaRoundPosInf ? __dadd_ru(a, b) : + mode == cudaRoundMinInf ? __dadd_rd(a, b) : + __dadd_rn(a, b); +} + +static __inline__ __attribute__((device)) double dsub(double a, double b, enum cudaRoundMode mode) +{ + return mode == cudaRoundZero ? __dsub_rz(a, b) : + mode == cudaRoundPosInf ? __dsub_ru(a, b) : + mode == cudaRoundMinInf ? __dsub_rd(a, b) : + __dsub_rn(a, b); +} + +static __inline__ __attribute__((device)) int double2int(double a, enum cudaRoundMode mode) +{ + return mode == cudaRoundNearest ? __double2int_rn(a) : + mode == cudaRoundPosInf ? __double2int_ru(a) : + mode == cudaRoundMinInf ? __double2int_rd(a) : + __double2int_rz(a); +} + +static __inline__ __attribute__((device)) unsigned int double2uint(double a, enum cudaRoundMode mode) +{ + return mode == cudaRoundNearest ? __double2uint_rn(a) : + mode == cudaRoundPosInf ? __double2uint_ru(a) : + mode == cudaRoundMinInf ? __double2uint_rd(a) : + __double2uint_rz(a); +} + +static __inline__ __attribute__((device)) long long int double2ll(double a, enum cudaRoundMode mode) +{ + return mode == cudaRoundNearest ? __double2ll_rn(a) : + mode == cudaRoundPosInf ? __double2ll_ru(a) : + mode == cudaRoundMinInf ? __double2ll_rd(a) : + __double2ll_rz(a); +} + +static __inline__ __attribute__((device)) unsigned long long int double2ull(double a, enum cudaRoundMode mode) +{ + return mode == cudaRoundNearest ? __double2ull_rn(a) : + mode == cudaRoundPosInf ? __double2ull_ru(a) : + mode == cudaRoundMinInf ? __double2ull_rd(a) : + __double2ull_rz(a); +} + +static __inline__ __attribute__((device)) double ll2double(long long int a, enum cudaRoundMode mode) +{ + return mode == cudaRoundZero ? __ll2double_rz(a) : + mode == cudaRoundPosInf ? __ll2double_ru(a) : + mode == cudaRoundMinInf ? __ll2double_rd(a) : + __ll2double_rn(a); +} + +static __inline__ __attribute__((device)) double ull2double(unsigned long long int a, enum cudaRoundMode mode) +{ + return mode == cudaRoundZero ? __ull2double_rz(a) : + mode == cudaRoundPosInf ? __ull2double_ru(a) : + mode == cudaRoundMinInf ? __ull2double_rd(a) : + __ull2double_rn(a); +} + +static __inline__ __attribute__((device)) double int2double(int a, enum cudaRoundMode mode) +{ + return (double)a; +} + +static __inline__ __attribute__((device)) double uint2double(unsigned int a, enum cudaRoundMode mode) +{ + return (double)a; +} + +static __inline__ __attribute__((device)) double float2double(float a, enum cudaRoundMode mode) +{ + return (double)a; +} +# 1179 "/usr/include/crt/device_double_functions.h" 2 3 4 +# 3290 "/usr/include/crt/device_functions.h" 2 3 4 +# 1 "/usr/include/sm_20_atomic_functions.h" 1 3 4 +# 89 "/usr/include/sm_20_atomic_functions.h" 3 4 +static __inline__ __attribute__((device)) float atomicAdd(float *address, float val) { } +# 3291 "/usr/include/crt/device_functions.h" 2 3 4 +# 1 "/usr/include/sm_32_atomic_functions.h" 1 3 4 +# 100 "/usr/include/sm_32_atomic_functions.h" 3 4 +static __inline__ __attribute__((device)) long long atomicMin(long long *address, long long val) { } + +static __inline__ __attribute__((device)) long long atomicMax(long long *address, long long val) { } + +static __inline__ __attribute__((device)) long long atomicAnd(long long *address, long long val) { } + +static __inline__ __attribute__((device)) long long atomicOr(long long *address, long long val) { } + +static __inline__ __attribute__((device)) long long atomicXor(long long *address, long long val) { } + +static __inline__ __attribute__((device)) unsigned long long atomicMin(unsigned long long *address, unsigned long long val) { } + +static __inline__ __attribute__((device)) unsigned long long atomicMax(unsigned long long *address, unsigned long long val) { } + +static __inline__ __attribute__((device)) unsigned long long atomicAnd(unsigned long long *address, unsigned long long val) { } + +static __inline__ __attribute__((device)) unsigned long long atomicOr(unsigned long long *address, unsigned long long val) { } + +static __inline__ __attribute__((device)) unsigned long long atomicXor(unsigned long long *address, unsigned long long val) { } +# 3292 "/usr/include/crt/device_functions.h" 2 3 4 +# 1 "/usr/include/sm_35_atomic_functions.h" 1 3 4 +# 56 "/usr/include/sm_35_atomic_functions.h" 3 4 +# 1 "/usr/include/sm_32_atomic_functions.h" 1 3 4 +# 57 "/usr/include/sm_35_atomic_functions.h" 2 3 4 +# 3293 "/usr/include/crt/device_functions.h" 2 3 4 +# 1 "/usr/include/sm_60_atomic_functions.h" 1 3 4 +# 303 "/usr/include/sm_60_atomic_functions.h" 3 4 +static __inline__ __attribute__((device)) double atomicAdd(double *address, double val) { } + +static __inline__ __attribute__((device)) +int atomicAdd_block(int *address, int val) { } + +static __inline__ __attribute__((device)) +int atomicAdd_system(int *address, int val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicAdd_block(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicAdd_system(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned long long atomicAdd_block(unsigned long long *address, unsigned long long val) { } + +static __inline__ __attribute__((device)) +unsigned long long atomicAdd_system(unsigned long long *address, unsigned long long val) { } + +static __inline__ __attribute__((device)) +float atomicAdd_block(float *address, float val) { } + +static __inline__ __attribute__((device)) +float atomicAdd_system(float *address, float val) { } + +static __inline__ __attribute__((device)) +double atomicAdd_block(double *address, double val) { } + +static __inline__ __attribute__((device)) +double atomicAdd_system(double *address, double val) { } + +static __inline__ __attribute__((device)) +int atomicSub_block(int *address, int val) { } + +static __inline__ __attribute__((device)) +int atomicSub_system(int *address, int val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicSub_block(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicSub_system(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +int atomicExch_block(int *address, int val) { } + +static __inline__ __attribute__((device)) +int atomicExch_system(int *address, int val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicExch_block(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicExch_system(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned long long atomicExch_block(unsigned long long *address, unsigned long long val) { } + +static __inline__ __attribute__((device)) +unsigned long long atomicExch_system(unsigned long long *address, unsigned long long val) { } + +static __inline__ __attribute__((device)) +float atomicExch_block(float *address, float val) { } + +static __inline__ __attribute__((device)) +float atomicExch_system(float *address, float val) { } + +static __inline__ __attribute__((device)) +int atomicMin_block(int *address, int val) { } + +static __inline__ __attribute__((device)) +int atomicMin_system(int *address, int val) { } + +static __inline__ __attribute__((device)) +long long atomicMin_block(long long *address, long long val) { } + +static __inline__ __attribute__((device)) +long long atomicMin_system(long long *address, long long val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicMin_block(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicMin_system(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned long long atomicMin_block(unsigned long long *address, unsigned long long val) { } + +static __inline__ __attribute__((device)) +unsigned long long atomicMin_system(unsigned long long *address, unsigned long long val) { } + +static __inline__ __attribute__((device)) +int atomicMax_block(int *address, int val) { } + +static __inline__ __attribute__((device)) +int atomicMax_system(int *address, int val) { } + +static __inline__ __attribute__((device)) +long long atomicMax_block(long long *address, long long val) { } + +static __inline__ __attribute__((device)) +long long atomicMax_system(long long *address, long long val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicMax_block(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicMax_system(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned long long atomicMax_block(unsigned long long *address, unsigned long long val) { } + +static __inline__ __attribute__((device)) +unsigned long long atomicMax_system(unsigned long long *address, unsigned long long val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicInc_block(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicInc_system(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicDec_block(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicDec_system(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +int atomicCAS_block(int *address, int compare, int val) { } + +static __inline__ __attribute__((device)) +int atomicCAS_system(int *address, int compare, int val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicCAS_block(unsigned int *address, unsigned int compare, + unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicCAS_system(unsigned int *address, unsigned int compare, + unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned long long int atomicCAS_block(unsigned long long int *address, + unsigned long long int compare, + unsigned long long int val) { } + +static __inline__ __attribute__((device)) +unsigned long long int atomicCAS_system(unsigned long long int *address, + unsigned long long int compare, + unsigned long long int val) { } + +static __inline__ __attribute__((device)) +int atomicAnd_block(int *address, int val) { } + +static __inline__ __attribute__((device)) +int atomicAnd_system(int *address, int val) { } + +static __inline__ __attribute__((device)) +long long atomicAnd_block(long long *address, long long val) { } + +static __inline__ __attribute__((device)) +long long atomicAnd_system(long long *address, long long val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicAnd_block(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicAnd_system(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned long long atomicAnd_block(unsigned long long *address, unsigned long long val) { } + +static __inline__ __attribute__((device)) +unsigned long long atomicAnd_system(unsigned long long *address, unsigned long long val) { } + +static __inline__ __attribute__((device)) +int atomicOr_block(int *address, int val) { } + +static __inline__ __attribute__((device)) +int atomicOr_system(int *address, int val) { } + +static __inline__ __attribute__((device)) +long long atomicOr_block(long long *address, long long val) { } + +static __inline__ __attribute__((device)) +long long atomicOr_system(long long *address, long long val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicOr_block(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicOr_system(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned long long atomicOr_block(unsigned long long *address, unsigned long long val) { } + +static __inline__ __attribute__((device)) +unsigned long long atomicOr_system(unsigned long long *address, unsigned long long val) { } + +static __inline__ __attribute__((device)) +int atomicXor_block(int *address, int val) { } + +static __inline__ __attribute__((device)) +int atomicXor_system(int *address, int val) { } + +static __inline__ __attribute__((device)) +long long atomicXor_block(long long *address, long long val) { } + +static __inline__ __attribute__((device)) +long long atomicXor_system(long long *address, long long val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicXor_block(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned int atomicXor_system(unsigned int *address, unsigned int val) { } + +static __inline__ __attribute__((device)) +unsigned long long atomicXor_block(unsigned long long *address, unsigned long long val) { } + +static __inline__ __attribute__((device)) +unsigned long long atomicXor_system(unsigned long long *address, unsigned long long val) { } +# 3294 "/usr/include/crt/device_functions.h" 2 3 4 +# 1 "/usr/include/sm_20_intrinsics.h" 1 3 4 +# 90 "/usr/include/sm_20_intrinsics.h" 3 4 +extern "C" +{ +extern __attribute__((device)) __attribute__((device_builtin)) void __threadfence_system(void); +# 104 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __ddiv_rn(double x, double y); +# 116 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __ddiv_rz(double x, double y); +# 128 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __ddiv_ru(double x, double y); +# 140 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __ddiv_rd(double x, double y); +# 174 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __drcp_rn(double x); +# 208 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __drcp_rz(double x); +# 242 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __drcp_ru(double x); +# 276 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __drcp_rd(double x); +# 308 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __dsqrt_rn(double x); +# 340 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __dsqrt_rz(double x); +# 372 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __dsqrt_ru(double x); +# 404 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __dsqrt_rd(double x); +extern __attribute__((device)) __attribute__((device_builtin)) __attribute__((deprecated("__ballot""() is deprecated in favor of ""__ballot""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned int __ballot(int); +extern __attribute__((device)) __attribute__((device_builtin)) int __syncthreads_count(int); +extern __attribute__((device)) __attribute__((device_builtin)) int __syncthreads_and(int); +extern __attribute__((device)) __attribute__((device_builtin)) int __syncthreads_or(int); +extern __attribute__((device)) __attribute__((device_builtin)) long long int clock64(void); +# 419 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) float __fmaf_ieee_rn(float x, float y, float z); +# 428 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) float __fmaf_ieee_rd(float x, float y, float z); +# 437 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) float __fmaf_ieee_ru(float x, float y, float z); +# 446 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) float __fmaf_ieee_rz(float x, float y, float z); +# 459 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double_as_longlong(double x); +# 468 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __longlong_as_double(long long int x); +# 625 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_rn(double x, double y, double z); +# 782 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_rz(double x, double y, double z); +# 939 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_ru(double x, double y, double z); +# 1096 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __fma_rd(double x, double y, double z); +# 1108 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_rn(double x, double y); +# 1120 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_rz(double x, double y); +# 1132 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_ru(double x, double y); +# 1144 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __dadd_rd(double x, double y); +# 1156 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_rn(double x, double y); +# 1168 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_rz(double x, double y); +# 1180 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_ru(double x, double y); +# 1192 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __dsub_rd(double x, double y); +# 1204 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_rn(double x, double y); +# 1216 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_rz(double x, double y); +# 1228 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_ru(double x, double y); +# 1240 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __dmul_rd(double x, double y); +# 1249 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_rn(double x); +# 1258 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_rz(double x); +# 1267 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_ru(double x); +# 1276 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) float __double2float_rd(double x); +# 1285 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) int __double2int_rn(double x); +# 1294 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) int __double2int_ru(double x); +# 1303 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) int __double2int_rd(double x); +# 1312 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __double2uint_rn(double x); +# 1321 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __double2uint_ru(double x); +# 1330 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) unsigned int __double2uint_rd(double x); +# 1339 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double2ll_rn(double x); +# 1348 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double2ll_ru(double x); +# 1357 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) long long int __double2ll_rd(double x); +# 1366 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long int __double2ull_rn(double x); +# 1375 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long int __double2ull_ru(double x); +# 1384 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) unsigned long long int __double2ull_rd(double x); + + + + + + + +extern __attribute__((device)) __attribute__((device_builtin)) double __int2double_rn(int x); + + + + + + + +extern __attribute__((device)) __attribute__((device_builtin)) double __uint2double_rn(unsigned int x); +# 1409 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_rn(long long int x); +# 1418 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_rz(long long int x); +# 1427 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_ru(long long int x); +# 1436 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __ll2double_rd(long long int x); +# 1445 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_rn(unsigned long long int x); +# 1454 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_rz(unsigned long long int x); +# 1463 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_ru(unsigned long long int x); +# 1472 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __ull2double_rd(unsigned long long int x); +# 1481 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) int __double2hiint(double x); +# 1490 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) int __double2loint(double x); +# 1500 "/usr/include/sm_20_intrinsics.h" 3 4 +extern __attribute__((device)) __attribute__((device_builtin)) double __hiloint2double(int hi, int lo); + + +} + + + + + + +static __inline__ __attribute__((device)) __attribute__((deprecated("__ballot""() is deprecated in favor of ""__ballot""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned int ballot(bool pred) { } + +static __inline__ __attribute__((device)) int syncthreads_count(bool pred) { } + +static __inline__ __attribute__((device)) bool syncthreads_and(bool pred) { } + +static __inline__ __attribute__((device)) bool syncthreads_or(bool pred) { } + + + + +static __inline__ __attribute__((device)) unsigned int __isGlobal(const void *ptr) { } +static __inline__ __attribute__((device)) unsigned int __isShared(const void *ptr) { } +static __inline__ __attribute__((device)) unsigned int __isConstant(const void *ptr) { } +static __inline__ __attribute__((device)) unsigned int __isLocal(const void *ptr) { } + +static __inline__ __attribute__((device)) unsigned int __isGridConstant(const void *ptr) { } + +static __inline__ __attribute__((device)) size_t __cvta_generic_to_global(const void *ptr) { } +static __inline__ __attribute__((device)) size_t __cvta_generic_to_shared(const void *ptr) { } +static __inline__ __attribute__((device)) size_t __cvta_generic_to_constant(const void *ptr) { } +static __inline__ __attribute__((device)) size_t __cvta_generic_to_local(const void *ptr) { } + +static __inline__ __attribute__((device)) size_t __cvta_generic_to_grid_constant(const void *ptr) { } + + +static __inline__ __attribute__((device)) void * __cvta_global_to_generic(size_t rawbits) { } +static __inline__ __attribute__((device)) void * __cvta_shared_to_generic(size_t rawbits) { } +static __inline__ __attribute__((device)) void * __cvta_constant_to_generic(size_t rawbits) { } +static __inline__ __attribute__((device)) void * __cvta_local_to_generic(size_t rawbits) { } + +static __inline__ __attribute__((device)) void * __cvta_grid_constant_to_generic(size_t rawbits) { } +# 3295 "/usr/include/crt/device_functions.h" 2 3 4 +# 1 "/usr/include/sm_30_intrinsics.h" 1 3 4 +# 102 "/usr/include/sm_30_intrinsics.h" 3 4 +static __attribute__((device)) __inline__ unsigned __fns(unsigned mask, unsigned base, int offset) { } +static __attribute__((device)) __inline__ void __barrier_sync(unsigned id) { } +static __attribute__((device)) __inline__ void __barrier_sync_count(unsigned id, unsigned cnt) { } +static __attribute__((device)) __inline__ void __syncwarp(unsigned mask=0xFFFFFFFF) { } +static __attribute__((device)) __inline__ int __all_sync(unsigned mask, int pred) { } +static __attribute__((device)) __inline__ int __any_sync(unsigned mask, int pred) { } +static __attribute__((device)) __inline__ int __uni_sync(unsigned mask, int pred) { } +static __attribute__((device)) __inline__ unsigned __ballot_sync(unsigned mask, int pred) { } +static __attribute__((device)) __inline__ unsigned __activemask() { } +# 119 "/usr/include/sm_30_intrinsics.h" 3 4 +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl""() is deprecated in favor of ""__shfl""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) int __shfl(int var, int srcLane, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl""() is deprecated in favor of ""__shfl""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned int __shfl(unsigned int var, int srcLane, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_up""() is deprecated in favor of ""__shfl_up""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) int __shfl_up(int var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_up""() is deprecated in favor of ""__shfl_up""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned int __shfl_up(unsigned int var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_down""() is deprecated in favor of ""__shfl_down""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) int __shfl_down(int var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_down""() is deprecated in favor of ""__shfl_down""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned int __shfl_down(unsigned int var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_xor""() is deprecated in favor of ""__shfl_xor""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) int __shfl_xor(int var, int laneMask, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_xor""() is deprecated in favor of ""__shfl_xor""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned int __shfl_xor(unsigned int var, int laneMask, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl""() is deprecated in favor of ""__shfl""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) float __shfl(float var, int srcLane, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_up""() is deprecated in favor of ""__shfl_up""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) float __shfl_up(float var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_down""() is deprecated in favor of ""__shfl_down""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) float __shfl_down(float var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_xor""() is deprecated in favor of ""__shfl_xor""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) float __shfl_xor(float var, int laneMask, int width=32) { } + + +static __attribute__((device)) __inline__ int __shfl_sync(unsigned mask, int var, int srcLane, int width=32) { } +static __attribute__((device)) __inline__ unsigned int __shfl_sync(unsigned mask, unsigned int var, int srcLane, int width=32) { } +static __attribute__((device)) __inline__ int __shfl_up_sync(unsigned mask, int var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ unsigned int __shfl_up_sync(unsigned mask, unsigned int var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ int __shfl_down_sync(unsigned mask, int var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ unsigned int __shfl_down_sync(unsigned mask, unsigned int var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ int __shfl_xor_sync(unsigned mask, int var, int laneMask, int width=32) { } +static __attribute__((device)) __inline__ unsigned int __shfl_xor_sync(unsigned mask, unsigned int var, int laneMask, int width=32) { } +static __attribute__((device)) __inline__ float __shfl_sync(unsigned mask, float var, int srcLane, int width=32) { } +static __attribute__((device)) __inline__ float __shfl_up_sync(unsigned mask, float var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ float __shfl_down_sync(unsigned mask, float var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ float __shfl_xor_sync(unsigned mask, float var, int laneMask, int width=32) { } + + + +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl""() is deprecated in favor of ""__shfl""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned long long __shfl(unsigned long long var, int srcLane, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl""() is deprecated in favor of ""__shfl""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) long long __shfl(long long var, int srcLane, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_up""() is deprecated in favor of ""__shfl_up""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) long long __shfl_up(long long var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_up""() is deprecated in favor of ""__shfl_up""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned long long __shfl_up(unsigned long long var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_down""() is deprecated in favor of ""__shfl_down""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) long long __shfl_down(long long var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_down""() is deprecated in favor of ""__shfl_down""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned long long __shfl_down(unsigned long long var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_xor""() is deprecated in favor of ""__shfl_xor""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) long long __shfl_xor(long long var, int laneMask, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_xor""() is deprecated in favor of ""__shfl_xor""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned long long __shfl_xor(unsigned long long var, int laneMask, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl""() is deprecated in favor of ""__shfl""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) double __shfl(double var, int srcLane, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_up""() is deprecated in favor of ""__shfl_up""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) double __shfl_up(double var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_down""() is deprecated in favor of ""__shfl_down""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) double __shfl_down(double var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_xor""() is deprecated in favor of ""__shfl_xor""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) double __shfl_xor(double var, int laneMask, int width=32) { } + + +static __attribute__((device)) __inline__ long long __shfl_sync(unsigned mask, long long var, int srcLane, int width=32) { } +static __attribute__((device)) __inline__ unsigned long long __shfl_sync(unsigned mask, unsigned long long var, int srcLane, int width=32) { } +static __attribute__((device)) __inline__ long long __shfl_up_sync(unsigned mask, long long var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ unsigned long long __shfl_up_sync(unsigned mask, unsigned long long var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ long long __shfl_down_sync(unsigned mask, long long var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ unsigned long long __shfl_down_sync(unsigned mask, unsigned long long var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ long long __shfl_xor_sync(unsigned mask, long long var, int laneMask, int width=32) { } +static __attribute__((device)) __inline__ unsigned long long __shfl_xor_sync(unsigned mask, unsigned long long var, int laneMask, int width=32) { } +static __attribute__((device)) __inline__ double __shfl_sync(unsigned mask, double var, int srcLane, int width=32) { } +static __attribute__((device)) __inline__ double __shfl_up_sync(unsigned mask, double var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ double __shfl_down_sync(unsigned mask, double var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ double __shfl_xor_sync(unsigned mask, double var, int laneMask, int width=32) { } + + + +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl""() is deprecated in favor of ""__shfl""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) long __shfl(long var, int srcLane, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl""() is deprecated in favor of ""__shfl""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned long __shfl(unsigned long var, int srcLane, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_up""() is deprecated in favor of ""__shfl_up""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) long __shfl_up(long var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_up""() is deprecated in favor of ""__shfl_up""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned long __shfl_up(unsigned long var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_down""() is deprecated in favor of ""__shfl_down""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) long __shfl_down(long var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_down""() is deprecated in favor of ""__shfl_down""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned long __shfl_down(unsigned long var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_xor""() is deprecated in favor of ""__shfl_xor""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) long __shfl_xor(long var, int laneMask, int width=32) { } +static __attribute__((device)) __inline__ __attribute__((deprecated("__shfl_xor""() is deprecated in favor of ""__shfl_xor""_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress this warning)."))) unsigned long __shfl_xor(unsigned long var, int laneMask, int width=32) { } + + +static __attribute__((device)) __inline__ long __shfl_sync(unsigned mask, long var, int srcLane, int width=32) { } +static __attribute__((device)) __inline__ unsigned long __shfl_sync(unsigned mask, unsigned long var, int srcLane, int width=32) { } +static __attribute__((device)) __inline__ long __shfl_up_sync(unsigned mask, long var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ unsigned long __shfl_up_sync(unsigned mask, unsigned long var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ long __shfl_down_sync(unsigned mask, long var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ unsigned long __shfl_down_sync(unsigned mask, unsigned long var, unsigned int delta, int width=32) { } +static __attribute__((device)) __inline__ long __shfl_xor_sync(unsigned mask, long var, int laneMask, int width=32) { } +static __attribute__((device)) __inline__ unsigned long __shfl_xor_sync(unsigned mask, unsigned long var, int laneMask, int width=32) { } +# 3296 "/usr/include/crt/device_functions.h" 2 3 4 +# 1 "/usr/include/sm_32_intrinsics.h" 1 3 4 +# 87 "/usr/include/sm_32_intrinsics.h" 3 4 +static __attribute__((device)) __inline__ long __ldg(const long *ptr) { } +static __attribute__((device)) __inline__ unsigned long __ldg(const unsigned long *ptr) { } + +static __attribute__((device)) __inline__ char __ldg(const char *ptr) { } +static __attribute__((device)) __inline__ signed char __ldg(const signed char *ptr) { } +static __attribute__((device)) __inline__ short __ldg(const short *ptr) { } +static __attribute__((device)) __inline__ int __ldg(const int *ptr) { } +static __attribute__((device)) __inline__ long long __ldg(const long long *ptr) { } +static __attribute__((device)) __inline__ char2 __ldg(const char2 *ptr) { } +static __attribute__((device)) __inline__ char4 __ldg(const char4 *ptr) { } +static __attribute__((device)) __inline__ short2 __ldg(const short2 *ptr) { } +static __attribute__((device)) __inline__ short4 __ldg(const short4 *ptr) { } +static __attribute__((device)) __inline__ int2 __ldg(const int2 *ptr) { } +static __attribute__((device)) __inline__ int4 __ldg(const int4 *ptr) { } +static __attribute__((device)) __inline__ longlong2 __ldg(const longlong2 *ptr) { } + +static __attribute__((device)) __inline__ unsigned char __ldg(const unsigned char *ptr) { } +static __attribute__((device)) __inline__ unsigned short __ldg(const unsigned short *ptr) { } +static __attribute__((device)) __inline__ unsigned int __ldg(const unsigned int *ptr) { } +static __attribute__((device)) __inline__ unsigned long long __ldg(const unsigned long long *ptr) { } +static __attribute__((device)) __inline__ uchar2 __ldg(const uchar2 *ptr) { } +static __attribute__((device)) __inline__ uchar4 __ldg(const uchar4 *ptr) { } +static __attribute__((device)) __inline__ ushort2 __ldg(const ushort2 *ptr) { } +static __attribute__((device)) __inline__ ushort4 __ldg(const ushort4 *ptr) { } +static __attribute__((device)) __inline__ uint2 __ldg(const uint2 *ptr) { } +static __attribute__((device)) __inline__ uint4 __ldg(const uint4 *ptr) { } +static __attribute__((device)) __inline__ ulonglong2 __ldg(const ulonglong2 *ptr) { } + +static __attribute__((device)) __inline__ float __ldg(const float *ptr) { } +static __attribute__((device)) __inline__ double __ldg(const double *ptr) { } +static __attribute__((device)) __inline__ float2 __ldg(const float2 *ptr) { } +static __attribute__((device)) __inline__ float4 __ldg(const float4 *ptr) { } +static __attribute__((device)) __inline__ double2 __ldg(const double2 *ptr) { } + + + +static __attribute__((device)) __inline__ long __ldcg(const long *ptr) { } +static __attribute__((device)) __inline__ unsigned long __ldcg(const unsigned long *ptr) { } + +static __attribute__((device)) __inline__ char __ldcg(const char *ptr) { } +static __attribute__((device)) __inline__ signed char __ldcg(const signed char *ptr) { } +static __attribute__((device)) __inline__ short __ldcg(const short *ptr) { } +static __attribute__((device)) __inline__ int __ldcg(const int *ptr) { } +static __attribute__((device)) __inline__ long long __ldcg(const long long *ptr) { } +static __attribute__((device)) __inline__ char2 __ldcg(const char2 *ptr) { } +static __attribute__((device)) __inline__ char4 __ldcg(const char4 *ptr) { } +static __attribute__((device)) __inline__ short2 __ldcg(const short2 *ptr) { } +static __attribute__((device)) __inline__ short4 __ldcg(const short4 *ptr) { } +static __attribute__((device)) __inline__ int2 __ldcg(const int2 *ptr) { } +static __attribute__((device)) __inline__ int4 __ldcg(const int4 *ptr) { } +static __attribute__((device)) __inline__ longlong2 __ldcg(const longlong2 *ptr) { } + +static __attribute__((device)) __inline__ unsigned char __ldcg(const unsigned char *ptr) { } +static __attribute__((device)) __inline__ unsigned short __ldcg(const unsigned short *ptr) { } +static __attribute__((device)) __inline__ unsigned int __ldcg(const unsigned int *ptr) { } +static __attribute__((device)) __inline__ unsigned long long __ldcg(const unsigned long long *ptr) { } +static __attribute__((device)) __inline__ uchar2 __ldcg(const uchar2 *ptr) { } +static __attribute__((device)) __inline__ uchar4 __ldcg(const uchar4 *ptr) { } +static __attribute__((device)) __inline__ ushort2 __ldcg(const ushort2 *ptr) { } +static __attribute__((device)) __inline__ ushort4 __ldcg(const ushort4 *ptr) { } +static __attribute__((device)) __inline__ uint2 __ldcg(const uint2 *ptr) { } +static __attribute__((device)) __inline__ uint4 __ldcg(const uint4 *ptr) { } +static __attribute__((device)) __inline__ ulonglong2 __ldcg(const ulonglong2 *ptr) { } + +static __attribute__((device)) __inline__ float __ldcg(const float *ptr) { } +static __attribute__((device)) __inline__ double __ldcg(const double *ptr) { } +static __attribute__((device)) __inline__ float2 __ldcg(const float2 *ptr) { } +static __attribute__((device)) __inline__ float4 __ldcg(const float4 *ptr) { } +static __attribute__((device)) __inline__ double2 __ldcg(const double2 *ptr) { } + + + +static __attribute__((device)) __inline__ long __ldca(const long *ptr) { } +static __attribute__((device)) __inline__ unsigned long __ldca(const unsigned long *ptr) { } + +static __attribute__((device)) __inline__ char __ldca(const char *ptr) { } +static __attribute__((device)) __inline__ signed char __ldca(const signed char *ptr) { } +static __attribute__((device)) __inline__ short __ldca(const short *ptr) { } +static __attribute__((device)) __inline__ int __ldca(const int *ptr) { } +static __attribute__((device)) __inline__ long long __ldca(const long long *ptr) { } +static __attribute__((device)) __inline__ char2 __ldca(const char2 *ptr) { } +static __attribute__((device)) __inline__ char4 __ldca(const char4 *ptr) { } +static __attribute__((device)) __inline__ short2 __ldca(const short2 *ptr) { } +static __attribute__((device)) __inline__ short4 __ldca(const short4 *ptr) { } +static __attribute__((device)) __inline__ int2 __ldca(const int2 *ptr) { } +static __attribute__((device)) __inline__ int4 __ldca(const int4 *ptr) { } +static __attribute__((device)) __inline__ longlong2 __ldca(const longlong2 *ptr) { } + +static __attribute__((device)) __inline__ unsigned char __ldca(const unsigned char *ptr) { } +static __attribute__((device)) __inline__ unsigned short __ldca(const unsigned short *ptr) { } +static __attribute__((device)) __inline__ unsigned int __ldca(const unsigned int *ptr) { } +static __attribute__((device)) __inline__ unsigned long long __ldca(const unsigned long long *ptr) { } +static __attribute__((device)) __inline__ uchar2 __ldca(const uchar2 *ptr) { } +static __attribute__((device)) __inline__ uchar4 __ldca(const uchar4 *ptr) { } +static __attribute__((device)) __inline__ ushort2 __ldca(const ushort2 *ptr) { } +static __attribute__((device)) __inline__ ushort4 __ldca(const ushort4 *ptr) { } +static __attribute__((device)) __inline__ uint2 __ldca(const uint2 *ptr) { } +static __attribute__((device)) __inline__ uint4 __ldca(const uint4 *ptr) { } +static __attribute__((device)) __inline__ ulonglong2 __ldca(const ulonglong2 *ptr) { } + +static __attribute__((device)) __inline__ float __ldca(const float *ptr) { } +static __attribute__((device)) __inline__ double __ldca(const double *ptr) { } +static __attribute__((device)) __inline__ float2 __ldca(const float2 *ptr) { } +static __attribute__((device)) __inline__ float4 __ldca(const float4 *ptr) { } +static __attribute__((device)) __inline__ double2 __ldca(const double2 *ptr) { } + + + +static __attribute__((device)) __inline__ long __ldcs(const long *ptr) { } +static __attribute__((device)) __inline__ unsigned long __ldcs(const unsigned long *ptr) { } + +static __attribute__((device)) __inline__ char __ldcs(const char *ptr) { } +static __attribute__((device)) __inline__ signed char __ldcs(const signed char *ptr) { } +static __attribute__((device)) __inline__ short __ldcs(const short *ptr) { } +static __attribute__((device)) __inline__ int __ldcs(const int *ptr) { } +static __attribute__((device)) __inline__ long long __ldcs(const long long *ptr) { } +static __attribute__((device)) __inline__ char2 __ldcs(const char2 *ptr) { } +static __attribute__((device)) __inline__ char4 __ldcs(const char4 *ptr) { } +static __attribute__((device)) __inline__ short2 __ldcs(const short2 *ptr) { } +static __attribute__((device)) __inline__ short4 __ldcs(const short4 *ptr) { } +static __attribute__((device)) __inline__ int2 __ldcs(const int2 *ptr) { } +static __attribute__((device)) __inline__ int4 __ldcs(const int4 *ptr) { } +static __attribute__((device)) __inline__ longlong2 __ldcs(const longlong2 *ptr) { } + +static __attribute__((device)) __inline__ unsigned char __ldcs(const unsigned char *ptr) { } +static __attribute__((device)) __inline__ unsigned short __ldcs(const unsigned short *ptr) { } +static __attribute__((device)) __inline__ unsigned int __ldcs(const unsigned int *ptr) { } +static __attribute__((device)) __inline__ unsigned long long __ldcs(const unsigned long long *ptr) { } +static __attribute__((device)) __inline__ uchar2 __ldcs(const uchar2 *ptr) { } +static __attribute__((device)) __inline__ uchar4 __ldcs(const uchar4 *ptr) { } +static __attribute__((device)) __inline__ ushort2 __ldcs(const ushort2 *ptr) { } +static __attribute__((device)) __inline__ ushort4 __ldcs(const ushort4 *ptr) { } +static __attribute__((device)) __inline__ uint2 __ldcs(const uint2 *ptr) { } +static __attribute__((device)) __inline__ uint4 __ldcs(const uint4 *ptr) { } +static __attribute__((device)) __inline__ ulonglong2 __ldcs(const ulonglong2 *ptr) { } + +static __attribute__((device)) __inline__ float __ldcs(const float *ptr) { } +static __attribute__((device)) __inline__ double __ldcs(const double *ptr) { } +static __attribute__((device)) __inline__ float2 __ldcs(const float2 *ptr) { } +static __attribute__((device)) __inline__ float4 __ldcs(const float4 *ptr) { } +static __attribute__((device)) __inline__ double2 __ldcs(const double2 *ptr) { } + + + +static __attribute__((device)) __inline__ long __ldlu(const long *ptr) { } +static __attribute__((device)) __inline__ unsigned long __ldlu(const unsigned long *ptr) { } + +static __attribute__((device)) __inline__ char __ldlu(const char *ptr) { } +static __attribute__((device)) __inline__ signed char __ldlu(const signed char *ptr) { } +static __attribute__((device)) __inline__ short __ldlu(const short *ptr) { } +static __attribute__((device)) __inline__ int __ldlu(const int *ptr) { } +static __attribute__((device)) __inline__ long long __ldlu(const long long *ptr) { } +static __attribute__((device)) __inline__ char2 __ldlu(const char2 *ptr) { } +static __attribute__((device)) __inline__ char4 __ldlu(const char4 *ptr) { } +static __attribute__((device)) __inline__ short2 __ldlu(const short2 *ptr) { } +static __attribute__((device)) __inline__ short4 __ldlu(const short4 *ptr) { } +static __attribute__((device)) __inline__ int2 __ldlu(const int2 *ptr) { } +static __attribute__((device)) __inline__ int4 __ldlu(const int4 *ptr) { } +static __attribute__((device)) __inline__ longlong2 __ldlu(const longlong2 *ptr) { } + +static __attribute__((device)) __inline__ unsigned char __ldlu(const unsigned char *ptr) { } +static __attribute__((device)) __inline__ unsigned short __ldlu(const unsigned short *ptr) { } +static __attribute__((device)) __inline__ unsigned int __ldlu(const unsigned int *ptr) { } +static __attribute__((device)) __inline__ unsigned long long __ldlu(const unsigned long long *ptr) { } +static __attribute__((device)) __inline__ uchar2 __ldlu(const uchar2 *ptr) { } +static __attribute__((device)) __inline__ uchar4 __ldlu(const uchar4 *ptr) { } +static __attribute__((device)) __inline__ ushort2 __ldlu(const ushort2 *ptr) { } +static __attribute__((device)) __inline__ ushort4 __ldlu(const ushort4 *ptr) { } +static __attribute__((device)) __inline__ uint2 __ldlu(const uint2 *ptr) { } +static __attribute__((device)) __inline__ uint4 __ldlu(const uint4 *ptr) { } +static __attribute__((device)) __inline__ ulonglong2 __ldlu(const ulonglong2 *ptr) { } + +static __attribute__((device)) __inline__ float __ldlu(const float *ptr) { } +static __attribute__((device)) __inline__ double __ldlu(const double *ptr) { } +static __attribute__((device)) __inline__ float2 __ldlu(const float2 *ptr) { } +static __attribute__((device)) __inline__ float4 __ldlu(const float4 *ptr) { } +static __attribute__((device)) __inline__ double2 __ldlu(const double2 *ptr) { } + + + +static __attribute__((device)) __inline__ long __ldcv(const long *ptr) { } +static __attribute__((device)) __inline__ unsigned long __ldcv(const unsigned long *ptr) { } + +static __attribute__((device)) __inline__ char __ldcv(const char *ptr) { } +static __attribute__((device)) __inline__ signed char __ldcv(const signed char *ptr) { } +static __attribute__((device)) __inline__ short __ldcv(const short *ptr) { } +static __attribute__((device)) __inline__ int __ldcv(const int *ptr) { } +static __attribute__((device)) __inline__ long long __ldcv(const long long *ptr) { } +static __attribute__((device)) __inline__ char2 __ldcv(const char2 *ptr) { } +static __attribute__((device)) __inline__ char4 __ldcv(const char4 *ptr) { } +static __attribute__((device)) __inline__ short2 __ldcv(const short2 *ptr) { } +static __attribute__((device)) __inline__ short4 __ldcv(const short4 *ptr) { } +static __attribute__((device)) __inline__ int2 __ldcv(const int2 *ptr) { } +static __attribute__((device)) __inline__ int4 __ldcv(const int4 *ptr) { } +static __attribute__((device)) __inline__ longlong2 __ldcv(const longlong2 *ptr) { } + +static __attribute__((device)) __inline__ unsigned char __ldcv(const unsigned char *ptr) { } +static __attribute__((device)) __inline__ unsigned short __ldcv(const unsigned short *ptr) { } +static __attribute__((device)) __inline__ unsigned int __ldcv(const unsigned int *ptr) { } +static __attribute__((device)) __inline__ unsigned long long __ldcv(const unsigned long long *ptr) { } +static __attribute__((device)) __inline__ uchar2 __ldcv(const uchar2 *ptr) { } +static __attribute__((device)) __inline__ uchar4 __ldcv(const uchar4 *ptr) { } +static __attribute__((device)) __inline__ ushort2 __ldcv(const ushort2 *ptr) { } +static __attribute__((device)) __inline__ ushort4 __ldcv(const ushort4 *ptr) { } +static __attribute__((device)) __inline__ uint2 __ldcv(const uint2 *ptr) { } +static __attribute__((device)) __inline__ uint4 __ldcv(const uint4 *ptr) { } +static __attribute__((device)) __inline__ ulonglong2 __ldcv(const ulonglong2 *ptr) { } + +static __attribute__((device)) __inline__ float __ldcv(const float *ptr) { } +static __attribute__((device)) __inline__ double __ldcv(const double *ptr) { } +static __attribute__((device)) __inline__ float2 __ldcv(const float2 *ptr) { } +static __attribute__((device)) __inline__ float4 __ldcv(const float4 *ptr) { } +static __attribute__((device)) __inline__ double2 __ldcv(const double2 *ptr) { } + + + +static __attribute__((device)) __inline__ void __stwb(long *ptr, long value) { } +static __attribute__((device)) __inline__ void __stwb(unsigned long *ptr, unsigned long value) { } + +static __attribute__((device)) __inline__ void __stwb(char *ptr, char value) { } +static __attribute__((device)) __inline__ void __stwb(signed char *ptr, signed char value) { } +static __attribute__((device)) __inline__ void __stwb(short *ptr, short value) { } +static __attribute__((device)) __inline__ void __stwb(int *ptr, int value) { } +static __attribute__((device)) __inline__ void __stwb(long long *ptr, long long value) { } +static __attribute__((device)) __inline__ void __stwb(char2 *ptr, char2 value) { } +static __attribute__((device)) __inline__ void __stwb(char4 *ptr, char4 value) { } +static __attribute__((device)) __inline__ void __stwb(short2 *ptr, short2 value) { } +static __attribute__((device)) __inline__ void __stwb(short4 *ptr, short4 value) { } +static __attribute__((device)) __inline__ void __stwb(int2 *ptr, int2 value) { } +static __attribute__((device)) __inline__ void __stwb(int4 *ptr, int4 value) { } +static __attribute__((device)) __inline__ void __stwb(longlong2 *ptr, longlong2 value) { } + +static __attribute__((device)) __inline__ void __stwb(unsigned char *ptr, unsigned char value) { } +static __attribute__((device)) __inline__ void __stwb(unsigned short *ptr, unsigned short value) { } +static __attribute__((device)) __inline__ void __stwb(unsigned int *ptr, unsigned int value) { } +static __attribute__((device)) __inline__ void __stwb(unsigned long long *ptr, unsigned long long value) { } +static __attribute__((device)) __inline__ void __stwb(uchar2 *ptr, uchar2 value) { } +static __attribute__((device)) __inline__ void __stwb(uchar4 *ptr, uchar4 value) { } +static __attribute__((device)) __inline__ void __stwb(ushort2 *ptr, ushort2 value) { } +static __attribute__((device)) __inline__ void __stwb(ushort4 *ptr, ushort4 value) { } +static __attribute__((device)) __inline__ void __stwb(uint2 *ptr, uint2 value) { } +static __attribute__((device)) __inline__ void __stwb(uint4 *ptr, uint4 value) { } +static __attribute__((device)) __inline__ void __stwb(ulonglong2 *ptr, ulonglong2 value) { } + +static __attribute__((device)) __inline__ void __stwb(float *ptr, float value) { } +static __attribute__((device)) __inline__ void __stwb(double *ptr, double value) { } +static __attribute__((device)) __inline__ void __stwb(float2 *ptr, float2 value) { } +static __attribute__((device)) __inline__ void __stwb(float4 *ptr, float4 value) { } +static __attribute__((device)) __inline__ void __stwb(double2 *ptr, double2 value) { } + + + +static __attribute__((device)) __inline__ void __stcg(long *ptr, long value) { } +static __attribute__((device)) __inline__ void __stcg(unsigned long *ptr, unsigned long value) { } + +static __attribute__((device)) __inline__ void __stcg(char *ptr, char value) { } +static __attribute__((device)) __inline__ void __stcg(signed char *ptr, signed char value) { } +static __attribute__((device)) __inline__ void __stcg(short *ptr, short value) { } +static __attribute__((device)) __inline__ void __stcg(int *ptr, int value) { } +static __attribute__((device)) __inline__ void __stcg(long long *ptr, long long value) { } +static __attribute__((device)) __inline__ void __stcg(char2 *ptr, char2 value) { } +static __attribute__((device)) __inline__ void __stcg(char4 *ptr, char4 value) { } +static __attribute__((device)) __inline__ void __stcg(short2 *ptr, short2 value) { } +static __attribute__((device)) __inline__ void __stcg(short4 *ptr, short4 value) { } +static __attribute__((device)) __inline__ void __stcg(int2 *ptr, int2 value) { } +static __attribute__((device)) __inline__ void __stcg(int4 *ptr, int4 value) { } +static __attribute__((device)) __inline__ void __stcg(longlong2 *ptr, longlong2 value) { } + +static __attribute__((device)) __inline__ void __stcg(unsigned char *ptr, unsigned char value) { } +static __attribute__((device)) __inline__ void __stcg(unsigned short *ptr, unsigned short value) { } +static __attribute__((device)) __inline__ void __stcg(unsigned int *ptr, unsigned int value) { } +static __attribute__((device)) __inline__ void __stcg(unsigned long long *ptr, unsigned long long value) { } +static __attribute__((device)) __inline__ void __stcg(uchar2 *ptr, uchar2 value) { } +static __attribute__((device)) __inline__ void __stcg(uchar4 *ptr, uchar4 value) { } +static __attribute__((device)) __inline__ void __stcg(ushort2 *ptr, ushort2 value) { } +static __attribute__((device)) __inline__ void __stcg(ushort4 *ptr, ushort4 value) { } +static __attribute__((device)) __inline__ void __stcg(uint2 *ptr, uint2 value) { } +static __attribute__((device)) __inline__ void __stcg(uint4 *ptr, uint4 value) { } +static __attribute__((device)) __inline__ void __stcg(ulonglong2 *ptr, ulonglong2 value) { } + +static __attribute__((device)) __inline__ void __stcg(float *ptr, float value) { } +static __attribute__((device)) __inline__ void __stcg(double *ptr, double value) { } +static __attribute__((device)) __inline__ void __stcg(float2 *ptr, float2 value) { } +static __attribute__((device)) __inline__ void __stcg(float4 *ptr, float4 value) { } +static __attribute__((device)) __inline__ void __stcg(double2 *ptr, double2 value) { } + + + +static __attribute__((device)) __inline__ void __stcs(long *ptr, long value) { } +static __attribute__((device)) __inline__ void __stcs(unsigned long *ptr, unsigned long value) { } + +static __attribute__((device)) __inline__ void __stcs(char *ptr, char value) { } +static __attribute__((device)) __inline__ void __stcs(signed char *ptr, signed char value) { } +static __attribute__((device)) __inline__ void __stcs(short *ptr, short value) { } +static __attribute__((device)) __inline__ void __stcs(int *ptr, int value) { } +static __attribute__((device)) __inline__ void __stcs(long long *ptr, long long value) { } +static __attribute__((device)) __inline__ void __stcs(char2 *ptr, char2 value) { } +static __attribute__((device)) __inline__ void __stcs(char4 *ptr, char4 value) { } +static __attribute__((device)) __inline__ void __stcs(short2 *ptr, short2 value) { } +static __attribute__((device)) __inline__ void __stcs(short4 *ptr, short4 value) { } +static __attribute__((device)) __inline__ void __stcs(int2 *ptr, int2 value) { } +static __attribute__((device)) __inline__ void __stcs(int4 *ptr, int4 value) { } +static __attribute__((device)) __inline__ void __stcs(longlong2 *ptr, longlong2 value) { } + +static __attribute__((device)) __inline__ void __stcs(unsigned char *ptr, unsigned char value) { } +static __attribute__((device)) __inline__ void __stcs(unsigned short *ptr, unsigned short value) { } +static __attribute__((device)) __inline__ void __stcs(unsigned int *ptr, unsigned int value) { } +static __attribute__((device)) __inline__ void __stcs(unsigned long long *ptr, unsigned long long value) { } +static __attribute__((device)) __inline__ void __stcs(uchar2 *ptr, uchar2 value) { } +static __attribute__((device)) __inline__ void __stcs(uchar4 *ptr, uchar4 value) { } +static __attribute__((device)) __inline__ void __stcs(ushort2 *ptr, ushort2 value) { } +static __attribute__((device)) __inline__ void __stcs(ushort4 *ptr, ushort4 value) { } +static __attribute__((device)) __inline__ void __stcs(uint2 *ptr, uint2 value) { } +static __attribute__((device)) __inline__ void __stcs(uint4 *ptr, uint4 value) { } +static __attribute__((device)) __inline__ void __stcs(ulonglong2 *ptr, ulonglong2 value) { } + +static __attribute__((device)) __inline__ void __stcs(float *ptr, float value) { } +static __attribute__((device)) __inline__ void __stcs(double *ptr, double value) { } +static __attribute__((device)) __inline__ void __stcs(float2 *ptr, float2 value) { } +static __attribute__((device)) __inline__ void __stcs(float4 *ptr, float4 value) { } +static __attribute__((device)) __inline__ void __stcs(double2 *ptr, double2 value) { } + + + +static __attribute__((device)) __inline__ void __stwt(long *ptr, long value) { } +static __attribute__((device)) __inline__ void __stwt(unsigned long *ptr, unsigned long value) { } + +static __attribute__((device)) __inline__ void __stwt(char *ptr, char value) { } +static __attribute__((device)) __inline__ void __stwt(signed char *ptr, signed char value) { } +static __attribute__((device)) __inline__ void __stwt(short *ptr, short value) { } +static __attribute__((device)) __inline__ void __stwt(int *ptr, int value) { } +static __attribute__((device)) __inline__ void __stwt(long long *ptr, long long value) { } +static __attribute__((device)) __inline__ void __stwt(char2 *ptr, char2 value) { } +static __attribute__((device)) __inline__ void __stwt(char4 *ptr, char4 value) { } +static __attribute__((device)) __inline__ void __stwt(short2 *ptr, short2 value) { } +static __attribute__((device)) __inline__ void __stwt(short4 *ptr, short4 value) { } +static __attribute__((device)) __inline__ void __stwt(int2 *ptr, int2 value) { } +static __attribute__((device)) __inline__ void __stwt(int4 *ptr, int4 value) { } +static __attribute__((device)) __inline__ void __stwt(longlong2 *ptr, longlong2 value) { } + +static __attribute__((device)) __inline__ void __stwt(unsigned char *ptr, unsigned char value) { } +static __attribute__((device)) __inline__ void __stwt(unsigned short *ptr, unsigned short value) { } +static __attribute__((device)) __inline__ void __stwt(unsigned int *ptr, unsigned int value) { } +static __attribute__((device)) __inline__ void __stwt(unsigned long long *ptr, unsigned long long value) { } +static __attribute__((device)) __inline__ void __stwt(uchar2 *ptr, uchar2 value) { } +static __attribute__((device)) __inline__ void __stwt(uchar4 *ptr, uchar4 value) { } +static __attribute__((device)) __inline__ void __stwt(ushort2 *ptr, ushort2 value) { } +static __attribute__((device)) __inline__ void __stwt(ushort4 *ptr, ushort4 value) { } +static __attribute__((device)) __inline__ void __stwt(uint2 *ptr, uint2 value) { } +static __attribute__((device)) __inline__ void __stwt(uint4 *ptr, uint4 value) { } +static __attribute__((device)) __inline__ void __stwt(ulonglong2 *ptr, ulonglong2 value) { } + +static __attribute__((device)) __inline__ void __stwt(float *ptr, float value) { } +static __attribute__((device)) __inline__ void __stwt(double *ptr, double value) { } +static __attribute__((device)) __inline__ void __stwt(float2 *ptr, float2 value) { } +static __attribute__((device)) __inline__ void __stwt(float4 *ptr, float4 value) { } +static __attribute__((device)) __inline__ void __stwt(double2 *ptr, double2 value) { } +# 460 "/usr/include/sm_32_intrinsics.h" 3 4 +static __attribute__((device)) __inline__ unsigned int __funnelshift_l(unsigned int lo, unsigned int hi, unsigned int shift) { } +# 472 "/usr/include/sm_32_intrinsics.h" 3 4 +static __attribute__((device)) __inline__ unsigned int __funnelshift_lc(unsigned int lo, unsigned int hi, unsigned int shift) { } +# 485 "/usr/include/sm_32_intrinsics.h" 3 4 +static __attribute__((device)) __inline__ unsigned int __funnelshift_r(unsigned int lo, unsigned int hi, unsigned int shift) { } +# 497 "/usr/include/sm_32_intrinsics.h" 3 4 +static __attribute__((device)) __inline__ unsigned int __funnelshift_rc(unsigned int lo, unsigned int hi, unsigned int shift) { } +# 3297 "/usr/include/crt/device_functions.h" 2 3 4 +# 1 "/usr/include/sm_35_intrinsics.h" 1 3 4 +# 111 "/usr/include/sm_35_intrinsics.h" 3 4 +# 1 "/usr/include/sm_32_intrinsics.h" 1 3 4 +# 112 "/usr/include/sm_35_intrinsics.h" 2 3 4 +# 3298 "/usr/include/crt/device_functions.h" 2 3 4 +# 1 "/usr/include/sm_61_intrinsics.h" 1 3 4 +# 89 "/usr/include/sm_61_intrinsics.h" 3 4 +static __attribute__((device)) __inline__ int __dp2a_lo(int srcA, int srcB, int c) { } +static __attribute__((device)) __inline__ unsigned int __dp2a_lo(unsigned int srcA, unsigned int srcB, unsigned int c) { } + +static __attribute__((device)) __inline__ int __dp2a_lo(short2 srcA, char4 srcB, int c) { } +static __attribute__((device)) __inline__ unsigned int __dp2a_lo(ushort2 srcA, uchar4 srcB, unsigned int c) { } + +static __attribute__((device)) __inline__ int __dp2a_hi(int srcA, int srcB, int c) { } +static __attribute__((device)) __inline__ unsigned int __dp2a_hi(unsigned int srcA, unsigned int srcB, unsigned int c) { } + +static __attribute__((device)) __inline__ int __dp2a_hi(short2 srcA, char4 srcB, int c) { } +static __attribute__((device)) __inline__ unsigned int __dp2a_hi(ushort2 srcA, uchar4 srcB, unsigned int c) { } + + + + + + +static __attribute__((device)) __inline__ int __dp4a(int srcA, int srcB, int c) { } +static __attribute__((device)) __inline__ unsigned int __dp4a(unsigned int srcA, unsigned int srcB, unsigned int c) { } + +static __attribute__((device)) __inline__ int __dp4a(char4 srcA, char4 srcB, int c) { } +static __attribute__((device)) __inline__ unsigned int __dp4a(uchar4 srcA, uchar4 srcB, unsigned int c) { } +# 3299 "/usr/include/crt/device_functions.h" 2 3 4 +# 1 "/usr/include/crt/sm_70_rt.h" 1 3 4 +# 79 "/usr/include/crt/sm_70_rt.h" 3 4 +# 1 "/usr/include/builtin_types.h" 1 3 4 +# 80 "/usr/include/crt/sm_70_rt.h" 2 3 4 + +# 1 "/usr/include/crt/host_defines.h" 1 3 4 +# 82 "/usr/include/crt/sm_70_rt.h" 2 3 4 +# 93 "/usr/include/crt/sm_70_rt.h" 3 4 +static __attribute__((device)) __inline__ unsigned int __match_any_sync(unsigned mask, unsigned value) { } +static __attribute__((device)) __inline__ unsigned int __match_any_sync(unsigned mask, int value) { } +static __attribute__((device)) __inline__ unsigned int __match_any_sync(unsigned mask, unsigned long value) { } +static __attribute__((device)) __inline__ unsigned int __match_any_sync(unsigned mask, long value) { } +static __attribute__((device)) __inline__ unsigned int __match_any_sync(unsigned mask, unsigned long long value) { } +static __attribute__((device)) __inline__ unsigned int __match_any_sync(unsigned mask, long long value) { } +static __attribute__((device)) __inline__ unsigned int __match_any_sync(unsigned mask, float value) { } +static __attribute__((device)) __inline__ unsigned int __match_any_sync(unsigned mask, double value) { } + +static __attribute__((device)) __inline__ unsigned int __match_all_sync(unsigned mask, unsigned value, int *pred) { } +static __attribute__((device)) __inline__ unsigned int __match_all_sync(unsigned mask, int value, int *pred) { } +static __attribute__((device)) __inline__ unsigned int __match_all_sync(unsigned mask, unsigned long value, int *pred) { } +static __attribute__((device)) __inline__ unsigned int __match_all_sync(unsigned mask, long value, int *pred) { } +static __attribute__((device)) __inline__ unsigned int __match_all_sync(unsigned mask, unsigned long long value, int *pred) { } +static __attribute__((device)) __inline__ unsigned int __match_all_sync(unsigned mask, long long value, int *pred) { } +static __attribute__((device)) __inline__ unsigned int __match_all_sync(unsigned mask, float value, int *pred) { } +static __attribute__((device)) __inline__ unsigned int __match_all_sync(unsigned mask, double value, int *pred) { } + +static __attribute__((device)) __inline__ void __nanosleep(unsigned int ns) { } + +static __attribute__((device)) __inline__ unsigned short int atomicCAS(unsigned short int *address, unsigned short int compare, unsigned short int val) { } +# 3300 "/usr/include/crt/device_functions.h" 2 3 4 +# 1 "/usr/include/crt/sm_80_rt.h" 1 3 4 +# 79 "/usr/include/crt/sm_80_rt.h" 3 4 +# 1 "/usr/include/builtin_types.h" 1 3 4 +# 80 "/usr/include/crt/sm_80_rt.h" 2 3 4 + +# 1 "/usr/include/crt/host_defines.h" 1 3 4 +# 82 "/usr/include/crt/sm_80_rt.h" 2 3 4 +# 93 "/usr/include/crt/sm_80_rt.h" 3 4 +static __attribute__((device)) __inline__ unsigned __reduce_add_sync(unsigned mask, unsigned value) { } +static __attribute__((device)) __inline__ unsigned __reduce_min_sync(unsigned mask, unsigned value) { } +static __attribute__((device)) __inline__ unsigned __reduce_max_sync(unsigned mask, unsigned value) { } + +static __attribute__((device)) __inline__ int __reduce_add_sync(unsigned mask, int value) { } +static __attribute__((device)) __inline__ int __reduce_min_sync(unsigned mask, int value) { } +static __attribute__((device)) __inline__ int __reduce_max_sync(unsigned mask, int value) { } + +static __attribute__((device)) __inline__ unsigned __reduce_and_sync(unsigned mask, unsigned value) { } +static __attribute__((device)) __inline__ unsigned __reduce_or_sync(unsigned mask, unsigned value) { } +static __attribute__((device)) __inline__ unsigned __reduce_xor_sync(unsigned mask, unsigned value) { } + + +extern "C" { +inline __attribute__((device)) void *__nv_associate_access_property(const void *ptr, + unsigned long long property) { + extern __attribute__((device)) void *__nv_associate_access_property_impl(const void *, + unsigned long long); + return __nv_associate_access_property_impl(ptr, property); +} + +inline __attribute__((device)) void __nv_memcpy_async_shared_global_4(void *dst, + const void *src, + unsigned src_size) { + extern __attribute__((device)) void __nv_memcpy_async_shared_global_4_impl(void *, + const void *, + unsigned); + __nv_memcpy_async_shared_global_4_impl(dst, src, src_size); +} + +inline __attribute__((device)) void __nv_memcpy_async_shared_global_8(void *dst, + const void *src, + unsigned src_size) { + extern __attribute__((device)) void __nv_memcpy_async_shared_global_8_impl(void *, + const void *, + unsigned); + __nv_memcpy_async_shared_global_8_impl(dst, src, src_size); +} + +inline __attribute__((device)) void __nv_memcpy_async_shared_global_16(void *dst, + const void *src, + unsigned src_size) { + extern __attribute__((device)) void __nv_memcpy_async_shared_global_16_impl(void *, + const void *, + unsigned); + __nv_memcpy_async_shared_global_16_impl(dst, src, src_size); +} + +} +# 3301 "/usr/include/crt/device_functions.h" 2 3 4 +# 1 "/usr/include/crt/sm_90_rt.h" 1 3 4 +# 79 "/usr/include/crt/sm_90_rt.h" 3 4 +# 1 "/usr/include/builtin_types.h" 1 3 4 +# 80 "/usr/include/crt/sm_90_rt.h" 2 3 4 + +# 1 "/usr/include/crt/host_defines.h" 1 3 4 +# 82 "/usr/include/crt/sm_90_rt.h" 2 3 4 + + + + + + + +static __attribute__((device)) __inline__ unsigned __isCtaShared(const void *ptr) { } +static __attribute__((device)) __inline__ unsigned __isClusterShared(const void *ptr) { } +static __attribute__((device)) __inline__ void *__cluster_map_shared_rank(const void *ptr, unsigned target_block_rank) { } +static __attribute__((device)) __inline__ unsigned __cluster_query_shared_rank(const void *ptr) { } +static __attribute__((device)) __inline__ uint2 __cluster_map_shared_multicast(const void *ptr, unsigned cluster_cta_mask) { } +static __attribute__((device)) __inline__ unsigned __clusterDimIsSpecified() { } +static __attribute__((device)) __inline__ dim3 __clusterDim() { } +static __attribute__((device)) __inline__ dim3 __clusterRelativeBlockIdx() { } +static __attribute__((device)) __inline__ dim3 __clusterGridDimInClusters() { } +static __attribute__((device)) __inline__ dim3 __clusterIdx() { } +static __attribute__((device)) __inline__ unsigned __clusterRelativeBlockRank() { } +static __attribute__((device)) __inline__ unsigned __clusterSizeInBlocks() { } +static __attribute__((device)) __inline__ void __cluster_barrier_arrive() { } +static __attribute__((device)) __inline__ void __cluster_barrier_wait() { } +static __attribute__((device)) __inline__ void __threadfence_cluster() { } +# 3302 "/usr/include/crt/device_functions.h" 2 3 4 +# 1 "/usr/include/surface_functions.h" 1 3 4 +# 122 "/usr/include/surface_functions.h" 3 4 +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) void surf1Dread(T *res, surface surf, int x, int s, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + + +} + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) T surf1Dread(surface surf, int x, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + + + + +} + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) void surf1Dread(T *res, surface surf, int x, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + + +} + + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) void surf2Dread(T *res, surface surf, int x, int y, int s, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + + +} + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) T surf2Dread(surface surf, int x, int y, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + + + + +} + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) void surf2Dread(T *res, surface surf, int x, int y, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + + +} + + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) void surf3Dread(T *res, surface surf, int x, int y, int z, int s, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + + +} + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) T surf3Dread(surface surf, int x, int y, int z, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + + + + +} + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) void surf3Dread(T *res, surface surf, int x, int y, int z, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + + +} + + + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) void surf1DLayeredread(T *res, surface surf, int x, int layer, int s, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + + +} + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) T surf1DLayeredread(surface surf, int x, int layer, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + + + + +} + + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) void surf1DLayeredread(T *res, surface surf, int x, int layer, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + + +} + + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) void surf2DLayeredread(T *res, surface surf, int x, int y, int layer, int s, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + + +} + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) T surf2DLayeredread(surface surf, int x, int y, int layer, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + + + + +} + + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) void surf2DLayeredread(T *res, surface surf, int x, int y, int layer, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + + +} + + +template +static __attribute__((device)) __inline__ __attribute__((always_inline)) void surfCubemapread(T *res, surface surf, int x, int y, int face, int s, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + + +} + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) T surfCubemapread(surface surf, int x, int y, int face, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + + + + + +} + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) void surfCubemapread(T *res, surface surf, int x, int y, int face, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + + +} + + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) void surfCubemapLayeredread(T *res, surface surf, int x, int y, int layerFace, int s, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + + +} + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) T surfCubemapLayeredread(surface surf, int x, int y, int layerFace, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + + + + +} + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) void surfCubemapLayeredread(T *res, surface surf, int x, int y, int layerFace, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + + +} + + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) void surf1Dwrite(T val, surface surf, int x, int s, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + + +} + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) void surf1Dwrite(T val, surface surf, int x, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + + +} + + + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) void surf2Dwrite(T val, surface surf, int x, int y, int s, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + + +} + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) void surf2Dwrite(T val, surface surf, int x, int y, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + + +} + + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) void surf3Dwrite(T val, surface surf, int x, int y, int z, int s, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + + +} + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) void surf3Dwrite(T val, surface surf, int x, int y, int z, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + + +} + + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) void surf1DLayeredwrite(T val, surface surf, int x, int layer, int s, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + + +} + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) void surf1DLayeredwrite(T val, surface surf, int x, int layer, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + + +} + + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) void surf2DLayeredwrite(T val, surface surf, int x, int y, int layer, int s, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + + +} + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) void surf2DLayeredwrite(T val, surface surf, int x, int y, int layer, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + + +} + + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) void surfCubemapwrite(T val, surface surf, int x, int y, int face, int s, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + + +} + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) void surfCubemapwrite(T val, surface surf, int x, int y, int face, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + + +} + + + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) void surfCubemapLayeredwrite(T val, surface surf, int x, int y, int layerFace, int s, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + + +} + +template +static __attribute__((deprecated)) __attribute__((device)) __inline__ __attribute__((always_inline)) void surfCubemapLayeredwrite(T val, surface surf, int x, int y, int layerFace, enum cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + + +} +# 3303 "/usr/include/crt/device_functions.h" 2 3 4 +# 1 "/usr/include/texture_fetch_functions.h" 1 3 4 +# 72 "/usr/include/texture_fetch_functions.h" 3 4 +template +struct __nv_tex_rmet_ret { }; + +template<> struct __nv_tex_rmet_ret { typedef char type; }; +template<> struct __nv_tex_rmet_ret { typedef signed char type; }; +template<> struct __nv_tex_rmet_ret { typedef unsigned char type; }; +template<> struct __nv_tex_rmet_ret { typedef char1 type; }; +template<> struct __nv_tex_rmet_ret { typedef uchar1 type; }; +template<> struct __nv_tex_rmet_ret { typedef char2 type; }; +template<> struct __nv_tex_rmet_ret { typedef uchar2 type; }; +template<> struct __nv_tex_rmet_ret { typedef char4 type; }; +template<> struct __nv_tex_rmet_ret { typedef uchar4 type; }; + +template<> struct __nv_tex_rmet_ret { typedef short type; }; +template<> struct __nv_tex_rmet_ret { typedef unsigned short type; }; +template<> struct __nv_tex_rmet_ret { typedef short1 type; }; +template<> struct __nv_tex_rmet_ret { typedef ushort1 type; }; +template<> struct __nv_tex_rmet_ret { typedef short2 type; }; +template<> struct __nv_tex_rmet_ret { typedef ushort2 type; }; +template<> struct __nv_tex_rmet_ret { typedef short4 type; }; +template<> struct __nv_tex_rmet_ret { typedef ushort4 type; }; + +template<> struct __nv_tex_rmet_ret { typedef int type; }; +template<> struct __nv_tex_rmet_ret { typedef unsigned int type; }; +template<> struct __nv_tex_rmet_ret { typedef int1 type; }; +template<> struct __nv_tex_rmet_ret { typedef uint1 type; }; +template<> struct __nv_tex_rmet_ret { typedef int2 type; }; +template<> struct __nv_tex_rmet_ret { typedef uint2 type; }; +template<> struct __nv_tex_rmet_ret { typedef int4 type; }; +template<> struct __nv_tex_rmet_ret { typedef uint4 type; }; +# 113 "/usr/include/texture_fetch_functions.h" 3 4 +template<> struct __nv_tex_rmet_ret { typedef float type; }; +template<> struct __nv_tex_rmet_ret { typedef float1 type; }; +template<> struct __nv_tex_rmet_ret { typedef float2 type; }; +template<> struct __nv_tex_rmet_ret { typedef float4 type; }; + + +template struct __nv_tex_rmet_cast { typedef T* type; }; +# 131 "/usr/include/texture_fetch_functions.h" 3 4 +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmet_ret::type tex1Dfetch(texture t, int x) +{ + + + + + +} + +template +struct __nv_tex_rmnf_ret { }; + +template <> struct __nv_tex_rmnf_ret { typedef float type; }; +template <> struct __nv_tex_rmnf_ret { typedef float type; }; +template <> struct __nv_tex_rmnf_ret { typedef float type; }; +template <> struct __nv_tex_rmnf_ret { typedef float type; }; +template <> struct __nv_tex_rmnf_ret { typedef float type; }; +template <> struct __nv_tex_rmnf_ret { typedef float1 type; }; +template <> struct __nv_tex_rmnf_ret { typedef float1 type; }; +template <> struct __nv_tex_rmnf_ret { typedef float1 type; }; +template <> struct __nv_tex_rmnf_ret { typedef float1 type; }; +template <> struct __nv_tex_rmnf_ret { typedef float2 type; }; +template <> struct __nv_tex_rmnf_ret { typedef float2 type; }; +template <> struct __nv_tex_rmnf_ret { typedef float2 type; }; +template <> struct __nv_tex_rmnf_ret { typedef float2 type; }; +template <> struct __nv_tex_rmnf_ret { typedef float4 type; }; +template <> struct __nv_tex_rmnf_ret { typedef float4 type; }; +template <> struct __nv_tex_rmnf_ret { typedef float4 type; }; +template <> struct __nv_tex_rmnf_ret { typedef float4 type; }; + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmnf_ret::type tex1Dfetch(texture t, int x) +{ + + + + + + +} + + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmet_ret::type tex1D(texture t, float x) +{ + + + + + +} + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmnf_ret::type tex1D(texture t, float x) +{ + + + + + + +} + + + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmet_ret::type tex2D(texture t, float x, float y) +{ + + + + + + +} + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmnf_ret::type tex2D(texture t, float x, float y) +{ + + + + + + +} + + + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmet_ret::type tex1DLayered(texture t, float x, int layer) +{ + + + + + +} + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmnf_ret::type tex1DLayered(texture t, float x, int layer) +{ + + + + + + +} + + + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmet_ret::type tex2DLayered(texture t, float x, float y, int layer) +{ + + + + + +} + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmnf_ret::type tex2DLayered(texture t, float x, float y, int layer) +{ + + + + + + +} + + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmet_ret::type tex3D(texture t, float x, float y, float z) +{ + + + + + +} + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmnf_ret::type tex3D(texture t, float x, float y, float z) +{ + + + + + + +} + + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmet_ret::type texCubemap(texture t, float x, float y, float z) +{ + + + + + +} + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmnf_ret::type texCubemap(texture t, float x, float y, float z) +{ + + + + + + +} + + +template +struct __nv_tex2dgather_ret { }; +template <> struct __nv_tex2dgather_ret { typedef char4 type; }; +template <> struct __nv_tex2dgather_ret { typedef char4 type; }; +template <> struct __nv_tex2dgather_ret { typedef char4 type; }; +template <> struct __nv_tex2dgather_ret { typedef char4 type; }; +template <> struct __nv_tex2dgather_ret { typedef char4 type; }; +template <> struct __nv_tex2dgather_ret { typedef char4 type; }; +template <> struct __nv_tex2dgather_ret { typedef uchar4 type; }; +template <> struct __nv_tex2dgather_ret { typedef uchar4 type; }; +template <> struct __nv_tex2dgather_ret { typedef uchar4 type; }; +template <> struct __nv_tex2dgather_ret { typedef uchar4 type; }; +template <> struct __nv_tex2dgather_ret { typedef uchar4 type; }; + +template <> struct __nv_tex2dgather_ret { typedef short4 type; }; +template <> struct __nv_tex2dgather_ret { typedef short4 type; }; +template <> struct __nv_tex2dgather_ret { typedef short4 type; }; +template <> struct __nv_tex2dgather_ret { typedef short4 type; }; +template <> struct __nv_tex2dgather_ret { typedef short4 type; }; +template <> struct __nv_tex2dgather_ret { typedef ushort4 type; }; +template <> struct __nv_tex2dgather_ret { typedef ushort4 type; }; +template <> struct __nv_tex2dgather_ret { typedef ushort4 type; }; +template <> struct __nv_tex2dgather_ret { typedef ushort4 type; }; +template <> struct __nv_tex2dgather_ret { typedef ushort4 type; }; + +template <> struct __nv_tex2dgather_ret { typedef int4 type; }; +template <> struct __nv_tex2dgather_ret { typedef int4 type; }; +template <> struct __nv_tex2dgather_ret { typedef int4 type; }; +template <> struct __nv_tex2dgather_ret { typedef int4 type; }; +template <> struct __nv_tex2dgather_ret { typedef int4 type; }; +template <> struct __nv_tex2dgather_ret { typedef uint4 type; }; +template <> struct __nv_tex2dgather_ret { typedef uint4 type; }; +template <> struct __nv_tex2dgather_ret { typedef uint4 type; }; +template <> struct __nv_tex2dgather_ret { typedef uint4 type; }; +template <> struct __nv_tex2dgather_ret { typedef uint4 type; }; + +template <> struct __nv_tex2dgather_ret { typedef float4 type; }; +template <> struct __nv_tex2dgather_ret { typedef float4 type; }; +template <> struct __nv_tex2dgather_ret { typedef float4 type; }; +template <> struct __nv_tex2dgather_ret { typedef float4 type; }; +template <> struct __nv_tex2dgather_ret { typedef float4 type; }; + +template +static __attribute__((device)) __inline__ __attribute__((always_inline)) typename __nv_tex2dgather_ret::type tex2Dgather(texture t, float x, float y, int comp=0) +{ + + + + + + +} + + +template struct __nv_tex2dgather_rmnf_ret { }; +template<> struct __nv_tex2dgather_rmnf_ret { typedef float4 type; }; +template<> struct __nv_tex2dgather_rmnf_ret { typedef float4 type; }; +template<> struct __nv_tex2dgather_rmnf_ret { typedef float4 type; }; +template<> struct __nv_tex2dgather_rmnf_ret { typedef float4 type; }; +template<> struct __nv_tex2dgather_rmnf_ret { typedef float4 type; }; +template<> struct __nv_tex2dgather_rmnf_ret { typedef float4 type; }; +template<> struct __nv_tex2dgather_rmnf_ret { typedef float4 type; }; +template<> struct __nv_tex2dgather_rmnf_ret { typedef float4 type; }; +template<> struct __nv_tex2dgather_rmnf_ret { typedef float4 type; }; +template<> struct __nv_tex2dgather_rmnf_ret { typedef float4 type; }; +template<> struct __nv_tex2dgather_rmnf_ret { typedef float4 type; }; +template<> struct __nv_tex2dgather_rmnf_ret { typedef float4 type; }; +template<> struct __nv_tex2dgather_rmnf_ret { typedef float4 type; }; +template<> struct __nv_tex2dgather_rmnf_ret { typedef float4 type; }; +template<> struct __nv_tex2dgather_rmnf_ret { typedef float4 type; }; +template<> struct __nv_tex2dgather_rmnf_ret { typedef float4 type; }; +template<> struct __nv_tex2dgather_rmnf_ret { typedef float4 type; }; +template<> struct __nv_tex2dgather_rmnf_ret { typedef float4 type; }; +template<> struct __nv_tex2dgather_rmnf_ret { typedef float4 type; }; +template<> struct __nv_tex2dgather_rmnf_ret { typedef float4 type; }; +template<> struct __nv_tex2dgather_rmnf_ret { typedef float4 type; }; + +template +static __attribute__((device)) __inline__ __attribute__((always_inline)) typename __nv_tex2dgather_rmnf_ret::type tex2Dgather(texture t, float x, float y, int comp = 0) +{ + + + + + + +} + + + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmet_ret::type tex1DLod(texture t, float x, float level) +{ + + + + + +} + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmnf_ret::type tex1DLod(texture t, float x, float level) +{ + + + + + + +} + + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmet_ret::type tex2DLod(texture t, float x, float y, float level) +{ + + + + + +} + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmnf_ret::type tex2DLod(texture t, float x, float y, float level) +{ + + + + + + +} + + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmet_ret::type tex1DLayeredLod(texture t, float x, int layer, float level) +{ + + + + + +} + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmnf_ret::type tex1DLayeredLod(texture t, float x, int layer, float level) +{ + + + + + + +} + + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmet_ret::type tex2DLayeredLod(texture t, float x, float y, int layer, float level) +{ + + + + + +} + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmnf_ret::type tex2DLayeredLod(texture t, float x, float y, int layer, float level) +{ + + + + + + +} + + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmet_ret::type tex3DLod(texture t, float x, float y, float z, float level) +{ + + + + + +} + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmnf_ret::type tex3DLod(texture t, float x, float y, float z, float level) +{ + + + + + + +} + + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmet_ret::type texCubemapLod(texture t, float x, float y, float z, float level) +{ + + + + + +} + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmnf_ret::type texCubemapLod(texture t, float x, float y, float z, float level) +{ + + + + + + +} + + + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmet_ret::type texCubemapLayered(texture t, float x, float y, float z, int layer) +{ + + + + + +} + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmnf_ret::type texCubemapLayered(texture t, float x, float y, float z, int layer) +{ + + + + + + +} + + + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmet_ret::type texCubemapLayeredLod(texture t, float x, float y, float z, int layer, float level) +{ + + + + + +} + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmnf_ret::type texCubemapLayeredLod(texture t, float x, float y, float z, int layer, float level) +{ + + + + + + +} + + + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmet_ret::type texCubemapGrad(texture t, float x, float y, float z, float4 dPdx, float4 dPdy) +{ + + + + + +} + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmnf_ret::type texCubemapGrad(texture t, float x, float y, float z, float4 dPdx, float4 dPdy) +{ + + + + + + +} + + + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmet_ret::type texCubemapLayeredGrad(texture t, float x, float y, float z, int layer, float4 dPdx, float4 dPdy) +{ + + + + + +} + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmnf_ret::type texCubemapLayeredGrad(texture t, float x, float y, float z, int layer, float4 dPdx, float4 dPdy) +{ + + + + + + +} + + + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmet_ret::type tex1DGrad(texture t, float x, float dPdx, float dPdy) +{ + + + + + +} + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmnf_ret::type tex1DGrad(texture t, float x, float dPdx, float dPdy) +{ + + + + + + +} + + + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmet_ret::type tex2DGrad(texture t, float x, float y, float2 dPdx, float2 dPdy) +{ + + + + + +} + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmnf_ret::type tex2DGrad(texture t, float x, float y, float2 dPdx, float2 dPdy) +{ + + + + + + +} + + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmet_ret::type tex1DLayeredGrad(texture t, float x, int layer, float dPdx, float dPdy) +{ + + + + + +} + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmnf_ret::type tex1DLayeredGrad(texture t, float x, int layer, float dPdx, float dPdy) +{ + + + + + + +} + + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmet_ret::type tex2DLayeredGrad(texture t, float x, float y, int layer, float2 dPdx, float2 dPdy) +{ + + + + + +} + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmnf_ret::type tex2DLayeredGrad(texture t, float x, float y, int layer, float2 dPdx, float2 dPdy) +{ + + + + + + +} + + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmet_ret::type tex3DGrad(texture t, float x, float y, float z, float4 dPdx, float4 dPdy) +{ + + + + + +} + +template +static __attribute__((deprecated)) __inline__ __attribute__((always_inline)) __attribute__((device)) typename __nv_tex_rmnf_ret::type tex3DGrad(texture t, float x, float y, float z, float4 dPdx, float4 dPdy) +{ + + + + + + +} +# 3304 "/usr/include/crt/device_functions.h" 2 3 4 +# 1 "/usr/include/texture_indirect_functions.h" 1 3 4 +# 64 "/usr/include/texture_indirect_functions.h" 3 4 +template struct __nv_itex_trait { }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +# 100 "/usr/include/texture_indirect_functions.h" 3 4 +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; +template<> struct __nv_itex_trait { typedef void type; }; + + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex1Dfetch(T *ptr, cudaTextureObject_t obj, int x) +{ + + + +} + +template +static __attribute__((device)) T tex1Dfetch(cudaTextureObject_t texObject, int x) +{ + + + + + +} + +template +static __attribute__((device)) typename __nv_itex_trait::type tex1D(T *ptr, cudaTextureObject_t obj, float x) +{ + + + +} + + +template +static __attribute__((device)) T tex1D(cudaTextureObject_t texObject, float x) +{ + + + + + +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2D(T *ptr, cudaTextureObject_t obj, float x, float y) +{ + + + +} + +template +static __attribute__((device)) T tex2D(cudaTextureObject_t texObject, float x, float y) +{ + + + + + +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2D(T *ptr, cudaTextureObject_t obj, float x, float y, + bool* isResident) +{ + + + + + +} + +template +static __attribute__((device)) T tex2D(cudaTextureObject_t texObject, float x, float y, bool* isResident) +{ + + + + + +} + + + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex3D(T *ptr, cudaTextureObject_t obj, float x, float y, float z) +{ + + + +} + +template +static __attribute__((device)) T tex3D(cudaTextureObject_t texObject, float x, float y, float z) +{ + + + + + +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex3D(T *ptr, cudaTextureObject_t obj, float x, float y, float z, + bool* isResident) +{ + + + + + +} + +template +static __attribute__((device)) T tex3D(cudaTextureObject_t texObject, float x, float y, float z, bool* isResident) +{ + + + + + +} + + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex1DLayered(T *ptr, cudaTextureObject_t obj, float x, int layer) +{ + + + +} + +template +static __attribute__((device)) T tex1DLayered(cudaTextureObject_t texObject, float x, int layer) +{ + + + + + +} + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2DLayered(T *ptr, cudaTextureObject_t obj, float x, float y, int layer) +{ + + + +} + +template +static __attribute__((device)) T tex2DLayered(cudaTextureObject_t texObject, float x, float y, int layer) +{ + + + + + +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2DLayered(T *ptr, cudaTextureObject_t obj, float x, float y, int layer, bool* isResident) +{ + + + + + +} + +template +static __attribute__((device)) T tex2DLayered(cudaTextureObject_t texObject, float x, float y, int layer, bool* isResident) +{ + + + + + +} + + + +template +static __attribute__((device)) typename __nv_itex_trait::type texCubemap(T *ptr, cudaTextureObject_t obj, float x, float y, float z) +{ + + + +} + + +template +static __attribute__((device)) T texCubemap(cudaTextureObject_t texObject, float x, float y, float z) +{ + + + + + +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type texCubemapLayered(T *ptr, cudaTextureObject_t obj, float x, float y, float z, int layer) +{ + + + +} + +template +static __attribute__((device)) T texCubemapLayered(cudaTextureObject_t texObject, float x, float y, float z, int layer) +{ + + + + + +} + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2Dgather(T *ptr, cudaTextureObject_t obj, float x, float y, int comp = 0) +{ + + + +} + +template +static __attribute__((device)) T tex2Dgather(cudaTextureObject_t to, float x, float y, int comp = 0) +{ + + + + + +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2Dgather(T *ptr, cudaTextureObject_t obj, float x, float y, bool* isResident, int comp = 0) +{ + + + + + +} + +template +static __attribute__((device)) T tex2Dgather(cudaTextureObject_t to, float x, float y, bool* isResident, int comp = 0) +{ + + + + + +} + + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex1DLod(T *ptr, cudaTextureObject_t obj, float x, float level) +{ + + + +} + +template +static __attribute__((device)) T tex1DLod(cudaTextureObject_t texObject, float x, float level) +{ + + + + + +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2DLod(T *ptr, cudaTextureObject_t obj, float x, float y, float level) +{ + + + +} + +template +static __attribute__((device)) T tex2DLod(cudaTextureObject_t texObject, float x, float y, float level) +{ + + + + + +} + + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2DLod(T *ptr, cudaTextureObject_t obj, float x, float y, float level, bool* isResident) +{ + + + + + +} + +template +static __attribute__((device)) T tex2DLod(cudaTextureObject_t texObject, float x, float y, float level, bool* isResident) +{ + + + + + +} + + + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex3DLod(T *ptr, cudaTextureObject_t obj, float x, float y, float z, float level) +{ + + + +} + +template +static __attribute__((device)) T tex3DLod(cudaTextureObject_t texObject, float x, float y, float z, float level) +{ + + + + + +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex3DLod(T *ptr, cudaTextureObject_t obj, float x, float y, float z, float level, bool* isResident) +{ + + + + + +} + +template +static __attribute__((device)) T tex3DLod(cudaTextureObject_t texObject, float x, float y, float z, float level, bool* isResident) +{ + + + + + +} + + + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex1DLayeredLod(T *ptr, cudaTextureObject_t obj, float x, int layer, float level) +{ + + + +} + +template +static __attribute__((device)) T tex1DLayeredLod(cudaTextureObject_t texObject, float x, int layer, float level) +{ + + + + + +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2DLayeredLod(T *ptr, cudaTextureObject_t obj, float x, float y, int layer, float level) +{ + + + +} + +template +static __attribute__((device)) T tex2DLayeredLod(cudaTextureObject_t texObject, float x, float y, int layer, float level) +{ + + + + + +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2DLayeredLod(T *ptr, cudaTextureObject_t obj, float x, float y, int layer, float level, bool* isResident) +{ + + + + + +} + +template +static __attribute__((device)) T tex2DLayeredLod(cudaTextureObject_t texObject, float x, float y, int layer, float level, bool* isResident) +{ + + + + + +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type texCubemapLod(T *ptr, cudaTextureObject_t obj, float x, float y, float z, float level) +{ + + + +} + +template +static __attribute__((device)) T texCubemapLod(cudaTextureObject_t texObject, float x, float y, float z, float level) +{ + + + + + +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type texCubemapGrad(T *ptr, cudaTextureObject_t obj, float x, float y, float z, float4 dPdx, float4 dPdy) +{ + + + +} + +template +static __attribute__((device)) T texCubemapGrad(cudaTextureObject_t texObject, float x, float y, float z, float4 dPdx, float4 dPdy) +{ + + + + + +} + +template +static __attribute__((device)) typename __nv_itex_trait::type texCubemapLayeredLod(T *ptr, cudaTextureObject_t obj, float x, float y, float z, int layer, float level) +{ + + + +} + +template +static __attribute__((device)) T texCubemapLayeredLod(cudaTextureObject_t texObject, float x, float y, float z, int layer, float level) +{ + + + + + +} + +template +static __attribute__((device)) typename __nv_itex_trait::type tex1DGrad(T *ptr, cudaTextureObject_t obj, float x, float dPdx, float dPdy) +{ + + + +} + +template +static __attribute__((device)) T tex1DGrad(cudaTextureObject_t texObject, float x, float dPdx, float dPdy) +{ + + + + + +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2DGrad(T *ptr, cudaTextureObject_t obj, float x, float y, float2 dPdx, float2 dPdy) +{ + + + + +} + +template +static __attribute__((device)) T tex2DGrad(cudaTextureObject_t texObject, float x, float y, float2 dPdx, float2 dPdy) +{ + + + + + +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2DGrad(T *ptr, cudaTextureObject_t obj, float x, float y, float2 dPdx, float2 dPdy, bool* isResident) +{ + + + + + + +} + +template +static __attribute__((device)) T tex2DGrad(cudaTextureObject_t texObject, float x, float y, float2 dPdx, float2 dPdy, bool* isResident) +{ + + + + + +} + + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex3DGrad(T *ptr, cudaTextureObject_t obj, float x, float y, float z, float4 dPdx, float4 dPdy) +{ + + + +} + +template +static __attribute__((device)) T tex3DGrad(cudaTextureObject_t texObject, float x, float y, float z, float4 dPdx, float4 dPdy) +{ + + + + + +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex3DGrad(T *ptr, cudaTextureObject_t obj, float x, float y, float z, float4 dPdx, float4 dPdy, bool* isResident) +{ + + + + + +} + +template +static __attribute__((device)) T tex3DGrad(cudaTextureObject_t texObject, float x, float y, float z, float4 dPdx, float4 dPdy, bool* isResident) +{ + + + + + +} + + + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex1DLayeredGrad(T *ptr, cudaTextureObject_t obj, float x, int layer, float dPdx, float dPdy) +{ + + + +} + +template +static __attribute__((device)) T tex1DLayeredGrad(cudaTextureObject_t texObject, float x, int layer, float dPdx, float dPdy) +{ + + + + + +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2DLayeredGrad(T * ptr, cudaTextureObject_t obj, float x, float y, int layer, float2 dPdx, float2 dPdy) +{ + + + +} + +template +static __attribute__((device)) T tex2DLayeredGrad(cudaTextureObject_t texObject, float x, float y, int layer, float2 dPdx, float2 dPdy) +{ + + + + + +} + + +template +static __attribute__((device)) typename __nv_itex_trait::type tex2DLayeredGrad(T * ptr, cudaTextureObject_t obj, float x, float y, int layer, float2 dPdx, float2 dPdy, bool* isResident) +{ + + + + + +} + +template +static __attribute__((device)) T tex2DLayeredGrad(cudaTextureObject_t texObject, float x, float y, int layer, float2 dPdx, float2 dPdy, bool* isResident) +{ + + + + + +} + + + +template +static __attribute__((device)) typename __nv_itex_trait::type texCubemapLayeredGrad(T *ptr, cudaTextureObject_t obj, float x, float y, float z, int layer, float4 dPdx, float4 dPdy) +{ + + + +} + +template +static __attribute__((device)) T texCubemapLayeredGrad(cudaTextureObject_t texObject, float x, float y, float z, int layer, float4 dPdx, float4 dPdy) +{ + + + + + +} +# 3305 "/usr/include/crt/device_functions.h" 2 3 4 +# 1 "/usr/include/surface_indirect_functions.h" 1 3 4 +# 59 "/usr/include/surface_indirect_functions.h" 3 4 +template struct __nv_isurf_trait { }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; + +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; + +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; +template<> struct __nv_isurf_trait { typedef void type; }; + + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf1Dread(T *ptr, cudaSurfaceObject_t obj, int x, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + + +} + +template +static __attribute__((device)) T surf1Dread(cudaSurfaceObject_t surfObject, int x, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +{ + + + + + +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf2Dread(T *ptr, cudaSurfaceObject_t obj, int x, int y, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + + +} + +template +static __attribute__((device)) T surf2Dread(cudaSurfaceObject_t surfObject, int x, int y, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +{ + + + + + +} + + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf3Dread(T *ptr, cudaSurfaceObject_t obj, int x, int y, int z, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + + +} + +template +static __attribute__((device)) T surf3Dread(cudaSurfaceObject_t surfObject, int x, int y, int z, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +{ + + + + + +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf1DLayeredread(T *ptr, cudaSurfaceObject_t obj, int x, int layer, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + + +} + +template +static __attribute__((device)) T surf1DLayeredread(cudaSurfaceObject_t surfObject, int x, int layer, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +{ + + + + + +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf2DLayeredread(T *ptr, cudaSurfaceObject_t obj, int x, int y, int layer, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + + +} + +template +static __attribute__((device)) T surf2DLayeredread(cudaSurfaceObject_t surfObject, int x, int y, int layer, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +{ + + + + + +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surfCubemapread(T *ptr, cudaSurfaceObject_t obj, int x, int y, int face, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + + +} + +template +static __attribute__((device)) T surfCubemapread(cudaSurfaceObject_t surfObject, int x, int y, int face, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +{ + + + + + +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surfCubemapLayeredread(T *ptr, cudaSurfaceObject_t obj, int x, int y, int layerface, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + + +} + +template +static __attribute__((device)) T surfCubemapLayeredread(cudaSurfaceObject_t surfObject, int x, int y, int layerface, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +{ + + + + + +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf1Dwrite(T val, cudaSurfaceObject_t obj, int x, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + + +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf2Dwrite(T val, cudaSurfaceObject_t obj, int x, int y, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + + +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf3Dwrite(T val, cudaSurfaceObject_t obj, int x, int y, int z, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + + +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf1DLayeredwrite(T val, cudaSurfaceObject_t obj, int x, int layer, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + + +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surf2DLayeredwrite(T val, cudaSurfaceObject_t obj, int x, int y, int layer, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + + +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surfCubemapwrite(T val, cudaSurfaceObject_t obj, int x, int y, int face, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + + +} + +template +static __attribute__((device)) typename __nv_isurf_trait::type surfCubemapLayeredwrite(T val, cudaSurfaceObject_t obj, int x, int y, int layerface, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +{ + + + +} +# 3306 "/usr/include/crt/device_functions.h" 2 3 4 +# 1 "/usr/include/crt/cudacc_ext.h" 1 3 4 +# 3307 "/usr/include/crt/device_functions.h" 2 3 4 + + +extern "C" __attribute__((host)) __attribute__((device)) unsigned __cudaPushCallConfiguration(dim3 gridDim, + dim3 blockDim, + size_t sharedMem = 0, + struct CUstream_st *stream = 0); +# 119 "/usr/include/cuda_runtime.h" 2 3 4 +# 1 "/usr/include/device_launch_parameters.h" 1 3 4 +# 68 "/usr/include/device_launch_parameters.h" 3 4 +extern "C" { + + +uint3 __attribute__((device_builtin)) extern const threadIdx; +uint3 __attribute__((device_builtin)) extern const blockIdx; +dim3 __attribute__((device_builtin)) extern const blockDim; +dim3 __attribute__((device_builtin)) extern const gridDim; +int __attribute__((device_builtin)) extern const warpSize; + + + + +} +# 120 "/usr/include/cuda_runtime.h" 2 3 4 +# 147 "/usr/include/cuda_runtime.h" 3 4 +# 1 "/usr/include/c++/9/utility" 1 3 4 +# 58 "/usr/include/c++/9/utility" 3 4 + +# 59 "/usr/include/c++/9/utility" 3 +# 69 "/usr/include/c++/9/utility" 3 +# 1 "/usr/include/c++/9/bits/stl_relops.h" 1 3 +# 67 "/usr/include/c++/9/bits/stl_relops.h" 3 +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + namespace rel_ops + { +# 85 "/usr/include/c++/9/bits/stl_relops.h" 3 + template + inline bool + operator!=(const _Tp& __x, const _Tp& __y) + { return !(__x == __y); } +# 98 "/usr/include/c++/9/bits/stl_relops.h" 3 + template + inline bool + operator>(const _Tp& __x, const _Tp& __y) + { return __y < __x; } +# 111 "/usr/include/c++/9/bits/stl_relops.h" 3 + template + inline bool + operator<=(const _Tp& __x, const _Tp& __y) + { return !(__y < __x); } +# 124 "/usr/include/c++/9/bits/stl_relops.h" 3 + template + inline bool + operator>=(const _Tp& __x, const _Tp& __y) + { return !(__x < __y); } + } + + +} +# 70 "/usr/include/c++/9/utility" 2 3 +# 1 "/usr/include/c++/9/bits/stl_pair.h" 1 3 +# 59 "/usr/include/c++/9/bits/stl_pair.h" 3 +# 1 "/usr/include/c++/9/bits/move.h" 1 3 +# 34 "/usr/include/c++/9/bits/move.h" 3 +# 1 "/usr/include/c++/9/bits/concept_check.h" 1 3 +# 33 "/usr/include/c++/9/bits/concept_check.h" 3 + +# 34 "/usr/include/c++/9/bits/concept_check.h" 3 +# 35 "/usr/include/c++/9/bits/move.h" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + + + + + template + inline constexpr _Tp* + __addressof(_Tp& __r) noexcept + { return __builtin_addressof(__r); } + + + + +} + +# 1 "/usr/include/c++/9/type_traits" 1 3 +# 32 "/usr/include/c++/9/type_traits" 3 + +# 33 "/usr/include/c++/9/type_traits" 3 + + + + + + + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 56 "/usr/include/c++/9/type_traits" 3 + template + struct integral_constant + { + static constexpr _Tp value = __v; + typedef _Tp value_type; + typedef integral_constant<_Tp, __v> type; + constexpr operator value_type() const noexcept { return value; } + + + + + constexpr value_type operator()() const noexcept { return value; } + + }; + + template + constexpr _Tp integral_constant<_Tp, __v>::value; + + + typedef integral_constant true_type; + + + typedef integral_constant false_type; + + template + using __bool_constant = integral_constant; +# 91 "/usr/include/c++/9/type_traits" 3 + template + struct conditional; + + template + struct __or_; + + template<> + struct __or_<> + : public false_type + { }; + + template + struct __or_<_B1> + : public _B1 + { }; + + template + struct __or_<_B1, _B2> + : public conditional<_B1::value, _B1, _B2>::type + { }; + + template + struct __or_<_B1, _B2, _B3, _Bn...> + : public conditional<_B1::value, _B1, __or_<_B2, _B3, _Bn...>>::type + { }; + + template + struct __and_; + + template<> + struct __and_<> + : public true_type + { }; + + template + struct __and_<_B1> + : public _B1 + { }; + + template + struct __and_<_B1, _B2> + : public conditional<_B1::value, _B2, _B1>::type + { }; + + template + struct __and_<_B1, _B2, _B3, _Bn...> + : public conditional<_B1::value, __and_<_B2, _B3, _Bn...>, _B1>::type + { }; + + template + struct __not_ + : public __bool_constant + { }; +# 185 "/usr/include/c++/9/type_traits" 3 + template + struct __success_type + { typedef _Tp type; }; + + struct __failure_type + { }; + + + + template + struct remove_cv; + + template + struct __is_void_helper + : public false_type { }; + + template<> + struct __is_void_helper + : public true_type { }; + + + template + struct is_void + : public __is_void_helper::type>::type + { }; + + template + struct __is_integral_helper + : public false_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + + template<> + struct __is_integral_helper + : public true_type { }; +# 243 "/usr/include/c++/9/type_traits" 3 + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; + + + + + template<> + struct __is_integral_helper<__int128> + : public true_type { }; + + template<> + struct __is_integral_helper + : public true_type { }; +# 323 "/usr/include/c++/9/type_traits" 3 + template + struct is_integral + : public __is_integral_helper::type>::type + { }; + + template + struct __is_floating_point_helper + : public false_type { }; + + template<> + struct __is_floating_point_helper + : public true_type { }; + + template<> + struct __is_floating_point_helper + : public true_type { }; + + template<> + struct __is_floating_point_helper + : public true_type { }; +# 351 "/usr/include/c++/9/type_traits" 3 + template + struct is_floating_point + : public __is_floating_point_helper::type>::type + { }; + + + template + struct is_array + : public false_type { }; + + template + struct is_array<_Tp[_Size]> + : public true_type { }; + + template + struct is_array<_Tp[]> + : public true_type { }; + + template + struct __is_pointer_helper + : public false_type { }; + + template + struct __is_pointer_helper<_Tp*> + : public true_type { }; + + + template + struct is_pointer + : public __is_pointer_helper::type>::type + { }; + + + template + struct is_lvalue_reference + : public false_type { }; + + template + struct is_lvalue_reference<_Tp&> + : public true_type { }; + + + template + struct is_rvalue_reference + : public false_type { }; + + template + struct is_rvalue_reference<_Tp&&> + : public true_type { }; + + template + struct is_function; + + template + struct __is_member_object_pointer_helper + : public false_type { }; + + template + struct __is_member_object_pointer_helper<_Tp _Cp::*> + : public __not_>::type { }; + + + template + struct is_member_object_pointer + : public __is_member_object_pointer_helper< + typename remove_cv<_Tp>::type>::type + { }; + + template + struct __is_member_function_pointer_helper + : public false_type { }; + + template + struct __is_member_function_pointer_helper<_Tp _Cp::*> + : public is_function<_Tp>::type { }; + + + template + struct is_member_function_pointer + : public __is_member_function_pointer_helper< + typename remove_cv<_Tp>::type>::type + { }; + + + template + struct is_enum + : public integral_constant + { }; + + + template + struct is_union + : public integral_constant + { }; + + + template + struct is_class + : public integral_constant + { }; + + + template + struct is_function + : public false_type { }; + + template + struct is_function<_Res(_ArgTypes...) > + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes...) & > + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes...) && > + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes......) > + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes......) & > + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes......) && > + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes...) const > + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes...) const & > + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes...) const && > + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes......) const > + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes......) const & > + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes......) const && > + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes...) volatile > + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes...) volatile & > + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes...) volatile && > + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes......) volatile > + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes......) volatile & > + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes......) volatile && > + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes...) const volatile > + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes...) const volatile & > + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes...) const volatile && > + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes......) const volatile > + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes......) const volatile & > + : public true_type { }; + + template + struct is_function<_Res(_ArgTypes......) const volatile && > + : public true_type { }; + + + + template + struct __is_null_pointer_helper + : public false_type { }; + + template<> + struct __is_null_pointer_helper + : public true_type { }; + + + template + struct is_null_pointer + : public __is_null_pointer_helper::type>::type + { }; + + + template + struct __is_nullptr_t + : public is_null_pointer<_Tp> + { }; + + + + + template + struct is_reference + : public __or_, + is_rvalue_reference<_Tp>>::type + { }; + + + template + struct is_arithmetic + : public __or_, is_floating_point<_Tp>>::type + { }; + + + template + struct is_fundamental + : public __or_, is_void<_Tp>, + is_null_pointer<_Tp>>::type + { }; + + + template + struct is_object + : public __not_<__or_, is_reference<_Tp>, + is_void<_Tp>>>::type + { }; + + template + struct is_member_pointer; + + + template + struct is_scalar + : public __or_, is_enum<_Tp>, is_pointer<_Tp>, + is_member_pointer<_Tp>, is_null_pointer<_Tp>>::type + { }; + + + template + struct is_compound + : public __not_>::type { }; + + template + struct __is_member_pointer_helper + : public false_type { }; + + template + struct __is_member_pointer_helper<_Tp _Cp::*> + : public true_type { }; + + + template + struct is_member_pointer + : public __is_member_pointer_helper::type>::type + { }; + + + + template + struct __is_referenceable + : public __or_, is_reference<_Tp>>::type + { }; + + template + struct __is_referenceable<_Res(_Args...) > + : public true_type + { }; + + template + struct __is_referenceable<_Res(_Args......) > + : public true_type + { }; + + + + + template + struct is_const + : public false_type { }; + + template + struct is_const<_Tp const> + : public true_type { }; + + + template + struct is_volatile + : public false_type { }; + + template + struct is_volatile<_Tp volatile> + : public true_type { }; + + + template + struct is_trivial + : public integral_constant + { }; + + + template + struct is_trivially_copyable + : public integral_constant + { }; + + + template + struct is_standard_layout + : public integral_constant + { }; + + + + template + struct is_pod + : public integral_constant + { }; + + + template + struct is_literal_type + : public integral_constant + { }; + + + template + struct is_empty + : public integral_constant + { }; + + + template + struct is_polymorphic + : public integral_constant + { }; + + + + + template + struct is_final + : public integral_constant + { }; + + + + template + struct is_abstract + : public integral_constant + { }; + + template::value> + struct __is_signed_helper + : public false_type { }; + + template + struct __is_signed_helper<_Tp, true> + : public integral_constant + { }; + + + template + struct is_signed + : public __is_signed_helper<_Tp>::type + { }; + + + template + struct is_unsigned + : public __and_, __not_>> + { }; +# 758 "/usr/include/c++/9/type_traits" 3 + template + _Up + __declval(int); + + template + _Tp + __declval(long); + + template + auto declval() noexcept -> decltype(__declval<_Tp>(0)); + + template + struct extent; + + template + struct remove_all_extents; + + template + struct __is_array_known_bounds + : public integral_constant::value > 0)> + { }; + + template + struct __is_array_unknown_bounds + : public __and_, __not_>> + { }; + + + + + + + struct __do_is_destructible_impl + { + template().~_Tp())> + static true_type __test(int); + + template + static false_type __test(...); + }; + + template + struct __is_destructible_impl + : public __do_is_destructible_impl + { + typedef decltype(__test<_Tp>(0)) type; + }; + + template, + __is_array_unknown_bounds<_Tp>, + is_function<_Tp>>::value, + bool = __or_, is_scalar<_Tp>>::value> + struct __is_destructible_safe; + + template + struct __is_destructible_safe<_Tp, false, false> + : public __is_destructible_impl::type>::type + { }; + + template + struct __is_destructible_safe<_Tp, true, false> + : public false_type { }; + + template + struct __is_destructible_safe<_Tp, false, true> + : public true_type { }; + + + template + struct is_destructible + : public __is_destructible_safe<_Tp>::type + { }; + + + + + + struct __do_is_nt_destructible_impl + { + template + static __bool_constant().~_Tp())> + __test(int); + + template + static false_type __test(...); + }; + + template + struct __is_nt_destructible_impl + : public __do_is_nt_destructible_impl + { + typedef decltype(__test<_Tp>(0)) type; + }; + + template, + __is_array_unknown_bounds<_Tp>, + is_function<_Tp>>::value, + bool = __or_, is_scalar<_Tp>>::value> + struct __is_nt_destructible_safe; + + template + struct __is_nt_destructible_safe<_Tp, false, false> + : public __is_nt_destructible_impl::type>::type + { }; + + template + struct __is_nt_destructible_safe<_Tp, true, false> + : public false_type { }; + + template + struct __is_nt_destructible_safe<_Tp, false, true> + : public true_type { }; + + + template + struct is_nothrow_destructible + : public __is_nt_destructible_safe<_Tp>::type + { }; + + + template + struct is_constructible + : public __bool_constant<__is_constructible(_Tp, _Args...)> + { }; + + + template + struct is_default_constructible + : public is_constructible<_Tp>::type + { }; + + template::value> + struct __is_copy_constructible_impl; + + template + struct __is_copy_constructible_impl<_Tp, false> + : public false_type { }; + + template + struct __is_copy_constructible_impl<_Tp, true> + : public is_constructible<_Tp, const _Tp&> + { }; + + + template + struct is_copy_constructible + : public __is_copy_constructible_impl<_Tp> + { }; + + template::value> + struct __is_move_constructible_impl; + + template + struct __is_move_constructible_impl<_Tp, false> + : public false_type { }; + + template + struct __is_move_constructible_impl<_Tp, true> + : public is_constructible<_Tp, _Tp&&> + { }; + + + template + struct is_move_constructible + : public __is_move_constructible_impl<_Tp> + { }; + + template + struct __is_nt_constructible_impl + : public false_type + { }; + + template + struct __is_nt_constructible_impl + : public __bool_constant()...))> + { }; + + template + struct __is_nt_constructible_impl + : public __bool_constant(std::declval<_Arg>()))> + { }; + + template + struct __is_nt_constructible_impl + : public __bool_constant + { }; + + template + struct __is_nt_constructible_impl + : public __bool_constant::type())> + { }; + + template + using __is_nothrow_constructible_impl + = __is_nt_constructible_impl<__is_constructible(_Tp, _Args...), + _Tp, _Args...>; + + + template + struct is_nothrow_constructible + : public __is_nothrow_constructible_impl<_Tp, _Args...>::type + { }; + + + template + struct is_nothrow_default_constructible + : public __is_nothrow_constructible_impl<_Tp>::type + { }; + + + template::value> + struct __is_nothrow_copy_constructible_impl; + + template + struct __is_nothrow_copy_constructible_impl<_Tp, false> + : public false_type { }; + + template + struct __is_nothrow_copy_constructible_impl<_Tp, true> + : public is_nothrow_constructible<_Tp, const _Tp&> + { }; + + + template + struct is_nothrow_copy_constructible + : public __is_nothrow_copy_constructible_impl<_Tp> + { }; + + template::value> + struct __is_nothrow_move_constructible_impl; + + template + struct __is_nothrow_move_constructible_impl<_Tp, false> + : public false_type { }; + + template + struct __is_nothrow_move_constructible_impl<_Tp, true> + : public is_nothrow_constructible<_Tp, _Tp&&> + { }; + + + template + struct is_nothrow_move_constructible + : public __is_nothrow_move_constructible_impl<_Tp> + { }; + + + template + struct is_assignable + : public __bool_constant<__is_assignable(_Tp, _Up)> + { }; + + template::value> + struct __is_copy_assignable_impl; + + template + struct __is_copy_assignable_impl<_Tp, false> + : public false_type { }; + + template + struct __is_copy_assignable_impl<_Tp, true> + : public is_assignable<_Tp&, const _Tp&> + { }; + + + template + struct is_copy_assignable + : public __is_copy_assignable_impl<_Tp> + { }; + + template::value> + struct __is_move_assignable_impl; + + template + struct __is_move_assignable_impl<_Tp, false> + : public false_type { }; + + template + struct __is_move_assignable_impl<_Tp, true> + : public is_assignable<_Tp&, _Tp&&> + { }; + + + template + struct is_move_assignable + : public __is_move_assignable_impl<_Tp> + { }; + + template + struct __is_nt_assignable_impl + : public integral_constant() = declval<_Up>())> + { }; + + + template + struct is_nothrow_assignable + : public __and_, + __is_nt_assignable_impl<_Tp, _Up>> + { }; + + template::value> + struct __is_nt_copy_assignable_impl; + + template + struct __is_nt_copy_assignable_impl<_Tp, false> + : public false_type { }; + + template + struct __is_nt_copy_assignable_impl<_Tp, true> + : public is_nothrow_assignable<_Tp&, const _Tp&> + { }; + + + template + struct is_nothrow_copy_assignable + : public __is_nt_copy_assignable_impl<_Tp> + { }; + + template::value> + struct __is_nt_move_assignable_impl; + + template + struct __is_nt_move_assignable_impl<_Tp, false> + : public false_type { }; + + template + struct __is_nt_move_assignable_impl<_Tp, true> + : public is_nothrow_assignable<_Tp&, _Tp&&> + { }; + + + template + struct is_nothrow_move_assignable + : public __is_nt_move_assignable_impl<_Tp> + { }; + + + template + struct is_trivially_constructible + : public __bool_constant<__is_trivially_constructible(_Tp, _Args...)> + { }; + + + template + struct is_trivially_default_constructible + : public is_trivially_constructible<_Tp>::type + { }; + + struct __do_is_implicitly_default_constructible_impl + { + template + static void __helper(const _Tp&); + + template + static true_type __test(const _Tp&, + decltype(__helper({}))* = 0); + + static false_type __test(...); + }; + + template + struct __is_implicitly_default_constructible_impl + : public __do_is_implicitly_default_constructible_impl + { + typedef decltype(__test(declval<_Tp>())) type; + }; + + template + struct __is_implicitly_default_constructible_safe + : public __is_implicitly_default_constructible_impl<_Tp>::type + { }; + + template + struct __is_implicitly_default_constructible + : public __and_, + __is_implicitly_default_constructible_safe<_Tp>> + { }; + + + + template::value> + struct __is_trivially_copy_constructible_impl; + + template + struct __is_trivially_copy_constructible_impl<_Tp, false> + : public false_type { }; + + template + struct __is_trivially_copy_constructible_impl<_Tp, true> + : public __and_, + integral_constant> + { }; + + template + struct is_trivially_copy_constructible + : public __is_trivially_copy_constructible_impl<_Tp> + { }; + + + + template::value> + struct __is_trivially_move_constructible_impl; + + template + struct __is_trivially_move_constructible_impl<_Tp, false> + : public false_type { }; + + template + struct __is_trivially_move_constructible_impl<_Tp, true> + : public __and_, + integral_constant> + { }; + + template + struct is_trivially_move_constructible + : public __is_trivially_move_constructible_impl<_Tp> + { }; + + + template + struct is_trivially_assignable + : public __bool_constant<__is_trivially_assignable(_Tp, _Up)> + { }; + + + + template::value> + struct __is_trivially_copy_assignable_impl; + + template + struct __is_trivially_copy_assignable_impl<_Tp, false> + : public false_type { }; + + template + struct __is_trivially_copy_assignable_impl<_Tp, true> + : public __bool_constant<__is_trivially_assignable(_Tp&, const _Tp&)> + { }; + + template + struct is_trivially_copy_assignable + : public __is_trivially_copy_assignable_impl<_Tp> + { }; + + + + template::value> + struct __is_trivially_move_assignable_impl; + + template + struct __is_trivially_move_assignable_impl<_Tp, false> + : public false_type { }; + + template + struct __is_trivially_move_assignable_impl<_Tp, true> + : public __bool_constant<__is_trivially_assignable(_Tp&, _Tp&&)> + { }; + + template + struct is_trivially_move_assignable + : public __is_trivially_move_assignable_impl<_Tp> + { }; + + + template + struct is_trivially_destructible + : public __and_, + __bool_constant<__has_trivial_destructor(_Tp)>> + { }; + + + + template + struct has_virtual_destructor + : public integral_constant + { }; + + + + + + template + struct alignment_of + : public integral_constant { }; + + + template + struct rank + : public integral_constant { }; + + template + struct rank<_Tp[_Size]> + : public integral_constant::value> { }; + + template + struct rank<_Tp[]> + : public integral_constant::value> { }; + + + template + struct extent + : public integral_constant { }; + + template + struct extent<_Tp[_Size], _Uint> + : public integral_constant::value> + { }; + + template + struct extent<_Tp[], _Uint> + : public integral_constant::value> + { }; + + + + + + template + struct is_same + : public false_type { }; + + template + struct is_same<_Tp, _Tp> + : public true_type { }; + + + template + struct is_base_of + : public integral_constant + { }; + + template, is_function<_To>, + is_array<_To>>::value> + struct __is_convertible_helper + { + typedef typename is_void<_To>::type type; + }; + + template + class __is_convertible_helper<_From, _To, false> + { + template + static void __test_aux(_To1) noexcept; + + template(std::declval<_From1>()))> + static true_type + __test(int); + + template + static false_type + __test(...); + + public: + typedef decltype(__test<_From, _To>(0)) type; + }; + + + + template + struct is_convertible + : public __is_convertible_helper<_From, _To>::type + { }; +# 1374 "/usr/include/c++/9/type_traits" 3 + template + struct remove_const + { typedef _Tp type; }; + + template + struct remove_const<_Tp const> + { typedef _Tp type; }; + + + template + struct remove_volatile + { typedef _Tp type; }; + + template + struct remove_volatile<_Tp volatile> + { typedef _Tp type; }; + + + template + struct remove_cv + { + typedef typename + remove_const::type>::type type; + }; + + + template + struct add_const + { typedef _Tp const type; }; + + + template + struct add_volatile + { typedef _Tp volatile type; }; + + + template + struct add_cv + { + typedef typename + add_const::type>::type type; + }; + + + + + + + template + using remove_const_t = typename remove_const<_Tp>::type; + + + template + using remove_volatile_t = typename remove_volatile<_Tp>::type; + + + template + using remove_cv_t = typename remove_cv<_Tp>::type; + + + template + using add_const_t = typename add_const<_Tp>::type; + + + template + using add_volatile_t = typename add_volatile<_Tp>::type; + + + template + using add_cv_t = typename add_cv<_Tp>::type; + + + + + + template + struct remove_reference + { typedef _Tp type; }; + + template + struct remove_reference<_Tp&> + { typedef _Tp type; }; + + template + struct remove_reference<_Tp&&> + { typedef _Tp type; }; + + template::value> + struct __add_lvalue_reference_helper + { typedef _Tp type; }; + + template + struct __add_lvalue_reference_helper<_Tp, true> + { typedef _Tp& type; }; + + + template + struct add_lvalue_reference + : public __add_lvalue_reference_helper<_Tp> + { }; + + template::value> + struct __add_rvalue_reference_helper + { typedef _Tp type; }; + + template + struct __add_rvalue_reference_helper<_Tp, true> + { typedef _Tp&& type; }; + + + template + struct add_rvalue_reference + : public __add_rvalue_reference_helper<_Tp> + { }; + + + + template + using remove_reference_t = typename remove_reference<_Tp>::type; + + + template + using add_lvalue_reference_t = typename add_lvalue_reference<_Tp>::type; + + + template + using add_rvalue_reference_t = typename add_rvalue_reference<_Tp>::type; + + + + + + template + struct __cv_selector; + + template + struct __cv_selector<_Unqualified, false, false> + { typedef _Unqualified __type; }; + + template + struct __cv_selector<_Unqualified, false, true> + { typedef volatile _Unqualified __type; }; + + template + struct __cv_selector<_Unqualified, true, false> + { typedef const _Unqualified __type; }; + + template + struct __cv_selector<_Unqualified, true, true> + { typedef const volatile _Unqualified __type; }; + + template::value, + bool _IsVol = is_volatile<_Qualified>::value> + class __match_cv_qualifiers + { + typedef __cv_selector<_Unqualified, _IsConst, _IsVol> __match; + + public: + typedef typename __match::__type __type; + }; + + + template + struct __make_unsigned + { typedef _Tp __type; }; + + template<> + struct __make_unsigned + { typedef unsigned char __type; }; + + template<> + struct __make_unsigned + { typedef unsigned char __type; }; + + template<> + struct __make_unsigned + { typedef unsigned short __type; }; + + template<> + struct __make_unsigned + { typedef unsigned int __type; }; + + template<> + struct __make_unsigned + { typedef unsigned long __type; }; + + template<> + struct __make_unsigned + { typedef unsigned long long __type; }; + + + template<> + struct __make_unsigned<__int128> + { typedef unsigned __int128 __type; }; +# 1587 "/usr/include/c++/9/type_traits" 3 + template::value, + bool _IsEnum = is_enum<_Tp>::value> + class __make_unsigned_selector; + + template + class __make_unsigned_selector<_Tp, true, false> + { + using __unsigned_type + = typename __make_unsigned::type>::__type; + + public: + using __type + = typename __match_cv_qualifiers<_Tp, __unsigned_type>::__type; + }; + + class __make_unsigned_selector_base + { + protected: + template struct _List { }; + + template + struct _List<_Tp, _Up...> : _List<_Up...> + { static constexpr size_t __size = sizeof(_Tp); }; + + template + struct __select; + + template + struct __select<_Sz, _List<_Uint, _UInts...>, true> + { using __type = _Uint; }; + + template + struct __select<_Sz, _List<_Uint, _UInts...>, false> + : __select<_Sz, _List<_UInts...>> + { }; + }; + + + template + class __make_unsigned_selector<_Tp, false, true> + : __make_unsigned_selector_base + { + + using _UInts = _List; + + using __unsigned_type = typename __select::__type; + + public: + using __type + = typename __match_cv_qualifiers<_Tp, __unsigned_type>::__type; + }; + + + + + + + template<> + struct __make_unsigned + { + using __type + = typename __make_unsigned_selector::__type; + }; +# 1663 "/usr/include/c++/9/type_traits" 3 + template<> + struct __make_unsigned + { + using __type + = typename __make_unsigned_selector::__type; + }; + + template<> + struct __make_unsigned + { + using __type + = typename __make_unsigned_selector::__type; + }; + + + + + + template + struct make_unsigned + { typedef typename __make_unsigned_selector<_Tp>::__type type; }; + + + template<> + struct make_unsigned; + + + + template + struct __make_signed + { typedef _Tp __type; }; + + template<> + struct __make_signed + { typedef signed char __type; }; + + template<> + struct __make_signed + { typedef signed char __type; }; + + template<> + struct __make_signed + { typedef signed short __type; }; + + template<> + struct __make_signed + { typedef signed int __type; }; + + template<> + struct __make_signed + { typedef signed long __type; }; + + template<> + struct __make_signed + { typedef signed long long __type; }; + + + template<> + struct __make_signed + { typedef __int128 __type; }; +# 1741 "/usr/include/c++/9/type_traits" 3 + template::value, + bool _IsEnum = is_enum<_Tp>::value> + class __make_signed_selector; + + template + class __make_signed_selector<_Tp, true, false> + { + using __signed_type + = typename __make_signed::type>::__type; + + public: + using __type + = typename __match_cv_qualifiers<_Tp, __signed_type>::__type; + }; + + + template + class __make_signed_selector<_Tp, false, true> + { + typedef typename __make_unsigned_selector<_Tp>::__type __unsigned_type; + + public: + typedef typename __make_signed_selector<__unsigned_type>::__type __type; + }; + + + + + + + template<> + struct __make_signed + { + using __type + = typename __make_signed_selector::__type; + }; +# 1789 "/usr/include/c++/9/type_traits" 3 + template<> + struct __make_signed + { + using __type + = typename __make_signed_selector::__type; + }; + + template<> + struct __make_signed + { + using __type + = typename __make_signed_selector::__type; + }; + + + + + + template + struct make_signed + { typedef typename __make_signed_selector<_Tp>::__type type; }; + + + template<> + struct make_signed; + + + + template + using make_signed_t = typename make_signed<_Tp>::type; + + + template + using make_unsigned_t = typename make_unsigned<_Tp>::type; + + + + + + template + struct remove_extent + { typedef _Tp type; }; + + template + struct remove_extent<_Tp[_Size]> + { typedef _Tp type; }; + + template + struct remove_extent<_Tp[]> + { typedef _Tp type; }; + + + template + struct remove_all_extents + { typedef _Tp type; }; + + template + struct remove_all_extents<_Tp[_Size]> + { typedef typename remove_all_extents<_Tp>::type type; }; + + template + struct remove_all_extents<_Tp[]> + { typedef typename remove_all_extents<_Tp>::type type; }; + + + + template + using remove_extent_t = typename remove_extent<_Tp>::type; + + + template + using remove_all_extents_t = typename remove_all_extents<_Tp>::type; + + + + + template + struct __remove_pointer_helper + { typedef _Tp type; }; + + template + struct __remove_pointer_helper<_Tp, _Up*> + { typedef _Up type; }; + + + template + struct remove_pointer + : public __remove_pointer_helper<_Tp, typename remove_cv<_Tp>::type> + { }; + + + template, + is_void<_Tp>>::value> + struct __add_pointer_helper + { typedef _Tp type; }; + + template + struct __add_pointer_helper<_Tp, true> + { typedef typename remove_reference<_Tp>::type* type; }; + + template + struct add_pointer + : public __add_pointer_helper<_Tp> + { }; + + + + template + using remove_pointer_t = typename remove_pointer<_Tp>::type; + + + template + using add_pointer_t = typename add_pointer<_Tp>::type; + + + template + struct __aligned_storage_msa + { + union __type + { + unsigned char __data[_Len]; + struct __attribute__((__aligned__)) { } __align; + }; + }; +# 1924 "/usr/include/c++/9/type_traits" 3 + template::__type)> + struct aligned_storage + { + union type + { + unsigned char __data[_Len]; + struct __attribute__((__aligned__((_Align)))) { } __align; + }; + }; + + template + struct __strictest_alignment + { + static const size_t _S_alignment = 0; + static const size_t _S_size = 0; + }; + + template + struct __strictest_alignment<_Tp, _Types...> + { + static const size_t _S_alignment = + alignof(_Tp) > __strictest_alignment<_Types...>::_S_alignment + ? alignof(_Tp) : __strictest_alignment<_Types...>::_S_alignment; + static const size_t _S_size = + sizeof(_Tp) > __strictest_alignment<_Types...>::_S_size + ? sizeof(_Tp) : __strictest_alignment<_Types...>::_S_size; + }; +# 1963 "/usr/include/c++/9/type_traits" 3 + template + struct aligned_union + { + private: + static_assert(sizeof...(_Types) != 0, "At least one type is required"); + + using __strictest = __strictest_alignment<_Types...>; + static const size_t _S_len = _Len > __strictest::_S_size + ? _Len : __strictest::_S_size; + public: + + static const size_t alignment_value = __strictest::_S_alignment; + + typedef typename aligned_storage<_S_len, alignment_value>::type type; + }; + + template + const size_t aligned_union<_Len, _Types...>::alignment_value; + + + + template::value, + bool _IsFunction = is_function<_Up>::value> + struct __decay_selector; + + + template + struct __decay_selector<_Up, false, false> + { typedef typename remove_cv<_Up>::type __type; }; + + template + struct __decay_selector<_Up, true, false> + { typedef typename remove_extent<_Up>::type* __type; }; + + template + struct __decay_selector<_Up, false, true> + { typedef typename add_pointer<_Up>::type __type; }; + + + template + class decay + { + typedef typename remove_reference<_Tp>::type __remove_type; + + public: + typedef typename __decay_selector<__remove_type>::__type type; + }; + + template + class reference_wrapper; + + + template + struct __strip_reference_wrapper + { + typedef _Tp __type; + }; + + template + struct __strip_reference_wrapper > + { + typedef _Tp& __type; + }; + + template + struct __decay_and_strip + { + typedef typename __strip_reference_wrapper< + typename decay<_Tp>::type>::__type __type; + }; + + + + + template + struct enable_if + { }; + + + template + struct enable_if + { typedef _Tp type; }; + + template + using _Require = typename enable_if<__and_<_Cond...>::value>::type; + + + + template + struct conditional + { typedef _Iftrue type; }; + + + template + struct conditional + { typedef _Iffalse type; }; + + + template + struct common_type; + + + + struct __do_common_type_impl + { + template + static __success_type() + : std::declval<_Up>())>::type> _S_test(int); + + template + static __failure_type _S_test(...); + }; + + template + struct __common_type_impl + : private __do_common_type_impl + { + typedef decltype(_S_test<_Tp, _Up>(0)) type; + }; + + struct __do_member_type_wrapper + { + template + static __success_type _S_test(int); + + template + static __failure_type _S_test(...); + }; + + template + struct __member_type_wrapper + : private __do_member_type_wrapper + { + typedef decltype(_S_test<_Tp>(0)) type; + }; + + template + struct __expanded_common_type_wrapper + { + typedef common_type type; + }; + + template + struct __expanded_common_type_wrapper<__failure_type, _Args...> + { typedef __failure_type type; }; + + template<> + struct common_type<> + { }; + + template + struct common_type<_Tp> + : common_type<_Tp, _Tp> + { }; + + template + struct common_type<_Tp, _Up> + : public __common_type_impl<_Tp, _Up>::type + { }; + + template + struct common_type<_Tp, _Up, _Vp...> + : public __expanded_common_type_wrapper>::type, _Vp...>::type + { }; + + template::value> + struct __underlying_type_impl + { + using type = __underlying_type(_Tp); + }; + + template + struct __underlying_type_impl<_Tp, false> + { }; + + + template + struct underlying_type + : public __underlying_type_impl<_Tp> + { }; + + template + struct __declval_protector + { + static const bool __stop = false; + }; + + template + auto declval() noexcept -> decltype(__declval<_Tp>(0)) + { + static_assert(__declval_protector<_Tp>::__stop, + "declval() must not be used!"); + return __declval<_Tp>(0); + } + + + template + using __remove_cvref_t + = typename remove_cv::type>::type; + + + template + class result_of; + + + + + + struct __invoke_memfun_ref { }; + struct __invoke_memfun_deref { }; + struct __invoke_memobj_ref { }; + struct __invoke_memobj_deref { }; + struct __invoke_other { }; + + + template + struct __result_of_success : __success_type<_Tp> + { using __invoke_type = _Tag; }; + + + struct __result_of_memfun_ref_impl + { + template + static __result_of_success().*std::declval<_Fp>())(std::declval<_Args>()...) + ), __invoke_memfun_ref> _S_test(int); + + template + static __failure_type _S_test(...); + }; + + template + struct __result_of_memfun_ref + : private __result_of_memfun_ref_impl + { + typedef decltype(_S_test<_MemPtr, _Arg, _Args...>(0)) type; + }; + + + struct __result_of_memfun_deref_impl + { + template + static __result_of_success()).*std::declval<_Fp>())(std::declval<_Args>()...) + ), __invoke_memfun_deref> _S_test(int); + + template + static __failure_type _S_test(...); + }; + + template + struct __result_of_memfun_deref + : private __result_of_memfun_deref_impl + { + typedef decltype(_S_test<_MemPtr, _Arg, _Args...>(0)) type; + }; + + + struct __result_of_memobj_ref_impl + { + template + static __result_of_success().*std::declval<_Fp>() + ), __invoke_memobj_ref> _S_test(int); + + template + static __failure_type _S_test(...); + }; + + template + struct __result_of_memobj_ref + : private __result_of_memobj_ref_impl + { + typedef decltype(_S_test<_MemPtr, _Arg>(0)) type; + }; + + + struct __result_of_memobj_deref_impl + { + template + static __result_of_success()).*std::declval<_Fp>() + ), __invoke_memobj_deref> _S_test(int); + + template + static __failure_type _S_test(...); + }; + + template + struct __result_of_memobj_deref + : private __result_of_memobj_deref_impl + { + typedef decltype(_S_test<_MemPtr, _Arg>(0)) type; + }; + + template + struct __result_of_memobj; + + template + struct __result_of_memobj<_Res _Class::*, _Arg> + { + typedef __remove_cvref_t<_Arg> _Argval; + typedef _Res _Class::* _MemPtr; + typedef typename conditional<__or_, + is_base_of<_Class, _Argval>>::value, + __result_of_memobj_ref<_MemPtr, _Arg>, + __result_of_memobj_deref<_MemPtr, _Arg> + >::type::type type; + }; + + template + struct __result_of_memfun; + + template + struct __result_of_memfun<_Res _Class::*, _Arg, _Args...> + { + typedef typename remove_reference<_Arg>::type _Argval; + typedef _Res _Class::* _MemPtr; + typedef typename conditional::value, + __result_of_memfun_ref<_MemPtr, _Arg, _Args...>, + __result_of_memfun_deref<_MemPtr, _Arg, _Args...> + >::type::type type; + }; + + + + + + + template> + struct __inv_unwrap + { + using type = _Tp; + }; + + template + struct __inv_unwrap<_Tp, reference_wrapper<_Up>> + { + using type = _Up&; + }; + + template + struct __result_of_impl + { + typedef __failure_type type; + }; + + template + struct __result_of_impl + : public __result_of_memobj::type, + typename __inv_unwrap<_Arg>::type> + { }; + + template + struct __result_of_impl + : public __result_of_memfun::type, + typename __inv_unwrap<_Arg>::type, _Args...> + { }; + + + struct __result_of_other_impl + { + template + static __result_of_success()(std::declval<_Args>()...) + ), __invoke_other> _S_test(int); + + template + static __failure_type _S_test(...); + }; + + template + struct __result_of_impl + : private __result_of_other_impl + { + typedef decltype(_S_test<_Functor, _ArgTypes...>(0)) type; + }; + + + template + struct __invoke_result + : public __result_of_impl< + is_member_object_pointer< + typename remove_reference<_Functor>::type + >::value, + is_member_function_pointer< + typename remove_reference<_Functor>::type + >::value, + _Functor, _ArgTypes... + >::type + { }; + + template + struct result_of<_Functor(_ArgTypes...)> + : public __invoke_result<_Functor, _ArgTypes...> + { }; + + + + template::__type)> + using aligned_storage_t = typename aligned_storage<_Len, _Align>::type; + + template + using aligned_union_t = typename aligned_union<_Len, _Types...>::type; + + + template + using decay_t = typename decay<_Tp>::type; + + + template + using enable_if_t = typename enable_if<_Cond, _Tp>::type; + + + template + using conditional_t = typename conditional<_Cond, _Iftrue, _Iffalse>::type; + + + template + using common_type_t = typename common_type<_Tp...>::type; + + + template + using underlying_type_t = typename underlying_type<_Tp>::type; + + + template + using result_of_t = typename result_of<_Tp>::type; + + + + template + using __enable_if_t = typename enable_if<_Cond, _Tp>::type; + + + template using __void_t = void; + + + + + template using void_t = void; + + + + template class _Op, typename... _Args> + struct __detector + { + using value_t = false_type; + using type = _Default; + }; + + + template class _Op, + typename... _Args> + struct __detector<_Default, __void_t<_Op<_Args...>>, _Op, _Args...> + { + using value_t = true_type; + using type = _Op<_Args...>; + }; + + + template class _Op, + typename... _Args> + using __detected_or = __detector<_Default, void, _Op, _Args...>; + + + template class _Op, + typename... _Args> + using __detected_or_t + = typename __detected_or<_Default, _Op, _Args...>::type; +# 2455 "/usr/include/c++/9/type_traits" 3 + template + struct __is_swappable; + + template + struct __is_nothrow_swappable; + + template + class tuple; + + template + struct __is_tuple_like_impl : false_type + { }; + + template + struct __is_tuple_like_impl> : true_type + { }; + + + template + struct __is_tuple_like + : public __is_tuple_like_impl<__remove_cvref_t<_Tp>>::type + { }; + + template + inline + typename enable_if<__and_<__not_<__is_tuple_like<_Tp>>, + is_move_constructible<_Tp>, + is_move_assignable<_Tp>>::value>::type + swap(_Tp&, _Tp&) + noexcept(__and_, + is_nothrow_move_assignable<_Tp>>::value); + + template + inline + typename enable_if<__is_swappable<_Tp>::value>::type + swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm]) + noexcept(__is_nothrow_swappable<_Tp>::value); + + namespace __swappable_details { + using std::swap; + + struct __do_is_swappable_impl + { + template(), std::declval<_Tp&>()))> + static true_type __test(int); + + template + static false_type __test(...); + }; + + struct __do_is_nothrow_swappable_impl + { + template + static __bool_constant< + noexcept(swap(std::declval<_Tp&>(), std::declval<_Tp&>())) + > __test(int); + + template + static false_type __test(...); + }; + + } + + template + struct __is_swappable_impl + : public __swappable_details::__do_is_swappable_impl + { + typedef decltype(__test<_Tp>(0)) type; + }; + + template + struct __is_nothrow_swappable_impl + : public __swappable_details::__do_is_nothrow_swappable_impl + { + typedef decltype(__test<_Tp>(0)) type; + }; + + template + struct __is_swappable + : public __is_swappable_impl<_Tp>::type + { }; + + template + struct __is_nothrow_swappable + : public __is_nothrow_swappable_impl<_Tp>::type + { }; + + + + + + + template + struct is_swappable + : public __is_swappable_impl<_Tp>::type + { }; + + + template + struct is_nothrow_swappable + : public __is_nothrow_swappable_impl<_Tp>::type + { }; + + + + template + constexpr bool is_swappable_v = + is_swappable<_Tp>::value; + + + template + constexpr bool is_nothrow_swappable_v = + is_nothrow_swappable<_Tp>::value; + + + namespace __swappable_with_details { + using std::swap; + + struct __do_is_swappable_with_impl + { + template(), std::declval<_Up>())), + typename + = decltype(swap(std::declval<_Up>(), std::declval<_Tp>()))> + static true_type __test(int); + + template + static false_type __test(...); + }; + + struct __do_is_nothrow_swappable_with_impl + { + template + static __bool_constant< + noexcept(swap(std::declval<_Tp>(), std::declval<_Up>())) + && + noexcept(swap(std::declval<_Up>(), std::declval<_Tp>())) + > __test(int); + + template + static false_type __test(...); + }; + + } + + template + struct __is_swappable_with_impl + : public __swappable_with_details::__do_is_swappable_with_impl + { + typedef decltype(__test<_Tp, _Up>(0)) type; + }; + + + template + struct __is_swappable_with_impl<_Tp&, _Tp&> + : public __swappable_details::__do_is_swappable_impl + { + typedef decltype(__test<_Tp&>(0)) type; + }; + + template + struct __is_nothrow_swappable_with_impl + : public __swappable_with_details::__do_is_nothrow_swappable_with_impl + { + typedef decltype(__test<_Tp, _Up>(0)) type; + }; + + + template + struct __is_nothrow_swappable_with_impl<_Tp&, _Tp&> + : public __swappable_details::__do_is_nothrow_swappable_impl + { + typedef decltype(__test<_Tp&>(0)) type; + }; + + + template + struct is_swappable_with + : public __is_swappable_with_impl<_Tp, _Up>::type + { }; + + + template + struct is_nothrow_swappable_with + : public __is_nothrow_swappable_with_impl<_Tp, _Up>::type + { }; + + + + template + constexpr bool is_swappable_with_v = + is_swappable_with<_Tp, _Up>::value; + + + template + constexpr bool is_nothrow_swappable_with_v = + is_nothrow_swappable_with<_Tp, _Up>::value; + + + + + + + + template::value, typename = void> + struct __is_invocable_impl : false_type { }; + + + template + struct __is_invocable_impl<_Result, _Ret, + true, + __void_t> + : true_type + { }; + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wctor-dtor-privacy" + + template + struct __is_invocable_impl<_Result, _Ret, + false, + __void_t> + { + private: + + + static typename _Result::type _S_get(); + + template + static void _S_conv(_Tp); + + + template(_S_get()))> + static true_type + _S_test(int); + + template + static false_type + _S_test(...); + + public: + using type = decltype(_S_test<_Ret>(1)); + }; +#pragma GCC diagnostic pop + + template + struct __is_invocable + : __is_invocable_impl<__invoke_result<_Fn, _ArgTypes...>, void>::type + { }; + + template + constexpr bool __call_is_nt(__invoke_memfun_ref) + { + using _Up = typename __inv_unwrap<_Tp>::type; + return noexcept((std::declval<_Up>().*std::declval<_Fn>())( + std::declval<_Args>()...)); + } + + template + constexpr bool __call_is_nt(__invoke_memfun_deref) + { + return noexcept(((*std::declval<_Tp>()).*std::declval<_Fn>())( + std::declval<_Args>()...)); + } + + template + constexpr bool __call_is_nt(__invoke_memobj_ref) + { + using _Up = typename __inv_unwrap<_Tp>::type; + return noexcept(std::declval<_Up>().*std::declval<_Fn>()); + } + + template + constexpr bool __call_is_nt(__invoke_memobj_deref) + { + return noexcept((*std::declval<_Tp>()).*std::declval<_Fn>()); + } + + template + constexpr bool __call_is_nt(__invoke_other) + { + return noexcept(std::declval<_Fn>()(std::declval<_Args>()...)); + } + + template + struct __call_is_nothrow + : __bool_constant< + std::__call_is_nt<_Fn, _Args...>(typename _Result::__invoke_type{}) + > + { }; + + template + using __call_is_nothrow_ + = __call_is_nothrow<__invoke_result<_Fn, _Args...>, _Fn, _Args...>; + + + template + struct __is_nothrow_invocable + : __and_<__is_invocable<_Fn, _Args...>, + __call_is_nothrow_<_Fn, _Args...>>::type + { }; + + struct __nonesuch { + __nonesuch() = delete; + ~__nonesuch() = delete; + __nonesuch(__nonesuch const&) = delete; + void operator=(__nonesuch const&) = delete; + }; +# 3096 "/usr/include/c++/9/type_traits" 3 + +} +# 56 "/usr/include/c++/9/bits/move.h" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 72 "/usr/include/c++/9/bits/move.h" 3 + template + constexpr _Tp&& + forward(typename std::remove_reference<_Tp>::type& __t) noexcept + { return static_cast<_Tp&&>(__t); } + + + + + + + + template + constexpr _Tp&& + forward(typename std::remove_reference<_Tp>::type&& __t) noexcept + { + static_assert(!std::is_lvalue_reference<_Tp>::value, "template argument" + " substituting _Tp is an lvalue reference type"); + return static_cast<_Tp&&>(__t); + } + + + + + + + template + constexpr typename std::remove_reference<_Tp>::type&& + move(_Tp&& __t) noexcept + { return static_cast::type&&>(__t); } + + + template + struct __move_if_noexcept_cond + : public __and_<__not_>, + is_copy_constructible<_Tp>>::type { }; +# 116 "/usr/include/c++/9/bits/move.h" 3 + template + constexpr typename + conditional<__move_if_noexcept_cond<_Tp>::value, const _Tp&, _Tp&&>::type + move_if_noexcept(_Tp& __x) noexcept + { return std::move(__x); } +# 136 "/usr/include/c++/9/bits/move.h" 3 + template + inline _Tp* + addressof(_Tp& __r) noexcept + { return std::__addressof(__r); } + + + + template + const _Tp* addressof(const _Tp&&) = delete; + + + template + inline _Tp + __exchange(_Tp& __obj, _Up&& __new_val) + { + _Tp __old_val = std::move(__obj); + __obj = std::forward<_Up>(__new_val); + return __old_val; + } +# 176 "/usr/include/c++/9/bits/move.h" 3 + template + inline + + typename enable_if<__and_<__not_<__is_tuple_like<_Tp>>, + is_move_constructible<_Tp>, + is_move_assignable<_Tp>>::value>::type + swap(_Tp& __a, _Tp& __b) + noexcept(__and_, + is_nothrow_move_assignable<_Tp>>::value) + + + + + { + + + + _Tp __tmp = std::move(__a); + __a = std::move(__b); + __b = std::move(__tmp); + } + + + + + template + inline + + typename enable_if<__is_swappable<_Tp>::value>::type + swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm]) + noexcept(__is_nothrow_swappable<_Tp>::value) + + + + + { + for (size_t __n = 0; __n < _Nm; ++__n) + swap(__a[__n], __b[__n]); + } + + + +} +# 60 "/usr/include/c++/9/bits/stl_pair.h" 2 3 + + + + + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + +# 76 "/usr/include/c++/9/bits/stl_pair.h" 3 + struct piecewise_construct_t { explicit piecewise_construct_t() = default; }; + + + constexpr piecewise_construct_t piecewise_construct = + piecewise_construct_t(); + + + template + class tuple; + + template + struct _Index_tuple; + + + + + + + template + struct _PCC + { + template + static constexpr bool _ConstructiblePair() + { + return __and_, + is_constructible<_T2, const _U2&>>::value; + } + + template + static constexpr bool _ImplicitlyConvertiblePair() + { + return __and_, + is_convertible>::value; + } + + template + static constexpr bool _MoveConstructiblePair() + { + return __and_, + is_constructible<_T2, _U2&&>>::value; + } + + template + static constexpr bool _ImplicitlyMoveConvertiblePair() + { + return __and_, + is_convertible<_U2&&, _T2>>::value; + } + + template + static constexpr bool _CopyMovePair() + { + using __do_converts = __and_, + is_convertible<_U2&&, _T2>>; + using __converts = typename conditional<__implicit, + __do_converts, + __not_<__do_converts>>::type; + return __and_, + is_constructible<_T2, _U2&&>, + __converts + >::value; + } + + template + static constexpr bool _MoveCopyPair() + { + using __do_converts = __and_, + is_convertible>; + using __converts = typename conditional<__implicit, + __do_converts, + __not_<__do_converts>>::type; + return __and_, + is_constructible<_T2, const _U2&&>, + __converts + >::value; + } + }; + + template + struct _PCC + { + template + static constexpr bool _ConstructiblePair() + { + return false; + } + + template + static constexpr bool _ImplicitlyConvertiblePair() + { + return false; + } + + template + static constexpr bool _MoveConstructiblePair() + { + return false; + } + + template + static constexpr bool _ImplicitlyMoveConvertiblePair() + { + return false; + } + }; + + + + + struct __nonesuch_no_braces : std::__nonesuch { + explicit __nonesuch_no_braces(const __nonesuch&) = delete; + }; + + + template class __pair_base + { + + template friend struct pair; + __pair_base() = default; + ~__pair_base() = default; + __pair_base(const __pair_base&) = default; + __pair_base& operator=(const __pair_base&) = delete; + + }; + + + + + + + + template + struct pair + : private __pair_base<_T1, _T2> + { + typedef _T1 first_type; + typedef _T2 second_type; + + _T1 first; + _T2 second; + + + + + + + template , + __is_implicitly_default_constructible<_U2>> + ::value, bool>::type = true> + + constexpr pair() + : first(), second() { } + + + template , + is_default_constructible<_U2>, + __not_< + __and_<__is_implicitly_default_constructible<_U1>, + __is_implicitly_default_constructible<_U2>>>> + ::value, bool>::type = false> + explicit constexpr pair() + : first(), second() { } +# 252 "/usr/include/c++/9/bits/stl_pair.h" 3 + using _PCCP = _PCC; + + template() + && _PCCP::template + _ImplicitlyConvertiblePair<_U1, _U2>(), + bool>::type=true> + constexpr pair(const _T1& __a, const _T2& __b) + : first(__a), second(__b) { } + + template() + && !_PCCP::template + _ImplicitlyConvertiblePair<_U1, _U2>(), + bool>::type=false> + explicit constexpr pair(const _T1& __a, const _T2& __b) + : first(__a), second(__b) { } +# 280 "/usr/include/c++/9/bits/stl_pair.h" 3 + template + using _PCCFP = _PCC::value + || !is_same<_T2, _U2>::value, + _T1, _T2>; + + template::template + _ConstructiblePair<_U1, _U2>() + && _PCCFP<_U1, _U2>::template + _ImplicitlyConvertiblePair<_U1, _U2>(), + bool>::type=true> + constexpr pair(const pair<_U1, _U2>& __p) + : first(__p.first), second(__p.second) { } + + template::template + _ConstructiblePair<_U1, _U2>() + && !_PCCFP<_U1, _U2>::template + _ImplicitlyConvertiblePair<_U1, _U2>(), + bool>::type=false> + explicit constexpr pair(const pair<_U1, _U2>& __p) + : first(__p.first), second(__p.second) { } + + constexpr pair(const pair&) = default; + constexpr pair(pair&&) = default; + + + template(), + bool>::type=true> + constexpr pair(_U1&& __x, const _T2& __y) + : first(std::forward<_U1>(__x)), second(__y) { } + + template(), + bool>::type=false> + explicit constexpr pair(_U1&& __x, const _T2& __y) + : first(std::forward<_U1>(__x)), second(__y) { } + + template(), + bool>::type=true> + constexpr pair(const _T1& __x, _U2&& __y) + : first(__x), second(std::forward<_U2>(__y)) { } + + template(), + bool>::type=false> + explicit pair(const _T1& __x, _U2&& __y) + : first(__x), second(std::forward<_U2>(__y)) { } + + template() + && _PCCP::template + _ImplicitlyMoveConvertiblePair<_U1, _U2>(), + bool>::type=true> + constexpr pair(_U1&& __x, _U2&& __y) + : first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) { } + + template() + && !_PCCP::template + _ImplicitlyMoveConvertiblePair<_U1, _U2>(), + bool>::type=false> + explicit constexpr pair(_U1&& __x, _U2&& __y) + : first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) { } + + + template::template + _MoveConstructiblePair<_U1, _U2>() + && _PCCFP<_U1, _U2>::template + _ImplicitlyMoveConvertiblePair<_U1, _U2>(), + bool>::type=true> + constexpr pair(pair<_U1, _U2>&& __p) + : first(std::forward<_U1>(__p.first)), + second(std::forward<_U2>(__p.second)) { } + + template::template + _MoveConstructiblePair<_U1, _U2>() + && !_PCCFP<_U1, _U2>::template + _ImplicitlyMoveConvertiblePair<_U1, _U2>(), + bool>::type=false> + explicit constexpr pair(pair<_U1, _U2>&& __p) + : first(std::forward<_U1>(__p.first)), + second(std::forward<_U2>(__p.second)) { } + + template + pair(piecewise_construct_t, tuple<_Args1...>, tuple<_Args2...>); + + pair& + operator=(typename conditional< + __and_, + is_copy_assignable<_T2>>::value, + const pair&, const __nonesuch_no_braces&>::type __p) + { + first = __p.first; + second = __p.second; + return *this; + } + + pair& + operator=(typename conditional< + __and_, + is_move_assignable<_T2>>::value, + pair&&, __nonesuch_no_braces&&>::type __p) + noexcept(__and_, + is_nothrow_move_assignable<_T2>>::value) + { + first = std::forward(__p.first); + second = std::forward(__p.second); + return *this; + } + + template + typename enable_if<__and_, + is_assignable<_T2&, const _U2&>>::value, + pair&>::type + operator=(const pair<_U1, _U2>& __p) + { + first = __p.first; + second = __p.second; + return *this; + } + + template + typename enable_if<__and_, + is_assignable<_T2&, _U2&&>>::value, + pair&>::type + operator=(pair<_U1, _U2>&& __p) + { + first = std::forward<_U1>(__p.first); + second = std::forward<_U2>(__p.second); + return *this; + } + + void + swap(pair& __p) + noexcept(__and_<__is_nothrow_swappable<_T1>, + __is_nothrow_swappable<_T2>>::value) + { + using std::swap; + swap(first, __p.first); + swap(second, __p.second); + } + + private: + template + pair(tuple<_Args1...>&, tuple<_Args2...>&, + _Index_tuple<_Indexes1...>, _Index_tuple<_Indexes2...>); + + }; + + + + + + + template + inline constexpr bool + operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) + { return __x.first == __y.first && __x.second == __y.second; } + + + template + inline constexpr bool + operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) + { return __x.first < __y.first + || (!(__y.first < __x.first) && __x.second < __y.second); } + + + template + inline constexpr bool + operator!=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) + { return !(__x == __y); } + + + template + inline constexpr bool + operator>(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) + { return __y < __x; } + + + template + inline constexpr bool + operator<=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) + { return !(__y < __x); } + + + template + inline constexpr bool + operator>=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) + { return !(__x < __y); } + + + + + + template + inline + + + typename enable_if<__and_<__is_swappable<_T1>, + __is_swappable<_T2>>::value>::type + + + + swap(pair<_T1, _T2>& __x, pair<_T1, _T2>& __y) + noexcept(noexcept(__x.swap(__y))) + { __x.swap(__y); } + + + template + typename enable_if, + __is_swappable<_T2>>::value>::type + swap(pair<_T1, _T2>&, pair<_T1, _T2>&) = delete; +# 521 "/usr/include/c++/9/bits/stl_pair.h" 3 + template + constexpr pair::__type, + typename __decay_and_strip<_T2>::__type> + make_pair(_T1&& __x, _T2&& __y) + { + typedef typename __decay_and_strip<_T1>::__type __ds_type1; + typedef typename __decay_and_strip<_T2>::__type __ds_type2; + typedef pair<__ds_type1, __ds_type2> __pair_type; + return __pair_type(std::forward<_T1>(__x), std::forward<_T2>(__y)); + } +# 540 "/usr/include/c++/9/bits/stl_pair.h" 3 + +} +# 71 "/usr/include/c++/9/utility" 2 3 + + + + + +# 1 "/usr/include/c++/9/initializer_list" 1 3 +# 33 "/usr/include/c++/9/initializer_list" 3 + +# 34 "/usr/include/c++/9/initializer_list" 3 + + + + + +#pragma GCC visibility push(default) + + + +namespace std +{ + + template + class initializer_list + { + public: + typedef _E value_type; + typedef const _E& reference; + typedef const _E& const_reference; + typedef size_t size_type; + typedef const _E* iterator; + typedef const _E* const_iterator; + + private: + iterator _M_array; + size_type _M_len; + + + constexpr initializer_list(const_iterator __a, size_type __l) + : _M_array(__a), _M_len(__l) { } + + public: + constexpr initializer_list() noexcept + : _M_array(0), _M_len(0) { } + + + constexpr size_type + size() const noexcept { return _M_len; } + + + constexpr const_iterator + begin() const noexcept { return _M_array; } + + + constexpr const_iterator + end() const noexcept { return begin() + size(); } + }; + + + + + + + template + constexpr const _Tp* + begin(initializer_list<_Tp> __ils) noexcept + { return __ils.begin(); } + + + + + + + template + constexpr const _Tp* + end(initializer_list<_Tp> __ils) noexcept + { return __ils.end(); } +} + +#pragma GCC visibility pop +# 77 "/usr/include/c++/9/utility" 2 3 + +namespace std __attribute__ ((__visibility__ ("default"))) +{ + + + + template + struct tuple_size; + + + + + + template::type, + typename = typename enable_if::value>::type, + size_t = tuple_size<_Tp>::value> + using __enable_if_has_tuple_size = _Tp; + + template + struct tuple_size> + : public tuple_size<_Tp> { }; + + template + struct tuple_size> + : public tuple_size<_Tp> { }; + + template + struct tuple_size> + : public tuple_size<_Tp> { }; + + + template + struct tuple_element; + + + template + using __tuple_element_t = typename tuple_element<__i, _Tp>::type; + + template + struct tuple_element<__i, const _Tp> + { + typedef typename add_const<__tuple_element_t<__i, _Tp>>::type type; + }; + + template + struct tuple_element<__i, volatile _Tp> + { + typedef typename add_volatile<__tuple_element_t<__i, _Tp>>::type type; + }; + + template + struct tuple_element<__i, const volatile _Tp> + { + typedef typename add_cv<__tuple_element_t<__i, _Tp>>::type type; + }; + + + + + + + + template + using tuple_element_t = typename tuple_element<__i, _Tp>::type; + + + + + + template + struct __is_tuple_like_impl> : true_type + { }; + + + template + struct tuple_size> + : public integral_constant { }; + + + template + struct tuple_element<0, std::pair<_Tp1, _Tp2>> + { typedef _Tp1 type; }; + + + template + struct tuple_element<1, std::pair<_Tp1, _Tp2>> + { typedef _Tp2 type; }; + + template + struct __pair_get; + + template<> + struct __pair_get<0> + { + template + static constexpr _Tp1& + __get(std::pair<_Tp1, _Tp2>& __pair) noexcept + { return __pair.first; } + + template + static constexpr _Tp1&& + __move_get(std::pair<_Tp1, _Tp2>&& __pair) noexcept + { return std::forward<_Tp1>(__pair.first); } + + template + static constexpr const _Tp1& + __const_get(const std::pair<_Tp1, _Tp2>& __pair) noexcept + { return __pair.first; } + + template + static constexpr const _Tp1&& + __const_move_get(const std::pair<_Tp1, _Tp2>&& __pair) noexcept + { return std::forward(__pair.first); } + }; + + template<> + struct __pair_get<1> + { + template + static constexpr _Tp2& + __get(std::pair<_Tp1, _Tp2>& __pair) noexcept + { return __pair.second; } + + template + static constexpr _Tp2&& + __move_get(std::pair<_Tp1, _Tp2>&& __pair) noexcept + { return std::forward<_Tp2>(__pair.second); } + + template + static constexpr const _Tp2& + __const_get(const std::pair<_Tp1, _Tp2>& __pair) noexcept + { return __pair.second; } + + template + static constexpr const _Tp2&& + __const_move_get(const std::pair<_Tp1, _Tp2>&& __pair) noexcept + { return std::forward(__pair.second); } + }; + + template + constexpr typename tuple_element<_Int, std::pair<_Tp1, _Tp2>>::type& + get(std::pair<_Tp1, _Tp2>& __in) noexcept + { return __pair_get<_Int>::__get(__in); } + + template + constexpr typename tuple_element<_Int, std::pair<_Tp1, _Tp2>>::type&& + get(std::pair<_Tp1, _Tp2>&& __in) noexcept + { return __pair_get<_Int>::__move_get(std::move(__in)); } + + template + constexpr const typename tuple_element<_Int, std::pair<_Tp1, _Tp2>>::type& + get(const std::pair<_Tp1, _Tp2>& __in) noexcept + { return __pair_get<_Int>::__const_get(__in); } + + template + constexpr const typename tuple_element<_Int, std::pair<_Tp1, _Tp2>>::type&& + get(const std::pair<_Tp1, _Tp2>&& __in) noexcept + { return __pair_get<_Int>::__const_move_get(std::move(__in)); } + + + + + + template + constexpr _Tp& + get(pair<_Tp, _Up>& __p) noexcept + { return __p.first; } + + template + constexpr const _Tp& + get(const pair<_Tp, _Up>& __p) noexcept + { return __p.first; } + + template + constexpr _Tp&& + get(pair<_Tp, _Up>&& __p) noexcept + { return std::move(__p.first); } + + template + constexpr const _Tp&& + get(const pair<_Tp, _Up>&& __p) noexcept + { return std::move(__p.first); } + + template + constexpr _Tp& + get(pair<_Up, _Tp>& __p) noexcept + { return __p.second; } + + template + constexpr const _Tp& + get(const pair<_Up, _Tp>& __p) noexcept + { return __p.second; } + + template + constexpr _Tp&& + get(pair<_Up, _Tp>&& __p) noexcept + { return std::move(__p.second); } + + template + constexpr const _Tp&& + get(const pair<_Up, _Tp>&& __p) noexcept + { return std::move(__p.second); } + + + + + template + inline _Tp + exchange(_Tp& __obj, _Up&& __new_val) + { return std::__exchange(__obj, std::forward<_Up>(__new_val)); } + + + + + template struct _Index_tuple { }; +# 301 "/usr/include/c++/9/utility" 3 + template + struct _Build_index_tuple + { + + + + + + + using __type = _Index_tuple<__integer_pack(_Num)...>; + + }; + + + + + + + template + struct integer_sequence + { + typedef _Tp value_type; + static constexpr size_t size() noexcept { return sizeof...(_Idx); } + }; + + + template + using make_integer_sequence + + + + = integer_sequence<_Tp, __integer_pack(_Num)...>; + + + + + + template + using index_sequence = integer_sequence; + + + template + using make_index_sequence = make_integer_sequence; + + + template + using index_sequence_for = make_index_sequence; +# 396 "/usr/include/c++/9/utility" 3 + +} +# 148 "/usr/include/cuda_runtime.h" 2 3 4 +# 205 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) cudaError_t cudaLaunchKernel( + const T *func, + dim3 gridDim, + dim3 blockDim, + void **args, + size_t sharedMem = 0, + cudaStream_t stream = 0 +) +{ + return ::cudaLaunchKernel((const void *)func, gridDim, blockDim, args, sharedMem, stream); +} +# 276 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) cudaError_t cudaLaunchKernelEx( + const cudaLaunchConfig_t *config, + void (*kernel)(ExpTypes...), + ActTypes &&... args +) +{ + return [&](ExpTypes... coercedArgs){ + void *pArgs[] = { &coercedArgs... }; + return ::cudaLaunchKernelExC(config, (const void *)kernel, pArgs); + }(std::forward(args)...); +} +# 339 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) cudaError_t cudaLaunchCooperativeKernel( + const T *func, + dim3 gridDim, + dim3 blockDim, + void **args, + size_t sharedMem = 0, + cudaStream_t stream = 0 +) +{ + return ::cudaLaunchCooperativeKernel((const void *)func, gridDim, blockDim, args, sharedMem, stream); +} +# 383 "/usr/include/cuda_runtime.h" 3 4 +static __inline__ __attribute__((host)) cudaError_t cudaEventCreate( + cudaEvent_t *event, + unsigned int flags +) +{ + return ::cudaEventCreateWithFlags(event, flags); +} +# 448 "/usr/include/cuda_runtime.h" 3 4 +static __inline__ __attribute__((host)) cudaError_t cudaMallocHost( + void **ptr, + size_t size, + unsigned int flags +) +{ + return ::cudaHostAlloc(ptr, size, flags); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaHostAlloc( + T **ptr, + size_t size, + unsigned int flags +) +{ + return ::cudaHostAlloc((void**)(void*)ptr, size, flags); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaHostGetDevicePointer( + T **pDevice, + void *pHost, + unsigned int flags +) +{ + return ::cudaHostGetDevicePointer((void**)(void*)pDevice, pHost, flags); +} +# 577 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) cudaError_t cudaMallocManaged( + T **devPtr, + size_t size, + unsigned int flags = 0x01 +) +{ + return ::cudaMallocManaged((void**)(void*)devPtr, size, flags); +} +# 667 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) cudaError_t cudaStreamAttachMemAsync( + cudaStream_t stream, + T *devPtr, + size_t length = 0, + unsigned int flags = 0x04 +) +{ + return ::cudaStreamAttachMemAsync(stream, (void*)devPtr, length, flags); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaMalloc( + T **devPtr, + size_t size +) +{ + return ::cudaMalloc((void**)(void*)devPtr, size); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaMallocHost( + T **ptr, + size_t size, + unsigned int flags = 0 +) +{ + return cudaMallocHost((void**)(void*)ptr, size, flags); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaMallocPitch( + T **devPtr, + size_t *pitch, + size_t width, + size_t height +) +{ + return ::cudaMallocPitch((void**)(void*)devPtr, pitch, width, height); +} +# 717 "/usr/include/cuda_runtime.h" 3 4 +static __inline__ __attribute__((host)) cudaError_t cudaMallocAsync( + void **ptr, + size_t size, + cudaMemPool_t memPool, + cudaStream_t stream +) +{ + return ::cudaMallocFromPoolAsync(ptr, size, memPool, stream); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaMallocAsync( + T **ptr, + size_t size, + cudaMemPool_t memPool, + cudaStream_t stream +) +{ + return ::cudaMallocFromPoolAsync((void**)(void*)ptr, size, memPool, stream); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaMallocAsync( + T **ptr, + size_t size, + cudaStream_t stream +) +{ + return ::cudaMallocAsync((void**)(void*)ptr, size, stream); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaMallocFromPoolAsync( + T **ptr, + size_t size, + cudaMemPool_t memPool, + cudaStream_t stream +) +{ + return ::cudaMallocFromPoolAsync((void**)(void*)ptr, size, memPool, stream); +} +# 796 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) cudaError_t cudaMemcpyToSymbol( + const T &symbol, + const void *src, + size_t count, + size_t offset = 0, + enum cudaMemcpyKind kind = cudaMemcpyHostToDevice +) +{ + return ::cudaMemcpyToSymbol((const void*)&symbol, src, count, offset, kind); +} +# 850 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) cudaError_t cudaMemcpyToSymbolAsync( + const T &symbol, + const void *src, + size_t count, + size_t offset = 0, + enum cudaMemcpyKind kind = cudaMemcpyHostToDevice, + cudaStream_t stream = 0 +) +{ + return ::cudaMemcpyToSymbolAsync((const void*)&symbol, src, count, offset, kind, stream); +} +# 898 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) cudaError_t cudaMemcpyFromSymbol( + void *dst, + const T &symbol, + size_t count, + size_t offset = 0, + enum cudaMemcpyKind kind = cudaMemcpyDeviceToHost +) +{ + return ::cudaMemcpyFromSymbol(dst, (const void*)&symbol, count, offset, kind); +} +# 952 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) cudaError_t cudaMemcpyFromSymbolAsync( + void *dst, + const T &symbol, + size_t count, + size_t offset = 0, + enum cudaMemcpyKind kind = cudaMemcpyDeviceToHost, + cudaStream_t stream = 0 +) +{ + return ::cudaMemcpyFromSymbolAsync(dst, (const void*)&symbol, count, offset, kind, stream); +} +# 1021 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) cudaError_t cudaGraphAddMemcpyNodeToSymbol( + cudaGraphNode_t *pGraphNode, + cudaGraph_t graph, + const cudaGraphNode_t *pDependencies, + size_t numDependencies, + const T &symbol, + const void* src, + size_t count, + size_t offset, + enum cudaMemcpyKind kind) +{ + return ::cudaGraphAddMemcpyNodeToSymbol(pGraphNode, graph, pDependencies, numDependencies, (const void*)&symbol, src, count, offset, kind); +} +# 1092 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) cudaError_t cudaGraphAddMemcpyNodeFromSymbol( + cudaGraphNode_t* pGraphNode, + cudaGraph_t graph, + const cudaGraphNode_t* pDependencies, + size_t numDependencies, + void* dst, + const T &symbol, + size_t count, + size_t offset, + enum cudaMemcpyKind kind) +{ + return ::cudaGraphAddMemcpyNodeFromSymbol(pGraphNode, graph, pDependencies, numDependencies, dst, (const void*)&symbol, count, offset, kind); +} +# 1143 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) cudaError_t cudaGraphMemcpyNodeSetParamsToSymbol( + cudaGraphNode_t node, + const T &symbol, + const void* src, + size_t count, + size_t offset, + enum cudaMemcpyKind kind) +{ + return ::cudaGraphMemcpyNodeSetParamsToSymbol(node, (const void*)&symbol, src, count, offset, kind); +} +# 1191 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) cudaError_t cudaGraphMemcpyNodeSetParamsFromSymbol( + cudaGraphNode_t node, + void* dst, + const T &symbol, + size_t count, + size_t offset, + enum cudaMemcpyKind kind) +{ + return ::cudaGraphMemcpyNodeSetParamsFromSymbol(node, dst, (const void*)&symbol, count, offset, kind); +} +# 1249 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) cudaError_t cudaGraphExecMemcpyNodeSetParamsToSymbol( + cudaGraphExec_t hGraphExec, + cudaGraphNode_t node, + const T &symbol, + const void* src, + size_t count, + size_t offset, + enum cudaMemcpyKind kind) +{ + return ::cudaGraphExecMemcpyNodeSetParamsToSymbol(hGraphExec, node, (const void*)&symbol, src, count, offset, kind); +} +# 1308 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) cudaError_t cudaGraphExecMemcpyNodeSetParamsFromSymbol( + cudaGraphExec_t hGraphExec, + cudaGraphNode_t node, + void* dst, + const T &symbol, + size_t count, + size_t offset, + enum cudaMemcpyKind kind) +{ + return ::cudaGraphExecMemcpyNodeSetParamsFromSymbol(hGraphExec, node, dst, (const void*)&symbol, count, offset, kind); +} +# 1347 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) cudaError_t cudaUserObjectCreate( + cudaUserObject_t *object_out, + T *objectToWrap, + unsigned int initialRefcount, + unsigned int flags) +{ + return ::cudaUserObjectCreate( + object_out, + objectToWrap, + [](void *vpObj) { delete reinterpret_cast(vpObj); }, + initialRefcount, + flags); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaUserObjectCreate( + cudaUserObject_t *object_out, + T *objectToWrap, + unsigned int initialRefcount, + cudaUserObjectFlags flags) +{ + return cudaUserObjectCreate(object_out, objectToWrap, initialRefcount, (unsigned int)flags); +} +# 1397 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) cudaError_t cudaGetSymbolAddress( + void **devPtr, + const T &symbol +) +{ + return ::cudaGetSymbolAddress(devPtr, (const void*)&symbol); +} +# 1429 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) cudaError_t cudaGetSymbolSize( + size_t *size, + const T &symbol +) +{ + return ::cudaGetSymbolSize(size, (const void*)&symbol); +} +# 1473 "/usr/include/cuda_runtime.h" 3 4 +template +static __attribute__((deprecated)) __inline__ __attribute__((host)) cudaError_t cudaBindTexture( + size_t *offset, + const struct texture &tex, + const void *devPtr, + const struct cudaChannelFormatDesc &desc, + size_t size = (0x7fffffff * 2U + 1U) +) +{ + return ::cudaBindTexture(offset, &tex, devPtr, &desc, size); +} +# 1519 "/usr/include/cuda_runtime.h" 3 4 +template +static __attribute__((deprecated)) __inline__ __attribute__((host)) cudaError_t cudaBindTexture( + size_t *offset, + const struct texture &tex, + const void *devPtr, + size_t size = (0x7fffffff * 2U + 1U) +) +{ + return cudaBindTexture(offset, tex, devPtr, tex.channelDesc, size); +} +# 1576 "/usr/include/cuda_runtime.h" 3 4 +template +static __attribute__((deprecated)) __inline__ __attribute__((host)) cudaError_t cudaBindTexture2D( + size_t *offset, + const struct texture &tex, + const void *devPtr, + const struct cudaChannelFormatDesc &desc, + size_t width, + size_t height, + size_t pitch +) +{ + return ::cudaBindTexture2D(offset, &tex, devPtr, &desc, width, height, pitch); +} +# 1635 "/usr/include/cuda_runtime.h" 3 4 +template +static __attribute__((deprecated)) __inline__ __attribute__((host)) cudaError_t cudaBindTexture2D( + size_t *offset, + const struct texture &tex, + const void *devPtr, + size_t width, + size_t height, + size_t pitch +) +{ + return ::cudaBindTexture2D(offset, &tex, devPtr, &tex.channelDesc, width, height, pitch); +} +# 1678 "/usr/include/cuda_runtime.h" 3 4 +template +static __attribute__((deprecated)) __inline__ __attribute__((host)) cudaError_t cudaBindTextureToArray( + const struct texture &tex, + cudaArray_const_t array, + const struct cudaChannelFormatDesc &desc +) +{ + return ::cudaBindTextureToArray(&tex, array, &desc); +} +# 1717 "/usr/include/cuda_runtime.h" 3 4 +template +static __attribute__((deprecated)) __inline__ __attribute__((host)) cudaError_t cudaBindTextureToArray( + const struct texture &tex, + cudaArray_const_t array +) +{ + struct cudaChannelFormatDesc desc; + cudaError_t err = ::cudaGetChannelDesc(&desc, array); + + return err == cudaSuccess ? cudaBindTextureToArray(tex, array, desc) : err; +} +# 1759 "/usr/include/cuda_runtime.h" 3 4 +template +static __attribute__((deprecated)) __inline__ __attribute__((host)) cudaError_t cudaBindTextureToMipmappedArray( + const struct texture &tex, + cudaMipmappedArray_const_t mipmappedArray, + const struct cudaChannelFormatDesc &desc +) +{ + return ::cudaBindTextureToMipmappedArray(&tex, mipmappedArray, &desc); +} +# 1798 "/usr/include/cuda_runtime.h" 3 4 +template +static __attribute__((deprecated)) __inline__ __attribute__((host)) cudaError_t cudaBindTextureToMipmappedArray( + const struct texture &tex, + cudaMipmappedArray_const_t mipmappedArray +) +{ + struct cudaChannelFormatDesc desc; + cudaArray_t levelArray; + cudaError_t err = ::cudaGetMipmappedArrayLevel(&levelArray, mipmappedArray, 0); + + if (err != cudaSuccess) { + return err; + } + err = ::cudaGetChannelDesc(&desc, levelArray); + + return err == cudaSuccess ? cudaBindTextureToMipmappedArray(tex, mipmappedArray, desc) : err; +} +# 1841 "/usr/include/cuda_runtime.h" 3 4 +template +static __attribute__((deprecated)) __inline__ __attribute__((host)) cudaError_t cudaUnbindTexture( + const struct texture &tex +) +{ + return ::cudaUnbindTexture(&tex); +} +# 1877 "/usr/include/cuda_runtime.h" 3 4 +template +static __attribute__((deprecated)) __inline__ __attribute__((host)) cudaError_t cudaGetTextureAlignmentOffset( + size_t *offset, + const struct texture &tex +) +{ + return ::cudaGetTextureAlignmentOffset(offset, &tex); +} +# 1929 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) cudaError_t cudaFuncSetCacheConfig( + T *func, + enum cudaFuncCache cacheConfig +) +{ + return ::cudaFuncSetCacheConfig((const void*)func, cacheConfig); +} + +template +static __inline__ __attribute__((host)) cudaError_t cudaFuncSetSharedMemConfig( + T *func, + enum cudaSharedMemConfig config +) +{ + return ::cudaFuncSetSharedMemConfig((const void*)func, config); +} +# 1977 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessor( + int *numBlocks, + T func, + int blockSize, + size_t dynamicSMemSize) +{ + return ::cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(numBlocks, (const void*)func, blockSize, dynamicSMemSize, 0x00); +} +# 2029 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags( + int *numBlocks, + T func, + int blockSize, + size_t dynamicSMemSize, + unsigned int flags) +{ + return ::cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(numBlocks, (const void*)func, blockSize, dynamicSMemSize, flags); +} + + + + +class __cudaOccupancyB2DHelper { + size_t n; +public: + inline __attribute__((host)) __attribute__((device)) __cudaOccupancyB2DHelper(size_t n_) : n(n_) {} + inline __attribute__((host)) __attribute__((device)) size_t operator()(int) + { + return n; + } +}; +# 2099 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) __attribute__((device)) cudaError_t cudaOccupancyMaxPotentialBlockSizeVariableSMemWithFlags( + int *minGridSize, + int *blockSize, + T func, + UnaryFunction blockSizeToDynamicSMemSize, + int blockSizeLimit = 0, + unsigned int flags = 0) +{ + cudaError_t status; + + + int device; + struct cudaFuncAttributes attr; + + + int maxThreadsPerMultiProcessor; + int warpSize; + int devMaxThreadsPerBlock; + int multiProcessorCount; + int funcMaxThreadsPerBlock; + int occupancyLimit; + int granularity; + + + int maxBlockSize = 0; + int numBlocks = 0; + int maxOccupancy = 0; + + + int blockSizeToTryAligned; + int blockSizeToTry; + int blockSizeLimitAligned; + int occupancyInBlocks; + int occupancyInThreads; + size_t dynamicSMemSize; + + + + + + if (!minGridSize || !blockSize || !func) { + return cudaErrorInvalidValue; + } + + + + + + status = ::cudaGetDevice(&device); + if (status != cudaSuccess) { + return status; + } + + status = cudaDeviceGetAttribute( + &maxThreadsPerMultiProcessor, + cudaDevAttrMaxThreadsPerMultiProcessor, + device); + if (status != cudaSuccess) { + return status; + } + + status = cudaDeviceGetAttribute( + &warpSize, + cudaDevAttrWarpSize, + device); + if (status != cudaSuccess) { + return status; + } + + status = cudaDeviceGetAttribute( + &devMaxThreadsPerBlock, + cudaDevAttrMaxThreadsPerBlock, + device); + if (status != cudaSuccess) { + return status; + } + + status = cudaDeviceGetAttribute( + &multiProcessorCount, + cudaDevAttrMultiProcessorCount, + device); + if (status != cudaSuccess) { + return status; + } + + status = cudaFuncGetAttributes(&attr, func); + if (status != cudaSuccess) { + return status; + } + + funcMaxThreadsPerBlock = attr.maxThreadsPerBlock; + + + + + + occupancyLimit = maxThreadsPerMultiProcessor; + granularity = warpSize; + + if (blockSizeLimit == 0) { + blockSizeLimit = devMaxThreadsPerBlock; + } + + if (devMaxThreadsPerBlock < blockSizeLimit) { + blockSizeLimit = devMaxThreadsPerBlock; + } + + if (funcMaxThreadsPerBlock < blockSizeLimit) { + blockSizeLimit = funcMaxThreadsPerBlock; + } + + blockSizeLimitAligned = ((blockSizeLimit + (granularity - 1)) / granularity) * granularity; + + for (blockSizeToTryAligned = blockSizeLimitAligned; blockSizeToTryAligned > 0; blockSizeToTryAligned -= granularity) { + + + + if (blockSizeLimit < blockSizeToTryAligned) { + blockSizeToTry = blockSizeLimit; + } else { + blockSizeToTry = blockSizeToTryAligned; + } + + dynamicSMemSize = blockSizeToDynamicSMemSize(blockSizeToTry); + + status = cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags( + &occupancyInBlocks, + func, + blockSizeToTry, + dynamicSMemSize, + flags); + + if (status != cudaSuccess) { + return status; + } + + occupancyInThreads = blockSizeToTry * occupancyInBlocks; + + if (occupancyInThreads > maxOccupancy) { + maxBlockSize = blockSizeToTry; + numBlocks = occupancyInBlocks; + maxOccupancy = occupancyInThreads; + } + + + + if (occupancyLimit == maxOccupancy) { + break; + } + } + + + + + + + + *minGridSize = numBlocks * multiProcessorCount; + *blockSize = maxBlockSize; + + return status; +} +# 2295 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) __attribute__((device)) cudaError_t cudaOccupancyMaxPotentialBlockSizeVariableSMem( + int *minGridSize, + int *blockSize, + T func, + UnaryFunction blockSizeToDynamicSMemSize, + int blockSizeLimit = 0) +{ + return cudaOccupancyMaxPotentialBlockSizeVariableSMemWithFlags(minGridSize, blockSize, func, blockSizeToDynamicSMemSize, blockSizeLimit, 0x00); +} +# 2341 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) __attribute__((device)) cudaError_t cudaOccupancyMaxPotentialBlockSize( + int *minGridSize, + int *blockSize, + T func, + size_t dynamicSMemSize = 0, + int blockSizeLimit = 0) +{ + return cudaOccupancyMaxPotentialBlockSizeVariableSMemWithFlags(minGridSize, blockSize, func, __cudaOccupancyB2DHelper(dynamicSMemSize), blockSizeLimit, 0x00); +} +# 2379 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) cudaError_t cudaOccupancyAvailableDynamicSMemPerBlock( + size_t *dynamicSmemSize, + T func, + int numBlocks, + int blockSize) +{ + return ::cudaOccupancyAvailableDynamicSMemPerBlock(dynamicSmemSize, (const void*)func, numBlocks, blockSize); +} +# 2438 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) __attribute__((device)) cudaError_t cudaOccupancyMaxPotentialBlockSizeWithFlags( + int *minGridSize, + int *blockSize, + T func, + size_t dynamicSMemSize = 0, + int blockSizeLimit = 0, + unsigned int flags = 0) +{ + return cudaOccupancyMaxPotentialBlockSizeVariableSMemWithFlags(minGridSize, blockSize, func, __cudaOccupancyB2DHelper(dynamicSMemSize), blockSizeLimit, flags); +} +# 2482 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) cudaError_t cudaOccupancyMaxPotentialClusterSize( + int *clusterSize, + T *func, + const cudaLaunchConfig_t *config) +{ + return ::cudaOccupancyMaxPotentialClusterSize(clusterSize, (const void*)func, config); +} +# 2525 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) cudaError_t cudaOccupancyMaxActiveClusters( + int *numClusters, + T *func, + const cudaLaunchConfig_t *config) +{ + return ::cudaOccupancyMaxActiveClusters(numClusters, (const void*)func, config); +} +# 2565 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) cudaError_t cudaFuncGetAttributes( + struct cudaFuncAttributes *attr, + T *entry +) +{ + return ::cudaFuncGetAttributes(attr, (const void*)entry); +} +# 2627 "/usr/include/cuda_runtime.h" 3 4 +template +static __inline__ __attribute__((host)) cudaError_t cudaFuncSetAttribute( + T *entry, + enum cudaFuncAttribute attr, + int value +) +{ + return ::cudaFuncSetAttribute((const void*)entry, attr, value); +} +# 2659 "/usr/include/cuda_runtime.h" 3 4 +template +static __attribute__((deprecated)) __inline__ __attribute__((host)) cudaError_t cudaBindSurfaceToArray( + const struct surface &surf, + cudaArray_const_t array, + const struct cudaChannelFormatDesc &desc +) +{ + return ::cudaBindSurfaceToArray(&surf, array, &desc); +} +# 2690 "/usr/include/cuda_runtime.h" 3 4 +template +static __attribute__((deprecated)) __inline__ __attribute__((host)) cudaError_t cudaBindSurfaceToArray( + const struct surface &surf, + cudaArray_const_t array +) +{ + struct cudaChannelFormatDesc desc; + cudaError_t err = ::cudaGetChannelDesc(&desc, array); + + return err == cudaSuccess ? cudaBindSurfaceToArray(surf, array, desc) : err; +} +# 2711 "/usr/include/cuda_runtime.h" 3 4 +#pragma GCC diagnostic pop +# 1 "" 2 +# 1 "CMakeCUDACompilerId.cu" +# 64 "CMakeCUDACompilerId.cu" + +# 64 "CMakeCUDACompilerId.cu" +char const* info_compiler = "INFO" ":" "compiler[" "NVIDIA" "]"; + +char const* info_simulate = "INFO" ":" "simulate[" "GNU" "]"; +# 369 "CMakeCUDACompilerId.cu" +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + ('0' + (((11) / 10000000)%10)), ('0' + (((11) / 1000000)%10)), ('0' + (((11) / 100000)%10)), ('0' + (((11) / 10000)%10)), ('0' + (((11) / 1000)%10)), ('0' + (((11) / 100)%10)), ('0' + (((11) / 10)%10)), ('0' + ((11) % 10)), + + '.', ('0' + (((8) / 10000000)%10)), ('0' + (((8) / 1000000)%10)), ('0' + (((8) / 100000)%10)), ('0' + (((8) / 10000)%10)), ('0' + (((8) / 1000)%10)), ('0' + (((8) / 100)%10)), ('0' + (((8) / 10)%10)), ('0' + ((8) % 10)), + + '.', ('0' + (((89) / 10000000)%10)), ('0' + (((89) / 1000000)%10)), ('0' + (((89) / 100000)%10)), ('0' + (((89) / 10000)%10)), ('0' + (((89) / 1000)%10)), ('0' + (((89) / 100)%10)), ('0' + (((89) / 10)%10)), ('0' + ((89) % 10)), + + + + + + ']','\0'}; +# 398 "CMakeCUDACompilerId.cu" +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + ('0' + (((9) / 10000000)%10)), ('0' + (((9) / 1000000)%10)), ('0' + (((9) / 100000)%10)), ('0' + (((9) / 10000)%10)), ('0' + (((9) / 1000)%10)), ('0' + (((9) / 100)%10)), ('0' + (((9) / 10)%10)), ('0' + ((9) % 10)), + + '.', ('0' + (((4) / 10000000)%10)), ('0' + (((4) / 1000000)%10)), ('0' + (((4) / 100000)%10)), ('0' + (((4) / 10000)%10)), ('0' + (((4) / 1000)%10)), ('0' + (((4) / 100)%10)), ('0' + (((4) / 10)%10)), ('0' + ((4) % 10)), + + + + + + + + ']','\0'}; + + + + + + +char const* info_platform = "INFO" ":" "platform[" "Linux" "]"; +char const* info_arch = "INFO" ":" "arch[" "]"; + + + +const char* info_language_standard_default = "INFO" ":" "standard_default[" + + + + + + + + "14" + + + + + +"]"; + +const char* info_language_extensions_default = "INFO" ":" "extensions_default[" + + + "ON" + + + +"]"; + + + +int main(int argc, char* argv[]) +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; + + require += info_version[argc]; + + + require += info_simulate[argc]; + + + require += info_simulate_version[argc]; + + require += info_language_standard_default[argc]; + require += info_language_extensions_default[argc]; + (void)argv; + return require; +} diff --git a/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cudafe1.c b/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cudafe1.c new file mode 100644 index 0000000000000000000000000000000000000000..a335777fea0011387a761199e8481d605cbcf59c --- /dev/null +++ b/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cudafe1.c @@ -0,0 +1,35 @@ +# 1 "CMakeCUDACompilerId.cu" +# 64 "CMakeCUDACompilerId.cu" +extern const char *info_compiler; + +extern const char *info_simulate; +# 369 "CMakeCUDACompilerId.cu" +static const char info_version[50]; +# 398 "CMakeCUDACompilerId.cu" +static const char info_simulate_version[41]; +# 418 "CMakeCUDACompilerId.cu" +extern const char *info_platform; +extern const char *info_arch; + + + +extern const char *info_language_standard_default; +# 439 "CMakeCUDACompilerId.cu" +extern const char *info_language_extensions_default; +# 64 "CMakeCUDACompilerId.cu" +const char *info_compiler = ((const char *)"INFO:compiler[NVIDIA]"); + +const char *info_simulate = ((const char *)"INFO:simulate[GNU]"); +# 369 "CMakeCUDACompilerId.cu" +static const char info_version[50] = {((char)73),((char)78),((char)70),((char)79),((char)58),((char)99),((char)111),((char)109),((char)112),((char)105),((char)108),((char)101),((char)114),((char)95),((char)118),((char)101),((char)114),((char)115),((char)105),((char)111),((char)110),((char)91),((char)48),((char)48),((char)48),((char)48),((char)48),((char)48),((char)49),((char)49),((char)46),((char)48),((char)48),((char)48),((char)48),((char)48),((char)48),((char)48),((char)56),((char)46),((char)48),((char)48),((char)48),((char)48),((char)48),((char)48),((char)56),((char)57),((char)93),((char)0)}; +# 398 "CMakeCUDACompilerId.cu" +static const char info_simulate_version[41] = {((char)73),((char)78),((char)70),((char)79),((char)58),((char)115),((char)105),((char)109),((char)117),((char)108),((char)97),((char)116),((char)101),((char)95),((char)118),((char)101),((char)114),((char)115),((char)105),((char)111),((char)110),((char)91),((char)48),((char)48),((char)48),((char)48),((char)48),((char)48),((char)48),((char)57),((char)46),((char)48),((char)48),((char)48),((char)48),((char)48),((char)48),((char)48),((char)52),((char)93),((char)0)}; +# 418 "CMakeCUDACompilerId.cu" +const char *info_platform = ((const char *)"INFO:platform[Linux]"); +const char *info_arch = ((const char *)"INFO:arch[]"); + + + +const char *info_language_standard_default = ((const char *)"INFO:standard_default[14]"); +# 439 "CMakeCUDACompilerId.cu" +const char *info_language_extensions_default = ((const char *)"INFO:extensions_default[ON]"); diff --git a/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cudafe1.cpp b/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cudafe1.cpp new file mode 100644 index 0000000000000000000000000000000000000000..70b4138baa696719949b1386d24c261831a9eaa2 --- /dev/null +++ b/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cudafe1.cpp @@ -0,0 +1,23238 @@ +# 1 "CMakeCUDACompilerId.cu" +#pragma GCC diagnostic ignored "-Wunused-local-typedefs" +# 1 +#pragma GCC diagnostic push +# 1 +#pragma GCC diagnostic ignored "-Wunused-variable" +# 1 +#pragma GCC diagnostic ignored "-Wunused-function" +# 1 +static char __nv_inited_managed_rt = 0; static void **__nv_fatbinhandle_for_managed_rt; static void __nv_save_fatbinhandle_for_managed_rt(void **in){__nv_fatbinhandle_for_managed_rt = in;} static char __nv_init_managed_rt_with_module(void **); static inline void __nv_init_managed_rt(void) { __nv_inited_managed_rt = (__nv_inited_managed_rt ? __nv_inited_managed_rt : __nv_init_managed_rt_with_module(__nv_fatbinhandle_for_managed_rt));} +# 1 +#pragma GCC diagnostic pop +# 1 +#pragma GCC diagnostic ignored "-Wunused-variable" + +# 1 +#define __nv_is_extended_device_lambda_closure_type(X) false +#define __nv_is_extended_host_device_lambda_closure_type(X) false +#if defined(__nv_is_extended_device_lambda_closure_type) && defined(__nv_is_extended_host_device_lambda_closure_type) +#endif + +# 1 +# 61 "/usr/include/cuda_runtime.h" 3 +#pragma GCC diagnostic push +# 64 +#pragma GCC diagnostic ignored "-Wunused-function" +# 68 "/usr/include/device_types.h" 3 +#if 0 +# 68 +enum cudaRoundMode { +# 70 +cudaRoundNearest, +# 71 +cudaRoundZero, +# 72 +cudaRoundPosInf, +# 73 +cudaRoundMinInf +# 74 +}; +#endif +# 100 "/usr/include/vector_types.h" 3 +#if 0 +# 100 +struct char1 { +# 102 +signed char x; +# 103 +}; +#endif +# 105 "/usr/include/vector_types.h" 3 +#if 0 +# 105 +struct uchar1 { +# 107 +unsigned char x; +# 108 +}; +#endif +# 111 "/usr/include/vector_types.h" 3 +#if 0 +# 111 +struct __attribute((aligned(2))) char2 { +# 113 +signed char x, y; +# 114 +}; +#endif +# 116 "/usr/include/vector_types.h" 3 +#if 0 +# 116 +struct __attribute((aligned(2))) uchar2 { +# 118 +unsigned char x, y; +# 119 +}; +#endif +# 121 "/usr/include/vector_types.h" 3 +#if 0 +# 121 +struct char3 { +# 123 +signed char x, y, z; +# 124 +}; +#endif +# 126 "/usr/include/vector_types.h" 3 +#if 0 +# 126 +struct uchar3 { +# 128 +unsigned char x, y, z; +# 129 +}; +#endif +# 131 "/usr/include/vector_types.h" 3 +#if 0 +# 131 +struct __attribute((aligned(4))) char4 { +# 133 +signed char x, y, z, w; +# 134 +}; +#endif +# 136 "/usr/include/vector_types.h" 3 +#if 0 +# 136 +struct __attribute((aligned(4))) uchar4 { +# 138 +unsigned char x, y, z, w; +# 139 +}; +#endif +# 141 "/usr/include/vector_types.h" 3 +#if 0 +# 141 +struct short1 { +# 143 +short x; +# 144 +}; +#endif +# 146 "/usr/include/vector_types.h" 3 +#if 0 +# 146 +struct ushort1 { +# 148 +unsigned short x; +# 149 +}; +#endif +# 151 "/usr/include/vector_types.h" 3 +#if 0 +# 151 +struct __attribute((aligned(4))) short2 { +# 153 +short x, y; +# 154 +}; +#endif +# 156 "/usr/include/vector_types.h" 3 +#if 0 +# 156 +struct __attribute((aligned(4))) ushort2 { +# 158 +unsigned short x, y; +# 159 +}; +#endif +# 161 "/usr/include/vector_types.h" 3 +#if 0 +# 161 +struct short3 { +# 163 +short x, y, z; +# 164 +}; +#endif +# 166 "/usr/include/vector_types.h" 3 +#if 0 +# 166 +struct ushort3 { +# 168 +unsigned short x, y, z; +# 169 +}; +#endif +# 171 "/usr/include/vector_types.h" 3 +#if 0 +# 171 +struct __attribute((aligned(8))) short4 { short x; short y; short z; short w; }; +#endif +# 172 "/usr/include/vector_types.h" 3 +#if 0 +# 172 +struct __attribute((aligned(8))) ushort4 { unsigned short x; unsigned short y; unsigned short z; unsigned short w; }; +#endif +# 174 "/usr/include/vector_types.h" 3 +#if 0 +# 174 +struct int1 { +# 176 +int x; +# 177 +}; +#endif +# 179 "/usr/include/vector_types.h" 3 +#if 0 +# 179 +struct uint1 { +# 181 +unsigned x; +# 182 +}; +#endif +# 184 "/usr/include/vector_types.h" 3 +#if 0 +# 184 +struct __attribute((aligned(8))) int2 { int x; int y; }; +#endif +# 185 "/usr/include/vector_types.h" 3 +#if 0 +# 185 +struct __attribute((aligned(8))) uint2 { unsigned x; unsigned y; }; +#endif +# 187 "/usr/include/vector_types.h" 3 +#if 0 +# 187 +struct int3 { +# 189 +int x, y, z; +# 190 +}; +#endif +# 192 "/usr/include/vector_types.h" 3 +#if 0 +# 192 +struct uint3 { +# 194 +unsigned x, y, z; +# 195 +}; +#endif +# 197 "/usr/include/vector_types.h" 3 +#if 0 +# 197 +struct __attribute((aligned(16))) int4 { +# 199 +int x, y, z, w; +# 200 +}; +#endif +# 202 "/usr/include/vector_types.h" 3 +#if 0 +# 202 +struct __attribute((aligned(16))) uint4 { +# 204 +unsigned x, y, z, w; +# 205 +}; +#endif +# 207 "/usr/include/vector_types.h" 3 +#if 0 +# 207 +struct long1 { +# 209 +long x; +# 210 +}; +#endif +# 212 "/usr/include/vector_types.h" 3 +#if 0 +# 212 +struct ulong1 { +# 214 +unsigned long x; +# 215 +}; +#endif +# 222 "/usr/include/vector_types.h" 3 +#if 0 +# 222 +struct __attribute((aligned((2) * sizeof(long)))) long2 { +# 224 +long x, y; +# 225 +}; +#endif +# 227 "/usr/include/vector_types.h" 3 +#if 0 +# 227 +struct __attribute((aligned((2) * sizeof(unsigned long)))) ulong2 { +# 229 +unsigned long x, y; +# 230 +}; +#endif +# 234 "/usr/include/vector_types.h" 3 +#if 0 +# 234 +struct long3 { +# 236 +long x, y, z; +# 237 +}; +#endif +# 239 "/usr/include/vector_types.h" 3 +#if 0 +# 239 +struct ulong3 { +# 241 +unsigned long x, y, z; +# 242 +}; +#endif +# 244 "/usr/include/vector_types.h" 3 +#if 0 +# 244 +struct __attribute((aligned(16))) long4 { +# 246 +long x, y, z, w; +# 247 +}; +#endif +# 249 "/usr/include/vector_types.h" 3 +#if 0 +# 249 +struct __attribute((aligned(16))) ulong4 { +# 251 +unsigned long x, y, z, w; +# 252 +}; +#endif +# 254 "/usr/include/vector_types.h" 3 +#if 0 +# 254 +struct float1 { +# 256 +float x; +# 257 +}; +#endif +# 276 "/usr/include/vector_types.h" 3 +#if 0 +# 276 +struct __attribute((aligned(8))) float2 { float x; float y; }; +#endif +# 281 "/usr/include/vector_types.h" 3 +#if 0 +# 281 +struct float3 { +# 283 +float x, y, z; +# 284 +}; +#endif +# 286 "/usr/include/vector_types.h" 3 +#if 0 +# 286 +struct __attribute((aligned(16))) float4 { +# 288 +float x, y, z, w; +# 289 +}; +#endif +# 291 "/usr/include/vector_types.h" 3 +#if 0 +# 291 +struct longlong1 { +# 293 +long long x; +# 294 +}; +#endif +# 296 "/usr/include/vector_types.h" 3 +#if 0 +# 296 +struct ulonglong1 { +# 298 +unsigned long long x; +# 299 +}; +#endif +# 301 "/usr/include/vector_types.h" 3 +#if 0 +# 301 +struct __attribute((aligned(16))) longlong2 { +# 303 +long long x, y; +# 304 +}; +#endif +# 306 "/usr/include/vector_types.h" 3 +#if 0 +# 306 +struct __attribute((aligned(16))) ulonglong2 { +# 308 +unsigned long long x, y; +# 309 +}; +#endif +# 311 "/usr/include/vector_types.h" 3 +#if 0 +# 311 +struct longlong3 { +# 313 +long long x, y, z; +# 314 +}; +#endif +# 316 "/usr/include/vector_types.h" 3 +#if 0 +# 316 +struct ulonglong3 { +# 318 +unsigned long long x, y, z; +# 319 +}; +#endif +# 321 "/usr/include/vector_types.h" 3 +#if 0 +# 321 +struct __attribute((aligned(16))) longlong4 { +# 323 +long long x, y, z, w; +# 324 +}; +#endif +# 326 "/usr/include/vector_types.h" 3 +#if 0 +# 326 +struct __attribute((aligned(16))) ulonglong4 { +# 328 +unsigned long long x, y, z, w; +# 329 +}; +#endif +# 331 "/usr/include/vector_types.h" 3 +#if 0 +# 331 +struct double1 { +# 333 +double x; +# 334 +}; +#endif +# 336 "/usr/include/vector_types.h" 3 +#if 0 +# 336 +struct __attribute((aligned(16))) double2 { +# 338 +double x, y; +# 339 +}; +#endif +# 341 "/usr/include/vector_types.h" 3 +#if 0 +# 341 +struct double3 { +# 343 +double x, y, z; +# 344 +}; +#endif +# 346 "/usr/include/vector_types.h" 3 +#if 0 +# 346 +struct __attribute((aligned(16))) double4 { +# 348 +double x, y, z, w; +# 349 +}; +#endif +# 363 "/usr/include/vector_types.h" 3 +#if 0 +typedef char1 +# 363 +char1; +#endif +# 364 "/usr/include/vector_types.h" 3 +#if 0 +typedef uchar1 +# 364 +uchar1; +#endif +# 365 "/usr/include/vector_types.h" 3 +#if 0 +typedef char2 +# 365 +char2; +#endif +# 366 "/usr/include/vector_types.h" 3 +#if 0 +typedef uchar2 +# 366 +uchar2; +#endif +# 367 "/usr/include/vector_types.h" 3 +#if 0 +typedef char3 +# 367 +char3; +#endif +# 368 "/usr/include/vector_types.h" 3 +#if 0 +typedef uchar3 +# 368 +uchar3; +#endif +# 369 "/usr/include/vector_types.h" 3 +#if 0 +typedef char4 +# 369 +char4; +#endif +# 370 "/usr/include/vector_types.h" 3 +#if 0 +typedef uchar4 +# 370 +uchar4; +#endif +# 371 "/usr/include/vector_types.h" 3 +#if 0 +typedef short1 +# 371 +short1; +#endif +# 372 "/usr/include/vector_types.h" 3 +#if 0 +typedef ushort1 +# 372 +ushort1; +#endif +# 373 "/usr/include/vector_types.h" 3 +#if 0 +typedef short2 +# 373 +short2; +#endif +# 374 "/usr/include/vector_types.h" 3 +#if 0 +typedef ushort2 +# 374 +ushort2; +#endif +# 375 "/usr/include/vector_types.h" 3 +#if 0 +typedef short3 +# 375 +short3; +#endif +# 376 "/usr/include/vector_types.h" 3 +#if 0 +typedef ushort3 +# 376 +ushort3; +#endif +# 377 "/usr/include/vector_types.h" 3 +#if 0 +typedef short4 +# 377 +short4; +#endif +# 378 "/usr/include/vector_types.h" 3 +#if 0 +typedef ushort4 +# 378 +ushort4; +#endif +# 379 "/usr/include/vector_types.h" 3 +#if 0 +typedef int1 +# 379 +int1; +#endif +# 380 "/usr/include/vector_types.h" 3 +#if 0 +typedef uint1 +# 380 +uint1; +#endif +# 381 "/usr/include/vector_types.h" 3 +#if 0 +typedef int2 +# 381 +int2; +#endif +# 382 "/usr/include/vector_types.h" 3 +#if 0 +typedef uint2 +# 382 +uint2; +#endif +# 383 "/usr/include/vector_types.h" 3 +#if 0 +typedef int3 +# 383 +int3; +#endif +# 384 "/usr/include/vector_types.h" 3 +#if 0 +typedef uint3 +# 384 +uint3; +#endif +# 385 "/usr/include/vector_types.h" 3 +#if 0 +typedef int4 +# 385 +int4; +#endif +# 386 "/usr/include/vector_types.h" 3 +#if 0 +typedef uint4 +# 386 +uint4; +#endif +# 387 "/usr/include/vector_types.h" 3 +#if 0 +typedef long1 +# 387 +long1; +#endif +# 388 "/usr/include/vector_types.h" 3 +#if 0 +typedef ulong1 +# 388 +ulong1; +#endif +# 389 "/usr/include/vector_types.h" 3 +#if 0 +typedef long2 +# 389 +long2; +#endif +# 390 "/usr/include/vector_types.h" 3 +#if 0 +typedef ulong2 +# 390 +ulong2; +#endif +# 391 "/usr/include/vector_types.h" 3 +#if 0 +typedef long3 +# 391 +long3; +#endif +# 392 "/usr/include/vector_types.h" 3 +#if 0 +typedef ulong3 +# 392 +ulong3; +#endif +# 393 "/usr/include/vector_types.h" 3 +#if 0 +typedef long4 +# 393 +long4; +#endif +# 394 "/usr/include/vector_types.h" 3 +#if 0 +typedef ulong4 +# 394 +ulong4; +#endif +# 395 "/usr/include/vector_types.h" 3 +#if 0 +typedef float1 +# 395 +float1; +#endif +# 396 "/usr/include/vector_types.h" 3 +#if 0 +typedef float2 +# 396 +float2; +#endif +# 397 "/usr/include/vector_types.h" 3 +#if 0 +typedef float3 +# 397 +float3; +#endif +# 398 "/usr/include/vector_types.h" 3 +#if 0 +typedef float4 +# 398 +float4; +#endif +# 399 "/usr/include/vector_types.h" 3 +#if 0 +typedef longlong1 +# 399 +longlong1; +#endif +# 400 "/usr/include/vector_types.h" 3 +#if 0 +typedef ulonglong1 +# 400 +ulonglong1; +#endif +# 401 "/usr/include/vector_types.h" 3 +#if 0 +typedef longlong2 +# 401 +longlong2; +#endif +# 402 "/usr/include/vector_types.h" 3 +#if 0 +typedef ulonglong2 +# 402 +ulonglong2; +#endif +# 403 "/usr/include/vector_types.h" 3 +#if 0 +typedef longlong3 +# 403 +longlong3; +#endif +# 404 "/usr/include/vector_types.h" 3 +#if 0 +typedef ulonglong3 +# 404 +ulonglong3; +#endif +# 405 "/usr/include/vector_types.h" 3 +#if 0 +typedef longlong4 +# 405 +longlong4; +#endif +# 406 "/usr/include/vector_types.h" 3 +#if 0 +typedef ulonglong4 +# 406 +ulonglong4; +#endif +# 407 "/usr/include/vector_types.h" 3 +#if 0 +typedef double1 +# 407 +double1; +#endif +# 408 "/usr/include/vector_types.h" 3 +#if 0 +typedef double2 +# 408 +double2; +#endif +# 409 "/usr/include/vector_types.h" 3 +#if 0 +typedef double3 +# 409 +double3; +#endif +# 410 "/usr/include/vector_types.h" 3 +#if 0 +typedef double4 +# 410 +double4; +#endif +# 418 "/usr/include/vector_types.h" 3 +#if 0 +# 418 +struct dim3 { +# 420 +unsigned x, y, z; +# 432 +}; +#endif +# 434 "/usr/include/vector_types.h" 3 +#if 0 +typedef dim3 +# 434 +dim3; +#endif +# 143 "/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h" 3 +typedef long ptrdiff_t; +# 209 "/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h" 3 +typedef unsigned long size_t; +#if !defined(__CUDA_INCLUDE_COMPILER_INTERNAL_HEADERS__) +#define __CUDA_INCLUDE_COMPILER_INTERNAL_HEADERS__ +#endif +#include "crt/host_runtime.h" +# 426 "/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h" 3 +typedef +# 415 "/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h" 3 +struct { +# 416 +long long __max_align_ll __attribute((__aligned__(__alignof__(long long)))); +# 417 +long double __max_align_ld __attribute((__aligned__(__alignof__(long double)))); +# 426 "/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h" 3 +} max_align_t; +# 433 +typedef __decltype((nullptr)) nullptr_t; +# 202 "/usr/include/driver_types.h" 3 +#if 0 +# 202 +enum cudaError { +# 209 +cudaSuccess, +# 215 +cudaErrorInvalidValue, +# 221 +cudaErrorMemoryAllocation, +# 227 +cudaErrorInitializationError, +# 234 +cudaErrorCudartUnloading, +# 241 +cudaErrorProfilerDisabled, +# 249 +cudaErrorProfilerNotInitialized, +# 256 +cudaErrorProfilerAlreadyStarted, +# 263 +cudaErrorProfilerAlreadyStopped, +# 272 "/usr/include/driver_types.h" 3 +cudaErrorInvalidConfiguration, +# 278 +cudaErrorInvalidPitchValue = 12, +# 284 +cudaErrorInvalidSymbol, +# 292 +cudaErrorInvalidHostPointer = 16, +# 300 +cudaErrorInvalidDevicePointer, +# 306 +cudaErrorInvalidTexture, +# 312 +cudaErrorInvalidTextureBinding, +# 319 +cudaErrorInvalidChannelDescriptor, +# 325 +cudaErrorInvalidMemcpyDirection, +# 335 "/usr/include/driver_types.h" 3 +cudaErrorAddressOfConstant, +# 344 "/usr/include/driver_types.h" 3 +cudaErrorTextureFetchFailed, +# 353 "/usr/include/driver_types.h" 3 +cudaErrorTextureNotBound, +# 362 "/usr/include/driver_types.h" 3 +cudaErrorSynchronizationError, +# 368 +cudaErrorInvalidFilterSetting, +# 374 +cudaErrorInvalidNormSetting, +# 382 +cudaErrorMixedDeviceExecution, +# 390 +cudaErrorNotYetImplemented = 31, +# 399 "/usr/include/driver_types.h" 3 +cudaErrorMemoryValueTooLarge, +# 406 +cudaErrorStubLibrary = 34, +# 413 +cudaErrorInsufficientDriver, +# 420 +cudaErrorCallRequiresNewerDriver, +# 426 +cudaErrorInvalidSurface, +# 432 +cudaErrorDuplicateVariableName = 43, +# 438 +cudaErrorDuplicateTextureName, +# 444 +cudaErrorDuplicateSurfaceName, +# 454 "/usr/include/driver_types.h" 3 +cudaErrorDevicesUnavailable, +# 467 "/usr/include/driver_types.h" 3 +cudaErrorIncompatibleDriverContext = 49, +# 473 +cudaErrorMissingConfiguration = 52, +# 482 "/usr/include/driver_types.h" 3 +cudaErrorPriorLaunchFailure, +# 489 +cudaErrorLaunchMaxDepthExceeded = 65, +# 497 +cudaErrorLaunchFileScopedTex, +# 505 +cudaErrorLaunchFileScopedSurf, +# 520 "/usr/include/driver_types.h" 3 +cudaErrorSyncDepthExceeded, +# 532 "/usr/include/driver_types.h" 3 +cudaErrorLaunchPendingCountExceeded, +# 538 +cudaErrorInvalidDeviceFunction = 98, +# 544 +cudaErrorNoDevice = 100, +# 551 +cudaErrorInvalidDevice, +# 556 +cudaErrorDeviceNotLicensed, +# 565 "/usr/include/driver_types.h" 3 +cudaErrorSoftwareValidityNotEstablished, +# 570 +cudaErrorStartupFailure = 127, +# 575 +cudaErrorInvalidKernelImage = 200, +# 585 "/usr/include/driver_types.h" 3 +cudaErrorDeviceUninitialized, +# 590 +cudaErrorMapBufferObjectFailed = 205, +# 595 +cudaErrorUnmapBufferObjectFailed, +# 601 +cudaErrorArrayIsMapped, +# 606 +cudaErrorAlreadyMapped, +# 614 +cudaErrorNoKernelImageForDevice, +# 619 +cudaErrorAlreadyAcquired, +# 624 +cudaErrorNotMapped, +# 630 +cudaErrorNotMappedAsArray, +# 636 +cudaErrorNotMappedAsPointer, +# 642 +cudaErrorECCUncorrectable, +# 648 +cudaErrorUnsupportedLimit, +# 654 +cudaErrorDeviceAlreadyInUse, +# 660 +cudaErrorPeerAccessUnsupported, +# 666 +cudaErrorInvalidPtx, +# 671 +cudaErrorInvalidGraphicsContext, +# 677 +cudaErrorNvlinkUncorrectable, +# 684 +cudaErrorJitCompilerNotFound, +# 691 +cudaErrorUnsupportedPtxVersion, +# 698 +cudaErrorJitCompilationDisabled, +# 703 +cudaErrorUnsupportedExecAffinity, +# 708 +cudaErrorInvalidSource = 300, +# 713 +cudaErrorFileNotFound, +# 718 +cudaErrorSharedObjectSymbolNotFound, +# 723 +cudaErrorSharedObjectInitFailed, +# 728 +cudaErrorOperatingSystem, +# 735 +cudaErrorInvalidResourceHandle = 400, +# 741 +cudaErrorIllegalState, +# 748 +cudaErrorSymbolNotFound = 500, +# 756 +cudaErrorNotReady = 600, +# 764 +cudaErrorIllegalAddress = 700, +# 773 "/usr/include/driver_types.h" 3 +cudaErrorLaunchOutOfResources, +# 784 "/usr/include/driver_types.h" 3 +cudaErrorLaunchTimeout, +# 790 +cudaErrorLaunchIncompatibleTexturing, +# 797 +cudaErrorPeerAccessAlreadyEnabled, +# 804 +cudaErrorPeerAccessNotEnabled, +# 817 "/usr/include/driver_types.h" 3 +cudaErrorSetOnActiveProcess = 708, +# 824 +cudaErrorContextIsDestroyed, +# 831 +cudaErrorAssert, +# 838 +cudaErrorTooManyPeers, +# 844 +cudaErrorHostMemoryAlreadyRegistered, +# 850 +cudaErrorHostMemoryNotRegistered, +# 859 "/usr/include/driver_types.h" 3 +cudaErrorHardwareStackError, +# 867 +cudaErrorIllegalInstruction, +# 876 "/usr/include/driver_types.h" 3 +cudaErrorMisalignedAddress, +# 887 "/usr/include/driver_types.h" 3 +cudaErrorInvalidAddressSpace, +# 895 +cudaErrorInvalidPc, +# 906 "/usr/include/driver_types.h" 3 +cudaErrorLaunchFailure, +# 915 "/usr/include/driver_types.h" 3 +cudaErrorCooperativeLaunchTooLarge, +# 920 +cudaErrorNotPermitted = 800, +# 926 +cudaErrorNotSupported, +# 935 "/usr/include/driver_types.h" 3 +cudaErrorSystemNotReady, +# 942 +cudaErrorSystemDriverMismatch, +# 951 "/usr/include/driver_types.h" 3 +cudaErrorCompatNotSupportedOnDevice, +# 956 +cudaErrorMpsConnectionFailed, +# 961 +cudaErrorMpsRpcFailure, +# 967 +cudaErrorMpsServerNotReady, +# 972 +cudaErrorMpsMaxClientsReached, +# 977 +cudaErrorMpsMaxConnectionsReached, +# 982 +cudaErrorMpsClientTerminated, +# 987 +cudaErrorStreamCaptureUnsupported = 900, +# 993 +cudaErrorStreamCaptureInvalidated, +# 999 +cudaErrorStreamCaptureMerge, +# 1004 +cudaErrorStreamCaptureUnmatched, +# 1010 +cudaErrorStreamCaptureUnjoined, +# 1017 +cudaErrorStreamCaptureIsolation, +# 1023 +cudaErrorStreamCaptureImplicit, +# 1029 +cudaErrorCapturedEvent, +# 1036 +cudaErrorStreamCaptureWrongThread, +# 1041 +cudaErrorTimeout, +# 1047 +cudaErrorGraphExecUpdateFailure, +# 1057 "/usr/include/driver_types.h" 3 +cudaErrorExternalDevice, +# 1063 +cudaErrorInvalidClusterSize, +# 1068 +cudaErrorUnknown = 999, +# 1076 +cudaErrorApiFailureBase = 10000 +# 1077 +}; +#endif +# 1082 "/usr/include/driver_types.h" 3 +#if 0 +# 1082 +enum cudaChannelFormatKind { +# 1084 +cudaChannelFormatKindSigned, +# 1085 +cudaChannelFormatKindUnsigned, +# 1086 +cudaChannelFormatKindFloat, +# 1087 +cudaChannelFormatKindNone, +# 1088 +cudaChannelFormatKindNV12, +# 1089 +cudaChannelFormatKindUnsignedNormalized8X1, +# 1090 +cudaChannelFormatKindUnsignedNormalized8X2, +# 1091 +cudaChannelFormatKindUnsignedNormalized8X4, +# 1092 +cudaChannelFormatKindUnsignedNormalized16X1, +# 1093 +cudaChannelFormatKindUnsignedNormalized16X2, +# 1094 +cudaChannelFormatKindUnsignedNormalized16X4, +# 1095 +cudaChannelFormatKindSignedNormalized8X1, +# 1096 +cudaChannelFormatKindSignedNormalized8X2, +# 1097 +cudaChannelFormatKindSignedNormalized8X4, +# 1098 +cudaChannelFormatKindSignedNormalized16X1, +# 1099 +cudaChannelFormatKindSignedNormalized16X2, +# 1100 +cudaChannelFormatKindSignedNormalized16X4, +# 1101 +cudaChannelFormatKindUnsignedBlockCompressed1, +# 1102 +cudaChannelFormatKindUnsignedBlockCompressed1SRGB, +# 1103 +cudaChannelFormatKindUnsignedBlockCompressed2, +# 1104 +cudaChannelFormatKindUnsignedBlockCompressed2SRGB, +# 1105 +cudaChannelFormatKindUnsignedBlockCompressed3, +# 1106 +cudaChannelFormatKindUnsignedBlockCompressed3SRGB, +# 1107 +cudaChannelFormatKindUnsignedBlockCompressed4, +# 1108 +cudaChannelFormatKindSignedBlockCompressed4, +# 1109 +cudaChannelFormatKindUnsignedBlockCompressed5, +# 1110 +cudaChannelFormatKindSignedBlockCompressed5, +# 1111 +cudaChannelFormatKindUnsignedBlockCompressed6H, +# 1112 +cudaChannelFormatKindSignedBlockCompressed6H, +# 1113 +cudaChannelFormatKindUnsignedBlockCompressed7, +# 1114 +cudaChannelFormatKindUnsignedBlockCompressed7SRGB +# 1115 +}; +#endif +# 1120 "/usr/include/driver_types.h" 3 +#if 0 +# 1120 +struct cudaChannelFormatDesc { +# 1122 +int x; +# 1123 +int y; +# 1124 +int z; +# 1125 +int w; +# 1126 +cudaChannelFormatKind f; +# 1127 +}; +#endif +# 1132 "/usr/include/driver_types.h" 3 +typedef struct cudaArray *cudaArray_t; +# 1137 +typedef const cudaArray *cudaArray_const_t; +# 1139 +struct cudaArray; +# 1144 +typedef struct cudaMipmappedArray *cudaMipmappedArray_t; +# 1149 +typedef const cudaMipmappedArray *cudaMipmappedArray_const_t; +# 1151 +struct cudaMipmappedArray; +# 1161 "/usr/include/driver_types.h" 3 +#if 0 +# 1161 +struct cudaArraySparseProperties { +# 1162 +struct { +# 1163 +unsigned width; +# 1164 +unsigned height; +# 1165 +unsigned depth; +# 1166 +} tileExtent; +# 1167 +unsigned miptailFirstLevel; +# 1168 +unsigned long long miptailSize; +# 1169 +unsigned flags; +# 1170 +unsigned reserved[4]; +# 1171 +}; +#endif +# 1176 "/usr/include/driver_types.h" 3 +#if 0 +# 1176 +struct cudaArrayMemoryRequirements { +# 1177 +size_t size; +# 1178 +size_t alignment; +# 1179 +unsigned reserved[4]; +# 1180 +}; +#endif +# 1185 "/usr/include/driver_types.h" 3 +#if 0 +# 1185 +enum cudaMemoryType { +# 1187 +cudaMemoryTypeUnregistered, +# 1188 +cudaMemoryTypeHost, +# 1189 +cudaMemoryTypeDevice, +# 1190 +cudaMemoryTypeManaged +# 1191 +}; +#endif +# 1196 "/usr/include/driver_types.h" 3 +#if 0 +# 1196 +enum cudaMemcpyKind { +# 1198 +cudaMemcpyHostToHost, +# 1199 +cudaMemcpyHostToDevice, +# 1200 +cudaMemcpyDeviceToHost, +# 1201 +cudaMemcpyDeviceToDevice, +# 1202 +cudaMemcpyDefault +# 1203 +}; +#endif +# 1210 "/usr/include/driver_types.h" 3 +#if 0 +# 1210 +struct cudaPitchedPtr { +# 1212 +void *ptr; +# 1213 +size_t pitch; +# 1214 +size_t xsize; +# 1215 +size_t ysize; +# 1216 +}; +#endif +# 1223 "/usr/include/driver_types.h" 3 +#if 0 +# 1223 +struct cudaExtent { +# 1225 +size_t width; +# 1226 +size_t height; +# 1227 +size_t depth; +# 1228 +}; +#endif +# 1235 "/usr/include/driver_types.h" 3 +#if 0 +# 1235 +struct cudaPos { +# 1237 +size_t x; +# 1238 +size_t y; +# 1239 +size_t z; +# 1240 +}; +#endif +# 1245 "/usr/include/driver_types.h" 3 +#if 0 +# 1245 +struct cudaMemcpy3DParms { +# 1247 +cudaArray_t srcArray; +# 1248 +cudaPos srcPos; +# 1249 +cudaPitchedPtr srcPtr; +# 1251 +cudaArray_t dstArray; +# 1252 +cudaPos dstPos; +# 1253 +cudaPitchedPtr dstPtr; +# 1255 +cudaExtent extent; +# 1256 +cudaMemcpyKind kind; __pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;) +# 1257 +}; +#endif +# 1262 "/usr/include/driver_types.h" 3 +#if 0 +# 1262 +struct cudaMemcpy3DPeerParms { +# 1264 +cudaArray_t srcArray; +# 1265 +cudaPos srcPos; +# 1266 +cudaPitchedPtr srcPtr; +# 1267 +int srcDevice; +# 1269 +cudaArray_t dstArray; +# 1270 +cudaPos dstPos; +# 1271 +cudaPitchedPtr dstPtr; +# 1272 +int dstDevice; +# 1274 +cudaExtent extent; +# 1275 +}; +#endif +# 1280 "/usr/include/driver_types.h" 3 +#if 0 +# 1280 +struct cudaMemsetParams { +# 1281 +void *dst; +# 1282 +size_t pitch; +# 1283 +unsigned value; +# 1284 +unsigned elementSize; +# 1285 +size_t width; +# 1286 +size_t height; +# 1287 +}; +#endif +# 1292 "/usr/include/driver_types.h" 3 +#if 0 +# 1292 +enum cudaAccessProperty { +# 1293 +cudaAccessPropertyNormal, +# 1294 +cudaAccessPropertyStreaming, +# 1295 +cudaAccessPropertyPersisting +# 1296 +}; +#endif +# 1309 "/usr/include/driver_types.h" 3 +#if 0 +# 1309 +struct cudaAccessPolicyWindow { +# 1310 +void *base_ptr; +# 1311 +size_t num_bytes; +# 1312 +float hitRatio; +# 1313 +cudaAccessProperty hitProp; +# 1314 +cudaAccessProperty missProp; __pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;) +# 1315 +}; +#endif +# 1327 "/usr/include/driver_types.h" 3 +typedef void (*cudaHostFn_t)(void * userData); +# 1332 +#if 0 +# 1332 +struct cudaHostNodeParams { +# 1333 +cudaHostFn_t fn; +# 1334 +void *userData; +# 1335 +}; +#endif +# 1340 "/usr/include/driver_types.h" 3 +#if 0 +# 1340 +enum cudaStreamCaptureStatus { +# 1341 +cudaStreamCaptureStatusNone, +# 1342 +cudaStreamCaptureStatusActive, +# 1343 +cudaStreamCaptureStatusInvalidated +# 1345 +}; +#endif +# 1351 "/usr/include/driver_types.h" 3 +#if 0 +# 1351 +enum cudaStreamCaptureMode { +# 1352 +cudaStreamCaptureModeGlobal, +# 1353 +cudaStreamCaptureModeThreadLocal, +# 1354 +cudaStreamCaptureModeRelaxed +# 1355 +}; +#endif +# 1357 "/usr/include/driver_types.h" 3 +#if 0 +# 1357 +enum cudaSynchronizationPolicy { +# 1358 +cudaSyncPolicyAuto = 1, +# 1359 +cudaSyncPolicySpin, +# 1360 +cudaSyncPolicyYield, +# 1361 +cudaSyncPolicyBlockingSync +# 1362 +}; +#endif +# 1367 "/usr/include/driver_types.h" 3 +#if 0 +# 1367 +enum cudaClusterSchedulingPolicy { +# 1368 +cudaClusterSchedulingPolicyDefault, +# 1369 +cudaClusterSchedulingPolicySpread, +# 1370 +cudaClusterSchedulingPolicyLoadBalancing +# 1371 +}; +#endif +# 1376 "/usr/include/driver_types.h" 3 +#if 0 +# 1376 +enum cudaStreamUpdateCaptureDependenciesFlags { +# 1377 +cudaStreamAddCaptureDependencies, +# 1378 +cudaStreamSetCaptureDependencies +# 1379 +}; +#endif +# 1384 "/usr/include/driver_types.h" 3 +#if 0 +# 1384 +enum cudaUserObjectFlags { +# 1385 +cudaUserObjectNoDestructorSync = 1 +# 1386 +}; +#endif +# 1391 "/usr/include/driver_types.h" 3 +#if 0 +# 1391 +enum cudaUserObjectRetainFlags { +# 1392 +cudaGraphUserObjectMove = 1 +# 1393 +}; +#endif +# 1398 "/usr/include/driver_types.h" 3 +struct cudaGraphicsResource; +# 1403 +#if 0 +# 1403 +enum cudaGraphicsRegisterFlags { +# 1405 +cudaGraphicsRegisterFlagsNone, +# 1406 +cudaGraphicsRegisterFlagsReadOnly, +# 1407 +cudaGraphicsRegisterFlagsWriteDiscard, +# 1408 +cudaGraphicsRegisterFlagsSurfaceLoadStore = 4, +# 1409 +cudaGraphicsRegisterFlagsTextureGather = 8 +# 1410 +}; +#endif +# 1415 "/usr/include/driver_types.h" 3 +#if 0 +# 1415 +enum cudaGraphicsMapFlags { +# 1417 +cudaGraphicsMapFlagsNone, +# 1418 +cudaGraphicsMapFlagsReadOnly, +# 1419 +cudaGraphicsMapFlagsWriteDiscard +# 1420 +}; +#endif +# 1425 "/usr/include/driver_types.h" 3 +#if 0 +# 1425 +enum cudaGraphicsCubeFace { +# 1427 +cudaGraphicsCubeFacePositiveX, +# 1428 +cudaGraphicsCubeFaceNegativeX, +# 1429 +cudaGraphicsCubeFacePositiveY, +# 1430 +cudaGraphicsCubeFaceNegativeY, +# 1431 +cudaGraphicsCubeFacePositiveZ, +# 1432 +cudaGraphicsCubeFaceNegativeZ +# 1433 +}; +#endif +# 1438 "/usr/include/driver_types.h" 3 +#if 0 +# 1438 +enum cudaResourceType { +# 1440 +cudaResourceTypeArray, +# 1441 +cudaResourceTypeMipmappedArray, +# 1442 +cudaResourceTypeLinear, +# 1443 +cudaResourceTypePitch2D +# 1444 +}; +#endif +# 1449 "/usr/include/driver_types.h" 3 +#if 0 +# 1449 +enum cudaResourceViewFormat { +# 1451 +cudaResViewFormatNone, +# 1452 +cudaResViewFormatUnsignedChar1, +# 1453 +cudaResViewFormatUnsignedChar2, +# 1454 +cudaResViewFormatUnsignedChar4, +# 1455 +cudaResViewFormatSignedChar1, +# 1456 +cudaResViewFormatSignedChar2, +# 1457 +cudaResViewFormatSignedChar4, +# 1458 +cudaResViewFormatUnsignedShort1, +# 1459 +cudaResViewFormatUnsignedShort2, +# 1460 +cudaResViewFormatUnsignedShort4, +# 1461 +cudaResViewFormatSignedShort1, +# 1462 +cudaResViewFormatSignedShort2, +# 1463 +cudaResViewFormatSignedShort4, +# 1464 +cudaResViewFormatUnsignedInt1, +# 1465 +cudaResViewFormatUnsignedInt2, +# 1466 +cudaResViewFormatUnsignedInt4, +# 1467 +cudaResViewFormatSignedInt1, +# 1468 +cudaResViewFormatSignedInt2, +# 1469 +cudaResViewFormatSignedInt4, +# 1470 +cudaResViewFormatHalf1, +# 1471 +cudaResViewFormatHalf2, +# 1472 +cudaResViewFormatHalf4, +# 1473 +cudaResViewFormatFloat1, +# 1474 +cudaResViewFormatFloat2, +# 1475 +cudaResViewFormatFloat4, +# 1476 +cudaResViewFormatUnsignedBlockCompressed1, +# 1477 +cudaResViewFormatUnsignedBlockCompressed2, +# 1478 +cudaResViewFormatUnsignedBlockCompressed3, +# 1479 +cudaResViewFormatUnsignedBlockCompressed4, +# 1480 +cudaResViewFormatSignedBlockCompressed4, +# 1481 +cudaResViewFormatUnsignedBlockCompressed5, +# 1482 +cudaResViewFormatSignedBlockCompressed5, +# 1483 +cudaResViewFormatUnsignedBlockCompressed6H, +# 1484 +cudaResViewFormatSignedBlockCompressed6H, +# 1485 +cudaResViewFormatUnsignedBlockCompressed7 +# 1486 +}; +#endif +# 1491 "/usr/include/driver_types.h" 3 +#if 0 +# 1491 +struct cudaResourceDesc { +# 1492 +cudaResourceType resType; +# 1494 +union { +# 1495 +struct { +# 1496 +cudaArray_t array; +# 1497 +} array; +# 1498 +struct { +# 1499 +cudaMipmappedArray_t mipmap; +# 1500 +} mipmap; +# 1501 +struct { +# 1502 +void *devPtr; +# 1503 +cudaChannelFormatDesc desc; +# 1504 +size_t sizeInBytes; +# 1505 +} linear; +# 1506 +struct { +# 1507 +void *devPtr; +# 1508 +cudaChannelFormatDesc desc; +# 1509 +size_t width; +# 1510 +size_t height; +# 1511 +size_t pitchInBytes; +# 1512 +} pitch2D; +# 1513 +} res; +# 1514 +}; +#endif +# 1519 "/usr/include/driver_types.h" 3 +#if 0 +# 1519 +struct cudaResourceViewDesc { +# 1521 +cudaResourceViewFormat format; +# 1522 +size_t width; +# 1523 +size_t height; +# 1524 +size_t depth; +# 1525 +unsigned firstMipmapLevel; +# 1526 +unsigned lastMipmapLevel; +# 1527 +unsigned firstLayer; +# 1528 +unsigned lastLayer; +# 1529 +}; +#endif +# 1534 "/usr/include/driver_types.h" 3 +#if 0 +# 1534 +struct cudaPointerAttributes { +# 1540 +cudaMemoryType type; +# 1551 "/usr/include/driver_types.h" 3 +int device; +# 1557 +void *devicePointer; +# 1566 "/usr/include/driver_types.h" 3 +void *hostPointer; +# 1567 +}; +#endif +# 1572 "/usr/include/driver_types.h" 3 +#if 0 +# 1572 +struct cudaFuncAttributes { +# 1579 +size_t sharedSizeBytes; +# 1585 +size_t constSizeBytes; +# 1590 +size_t localSizeBytes; +# 1597 +int maxThreadsPerBlock; +# 1602 +int numRegs; +# 1609 +int ptxVersion; +# 1616 +int binaryVersion; +# 1622 +int cacheModeCA; +# 1629 +int maxDynamicSharedSizeBytes; +# 1638 "/usr/include/driver_types.h" 3 +int preferredShmemCarveout; +# 1639 +}; +#endif +# 1644 "/usr/include/driver_types.h" 3 +#if 0 +# 1644 +enum cudaFuncAttribute { +# 1646 +cudaFuncAttributeMaxDynamicSharedMemorySize = 8, +# 1647 +cudaFuncAttributePreferredSharedMemoryCarveout, +# 1648 +cudaFuncAttributeClusterDimMustBeSet, +# 1649 +cudaFuncAttributeRequiredClusterWidth, +# 1650 +cudaFuncAttributeRequiredClusterHeight, +# 1651 +cudaFuncAttributeRequiredClusterDepth, +# 1652 +cudaFuncAttributeNonPortableClusterSizeAllowed, +# 1653 +cudaFuncAttributeClusterSchedulingPolicyPreference, +# 1654 +cudaFuncAttributeMax +# 1655 +}; +#endif +# 1660 "/usr/include/driver_types.h" 3 +#if 0 +# 1660 +enum cudaFuncCache { +# 1662 +cudaFuncCachePreferNone, +# 1663 +cudaFuncCachePreferShared, +# 1664 +cudaFuncCachePreferL1, +# 1665 +cudaFuncCachePreferEqual +# 1666 +}; +#endif +# 1672 "/usr/include/driver_types.h" 3 +#if 0 +# 1672 +enum cudaSharedMemConfig { +# 1674 +cudaSharedMemBankSizeDefault, +# 1675 +cudaSharedMemBankSizeFourByte, +# 1676 +cudaSharedMemBankSizeEightByte +# 1677 +}; +#endif +# 1682 "/usr/include/driver_types.h" 3 +#if 0 +# 1682 +enum cudaSharedCarveout { +# 1683 +cudaSharedmemCarveoutDefault = (-1), +# 1684 +cudaSharedmemCarveoutMaxShared = 100, +# 1685 +cudaSharedmemCarveoutMaxL1 = 0 +# 1686 +}; +#endif +# 1691 "/usr/include/driver_types.h" 3 +#if 0 +# 1691 +enum cudaComputeMode { +# 1693 +cudaComputeModeDefault, +# 1694 +cudaComputeModeExclusive, +# 1695 +cudaComputeModeProhibited, +# 1696 +cudaComputeModeExclusiveProcess +# 1697 +}; +#endif +# 1702 "/usr/include/driver_types.h" 3 +#if 0 +# 1702 +enum cudaLimit { +# 1704 +cudaLimitStackSize, +# 1705 +cudaLimitPrintfFifoSize, +# 1706 +cudaLimitMallocHeapSize, +# 1707 +cudaLimitDevRuntimeSyncDepth, +# 1708 +cudaLimitDevRuntimePendingLaunchCount, +# 1709 +cudaLimitMaxL2FetchGranularity, +# 1710 +cudaLimitPersistingL2CacheSize +# 1711 +}; +#endif +# 1716 "/usr/include/driver_types.h" 3 +#if 0 +# 1716 +enum cudaMemoryAdvise { +# 1718 +cudaMemAdviseSetReadMostly = 1, +# 1719 +cudaMemAdviseUnsetReadMostly, +# 1720 +cudaMemAdviseSetPreferredLocation, +# 1721 +cudaMemAdviseUnsetPreferredLocation, +# 1722 +cudaMemAdviseSetAccessedBy, +# 1723 +cudaMemAdviseUnsetAccessedBy +# 1724 +}; +#endif +# 1729 "/usr/include/driver_types.h" 3 +#if 0 +# 1729 +enum cudaMemRangeAttribute { +# 1731 +cudaMemRangeAttributeReadMostly = 1, +# 1732 +cudaMemRangeAttributePreferredLocation, +# 1733 +cudaMemRangeAttributeAccessedBy, +# 1734 +cudaMemRangeAttributeLastPrefetchLocation +# 1735 +}; +#endif +# 1740 "/usr/include/driver_types.h" 3 +#if 0 +# 1740 +enum cudaOutputMode { +# 1742 +cudaKeyValuePair, +# 1743 +cudaCSV +# 1744 +}; +#endif +# 1749 "/usr/include/driver_types.h" 3 +#if 0 +# 1749 +enum cudaFlushGPUDirectRDMAWritesOptions { +# 1750 +cudaFlushGPUDirectRDMAWritesOptionHost = (1 << 0), +# 1751 +cudaFlushGPUDirectRDMAWritesOptionMemOps +# 1752 +}; +#endif +# 1757 "/usr/include/driver_types.h" 3 +#if 0 +# 1757 +enum cudaGPUDirectRDMAWritesOrdering { +# 1758 +cudaGPUDirectRDMAWritesOrderingNone, +# 1759 +cudaGPUDirectRDMAWritesOrderingOwner = 100, +# 1760 +cudaGPUDirectRDMAWritesOrderingAllDevices = 200 +# 1761 +}; +#endif +# 1766 "/usr/include/driver_types.h" 3 +#if 0 +# 1766 +enum cudaFlushGPUDirectRDMAWritesScope { +# 1767 +cudaFlushGPUDirectRDMAWritesToOwner = 100, +# 1768 +cudaFlushGPUDirectRDMAWritesToAllDevices = 200 +# 1769 +}; +#endif +# 1774 "/usr/include/driver_types.h" 3 +#if 0 +# 1774 +enum cudaFlushGPUDirectRDMAWritesTarget { +# 1775 +cudaFlushGPUDirectRDMAWritesTargetCurrentDevice +# 1776 +}; +#endif +# 1782 "/usr/include/driver_types.h" 3 +#if 0 +# 1782 +enum cudaDeviceAttr { +# 1784 +cudaDevAttrMaxThreadsPerBlock = 1, +# 1785 +cudaDevAttrMaxBlockDimX, +# 1786 +cudaDevAttrMaxBlockDimY, +# 1787 +cudaDevAttrMaxBlockDimZ, +# 1788 +cudaDevAttrMaxGridDimX, +# 1789 +cudaDevAttrMaxGridDimY, +# 1790 +cudaDevAttrMaxGridDimZ, +# 1791 +cudaDevAttrMaxSharedMemoryPerBlock, +# 1792 +cudaDevAttrTotalConstantMemory, +# 1793 +cudaDevAttrWarpSize, +# 1794 +cudaDevAttrMaxPitch, +# 1795 +cudaDevAttrMaxRegistersPerBlock, +# 1796 +cudaDevAttrClockRate, +# 1797 +cudaDevAttrTextureAlignment, +# 1798 +cudaDevAttrGpuOverlap, +# 1799 +cudaDevAttrMultiProcessorCount, +# 1800 +cudaDevAttrKernelExecTimeout, +# 1801 +cudaDevAttrIntegrated, +# 1802 +cudaDevAttrCanMapHostMemory, +# 1803 +cudaDevAttrComputeMode, +# 1804 +cudaDevAttrMaxTexture1DWidth, +# 1805 +cudaDevAttrMaxTexture2DWidth, +# 1806 +cudaDevAttrMaxTexture2DHeight, +# 1807 +cudaDevAttrMaxTexture3DWidth, +# 1808 +cudaDevAttrMaxTexture3DHeight, +# 1809 +cudaDevAttrMaxTexture3DDepth, +# 1810 +cudaDevAttrMaxTexture2DLayeredWidth, +# 1811 +cudaDevAttrMaxTexture2DLayeredHeight, +# 1812 +cudaDevAttrMaxTexture2DLayeredLayers, +# 1813 +cudaDevAttrSurfaceAlignment, +# 1814 +cudaDevAttrConcurrentKernels, +# 1815 +cudaDevAttrEccEnabled, +# 1816 +cudaDevAttrPciBusId, +# 1817 +cudaDevAttrPciDeviceId, +# 1818 +cudaDevAttrTccDriver, +# 1819 +cudaDevAttrMemoryClockRate, +# 1820 +cudaDevAttrGlobalMemoryBusWidth, +# 1821 +cudaDevAttrL2CacheSize, +# 1822 +cudaDevAttrMaxThreadsPerMultiProcessor, +# 1823 +cudaDevAttrAsyncEngineCount, +# 1824 +cudaDevAttrUnifiedAddressing, +# 1825 +cudaDevAttrMaxTexture1DLayeredWidth, +# 1826 +cudaDevAttrMaxTexture1DLayeredLayers, +# 1827 +cudaDevAttrMaxTexture2DGatherWidth = 45, +# 1828 +cudaDevAttrMaxTexture2DGatherHeight, +# 1829 +cudaDevAttrMaxTexture3DWidthAlt, +# 1830 +cudaDevAttrMaxTexture3DHeightAlt, +# 1831 +cudaDevAttrMaxTexture3DDepthAlt, +# 1832 +cudaDevAttrPciDomainId, +# 1833 +cudaDevAttrTexturePitchAlignment, +# 1834 +cudaDevAttrMaxTextureCubemapWidth, +# 1835 +cudaDevAttrMaxTextureCubemapLayeredWidth, +# 1836 +cudaDevAttrMaxTextureCubemapLayeredLayers, +# 1837 +cudaDevAttrMaxSurface1DWidth, +# 1838 +cudaDevAttrMaxSurface2DWidth, +# 1839 +cudaDevAttrMaxSurface2DHeight, +# 1840 +cudaDevAttrMaxSurface3DWidth, +# 1841 +cudaDevAttrMaxSurface3DHeight, +# 1842 +cudaDevAttrMaxSurface3DDepth, +# 1843 +cudaDevAttrMaxSurface1DLayeredWidth, +# 1844 +cudaDevAttrMaxSurface1DLayeredLayers, +# 1845 +cudaDevAttrMaxSurface2DLayeredWidth, +# 1846 +cudaDevAttrMaxSurface2DLayeredHeight, +# 1847 +cudaDevAttrMaxSurface2DLayeredLayers, +# 1848 +cudaDevAttrMaxSurfaceCubemapWidth, +# 1849 +cudaDevAttrMaxSurfaceCubemapLayeredWidth, +# 1850 +cudaDevAttrMaxSurfaceCubemapLayeredLayers, +# 1851 +cudaDevAttrMaxTexture1DLinearWidth, +# 1852 +cudaDevAttrMaxTexture2DLinearWidth, +# 1853 +cudaDevAttrMaxTexture2DLinearHeight, +# 1854 +cudaDevAttrMaxTexture2DLinearPitch, +# 1855 +cudaDevAttrMaxTexture2DMipmappedWidth, +# 1856 +cudaDevAttrMaxTexture2DMipmappedHeight, +# 1857 +cudaDevAttrComputeCapabilityMajor, +# 1858 +cudaDevAttrComputeCapabilityMinor, +# 1859 +cudaDevAttrMaxTexture1DMipmappedWidth, +# 1860 +cudaDevAttrStreamPrioritiesSupported, +# 1861 +cudaDevAttrGlobalL1CacheSupported, +# 1862 +cudaDevAttrLocalL1CacheSupported, +# 1863 +cudaDevAttrMaxSharedMemoryPerMultiprocessor, +# 1864 +cudaDevAttrMaxRegistersPerMultiprocessor, +# 1865 +cudaDevAttrManagedMemory, +# 1866 +cudaDevAttrIsMultiGpuBoard, +# 1867 +cudaDevAttrMultiGpuBoardGroupID, +# 1868 +cudaDevAttrHostNativeAtomicSupported, +# 1869 +cudaDevAttrSingleToDoublePrecisionPerfRatio, +# 1870 +cudaDevAttrPageableMemoryAccess, +# 1871 +cudaDevAttrConcurrentManagedAccess, +# 1872 +cudaDevAttrComputePreemptionSupported, +# 1873 +cudaDevAttrCanUseHostPointerForRegisteredMem, +# 1874 +cudaDevAttrReserved92, +# 1875 +cudaDevAttrReserved93, +# 1876 +cudaDevAttrReserved94, +# 1877 +cudaDevAttrCooperativeLaunch, +# 1878 +cudaDevAttrCooperativeMultiDeviceLaunch, +# 1879 +cudaDevAttrMaxSharedMemoryPerBlockOptin, +# 1880 +cudaDevAttrCanFlushRemoteWrites, +# 1881 +cudaDevAttrHostRegisterSupported, +# 1882 +cudaDevAttrPageableMemoryAccessUsesHostPageTables, +# 1883 +cudaDevAttrDirectManagedMemAccessFromHost, +# 1884 +cudaDevAttrMaxBlocksPerMultiprocessor = 106, +# 1885 +cudaDevAttrMaxPersistingL2CacheSize = 108, +# 1886 +cudaDevAttrMaxAccessPolicyWindowSize, +# 1887 +cudaDevAttrReservedSharedMemoryPerBlock = 111, +# 1888 +cudaDevAttrSparseCudaArraySupported, +# 1889 +cudaDevAttrHostRegisterReadOnlySupported, +# 1890 +cudaDevAttrTimelineSemaphoreInteropSupported, +# 1891 +cudaDevAttrMaxTimelineSemaphoreInteropSupported = 114, +# 1892 +cudaDevAttrMemoryPoolsSupported, +# 1893 +cudaDevAttrGPUDirectRDMASupported, +# 1894 +cudaDevAttrGPUDirectRDMAFlushWritesOptions, +# 1895 +cudaDevAttrGPUDirectRDMAWritesOrdering, +# 1896 +cudaDevAttrMemoryPoolSupportedHandleTypes, +# 1897 +cudaDevAttrClusterLaunch, +# 1898 +cudaDevAttrDeferredMappingCudaArraySupported, +# 1899 +cudaDevAttrMax +# 1900 +}; +#endif +# 1905 "/usr/include/driver_types.h" 3 +#if 0 +# 1905 +enum cudaMemPoolAttr { +# 1915 "/usr/include/driver_types.h" 3 +cudaMemPoolReuseFollowEventDependencies = 1, +# 1922 +cudaMemPoolReuseAllowOpportunistic, +# 1930 +cudaMemPoolReuseAllowInternalDependencies, +# 1941 "/usr/include/driver_types.h" 3 +cudaMemPoolAttrReleaseThreshold, +# 1947 +cudaMemPoolAttrReservedMemCurrent, +# 1954 +cudaMemPoolAttrReservedMemHigh, +# 1960 +cudaMemPoolAttrUsedMemCurrent, +# 1967 +cudaMemPoolAttrUsedMemHigh +# 1968 +}; +#endif +# 1973 "/usr/include/driver_types.h" 3 +#if 0 +# 1973 +enum cudaMemLocationType { +# 1974 +cudaMemLocationTypeInvalid, +# 1975 +cudaMemLocationTypeDevice +# 1976 +}; +#endif +# 1983 "/usr/include/driver_types.h" 3 +#if 0 +# 1983 +struct cudaMemLocation { +# 1984 +cudaMemLocationType type; +# 1985 +int id; +# 1986 +}; +#endif +# 1991 "/usr/include/driver_types.h" 3 +#if 0 +# 1991 +enum cudaMemAccessFlags { +# 1992 +cudaMemAccessFlagsProtNone, +# 1993 +cudaMemAccessFlagsProtRead, +# 1994 +cudaMemAccessFlagsProtReadWrite = 3 +# 1995 +}; +#endif +# 2000 "/usr/include/driver_types.h" 3 +#if 0 +# 2000 +struct cudaMemAccessDesc { +# 2001 +cudaMemLocation location; +# 2002 +cudaMemAccessFlags flags; +# 2003 +}; +#endif +# 2008 "/usr/include/driver_types.h" 3 +#if 0 +# 2008 +enum cudaMemAllocationType { +# 2009 +cudaMemAllocationTypeInvalid, +# 2013 +cudaMemAllocationTypePinned, +# 2014 +cudaMemAllocationTypeMax = 2147483647 +# 2015 +}; +#endif +# 2020 "/usr/include/driver_types.h" 3 +#if 0 +# 2020 +enum cudaMemAllocationHandleType { +# 2021 +cudaMemHandleTypeNone, +# 2022 +cudaMemHandleTypePosixFileDescriptor, +# 2023 +cudaMemHandleTypeWin32, +# 2024 +cudaMemHandleTypeWin32Kmt = 4 +# 2025 +}; +#endif +# 2030 "/usr/include/driver_types.h" 3 +#if 0 +# 2030 +struct cudaMemPoolProps { +# 2031 +cudaMemAllocationType allocType; +# 2032 +cudaMemAllocationHandleType handleTypes; +# 2033 +cudaMemLocation location; +# 2040 +void *win32SecurityAttributes; +# 2041 +unsigned char reserved[64]; +# 2042 +}; +#endif +# 2047 "/usr/include/driver_types.h" 3 +#if 0 +# 2047 +struct cudaMemPoolPtrExportData { +# 2048 +unsigned char reserved[64]; +# 2049 +}; +#endif +# 2054 "/usr/include/driver_types.h" 3 +#if 0 +# 2054 +struct cudaMemAllocNodeParams { +# 2059 +cudaMemPoolProps poolProps; +# 2060 +const cudaMemAccessDesc *accessDescs; +# 2061 +size_t accessDescCount; +# 2062 +size_t bytesize; +# 2063 +void *dptr; +# 2064 +}; +#endif +# 2069 "/usr/include/driver_types.h" 3 +#if 0 +# 2069 +enum cudaGraphMemAttributeType { +# 2074 +cudaGraphMemAttrUsedMemCurrent, +# 2081 +cudaGraphMemAttrUsedMemHigh, +# 2088 +cudaGraphMemAttrReservedMemCurrent, +# 2095 +cudaGraphMemAttrReservedMemHigh +# 2096 +}; +#endif +# 2102 "/usr/include/driver_types.h" 3 +#if 0 +# 2102 +enum cudaDeviceP2PAttr { +# 2103 +cudaDevP2PAttrPerformanceRank = 1, +# 2104 +cudaDevP2PAttrAccessSupported, +# 2105 +cudaDevP2PAttrNativeAtomicSupported, +# 2106 +cudaDevP2PAttrCudaArrayAccessSupported +# 2107 +}; +#endif +# 2114 "/usr/include/driver_types.h" 3 +#if 0 +# 2114 +struct CUuuid_st { +# 2115 +char bytes[16]; +# 2116 +}; +#endif +# 2117 "/usr/include/driver_types.h" 3 +#if 0 +typedef CUuuid_st +# 2117 +CUuuid; +#endif +# 2119 "/usr/include/driver_types.h" 3 +#if 0 +typedef CUuuid_st +# 2119 +cudaUUID_t; +#endif +# 2124 "/usr/include/driver_types.h" 3 +#if 0 +# 2124 +struct cudaDeviceProp { +# 2126 +char name[256]; +# 2127 +cudaUUID_t uuid; +# 2128 +char luid[8]; +# 2129 +unsigned luidDeviceNodeMask; +# 2130 +size_t totalGlobalMem; +# 2131 +size_t sharedMemPerBlock; +# 2132 +int regsPerBlock; +# 2133 +int warpSize; +# 2134 +size_t memPitch; +# 2135 +int maxThreadsPerBlock; +# 2136 +int maxThreadsDim[3]; +# 2137 +int maxGridSize[3]; +# 2138 +int clockRate; +# 2139 +size_t totalConstMem; +# 2140 +int major; +# 2141 +int minor; +# 2142 +size_t textureAlignment; +# 2143 +size_t texturePitchAlignment; +# 2144 +int deviceOverlap; +# 2145 +int multiProcessorCount; +# 2146 +int kernelExecTimeoutEnabled; +# 2147 +int integrated; +# 2148 +int canMapHostMemory; +# 2149 +int computeMode; +# 2150 +int maxTexture1D; +# 2151 +int maxTexture1DMipmap; +# 2152 +int maxTexture1DLinear; +# 2153 +int maxTexture2D[2]; +# 2154 +int maxTexture2DMipmap[2]; +# 2155 +int maxTexture2DLinear[3]; +# 2156 +int maxTexture2DGather[2]; +# 2157 +int maxTexture3D[3]; +# 2158 +int maxTexture3DAlt[3]; +# 2159 +int maxTextureCubemap; +# 2160 +int maxTexture1DLayered[2]; +# 2161 +int maxTexture2DLayered[3]; +# 2162 +int maxTextureCubemapLayered[2]; +# 2163 +int maxSurface1D; +# 2164 +int maxSurface2D[2]; +# 2165 +int maxSurface3D[3]; +# 2166 +int maxSurface1DLayered[2]; +# 2167 +int maxSurface2DLayered[3]; +# 2168 +int maxSurfaceCubemap; +# 2169 +int maxSurfaceCubemapLayered[2]; +# 2170 +size_t surfaceAlignment; +# 2171 +int concurrentKernels; +# 2172 +int ECCEnabled; +# 2173 +int pciBusID; +# 2174 +int pciDeviceID; +# 2175 +int pciDomainID; +# 2176 +int tccDriver; +# 2177 +int asyncEngineCount; +# 2178 +int unifiedAddressing; +# 2179 +int memoryClockRate; +# 2180 +int memoryBusWidth; +# 2181 +int l2CacheSize; +# 2182 +int persistingL2CacheMaxSize; +# 2183 +int maxThreadsPerMultiProcessor; +# 2184 +int streamPrioritiesSupported; +# 2185 +int globalL1CacheSupported; +# 2186 +int localL1CacheSupported; +# 2187 +size_t sharedMemPerMultiprocessor; +# 2188 +int regsPerMultiprocessor; +# 2189 +int managedMemory; +# 2190 +int isMultiGpuBoard; +# 2191 +int multiGpuBoardGroupID; +# 2192 +int hostNativeAtomicSupported; +# 2193 +int singleToDoublePrecisionPerfRatio; +# 2194 +int pageableMemoryAccess; +# 2195 +int concurrentManagedAccess; +# 2196 +int computePreemptionSupported; +# 2197 +int canUseHostPointerForRegisteredMem; +# 2198 +int cooperativeLaunch; +# 2199 +int cooperativeMultiDeviceLaunch; +# 2200 +size_t sharedMemPerBlockOptin; +# 2201 +int pageableMemoryAccessUsesHostPageTables; +# 2202 +int directManagedMemAccessFromHost; +# 2203 +int maxBlocksPerMultiProcessor; +# 2204 +int accessPolicyMaxWindowSize; +# 2205 +size_t reservedSharedMemPerBlock; +# 2206 +}; +#endif +# 2302 "/usr/include/driver_types.h" 3 +#if 0 +typedef +# 2299 +struct cudaIpcEventHandle_st { +# 2301 +char reserved[64]; +# 2302 +} cudaIpcEventHandle_t; +#endif +# 2310 "/usr/include/driver_types.h" 3 +#if 0 +typedef +# 2307 +struct cudaIpcMemHandle_st { +# 2309 +char reserved[64]; +# 2310 +} cudaIpcMemHandle_t; +#endif +# 2315 "/usr/include/driver_types.h" 3 +#if 0 +# 2315 +enum cudaExternalMemoryHandleType { +# 2319 +cudaExternalMemoryHandleTypeOpaqueFd = 1, +# 2323 +cudaExternalMemoryHandleTypeOpaqueWin32, +# 2327 +cudaExternalMemoryHandleTypeOpaqueWin32Kmt, +# 2331 +cudaExternalMemoryHandleTypeD3D12Heap, +# 2335 +cudaExternalMemoryHandleTypeD3D12Resource, +# 2339 +cudaExternalMemoryHandleTypeD3D11Resource, +# 2343 +cudaExternalMemoryHandleTypeD3D11ResourceKmt, +# 2347 +cudaExternalMemoryHandleTypeNvSciBuf +# 2348 +}; +#endif +# 2390 "/usr/include/driver_types.h" 3 +#if 0 +# 2390 +struct cudaExternalMemoryHandleDesc { +# 2394 +cudaExternalMemoryHandleType type; +# 2395 +union { +# 2401 +int fd; +# 2417 "/usr/include/driver_types.h" 3 +struct { +# 2421 +void *handle; +# 2426 +const void *name; +# 2427 +} win32; +# 2432 +const void *nvSciBufObject; +# 2433 +} handle; +# 2437 +unsigned long long size; +# 2441 +unsigned flags; __pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;) +# 2442 +}; +#endif +# 2447 "/usr/include/driver_types.h" 3 +#if 0 +# 2447 +struct cudaExternalMemoryBufferDesc { +# 2451 +unsigned long long offset; +# 2455 +unsigned long long size; +# 2459 +unsigned flags; +# 2460 +}; +#endif +# 2465 "/usr/include/driver_types.h" 3 +#if 0 +# 2465 +struct cudaExternalMemoryMipmappedArrayDesc { +# 2470 +unsigned long long offset; +# 2474 +cudaChannelFormatDesc formatDesc; +# 2478 +cudaExtent extent; +# 2483 +unsigned flags; +# 2487 +unsigned numLevels; +# 2488 +}; +#endif +# 2493 "/usr/include/driver_types.h" 3 +#if 0 +# 2493 +enum cudaExternalSemaphoreHandleType { +# 2497 +cudaExternalSemaphoreHandleTypeOpaqueFd = 1, +# 2501 +cudaExternalSemaphoreHandleTypeOpaqueWin32, +# 2505 +cudaExternalSemaphoreHandleTypeOpaqueWin32Kmt, +# 2509 +cudaExternalSemaphoreHandleTypeD3D12Fence, +# 2513 +cudaExternalSemaphoreHandleTypeD3D11Fence, +# 2517 +cudaExternalSemaphoreHandleTypeNvSciSync, +# 2521 +cudaExternalSemaphoreHandleTypeKeyedMutex, +# 2525 +cudaExternalSemaphoreHandleTypeKeyedMutexKmt, +# 2529 +cudaExternalSemaphoreHandleTypeTimelineSemaphoreFd, +# 2533 +cudaExternalSemaphoreHandleTypeTimelineSemaphoreWin32 +# 2534 +}; +#endif +# 2539 "/usr/include/driver_types.h" 3 +#if 0 +# 2539 +struct cudaExternalSemaphoreHandleDesc { +# 2543 +cudaExternalSemaphoreHandleType type; +# 2544 +union { +# 2551 +int fd; +# 2567 "/usr/include/driver_types.h" 3 +struct { +# 2571 +void *handle; +# 2576 +const void *name; +# 2577 +} win32; +# 2581 +const void *nvSciSyncObj; +# 2582 +} handle; +# 2586 +unsigned flags; __pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;) +# 2587 +}; +#endif +# 2592 "/usr/include/driver_types.h" 3 +#if 0 +# 2592 +struct cudaExternalSemaphoreSignalParams_v1 { +# 2593 +struct { +# 2597 +struct { +# 2601 +unsigned long long value; +# 2602 +} fence; +# 2603 +union { +# 2608 +void *fence; +# 2609 +unsigned long long reserved; +# 2610 +} nvSciSync; +# 2614 +struct { +# 2618 +unsigned long long key; +# 2619 +} keyedMutex; +# 2620 +} params; +# 2631 "/usr/include/driver_types.h" 3 +unsigned flags; +# 2632 +}; +#endif +# 2637 "/usr/include/driver_types.h" 3 +#if 0 +# 2637 +struct cudaExternalSemaphoreWaitParams_v1 { +# 2638 +struct { +# 2642 +struct { +# 2646 +unsigned long long value; +# 2647 +} fence; +# 2648 +union { +# 2653 +void *fence; +# 2654 +unsigned long long reserved; +# 2655 +} nvSciSync; +# 2659 +struct { +# 2663 +unsigned long long key; +# 2667 +unsigned timeoutMs; +# 2668 +} keyedMutex; +# 2669 +} params; +# 2680 "/usr/include/driver_types.h" 3 +unsigned flags; +# 2681 +}; +#endif +# 2686 "/usr/include/driver_types.h" 3 +#if 0 +# 2686 +struct cudaExternalSemaphoreSignalParams { +# 2687 +struct { +# 2691 +struct { +# 2695 +unsigned long long value; +# 2696 +} fence; +# 2697 +union { +# 2702 +void *fence; +# 2703 +unsigned long long reserved; +# 2704 +} nvSciSync; +# 2708 +struct { +# 2712 +unsigned long long key; +# 2713 +} keyedMutex; +# 2714 +unsigned reserved[12]; +# 2715 +} params; +# 2726 "/usr/include/driver_types.h" 3 +unsigned flags; +# 2727 +unsigned reserved[16]; +# 2728 +}; +#endif +# 2733 "/usr/include/driver_types.h" 3 +#if 0 +# 2733 +struct cudaExternalSemaphoreWaitParams { +# 2734 +struct { +# 2738 +struct { +# 2742 +unsigned long long value; +# 2743 +} fence; +# 2744 +union { +# 2749 +void *fence; +# 2750 +unsigned long long reserved; +# 2751 +} nvSciSync; +# 2755 +struct { +# 2759 +unsigned long long key; +# 2763 +unsigned timeoutMs; +# 2764 +} keyedMutex; +# 2765 +unsigned reserved[10]; +# 2766 +} params; +# 2777 "/usr/include/driver_types.h" 3 +unsigned flags; +# 2778 +unsigned reserved[16]; +# 2779 +}; +#endif +# 2790 "/usr/include/driver_types.h" 3 +#if 0 +typedef cudaError +# 2790 +cudaError_t; +#endif +# 2795 "/usr/include/driver_types.h" 3 +#if 0 +typedef struct CUstream_st * +# 2795 +cudaStream_t; +#endif +# 2800 "/usr/include/driver_types.h" 3 +#if 0 +typedef struct CUevent_st * +# 2800 +cudaEvent_t; +#endif +# 2805 "/usr/include/driver_types.h" 3 +#if 0 +typedef cudaGraphicsResource * +# 2805 +cudaGraphicsResource_t; +#endif +# 2810 "/usr/include/driver_types.h" 3 +#if 0 +typedef cudaOutputMode +# 2810 +cudaOutputMode_t; +#endif +# 2815 "/usr/include/driver_types.h" 3 +#if 0 +typedef struct CUexternalMemory_st * +# 2815 +cudaExternalMemory_t; +#endif +# 2820 "/usr/include/driver_types.h" 3 +#if 0 +typedef struct CUexternalSemaphore_st * +# 2820 +cudaExternalSemaphore_t; +#endif +# 2825 "/usr/include/driver_types.h" 3 +#if 0 +typedef struct CUgraph_st * +# 2825 +cudaGraph_t; +#endif +# 2830 "/usr/include/driver_types.h" 3 +#if 0 +typedef struct CUgraphNode_st * +# 2830 +cudaGraphNode_t; +#endif +# 2835 "/usr/include/driver_types.h" 3 +#if 0 +typedef struct CUuserObject_st * +# 2835 +cudaUserObject_t; +#endif +# 2840 "/usr/include/driver_types.h" 3 +#if 0 +typedef struct CUfunc_st * +# 2840 +cudaFunction_t; +#endif +# 2845 "/usr/include/driver_types.h" 3 +#if 0 +typedef struct CUmemPoolHandle_st * +# 2845 +cudaMemPool_t; +#endif +# 2850 "/usr/include/driver_types.h" 3 +#if 0 +# 2850 +enum cudaCGScope { +# 2851 +cudaCGScopeInvalid, +# 2852 +cudaCGScopeGrid, +# 2853 +cudaCGScopeMultiGrid +# 2854 +}; +#endif +# 2859 "/usr/include/driver_types.h" 3 +#if 0 +# 2859 +struct cudaLaunchParams { +# 2861 +void *func; +# 2862 +dim3 gridDim; +# 2863 +dim3 blockDim; +# 2864 +void **args; +# 2865 +size_t sharedMem; +# 2866 +cudaStream_t stream; +# 2867 +}; +#endif +# 2872 "/usr/include/driver_types.h" 3 +#if 0 +# 2872 +struct cudaKernelNodeParams { +# 2873 +void *func; +# 2874 +dim3 gridDim; +# 2875 +dim3 blockDim; +# 2876 +unsigned sharedMemBytes; +# 2877 +void **kernelParams; +# 2878 +void **extra; +# 2879 +}; +#endif +# 2884 "/usr/include/driver_types.h" 3 +#if 0 +# 2884 +struct cudaExternalSemaphoreSignalNodeParams { +# 2885 +cudaExternalSemaphore_t *extSemArray; +# 2886 +const cudaExternalSemaphoreSignalParams *paramsArray; +# 2887 +unsigned numExtSems; +# 2888 +}; +#endif +# 2893 "/usr/include/driver_types.h" 3 +#if 0 +# 2893 +struct cudaExternalSemaphoreWaitNodeParams { +# 2894 +cudaExternalSemaphore_t *extSemArray; +# 2895 +const cudaExternalSemaphoreWaitParams *paramsArray; +# 2896 +unsigned numExtSems; +# 2897 +}; +#endif +# 2902 "/usr/include/driver_types.h" 3 +#if 0 +# 2902 +enum cudaGraphNodeType { +# 2903 +cudaGraphNodeTypeKernel, +# 2904 +cudaGraphNodeTypeMemcpy, +# 2905 +cudaGraphNodeTypeMemset, +# 2906 +cudaGraphNodeTypeHost, +# 2907 +cudaGraphNodeTypeGraph, +# 2908 +cudaGraphNodeTypeEmpty, +# 2909 +cudaGraphNodeTypeWaitEvent, +# 2910 +cudaGraphNodeTypeEventRecord, +# 2911 +cudaGraphNodeTypeExtSemaphoreSignal, +# 2912 +cudaGraphNodeTypeExtSemaphoreWait, +# 2913 +cudaGraphNodeTypeMemAlloc, +# 2914 +cudaGraphNodeTypeMemFree, +# 2915 +cudaGraphNodeTypeCount +# 2916 +}; +#endif +# 2921 "/usr/include/driver_types.h" 3 +typedef struct CUgraphExec_st *cudaGraphExec_t; +# 2926 +#if 0 +# 2926 +enum cudaGraphExecUpdateResult { +# 2927 +cudaGraphExecUpdateSuccess, +# 2928 +cudaGraphExecUpdateError, +# 2929 +cudaGraphExecUpdateErrorTopologyChanged, +# 2930 +cudaGraphExecUpdateErrorNodeTypeChanged, +# 2931 +cudaGraphExecUpdateErrorFunctionChanged, +# 2932 +cudaGraphExecUpdateErrorParametersChanged, +# 2933 +cudaGraphExecUpdateErrorNotSupported, +# 2934 +cudaGraphExecUpdateErrorUnsupportedFunctionChange, +# 2935 +cudaGraphExecUpdateErrorAttributesChanged +# 2936 +}; +#endif +# 2942 "/usr/include/driver_types.h" 3 +#if 0 +# 2942 +enum cudaGetDriverEntryPointFlags { +# 2943 +cudaEnableDefault, +# 2944 +cudaEnableLegacyStream, +# 2945 +cudaEnablePerThreadDefaultStream +# 2946 +}; +#endif +# 2951 "/usr/include/driver_types.h" 3 +#if 0 +# 2951 +enum cudaGraphDebugDotFlags { +# 2952 +cudaGraphDebugDotFlagsVerbose = (1 << 0), +# 2953 +cudaGraphDebugDotFlagsKernelNodeParams = (1 << 2), +# 2954 +cudaGraphDebugDotFlagsMemcpyNodeParams = (1 << 3), +# 2955 +cudaGraphDebugDotFlagsMemsetNodeParams = (1 << 4), +# 2956 +cudaGraphDebugDotFlagsHostNodeParams = (1 << 5), +# 2957 +cudaGraphDebugDotFlagsEventNodeParams = (1 << 6), +# 2958 +cudaGraphDebugDotFlagsExtSemasSignalNodeParams = (1 << 7), +# 2959 +cudaGraphDebugDotFlagsExtSemasWaitNodeParams = (1 << 8), +# 2960 +cudaGraphDebugDotFlagsKernelNodeAttributes = (1 << 9), +# 2961 +cudaGraphDebugDotFlagsHandles = (1 << 10) +# 2962 +}; +#endif +# 2967 "/usr/include/driver_types.h" 3 +#if 0 +# 2967 +enum cudaGraphInstantiateFlags { +# 2968 +cudaGraphInstantiateFlagAutoFreeOnLaunch = 1, +# 2969 +cudaGraphInstantiateFlagUseNodePriority = 8 +# 2971 +}; +#endif +# 3010 "/usr/include/driver_types.h" 3 +#if 0 +typedef +# 2976 "/usr/include/driver_types.h" 3 +enum cudaLaunchAttributeID { +# 2977 +cudaLaunchAttributeIgnore, +# 2978 +cudaLaunchAttributeAccessPolicyWindow, +# 2979 +cudaLaunchAttributeCooperative, +# 2980 +cudaLaunchAttributeSynchronizationPolicy, +# 2981 +cudaLaunchAttributeClusterDimension, +# 2982 +cudaLaunchAttributeClusterSchedulingPolicyPreference, +# 2983 +cudaLaunchAttributeProgrammaticStreamSerialization, +# 2991 +cudaLaunchAttributeProgrammaticEvent, +# 3009 "/usr/include/driver_types.h" 3 +cudaLaunchAttributePriority +# 3010 +} cudaLaunchAttributeID; +#endif +# 3033 "/usr/include/driver_types.h" 3 +#if 0 +typedef +# 3015 +union cudaLaunchAttributeValue { +# 3016 +char pad[64]; +# 3017 +cudaAccessPolicyWindow accessPolicyWindow; +# 3018 +int cooperative; +# 3019 +cudaSynchronizationPolicy syncPolicy; +# 3020 +struct { +# 3021 +unsigned x; +# 3022 +unsigned y; +# 3023 +unsigned z; +# 3024 +} clusterDim; +# 3025 +cudaClusterSchedulingPolicy clusterSchedulingPolicyPreference; +# 3026 +int programmaticStreamSerializationAllowed; +# 3027 +struct { +# 3028 +cudaEvent_t event; +# 3029 +int flags; +# 3030 +int triggerAtBlockStart; +# 3031 +} programmaticEvent; +# 3032 +int priority; __pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;) +# 3033 +} cudaLaunchAttributeValue; +#endif +# 3042 "/usr/include/driver_types.h" 3 +#if 0 +typedef +# 3038 +struct cudaLaunchAttribute_st { +# 3039 +cudaLaunchAttributeID id; +# 3040 +char pad[(8) - sizeof(cudaLaunchAttributeID)]; +# 3041 +cudaLaunchAttributeValue val; +# 3042 +} cudaLaunchAttribute; +#endif +# 3054 "/usr/include/driver_types.h" 3 +#if 0 +typedef +# 3047 +struct cudaLaunchConfig_st { +# 3048 +dim3 gridDim; +# 3049 +dim3 blockDim; +# 3050 +size_t dynamicSmemBytes; +# 3051 +cudaStream_t stream; +# 3052 +cudaLaunchAttribute *attrs; +# 3053 +unsigned numAttrs; __pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;)__pad__(volatile char:8;) +# 3054 +} cudaLaunchConfig_t; +#endif +# 84 "/usr/include/surface_types.h" 3 +#if 0 +# 84 +enum cudaSurfaceBoundaryMode { +# 86 +cudaBoundaryModeZero, +# 87 +cudaBoundaryModeClamp, +# 88 +cudaBoundaryModeTrap +# 89 +}; +#endif +# 94 "/usr/include/surface_types.h" 3 +#if 0 +# 94 +enum cudaSurfaceFormatMode { +# 96 +cudaFormatModeForced, +# 97 +cudaFormatModeAuto +# 98 +}; +#endif +# 103 "/usr/include/surface_types.h" 3 +#if 0 +# 103 +struct surfaceReference { +# 108 +cudaChannelFormatDesc channelDesc; +# 109 +}; +#endif +# 114 "/usr/include/surface_types.h" 3 +#if 0 +typedef unsigned long long +# 114 +cudaSurfaceObject_t; +#endif +# 84 "/usr/include/texture_types.h" 3 +#if 0 +# 84 +enum cudaTextureAddressMode { +# 86 +cudaAddressModeWrap, +# 87 +cudaAddressModeClamp, +# 88 +cudaAddressModeMirror, +# 89 +cudaAddressModeBorder +# 90 +}; +#endif +# 95 "/usr/include/texture_types.h" 3 +#if 0 +# 95 +enum cudaTextureFilterMode { +# 97 +cudaFilterModePoint, +# 98 +cudaFilterModeLinear +# 99 +}; +#endif +# 104 "/usr/include/texture_types.h" 3 +#if 0 +# 104 +enum cudaTextureReadMode { +# 106 +cudaReadModeElementType, +# 107 +cudaReadModeNormalizedFloat +# 108 +}; +#endif +# 113 "/usr/include/texture_types.h" 3 +#if 0 +# 113 +struct textureReference { +# 118 +int normalized; +# 122 +cudaTextureFilterMode filterMode; +# 126 +cudaTextureAddressMode addressMode[3]; +# 130 +cudaChannelFormatDesc channelDesc; +# 134 +int sRGB; +# 138 +unsigned maxAnisotropy; +# 142 +cudaTextureFilterMode mipmapFilterMode; +# 146 +float mipmapLevelBias; +# 150 +float minMipmapLevelClamp; +# 154 +float maxMipmapLevelClamp; +# 158 +int disableTrilinearOptimization; +# 159 +int __cudaReserved[14]; +# 160 +}; +#endif +# 165 "/usr/include/texture_types.h" 3 +#if 0 +# 165 +struct cudaTextureDesc { +# 170 +cudaTextureAddressMode addressMode[3]; +# 174 +cudaTextureFilterMode filterMode; +# 178 +cudaTextureReadMode readMode; +# 182 +int sRGB; +# 186 +float borderColor[4]; +# 190 +int normalizedCoords; +# 194 +unsigned maxAnisotropy; +# 198 +cudaTextureFilterMode mipmapFilterMode; +# 202 +float mipmapLevelBias; +# 206 +float minMipmapLevelClamp; +# 210 +float maxMipmapLevelClamp; +# 214 +int disableTrilinearOptimization; +# 215 +}; +#endif +# 217 "/usr/include/texture_types.h" 3 +#if 0 +# 217 +struct cudaTextureDesc_v2 { +# 222 +cudaTextureAddressMode addressMode[3]; +# 226 +cudaTextureFilterMode filterMode; +# 230 +cudaTextureReadMode readMode; +# 234 +int sRGB; +# 238 +float borderColor[4]; +# 242 +int normalizedCoords; +# 246 +unsigned maxAnisotropy; +# 250 +cudaTextureFilterMode mipmapFilterMode; +# 254 +float mipmapLevelBias; +# 258 +float minMipmapLevelClamp; +# 262 +float maxMipmapLevelClamp; +# 266 +int disableTrilinearOptimization; +# 270 +int seamlessCubemap; +# 271 +}; +#endif +# 276 "/usr/include/texture_types.h" 3 +#if 0 +typedef unsigned long long +# 276 +cudaTextureObject_t; +#endif +# 87 "/usr/include/library_types.h" 3 +typedef +# 55 +enum cudaDataType_t { +# 57 +CUDA_R_16F = 2, +# 58 +CUDA_C_16F = 6, +# 59 +CUDA_R_16BF = 14, +# 60 +CUDA_C_16BF, +# 61 +CUDA_R_32F = 0, +# 62 +CUDA_C_32F = 4, +# 63 +CUDA_R_64F = 1, +# 64 +CUDA_C_64F = 5, +# 65 +CUDA_R_4I = 16, +# 66 +CUDA_C_4I, +# 67 +CUDA_R_4U, +# 68 +CUDA_C_4U, +# 69 +CUDA_R_8I = 3, +# 70 +CUDA_C_8I = 7, +# 71 +CUDA_R_8U, +# 72 +CUDA_C_8U, +# 73 +CUDA_R_16I = 20, +# 74 +CUDA_C_16I, +# 75 +CUDA_R_16U, +# 76 +CUDA_C_16U, +# 77 +CUDA_R_32I = 10, +# 78 +CUDA_C_32I, +# 79 +CUDA_R_32U, +# 80 +CUDA_C_32U, +# 81 +CUDA_R_64I = 24, +# 82 +CUDA_C_64I, +# 83 +CUDA_R_64U, +# 84 +CUDA_C_64U, +# 85 +CUDA_R_8F_E4M3, +# 86 +CUDA_R_8F_E5M2 +# 87 +} cudaDataType; +# 95 +typedef +# 90 +enum libraryPropertyType_t { +# 92 +MAJOR_VERSION, +# 93 +MINOR_VERSION, +# 94 +PATCH_LEVEL +# 95 +} libraryPropertyType; +# 131 "/usr/include/cuda_device_runtime_api.h" 3 +extern "C" { +# 133 +extern cudaError_t cudaDeviceGetAttribute(int * value, cudaDeviceAttr attr, int device); +# 134 +extern cudaError_t cudaDeviceGetLimit(size_t * pValue, cudaLimit limit); +# 135 +extern cudaError_t cudaDeviceGetCacheConfig(cudaFuncCache * pCacheConfig); +# 136 +extern cudaError_t cudaDeviceGetSharedMemConfig(cudaSharedMemConfig * pConfig); +# 139 +extern cudaError_t cudaDeviceSynchronize(); +# 141 +__attribute__((unused)) extern cudaError_t __cudaDeviceSynchronizeDeprecationAvoidance(); +# 142 +extern cudaError_t cudaGetLastError(); +# 143 +extern cudaError_t cudaPeekAtLastError(); +# 144 +extern const char *cudaGetErrorString(cudaError_t error); +# 145 +extern const char *cudaGetErrorName(cudaError_t error); +# 146 +extern cudaError_t cudaGetDeviceCount(int * count); +# 147 +extern cudaError_t cudaGetDevice(int * device); +# 148 +extern cudaError_t cudaStreamCreateWithFlags(cudaStream_t * pStream, unsigned flags); +# 149 +extern cudaError_t cudaStreamDestroy(cudaStream_t stream); +# 150 +extern cudaError_t cudaStreamWaitEvent(cudaStream_t stream, cudaEvent_t event, unsigned flags); +# 151 +__attribute__((unused)) extern cudaError_t cudaStreamWaitEvent_ptsz(cudaStream_t stream, cudaEvent_t event, unsigned flags); +# 152 +extern cudaError_t cudaEventCreateWithFlags(cudaEvent_t * event, unsigned flags); +# 153 +extern cudaError_t cudaEventRecord(cudaEvent_t event, cudaStream_t stream); +# 154 +__attribute__((unused)) extern cudaError_t cudaEventRecord_ptsz(cudaEvent_t event, cudaStream_t stream); +# 155 +extern cudaError_t cudaEventRecordWithFlags(cudaEvent_t event, cudaStream_t stream, unsigned flags); +# 156 +__attribute__((unused)) extern cudaError_t cudaEventRecordWithFlags_ptsz(cudaEvent_t event, cudaStream_t stream, unsigned flags); +# 157 +extern cudaError_t cudaEventDestroy(cudaEvent_t event); +# 158 +extern cudaError_t cudaFuncGetAttributes(cudaFuncAttributes * attr, const void * func); +# 159 +extern cudaError_t cudaFree(void * devPtr); +# 160 +extern cudaError_t cudaMalloc(void ** devPtr, size_t size); +# 161 +extern cudaError_t cudaMemcpyAsync(void * dst, const void * src, size_t count, cudaMemcpyKind kind, cudaStream_t stream); +# 162 +__attribute__((unused)) extern cudaError_t cudaMemcpyAsync_ptsz(void * dst, const void * src, size_t count, cudaMemcpyKind kind, cudaStream_t stream); +# 163 +extern cudaError_t cudaMemcpy2DAsync(void * dst, size_t dpitch, const void * src, size_t spitch, size_t width, size_t height, cudaMemcpyKind kind, cudaStream_t stream); +# 164 +__attribute__((unused)) extern cudaError_t cudaMemcpy2DAsync_ptsz(void * dst, size_t dpitch, const void * src, size_t spitch, size_t width, size_t height, cudaMemcpyKind kind, cudaStream_t stream); +# 165 +extern cudaError_t cudaMemcpy3DAsync(const cudaMemcpy3DParms * p, cudaStream_t stream); +# 166 +__attribute__((unused)) extern cudaError_t cudaMemcpy3DAsync_ptsz(const cudaMemcpy3DParms * p, cudaStream_t stream); +# 167 +extern cudaError_t cudaMemsetAsync(void * devPtr, int value, size_t count, cudaStream_t stream); +# 168 +__attribute__((unused)) extern cudaError_t cudaMemsetAsync_ptsz(void * devPtr, int value, size_t count, cudaStream_t stream); +# 169 +extern cudaError_t cudaMemset2DAsync(void * devPtr, size_t pitch, int value, size_t width, size_t height, cudaStream_t stream); +# 170 +__attribute__((unused)) extern cudaError_t cudaMemset2DAsync_ptsz(void * devPtr, size_t pitch, int value, size_t width, size_t height, cudaStream_t stream); +# 171 +extern cudaError_t cudaMemset3DAsync(cudaPitchedPtr pitchedDevPtr, int value, cudaExtent extent, cudaStream_t stream); +# 172 +__attribute__((unused)) extern cudaError_t cudaMemset3DAsync_ptsz(cudaPitchedPtr pitchedDevPtr, int value, cudaExtent extent, cudaStream_t stream); +# 173 +extern cudaError_t cudaRuntimeGetVersion(int * runtimeVersion); +# 194 "/usr/include/cuda_device_runtime_api.h" 3 +__attribute__((unused)) extern void *cudaGetParameterBuffer(size_t alignment, size_t size); +# 222 "/usr/include/cuda_device_runtime_api.h" 3 +__attribute__((unused)) extern void *cudaGetParameterBufferV2(void * func, dim3 gridDimension, dim3 blockDimension, unsigned sharedMemSize); +# 223 +__attribute__((unused)) extern cudaError_t cudaLaunchDevice_ptsz(void * func, void * parameterBuffer, dim3 gridDimension, dim3 blockDimension, unsigned sharedMemSize, cudaStream_t stream); +# 224 +__attribute__((unused)) extern cudaError_t cudaLaunchDeviceV2_ptsz(void * parameterBuffer, cudaStream_t stream); +# 242 "/usr/include/cuda_device_runtime_api.h" 3 +__attribute__((unused)) extern cudaError_t cudaLaunchDevice(void * func, void * parameterBuffer, dim3 gridDimension, dim3 blockDimension, unsigned sharedMemSize, cudaStream_t stream); +# 243 +__attribute__((unused)) extern cudaError_t cudaLaunchDeviceV2(void * parameterBuffer, cudaStream_t stream); +# 246 +extern cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessor(int * numBlocks, const void * func, int blockSize, size_t dynamicSmemSize); +# 247 +extern cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(int * numBlocks, const void * func, int blockSize, size_t dynamicSmemSize, unsigned flags); +# 249 +__attribute__((unused)) extern unsigned long long cudaCGGetIntrinsicHandle(cudaCGScope scope); +# 250 +__attribute__((unused)) extern cudaError_t cudaCGSynchronize(unsigned long long handle, unsigned flags); +# 251 +__attribute__((unused)) extern cudaError_t cudaCGSynchronizeGrid(unsigned long long handle, unsigned flags); +# 252 +__attribute__((unused)) extern cudaError_t cudaCGGetSize(unsigned * numThreads, unsigned * numGrids, unsigned long long handle); +# 253 +__attribute__((unused)) extern cudaError_t cudaCGGetRank(unsigned * threadRank, unsigned * gridRank, unsigned long long handle); +# 254 +} +# 256 +template< class T> static inline cudaError_t cudaMalloc(T ** devPtr, size_t size); +# 257 +template< class T> static inline cudaError_t cudaFuncGetAttributes(cudaFuncAttributes * attr, T * entry); +# 258 +template< class T> static inline cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessor(int * numBlocks, T func, int blockSize, size_t dynamicSmemSize); +# 259 +template< class T> static inline cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(int * numBlocks, T func, int blockSize, size_t dynamicSmemSize, unsigned flags); +# 267 "/usr/include/cuda_runtime_api.h" 3 +extern "C" { +# 307 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaDeviceReset(); +# 329 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaDeviceSynchronize(); +# 416 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaDeviceSetLimit(cudaLimit limit, size_t value); +# 449 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaDeviceGetLimit(size_t * pValue, cudaLimit limit); +# 472 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaDeviceGetTexture1DLinearMaxWidth(size_t * maxWidthInElements, const cudaChannelFormatDesc * fmtDesc, int device); +# 506 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaDeviceGetCacheConfig(cudaFuncCache * pCacheConfig); +# 543 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaDeviceGetStreamPriorityRange(int * leastPriority, int * greatestPriority); +# 587 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaDeviceSetCacheConfig(cudaFuncCache cacheConfig); +# 618 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaDeviceGetSharedMemConfig(cudaSharedMemConfig * pConfig); +# 662 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaDeviceSetSharedMemConfig(cudaSharedMemConfig config); +# 689 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaDeviceGetByPCIBusId(int * device, const char * pciBusId); +# 719 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaDeviceGetPCIBusId(char * pciBusId, int len, int device); +# 767 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaIpcGetEventHandle(cudaIpcEventHandle_t * handle, cudaEvent_t event); +# 808 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaIpcOpenEventHandle(cudaEvent_t * event, cudaIpcEventHandle_t handle); +# 851 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaIpcGetMemHandle(cudaIpcMemHandle_t * handle, void * devPtr); +# 915 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaIpcOpenMemHandle(void ** devPtr, cudaIpcMemHandle_t handle, unsigned flags); +# 951 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaIpcCloseMemHandle(void * devPtr); +# 983 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaDeviceFlushGPUDirectRDMAWrites(cudaFlushGPUDirectRDMAWritesTarget target, cudaFlushGPUDirectRDMAWritesScope scope); +# 1026 "/usr/include/cuda_runtime_api.h" 3 +__attribute((deprecated)) extern cudaError_t cudaThreadExit(); +# 1052 "/usr/include/cuda_runtime_api.h" 3 +__attribute((deprecated)) extern cudaError_t cudaThreadSynchronize(); +# 1101 "/usr/include/cuda_runtime_api.h" 3 +__attribute((deprecated)) extern cudaError_t cudaThreadSetLimit(cudaLimit limit, size_t value); +# 1134 "/usr/include/cuda_runtime_api.h" 3 +__attribute((deprecated)) extern cudaError_t cudaThreadGetLimit(size_t * pValue, cudaLimit limit); +# 1170 "/usr/include/cuda_runtime_api.h" 3 +__attribute((deprecated)) extern cudaError_t cudaThreadGetCacheConfig(cudaFuncCache * pCacheConfig); +# 1217 "/usr/include/cuda_runtime_api.h" 3 +__attribute((deprecated)) extern cudaError_t cudaThreadSetCacheConfig(cudaFuncCache cacheConfig); +# 1278 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGetLastError(); +# 1326 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaPeekAtLastError(); +# 1342 "/usr/include/cuda_runtime_api.h" 3 +extern const char *cudaGetErrorName(cudaError_t error); +# 1358 "/usr/include/cuda_runtime_api.h" 3 +extern const char *cudaGetErrorString(cudaError_t error); +# 1386 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGetDeviceCount(int * count); +# 1659 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGetDeviceProperties(cudaDeviceProp * prop, int device); +# 1859 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaDeviceGetAttribute(int * value, cudaDeviceAttr attr, int device); +# 1877 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaDeviceGetDefaultMemPool(cudaMemPool_t * memPool, int device); +# 1901 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaDeviceSetMemPool(int device, cudaMemPool_t memPool); +# 1921 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaDeviceGetMemPool(cudaMemPool_t * memPool, int device); +# 1969 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaDeviceGetNvSciSyncAttributes(void * nvSciSyncAttrList, int device, int flags); +# 2009 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaDeviceGetP2PAttribute(int * value, cudaDeviceP2PAttr attr, int srcDevice, int dstDevice); +# 2030 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaChooseDevice(int * device, const cudaDeviceProp * prop); +# 2074 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaSetDevice(int device); +# 2095 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGetDevice(int * device); +# 2126 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaSetValidDevices(int * device_arr, int len); +# 2191 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaSetDeviceFlags(unsigned flags); +# 2235 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGetDeviceFlags(unsigned * flags); +# 2275 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaStreamCreate(cudaStream_t * pStream); +# 2307 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaStreamCreateWithFlags(cudaStream_t * pStream, unsigned flags); +# 2353 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaStreamCreateWithPriority(cudaStream_t * pStream, unsigned flags, int priority); +# 2380 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaStreamGetPriority(cudaStream_t hStream, int * priority); +# 2405 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaStreamGetFlags(cudaStream_t hStream, unsigned * flags); +# 2420 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaCtxResetPersistingL2Cache(); +# 2440 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaStreamCopyAttributes(cudaStream_t dst, cudaStream_t src); +# 2461 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaStreamGetAttribute(cudaStream_t hStream, cudaLaunchAttributeID attr, cudaLaunchAttributeValue * value_out); +# 2485 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaStreamSetAttribute(cudaStream_t hStream, cudaLaunchAttributeID attr, const cudaLaunchAttributeValue * value); +# 2519 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaStreamDestroy(cudaStream_t stream); +# 2550 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaStreamWaitEvent(cudaStream_t stream, cudaEvent_t event, unsigned flags = 0); +# 2558 +typedef void (*cudaStreamCallback_t)(cudaStream_t stream, cudaError_t status, void * userData); +# 2625 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaStreamAddCallback(cudaStream_t stream, cudaStreamCallback_t callback, void * userData, unsigned flags); +# 2649 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaStreamSynchronize(cudaStream_t stream); +# 2674 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaStreamQuery(cudaStream_t stream); +# 2758 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaStreamAttachMemAsync(cudaStream_t stream, void * devPtr, size_t length = 0, unsigned flags = 4); +# 2797 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaStreamBeginCapture(cudaStream_t stream, cudaStreamCaptureMode mode); +# 2848 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaThreadExchangeStreamCaptureMode(cudaStreamCaptureMode * mode); +# 2876 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaStreamEndCapture(cudaStream_t stream, cudaGraph_t * pGraph); +# 2914 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaStreamIsCapturing(cudaStream_t stream, cudaStreamCaptureStatus * pCaptureStatus); +# 2946 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaStreamGetCaptureInfo(cudaStream_t stream, cudaStreamCaptureStatus * pCaptureStatus, unsigned long long * pId); +# 3001 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaStreamGetCaptureInfo_v2(cudaStream_t stream, cudaStreamCaptureStatus * captureStatus_out, unsigned long long * id_out = 0, cudaGraph_t * graph_out = 0, const cudaGraphNode_t ** dependencies_out = 0, size_t * numDependencies_out = 0); +# 3034 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaStreamUpdateCaptureDependencies(cudaStream_t stream, cudaGraphNode_t * dependencies, size_t numDependencies, unsigned flags = 0); +# 3071 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaEventCreate(cudaEvent_t * event); +# 3108 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaEventCreateWithFlags(cudaEvent_t * event, unsigned flags); +# 3148 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaEventRecord(cudaEvent_t event, cudaStream_t stream = 0); +# 3195 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaEventRecordWithFlags(cudaEvent_t event, cudaStream_t stream = 0, unsigned flags = 0); +# 3227 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaEventQuery(cudaEvent_t event); +# 3257 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaEventSynchronize(cudaEvent_t event); +# 3286 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaEventDestroy(cudaEvent_t event); +# 3330 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaEventElapsedTime(float * ms, cudaEvent_t start, cudaEvent_t end); +# 3510 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaImportExternalMemory(cudaExternalMemory_t * extMem_out, const cudaExternalMemoryHandleDesc * memHandleDesc); +# 3565 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaExternalMemoryGetMappedBuffer(void ** devPtr, cudaExternalMemory_t extMem, const cudaExternalMemoryBufferDesc * bufferDesc); +# 3627 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaExternalMemoryGetMappedMipmappedArray(cudaMipmappedArray_t * mipmap, cudaExternalMemory_t extMem, const cudaExternalMemoryMipmappedArrayDesc * mipmapDesc); +# 3651 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaDestroyExternalMemory(cudaExternalMemory_t extMem); +# 3804 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaImportExternalSemaphore(cudaExternalSemaphore_t * extSem_out, const cudaExternalSemaphoreHandleDesc * semHandleDesc); +# 3871 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaSignalExternalSemaphoresAsync_v2(const cudaExternalSemaphore_t * extSemArray, const cudaExternalSemaphoreSignalParams * paramsArray, unsigned numExtSems, cudaStream_t stream = 0); +# 3947 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaWaitExternalSemaphoresAsync_v2(const cudaExternalSemaphore_t * extSemArray, const cudaExternalSemaphoreWaitParams * paramsArray, unsigned numExtSems, cudaStream_t stream = 0); +# 3970 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaDestroyExternalSemaphore(cudaExternalSemaphore_t extSem); +# 4037 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaLaunchKernel(const void * func, dim3 gridDim, dim3 blockDim, void ** args, size_t sharedMem, cudaStream_t stream); +# 4099 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaLaunchKernelExC(const cudaLaunchConfig_t * config, const void * func, void ** args); +# 4156 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaLaunchCooperativeKernel(const void * func, dim3 gridDim, dim3 blockDim, void ** args, size_t sharedMem, cudaStream_t stream); +# 4257 "/usr/include/cuda_runtime_api.h" 3 +__attribute((deprecated)) extern cudaError_t cudaLaunchCooperativeKernelMultiDevice(cudaLaunchParams * launchParamsList, unsigned numDevices, unsigned flags = 0); +# 4304 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaFuncSetCacheConfig(const void * func, cudaFuncCache cacheConfig); +# 4359 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaFuncSetSharedMemConfig(const void * func, cudaSharedMemConfig config); +# 4392 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaFuncGetAttributes(cudaFuncAttributes * attr, const void * func); +# 4429 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaFuncSetAttribute(const void * func, cudaFuncAttribute attr, int value); +# 4453 "/usr/include/cuda_runtime_api.h" 3 +__attribute((deprecated)) extern cudaError_t cudaSetDoubleForDevice(double * d); +# 4477 "/usr/include/cuda_runtime_api.h" 3 +__attribute((deprecated)) extern cudaError_t cudaSetDoubleForHost(double * d); +# 4543 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaLaunchHostFunc(cudaStream_t stream, cudaHostFn_t fn, void * userData); +# 4600 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessor(int * numBlocks, const void * func, int blockSize, size_t dynamicSMemSize); +# 4629 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaOccupancyAvailableDynamicSMemPerBlock(size_t * dynamicSmemSize, const void * func, int numBlocks, int blockSize); +# 4674 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(int * numBlocks, const void * func, int blockSize, size_t dynamicSMemSize, unsigned flags); +# 4709 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaOccupancyMaxPotentialClusterSize(int * clusterSize, const void * func, const cudaLaunchConfig_t * launchConfig); +# 4748 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaOccupancyMaxActiveClusters(int * numClusters, const void * func, const cudaLaunchConfig_t * launchConfig); +# 4868 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaMallocManaged(void ** devPtr, size_t size, unsigned flags = 1); +# 4901 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaMalloc(void ** devPtr, size_t size); +# 4934 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaMallocHost(void ** ptr, size_t size); +# 4977 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaMallocPitch(void ** devPtr, size_t * pitch, size_t width, size_t height); +# 5029 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaMallocArray(cudaArray_t * array, const cudaChannelFormatDesc * desc, size_t width, size_t height = 0, unsigned flags = 0); +# 5067 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaFree(void * devPtr); +# 5090 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaFreeHost(void * ptr); +# 5113 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaFreeArray(cudaArray_t array); +# 5136 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaFreeMipmappedArray(cudaMipmappedArray_t mipmappedArray); +# 5202 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaHostAlloc(void ** pHost, size_t size, unsigned flags); +# 5295 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaHostRegister(void * ptr, size_t size, unsigned flags); +# 5318 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaHostUnregister(void * ptr); +# 5363 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaHostGetDevicePointer(void ** pDevice, void * pHost, unsigned flags); +# 5385 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaHostGetFlags(unsigned * pFlags, void * pHost); +# 5424 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaMalloc3D(cudaPitchedPtr * pitchedDevPtr, cudaExtent extent); +# 5569 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaMalloc3DArray(cudaArray_t * array, const cudaChannelFormatDesc * desc, cudaExtent extent, unsigned flags = 0); +# 5714 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaMallocMipmappedArray(cudaMipmappedArray_t * mipmappedArray, const cudaChannelFormatDesc * desc, cudaExtent extent, unsigned numLevels, unsigned flags = 0); +# 5747 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGetMipmappedArrayLevel(cudaArray_t * levelArray, cudaMipmappedArray_const_t mipmappedArray, unsigned level); +# 5852 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaMemcpy3D(const cudaMemcpy3DParms * p); +# 5883 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaMemcpy3DPeer(const cudaMemcpy3DPeerParms * p); +# 6001 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaMemcpy3DAsync(const cudaMemcpy3DParms * p, cudaStream_t stream = 0); +# 6027 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaMemcpy3DPeerAsync(const cudaMemcpy3DPeerParms * p, cudaStream_t stream = 0); +# 6061 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaMemGetInfo(size_t * free, size_t * total); +# 6087 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaArrayGetInfo(cudaChannelFormatDesc * desc, cudaExtent * extent, unsigned * flags, cudaArray_t array); +# 6116 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaArrayGetPlane(cudaArray_t * pPlaneArray, cudaArray_t hArray, unsigned planeIdx); +# 6139 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaArrayGetMemoryRequirements(cudaArrayMemoryRequirements * memoryRequirements, cudaArray_t array, int device); +# 6163 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaMipmappedArrayGetMemoryRequirements(cudaArrayMemoryRequirements * memoryRequirements, cudaMipmappedArray_t mipmap, int device); +# 6191 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaArrayGetSparseProperties(cudaArraySparseProperties * sparseProperties, cudaArray_t array); +# 6221 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaMipmappedArrayGetSparseProperties(cudaArraySparseProperties * sparseProperties, cudaMipmappedArray_t mipmap); +# 6266 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaMemcpy(void * dst, const void * src, size_t count, cudaMemcpyKind kind); +# 6301 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaMemcpyPeer(void * dst, int dstDevice, const void * src, int srcDevice, size_t count); +# 6350 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaMemcpy2D(void * dst, size_t dpitch, const void * src, size_t spitch, size_t width, size_t height, cudaMemcpyKind kind); +# 6400 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaMemcpy2DToArray(cudaArray_t dst, size_t wOffset, size_t hOffset, const void * src, size_t spitch, size_t width, size_t height, cudaMemcpyKind kind); +# 6450 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaMemcpy2DFromArray(void * dst, size_t dpitch, cudaArray_const_t src, size_t wOffset, size_t hOffset, size_t width, size_t height, cudaMemcpyKind kind); +# 6497 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaMemcpy2DArrayToArray(cudaArray_t dst, size_t wOffsetDst, size_t hOffsetDst, cudaArray_const_t src, size_t wOffsetSrc, size_t hOffsetSrc, size_t width, size_t height, cudaMemcpyKind kind = cudaMemcpyDeviceToDevice); +# 6540 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaMemcpyToSymbol(const void * symbol, const void * src, size_t count, size_t offset = 0, cudaMemcpyKind kind = cudaMemcpyHostToDevice); +# 6583 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaMemcpyFromSymbol(void * dst, const void * symbol, size_t count, size_t offset = 0, cudaMemcpyKind kind = cudaMemcpyDeviceToHost); +# 6640 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaMemcpyAsync(void * dst, const void * src, size_t count, cudaMemcpyKind kind, cudaStream_t stream = 0); +# 6675 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaMemcpyPeerAsync(void * dst, int dstDevice, const void * src, int srcDevice, size_t count, cudaStream_t stream = 0); +# 6738 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaMemcpy2DAsync(void * dst, size_t dpitch, const void * src, size_t spitch, size_t width, size_t height, cudaMemcpyKind kind, cudaStream_t stream = 0); +# 6796 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaMemcpy2DToArrayAsync(cudaArray_t dst, size_t wOffset, size_t hOffset, const void * src, size_t spitch, size_t width, size_t height, cudaMemcpyKind kind, cudaStream_t stream = 0); +# 6853 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaMemcpy2DFromArrayAsync(void * dst, size_t dpitch, cudaArray_const_t src, size_t wOffset, size_t hOffset, size_t width, size_t height, cudaMemcpyKind kind, cudaStream_t stream = 0); +# 6904 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaMemcpyToSymbolAsync(const void * symbol, const void * src, size_t count, size_t offset, cudaMemcpyKind kind, cudaStream_t stream = 0); +# 6955 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaMemcpyFromSymbolAsync(void * dst, const void * symbol, size_t count, size_t offset, cudaMemcpyKind kind, cudaStream_t stream = 0); +# 6984 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaMemset(void * devPtr, int value, size_t count); +# 7018 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaMemset2D(void * devPtr, size_t pitch, int value, size_t width, size_t height); +# 7064 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaMemset3D(cudaPitchedPtr pitchedDevPtr, int value, cudaExtent extent); +# 7100 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaMemsetAsync(void * devPtr, int value, size_t count, cudaStream_t stream = 0); +# 7141 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaMemset2DAsync(void * devPtr, size_t pitch, int value, size_t width, size_t height, cudaStream_t stream = 0); +# 7194 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaMemset3DAsync(cudaPitchedPtr pitchedDevPtr, int value, cudaExtent extent, cudaStream_t stream = 0); +# 7222 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGetSymbolAddress(void ** devPtr, const void * symbol); +# 7249 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGetSymbolSize(size_t * size, const void * symbol); +# 7319 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaMemPrefetchAsync(const void * devPtr, size_t count, int dstDevice, cudaStream_t stream = 0); +# 7435 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaMemAdvise(const void * devPtr, size_t count, cudaMemoryAdvise advice, int device); +# 7494 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaMemRangeGetAttribute(void * data, size_t dataSize, cudaMemRangeAttribute attribute, const void * devPtr, size_t count); +# 7533 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaMemRangeGetAttributes(void ** data, size_t * dataSizes, cudaMemRangeAttribute * attributes, size_t numAttributes, const void * devPtr, size_t count); +# 7593 "/usr/include/cuda_runtime_api.h" 3 +__attribute((deprecated)) extern cudaError_t cudaMemcpyToArray(cudaArray_t dst, size_t wOffset, size_t hOffset, const void * src, size_t count, cudaMemcpyKind kind); +# 7635 "/usr/include/cuda_runtime_api.h" 3 +__attribute((deprecated)) extern cudaError_t cudaMemcpyFromArray(void * dst, cudaArray_const_t src, size_t wOffset, size_t hOffset, size_t count, cudaMemcpyKind kind); +# 7678 "/usr/include/cuda_runtime_api.h" 3 +__attribute((deprecated)) extern cudaError_t cudaMemcpyArrayToArray(cudaArray_t dst, size_t wOffsetDst, size_t hOffsetDst, cudaArray_const_t src, size_t wOffsetSrc, size_t hOffsetSrc, size_t count, cudaMemcpyKind kind = cudaMemcpyDeviceToDevice); +# 7729 "/usr/include/cuda_runtime_api.h" 3 +__attribute((deprecated)) extern cudaError_t cudaMemcpyToArrayAsync(cudaArray_t dst, size_t wOffset, size_t hOffset, const void * src, size_t count, cudaMemcpyKind kind, cudaStream_t stream = 0); +# 7779 "/usr/include/cuda_runtime_api.h" 3 +__attribute((deprecated)) extern cudaError_t cudaMemcpyFromArrayAsync(void * dst, cudaArray_const_t src, size_t wOffset, size_t hOffset, size_t count, cudaMemcpyKind kind, cudaStream_t stream = 0); +# 7848 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaMallocAsync(void ** devPtr, size_t size, cudaStream_t hStream); +# 7874 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaFreeAsync(void * devPtr, cudaStream_t hStream); +# 7899 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaMemPoolTrimTo(cudaMemPool_t memPool, size_t minBytesToKeep); +# 7943 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaMemPoolSetAttribute(cudaMemPool_t memPool, cudaMemPoolAttr attr, void * value); +# 7991 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaMemPoolGetAttribute(cudaMemPool_t memPool, cudaMemPoolAttr attr, void * value); +# 8006 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaMemPoolSetAccess(cudaMemPool_t memPool, const cudaMemAccessDesc * descList, size_t count); +# 8019 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaMemPoolGetAccess(cudaMemAccessFlags * flags, cudaMemPool_t memPool, cudaMemLocation * location); +# 8039 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaMemPoolCreate(cudaMemPool_t * memPool, const cudaMemPoolProps * poolProps); +# 8061 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaMemPoolDestroy(cudaMemPool_t memPool); +# 8097 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaMallocFromPoolAsync(void ** ptr, size_t size, cudaMemPool_t memPool, cudaStream_t stream); +# 8122 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaMemPoolExportToShareableHandle(void * shareableHandle, cudaMemPool_t memPool, cudaMemAllocationHandleType handleType, unsigned flags); +# 8149 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaMemPoolImportFromShareableHandle(cudaMemPool_t * memPool, void * shareableHandle, cudaMemAllocationHandleType handleType, unsigned flags); +# 8172 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaMemPoolExportPointer(cudaMemPoolPtrExportData * exportData, void * ptr); +# 8201 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaMemPoolImportPointer(void ** ptr, cudaMemPool_t memPool, cudaMemPoolPtrExportData * exportData); +# 8353 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaPointerGetAttributes(cudaPointerAttributes * attributes, const void * ptr); +# 8394 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaDeviceCanAccessPeer(int * canAccessPeer, int device, int peerDevice); +# 8436 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaDeviceEnablePeerAccess(int peerDevice, unsigned flags); +# 8458 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaDeviceDisablePeerAccess(int peerDevice); +# 8522 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphicsUnregisterResource(cudaGraphicsResource_t resource); +# 8557 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphicsResourceSetMapFlags(cudaGraphicsResource_t resource, unsigned flags); +# 8596 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphicsMapResources(int count, cudaGraphicsResource_t * resources, cudaStream_t stream = 0); +# 8631 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphicsUnmapResources(int count, cudaGraphicsResource_t * resources, cudaStream_t stream = 0); +# 8663 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphicsResourceGetMappedPointer(void ** devPtr, size_t * size, cudaGraphicsResource_t resource); +# 8701 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphicsSubResourceGetMappedArray(cudaArray_t * array, cudaGraphicsResource_t resource, unsigned arrayIndex, unsigned mipLevel); +# 8730 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphicsResourceGetMappedMipmappedArray(cudaMipmappedArray_t * mipmappedArray, cudaGraphicsResource_t resource); +# 8801 "/usr/include/cuda_runtime_api.h" 3 +__attribute((deprecated)) extern cudaError_t cudaBindTexture(size_t * offset, const textureReference * texref, const void * devPtr, const cudaChannelFormatDesc * desc, size_t size = ((2147483647) * 2U) + 1U); +# 8860 "/usr/include/cuda_runtime_api.h" 3 +__attribute((deprecated)) extern cudaError_t cudaBindTexture2D(size_t * offset, const textureReference * texref, const void * devPtr, const cudaChannelFormatDesc * desc, size_t width, size_t height, size_t pitch); +# 8898 "/usr/include/cuda_runtime_api.h" 3 +__attribute((deprecated)) extern cudaError_t cudaBindTextureToArray(const textureReference * texref, cudaArray_const_t array, const cudaChannelFormatDesc * desc); +# 8938 "/usr/include/cuda_runtime_api.h" 3 +__attribute((deprecated)) extern cudaError_t cudaBindTextureToMipmappedArray(const textureReference * texref, cudaMipmappedArray_const_t mipmappedArray, const cudaChannelFormatDesc * desc); +# 8964 "/usr/include/cuda_runtime_api.h" 3 +__attribute((deprecated)) extern cudaError_t cudaUnbindTexture(const textureReference * texref); +# 8993 "/usr/include/cuda_runtime_api.h" 3 +__attribute((deprecated)) extern cudaError_t cudaGetTextureAlignmentOffset(size_t * offset, const textureReference * texref); +# 9023 "/usr/include/cuda_runtime_api.h" 3 +__attribute((deprecated)) extern cudaError_t cudaGetTextureReference(const textureReference ** texref, const void * symbol); +# 9068 "/usr/include/cuda_runtime_api.h" 3 +__attribute((deprecated)) extern cudaError_t cudaBindSurfaceToArray(const surfaceReference * surfref, cudaArray_const_t array, const cudaChannelFormatDesc * desc); +# 9093 "/usr/include/cuda_runtime_api.h" 3 +__attribute((deprecated)) extern cudaError_t cudaGetSurfaceReference(const surfaceReference ** surfref, const void * symbol); +# 9128 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGetChannelDesc(cudaChannelFormatDesc * desc, cudaArray_const_t array); +# 9158 "/usr/include/cuda_runtime_api.h" 3 +extern cudaChannelFormatDesc cudaCreateChannelDesc(int x, int y, int z, int w, cudaChannelFormatKind f); +# 9375 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaCreateTextureObject(cudaTextureObject_t * pTexObject, const cudaResourceDesc * pResDesc, const cudaTextureDesc * pTexDesc, const cudaResourceViewDesc * pResViewDesc); +# 9599 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaCreateTextureObject_v2(cudaTextureObject_t * pTexObject, const cudaResourceDesc * pResDesc, const cudaTextureDesc_v2 * pTexDesc, const cudaResourceViewDesc * pResViewDesc); +# 9619 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaDestroyTextureObject(cudaTextureObject_t texObject); +# 9639 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGetTextureObjectResourceDesc(cudaResourceDesc * pResDesc, cudaTextureObject_t texObject); +# 9659 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGetTextureObjectTextureDesc(cudaTextureDesc * pTexDesc, cudaTextureObject_t texObject); +# 9679 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGetTextureObjectTextureDesc_v2(cudaTextureDesc_v2 * pTexDesc, cudaTextureObject_t texObject); +# 9700 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGetTextureObjectResourceViewDesc(cudaResourceViewDesc * pResViewDesc, cudaTextureObject_t texObject); +# 9745 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaCreateSurfaceObject(cudaSurfaceObject_t * pSurfObject, const cudaResourceDesc * pResDesc); +# 9765 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaDestroySurfaceObject(cudaSurfaceObject_t surfObject); +# 9784 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGetSurfaceObjectResourceDesc(cudaResourceDesc * pResDesc, cudaSurfaceObject_t surfObject); +# 9818 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaDriverGetVersion(int * driverVersion); +# 9843 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaRuntimeGetVersion(int * runtimeVersion); +# 9890 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphCreate(cudaGraph_t * pGraph, unsigned flags); +# 9987 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphAddKernelNode(cudaGraphNode_t * pGraphNode, cudaGraph_t graph, const cudaGraphNode_t * pDependencies, size_t numDependencies, const cudaKernelNodeParams * pNodeParams); +# 10020 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphKernelNodeGetParams(cudaGraphNode_t node, cudaKernelNodeParams * pNodeParams); +# 10045 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphKernelNodeSetParams(cudaGraphNode_t node, const cudaKernelNodeParams * pNodeParams); +# 10065 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphKernelNodeCopyAttributes(cudaGraphNode_t hSrc, cudaGraphNode_t hDst); +# 10088 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphKernelNodeGetAttribute(cudaGraphNode_t hNode, cudaLaunchAttributeID attr, cudaLaunchAttributeValue * value_out); +# 10112 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphKernelNodeSetAttribute(cudaGraphNode_t hNode, cudaLaunchAttributeID attr, const cudaLaunchAttributeValue * value); +# 10162 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphAddMemcpyNode(cudaGraphNode_t * pGraphNode, cudaGraph_t graph, const cudaGraphNode_t * pDependencies, size_t numDependencies, const cudaMemcpy3DParms * pCopyParams); +# 10221 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphAddMemcpyNodeToSymbol(cudaGraphNode_t * pGraphNode, cudaGraph_t graph, const cudaGraphNode_t * pDependencies, size_t numDependencies, const void * symbol, const void * src, size_t count, size_t offset, cudaMemcpyKind kind); +# 10290 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphAddMemcpyNodeFromSymbol(cudaGraphNode_t * pGraphNode, cudaGraph_t graph, const cudaGraphNode_t * pDependencies, size_t numDependencies, void * dst, const void * symbol, size_t count, size_t offset, cudaMemcpyKind kind); +# 10358 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphAddMemcpyNode1D(cudaGraphNode_t * pGraphNode, cudaGraph_t graph, const cudaGraphNode_t * pDependencies, size_t numDependencies, void * dst, const void * src, size_t count, cudaMemcpyKind kind); +# 10390 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphMemcpyNodeGetParams(cudaGraphNode_t node, cudaMemcpy3DParms * pNodeParams); +# 10416 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphMemcpyNodeSetParams(cudaGraphNode_t node, const cudaMemcpy3DParms * pNodeParams); +# 10455 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphMemcpyNodeSetParamsToSymbol(cudaGraphNode_t node, const void * symbol, const void * src, size_t count, size_t offset, cudaMemcpyKind kind); +# 10501 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphMemcpyNodeSetParamsFromSymbol(cudaGraphNode_t node, void * dst, const void * symbol, size_t count, size_t offset, cudaMemcpyKind kind); +# 10547 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphMemcpyNodeSetParams1D(cudaGraphNode_t node, void * dst, const void * src, size_t count, cudaMemcpyKind kind); +# 10594 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphAddMemsetNode(cudaGraphNode_t * pGraphNode, cudaGraph_t graph, const cudaGraphNode_t * pDependencies, size_t numDependencies, const cudaMemsetParams * pMemsetParams); +# 10617 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphMemsetNodeGetParams(cudaGraphNode_t node, cudaMemsetParams * pNodeParams); +# 10640 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphMemsetNodeSetParams(cudaGraphNode_t node, const cudaMemsetParams * pNodeParams); +# 10681 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphAddHostNode(cudaGraphNode_t * pGraphNode, cudaGraph_t graph, const cudaGraphNode_t * pDependencies, size_t numDependencies, const cudaHostNodeParams * pNodeParams); +# 10704 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphHostNodeGetParams(cudaGraphNode_t node, cudaHostNodeParams * pNodeParams); +# 10727 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphHostNodeSetParams(cudaGraphNode_t node, const cudaHostNodeParams * pNodeParams); +# 10767 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphAddChildGraphNode(cudaGraphNode_t * pGraphNode, cudaGraph_t graph, const cudaGraphNode_t * pDependencies, size_t numDependencies, cudaGraph_t childGraph); +# 10794 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphChildGraphNodeGetGraph(cudaGraphNode_t node, cudaGraph_t * pGraph); +# 10831 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphAddEmptyNode(cudaGraphNode_t * pGraphNode, cudaGraph_t graph, const cudaGraphNode_t * pDependencies, size_t numDependencies); +# 10874 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphAddEventRecordNode(cudaGraphNode_t * pGraphNode, cudaGraph_t graph, const cudaGraphNode_t * pDependencies, size_t numDependencies, cudaEvent_t event); +# 10901 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphEventRecordNodeGetEvent(cudaGraphNode_t node, cudaEvent_t * event_out); +# 10928 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphEventRecordNodeSetEvent(cudaGraphNode_t node, cudaEvent_t event); +# 10974 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphAddEventWaitNode(cudaGraphNode_t * pGraphNode, cudaGraph_t graph, const cudaGraphNode_t * pDependencies, size_t numDependencies, cudaEvent_t event); +# 11001 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphEventWaitNodeGetEvent(cudaGraphNode_t node, cudaEvent_t * event_out); +# 11028 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphEventWaitNodeSetEvent(cudaGraphNode_t node, cudaEvent_t event); +# 11077 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphAddExternalSemaphoresSignalNode(cudaGraphNode_t * pGraphNode, cudaGraph_t graph, const cudaGraphNode_t * pDependencies, size_t numDependencies, const cudaExternalSemaphoreSignalNodeParams * nodeParams); +# 11110 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphExternalSemaphoresSignalNodeGetParams(cudaGraphNode_t hNode, cudaExternalSemaphoreSignalNodeParams * params_out); +# 11137 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphExternalSemaphoresSignalNodeSetParams(cudaGraphNode_t hNode, const cudaExternalSemaphoreSignalNodeParams * nodeParams); +# 11186 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphAddExternalSemaphoresWaitNode(cudaGraphNode_t * pGraphNode, cudaGraph_t graph, const cudaGraphNode_t * pDependencies, size_t numDependencies, const cudaExternalSemaphoreWaitNodeParams * nodeParams); +# 11219 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphExternalSemaphoresWaitNodeGetParams(cudaGraphNode_t hNode, cudaExternalSemaphoreWaitNodeParams * params_out); +# 11246 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphExternalSemaphoresWaitNodeSetParams(cudaGraphNode_t hNode, const cudaExternalSemaphoreWaitNodeParams * nodeParams); +# 11323 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphAddMemAllocNode(cudaGraphNode_t * pGraphNode, cudaGraph_t graph, const cudaGraphNode_t * pDependencies, size_t numDependencies, cudaMemAllocNodeParams * nodeParams); +# 11350 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphMemAllocNodeGetParams(cudaGraphNode_t node, cudaMemAllocNodeParams * params_out); +# 11410 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphAddMemFreeNode(cudaGraphNode_t * pGraphNode, cudaGraph_t graph, const cudaGraphNode_t * pDependencies, size_t numDependencies, void * dptr); +# 11434 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphMemFreeNodeGetParams(cudaGraphNode_t node, void * dptr_out); +# 11462 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaDeviceGraphMemTrim(int device); +# 11499 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaDeviceGetGraphMemAttribute(int device, cudaGraphMemAttributeType attr, void * value); +# 11533 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaDeviceSetGraphMemAttribute(int device, cudaGraphMemAttributeType attr, void * value); +# 11561 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphClone(cudaGraph_t * pGraphClone, cudaGraph_t originalGraph); +# 11589 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphNodeFindInClone(cudaGraphNode_t * pNode, cudaGraphNode_t originalNode, cudaGraph_t clonedGraph); +# 11620 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphNodeGetType(cudaGraphNode_t node, cudaGraphNodeType * pType); +# 11651 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphGetNodes(cudaGraph_t graph, cudaGraphNode_t * nodes, size_t * numNodes); +# 11682 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphGetRootNodes(cudaGraph_t graph, cudaGraphNode_t * pRootNodes, size_t * pNumRootNodes); +# 11716 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphGetEdges(cudaGraph_t graph, cudaGraphNode_t * from, cudaGraphNode_t * to, size_t * numEdges); +# 11747 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphNodeGetDependencies(cudaGraphNode_t node, cudaGraphNode_t * pDependencies, size_t * pNumDependencies); +# 11779 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphNodeGetDependentNodes(cudaGraphNode_t node, cudaGraphNode_t * pDependentNodes, size_t * pNumDependentNodes); +# 11810 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphAddDependencies(cudaGraph_t graph, const cudaGraphNode_t * from, const cudaGraphNode_t * to, size_t numDependencies); +# 11841 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphRemoveDependencies(cudaGraph_t graph, const cudaGraphNode_t * from, const cudaGraphNode_t * to, size_t numDependencies); +# 11871 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphDestroyNode(cudaGraphNode_t node); +# 11909 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphInstantiate(cudaGraphExec_t * pGraphExec, cudaGraph_t graph, cudaGraphNode_t * pErrorNode, char * pLogBuffer, size_t bufferSize); +# 11957 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphInstantiateWithFlags(cudaGraphExec_t * pGraphExec, cudaGraph_t graph, unsigned long long flags); +# 12001 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphExecKernelNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, const cudaKernelNodeParams * pNodeParams); +# 12051 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphExecMemcpyNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, const cudaMemcpy3DParms * pNodeParams); +# 12106 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphExecMemcpyNodeSetParamsToSymbol(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, const void * symbol, const void * src, size_t count, size_t offset, cudaMemcpyKind kind); +# 12169 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphExecMemcpyNodeSetParamsFromSymbol(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, void * dst, const void * symbol, size_t count, size_t offset, cudaMemcpyKind kind); +# 12230 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphExecMemcpyNodeSetParams1D(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, void * dst, const void * src, size_t count, cudaMemcpyKind kind); +# 12284 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphExecMemsetNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, const cudaMemsetParams * pNodeParams); +# 12323 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphExecHostNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, const cudaHostNodeParams * pNodeParams); +# 12369 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphExecChildGraphNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t node, cudaGraph_t childGraph); +# 12413 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphExecEventRecordNodeSetEvent(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, cudaEvent_t event); +# 12457 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphExecEventWaitNodeSetEvent(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, cudaEvent_t event); +# 12504 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphExecExternalSemaphoresSignalNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, const cudaExternalSemaphoreSignalNodeParams * nodeParams); +# 12551 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphExecExternalSemaphoresWaitNodeSetParams(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, const cudaExternalSemaphoreWaitNodeParams * nodeParams); +# 12591 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphNodeSetEnabled(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, unsigned isEnabled); +# 12625 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphNodeGetEnabled(cudaGraphExec_t hGraphExec, cudaGraphNode_t hNode, unsigned * isEnabled); +# 12706 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphExecUpdate(cudaGraphExec_t hGraphExec, cudaGraph_t hGraph, cudaGraphNode_t * hErrorNode_out, cudaGraphExecUpdateResult * updateResult_out); +# 12731 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphUpload(cudaGraphExec_t graphExec, cudaStream_t stream); +# 12762 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphLaunch(cudaGraphExec_t graphExec, cudaStream_t stream); +# 12785 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphExecDestroy(cudaGraphExec_t graphExec); +# 12806 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphDestroy(cudaGraph_t graph); +# 12825 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphDebugDotPrint(cudaGraph_t graph, const char * path, unsigned flags); +# 12861 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaUserObjectCreate(cudaUserObject_t * object_out, void * ptr, cudaHostFn_t destroy, unsigned initialRefcount, unsigned flags); +# 12885 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaUserObjectRetain(cudaUserObject_t object, unsigned count = 1); +# 12913 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaUserObjectRelease(cudaUserObject_t object, unsigned count = 1); +# 12941 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphRetainUserObject(cudaGraph_t graph, cudaUserObject_t object, unsigned count = 1, unsigned flags = 0); +# 12966 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGraphReleaseUserObject(cudaGraph_t graph, cudaUserObject_t object, unsigned count = 1); +# 13032 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGetDriverEntryPoint(const char * symbol, void ** funcPtr, unsigned long long flags); +# 13037 +extern cudaError_t cudaGetExportTable(const void ** ppExportTable, const cudaUUID_t * pExportTableId); +# 13213 "/usr/include/cuda_runtime_api.h" 3 +extern cudaError_t cudaGetFuncBySymbol(cudaFunction_t * functionPtr, const void * symbolPtr); +# 13365 "/usr/include/cuda_runtime_api.h" 3 +} +# 124 "/usr/include/channel_descriptor.h" 3 +template< class T> inline cudaChannelFormatDesc cudaCreateChannelDesc() +# 125 +{ +# 126 +return cudaCreateChannelDesc(0, 0, 0, 0, cudaChannelFormatKindNone); +# 127 +} +# 129 +static inline cudaChannelFormatDesc cudaCreateChannelDescHalf() +# 130 +{ +# 131 +int e = (((int)sizeof(unsigned short)) * 8); +# 133 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindFloat); +# 134 +} +# 136 +static inline cudaChannelFormatDesc cudaCreateChannelDescHalf1() +# 137 +{ +# 138 +int e = (((int)sizeof(unsigned short)) * 8); +# 140 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindFloat); +# 141 +} +# 143 +static inline cudaChannelFormatDesc cudaCreateChannelDescHalf2() +# 144 +{ +# 145 +int e = (((int)sizeof(unsigned short)) * 8); +# 147 +return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindFloat); +# 148 +} +# 150 +static inline cudaChannelFormatDesc cudaCreateChannelDescHalf4() +# 151 +{ +# 152 +int e = (((int)sizeof(unsigned short)) * 8); +# 154 +return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindFloat); +# 155 +} +# 157 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< char> () +# 158 +{ +# 159 +int e = (((int)sizeof(char)) * 8); +# 164 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +# 166 +} +# 168 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< signed char> () +# 169 +{ +# 170 +int e = (((int)sizeof(signed char)) * 8); +# 172 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +# 173 +} +# 175 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< unsigned char> () +# 176 +{ +# 177 +int e = (((int)sizeof(unsigned char)) * 8); +# 179 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +# 180 +} +# 182 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< char1> () +# 183 +{ +# 184 +int e = (((int)sizeof(signed char)) * 8); +# 186 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +# 187 +} +# 189 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< uchar1> () +# 190 +{ +# 191 +int e = (((int)sizeof(unsigned char)) * 8); +# 193 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +# 194 +} +# 196 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< char2> () +# 197 +{ +# 198 +int e = (((int)sizeof(signed char)) * 8); +# 200 +return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindSigned); +# 201 +} +# 203 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< uchar2> () +# 204 +{ +# 205 +int e = (((int)sizeof(unsigned char)) * 8); +# 207 +return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindUnsigned); +# 208 +} +# 210 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< char4> () +# 211 +{ +# 212 +int e = (((int)sizeof(signed char)) * 8); +# 214 +return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindSigned); +# 215 +} +# 217 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< uchar4> () +# 218 +{ +# 219 +int e = (((int)sizeof(unsigned char)) * 8); +# 221 +return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindUnsigned); +# 222 +} +# 224 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< short> () +# 225 +{ +# 226 +int e = (((int)sizeof(short)) * 8); +# 228 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +# 229 +} +# 231 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< unsigned short> () +# 232 +{ +# 233 +int e = (((int)sizeof(unsigned short)) * 8); +# 235 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +# 236 +} +# 238 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< short1> () +# 239 +{ +# 240 +int e = (((int)sizeof(short)) * 8); +# 242 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +# 243 +} +# 245 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< ushort1> () +# 246 +{ +# 247 +int e = (((int)sizeof(unsigned short)) * 8); +# 249 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +# 250 +} +# 252 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< short2> () +# 253 +{ +# 254 +int e = (((int)sizeof(short)) * 8); +# 256 +return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindSigned); +# 257 +} +# 259 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< ushort2> () +# 260 +{ +# 261 +int e = (((int)sizeof(unsigned short)) * 8); +# 263 +return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindUnsigned); +# 264 +} +# 266 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< short4> () +# 267 +{ +# 268 +int e = (((int)sizeof(short)) * 8); +# 270 +return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindSigned); +# 271 +} +# 273 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< ushort4> () +# 274 +{ +# 275 +int e = (((int)sizeof(unsigned short)) * 8); +# 277 +return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindUnsigned); +# 278 +} +# 280 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< int> () +# 281 +{ +# 282 +int e = (((int)sizeof(int)) * 8); +# 284 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +# 285 +} +# 287 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< unsigned> () +# 288 +{ +# 289 +int e = (((int)sizeof(unsigned)) * 8); +# 291 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +# 292 +} +# 294 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< int1> () +# 295 +{ +# 296 +int e = (((int)sizeof(int)) * 8); +# 298 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindSigned); +# 299 +} +# 301 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< uint1> () +# 302 +{ +# 303 +int e = (((int)sizeof(unsigned)) * 8); +# 305 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindUnsigned); +# 306 +} +# 308 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< int2> () +# 309 +{ +# 310 +int e = (((int)sizeof(int)) * 8); +# 312 +return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindSigned); +# 313 +} +# 315 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< uint2> () +# 316 +{ +# 317 +int e = (((int)sizeof(unsigned)) * 8); +# 319 +return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindUnsigned); +# 320 +} +# 322 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< int4> () +# 323 +{ +# 324 +int e = (((int)sizeof(int)) * 8); +# 326 +return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindSigned); +# 327 +} +# 329 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< uint4> () +# 330 +{ +# 331 +int e = (((int)sizeof(unsigned)) * 8); +# 333 +return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindUnsigned); +# 334 +} +# 396 "/usr/include/channel_descriptor.h" 3 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< float> () +# 397 +{ +# 398 +int e = (((int)sizeof(float)) * 8); +# 400 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindFloat); +# 401 +} +# 403 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< float1> () +# 404 +{ +# 405 +int e = (((int)sizeof(float)) * 8); +# 407 +return cudaCreateChannelDesc(e, 0, 0, 0, cudaChannelFormatKindFloat); +# 408 +} +# 410 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< float2> () +# 411 +{ +# 412 +int e = (((int)sizeof(float)) * 8); +# 414 +return cudaCreateChannelDesc(e, e, 0, 0, cudaChannelFormatKindFloat); +# 415 +} +# 417 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< float4> () +# 418 +{ +# 419 +int e = (((int)sizeof(float)) * 8); +# 421 +return cudaCreateChannelDesc(e, e, e, e, cudaChannelFormatKindFloat); +# 422 +} +# 424 +static inline cudaChannelFormatDesc cudaCreateChannelDescNV12() +# 425 +{ +# 426 +int e = (((int)sizeof(char)) * 8); +# 428 +return cudaCreateChannelDesc(e, e, e, 0, cudaChannelFormatKindNV12); +# 429 +} +# 431 +template< cudaChannelFormatKind > inline cudaChannelFormatDesc cudaCreateChannelDesc() +# 432 +{ +# 433 +return cudaCreateChannelDesc(0, 0, 0, 0, cudaChannelFormatKindNone); +# 434 +} +# 437 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindSignedNormalized8X1> () +# 438 +{ +# 439 +return cudaCreateChannelDesc(8, 0, 0, 0, cudaChannelFormatKindSignedNormalized8X1); +# 440 +} +# 442 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindSignedNormalized8X2> () +# 443 +{ +# 444 +return cudaCreateChannelDesc(8, 8, 0, 0, cudaChannelFormatKindSignedNormalized8X2); +# 445 +} +# 447 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindSignedNormalized8X4> () +# 448 +{ +# 449 +return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindSignedNormalized8X4); +# 450 +} +# 453 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedNormalized8X1> () +# 454 +{ +# 455 +return cudaCreateChannelDesc(8, 0, 0, 0, cudaChannelFormatKindUnsignedNormalized8X1); +# 456 +} +# 458 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedNormalized8X2> () +# 459 +{ +# 460 +return cudaCreateChannelDesc(8, 8, 0, 0, cudaChannelFormatKindUnsignedNormalized8X2); +# 461 +} +# 463 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedNormalized8X4> () +# 464 +{ +# 465 +return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedNormalized8X4); +# 466 +} +# 469 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindSignedNormalized16X1> () +# 470 +{ +# 471 +return cudaCreateChannelDesc(16, 0, 0, 0, cudaChannelFormatKindSignedNormalized16X1); +# 472 +} +# 474 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindSignedNormalized16X2> () +# 475 +{ +# 476 +return cudaCreateChannelDesc(16, 16, 0, 0, cudaChannelFormatKindSignedNormalized16X2); +# 477 +} +# 479 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindSignedNormalized16X4> () +# 480 +{ +# 481 +return cudaCreateChannelDesc(16, 16, 16, 16, cudaChannelFormatKindSignedNormalized16X4); +# 482 +} +# 485 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedNormalized16X1> () +# 486 +{ +# 487 +return cudaCreateChannelDesc(16, 0, 0, 0, cudaChannelFormatKindUnsignedNormalized16X1); +# 488 +} +# 490 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedNormalized16X2> () +# 491 +{ +# 492 +return cudaCreateChannelDesc(16, 16, 0, 0, cudaChannelFormatKindUnsignedNormalized16X2); +# 493 +} +# 495 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedNormalized16X4> () +# 496 +{ +# 497 +return cudaCreateChannelDesc(16, 16, 16, 16, cudaChannelFormatKindUnsignedNormalized16X4); +# 498 +} +# 501 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindNV12> () +# 502 +{ +# 503 +return cudaCreateChannelDesc(8, 8, 8, 0, cudaChannelFormatKindNV12); +# 504 +} +# 507 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedBlockCompressed1> () +# 508 +{ +# 509 +return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed1); +# 510 +} +# 513 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedBlockCompressed1SRGB> () +# 514 +{ +# 515 +return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed1SRGB); +# 516 +} +# 519 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedBlockCompressed2> () +# 520 +{ +# 521 +return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed2); +# 522 +} +# 525 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedBlockCompressed2SRGB> () +# 526 +{ +# 527 +return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed2SRGB); +# 528 +} +# 531 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedBlockCompressed3> () +# 532 +{ +# 533 +return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed3); +# 534 +} +# 537 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedBlockCompressed3SRGB> () +# 538 +{ +# 539 +return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed3SRGB); +# 540 +} +# 543 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedBlockCompressed4> () +# 544 +{ +# 545 +return cudaCreateChannelDesc(8, 0, 0, 0, cudaChannelFormatKindUnsignedBlockCompressed4); +# 546 +} +# 549 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindSignedBlockCompressed4> () +# 550 +{ +# 551 +return cudaCreateChannelDesc(8, 0, 0, 0, cudaChannelFormatKindSignedBlockCompressed4); +# 552 +} +# 555 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedBlockCompressed5> () +# 556 +{ +# 557 +return cudaCreateChannelDesc(8, 8, 0, 0, cudaChannelFormatKindUnsignedBlockCompressed5); +# 558 +} +# 561 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindSignedBlockCompressed5> () +# 562 +{ +# 563 +return cudaCreateChannelDesc(8, 8, 0, 0, cudaChannelFormatKindSignedBlockCompressed5); +# 564 +} +# 567 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedBlockCompressed6H> () +# 568 +{ +# 569 +return cudaCreateChannelDesc(16, 16, 16, 0, cudaChannelFormatKindUnsignedBlockCompressed6H); +# 570 +} +# 573 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindSignedBlockCompressed6H> () +# 574 +{ +# 575 +return cudaCreateChannelDesc(16, 16, 16, 0, cudaChannelFormatKindSignedBlockCompressed6H); +# 576 +} +# 579 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedBlockCompressed7> () +# 580 +{ +# 581 +return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed7); +# 582 +} +# 585 +template<> inline cudaChannelFormatDesc cudaCreateChannelDesc< cudaChannelFormatKindUnsignedBlockCompressed7SRGB> () +# 586 +{ +# 587 +return cudaCreateChannelDesc(8, 8, 8, 8, cudaChannelFormatKindUnsignedBlockCompressed7SRGB); +# 588 +} +# 79 "/usr/include/driver_functions.h" 3 +static inline cudaPitchedPtr make_cudaPitchedPtr(void *d, size_t p, size_t xsz, size_t ysz) +# 80 +{ +# 81 +cudaPitchedPtr s; +# 83 +(s.ptr) = d; +# 84 +(s.pitch) = p; +# 85 +(s.xsize) = xsz; +# 86 +(s.ysize) = ysz; +# 88 +return s; +# 89 +} +# 106 "/usr/include/driver_functions.h" 3 +static inline cudaPos make_cudaPos(size_t x, size_t y, size_t z) +# 107 +{ +# 108 +cudaPos p; +# 110 +(p.x) = x; +# 111 +(p.y) = y; +# 112 +(p.z) = z; +# 114 +return p; +# 115 +} +# 132 "/usr/include/driver_functions.h" 3 +static inline cudaExtent make_cudaExtent(size_t w, size_t h, size_t d) +# 133 +{ +# 134 +cudaExtent e; +# 136 +(e.width) = w; +# 137 +(e.height) = h; +# 138 +(e.depth) = d; +# 140 +return e; +# 141 +} +# 73 "/usr/include/vector_functions.h" 3 +static inline char1 make_char1(signed char x); +# 75 +static inline uchar1 make_uchar1(unsigned char x); +# 77 +static inline char2 make_char2(signed char x, signed char y); +# 79 +static inline uchar2 make_uchar2(unsigned char x, unsigned char y); +# 81 +static inline char3 make_char3(signed char x, signed char y, signed char z); +# 83 +static inline uchar3 make_uchar3(unsigned char x, unsigned char y, unsigned char z); +# 85 +static inline char4 make_char4(signed char x, signed char y, signed char z, signed char w); +# 87 +static inline uchar4 make_uchar4(unsigned char x, unsigned char y, unsigned char z, unsigned char w); +# 89 +static inline short1 make_short1(short x); +# 91 +static inline ushort1 make_ushort1(unsigned short x); +# 93 +static inline short2 make_short2(short x, short y); +# 95 +static inline ushort2 make_ushort2(unsigned short x, unsigned short y); +# 97 +static inline short3 make_short3(short x, short y, short z); +# 99 +static inline ushort3 make_ushort3(unsigned short x, unsigned short y, unsigned short z); +# 101 +static inline short4 make_short4(short x, short y, short z, short w); +# 103 +static inline ushort4 make_ushort4(unsigned short x, unsigned short y, unsigned short z, unsigned short w); +# 105 +static inline int1 make_int1(int x); +# 107 +static inline uint1 make_uint1(unsigned x); +# 109 +static inline int2 make_int2(int x, int y); +# 111 +static inline uint2 make_uint2(unsigned x, unsigned y); +# 113 +static inline int3 make_int3(int x, int y, int z); +# 115 +static inline uint3 make_uint3(unsigned x, unsigned y, unsigned z); +# 117 +static inline int4 make_int4(int x, int y, int z, int w); +# 119 +static inline uint4 make_uint4(unsigned x, unsigned y, unsigned z, unsigned w); +# 121 +static inline long1 make_long1(long x); +# 123 +static inline ulong1 make_ulong1(unsigned long x); +# 125 +static inline long2 make_long2(long x, long y); +# 127 +static inline ulong2 make_ulong2(unsigned long x, unsigned long y); +# 129 +static inline long3 make_long3(long x, long y, long z); +# 131 +static inline ulong3 make_ulong3(unsigned long x, unsigned long y, unsigned long z); +# 133 +static inline long4 make_long4(long x, long y, long z, long w); +# 135 +static inline ulong4 make_ulong4(unsigned long x, unsigned long y, unsigned long z, unsigned long w); +# 137 +static inline float1 make_float1(float x); +# 139 +static inline float2 make_float2(float x, float y); +# 141 +static inline float3 make_float3(float x, float y, float z); +# 143 +static inline float4 make_float4(float x, float y, float z, float w); +# 145 +static inline longlong1 make_longlong1(long long x); +# 147 +static inline ulonglong1 make_ulonglong1(unsigned long long x); +# 149 +static inline longlong2 make_longlong2(long long x, long long y); +# 151 +static inline ulonglong2 make_ulonglong2(unsigned long long x, unsigned long long y); +# 153 +static inline longlong3 make_longlong3(long long x, long long y, long long z); +# 155 +static inline ulonglong3 make_ulonglong3(unsigned long long x, unsigned long long y, unsigned long long z); +# 157 +static inline longlong4 make_longlong4(long long x, long long y, long long z, long long w); +# 159 +static inline ulonglong4 make_ulonglong4(unsigned long long x, unsigned long long y, unsigned long long z, unsigned long long w); +# 161 +static inline double1 make_double1(double x); +# 163 +static inline double2 make_double2(double x, double y); +# 165 +static inline double3 make_double3(double x, double y, double z); +# 167 +static inline double4 make_double4(double x, double y, double z, double w); +# 73 "/usr/include/vector_functions.hpp" 3 +static inline char1 make_char1(signed char x) +# 74 +{ +# 75 +char1 t; (t.x) = x; return t; +# 76 +} +# 78 +static inline uchar1 make_uchar1(unsigned char x) +# 79 +{ +# 80 +uchar1 t; (t.x) = x; return t; +# 81 +} +# 83 +static inline char2 make_char2(signed char x, signed char y) +# 84 +{ +# 85 +char2 t; (t.x) = x; (t.y) = y; return t; +# 86 +} +# 88 +static inline uchar2 make_uchar2(unsigned char x, unsigned char y) +# 89 +{ +# 90 +uchar2 t; (t.x) = x; (t.y) = y; return t; +# 91 +} +# 93 +static inline char3 make_char3(signed char x, signed char y, signed char z) +# 94 +{ +# 95 +char3 t; (t.x) = x; (t.y) = y; (t.z) = z; return t; +# 96 +} +# 98 +static inline uchar3 make_uchar3(unsigned char x, unsigned char y, unsigned char z) +# 99 +{ +# 100 +uchar3 t; (t.x) = x; (t.y) = y; (t.z) = z; return t; +# 101 +} +# 103 +static inline char4 make_char4(signed char x, signed char y, signed char z, signed char w) +# 104 +{ +# 105 +char4 t; (t.x) = x; (t.y) = y; (t.z) = z; (t.w) = w; return t; +# 106 +} +# 108 +static inline uchar4 make_uchar4(unsigned char x, unsigned char y, unsigned char z, unsigned char w) +# 109 +{ +# 110 +uchar4 t; (t.x) = x; (t.y) = y; (t.z) = z; (t.w) = w; return t; +# 111 +} +# 113 +static inline short1 make_short1(short x) +# 114 +{ +# 115 +short1 t; (t.x) = x; return t; +# 116 +} +# 118 +static inline ushort1 make_ushort1(unsigned short x) +# 119 +{ +# 120 +ushort1 t; (t.x) = x; return t; +# 121 +} +# 123 +static inline short2 make_short2(short x, short y) +# 124 +{ +# 125 +short2 t; (t.x) = x; (t.y) = y; return t; +# 126 +} +# 128 +static inline ushort2 make_ushort2(unsigned short x, unsigned short y) +# 129 +{ +# 130 +ushort2 t; (t.x) = x; (t.y) = y; return t; +# 131 +} +# 133 +static inline short3 make_short3(short x, short y, short z) +# 134 +{ +# 135 +short3 t; (t.x) = x; (t.y) = y; (t.z) = z; return t; +# 136 +} +# 138 +static inline ushort3 make_ushort3(unsigned short x, unsigned short y, unsigned short z) +# 139 +{ +# 140 +ushort3 t; (t.x) = x; (t.y) = y; (t.z) = z; return t; +# 141 +} +# 143 +static inline short4 make_short4(short x, short y, short z, short w) +# 144 +{ +# 145 +short4 t; (t.x) = x; (t.y) = y; (t.z) = z; (t.w) = w; return t; +# 146 +} +# 148 +static inline ushort4 make_ushort4(unsigned short x, unsigned short y, unsigned short z, unsigned short w) +# 149 +{ +# 150 +ushort4 t; (t.x) = x; (t.y) = y; (t.z) = z; (t.w) = w; return t; +# 151 +} +# 153 +static inline int1 make_int1(int x) +# 154 +{ +# 155 +int1 t; (t.x) = x; return t; +# 156 +} +# 158 +static inline uint1 make_uint1(unsigned x) +# 159 +{ +# 160 +uint1 t; (t.x) = x; return t; +# 161 +} +# 163 +static inline int2 make_int2(int x, int y) +# 164 +{ +# 165 +int2 t; (t.x) = x; (t.y) = y; return t; +# 166 +} +# 168 +static inline uint2 make_uint2(unsigned x, unsigned y) +# 169 +{ +# 170 +uint2 t; (t.x) = x; (t.y) = y; return t; +# 171 +} +# 173 +static inline int3 make_int3(int x, int y, int z) +# 174 +{ +# 175 +int3 t; (t.x) = x; (t.y) = y; (t.z) = z; return t; +# 176 +} +# 178 +static inline uint3 make_uint3(unsigned x, unsigned y, unsigned z) +# 179 +{ +# 180 +uint3 t; (t.x) = x; (t.y) = y; (t.z) = z; return t; +# 181 +} +# 183 +static inline int4 make_int4(int x, int y, int z, int w) +# 184 +{ +# 185 +int4 t; (t.x) = x; (t.y) = y; (t.z) = z; (t.w) = w; return t; +# 186 +} +# 188 +static inline uint4 make_uint4(unsigned x, unsigned y, unsigned z, unsigned w) +# 189 +{ +# 190 +uint4 t; (t.x) = x; (t.y) = y; (t.z) = z; (t.w) = w; return t; +# 191 +} +# 193 +static inline long1 make_long1(long x) +# 194 +{ +# 195 +long1 t; (t.x) = x; return t; +# 196 +} +# 198 +static inline ulong1 make_ulong1(unsigned long x) +# 199 +{ +# 200 +ulong1 t; (t.x) = x; return t; +# 201 +} +# 203 +static inline long2 make_long2(long x, long y) +# 204 +{ +# 205 +long2 t; (t.x) = x; (t.y) = y; return t; +# 206 +} +# 208 +static inline ulong2 make_ulong2(unsigned long x, unsigned long y) +# 209 +{ +# 210 +ulong2 t; (t.x) = x; (t.y) = y; return t; +# 211 +} +# 213 +static inline long3 make_long3(long x, long y, long z) +# 214 +{ +# 215 +long3 t; (t.x) = x; (t.y) = y; (t.z) = z; return t; +# 216 +} +# 218 +static inline ulong3 make_ulong3(unsigned long x, unsigned long y, unsigned long z) +# 219 +{ +# 220 +ulong3 t; (t.x) = x; (t.y) = y; (t.z) = z; return t; +# 221 +} +# 223 +static inline long4 make_long4(long x, long y, long z, long w) +# 224 +{ +# 225 +long4 t; (t.x) = x; (t.y) = y; (t.z) = z; (t.w) = w; return t; +# 226 +} +# 228 +static inline ulong4 make_ulong4(unsigned long x, unsigned long y, unsigned long z, unsigned long w) +# 229 +{ +# 230 +ulong4 t; (t.x) = x; (t.y) = y; (t.z) = z; (t.w) = w; return t; +# 231 +} +# 233 +static inline float1 make_float1(float x) +# 234 +{ +# 235 +float1 t; (t.x) = x; return t; +# 236 +} +# 238 +static inline float2 make_float2(float x, float y) +# 239 +{ +# 240 +float2 t; (t.x) = x; (t.y) = y; return t; +# 241 +} +# 243 +static inline float3 make_float3(float x, float y, float z) +# 244 +{ +# 245 +float3 t; (t.x) = x; (t.y) = y; (t.z) = z; return t; +# 246 +} +# 248 +static inline float4 make_float4(float x, float y, float z, float w) +# 249 +{ +# 250 +float4 t; (t.x) = x; (t.y) = y; (t.z) = z; (t.w) = w; return t; +# 251 +} +# 253 +static inline longlong1 make_longlong1(long long x) +# 254 +{ +# 255 +longlong1 t; (t.x) = x; return t; +# 256 +} +# 258 +static inline ulonglong1 make_ulonglong1(unsigned long long x) +# 259 +{ +# 260 +ulonglong1 t; (t.x) = x; return t; +# 261 +} +# 263 +static inline longlong2 make_longlong2(long long x, long long y) +# 264 +{ +# 265 +longlong2 t; (t.x) = x; (t.y) = y; return t; +# 266 +} +# 268 +static inline ulonglong2 make_ulonglong2(unsigned long long x, unsigned long long y) +# 269 +{ +# 270 +ulonglong2 t; (t.x) = x; (t.y) = y; return t; +# 271 +} +# 273 +static inline longlong3 make_longlong3(long long x, long long y, long long z) +# 274 +{ +# 275 +longlong3 t; (t.x) = x; (t.y) = y; (t.z) = z; return t; +# 276 +} +# 278 +static inline ulonglong3 make_ulonglong3(unsigned long long x, unsigned long long y, unsigned long long z) +# 279 +{ +# 280 +ulonglong3 t; (t.x) = x; (t.y) = y; (t.z) = z; return t; +# 281 +} +# 283 +static inline longlong4 make_longlong4(long long x, long long y, long long z, long long w) +# 284 +{ +# 285 +longlong4 t; (t.x) = x; (t.y) = y; (t.z) = z; (t.w) = w; return t; +# 286 +} +# 288 +static inline ulonglong4 make_ulonglong4(unsigned long long x, unsigned long long y, unsigned long long z, unsigned long long w) +# 289 +{ +# 290 +ulonglong4 t; (t.x) = x; (t.y) = y; (t.z) = z; (t.w) = w; return t; +# 291 +} +# 293 +static inline double1 make_double1(double x) +# 294 +{ +# 295 +double1 t; (t.x) = x; return t; +# 296 +} +# 298 +static inline double2 make_double2(double x, double y) +# 299 +{ +# 300 +double2 t; (t.x) = x; (t.y) = y; return t; +# 301 +} +# 303 +static inline double3 make_double3(double x, double y, double z) +# 304 +{ +# 305 +double3 t; (t.x) = x; (t.y) = y; (t.z) = z; return t; +# 306 +} +# 308 +static inline double4 make_double4(double x, double y, double z, double w) +# 309 +{ +# 310 +double4 t; (t.x) = x; (t.y) = y; (t.z) = z; (t.w) = w; return t; +# 311 +} +# 28 "/usr/include/string.h" 3 +extern "C" { +# 43 "/usr/include/string.h" 3 +extern void *memcpy(void *__restrict__ __dest, const void *__restrict__ __src, size_t __n) throw() +# 44 + __attribute((__nonnull__(1, 2))); +# 47 +extern void *memmove(void * __dest, const void * __src, size_t __n) throw() +# 48 + __attribute((__nonnull__(1, 2))); +# 54 +extern void *memccpy(void *__restrict__ __dest, const void *__restrict__ __src, int __c, size_t __n) throw() +# 56 + __attribute((__nonnull__(1, 2))); +# 61 +extern void *memset(void * __s, int __c, size_t __n) throw() __attribute((__nonnull__(1))); +# 64 +extern int memcmp(const void * __s1, const void * __s2, size_t __n) throw() +# 65 + __attribute((__pure__)) __attribute((__nonnull__(1, 2))); +# 69 +extern "C++" { +# 71 +extern void *memchr(void * __s, int __c, size_t __n) throw() __asm__("memchr") +# 72 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 73 +extern const void *memchr(const void * __s, int __c, size_t __n) throw() __asm__("memchr") +# 74 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 89 "/usr/include/string.h" 3 +} +# 99 "/usr/include/string.h" 3 +extern "C++" void *rawmemchr(void * __s, int __c) throw() __asm__("rawmemchr") +# 100 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 101 +extern "C++" const void *rawmemchr(const void * __s, int __c) throw() __asm__("rawmemchr") +# 102 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 110 +extern "C++" void *memrchr(void * __s, int __c, size_t __n) throw() __asm__("memrchr") +# 111 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 112 +extern "C++" const void *memrchr(const void * __s, int __c, size_t __n) throw() __asm__("memrchr") +# 113 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 122 "/usr/include/string.h" 3 +extern char *strcpy(char *__restrict__ __dest, const char *__restrict__ __src) throw() +# 123 + __attribute((__nonnull__(1, 2))); +# 125 +extern char *strncpy(char *__restrict__ __dest, const char *__restrict__ __src, size_t __n) throw() +# 127 + __attribute((__nonnull__(1, 2))); +# 130 +extern char *strcat(char *__restrict__ __dest, const char *__restrict__ __src) throw() +# 131 + __attribute((__nonnull__(1, 2))); +# 133 +extern char *strncat(char *__restrict__ __dest, const char *__restrict__ __src, size_t __n) throw() +# 134 + __attribute((__nonnull__(1, 2))); +# 137 +extern int strcmp(const char * __s1, const char * __s2) throw() +# 138 + __attribute((__pure__)) __attribute((__nonnull__(1, 2))); +# 140 +extern int strncmp(const char * __s1, const char * __s2, size_t __n) throw() +# 141 + __attribute((__pure__)) __attribute((__nonnull__(1, 2))); +# 144 +extern int strcoll(const char * __s1, const char * __s2) throw() +# 145 + __attribute((__pure__)) __attribute((__nonnull__(1, 2))); +# 147 +extern size_t strxfrm(char *__restrict__ __dest, const char *__restrict__ __src, size_t __n) throw() +# 149 + __attribute((__nonnull__(2))); +# 28 "/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h" 3 +struct __locale_struct { +# 31 +struct __locale_data *__locales[13]; +# 34 +const unsigned short *__ctype_b; +# 35 +const int *__ctype_tolower; +# 36 +const int *__ctype_toupper; +# 39 +const char *__names[13]; +# 40 +}; +# 42 +typedef __locale_struct *__locale_t; +# 24 "/usr/include/x86_64-linux-gnu/bits/types/locale_t.h" 3 +typedef __locale_t locale_t; +# 156 "/usr/include/string.h" 3 +extern int strcoll_l(const char * __s1, const char * __s2, locale_t __l) throw() +# 157 + __attribute((__pure__)) __attribute((__nonnull__(1, 2, 3))); +# 160 +extern size_t strxfrm_l(char * __dest, const char * __src, size_t __n, locale_t __l) throw() +# 161 + __attribute((__nonnull__(2, 4))); +# 167 +extern char *strdup(const char * __s) throw() +# 168 + __attribute((__malloc__)) __attribute((__nonnull__(1))); +# 175 +extern char *strndup(const char * __string, size_t __n) throw() +# 176 + __attribute((__malloc__)) __attribute((__nonnull__(1))); +# 204 "/usr/include/string.h" 3 +extern "C++" { +# 206 +extern char *strchr(char * __s, int __c) throw() __asm__("strchr") +# 207 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 208 +extern const char *strchr(const char * __s, int __c) throw() __asm__("strchr") +# 209 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 224 "/usr/include/string.h" 3 +} +# 231 +extern "C++" { +# 233 +extern char *strrchr(char * __s, int __c) throw() __asm__("strrchr") +# 234 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 235 +extern const char *strrchr(const char * __s, int __c) throw() __asm__("strrchr") +# 236 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 251 "/usr/include/string.h" 3 +} +# 261 "/usr/include/string.h" 3 +extern "C++" char *strchrnul(char * __s, int __c) throw() __asm__("strchrnul") +# 262 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 263 +extern "C++" const char *strchrnul(const char * __s, int __c) throw() __asm__("strchrnul") +# 264 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 273 "/usr/include/string.h" 3 +extern size_t strcspn(const char * __s, const char * __reject) throw() +# 274 + __attribute((__pure__)) __attribute((__nonnull__(1, 2))); +# 277 +extern size_t strspn(const char * __s, const char * __accept) throw() +# 278 + __attribute((__pure__)) __attribute((__nonnull__(1, 2))); +# 281 +extern "C++" { +# 283 +extern char *strpbrk(char * __s, const char * __accept) throw() __asm__("strpbrk") +# 284 + __attribute((__pure__)) __attribute((__nonnull__(1, 2))); +# 285 +extern const char *strpbrk(const char * __s, const char * __accept) throw() __asm__("strpbrk") +# 286 + __attribute((__pure__)) __attribute((__nonnull__(1, 2))); +# 301 "/usr/include/string.h" 3 +} +# 308 +extern "C++" { +# 310 +extern char *strstr(char * __haystack, const char * __needle) throw() __asm__("strstr") +# 311 + __attribute((__pure__)) __attribute((__nonnull__(1, 2))); +# 312 +extern const char *strstr(const char * __haystack, const char * __needle) throw() __asm__("strstr") +# 313 + __attribute((__pure__)) __attribute((__nonnull__(1, 2))); +# 328 "/usr/include/string.h" 3 +} +# 336 +extern char *strtok(char *__restrict__ __s, const char *__restrict__ __delim) throw() +# 337 + __attribute((__nonnull__(2))); +# 341 +extern char *__strtok_r(char *__restrict__ __s, const char *__restrict__ __delim, char **__restrict__ __save_ptr) throw() +# 344 + __attribute((__nonnull__(2, 3))); +# 346 +extern char *strtok_r(char *__restrict__ __s, const char *__restrict__ __delim, char **__restrict__ __save_ptr) throw() +# 348 + __attribute((__nonnull__(2, 3))); +# 354 +extern "C++" char *strcasestr(char * __haystack, const char * __needle) throw() __asm__("strcasestr") +# 355 + __attribute((__pure__)) __attribute((__nonnull__(1, 2))); +# 356 +extern "C++" const char *strcasestr(const char * __haystack, const char * __needle) throw() __asm__("strcasestr") +# 358 + __attribute((__pure__)) __attribute((__nonnull__(1, 2))); +# 369 "/usr/include/string.h" 3 +extern void *memmem(const void * __haystack, size_t __haystacklen, const void * __needle, size_t __needlelen) throw() +# 371 + __attribute((__pure__)) __attribute((__nonnull__(1, 3))); +# 375 +extern void *__mempcpy(void *__restrict__ __dest, const void *__restrict__ __src, size_t __n) throw() +# 377 + __attribute((__nonnull__(1, 2))); +# 378 +extern void *mempcpy(void *__restrict__ __dest, const void *__restrict__ __src, size_t __n) throw() +# 380 + __attribute((__nonnull__(1, 2))); +# 385 +extern size_t strlen(const char * __s) throw() +# 386 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 391 +extern size_t strnlen(const char * __string, size_t __maxlen) throw() +# 392 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 397 +extern char *strerror(int __errnum) throw(); +# 421 "/usr/include/string.h" 3 +extern char *strerror_r(int __errnum, char * __buf, size_t __buflen) throw() +# 422 + __attribute((__nonnull__(2))); +# 428 +extern char *strerror_l(int __errnum, locale_t __l) throw(); +# 30 "/usr/include/strings.h" 3 +extern "C" { +# 34 +extern int bcmp(const void * __s1, const void * __s2, size_t __n) throw() +# 35 + __attribute((__pure__)) __attribute((__nonnull__(1, 2))); +# 38 +extern void bcopy(const void * __src, void * __dest, size_t __n) throw() +# 39 + __attribute((__nonnull__(1, 2))); +# 42 +extern void bzero(void * __s, size_t __n) throw() __attribute((__nonnull__(1))); +# 46 +extern "C++" { +# 48 +extern char *index(char * __s, int __c) throw() __asm__("index") +# 49 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 50 +extern const char *index(const char * __s, int __c) throw() __asm__("index") +# 51 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 66 "/usr/include/strings.h" 3 +} +# 74 +extern "C++" { +# 76 +extern char *rindex(char * __s, int __c) throw() __asm__("rindex") +# 77 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 78 +extern const char *rindex(const char * __s, int __c) throw() __asm__("rindex") +# 79 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 94 "/usr/include/strings.h" 3 +} +# 104 "/usr/include/strings.h" 3 +extern int ffs(int __i) throw() __attribute((const)); +# 110 +extern int ffsl(long __l) throw() __attribute((const)); +# 111 +__extension__ extern int ffsll(long long __ll) throw() +# 112 + __attribute((const)); +# 116 +extern int strcasecmp(const char * __s1, const char * __s2) throw() +# 117 + __attribute((__pure__)) __attribute((__nonnull__(1, 2))); +# 120 +extern int strncasecmp(const char * __s1, const char * __s2, size_t __n) throw() +# 121 + __attribute((__pure__)) __attribute((__nonnull__(1, 2))); +# 128 +extern int strcasecmp_l(const char * __s1, const char * __s2, locale_t __loc) throw() +# 129 + __attribute((__pure__)) __attribute((__nonnull__(1, 2, 3))); +# 133 +extern int strncasecmp_l(const char * __s1, const char * __s2, size_t __n, locale_t __loc) throw() +# 135 + __attribute((__pure__)) __attribute((__nonnull__(1, 2, 4))); +# 138 +} +# 436 "/usr/include/string.h" 3 +extern void explicit_bzero(void * __s, size_t __n) throw() __attribute((__nonnull__(1))); +# 440 +extern char *strsep(char **__restrict__ __stringp, const char *__restrict__ __delim) throw() +# 442 + __attribute((__nonnull__(1, 2))); +# 447 +extern char *strsignal(int __sig) throw(); +# 450 +extern char *__stpcpy(char *__restrict__ __dest, const char *__restrict__ __src) throw() +# 451 + __attribute((__nonnull__(1, 2))); +# 452 +extern char *stpcpy(char *__restrict__ __dest, const char *__restrict__ __src) throw() +# 453 + __attribute((__nonnull__(1, 2))); +# 457 +extern char *__stpncpy(char *__restrict__ __dest, const char *__restrict__ __src, size_t __n) throw() +# 459 + __attribute((__nonnull__(1, 2))); +# 460 +extern char *stpncpy(char *__restrict__ __dest, const char *__restrict__ __src, size_t __n) throw() +# 462 + __attribute((__nonnull__(1, 2))); +# 467 +extern int strverscmp(const char * __s1, const char * __s2) throw() +# 468 + __attribute((__pure__)) __attribute((__nonnull__(1, 2))); +# 471 +extern char *strfry(char * __string) throw() __attribute((__nonnull__(1))); +# 474 +extern void *memfrob(void * __s, size_t __n) throw() __attribute((__nonnull__(1))); +# 482 +extern "C++" char *basename(char * __filename) throw() __asm__("basename") +# 483 + __attribute((__nonnull__(1))); +# 484 +extern "C++" const char *basename(const char * __filename) throw() __asm__("basename") +# 485 + __attribute((__nonnull__(1))); +# 499 "/usr/include/string.h" 3 +} +# 31 "/usr/include/x86_64-linux-gnu/bits/types.h" 3 +typedef unsigned char __u_char; +# 32 +typedef unsigned short __u_short; +# 33 +typedef unsigned __u_int; +# 34 +typedef unsigned long __u_long; +# 37 +typedef signed char __int8_t; +# 38 +typedef unsigned char __uint8_t; +# 39 +typedef signed short __int16_t; +# 40 +typedef unsigned short __uint16_t; +# 41 +typedef signed int __int32_t; +# 42 +typedef unsigned __uint32_t; +# 44 +typedef signed long __int64_t; +# 45 +typedef unsigned long __uint64_t; +# 52 +typedef __int8_t __int_least8_t; +# 53 +typedef __uint8_t __uint_least8_t; +# 54 +typedef __int16_t __int_least16_t; +# 55 +typedef __uint16_t __uint_least16_t; +# 56 +typedef __int32_t __int_least32_t; +# 57 +typedef __uint32_t __uint_least32_t; +# 58 +typedef __int64_t __int_least64_t; +# 59 +typedef __uint64_t __uint_least64_t; +# 63 +typedef long __quad_t; +# 64 +typedef unsigned long __u_quad_t; +# 72 +typedef long __intmax_t; +# 73 +typedef unsigned long __uintmax_t; +# 145 "/usr/include/x86_64-linux-gnu/bits/types.h" 3 +typedef unsigned long __dev_t; +# 146 +typedef unsigned __uid_t; +# 147 +typedef unsigned __gid_t; +# 148 +typedef unsigned long __ino_t; +# 149 +typedef unsigned long __ino64_t; +# 150 +typedef unsigned __mode_t; +# 151 +typedef unsigned long __nlink_t; +# 152 +typedef long __off_t; +# 153 +typedef long __off64_t; +# 154 +typedef int __pid_t; +# 155 +typedef struct { int __val[2]; } __fsid_t; +# 156 +typedef long __clock_t; +# 157 +typedef unsigned long __rlim_t; +# 158 +typedef unsigned long __rlim64_t; +# 159 +typedef unsigned __id_t; +# 160 +typedef long __time_t; +# 161 +typedef unsigned __useconds_t; +# 162 +typedef long __suseconds_t; +# 164 +typedef int __daddr_t; +# 165 +typedef int __key_t; +# 168 +typedef int __clockid_t; +# 171 +typedef void *__timer_t; +# 174 +typedef long __blksize_t; +# 179 +typedef long __blkcnt_t; +# 180 +typedef long __blkcnt64_t; +# 183 +typedef unsigned long __fsblkcnt_t; +# 184 +typedef unsigned long __fsblkcnt64_t; +# 187 +typedef unsigned long __fsfilcnt_t; +# 188 +typedef unsigned long __fsfilcnt64_t; +# 191 +typedef long __fsword_t; +# 193 +typedef long __ssize_t; +# 196 +typedef long __syscall_slong_t; +# 198 +typedef unsigned long __syscall_ulong_t; +# 202 +typedef __off64_t __loff_t; +# 203 +typedef char *__caddr_t; +# 206 +typedef long __intptr_t; +# 209 +typedef unsigned __socklen_t; +# 214 +typedef int __sig_atomic_t; +# 8 "/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h" 3 +struct timeval { +# 10 +__time_t tv_sec; +# 11 +__suseconds_t tv_usec; +# 12 +}; +# 26 "/usr/include/x86_64-linux-gnu/bits/timex.h" 3 +struct timex { +# 28 +unsigned modes; +# 29 +__syscall_slong_t offset; +# 30 +__syscall_slong_t freq; +# 31 +__syscall_slong_t maxerror; +# 32 +__syscall_slong_t esterror; +# 33 +int status; +# 34 +__syscall_slong_t constant; +# 35 +__syscall_slong_t precision; +# 36 +__syscall_slong_t tolerance; +# 37 +timeval time; +# 38 +__syscall_slong_t tick; +# 39 +__syscall_slong_t ppsfreq; +# 40 +__syscall_slong_t jitter; +# 41 +int shift; +# 42 +__syscall_slong_t stabil; +# 43 +__syscall_slong_t jitcnt; +# 44 +__syscall_slong_t calcnt; +# 45 +__syscall_slong_t errcnt; +# 46 +__syscall_slong_t stbcnt; +# 48 +int tai; +# 51 +int:32; int:32; int:32; int:32; +# 52 +int:32; int:32; int:32; int:32; +# 53 +int:32; int:32; int:32; +# 54 +}; +# 75 "/usr/include/x86_64-linux-gnu/bits/time.h" 3 +extern "C" { +# 78 +extern int clock_adjtime(__clockid_t __clock_id, timex * __utx) throw(); +# 80 +} +# 7 "/usr/include/x86_64-linux-gnu/bits/types/clock_t.h" 3 +typedef __clock_t clock_t; +# 7 "/usr/include/x86_64-linux-gnu/bits/types/time_t.h" 3 +typedef __time_t time_t; +# 7 "/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h" 3 +struct tm { +# 9 +int tm_sec; +# 10 +int tm_min; +# 11 +int tm_hour; +# 12 +int tm_mday; +# 13 +int tm_mon; +# 14 +int tm_year; +# 15 +int tm_wday; +# 16 +int tm_yday; +# 17 +int tm_isdst; +# 20 +long tm_gmtoff; +# 21 +const char *tm_zone; +# 26 +}; +# 10 "/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h" 3 +struct timespec { +# 12 +__time_t tv_sec; +# 16 +__syscall_slong_t tv_nsec; +# 26 "/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h" 3 +}; +# 7 "/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h" 3 +typedef __clockid_t clockid_t; +# 7 "/usr/include/x86_64-linux-gnu/bits/types/timer_t.h" 3 +typedef __timer_t timer_t; +# 8 "/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h" 3 +struct itimerspec { +# 10 +timespec it_interval; +# 11 +timespec it_value; +# 12 +}; +# 49 "/usr/include/time.h" 3 +struct sigevent; +# 54 +typedef __pid_t pid_t; +# 68 "/usr/include/time.h" 3 +extern "C" { +# 72 +extern clock_t clock() throw(); +# 75 +extern time_t time(time_t * __timer) throw(); +# 78 +extern double difftime(time_t __time1, time_t __time0) throw() +# 79 + __attribute((const)); +# 82 +extern time_t mktime(tm * __tp) throw(); +# 88 +extern size_t strftime(char *__restrict__ __s, size_t __maxsize, const char *__restrict__ __format, const tm *__restrict__ __tp) throw(); +# 95 +extern char *strptime(const char *__restrict__ __s, const char *__restrict__ __fmt, tm * __tp) throw(); +# 104 +extern size_t strftime_l(char *__restrict__ __s, size_t __maxsize, const char *__restrict__ __format, const tm *__restrict__ __tp, locale_t __loc) throw(); +# 111 +extern char *strptime_l(const char *__restrict__ __s, const char *__restrict__ __fmt, tm * __tp, locale_t __loc) throw(); +# 119 +extern tm *gmtime(const time_t * __timer) throw(); +# 123 +extern tm *localtime(const time_t * __timer) throw(); +# 128 +extern tm *gmtime_r(const time_t *__restrict__ __timer, tm *__restrict__ __tp) throw(); +# 133 +extern tm *localtime_r(const time_t *__restrict__ __timer, tm *__restrict__ __tp) throw(); +# 139 +extern char *asctime(const tm * __tp) throw(); +# 142 +extern char *ctime(const time_t * __timer) throw(); +# 149 +extern char *asctime_r(const tm *__restrict__ __tp, char *__restrict__ __buf) throw(); +# 153 +extern char *ctime_r(const time_t *__restrict__ __timer, char *__restrict__ __buf) throw(); +# 159 +extern char *__tzname[2]; +# 160 +extern int __daylight; +# 161 +extern long __timezone; +# 166 +extern char *tzname[2]; +# 170 +extern void tzset() throw(); +# 174 +extern int daylight; +# 175 +extern long timezone; +# 190 "/usr/include/time.h" 3 +extern time_t timegm(tm * __tp) throw(); +# 193 +extern time_t timelocal(tm * __tp) throw(); +# 196 +extern int dysize(int __year) throw() __attribute((const)); +# 205 "/usr/include/time.h" 3 +extern int nanosleep(const timespec * __requested_time, timespec * __remaining); +# 210 +extern int clock_getres(clockid_t __clock_id, timespec * __res) throw(); +# 213 +extern int clock_gettime(clockid_t __clock_id, timespec * __tp) throw(); +# 216 +extern int clock_settime(clockid_t __clock_id, const timespec * __tp) throw(); +# 224 +extern int clock_nanosleep(clockid_t __clock_id, int __flags, const timespec * __req, timespec * __rem); +# 229 +extern int clock_getcpuclockid(pid_t __pid, clockid_t * __clock_id) throw(); +# 234 +extern int timer_create(clockid_t __clock_id, sigevent *__restrict__ __evp, timer_t *__restrict__ __timerid) throw(); +# 239 +extern int timer_delete(timer_t __timerid) throw(); +# 242 +extern int timer_settime(timer_t __timerid, int __flags, const itimerspec *__restrict__ __value, itimerspec *__restrict__ __ovalue) throw(); +# 247 +extern int timer_gettime(timer_t __timerid, itimerspec * __value) throw(); +# 251 +extern int timer_getoverrun(timer_t __timerid) throw(); +# 257 +extern int timespec_get(timespec * __ts, int __base) throw() +# 258 + __attribute((__nonnull__(1))); +# 274 "/usr/include/time.h" 3 +extern int getdate_err; +# 283 "/usr/include/time.h" 3 +extern tm *getdate(const char * __string); +# 297 "/usr/include/time.h" 3 +extern int getdate_r(const char *__restrict__ __string, tm *__restrict__ __resbufp); +# 301 +} +# 88 "/usr/include/crt/common_functions.h" 3 +extern "C" { +# 91 +extern clock_t clock() throw(); +# 96 +extern void *memset(void *, int, size_t) throw(); +# 97 +extern void *memcpy(void *, const void *, size_t) throw(); +# 99 +} +# 121 "/usr/include/crt/math_functions.h" 3 +extern "C" { +# 219 "/usr/include/crt/math_functions.h" 3 +extern int abs(int a) throw(); +# 227 +extern long labs(long a) throw(); +# 235 +extern long long llabs(long long a) throw(); +# 285 "/usr/include/crt/math_functions.h" 3 +extern double fabs(double x) throw(); +# 328 "/usr/include/crt/math_functions.h" 3 +extern float fabsf(float x) throw(); +# 338 "/usr/include/crt/math_functions.h" 3 +extern inline int min(const int a, const int b); +# 345 +extern inline unsigned umin(const unsigned a, const unsigned b); +# 352 +extern inline long long llmin(const long long a, const long long b); +# 359 +extern inline unsigned long long ullmin(const unsigned long long a, const unsigned long long b); +# 380 "/usr/include/crt/math_functions.h" 3 +extern float fminf(float x, float y) throw(); +# 400 "/usr/include/crt/math_functions.h" 3 +extern double fmin(double x, double y) throw(); +# 413 "/usr/include/crt/math_functions.h" 3 +extern inline int max(const int a, const int b); +# 421 +extern inline unsigned umax(const unsigned a, const unsigned b); +# 428 +extern inline long long llmax(const long long a, const long long b); +# 435 +extern inline unsigned long long ullmax(const unsigned long long a, const unsigned long long b); +# 456 "/usr/include/crt/math_functions.h" 3 +extern float fmaxf(float x, float y) throw(); +# 476 "/usr/include/crt/math_functions.h" 3 +extern double fmax(double, double) throw(); +# 520 "/usr/include/crt/math_functions.h" 3 +extern double sin(double x) throw(); +# 553 "/usr/include/crt/math_functions.h" 3 +extern double cos(double x) throw(); +# 572 "/usr/include/crt/math_functions.h" 3 +extern void sincos(double x, double * sptr, double * cptr) throw(); +# 588 "/usr/include/crt/math_functions.h" 3 +extern void sincosf(float x, float * sptr, float * cptr) throw(); +# 633 "/usr/include/crt/math_functions.h" 3 +extern double tan(double x) throw(); +# 702 "/usr/include/crt/math_functions.h" 3 +extern double sqrt(double x) throw(); +# 774 "/usr/include/crt/math_functions.h" 3 +extern double rsqrt(double x); +# 844 "/usr/include/crt/math_functions.h" 3 +extern float rsqrtf(float x); +# 900 "/usr/include/crt/math_functions.h" 3 +extern double log2(double x) throw(); +# 965 "/usr/include/crt/math_functions.h" 3 +extern double exp2(double x) throw(); +# 1030 "/usr/include/crt/math_functions.h" 3 +extern float exp2f(float x) throw(); +# 1097 "/usr/include/crt/math_functions.h" 3 +extern double exp10(double x) throw(); +# 1160 "/usr/include/crt/math_functions.h" 3 +extern float exp10f(float x) throw(); +# 1253 "/usr/include/crt/math_functions.h" 3 +extern double expm1(double x) throw(); +# 1345 "/usr/include/crt/math_functions.h" 3 +extern float expm1f(float x) throw(); +# 1401 "/usr/include/crt/math_functions.h" 3 +extern float log2f(float x) throw(); +# 1455 "/usr/include/crt/math_functions.h" 3 +extern double log10(double x) throw(); +# 1525 "/usr/include/crt/math_functions.h" 3 +extern double log(double x) throw(); +# 1621 "/usr/include/crt/math_functions.h" 3 +extern double log1p(double x) throw(); +# 1720 "/usr/include/crt/math_functions.h" 3 +extern float log1pf(float x) throw(); +# 1784 "/usr/include/crt/math_functions.h" 3 +extern double floor(double x) throw(); +# 1863 "/usr/include/crt/math_functions.h" 3 +extern double exp(double x) throw(); +# 1904 "/usr/include/crt/math_functions.h" 3 +extern double cosh(double x) throw(); +# 1954 "/usr/include/crt/math_functions.h" 3 +extern double sinh(double x) throw(); +# 2004 "/usr/include/crt/math_functions.h" 3 +extern double tanh(double x) throw(); +# 2059 "/usr/include/crt/math_functions.h" 3 +extern double acosh(double x) throw(); +# 2117 "/usr/include/crt/math_functions.h" 3 +extern float acoshf(float x) throw(); +# 2170 "/usr/include/crt/math_functions.h" 3 +extern double asinh(double x) throw(); +# 2223 "/usr/include/crt/math_functions.h" 3 +extern float asinhf(float x) throw(); +# 2277 "/usr/include/crt/math_functions.h" 3 +extern double atanh(double x) throw(); +# 2331 "/usr/include/crt/math_functions.h" 3 +extern float atanhf(float x) throw(); +# 2380 "/usr/include/crt/math_functions.h" 3 +extern double ldexp(double x, int exp) throw(); +# 2426 "/usr/include/crt/math_functions.h" 3 +extern float ldexpf(float x, int exp) throw(); +# 2478 "/usr/include/crt/math_functions.h" 3 +extern double logb(double x) throw(); +# 2533 "/usr/include/crt/math_functions.h" 3 +extern float logbf(float x) throw(); +# 2573 "/usr/include/crt/math_functions.h" 3 +extern int ilogb(double x) throw(); +# 2613 "/usr/include/crt/math_functions.h" 3 +extern int ilogbf(float x) throw(); +# 2689 "/usr/include/crt/math_functions.h" 3 +extern double scalbn(double x, int n) throw(); +# 2765 "/usr/include/crt/math_functions.h" 3 +extern float scalbnf(float x, int n) throw(); +# 2841 "/usr/include/crt/math_functions.h" 3 +extern double scalbln(double x, long n) throw(); +# 2917 "/usr/include/crt/math_functions.h" 3 +extern float scalblnf(float x, long n) throw(); +# 2994 "/usr/include/crt/math_functions.h" 3 +extern double frexp(double x, int * nptr) throw(); +# 3068 "/usr/include/crt/math_functions.h" 3 +extern float frexpf(float x, int * nptr) throw(); +# 3120 "/usr/include/crt/math_functions.h" 3 +extern double round(double x) throw(); +# 3175 "/usr/include/crt/math_functions.h" 3 +extern float roundf(float x) throw(); +# 3193 "/usr/include/crt/math_functions.h" 3 +extern long lround(double x) throw(); +# 3211 "/usr/include/crt/math_functions.h" 3 +extern long lroundf(float x) throw(); +# 3229 "/usr/include/crt/math_functions.h" 3 +extern long long llround(double x) throw(); +# 3247 "/usr/include/crt/math_functions.h" 3 +extern long long llroundf(float x) throw(); +# 3375 "/usr/include/crt/math_functions.h" 3 +extern float rintf(float x) throw(); +# 3392 "/usr/include/crt/math_functions.h" 3 +extern long lrint(double x) throw(); +# 3409 "/usr/include/crt/math_functions.h" 3 +extern long lrintf(float x) throw(); +# 3426 "/usr/include/crt/math_functions.h" 3 +extern long long llrint(double x) throw(); +# 3443 "/usr/include/crt/math_functions.h" 3 +extern long long llrintf(float x) throw(); +# 3496 "/usr/include/crt/math_functions.h" 3 +extern double nearbyint(double x) throw(); +# 3549 "/usr/include/crt/math_functions.h" 3 +extern float nearbyintf(float x) throw(); +# 3611 "/usr/include/crt/math_functions.h" 3 +extern double ceil(double x) throw(); +# 3661 "/usr/include/crt/math_functions.h" 3 +extern double trunc(double x) throw(); +# 3714 "/usr/include/crt/math_functions.h" 3 +extern float truncf(float x) throw(); +# 3740 "/usr/include/crt/math_functions.h" 3 +extern double fdim(double x, double y) throw(); +# 3766 "/usr/include/crt/math_functions.h" 3 +extern float fdimf(float x, float y) throw(); +# 4066 "/usr/include/crt/math_functions.h" 3 +extern double atan2(double y, double x) throw(); +# 4137 "/usr/include/crt/math_functions.h" 3 +extern double atan(double x) throw(); +# 4160 "/usr/include/crt/math_functions.h" 3 +extern double acos(double x) throw(); +# 4211 "/usr/include/crt/math_functions.h" 3 +extern double asin(double x) throw(); +# 4279 "/usr/include/crt/math_functions.h" 3 +extern double hypot(double x, double y) throw(); +# 4402 "/usr/include/crt/math_functions.h" 3 +extern float hypotf(float x, float y) throw(); +# 5188 "/usr/include/crt/math_functions.h" 3 +extern double cbrt(double x) throw(); +# 5274 "/usr/include/crt/math_functions.h" 3 +extern float cbrtf(float x) throw(); +# 5329 "/usr/include/crt/math_functions.h" 3 +extern double rcbrt(double x); +# 5379 "/usr/include/crt/math_functions.h" 3 +extern float rcbrtf(float x); +# 5439 "/usr/include/crt/math_functions.h" 3 +extern double sinpi(double x); +# 5499 "/usr/include/crt/math_functions.h" 3 +extern float sinpif(float x); +# 5551 "/usr/include/crt/math_functions.h" 3 +extern double cospi(double x); +# 5603 "/usr/include/crt/math_functions.h" 3 +extern float cospif(float x); +# 5633 "/usr/include/crt/math_functions.h" 3 +extern void sincospi(double x, double * sptr, double * cptr); +# 5663 "/usr/include/crt/math_functions.h" 3 +extern void sincospif(float x, float * sptr, float * cptr); +# 5996 "/usr/include/crt/math_functions.h" 3 +extern double pow(double x, double y) throw(); +# 6052 "/usr/include/crt/math_functions.h" 3 +extern double modf(double x, double * iptr) throw(); +# 6111 "/usr/include/crt/math_functions.h" 3 +extern double fmod(double x, double y) throw(); +# 6207 "/usr/include/crt/math_functions.h" 3 +extern double remainder(double x, double y) throw(); +# 6306 "/usr/include/crt/math_functions.h" 3 +extern float remainderf(float x, float y) throw(); +# 6378 "/usr/include/crt/math_functions.h" 3 +extern double remquo(double x, double y, int * quo) throw(); +# 6450 "/usr/include/crt/math_functions.h" 3 +extern float remquof(float x, float y, int * quo) throw(); +# 6491 "/usr/include/crt/math_functions.h" 3 +extern double j0(double x) throw(); +# 6533 "/usr/include/crt/math_functions.h" 3 +extern float j0f(float x) throw(); +# 6602 "/usr/include/crt/math_functions.h" 3 +extern double j1(double x) throw(); +# 6671 "/usr/include/crt/math_functions.h" 3 +extern float j1f(float x) throw(); +# 6714 "/usr/include/crt/math_functions.h" 3 +extern double jn(int n, double x) throw(); +# 6757 "/usr/include/crt/math_functions.h" 3 +extern float jnf(int n, float x) throw(); +# 6818 "/usr/include/crt/math_functions.h" 3 +extern double y0(double x) throw(); +# 6879 "/usr/include/crt/math_functions.h" 3 +extern float y0f(float x) throw(); +# 6940 "/usr/include/crt/math_functions.h" 3 +extern double y1(double x) throw(); +# 7001 "/usr/include/crt/math_functions.h" 3 +extern float y1f(float x) throw(); +# 7064 "/usr/include/crt/math_functions.h" 3 +extern double yn(int n, double x) throw(); +# 7127 "/usr/include/crt/math_functions.h" 3 +extern float ynf(int n, float x) throw(); +# 7316 "/usr/include/crt/math_functions.h" 3 +extern double erf(double x) throw(); +# 7398 "/usr/include/crt/math_functions.h" 3 +extern float erff(float x) throw(); +# 7470 "/usr/include/crt/math_functions.h" 3 +extern double erfinv(double x); +# 7535 "/usr/include/crt/math_functions.h" 3 +extern float erfinvf(float x); +# 7574 "/usr/include/crt/math_functions.h" 3 +extern double erfc(double x) throw(); +# 7612 "/usr/include/crt/math_functions.h" 3 +extern float erfcf(float x) throw(); +# 7729 "/usr/include/crt/math_functions.h" 3 +extern double lgamma(double x) throw(); +# 7791 "/usr/include/crt/math_functions.h" 3 +extern double erfcinv(double x); +# 7846 "/usr/include/crt/math_functions.h" 3 +extern float erfcinvf(float x); +# 7914 "/usr/include/crt/math_functions.h" 3 +extern double normcdfinv(double x); +# 7982 "/usr/include/crt/math_functions.h" 3 +extern float normcdfinvf(float x); +# 8025 "/usr/include/crt/math_functions.h" 3 +extern double normcdf(double x); +# 8068 "/usr/include/crt/math_functions.h" 3 +extern float normcdff(float x); +# 8132 "/usr/include/crt/math_functions.h" 3 +extern double erfcx(double x); +# 8196 "/usr/include/crt/math_functions.h" 3 +extern float erfcxf(float x); +# 8315 "/usr/include/crt/math_functions.h" 3 +extern float lgammaf(float x) throw(); +# 8413 "/usr/include/crt/math_functions.h" 3 +extern double tgamma(double x) throw(); +# 8511 "/usr/include/crt/math_functions.h" 3 +extern float tgammaf(float x) throw(); +# 8524 "/usr/include/crt/math_functions.h" 3 +extern double copysign(double x, double y) throw(); +# 8537 "/usr/include/crt/math_functions.h" 3 +extern float copysignf(float x, float y) throw(); +# 8556 "/usr/include/crt/math_functions.h" 3 +extern double nextafter(double x, double y) throw(); +# 8575 "/usr/include/crt/math_functions.h" 3 +extern float nextafterf(float x, float y) throw(); +# 8591 "/usr/include/crt/math_functions.h" 3 +extern double nan(const char * tagp) throw(); +# 8607 "/usr/include/crt/math_functions.h" 3 +extern float nanf(const char * tagp) throw(); +# 8614 +extern int __isinff(float) throw(); +# 8615 +extern int __isnanf(float) throw(); +# 8625 "/usr/include/crt/math_functions.h" 3 +extern int __finite(double) throw(); +# 8626 +extern int __finitef(float) throw(); +# 8627 +extern int __signbit(double) throw(); +# 8628 +extern int __isnan(double) throw(); +# 8629 +extern int __isinf(double) throw(); +# 8632 +extern int __signbitf(float) throw(); +# 8791 "/usr/include/crt/math_functions.h" 3 +extern double fma(double x, double y, double z) throw(); +# 8949 "/usr/include/crt/math_functions.h" 3 +extern float fmaf(float x, float y, float z) throw(); +# 8960 "/usr/include/crt/math_functions.h" 3 +extern int __signbitl(long double) throw(); +# 8966 +extern int __finitel(long double) throw(); +# 8967 +extern int __isinfl(long double) throw(); +# 8968 +extern int __isnanl(long double) throw(); +# 9018 "/usr/include/crt/math_functions.h" 3 +extern float acosf(float x) throw(); +# 9077 "/usr/include/crt/math_functions.h" 3 +extern float asinf(float x) throw(); +# 9157 "/usr/include/crt/math_functions.h" 3 +extern float atanf(float x) throw(); +# 9454 "/usr/include/crt/math_functions.h" 3 +extern float atan2f(float y, float x) throw(); +# 9488 "/usr/include/crt/math_functions.h" 3 +extern float cosf(float x) throw(); +# 9530 "/usr/include/crt/math_functions.h" 3 +extern float sinf(float x) throw(); +# 9572 "/usr/include/crt/math_functions.h" 3 +extern float tanf(float x) throw(); +# 9613 "/usr/include/crt/math_functions.h" 3 +extern float coshf(float x) throw(); +# 9663 "/usr/include/crt/math_functions.h" 3 +extern float sinhf(float x) throw(); +# 9713 "/usr/include/crt/math_functions.h" 3 +extern float tanhf(float x) throw(); +# 9765 "/usr/include/crt/math_functions.h" 3 +extern float logf(float x) throw(); +# 9845 "/usr/include/crt/math_functions.h" 3 +extern float expf(float x) throw(); +# 9897 "/usr/include/crt/math_functions.h" 3 +extern float log10f(float x) throw(); +# 9952 "/usr/include/crt/math_functions.h" 3 +extern float modff(float x, float * iptr) throw(); +# 10282 "/usr/include/crt/math_functions.h" 3 +extern float powf(float x, float y) throw(); +# 10351 "/usr/include/crt/math_functions.h" 3 +extern float sqrtf(float x) throw(); +# 10410 "/usr/include/crt/math_functions.h" 3 +extern float ceilf(float x) throw(); +# 10471 "/usr/include/crt/math_functions.h" 3 +extern float floorf(float x) throw(); +# 10529 "/usr/include/crt/math_functions.h" 3 +extern float fmodf(float x, float y) throw(); +# 10544 "/usr/include/crt/math_functions.h" 3 +} +# 256 "/usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h" 3 +namespace std { +# 258 +typedef unsigned long size_t; +# 259 +typedef long ptrdiff_t; +# 262 +typedef __decltype((nullptr)) nullptr_t; +# 264 +} +# 278 "/usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h" 3 +namespace std { +# 280 +inline namespace __cxx11 __attribute((__abi_tag__("cxx11"))) { } +# 281 +} +# 282 +namespace __gnu_cxx { +# 284 +inline namespace __cxx11 __attribute((__abi_tag__("cxx11"))) { } +# 285 +} +# 67 "/usr/include/c++/9/bits/cpp_type_traits.h" 3 +extern "C++" { +# 69 +namespace std __attribute((__visibility__("default"))) { +# 73 +struct __true_type { }; +# 74 +struct __false_type { }; +# 76 +template< bool > +# 77 +struct __truth_type { +# 78 +typedef __false_type __type; }; +# 81 +template<> struct __truth_type< true> { +# 82 +typedef __true_type __type; }; +# 86 +template< class _Sp, class _Tp> +# 87 +struct __traitor { +# 89 +enum { __value = ((bool)_Sp::__value) || ((bool)_Tp::__value)}; +# 90 +typedef typename __truth_type< __value> ::__type __type; +# 91 +}; +# 94 +template< class , class > +# 95 +struct __are_same { +# 97 +enum { __value}; +# 98 +typedef __false_type __type; +# 99 +}; +# 101 +template< class _Tp> +# 102 +struct __are_same< _Tp, _Tp> { +# 104 +enum { __value = 1}; +# 105 +typedef __true_type __type; +# 106 +}; +# 109 +template< class _Tp> +# 110 +struct __is_void { +# 112 +enum { __value}; +# 113 +typedef __false_type __type; +# 114 +}; +# 117 +template<> struct __is_void< void> { +# 119 +enum { __value = 1}; +# 120 +typedef __true_type __type; +# 121 +}; +# 126 +template< class _Tp> +# 127 +struct __is_integer { +# 129 +enum { __value}; +# 130 +typedef __false_type __type; +# 131 +}; +# 138 +template<> struct __is_integer< bool> { +# 140 +enum { __value = 1}; +# 141 +typedef __true_type __type; +# 142 +}; +# 145 +template<> struct __is_integer< char> { +# 147 +enum { __value = 1}; +# 148 +typedef __true_type __type; +# 149 +}; +# 152 +template<> struct __is_integer< signed char> { +# 154 +enum { __value = 1}; +# 155 +typedef __true_type __type; +# 156 +}; +# 159 +template<> struct __is_integer< unsigned char> { +# 161 +enum { __value = 1}; +# 162 +typedef __true_type __type; +# 163 +}; +# 167 +template<> struct __is_integer< wchar_t> { +# 169 +enum { __value = 1}; +# 170 +typedef __true_type __type; +# 171 +}; +# 185 "/usr/include/c++/9/bits/cpp_type_traits.h" 3 +template<> struct __is_integer< char16_t> { +# 187 +enum { __value = 1}; +# 188 +typedef __true_type __type; +# 189 +}; +# 192 +template<> struct __is_integer< char32_t> { +# 194 +enum { __value = 1}; +# 195 +typedef __true_type __type; +# 196 +}; +# 200 +template<> struct __is_integer< short> { +# 202 +enum { __value = 1}; +# 203 +typedef __true_type __type; +# 204 +}; +# 207 +template<> struct __is_integer< unsigned short> { +# 209 +enum { __value = 1}; +# 210 +typedef __true_type __type; +# 211 +}; +# 214 +template<> struct __is_integer< int> { +# 216 +enum { __value = 1}; +# 217 +typedef __true_type __type; +# 218 +}; +# 221 +template<> struct __is_integer< unsigned> { +# 223 +enum { __value = 1}; +# 224 +typedef __true_type __type; +# 225 +}; +# 228 +template<> struct __is_integer< long> { +# 230 +enum { __value = 1}; +# 231 +typedef __true_type __type; +# 232 +}; +# 235 +template<> struct __is_integer< unsigned long> { +# 237 +enum { __value = 1}; +# 238 +typedef __true_type __type; +# 239 +}; +# 242 +template<> struct __is_integer< long long> { +# 244 +enum { __value = 1}; +# 245 +typedef __true_type __type; +# 246 +}; +# 249 +template<> struct __is_integer< unsigned long long> { +# 251 +enum { __value = 1}; +# 252 +typedef __true_type __type; +# 253 +}; +# 270 "/usr/include/c++/9/bits/cpp_type_traits.h" 3 +template<> struct __is_integer< __int128> { enum { __value = 1}; typedef __true_type __type; }; template<> struct __is_integer< unsigned __int128> { enum { __value = 1}; typedef __true_type __type; }; +# 287 "/usr/include/c++/9/bits/cpp_type_traits.h" 3 +template< class _Tp> +# 288 +struct __is_floating { +# 290 +enum { __value}; +# 291 +typedef __false_type __type; +# 292 +}; +# 296 +template<> struct __is_floating< float> { +# 298 +enum { __value = 1}; +# 299 +typedef __true_type __type; +# 300 +}; +# 303 +template<> struct __is_floating< double> { +# 305 +enum { __value = 1}; +# 306 +typedef __true_type __type; +# 307 +}; +# 310 +template<> struct __is_floating< long double> { +# 312 +enum { __value = 1}; +# 313 +typedef __true_type __type; +# 314 +}; +# 319 +template< class _Tp> +# 320 +struct __is_pointer { +# 322 +enum { __value}; +# 323 +typedef __false_type __type; +# 324 +}; +# 326 +template< class _Tp> +# 327 +struct __is_pointer< _Tp *> { +# 329 +enum { __value = 1}; +# 330 +typedef __true_type __type; +# 331 +}; +# 336 +template< class _Tp> +# 337 +struct __is_arithmetic : public __traitor< __is_integer< _Tp> , __is_floating< _Tp> > { +# 339 +}; +# 344 +template< class _Tp> +# 345 +struct __is_scalar : public __traitor< __is_arithmetic< _Tp> , __is_pointer< _Tp> > { +# 347 +}; +# 352 +template< class _Tp> +# 353 +struct __is_char { +# 355 +enum { __value}; +# 356 +typedef __false_type __type; +# 357 +}; +# 360 +template<> struct __is_char< char> { +# 362 +enum { __value = 1}; +# 363 +typedef __true_type __type; +# 364 +}; +# 368 +template<> struct __is_char< wchar_t> { +# 370 +enum { __value = 1}; +# 371 +typedef __true_type __type; +# 372 +}; +# 375 +template< class _Tp> +# 376 +struct __is_byte { +# 378 +enum { __value}; +# 379 +typedef __false_type __type; +# 380 +}; +# 383 +template<> struct __is_byte< char> { +# 385 +enum { __value = 1}; +# 386 +typedef __true_type __type; +# 387 +}; +# 390 +template<> struct __is_byte< signed char> { +# 392 +enum { __value = 1}; +# 393 +typedef __true_type __type; +# 394 +}; +# 397 +template<> struct __is_byte< unsigned char> { +# 399 +enum { __value = 1}; +# 400 +typedef __true_type __type; +# 401 +}; +# 417 "/usr/include/c++/9/bits/cpp_type_traits.h" 3 +template< class _Tp> +# 418 +struct __is_move_iterator { +# 420 +enum { __value}; +# 421 +typedef __false_type __type; +# 422 +}; +# 426 +template< class _Iterator> inline _Iterator +# 428 +__miter_base(_Iterator __it) +# 429 +{ return __it; } +# 432 +} +# 433 +} +# 37 "/usr/include/c++/9/ext/type_traits.h" 3 +extern "C++" { +# 39 +namespace __gnu_cxx __attribute((__visibility__("default"))) { +# 44 +template< bool , class > +# 45 +struct __enable_if { +# 46 +}; +# 48 +template< class _Tp> +# 49 +struct __enable_if< true, _Tp> { +# 50 +typedef _Tp __type; }; +# 54 +template< bool _Cond, class _Iftrue, class _Iffalse> +# 55 +struct __conditional_type { +# 56 +typedef _Iftrue __type; }; +# 58 +template< class _Iftrue, class _Iffalse> +# 59 +struct __conditional_type< false, _Iftrue, _Iffalse> { +# 60 +typedef _Iffalse __type; }; +# 64 +template< class _Tp> +# 65 +struct __add_unsigned { +# 68 +private: typedef __enable_if< std::__is_integer< _Tp> ::__value, _Tp> __if_type; +# 71 +public: typedef typename __enable_if< std::__is_integer< _Tp> ::__value, _Tp> ::__type __type; +# 72 +}; +# 75 +template<> struct __add_unsigned< char> { +# 76 +typedef unsigned char __type; }; +# 79 +template<> struct __add_unsigned< signed char> { +# 80 +typedef unsigned char __type; }; +# 83 +template<> struct __add_unsigned< short> { +# 84 +typedef unsigned short __type; }; +# 87 +template<> struct __add_unsigned< int> { +# 88 +typedef unsigned __type; }; +# 91 +template<> struct __add_unsigned< long> { +# 92 +typedef unsigned long __type; }; +# 95 +template<> struct __add_unsigned< long long> { +# 96 +typedef unsigned long long __type; }; +# 100 +template<> struct __add_unsigned< bool> ; +# 103 +template<> struct __add_unsigned< wchar_t> ; +# 107 +template< class _Tp> +# 108 +struct __remove_unsigned { +# 111 +private: typedef __enable_if< std::__is_integer< _Tp> ::__value, _Tp> __if_type; +# 114 +public: typedef typename __enable_if< std::__is_integer< _Tp> ::__value, _Tp> ::__type __type; +# 115 +}; +# 118 +template<> struct __remove_unsigned< char> { +# 119 +typedef signed char __type; }; +# 122 +template<> struct __remove_unsigned< unsigned char> { +# 123 +typedef signed char __type; }; +# 126 +template<> struct __remove_unsigned< unsigned short> { +# 127 +typedef short __type; }; +# 130 +template<> struct __remove_unsigned< unsigned> { +# 131 +typedef int __type; }; +# 134 +template<> struct __remove_unsigned< unsigned long> { +# 135 +typedef long __type; }; +# 138 +template<> struct __remove_unsigned< unsigned long long> { +# 139 +typedef long long __type; }; +# 143 +template<> struct __remove_unsigned< bool> ; +# 146 +template<> struct __remove_unsigned< wchar_t> ; +# 150 +template< class _Type> inline bool +# 152 +__is_null_pointer(_Type *__ptr) +# 153 +{ return __ptr == 0; } +# 155 +template< class _Type> inline bool +# 157 +__is_null_pointer(_Type) +# 158 +{ return false; } +# 162 +inline bool __is_null_pointer(std::nullptr_t) +# 163 +{ return true; } +# 167 +template< class _Tp, bool = std::template __is_integer< _Tp> ::__value> +# 168 +struct __promote { +# 169 +typedef double __type; }; +# 174 +template< class _Tp> +# 175 +struct __promote< _Tp, false> { +# 176 +}; +# 179 +template<> struct __promote< long double> { +# 180 +typedef long double __type; }; +# 183 +template<> struct __promote< double> { +# 184 +typedef double __type; }; +# 187 +template<> struct __promote< float> { +# 188 +typedef float __type; }; +# 190 +template< class _Tp, class _Up, class +# 191 +_Tp2 = typename __promote< _Tp> ::__type, class +# 192 +_Up2 = typename __promote< _Up> ::__type> +# 193 +struct __promote_2 { +# 195 +typedef __typeof__(_Tp2() + _Up2()) __type; +# 196 +}; +# 198 +template< class _Tp, class _Up, class _Vp, class +# 199 +_Tp2 = typename __promote< _Tp> ::__type, class +# 200 +_Up2 = typename __promote< _Up> ::__type, class +# 201 +_Vp2 = typename __promote< _Vp> ::__type> +# 202 +struct __promote_3 { +# 204 +typedef __typeof__((_Tp2() + _Up2()) + _Vp2()) __type; +# 205 +}; +# 207 +template< class _Tp, class _Up, class _Vp, class _Wp, class +# 208 +_Tp2 = typename __promote< _Tp> ::__type, class +# 209 +_Up2 = typename __promote< _Up> ::__type, class +# 210 +_Vp2 = typename __promote< _Vp> ::__type, class +# 211 +_Wp2 = typename __promote< _Wp> ::__type> +# 212 +struct __promote_4 { +# 214 +typedef __typeof__(((_Tp2() + _Up2()) + _Vp2()) + _Wp2()) __type; +# 215 +}; +# 218 +} +# 219 +} +# 34 "/usr/include/math.h" 3 +extern "C" { +# 214 "/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 3 +typedef float _Float32; +# 251 "/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 3 +typedef double _Float64; +# 268 "/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 3 +typedef double _Float32x; +# 285 "/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 3 +typedef long double _Float64x; +# 149 "/usr/include/math.h" 3 +typedef float float_t; +# 150 +typedef double double_t; +# 238 "/usr/include/math.h" 3 +enum { +# 239 +FP_INT_UPWARD, +# 242 +FP_INT_DOWNWARD, +# 245 +FP_INT_TOWARDZERO, +# 248 +FP_INT_TONEARESTFROMZERO, +# 251 +FP_INT_TONEAREST +# 254 +}; +# 21 "/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h" 3 +extern int __fpclassify(double __value) throw() +# 22 + __attribute((const)); +# 25 +extern int __signbit(double __value) throw() +# 26 + __attribute((const)); +# 30 +extern int __isinf(double __value) throw() __attribute((const)); +# 33 +extern int __finite(double __value) throw() __attribute((const)); +# 36 +extern int __isnan(double __value) throw() __attribute((const)); +# 39 +extern int __iseqsig(double __x, double __y) throw(); +# 42 +extern int __issignaling(double __value) throw() +# 43 + __attribute((const)); +# 53 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 +extern double acos(double __x) throw(); extern double __acos(double __x) throw(); +# 55 +extern double asin(double __x) throw(); extern double __asin(double __x) throw(); +# 57 +extern double atan(double __x) throw(); extern double __atan(double __x) throw(); +# 59 +extern double atan2(double __y, double __x) throw(); extern double __atan2(double __y, double __x) throw(); +# 62 +extern double cos(double __x) throw(); extern double __cos(double __x) throw(); +# 64 +extern double sin(double __x) throw(); extern double __sin(double __x) throw(); +# 66 +extern double tan(double __x) throw(); extern double __tan(double __x) throw(); +# 71 +extern double cosh(double __x) throw(); extern double __cosh(double __x) throw(); +# 73 +extern double sinh(double __x) throw(); extern double __sinh(double __x) throw(); +# 75 +extern double tanh(double __x) throw(); extern double __tanh(double __x) throw(); +# 79 +extern void sincos(double __x, double * __sinx, double * __cosx) throw(); extern void __sincos(double __x, double * __sinx, double * __cosx) throw(); +# 85 +extern double acosh(double __x) throw(); extern double __acosh(double __x) throw(); +# 87 +extern double asinh(double __x) throw(); extern double __asinh(double __x) throw(); +# 89 +extern double atanh(double __x) throw(); extern double __atanh(double __x) throw(); +# 95 +extern double exp(double __x) throw(); extern double __exp(double __x) throw(); +# 98 +extern double frexp(double __x, int * __exponent) throw(); extern double __frexp(double __x, int * __exponent) throw(); +# 101 +extern double ldexp(double __x, int __exponent) throw(); extern double __ldexp(double __x, int __exponent) throw(); +# 104 +extern double log(double __x) throw(); extern double __log(double __x) throw(); +# 107 +extern double log10(double __x) throw(); extern double __log10(double __x) throw(); +# 110 +extern double modf(double __x, double * __iptr) throw(); extern double __modf(double __x, double * __iptr) throw() __attribute((__nonnull__(2))); +# 114 +extern double exp10(double __x) throw(); extern double __exp10(double __x) throw(); +# 119 +extern double expm1(double __x) throw(); extern double __expm1(double __x) throw(); +# 122 +extern double log1p(double __x) throw(); extern double __log1p(double __x) throw(); +# 125 +extern double logb(double __x) throw(); extern double __logb(double __x) throw(); +# 130 +extern double exp2(double __x) throw(); extern double __exp2(double __x) throw(); +# 133 +extern double log2(double __x) throw(); extern double __log2(double __x) throw(); +# 140 +extern double pow(double __x, double __y) throw(); extern double __pow(double __x, double __y) throw(); +# 143 +extern double sqrt(double __x) throw(); extern double __sqrt(double __x) throw(); +# 147 +extern double hypot(double __x, double __y) throw(); extern double __hypot(double __x, double __y) throw(); +# 152 +extern double cbrt(double __x) throw(); extern double __cbrt(double __x) throw(); +# 159 +extern double ceil(double __x) throw() __attribute((const)); extern double __ceil(double __x) throw() __attribute((const)); +# 162 +extern double fabs(double __x) throw() __attribute((const)); extern double __fabs(double __x) throw() __attribute((const)); +# 165 +extern double floor(double __x) throw() __attribute((const)); extern double __floor(double __x) throw() __attribute((const)); +# 168 +extern double fmod(double __x, double __y) throw(); extern double __fmod(double __x, double __y) throw(); +# 182 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 +extern int finite(double __value) throw() __attribute((const)); +# 185 +extern double drem(double __x, double __y) throw(); extern double __drem(double __x, double __y) throw(); +# 189 +extern double significand(double __x) throw(); extern double __significand(double __x) throw(); +# 196 +extern double copysign(double __x, double __y) throw() __attribute((const)); extern double __copysign(double __x, double __y) throw() __attribute((const)); +# 201 +extern double nan(const char * __tagb) throw(); extern double __nan(const char * __tagb) throw(); +# 217 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 +extern double j0(double) throw(); extern double __j0(double) throw(); +# 218 +extern double j1(double) throw(); extern double __j1(double) throw(); +# 219 +extern double jn(int, double) throw(); extern double __jn(int, double) throw(); +# 220 +extern double y0(double) throw(); extern double __y0(double) throw(); +# 221 +extern double y1(double) throw(); extern double __y1(double) throw(); +# 222 +extern double yn(int, double) throw(); extern double __yn(int, double) throw(); +# 228 +extern double erf(double) throw(); extern double __erf(double) throw(); +# 229 +extern double erfc(double) throw(); extern double __erfc(double) throw(); +# 230 +extern double lgamma(double) throw(); extern double __lgamma(double) throw(); +# 235 +extern double tgamma(double) throw(); extern double __tgamma(double) throw(); +# 241 +extern double gamma(double) throw(); extern double __gamma(double) throw(); +# 249 +extern double lgamma_r(double, int * __signgamp) throw(); extern double __lgamma_r(double, int * __signgamp) throw(); +# 256 +extern double rint(double __x) throw(); extern double __rint(double __x) throw(); +# 259 +extern double nextafter(double __x, double __y) throw(); extern double __nextafter(double __x, double __y) throw(); +# 261 +extern double nexttoward(double __x, long double __y) throw(); extern double __nexttoward(double __x, long double __y) throw(); +# 266 +extern double nextdown(double __x) throw(); extern double __nextdown(double __x) throw(); +# 268 +extern double nextup(double __x) throw(); extern double __nextup(double __x) throw(); +# 272 +extern double remainder(double __x, double __y) throw(); extern double __remainder(double __x, double __y) throw(); +# 276 +extern double scalbn(double __x, int __n) throw(); extern double __scalbn(double __x, int __n) throw(); +# 280 +extern int ilogb(double __x) throw(); extern int __ilogb(double __x) throw(); +# 285 +extern long llogb(double __x) throw(); extern long __llogb(double __x) throw(); +# 290 +extern double scalbln(double __x, long __n) throw(); extern double __scalbln(double __x, long __n) throw(); +# 294 +extern double nearbyint(double __x) throw(); extern double __nearbyint(double __x) throw(); +# 298 +extern double round(double __x) throw() __attribute((const)); extern double __round(double __x) throw() __attribute((const)); +# 302 +extern double trunc(double __x) throw() __attribute((const)); extern double __trunc(double __x) throw() __attribute((const)); +# 307 +extern double remquo(double __x, double __y, int * __quo) throw(); extern double __remquo(double __x, double __y, int * __quo) throw(); +# 314 +extern long lrint(double __x) throw(); extern long __lrint(double __x) throw(); +# 316 +__extension__ extern long long llrint(double __x) throw(); extern long long __llrint(double __x) throw(); +# 320 +extern long lround(double __x) throw(); extern long __lround(double __x) throw(); +# 322 +__extension__ extern long long llround(double __x) throw(); extern long long __llround(double __x) throw(); +# 326 +extern double fdim(double __x, double __y) throw(); extern double __fdim(double __x, double __y) throw(); +# 329 +extern double fmax(double __x, double __y) throw() __attribute((const)); extern double __fmax(double __x, double __y) throw() __attribute((const)); +# 332 +extern double fmin(double __x, double __y) throw() __attribute((const)); extern double __fmin(double __x, double __y) throw() __attribute((const)); +# 335 +extern double fma(double __x, double __y, double __z) throw(); extern double __fma(double __x, double __y, double __z) throw(); +# 340 +extern double roundeven(double __x) throw() __attribute((const)); extern double __roundeven(double __x) throw() __attribute((const)); +# 344 +extern __intmax_t fromfp(double __x, int __round, unsigned __width) throw(); extern __intmax_t __fromfp(double __x, int __round, unsigned __width) throw(); +# 349 +extern __uintmax_t ufromfp(double __x, int __round, unsigned __width) throw(); extern __uintmax_t __ufromfp(double __x, int __round, unsigned __width) throw(); +# 355 +extern __intmax_t fromfpx(double __x, int __round, unsigned __width) throw(); extern __intmax_t __fromfpx(double __x, int __round, unsigned __width) throw(); +# 361 +extern __uintmax_t ufromfpx(double __x, int __round, unsigned __width) throw(); extern __uintmax_t __ufromfpx(double __x, int __round, unsigned __width) throw(); +# 365 +extern double fmaxmag(double __x, double __y) throw() __attribute((const)); extern double __fmaxmag(double __x, double __y) throw() __attribute((const)); +# 368 +extern double fminmag(double __x, double __y) throw() __attribute((const)); extern double __fminmag(double __x, double __y) throw() __attribute((const)); +# 371 +extern int canonicalize(double * __cx, const double * __x) throw(); +# 376 +extern int totalorder(const double * __x, const double * __y) throw() +# 378 + __attribute((__pure__)); +# 381 +extern int totalordermag(const double * __x, const double * __y) throw() +# 383 + __attribute((__pure__)); +# 386 +extern double getpayload(const double * __x) throw(); extern double __getpayload(const double * __x) throw(); +# 389 +extern int setpayload(double * __x, double __payload) throw(); +# 392 +extern int setpayloadsig(double * __x, double __payload) throw(); +# 400 +extern double scalb(double __x, double __n) throw(); extern double __scalb(double __x, double __n) throw(); +# 21 "/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h" 3 +extern int __fpclassifyf(float __value) throw() +# 22 + __attribute((const)); +# 25 +extern int __signbitf(float __value) throw() +# 26 + __attribute((const)); +# 30 +extern int __isinff(float __value) throw() __attribute((const)); +# 33 +extern int __finitef(float __value) throw() __attribute((const)); +# 36 +extern int __isnanf(float __value) throw() __attribute((const)); +# 39 +extern int __iseqsigf(float __x, float __y) throw(); +# 42 +extern int __issignalingf(float __value) throw() +# 43 + __attribute((const)); +# 53 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 +extern float acosf(float __x) throw(); extern float __acosf(float __x) throw(); +# 55 +extern float asinf(float __x) throw(); extern float __asinf(float __x) throw(); +# 57 +extern float atanf(float __x) throw(); extern float __atanf(float __x) throw(); +# 59 +extern float atan2f(float __y, float __x) throw(); extern float __atan2f(float __y, float __x) throw(); +# 62 +extern float cosf(float __x) throw(); +# 64 +extern float sinf(float __x) throw(); +# 66 +extern float tanf(float __x) throw(); +# 71 +extern float coshf(float __x) throw(); extern float __coshf(float __x) throw(); +# 73 +extern float sinhf(float __x) throw(); extern float __sinhf(float __x) throw(); +# 75 +extern float tanhf(float __x) throw(); extern float __tanhf(float __x) throw(); +# 79 +extern void sincosf(float __x, float * __sinx, float * __cosx) throw(); +# 85 +extern float acoshf(float __x) throw(); extern float __acoshf(float __x) throw(); +# 87 +extern float asinhf(float __x) throw(); extern float __asinhf(float __x) throw(); +# 89 +extern float atanhf(float __x) throw(); extern float __atanhf(float __x) throw(); +# 95 +extern float expf(float __x) throw(); +# 98 +extern float frexpf(float __x, int * __exponent) throw(); extern float __frexpf(float __x, int * __exponent) throw(); +# 101 +extern float ldexpf(float __x, int __exponent) throw(); extern float __ldexpf(float __x, int __exponent) throw(); +# 104 +extern float logf(float __x) throw(); +# 107 +extern float log10f(float __x) throw(); +# 110 +extern float modff(float __x, float * __iptr) throw(); extern float __modff(float __x, float * __iptr) throw() __attribute((__nonnull__(2))); +# 114 +extern float exp10f(float __x) throw(); +# 119 +extern float expm1f(float __x) throw(); extern float __expm1f(float __x) throw(); +# 122 +extern float log1pf(float __x) throw(); extern float __log1pf(float __x) throw(); +# 125 +extern float logbf(float __x) throw(); extern float __logbf(float __x) throw(); +# 130 +extern float exp2f(float __x) throw(); extern float __exp2f(float __x) throw(); +# 133 +extern float log2f(float __x) throw(); +# 140 +extern float powf(float __x, float __y) throw(); +# 143 +extern float sqrtf(float __x) throw(); extern float __sqrtf(float __x) throw(); +# 147 +extern float hypotf(float __x, float __y) throw(); extern float __hypotf(float __x, float __y) throw(); +# 152 +extern float cbrtf(float __x) throw(); extern float __cbrtf(float __x) throw(); +# 159 +extern float ceilf(float __x) throw() __attribute((const)); extern float __ceilf(float __x) throw() __attribute((const)); +# 162 +extern float fabsf(float __x) throw() __attribute((const)); extern float __fabsf(float __x) throw() __attribute((const)); +# 165 +extern float floorf(float __x) throw() __attribute((const)); extern float __floorf(float __x) throw() __attribute((const)); +# 168 +extern float fmodf(float __x, float __y) throw(); extern float __fmodf(float __x, float __y) throw(); +# 177 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 +extern int isinff(float __value) throw() __attribute((const)); +# 182 +extern int finitef(float __value) throw() __attribute((const)); +# 185 +extern float dremf(float __x, float __y) throw(); extern float __dremf(float __x, float __y) throw(); +# 189 +extern float significandf(float __x) throw(); extern float __significandf(float __x) throw(); +# 196 +extern float copysignf(float __x, float __y) throw() __attribute((const)); extern float __copysignf(float __x, float __y) throw() __attribute((const)); +# 201 +extern float nanf(const char * __tagb) throw(); extern float __nanf(const char * __tagb) throw(); +# 211 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 +extern int isnanf(float __value) throw() __attribute((const)); +# 217 +extern float j0f(float) throw(); extern float __j0f(float) throw(); +# 218 +extern float j1f(float) throw(); extern float __j1f(float) throw(); +# 219 +extern float jnf(int, float) throw(); extern float __jnf(int, float) throw(); +# 220 +extern float y0f(float) throw(); extern float __y0f(float) throw(); +# 221 +extern float y1f(float) throw(); extern float __y1f(float) throw(); +# 222 +extern float ynf(int, float) throw(); extern float __ynf(int, float) throw(); +# 228 +extern float erff(float) throw(); extern float __erff(float) throw(); +# 229 +extern float erfcf(float) throw(); extern float __erfcf(float) throw(); +# 230 +extern float lgammaf(float) throw(); extern float __lgammaf(float) throw(); +# 235 +extern float tgammaf(float) throw(); extern float __tgammaf(float) throw(); +# 241 +extern float gammaf(float) throw(); extern float __gammaf(float) throw(); +# 249 +extern float lgammaf_r(float, int * __signgamp) throw(); extern float __lgammaf_r(float, int * __signgamp) throw(); +# 256 +extern float rintf(float __x) throw(); extern float __rintf(float __x) throw(); +# 259 +extern float nextafterf(float __x, float __y) throw(); extern float __nextafterf(float __x, float __y) throw(); +# 261 +extern float nexttowardf(float __x, long double __y) throw(); extern float __nexttowardf(float __x, long double __y) throw(); +# 266 +extern float nextdownf(float __x) throw(); extern float __nextdownf(float __x) throw(); +# 268 +extern float nextupf(float __x) throw(); extern float __nextupf(float __x) throw(); +# 272 +extern float remainderf(float __x, float __y) throw(); extern float __remainderf(float __x, float __y) throw(); +# 276 +extern float scalbnf(float __x, int __n) throw(); extern float __scalbnf(float __x, int __n) throw(); +# 280 +extern int ilogbf(float __x) throw(); extern int __ilogbf(float __x) throw(); +# 285 +extern long llogbf(float __x) throw(); extern long __llogbf(float __x) throw(); +# 290 +extern float scalblnf(float __x, long __n) throw(); extern float __scalblnf(float __x, long __n) throw(); +# 294 +extern float nearbyintf(float __x) throw(); extern float __nearbyintf(float __x) throw(); +# 298 +extern float roundf(float __x) throw() __attribute((const)); extern float __roundf(float __x) throw() __attribute((const)); +# 302 +extern float truncf(float __x) throw() __attribute((const)); extern float __truncf(float __x) throw() __attribute((const)); +# 307 +extern float remquof(float __x, float __y, int * __quo) throw(); extern float __remquof(float __x, float __y, int * __quo) throw(); +# 314 +extern long lrintf(float __x) throw(); extern long __lrintf(float __x) throw(); +# 316 +__extension__ extern long long llrintf(float __x) throw(); extern long long __llrintf(float __x) throw(); +# 320 +extern long lroundf(float __x) throw(); extern long __lroundf(float __x) throw(); +# 322 +__extension__ extern long long llroundf(float __x) throw(); extern long long __llroundf(float __x) throw(); +# 326 +extern float fdimf(float __x, float __y) throw(); extern float __fdimf(float __x, float __y) throw(); +# 329 +extern float fmaxf(float __x, float __y) throw() __attribute((const)); extern float __fmaxf(float __x, float __y) throw() __attribute((const)); +# 332 +extern float fminf(float __x, float __y) throw() __attribute((const)); extern float __fminf(float __x, float __y) throw() __attribute((const)); +# 335 +extern float fmaf(float __x, float __y, float __z) throw(); extern float __fmaf(float __x, float __y, float __z) throw(); +# 340 +extern float roundevenf(float __x) throw() __attribute((const)); extern float __roundevenf(float __x) throw() __attribute((const)); +# 344 +extern __intmax_t fromfpf(float __x, int __round, unsigned __width) throw(); extern __intmax_t __fromfpf(float __x, int __round, unsigned __width) throw(); +# 349 +extern __uintmax_t ufromfpf(float __x, int __round, unsigned __width) throw(); extern __uintmax_t __ufromfpf(float __x, int __round, unsigned __width) throw(); +# 355 +extern __intmax_t fromfpxf(float __x, int __round, unsigned __width) throw(); extern __intmax_t __fromfpxf(float __x, int __round, unsigned __width) throw(); +# 361 +extern __uintmax_t ufromfpxf(float __x, int __round, unsigned __width) throw(); extern __uintmax_t __ufromfpxf(float __x, int __round, unsigned __width) throw(); +# 365 +extern float fmaxmagf(float __x, float __y) throw() __attribute((const)); extern float __fmaxmagf(float __x, float __y) throw() __attribute((const)); +# 368 +extern float fminmagf(float __x, float __y) throw() __attribute((const)); extern float __fminmagf(float __x, float __y) throw() __attribute((const)); +# 371 +extern int canonicalizef(float * __cx, const float * __x) throw(); +# 376 +extern int totalorderf(const float * __x, const float * __y) throw() +# 378 + __attribute((__pure__)); +# 381 +extern int totalordermagf(const float * __x, const float * __y) throw() +# 383 + __attribute((__pure__)); +# 386 +extern float getpayloadf(const float * __x) throw(); extern float __getpayloadf(const float * __x) throw(); +# 389 +extern int setpayloadf(float * __x, float __payload) throw(); +# 392 +extern int setpayloadsigf(float * __x, float __payload) throw(); +# 400 +extern float scalbf(float __x, float __n) throw(); extern float __scalbf(float __x, float __n) throw(); +# 21 "/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h" 3 +extern int __fpclassifyl(long double __value) throw() +# 22 + __attribute((const)); +# 25 +extern int __signbitl(long double __value) throw() +# 26 + __attribute((const)); +# 30 +extern int __isinfl(long double __value) throw() __attribute((const)); +# 33 +extern int __finitel(long double __value) throw() __attribute((const)); +# 36 +extern int __isnanl(long double __value) throw() __attribute((const)); +# 39 +extern int __iseqsigl(long double __x, long double __y) throw(); +# 42 +extern int __issignalingl(long double __value) throw() +# 43 + __attribute((const)); +# 53 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 +extern long double acosl(long double __x) throw(); extern long double __acosl(long double __x) throw(); +# 55 +extern long double asinl(long double __x) throw(); extern long double __asinl(long double __x) throw(); +# 57 +extern long double atanl(long double __x) throw(); extern long double __atanl(long double __x) throw(); +# 59 +extern long double atan2l(long double __y, long double __x) throw(); extern long double __atan2l(long double __y, long double __x) throw(); +# 62 +extern long double cosl(long double __x) throw(); extern long double __cosl(long double __x) throw(); +# 64 +extern long double sinl(long double __x) throw(); extern long double __sinl(long double __x) throw(); +# 66 +extern long double tanl(long double __x) throw(); extern long double __tanl(long double __x) throw(); +# 71 +extern long double coshl(long double __x) throw(); extern long double __coshl(long double __x) throw(); +# 73 +extern long double sinhl(long double __x) throw(); extern long double __sinhl(long double __x) throw(); +# 75 +extern long double tanhl(long double __x) throw(); extern long double __tanhl(long double __x) throw(); +# 79 +extern void sincosl(long double __x, long double * __sinx, long double * __cosx) throw(); extern void __sincosl(long double __x, long double * __sinx, long double * __cosx) throw(); +# 85 +extern long double acoshl(long double __x) throw(); extern long double __acoshl(long double __x) throw(); +# 87 +extern long double asinhl(long double __x) throw(); extern long double __asinhl(long double __x) throw(); +# 89 +extern long double atanhl(long double __x) throw(); extern long double __atanhl(long double __x) throw(); +# 95 +extern long double expl(long double __x) throw(); extern long double __expl(long double __x) throw(); +# 98 +extern long double frexpl(long double __x, int * __exponent) throw(); extern long double __frexpl(long double __x, int * __exponent) throw(); +# 101 +extern long double ldexpl(long double __x, int __exponent) throw(); extern long double __ldexpl(long double __x, int __exponent) throw(); +# 104 +extern long double logl(long double __x) throw(); extern long double __logl(long double __x) throw(); +# 107 +extern long double log10l(long double __x) throw(); extern long double __log10l(long double __x) throw(); +# 110 +extern long double modfl(long double __x, long double * __iptr) throw(); extern long double __modfl(long double __x, long double * __iptr) throw() __attribute((__nonnull__(2))); +# 114 +extern long double exp10l(long double __x) throw(); extern long double __exp10l(long double __x) throw(); +# 119 +extern long double expm1l(long double __x) throw(); extern long double __expm1l(long double __x) throw(); +# 122 +extern long double log1pl(long double __x) throw(); extern long double __log1pl(long double __x) throw(); +# 125 +extern long double logbl(long double __x) throw(); extern long double __logbl(long double __x) throw(); +# 130 +extern long double exp2l(long double __x) throw(); extern long double __exp2l(long double __x) throw(); +# 133 +extern long double log2l(long double __x) throw(); extern long double __log2l(long double __x) throw(); +# 140 +extern long double powl(long double __x, long double __y) throw(); extern long double __powl(long double __x, long double __y) throw(); +# 143 +extern long double sqrtl(long double __x) throw(); extern long double __sqrtl(long double __x) throw(); +# 147 +extern long double hypotl(long double __x, long double __y) throw(); extern long double __hypotl(long double __x, long double __y) throw(); +# 152 +extern long double cbrtl(long double __x) throw(); extern long double __cbrtl(long double __x) throw(); +# 159 +extern long double ceill(long double __x) throw() __attribute((const)); extern long double __ceill(long double __x) throw() __attribute((const)); +# 162 +extern long double fabsl(long double __x) throw() __attribute((const)); extern long double __fabsl(long double __x) throw() __attribute((const)); +# 165 +extern long double floorl(long double __x) throw() __attribute((const)); extern long double __floorl(long double __x) throw() __attribute((const)); +# 168 +extern long double fmodl(long double __x, long double __y) throw(); extern long double __fmodl(long double __x, long double __y) throw(); +# 177 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 +extern int isinfl(long double __value) throw() __attribute((const)); +# 182 +extern int finitel(long double __value) throw() __attribute((const)); +# 185 +extern long double dreml(long double __x, long double __y) throw(); extern long double __dreml(long double __x, long double __y) throw(); +# 189 +extern long double significandl(long double __x) throw(); extern long double __significandl(long double __x) throw(); +# 196 +extern long double copysignl(long double __x, long double __y) throw() __attribute((const)); extern long double __copysignl(long double __x, long double __y) throw() __attribute((const)); +# 201 +extern long double nanl(const char * __tagb) throw(); extern long double __nanl(const char * __tagb) throw(); +# 211 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 +extern int isnanl(long double __value) throw() __attribute((const)); +# 217 +extern long double j0l(long double) throw(); extern long double __j0l(long double) throw(); +# 218 +extern long double j1l(long double) throw(); extern long double __j1l(long double) throw(); +# 219 +extern long double jnl(int, long double) throw(); extern long double __jnl(int, long double) throw(); +# 220 +extern long double y0l(long double) throw(); extern long double __y0l(long double) throw(); +# 221 +extern long double y1l(long double) throw(); extern long double __y1l(long double) throw(); +# 222 +extern long double ynl(int, long double) throw(); extern long double __ynl(int, long double) throw(); +# 228 +extern long double erfl(long double) throw(); extern long double __erfl(long double) throw(); +# 229 +extern long double erfcl(long double) throw(); extern long double __erfcl(long double) throw(); +# 230 +extern long double lgammal(long double) throw(); extern long double __lgammal(long double) throw(); +# 235 +extern long double tgammal(long double) throw(); extern long double __tgammal(long double) throw(); +# 241 +extern long double gammal(long double) throw(); extern long double __gammal(long double) throw(); +# 249 +extern long double lgammal_r(long double, int * __signgamp) throw(); extern long double __lgammal_r(long double, int * __signgamp) throw(); +# 256 +extern long double rintl(long double __x) throw(); extern long double __rintl(long double __x) throw(); +# 259 +extern long double nextafterl(long double __x, long double __y) throw(); extern long double __nextafterl(long double __x, long double __y) throw(); +# 261 +extern long double nexttowardl(long double __x, long double __y) throw(); extern long double __nexttowardl(long double __x, long double __y) throw(); +# 266 +extern long double nextdownl(long double __x) throw(); extern long double __nextdownl(long double __x) throw(); +# 268 +extern long double nextupl(long double __x) throw(); extern long double __nextupl(long double __x) throw(); +# 272 +extern long double remainderl(long double __x, long double __y) throw(); extern long double __remainderl(long double __x, long double __y) throw(); +# 276 +extern long double scalbnl(long double __x, int __n) throw(); extern long double __scalbnl(long double __x, int __n) throw(); +# 280 +extern int ilogbl(long double __x) throw(); extern int __ilogbl(long double __x) throw(); +# 285 +extern long llogbl(long double __x) throw(); extern long __llogbl(long double __x) throw(); +# 290 +extern long double scalblnl(long double __x, long __n) throw(); extern long double __scalblnl(long double __x, long __n) throw(); +# 294 +extern long double nearbyintl(long double __x) throw(); extern long double __nearbyintl(long double __x) throw(); +# 298 +extern long double roundl(long double __x) throw() __attribute((const)); extern long double __roundl(long double __x) throw() __attribute((const)); +# 302 +extern long double truncl(long double __x) throw() __attribute((const)); extern long double __truncl(long double __x) throw() __attribute((const)); +# 307 +extern long double remquol(long double __x, long double __y, int * __quo) throw(); extern long double __remquol(long double __x, long double __y, int * __quo) throw(); +# 314 +extern long lrintl(long double __x) throw(); extern long __lrintl(long double __x) throw(); +# 316 +__extension__ extern long long llrintl(long double __x) throw(); extern long long __llrintl(long double __x) throw(); +# 320 +extern long lroundl(long double __x) throw(); extern long __lroundl(long double __x) throw(); +# 322 +__extension__ extern long long llroundl(long double __x) throw(); extern long long __llroundl(long double __x) throw(); +# 326 +extern long double fdiml(long double __x, long double __y) throw(); extern long double __fdiml(long double __x, long double __y) throw(); +# 329 +extern long double fmaxl(long double __x, long double __y) throw() __attribute((const)); extern long double __fmaxl(long double __x, long double __y) throw() __attribute((const)); +# 332 +extern long double fminl(long double __x, long double __y) throw() __attribute((const)); extern long double __fminl(long double __x, long double __y) throw() __attribute((const)); +# 335 +extern long double fmal(long double __x, long double __y, long double __z) throw(); extern long double __fmal(long double __x, long double __y, long double __z) throw(); +# 340 +extern long double roundevenl(long double __x) throw() __attribute((const)); extern long double __roundevenl(long double __x) throw() __attribute((const)); +# 344 +extern __intmax_t fromfpl(long double __x, int __round, unsigned __width) throw(); extern __intmax_t __fromfpl(long double __x, int __round, unsigned __width) throw(); +# 349 +extern __uintmax_t ufromfpl(long double __x, int __round, unsigned __width) throw(); extern __uintmax_t __ufromfpl(long double __x, int __round, unsigned __width) throw(); +# 355 +extern __intmax_t fromfpxl(long double __x, int __round, unsigned __width) throw(); extern __intmax_t __fromfpxl(long double __x, int __round, unsigned __width) throw(); +# 361 +extern __uintmax_t ufromfpxl(long double __x, int __round, unsigned __width) throw(); extern __uintmax_t __ufromfpxl(long double __x, int __round, unsigned __width) throw(); +# 365 +extern long double fmaxmagl(long double __x, long double __y) throw() __attribute((const)); extern long double __fmaxmagl(long double __x, long double __y) throw() __attribute((const)); +# 368 +extern long double fminmagl(long double __x, long double __y) throw() __attribute((const)); extern long double __fminmagl(long double __x, long double __y) throw() __attribute((const)); +# 371 +extern int canonicalizel(long double * __cx, const long double * __x) throw(); +# 376 +extern int totalorderl(const long double * __x, const long double * __y) throw() +# 378 + __attribute((__pure__)); +# 381 +extern int totalordermagl(const long double * __x, const long double * __y) throw() +# 383 + __attribute((__pure__)); +# 386 +extern long double getpayloadl(const long double * __x) throw(); extern long double __getpayloadl(const long double * __x) throw(); +# 389 +extern int setpayloadl(long double * __x, long double __payload) throw(); +# 392 +extern int setpayloadsigl(long double * __x, long double __payload) throw(); +# 400 +extern long double scalbl(long double __x, long double __n) throw(); extern long double __scalbl(long double __x, long double __n) throw(); +# 53 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 +extern _Float32 acosf32(_Float32 __x) throw(); extern _Float32 __acosf32(_Float32 __x) throw(); +# 55 +extern _Float32 asinf32(_Float32 __x) throw(); extern _Float32 __asinf32(_Float32 __x) throw(); +# 57 +extern _Float32 atanf32(_Float32 __x) throw(); extern _Float32 __atanf32(_Float32 __x) throw(); +# 59 +extern _Float32 atan2f32(_Float32 __y, _Float32 __x) throw(); extern _Float32 __atan2f32(_Float32 __y, _Float32 __x) throw(); +# 62 +extern _Float32 cosf32(_Float32 __x) throw(); extern _Float32 __cosf32(_Float32 __x) throw(); +# 64 +extern _Float32 sinf32(_Float32 __x) throw(); extern _Float32 __sinf32(_Float32 __x) throw(); +# 66 +extern _Float32 tanf32(_Float32 __x) throw(); extern _Float32 __tanf32(_Float32 __x) throw(); +# 71 +extern _Float32 coshf32(_Float32 __x) throw(); extern _Float32 __coshf32(_Float32 __x) throw(); +# 73 +extern _Float32 sinhf32(_Float32 __x) throw(); extern _Float32 __sinhf32(_Float32 __x) throw(); +# 75 +extern _Float32 tanhf32(_Float32 __x) throw(); extern _Float32 __tanhf32(_Float32 __x) throw(); +# 79 +extern void sincosf32(_Float32 __x, _Float32 * __sinx, _Float32 * __cosx) throw(); extern void __sincosf32(_Float32 __x, _Float32 * __sinx, _Float32 * __cosx) throw(); +# 85 +extern _Float32 acoshf32(_Float32 __x) throw(); extern _Float32 __acoshf32(_Float32 __x) throw(); +# 87 +extern _Float32 asinhf32(_Float32 __x) throw(); extern _Float32 __asinhf32(_Float32 __x) throw(); +# 89 +extern _Float32 atanhf32(_Float32 __x) throw(); extern _Float32 __atanhf32(_Float32 __x) throw(); +# 95 +extern _Float32 expf32(_Float32 __x) throw(); extern _Float32 __expf32(_Float32 __x) throw(); +# 98 +extern _Float32 frexpf32(_Float32 __x, int * __exponent) throw(); extern _Float32 __frexpf32(_Float32 __x, int * __exponent) throw(); +# 101 +extern _Float32 ldexpf32(_Float32 __x, int __exponent) throw(); extern _Float32 __ldexpf32(_Float32 __x, int __exponent) throw(); +# 104 +extern _Float32 logf32(_Float32 __x) throw(); extern _Float32 __logf32(_Float32 __x) throw(); +# 107 +extern _Float32 log10f32(_Float32 __x) throw(); extern _Float32 __log10f32(_Float32 __x) throw(); +# 110 +extern _Float32 modff32(_Float32 __x, _Float32 * __iptr) throw(); extern _Float32 __modff32(_Float32 __x, _Float32 * __iptr) throw() __attribute((__nonnull__(2))); +# 114 +extern _Float32 exp10f32(_Float32 __x) throw(); extern _Float32 __exp10f32(_Float32 __x) throw(); +# 119 +extern _Float32 expm1f32(_Float32 __x) throw(); extern _Float32 __expm1f32(_Float32 __x) throw(); +# 122 +extern _Float32 log1pf32(_Float32 __x) throw(); extern _Float32 __log1pf32(_Float32 __x) throw(); +# 125 +extern _Float32 logbf32(_Float32 __x) throw(); extern _Float32 __logbf32(_Float32 __x) throw(); +# 130 +extern _Float32 exp2f32(_Float32 __x) throw(); extern _Float32 __exp2f32(_Float32 __x) throw(); +# 133 +extern _Float32 log2f32(_Float32 __x) throw(); extern _Float32 __log2f32(_Float32 __x) throw(); +# 140 +extern _Float32 powf32(_Float32 __x, _Float32 __y) throw(); extern _Float32 __powf32(_Float32 __x, _Float32 __y) throw(); +# 143 +extern _Float32 sqrtf32(_Float32 __x) throw(); extern _Float32 __sqrtf32(_Float32 __x) throw(); +# 147 +extern _Float32 hypotf32(_Float32 __x, _Float32 __y) throw(); extern _Float32 __hypotf32(_Float32 __x, _Float32 __y) throw(); +# 152 +extern _Float32 cbrtf32(_Float32 __x) throw(); extern _Float32 __cbrtf32(_Float32 __x) throw(); +# 159 +extern _Float32 ceilf32(_Float32 __x) throw() __attribute((const)); extern _Float32 __ceilf32(_Float32 __x) throw() __attribute((const)); +# 162 +extern _Float32 fabsf32(_Float32 __x) throw() __attribute((const)); extern _Float32 __fabsf32(_Float32 __x) throw() __attribute((const)); +# 165 +extern _Float32 floorf32(_Float32 __x) throw() __attribute((const)); extern _Float32 __floorf32(_Float32 __x) throw() __attribute((const)); +# 168 +extern _Float32 fmodf32(_Float32 __x, _Float32 __y) throw(); extern _Float32 __fmodf32(_Float32 __x, _Float32 __y) throw(); +# 196 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 +extern _Float32 copysignf32(_Float32 __x, _Float32 __y) throw() __attribute((const)); extern _Float32 __copysignf32(_Float32 __x, _Float32 __y) throw() __attribute((const)); +# 201 +extern _Float32 nanf32(const char * __tagb) throw(); extern _Float32 __nanf32(const char * __tagb) throw(); +# 217 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 +extern _Float32 j0f32(_Float32) throw(); extern _Float32 __j0f32(_Float32) throw(); +# 218 +extern _Float32 j1f32(_Float32) throw(); extern _Float32 __j1f32(_Float32) throw(); +# 219 +extern _Float32 jnf32(int, _Float32) throw(); extern _Float32 __jnf32(int, _Float32) throw(); +# 220 +extern _Float32 y0f32(_Float32) throw(); extern _Float32 __y0f32(_Float32) throw(); +# 221 +extern _Float32 y1f32(_Float32) throw(); extern _Float32 __y1f32(_Float32) throw(); +# 222 +extern _Float32 ynf32(int, _Float32) throw(); extern _Float32 __ynf32(int, _Float32) throw(); +# 228 +extern _Float32 erff32(_Float32) throw(); extern _Float32 __erff32(_Float32) throw(); +# 229 +extern _Float32 erfcf32(_Float32) throw(); extern _Float32 __erfcf32(_Float32) throw(); +# 230 +extern _Float32 lgammaf32(_Float32) throw(); extern _Float32 __lgammaf32(_Float32) throw(); +# 235 +extern _Float32 tgammaf32(_Float32) throw(); extern _Float32 __tgammaf32(_Float32) throw(); +# 249 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 +extern _Float32 lgammaf32_r(_Float32, int * __signgamp) throw(); extern _Float32 __lgammaf32_r(_Float32, int * __signgamp) throw(); +# 256 +extern _Float32 rintf32(_Float32 __x) throw(); extern _Float32 __rintf32(_Float32 __x) throw(); +# 259 +extern _Float32 nextafterf32(_Float32 __x, _Float32 __y) throw(); extern _Float32 __nextafterf32(_Float32 __x, _Float32 __y) throw(); +# 266 +extern _Float32 nextdownf32(_Float32 __x) throw(); extern _Float32 __nextdownf32(_Float32 __x) throw(); +# 268 +extern _Float32 nextupf32(_Float32 __x) throw(); extern _Float32 __nextupf32(_Float32 __x) throw(); +# 272 +extern _Float32 remainderf32(_Float32 __x, _Float32 __y) throw(); extern _Float32 __remainderf32(_Float32 __x, _Float32 __y) throw(); +# 276 +extern _Float32 scalbnf32(_Float32 __x, int __n) throw(); extern _Float32 __scalbnf32(_Float32 __x, int __n) throw(); +# 280 +extern int ilogbf32(_Float32 __x) throw(); extern int __ilogbf32(_Float32 __x) throw(); +# 285 +extern long llogbf32(_Float32 __x) throw(); extern long __llogbf32(_Float32 __x) throw(); +# 290 +extern _Float32 scalblnf32(_Float32 __x, long __n) throw(); extern _Float32 __scalblnf32(_Float32 __x, long __n) throw(); +# 294 +extern _Float32 nearbyintf32(_Float32 __x) throw(); extern _Float32 __nearbyintf32(_Float32 __x) throw(); +# 298 +extern _Float32 roundf32(_Float32 __x) throw() __attribute((const)); extern _Float32 __roundf32(_Float32 __x) throw() __attribute((const)); +# 302 +extern _Float32 truncf32(_Float32 __x) throw() __attribute((const)); extern _Float32 __truncf32(_Float32 __x) throw() __attribute((const)); +# 307 +extern _Float32 remquof32(_Float32 __x, _Float32 __y, int * __quo) throw(); extern _Float32 __remquof32(_Float32 __x, _Float32 __y, int * __quo) throw(); +# 314 +extern long lrintf32(_Float32 __x) throw(); extern long __lrintf32(_Float32 __x) throw(); +# 316 +__extension__ extern long long llrintf32(_Float32 __x) throw(); extern long long __llrintf32(_Float32 __x) throw(); +# 320 +extern long lroundf32(_Float32 __x) throw(); extern long __lroundf32(_Float32 __x) throw(); +# 322 +__extension__ extern long long llroundf32(_Float32 __x) throw(); extern long long __llroundf32(_Float32 __x) throw(); +# 326 +extern _Float32 fdimf32(_Float32 __x, _Float32 __y) throw(); extern _Float32 __fdimf32(_Float32 __x, _Float32 __y) throw(); +# 329 +extern _Float32 fmaxf32(_Float32 __x, _Float32 __y) throw() __attribute((const)); extern _Float32 __fmaxf32(_Float32 __x, _Float32 __y) throw() __attribute((const)); +# 332 +extern _Float32 fminf32(_Float32 __x, _Float32 __y) throw() __attribute((const)); extern _Float32 __fminf32(_Float32 __x, _Float32 __y) throw() __attribute((const)); +# 335 +extern _Float32 fmaf32(_Float32 __x, _Float32 __y, _Float32 __z) throw(); extern _Float32 __fmaf32(_Float32 __x, _Float32 __y, _Float32 __z) throw(); +# 340 +extern _Float32 roundevenf32(_Float32 __x) throw() __attribute((const)); extern _Float32 __roundevenf32(_Float32 __x) throw() __attribute((const)); +# 344 +extern __intmax_t fromfpf32(_Float32 __x, int __round, unsigned __width) throw(); extern __intmax_t __fromfpf32(_Float32 __x, int __round, unsigned __width) throw(); +# 349 +extern __uintmax_t ufromfpf32(_Float32 __x, int __round, unsigned __width) throw(); extern __uintmax_t __ufromfpf32(_Float32 __x, int __round, unsigned __width) throw(); +# 355 +extern __intmax_t fromfpxf32(_Float32 __x, int __round, unsigned __width) throw(); extern __intmax_t __fromfpxf32(_Float32 __x, int __round, unsigned __width) throw(); +# 361 +extern __uintmax_t ufromfpxf32(_Float32 __x, int __round, unsigned __width) throw(); extern __uintmax_t __ufromfpxf32(_Float32 __x, int __round, unsigned __width) throw(); +# 365 +extern _Float32 fmaxmagf32(_Float32 __x, _Float32 __y) throw() __attribute((const)); extern _Float32 __fmaxmagf32(_Float32 __x, _Float32 __y) throw() __attribute((const)); +# 368 +extern _Float32 fminmagf32(_Float32 __x, _Float32 __y) throw() __attribute((const)); extern _Float32 __fminmagf32(_Float32 __x, _Float32 __y) throw() __attribute((const)); +# 371 +extern int canonicalizef32(_Float32 * __cx, const _Float32 * __x) throw(); +# 376 +extern int totalorderf32(const _Float32 * __x, const _Float32 * __y) throw() +# 378 + __attribute((__pure__)); +# 381 +extern int totalordermagf32(const _Float32 * __x, const _Float32 * __y) throw() +# 383 + __attribute((__pure__)); +# 386 +extern _Float32 getpayloadf32(const _Float32 * __x) throw(); extern _Float32 __getpayloadf32(const _Float32 * __x) throw(); +# 389 +extern int setpayloadf32(_Float32 * __x, _Float32 __payload) throw(); +# 392 +extern int setpayloadsigf32(_Float32 * __x, _Float32 __payload) throw(); +# 53 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 +extern _Float64 acosf64(_Float64 __x) throw(); extern _Float64 __acosf64(_Float64 __x) throw(); +# 55 +extern _Float64 asinf64(_Float64 __x) throw(); extern _Float64 __asinf64(_Float64 __x) throw(); +# 57 +extern _Float64 atanf64(_Float64 __x) throw(); extern _Float64 __atanf64(_Float64 __x) throw(); +# 59 +extern _Float64 atan2f64(_Float64 __y, _Float64 __x) throw(); extern _Float64 __atan2f64(_Float64 __y, _Float64 __x) throw(); +# 62 +extern _Float64 cosf64(_Float64 __x) throw(); extern _Float64 __cosf64(_Float64 __x) throw(); +# 64 +extern _Float64 sinf64(_Float64 __x) throw(); extern _Float64 __sinf64(_Float64 __x) throw(); +# 66 +extern _Float64 tanf64(_Float64 __x) throw(); extern _Float64 __tanf64(_Float64 __x) throw(); +# 71 +extern _Float64 coshf64(_Float64 __x) throw(); extern _Float64 __coshf64(_Float64 __x) throw(); +# 73 +extern _Float64 sinhf64(_Float64 __x) throw(); extern _Float64 __sinhf64(_Float64 __x) throw(); +# 75 +extern _Float64 tanhf64(_Float64 __x) throw(); extern _Float64 __tanhf64(_Float64 __x) throw(); +# 79 +extern void sincosf64(_Float64 __x, _Float64 * __sinx, _Float64 * __cosx) throw(); extern void __sincosf64(_Float64 __x, _Float64 * __sinx, _Float64 * __cosx) throw(); +# 85 +extern _Float64 acoshf64(_Float64 __x) throw(); extern _Float64 __acoshf64(_Float64 __x) throw(); +# 87 +extern _Float64 asinhf64(_Float64 __x) throw(); extern _Float64 __asinhf64(_Float64 __x) throw(); +# 89 +extern _Float64 atanhf64(_Float64 __x) throw(); extern _Float64 __atanhf64(_Float64 __x) throw(); +# 95 +extern _Float64 expf64(_Float64 __x) throw(); extern _Float64 __expf64(_Float64 __x) throw(); +# 98 +extern _Float64 frexpf64(_Float64 __x, int * __exponent) throw(); extern _Float64 __frexpf64(_Float64 __x, int * __exponent) throw(); +# 101 +extern _Float64 ldexpf64(_Float64 __x, int __exponent) throw(); extern _Float64 __ldexpf64(_Float64 __x, int __exponent) throw(); +# 104 +extern _Float64 logf64(_Float64 __x) throw(); extern _Float64 __logf64(_Float64 __x) throw(); +# 107 +extern _Float64 log10f64(_Float64 __x) throw(); extern _Float64 __log10f64(_Float64 __x) throw(); +# 110 +extern _Float64 modff64(_Float64 __x, _Float64 * __iptr) throw(); extern _Float64 __modff64(_Float64 __x, _Float64 * __iptr) throw() __attribute((__nonnull__(2))); +# 114 +extern _Float64 exp10f64(_Float64 __x) throw(); extern _Float64 __exp10f64(_Float64 __x) throw(); +# 119 +extern _Float64 expm1f64(_Float64 __x) throw(); extern _Float64 __expm1f64(_Float64 __x) throw(); +# 122 +extern _Float64 log1pf64(_Float64 __x) throw(); extern _Float64 __log1pf64(_Float64 __x) throw(); +# 125 +extern _Float64 logbf64(_Float64 __x) throw(); extern _Float64 __logbf64(_Float64 __x) throw(); +# 130 +extern _Float64 exp2f64(_Float64 __x) throw(); extern _Float64 __exp2f64(_Float64 __x) throw(); +# 133 +extern _Float64 log2f64(_Float64 __x) throw(); extern _Float64 __log2f64(_Float64 __x) throw(); +# 140 +extern _Float64 powf64(_Float64 __x, _Float64 __y) throw(); extern _Float64 __powf64(_Float64 __x, _Float64 __y) throw(); +# 143 +extern _Float64 sqrtf64(_Float64 __x) throw(); extern _Float64 __sqrtf64(_Float64 __x) throw(); +# 147 +extern _Float64 hypotf64(_Float64 __x, _Float64 __y) throw(); extern _Float64 __hypotf64(_Float64 __x, _Float64 __y) throw(); +# 152 +extern _Float64 cbrtf64(_Float64 __x) throw(); extern _Float64 __cbrtf64(_Float64 __x) throw(); +# 159 +extern _Float64 ceilf64(_Float64 __x) throw() __attribute((const)); extern _Float64 __ceilf64(_Float64 __x) throw() __attribute((const)); +# 162 +extern _Float64 fabsf64(_Float64 __x) throw() __attribute((const)); extern _Float64 __fabsf64(_Float64 __x) throw() __attribute((const)); +# 165 +extern _Float64 floorf64(_Float64 __x) throw() __attribute((const)); extern _Float64 __floorf64(_Float64 __x) throw() __attribute((const)); +# 168 +extern _Float64 fmodf64(_Float64 __x, _Float64 __y) throw(); extern _Float64 __fmodf64(_Float64 __x, _Float64 __y) throw(); +# 196 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 +extern _Float64 copysignf64(_Float64 __x, _Float64 __y) throw() __attribute((const)); extern _Float64 __copysignf64(_Float64 __x, _Float64 __y) throw() __attribute((const)); +# 201 +extern _Float64 nanf64(const char * __tagb) throw(); extern _Float64 __nanf64(const char * __tagb) throw(); +# 217 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 +extern _Float64 j0f64(_Float64) throw(); extern _Float64 __j0f64(_Float64) throw(); +# 218 +extern _Float64 j1f64(_Float64) throw(); extern _Float64 __j1f64(_Float64) throw(); +# 219 +extern _Float64 jnf64(int, _Float64) throw(); extern _Float64 __jnf64(int, _Float64) throw(); +# 220 +extern _Float64 y0f64(_Float64) throw(); extern _Float64 __y0f64(_Float64) throw(); +# 221 +extern _Float64 y1f64(_Float64) throw(); extern _Float64 __y1f64(_Float64) throw(); +# 222 +extern _Float64 ynf64(int, _Float64) throw(); extern _Float64 __ynf64(int, _Float64) throw(); +# 228 +extern _Float64 erff64(_Float64) throw(); extern _Float64 __erff64(_Float64) throw(); +# 229 +extern _Float64 erfcf64(_Float64) throw(); extern _Float64 __erfcf64(_Float64) throw(); +# 230 +extern _Float64 lgammaf64(_Float64) throw(); extern _Float64 __lgammaf64(_Float64) throw(); +# 235 +extern _Float64 tgammaf64(_Float64) throw(); extern _Float64 __tgammaf64(_Float64) throw(); +# 249 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 +extern _Float64 lgammaf64_r(_Float64, int * __signgamp) throw(); extern _Float64 __lgammaf64_r(_Float64, int * __signgamp) throw(); +# 256 +extern _Float64 rintf64(_Float64 __x) throw(); extern _Float64 __rintf64(_Float64 __x) throw(); +# 259 +extern _Float64 nextafterf64(_Float64 __x, _Float64 __y) throw(); extern _Float64 __nextafterf64(_Float64 __x, _Float64 __y) throw(); +# 266 +extern _Float64 nextdownf64(_Float64 __x) throw(); extern _Float64 __nextdownf64(_Float64 __x) throw(); +# 268 +extern _Float64 nextupf64(_Float64 __x) throw(); extern _Float64 __nextupf64(_Float64 __x) throw(); +# 272 +extern _Float64 remainderf64(_Float64 __x, _Float64 __y) throw(); extern _Float64 __remainderf64(_Float64 __x, _Float64 __y) throw(); +# 276 +extern _Float64 scalbnf64(_Float64 __x, int __n) throw(); extern _Float64 __scalbnf64(_Float64 __x, int __n) throw(); +# 280 +extern int ilogbf64(_Float64 __x) throw(); extern int __ilogbf64(_Float64 __x) throw(); +# 285 +extern long llogbf64(_Float64 __x) throw(); extern long __llogbf64(_Float64 __x) throw(); +# 290 +extern _Float64 scalblnf64(_Float64 __x, long __n) throw(); extern _Float64 __scalblnf64(_Float64 __x, long __n) throw(); +# 294 +extern _Float64 nearbyintf64(_Float64 __x) throw(); extern _Float64 __nearbyintf64(_Float64 __x) throw(); +# 298 +extern _Float64 roundf64(_Float64 __x) throw() __attribute((const)); extern _Float64 __roundf64(_Float64 __x) throw() __attribute((const)); +# 302 +extern _Float64 truncf64(_Float64 __x) throw() __attribute((const)); extern _Float64 __truncf64(_Float64 __x) throw() __attribute((const)); +# 307 +extern _Float64 remquof64(_Float64 __x, _Float64 __y, int * __quo) throw(); extern _Float64 __remquof64(_Float64 __x, _Float64 __y, int * __quo) throw(); +# 314 +extern long lrintf64(_Float64 __x) throw(); extern long __lrintf64(_Float64 __x) throw(); +# 316 +__extension__ extern long long llrintf64(_Float64 __x) throw(); extern long long __llrintf64(_Float64 __x) throw(); +# 320 +extern long lroundf64(_Float64 __x) throw(); extern long __lroundf64(_Float64 __x) throw(); +# 322 +__extension__ extern long long llroundf64(_Float64 __x) throw(); extern long long __llroundf64(_Float64 __x) throw(); +# 326 +extern _Float64 fdimf64(_Float64 __x, _Float64 __y) throw(); extern _Float64 __fdimf64(_Float64 __x, _Float64 __y) throw(); +# 329 +extern _Float64 fmaxf64(_Float64 __x, _Float64 __y) throw() __attribute((const)); extern _Float64 __fmaxf64(_Float64 __x, _Float64 __y) throw() __attribute((const)); +# 332 +extern _Float64 fminf64(_Float64 __x, _Float64 __y) throw() __attribute((const)); extern _Float64 __fminf64(_Float64 __x, _Float64 __y) throw() __attribute((const)); +# 335 +extern _Float64 fmaf64(_Float64 __x, _Float64 __y, _Float64 __z) throw(); extern _Float64 __fmaf64(_Float64 __x, _Float64 __y, _Float64 __z) throw(); +# 340 +extern _Float64 roundevenf64(_Float64 __x) throw() __attribute((const)); extern _Float64 __roundevenf64(_Float64 __x) throw() __attribute((const)); +# 344 +extern __intmax_t fromfpf64(_Float64 __x, int __round, unsigned __width) throw(); extern __intmax_t __fromfpf64(_Float64 __x, int __round, unsigned __width) throw(); +# 349 +extern __uintmax_t ufromfpf64(_Float64 __x, int __round, unsigned __width) throw(); extern __uintmax_t __ufromfpf64(_Float64 __x, int __round, unsigned __width) throw(); +# 355 +extern __intmax_t fromfpxf64(_Float64 __x, int __round, unsigned __width) throw(); extern __intmax_t __fromfpxf64(_Float64 __x, int __round, unsigned __width) throw(); +# 361 +extern __uintmax_t ufromfpxf64(_Float64 __x, int __round, unsigned __width) throw(); extern __uintmax_t __ufromfpxf64(_Float64 __x, int __round, unsigned __width) throw(); +# 365 +extern _Float64 fmaxmagf64(_Float64 __x, _Float64 __y) throw() __attribute((const)); extern _Float64 __fmaxmagf64(_Float64 __x, _Float64 __y) throw() __attribute((const)); +# 368 +extern _Float64 fminmagf64(_Float64 __x, _Float64 __y) throw() __attribute((const)); extern _Float64 __fminmagf64(_Float64 __x, _Float64 __y) throw() __attribute((const)); +# 371 +extern int canonicalizef64(_Float64 * __cx, const _Float64 * __x) throw(); +# 376 +extern int totalorderf64(const _Float64 * __x, const _Float64 * __y) throw() +# 378 + __attribute((__pure__)); +# 381 +extern int totalordermagf64(const _Float64 * __x, const _Float64 * __y) throw() +# 383 + __attribute((__pure__)); +# 386 +extern _Float64 getpayloadf64(const _Float64 * __x) throw(); extern _Float64 __getpayloadf64(const _Float64 * __x) throw(); +# 389 +extern int setpayloadf64(_Float64 * __x, _Float64 __payload) throw(); +# 392 +extern int setpayloadsigf64(_Float64 * __x, _Float64 __payload) throw(); +# 53 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 +extern _Float32x acosf32x(_Float32x __x) throw(); extern _Float32x __acosf32x(_Float32x __x) throw(); +# 55 +extern _Float32x asinf32x(_Float32x __x) throw(); extern _Float32x __asinf32x(_Float32x __x) throw(); +# 57 +extern _Float32x atanf32x(_Float32x __x) throw(); extern _Float32x __atanf32x(_Float32x __x) throw(); +# 59 +extern _Float32x atan2f32x(_Float32x __y, _Float32x __x) throw(); extern _Float32x __atan2f32x(_Float32x __y, _Float32x __x) throw(); +# 62 +extern _Float32x cosf32x(_Float32x __x) throw(); extern _Float32x __cosf32x(_Float32x __x) throw(); +# 64 +extern _Float32x sinf32x(_Float32x __x) throw(); extern _Float32x __sinf32x(_Float32x __x) throw(); +# 66 +extern _Float32x tanf32x(_Float32x __x) throw(); extern _Float32x __tanf32x(_Float32x __x) throw(); +# 71 +extern _Float32x coshf32x(_Float32x __x) throw(); extern _Float32x __coshf32x(_Float32x __x) throw(); +# 73 +extern _Float32x sinhf32x(_Float32x __x) throw(); extern _Float32x __sinhf32x(_Float32x __x) throw(); +# 75 +extern _Float32x tanhf32x(_Float32x __x) throw(); extern _Float32x __tanhf32x(_Float32x __x) throw(); +# 79 +extern void sincosf32x(_Float32x __x, _Float32x * __sinx, _Float32x * __cosx) throw(); extern void __sincosf32x(_Float32x __x, _Float32x * __sinx, _Float32x * __cosx) throw(); +# 85 +extern _Float32x acoshf32x(_Float32x __x) throw(); extern _Float32x __acoshf32x(_Float32x __x) throw(); +# 87 +extern _Float32x asinhf32x(_Float32x __x) throw(); extern _Float32x __asinhf32x(_Float32x __x) throw(); +# 89 +extern _Float32x atanhf32x(_Float32x __x) throw(); extern _Float32x __atanhf32x(_Float32x __x) throw(); +# 95 +extern _Float32x expf32x(_Float32x __x) throw(); extern _Float32x __expf32x(_Float32x __x) throw(); +# 98 +extern _Float32x frexpf32x(_Float32x __x, int * __exponent) throw(); extern _Float32x __frexpf32x(_Float32x __x, int * __exponent) throw(); +# 101 +extern _Float32x ldexpf32x(_Float32x __x, int __exponent) throw(); extern _Float32x __ldexpf32x(_Float32x __x, int __exponent) throw(); +# 104 +extern _Float32x logf32x(_Float32x __x) throw(); extern _Float32x __logf32x(_Float32x __x) throw(); +# 107 +extern _Float32x log10f32x(_Float32x __x) throw(); extern _Float32x __log10f32x(_Float32x __x) throw(); +# 110 +extern _Float32x modff32x(_Float32x __x, _Float32x * __iptr) throw(); extern _Float32x __modff32x(_Float32x __x, _Float32x * __iptr) throw() __attribute((__nonnull__(2))); +# 114 +extern _Float32x exp10f32x(_Float32x __x) throw(); extern _Float32x __exp10f32x(_Float32x __x) throw(); +# 119 +extern _Float32x expm1f32x(_Float32x __x) throw(); extern _Float32x __expm1f32x(_Float32x __x) throw(); +# 122 +extern _Float32x log1pf32x(_Float32x __x) throw(); extern _Float32x __log1pf32x(_Float32x __x) throw(); +# 125 +extern _Float32x logbf32x(_Float32x __x) throw(); extern _Float32x __logbf32x(_Float32x __x) throw(); +# 130 +extern _Float32x exp2f32x(_Float32x __x) throw(); extern _Float32x __exp2f32x(_Float32x __x) throw(); +# 133 +extern _Float32x log2f32x(_Float32x __x) throw(); extern _Float32x __log2f32x(_Float32x __x) throw(); +# 140 +extern _Float32x powf32x(_Float32x __x, _Float32x __y) throw(); extern _Float32x __powf32x(_Float32x __x, _Float32x __y) throw(); +# 143 +extern _Float32x sqrtf32x(_Float32x __x) throw(); extern _Float32x __sqrtf32x(_Float32x __x) throw(); +# 147 +extern _Float32x hypotf32x(_Float32x __x, _Float32x __y) throw(); extern _Float32x __hypotf32x(_Float32x __x, _Float32x __y) throw(); +# 152 +extern _Float32x cbrtf32x(_Float32x __x) throw(); extern _Float32x __cbrtf32x(_Float32x __x) throw(); +# 159 +extern _Float32x ceilf32x(_Float32x __x) throw() __attribute((const)); extern _Float32x __ceilf32x(_Float32x __x) throw() __attribute((const)); +# 162 +extern _Float32x fabsf32x(_Float32x __x) throw() __attribute((const)); extern _Float32x __fabsf32x(_Float32x __x) throw() __attribute((const)); +# 165 +extern _Float32x floorf32x(_Float32x __x) throw() __attribute((const)); extern _Float32x __floorf32x(_Float32x __x) throw() __attribute((const)); +# 168 +extern _Float32x fmodf32x(_Float32x __x, _Float32x __y) throw(); extern _Float32x __fmodf32x(_Float32x __x, _Float32x __y) throw(); +# 196 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 +extern _Float32x copysignf32x(_Float32x __x, _Float32x __y) throw() __attribute((const)); extern _Float32x __copysignf32x(_Float32x __x, _Float32x __y) throw() __attribute((const)); +# 201 +extern _Float32x nanf32x(const char * __tagb) throw(); extern _Float32x __nanf32x(const char * __tagb) throw(); +# 217 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 +extern _Float32x j0f32x(_Float32x) throw(); extern _Float32x __j0f32x(_Float32x) throw(); +# 218 +extern _Float32x j1f32x(_Float32x) throw(); extern _Float32x __j1f32x(_Float32x) throw(); +# 219 +extern _Float32x jnf32x(int, _Float32x) throw(); extern _Float32x __jnf32x(int, _Float32x) throw(); +# 220 +extern _Float32x y0f32x(_Float32x) throw(); extern _Float32x __y0f32x(_Float32x) throw(); +# 221 +extern _Float32x y1f32x(_Float32x) throw(); extern _Float32x __y1f32x(_Float32x) throw(); +# 222 +extern _Float32x ynf32x(int, _Float32x) throw(); extern _Float32x __ynf32x(int, _Float32x) throw(); +# 228 +extern _Float32x erff32x(_Float32x) throw(); extern _Float32x __erff32x(_Float32x) throw(); +# 229 +extern _Float32x erfcf32x(_Float32x) throw(); extern _Float32x __erfcf32x(_Float32x) throw(); +# 230 +extern _Float32x lgammaf32x(_Float32x) throw(); extern _Float32x __lgammaf32x(_Float32x) throw(); +# 235 +extern _Float32x tgammaf32x(_Float32x) throw(); extern _Float32x __tgammaf32x(_Float32x) throw(); +# 249 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 +extern _Float32x lgammaf32x_r(_Float32x, int * __signgamp) throw(); extern _Float32x __lgammaf32x_r(_Float32x, int * __signgamp) throw(); +# 256 +extern _Float32x rintf32x(_Float32x __x) throw(); extern _Float32x __rintf32x(_Float32x __x) throw(); +# 259 +extern _Float32x nextafterf32x(_Float32x __x, _Float32x __y) throw(); extern _Float32x __nextafterf32x(_Float32x __x, _Float32x __y) throw(); +# 266 +extern _Float32x nextdownf32x(_Float32x __x) throw(); extern _Float32x __nextdownf32x(_Float32x __x) throw(); +# 268 +extern _Float32x nextupf32x(_Float32x __x) throw(); extern _Float32x __nextupf32x(_Float32x __x) throw(); +# 272 +extern _Float32x remainderf32x(_Float32x __x, _Float32x __y) throw(); extern _Float32x __remainderf32x(_Float32x __x, _Float32x __y) throw(); +# 276 +extern _Float32x scalbnf32x(_Float32x __x, int __n) throw(); extern _Float32x __scalbnf32x(_Float32x __x, int __n) throw(); +# 280 +extern int ilogbf32x(_Float32x __x) throw(); extern int __ilogbf32x(_Float32x __x) throw(); +# 285 +extern long llogbf32x(_Float32x __x) throw(); extern long __llogbf32x(_Float32x __x) throw(); +# 290 +extern _Float32x scalblnf32x(_Float32x __x, long __n) throw(); extern _Float32x __scalblnf32x(_Float32x __x, long __n) throw(); +# 294 +extern _Float32x nearbyintf32x(_Float32x __x) throw(); extern _Float32x __nearbyintf32x(_Float32x __x) throw(); +# 298 +extern _Float32x roundf32x(_Float32x __x) throw() __attribute((const)); extern _Float32x __roundf32x(_Float32x __x) throw() __attribute((const)); +# 302 +extern _Float32x truncf32x(_Float32x __x) throw() __attribute((const)); extern _Float32x __truncf32x(_Float32x __x) throw() __attribute((const)); +# 307 +extern _Float32x remquof32x(_Float32x __x, _Float32x __y, int * __quo) throw(); extern _Float32x __remquof32x(_Float32x __x, _Float32x __y, int * __quo) throw(); +# 314 +extern long lrintf32x(_Float32x __x) throw(); extern long __lrintf32x(_Float32x __x) throw(); +# 316 +__extension__ extern long long llrintf32x(_Float32x __x) throw(); extern long long __llrintf32x(_Float32x __x) throw(); +# 320 +extern long lroundf32x(_Float32x __x) throw(); extern long __lroundf32x(_Float32x __x) throw(); +# 322 +__extension__ extern long long llroundf32x(_Float32x __x) throw(); extern long long __llroundf32x(_Float32x __x) throw(); +# 326 +extern _Float32x fdimf32x(_Float32x __x, _Float32x __y) throw(); extern _Float32x __fdimf32x(_Float32x __x, _Float32x __y) throw(); +# 329 +extern _Float32x fmaxf32x(_Float32x __x, _Float32x __y) throw() __attribute((const)); extern _Float32x __fmaxf32x(_Float32x __x, _Float32x __y) throw() __attribute((const)); +# 332 +extern _Float32x fminf32x(_Float32x __x, _Float32x __y) throw() __attribute((const)); extern _Float32x __fminf32x(_Float32x __x, _Float32x __y) throw() __attribute((const)); +# 335 +extern _Float32x fmaf32x(_Float32x __x, _Float32x __y, _Float32x __z) throw(); extern _Float32x __fmaf32x(_Float32x __x, _Float32x __y, _Float32x __z) throw(); +# 340 +extern _Float32x roundevenf32x(_Float32x __x) throw() __attribute((const)); extern _Float32x __roundevenf32x(_Float32x __x) throw() __attribute((const)); +# 344 +extern __intmax_t fromfpf32x(_Float32x __x, int __round, unsigned __width) throw(); extern __intmax_t __fromfpf32x(_Float32x __x, int __round, unsigned __width) throw(); +# 349 +extern __uintmax_t ufromfpf32x(_Float32x __x, int __round, unsigned __width) throw(); extern __uintmax_t __ufromfpf32x(_Float32x __x, int __round, unsigned __width) throw(); +# 355 +extern __intmax_t fromfpxf32x(_Float32x __x, int __round, unsigned __width) throw(); extern __intmax_t __fromfpxf32x(_Float32x __x, int __round, unsigned __width) throw(); +# 361 +extern __uintmax_t ufromfpxf32x(_Float32x __x, int __round, unsigned __width) throw(); extern __uintmax_t __ufromfpxf32x(_Float32x __x, int __round, unsigned __width) throw(); +# 365 +extern _Float32x fmaxmagf32x(_Float32x __x, _Float32x __y) throw() __attribute((const)); extern _Float32x __fmaxmagf32x(_Float32x __x, _Float32x __y) throw() __attribute((const)); +# 368 +extern _Float32x fminmagf32x(_Float32x __x, _Float32x __y) throw() __attribute((const)); extern _Float32x __fminmagf32x(_Float32x __x, _Float32x __y) throw() __attribute((const)); +# 371 +extern int canonicalizef32x(_Float32x * __cx, const _Float32x * __x) throw(); +# 376 +extern int totalorderf32x(const _Float32x * __x, const _Float32x * __y) throw() +# 378 + __attribute((__pure__)); +# 381 +extern int totalordermagf32x(const _Float32x * __x, const _Float32x * __y) throw() +# 383 + __attribute((__pure__)); +# 386 +extern _Float32x getpayloadf32x(const _Float32x * __x) throw(); extern _Float32x __getpayloadf32x(const _Float32x * __x) throw(); +# 389 +extern int setpayloadf32x(_Float32x * __x, _Float32x __payload) throw(); +# 392 +extern int setpayloadsigf32x(_Float32x * __x, _Float32x __payload) throw(); +# 53 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 +extern _Float64x acosf64x(_Float64x __x) throw(); extern _Float64x __acosf64x(_Float64x __x) throw(); +# 55 +extern _Float64x asinf64x(_Float64x __x) throw(); extern _Float64x __asinf64x(_Float64x __x) throw(); +# 57 +extern _Float64x atanf64x(_Float64x __x) throw(); extern _Float64x __atanf64x(_Float64x __x) throw(); +# 59 +extern _Float64x atan2f64x(_Float64x __y, _Float64x __x) throw(); extern _Float64x __atan2f64x(_Float64x __y, _Float64x __x) throw(); +# 62 +extern _Float64x cosf64x(_Float64x __x) throw(); extern _Float64x __cosf64x(_Float64x __x) throw(); +# 64 +extern _Float64x sinf64x(_Float64x __x) throw(); extern _Float64x __sinf64x(_Float64x __x) throw(); +# 66 +extern _Float64x tanf64x(_Float64x __x) throw(); extern _Float64x __tanf64x(_Float64x __x) throw(); +# 71 +extern _Float64x coshf64x(_Float64x __x) throw(); extern _Float64x __coshf64x(_Float64x __x) throw(); +# 73 +extern _Float64x sinhf64x(_Float64x __x) throw(); extern _Float64x __sinhf64x(_Float64x __x) throw(); +# 75 +extern _Float64x tanhf64x(_Float64x __x) throw(); extern _Float64x __tanhf64x(_Float64x __x) throw(); +# 79 +extern void sincosf64x(_Float64x __x, _Float64x * __sinx, _Float64x * __cosx) throw(); extern void __sincosf64x(_Float64x __x, _Float64x * __sinx, _Float64x * __cosx) throw(); +# 85 +extern _Float64x acoshf64x(_Float64x __x) throw(); extern _Float64x __acoshf64x(_Float64x __x) throw(); +# 87 +extern _Float64x asinhf64x(_Float64x __x) throw(); extern _Float64x __asinhf64x(_Float64x __x) throw(); +# 89 +extern _Float64x atanhf64x(_Float64x __x) throw(); extern _Float64x __atanhf64x(_Float64x __x) throw(); +# 95 +extern _Float64x expf64x(_Float64x __x) throw(); extern _Float64x __expf64x(_Float64x __x) throw(); +# 98 +extern _Float64x frexpf64x(_Float64x __x, int * __exponent) throw(); extern _Float64x __frexpf64x(_Float64x __x, int * __exponent) throw(); +# 101 +extern _Float64x ldexpf64x(_Float64x __x, int __exponent) throw(); extern _Float64x __ldexpf64x(_Float64x __x, int __exponent) throw(); +# 104 +extern _Float64x logf64x(_Float64x __x) throw(); extern _Float64x __logf64x(_Float64x __x) throw(); +# 107 +extern _Float64x log10f64x(_Float64x __x) throw(); extern _Float64x __log10f64x(_Float64x __x) throw(); +# 110 +extern _Float64x modff64x(_Float64x __x, _Float64x * __iptr) throw(); extern _Float64x __modff64x(_Float64x __x, _Float64x * __iptr) throw() __attribute((__nonnull__(2))); +# 114 +extern _Float64x exp10f64x(_Float64x __x) throw(); extern _Float64x __exp10f64x(_Float64x __x) throw(); +# 119 +extern _Float64x expm1f64x(_Float64x __x) throw(); extern _Float64x __expm1f64x(_Float64x __x) throw(); +# 122 +extern _Float64x log1pf64x(_Float64x __x) throw(); extern _Float64x __log1pf64x(_Float64x __x) throw(); +# 125 +extern _Float64x logbf64x(_Float64x __x) throw(); extern _Float64x __logbf64x(_Float64x __x) throw(); +# 130 +extern _Float64x exp2f64x(_Float64x __x) throw(); extern _Float64x __exp2f64x(_Float64x __x) throw(); +# 133 +extern _Float64x log2f64x(_Float64x __x) throw(); extern _Float64x __log2f64x(_Float64x __x) throw(); +# 140 +extern _Float64x powf64x(_Float64x __x, _Float64x __y) throw(); extern _Float64x __powf64x(_Float64x __x, _Float64x __y) throw(); +# 143 +extern _Float64x sqrtf64x(_Float64x __x) throw(); extern _Float64x __sqrtf64x(_Float64x __x) throw(); +# 147 +extern _Float64x hypotf64x(_Float64x __x, _Float64x __y) throw(); extern _Float64x __hypotf64x(_Float64x __x, _Float64x __y) throw(); +# 152 +extern _Float64x cbrtf64x(_Float64x __x) throw(); extern _Float64x __cbrtf64x(_Float64x __x) throw(); +# 159 +extern _Float64x ceilf64x(_Float64x __x) throw() __attribute((const)); extern _Float64x __ceilf64x(_Float64x __x) throw() __attribute((const)); +# 162 +extern _Float64x fabsf64x(_Float64x __x) throw() __attribute((const)); extern _Float64x __fabsf64x(_Float64x __x) throw() __attribute((const)); +# 165 +extern _Float64x floorf64x(_Float64x __x) throw() __attribute((const)); extern _Float64x __floorf64x(_Float64x __x) throw() __attribute((const)); +# 168 +extern _Float64x fmodf64x(_Float64x __x, _Float64x __y) throw(); extern _Float64x __fmodf64x(_Float64x __x, _Float64x __y) throw(); +# 196 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 +extern _Float64x copysignf64x(_Float64x __x, _Float64x __y) throw() __attribute((const)); extern _Float64x __copysignf64x(_Float64x __x, _Float64x __y) throw() __attribute((const)); +# 201 +extern _Float64x nanf64x(const char * __tagb) throw(); extern _Float64x __nanf64x(const char * __tagb) throw(); +# 217 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 +extern _Float64x j0f64x(_Float64x) throw(); extern _Float64x __j0f64x(_Float64x) throw(); +# 218 +extern _Float64x j1f64x(_Float64x) throw(); extern _Float64x __j1f64x(_Float64x) throw(); +# 219 +extern _Float64x jnf64x(int, _Float64x) throw(); extern _Float64x __jnf64x(int, _Float64x) throw(); +# 220 +extern _Float64x y0f64x(_Float64x) throw(); extern _Float64x __y0f64x(_Float64x) throw(); +# 221 +extern _Float64x y1f64x(_Float64x) throw(); extern _Float64x __y1f64x(_Float64x) throw(); +# 222 +extern _Float64x ynf64x(int, _Float64x) throw(); extern _Float64x __ynf64x(int, _Float64x) throw(); +# 228 +extern _Float64x erff64x(_Float64x) throw(); extern _Float64x __erff64x(_Float64x) throw(); +# 229 +extern _Float64x erfcf64x(_Float64x) throw(); extern _Float64x __erfcf64x(_Float64x) throw(); +# 230 +extern _Float64x lgammaf64x(_Float64x) throw(); extern _Float64x __lgammaf64x(_Float64x) throw(); +# 235 +extern _Float64x tgammaf64x(_Float64x) throw(); extern _Float64x __tgammaf64x(_Float64x) throw(); +# 249 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 +extern _Float64x lgammaf64x_r(_Float64x, int * __signgamp) throw(); extern _Float64x __lgammaf64x_r(_Float64x, int * __signgamp) throw(); +# 256 +extern _Float64x rintf64x(_Float64x __x) throw(); extern _Float64x __rintf64x(_Float64x __x) throw(); +# 259 +extern _Float64x nextafterf64x(_Float64x __x, _Float64x __y) throw(); extern _Float64x __nextafterf64x(_Float64x __x, _Float64x __y) throw(); +# 266 +extern _Float64x nextdownf64x(_Float64x __x) throw(); extern _Float64x __nextdownf64x(_Float64x __x) throw(); +# 268 +extern _Float64x nextupf64x(_Float64x __x) throw(); extern _Float64x __nextupf64x(_Float64x __x) throw(); +# 272 +extern _Float64x remainderf64x(_Float64x __x, _Float64x __y) throw(); extern _Float64x __remainderf64x(_Float64x __x, _Float64x __y) throw(); +# 276 +extern _Float64x scalbnf64x(_Float64x __x, int __n) throw(); extern _Float64x __scalbnf64x(_Float64x __x, int __n) throw(); +# 280 +extern int ilogbf64x(_Float64x __x) throw(); extern int __ilogbf64x(_Float64x __x) throw(); +# 285 +extern long llogbf64x(_Float64x __x) throw(); extern long __llogbf64x(_Float64x __x) throw(); +# 290 +extern _Float64x scalblnf64x(_Float64x __x, long __n) throw(); extern _Float64x __scalblnf64x(_Float64x __x, long __n) throw(); +# 294 +extern _Float64x nearbyintf64x(_Float64x __x) throw(); extern _Float64x __nearbyintf64x(_Float64x __x) throw(); +# 298 +extern _Float64x roundf64x(_Float64x __x) throw() __attribute((const)); extern _Float64x __roundf64x(_Float64x __x) throw() __attribute((const)); +# 302 +extern _Float64x truncf64x(_Float64x __x) throw() __attribute((const)); extern _Float64x __truncf64x(_Float64x __x) throw() __attribute((const)); +# 307 +extern _Float64x remquof64x(_Float64x __x, _Float64x __y, int * __quo) throw(); extern _Float64x __remquof64x(_Float64x __x, _Float64x __y, int * __quo) throw(); +# 314 +extern long lrintf64x(_Float64x __x) throw(); extern long __lrintf64x(_Float64x __x) throw(); +# 316 +__extension__ extern long long llrintf64x(_Float64x __x) throw(); extern long long __llrintf64x(_Float64x __x) throw(); +# 320 +extern long lroundf64x(_Float64x __x) throw(); extern long __lroundf64x(_Float64x __x) throw(); +# 322 +__extension__ extern long long llroundf64x(_Float64x __x) throw(); extern long long __llroundf64x(_Float64x __x) throw(); +# 326 +extern _Float64x fdimf64x(_Float64x __x, _Float64x __y) throw(); extern _Float64x __fdimf64x(_Float64x __x, _Float64x __y) throw(); +# 329 +extern _Float64x fmaxf64x(_Float64x __x, _Float64x __y) throw() __attribute((const)); extern _Float64x __fmaxf64x(_Float64x __x, _Float64x __y) throw() __attribute((const)); +# 332 +extern _Float64x fminf64x(_Float64x __x, _Float64x __y) throw() __attribute((const)); extern _Float64x __fminf64x(_Float64x __x, _Float64x __y) throw() __attribute((const)); +# 335 +extern _Float64x fmaf64x(_Float64x __x, _Float64x __y, _Float64x __z) throw(); extern _Float64x __fmaf64x(_Float64x __x, _Float64x __y, _Float64x __z) throw(); +# 340 +extern _Float64x roundevenf64x(_Float64x __x) throw() __attribute((const)); extern _Float64x __roundevenf64x(_Float64x __x) throw() __attribute((const)); +# 344 +extern __intmax_t fromfpf64x(_Float64x __x, int __round, unsigned __width) throw(); extern __intmax_t __fromfpf64x(_Float64x __x, int __round, unsigned __width) throw(); +# 349 +extern __uintmax_t ufromfpf64x(_Float64x __x, int __round, unsigned __width) throw(); extern __uintmax_t __ufromfpf64x(_Float64x __x, int __round, unsigned __width) throw(); +# 355 +extern __intmax_t fromfpxf64x(_Float64x __x, int __round, unsigned __width) throw(); extern __intmax_t __fromfpxf64x(_Float64x __x, int __round, unsigned __width) throw(); +# 361 +extern __uintmax_t ufromfpxf64x(_Float64x __x, int __round, unsigned __width) throw(); extern __uintmax_t __ufromfpxf64x(_Float64x __x, int __round, unsigned __width) throw(); +# 365 +extern _Float64x fmaxmagf64x(_Float64x __x, _Float64x __y) throw() __attribute((const)); extern _Float64x __fmaxmagf64x(_Float64x __x, _Float64x __y) throw() __attribute((const)); +# 368 +extern _Float64x fminmagf64x(_Float64x __x, _Float64x __y) throw() __attribute((const)); extern _Float64x __fminmagf64x(_Float64x __x, _Float64x __y) throw() __attribute((const)); +# 371 +extern int canonicalizef64x(_Float64x * __cx, const _Float64x * __x) throw(); +# 376 +extern int totalorderf64x(const _Float64x * __x, const _Float64x * __y) throw() +# 378 + __attribute((__pure__)); +# 381 +extern int totalordermagf64x(const _Float64x * __x, const _Float64x * __y) throw() +# 383 + __attribute((__pure__)); +# 386 +extern _Float64x getpayloadf64x(const _Float64x * __x) throw(); extern _Float64x __getpayloadf64x(const _Float64x * __x) throw(); +# 389 +extern int setpayloadf64x(_Float64x * __x, _Float64x __payload) throw(); +# 392 +extern int setpayloadsigf64x(_Float64x * __x, _Float64x __payload) throw(); +# 24 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 3 +extern float fadd(double __x, double __y) throw(); +# 27 +extern float fdiv(double __x, double __y) throw(); +# 30 +extern float fmul(double __x, double __y) throw(); +# 33 +extern float fsub(double __x, double __y) throw(); +# 24 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 3 +extern float faddl(long double __x, long double __y) throw(); +# 27 +extern float fdivl(long double __x, long double __y) throw(); +# 30 +extern float fmull(long double __x, long double __y) throw(); +# 33 +extern float fsubl(long double __x, long double __y) throw(); +# 24 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 3 +extern double daddl(long double __x, long double __y) throw(); +# 27 +extern double ddivl(long double __x, long double __y) throw(); +# 30 +extern double dmull(long double __x, long double __y) throw(); +# 33 +extern double dsubl(long double __x, long double __y) throw(); +# 24 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 3 +extern _Float32 f32addf32x(_Float32x __x, _Float32x __y) throw(); +# 27 +extern _Float32 f32divf32x(_Float32x __x, _Float32x __y) throw(); +# 30 +extern _Float32 f32mulf32x(_Float32x __x, _Float32x __y) throw(); +# 33 +extern _Float32 f32subf32x(_Float32x __x, _Float32x __y) throw(); +# 24 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 3 +extern _Float32 f32addf64(_Float64 __x, _Float64 __y) throw(); +# 27 +extern _Float32 f32divf64(_Float64 __x, _Float64 __y) throw(); +# 30 +extern _Float32 f32mulf64(_Float64 __x, _Float64 __y) throw(); +# 33 +extern _Float32 f32subf64(_Float64 __x, _Float64 __y) throw(); +# 24 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 3 +extern _Float32 f32addf64x(_Float64x __x, _Float64x __y) throw(); +# 27 +extern _Float32 f32divf64x(_Float64x __x, _Float64x __y) throw(); +# 30 +extern _Float32 f32mulf64x(_Float64x __x, _Float64x __y) throw(); +# 33 +extern _Float32 f32subf64x(_Float64x __x, _Float64x __y) throw(); +# 24 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 3 +extern _Float32x f32xaddf64(_Float64 __x, _Float64 __y) throw(); +# 27 +extern _Float32x f32xdivf64(_Float64 __x, _Float64 __y) throw(); +# 30 +extern _Float32x f32xmulf64(_Float64 __x, _Float64 __y) throw(); +# 33 +extern _Float32x f32xsubf64(_Float64 __x, _Float64 __y) throw(); +# 24 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 3 +extern _Float32x f32xaddf64x(_Float64x __x, _Float64x __y) throw(); +# 27 +extern _Float32x f32xdivf64x(_Float64x __x, _Float64x __y) throw(); +# 30 +extern _Float32x f32xmulf64x(_Float64x __x, _Float64x __y) throw(); +# 33 +extern _Float32x f32xsubf64x(_Float64x __x, _Float64x __y) throw(); +# 24 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 3 +extern _Float64 f64addf64x(_Float64x __x, _Float64x __y) throw(); +# 27 +extern _Float64 f64divf64x(_Float64x __x, _Float64x __y) throw(); +# 30 +extern _Float64 f64mulf64x(_Float64x __x, _Float64x __y) throw(); +# 33 +extern _Float64 f64subf64x(_Float64x __x, _Float64x __y) throw(); +# 773 "/usr/include/math.h" 3 +extern int signgam; +# 854 "/usr/include/math.h" 3 +enum { +# 855 +FP_NAN, +# 858 +FP_INFINITE, +# 861 +FP_ZERO, +# 864 +FP_SUBNORMAL, +# 867 +FP_NORMAL +# 870 +}; +# 23 "/usr/include/x86_64-linux-gnu/bits/iscanonical.h" 3 +extern int __iscanonicall(long double __x) throw() +# 24 + __attribute((const)); +# 46 "/usr/include/x86_64-linux-gnu/bits/iscanonical.h" 3 +extern "C++" { +# 47 +inline int iscanonical(float __val) { return (((void)((__typeof__(__val))__val)), 1); } +# 48 +inline int iscanonical(double __val) { return (((void)((__typeof__(__val))__val)), 1); } +# 49 +inline int iscanonical(long double __val) { return __iscanonicall(__val); } +# 53 +} +# 985 "/usr/include/math.h" 3 +extern "C++" { +# 986 +inline int issignaling(float __val) { return __issignalingf(__val); } +# 987 +inline int issignaling(double __val) { return __issignaling(__val); } +# 989 +inline int issignaling(long double __val) +# 990 +{ +# 994 +return __issignalingl(__val); +# 996 +} +# 1002 +} +# 1016 "/usr/include/math.h" 3 +extern "C++" { +# 1047 "/usr/include/math.h" 3 +template< class __T> inline bool +# 1048 +iszero(__T __val) +# 1049 +{ +# 1050 +return __val == 0; +# 1051 +} +# 1053 +} +# 1278 "/usr/include/math.h" 3 +extern "C++" { +# 1279 +template< class > struct __iseqsig_type; +# 1281 +template<> struct __iseqsig_type< float> { +# 1283 +static int __call(float __x, float __y) throw() +# 1284 +{ +# 1285 +return __iseqsigf(__x, __y); +# 1286 +} +# 1287 +}; +# 1289 +template<> struct __iseqsig_type< double> { +# 1291 +static int __call(double __x, double __y) throw() +# 1292 +{ +# 1293 +return __iseqsig(__x, __y); +# 1294 +} +# 1295 +}; +# 1297 +template<> struct __iseqsig_type< long double> { +# 1299 +static int __call(long double __x, long double __y) throw() +# 1300 +{ +# 1302 +return __iseqsigl(__x, __y); +# 1306 +} +# 1307 +}; +# 1321 "/usr/include/math.h" 3 +template< class _T1, class _T2> inline int +# 1323 +iseqsig(_T1 __x, _T2 __y) throw() +# 1324 +{ +# 1326 +typedef __decltype(((__x + __y) + (0.0F))) _T3; +# 1330 +return __iseqsig_type< __decltype(((__x + __y) + (0.0F)))> ::__call(__x, __y); +# 1331 +} +# 1333 +} +# 1338 +} +# 33 "/usr/include/stdlib.h" 3 +extern "C" { +# 57 "/usr/include/x86_64-linux-gnu/bits/waitflags.h" 3 +typedef +# 53 +enum { +# 54 +P_ALL, +# 55 +P_PID, +# 56 +P_PGID +# 57 +} idtype_t; +# 62 "/usr/include/stdlib.h" 3 +typedef +# 59 +struct { +# 60 +int quot; +# 61 +int rem; +# 62 +} div_t; +# 70 +typedef +# 67 +struct { +# 68 +long quot; +# 69 +long rem; +# 70 +} ldiv_t; +# 80 +__extension__ typedef +# 77 +struct { +# 78 +long long quot; +# 79 +long long rem; +# 80 +} lldiv_t; +# 97 "/usr/include/stdlib.h" 3 +extern size_t __ctype_get_mb_cur_max() throw(); +# 101 +extern double atof(const char * __nptr) throw() +# 102 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 104 +extern int atoi(const char * __nptr) throw() +# 105 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 107 +extern long atol(const char * __nptr) throw() +# 108 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 112 +__extension__ extern long long atoll(const char * __nptr) throw() +# 113 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 117 +extern double strtod(const char *__restrict__ __nptr, char **__restrict__ __endptr) throw() +# 119 + __attribute((__nonnull__(1))); +# 123 +extern float strtof(const char *__restrict__ __nptr, char **__restrict__ __endptr) throw() +# 124 + __attribute((__nonnull__(1))); +# 126 +extern long double strtold(const char *__restrict__ __nptr, char **__restrict__ __endptr) throw() +# 128 + __attribute((__nonnull__(1))); +# 140 "/usr/include/stdlib.h" 3 +extern _Float32 strtof32(const char *__restrict__ __nptr, char **__restrict__ __endptr) throw() +# 142 + __attribute((__nonnull__(1))); +# 146 +extern _Float64 strtof64(const char *__restrict__ __nptr, char **__restrict__ __endptr) throw() +# 148 + __attribute((__nonnull__(1))); +# 158 "/usr/include/stdlib.h" 3 +extern _Float32x strtof32x(const char *__restrict__ __nptr, char **__restrict__ __endptr) throw() +# 160 + __attribute((__nonnull__(1))); +# 164 +extern _Float64x strtof64x(const char *__restrict__ __nptr, char **__restrict__ __endptr) throw() +# 166 + __attribute((__nonnull__(1))); +# 176 "/usr/include/stdlib.h" 3 +extern long strtol(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base) throw() +# 178 + __attribute((__nonnull__(1))); +# 180 +extern unsigned long strtoul(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base) throw() +# 182 + __attribute((__nonnull__(1))); +# 187 +__extension__ extern long long strtoq(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base) throw() +# 189 + __attribute((__nonnull__(1))); +# 192 +__extension__ extern unsigned long long strtouq(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base) throw() +# 194 + __attribute((__nonnull__(1))); +# 200 +__extension__ extern long long strtoll(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base) throw() +# 202 + __attribute((__nonnull__(1))); +# 205 +__extension__ extern unsigned long long strtoull(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base) throw() +# 207 + __attribute((__nonnull__(1))); +# 212 +extern int strfromd(char * __dest, size_t __size, const char * __format, double __f) throw() +# 214 + __attribute((__nonnull__(3))); +# 216 +extern int strfromf(char * __dest, size_t __size, const char * __format, float __f) throw() +# 218 + __attribute((__nonnull__(3))); +# 220 +extern int strfroml(char * __dest, size_t __size, const char * __format, long double __f) throw() +# 222 + __attribute((__nonnull__(3))); +# 232 "/usr/include/stdlib.h" 3 +extern int strfromf32(char * __dest, size_t __size, const char * __format, _Float32 __f) throw() +# 234 + __attribute((__nonnull__(3))); +# 238 +extern int strfromf64(char * __dest, size_t __size, const char * __format, _Float64 __f) throw() +# 240 + __attribute((__nonnull__(3))); +# 250 "/usr/include/stdlib.h" 3 +extern int strfromf32x(char * __dest, size_t __size, const char * __format, _Float32x __f) throw() +# 252 + __attribute((__nonnull__(3))); +# 256 +extern int strfromf64x(char * __dest, size_t __size, const char * __format, _Float64x __f) throw() +# 258 + __attribute((__nonnull__(3))); +# 274 "/usr/include/stdlib.h" 3 +extern long strtol_l(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base, locale_t __loc) throw() +# 276 + __attribute((__nonnull__(1, 4))); +# 278 +extern unsigned long strtoul_l(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base, locale_t __loc) throw() +# 281 + __attribute((__nonnull__(1, 4))); +# 284 +__extension__ extern long long strtoll_l(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base, locale_t __loc) throw() +# 287 + __attribute((__nonnull__(1, 4))); +# 290 +__extension__ extern unsigned long long strtoull_l(const char *__restrict__ __nptr, char **__restrict__ __endptr, int __base, locale_t __loc) throw() +# 293 + __attribute((__nonnull__(1, 4))); +# 295 +extern double strtod_l(const char *__restrict__ __nptr, char **__restrict__ __endptr, locale_t __loc) throw() +# 297 + __attribute((__nonnull__(1, 3))); +# 299 +extern float strtof_l(const char *__restrict__ __nptr, char **__restrict__ __endptr, locale_t __loc) throw() +# 301 + __attribute((__nonnull__(1, 3))); +# 303 +extern long double strtold_l(const char *__restrict__ __nptr, char **__restrict__ __endptr, locale_t __loc) throw() +# 306 + __attribute((__nonnull__(1, 3))); +# 316 "/usr/include/stdlib.h" 3 +extern _Float32 strtof32_l(const char *__restrict__ __nptr, char **__restrict__ __endptr, locale_t __loc) throw() +# 319 + __attribute((__nonnull__(1, 3))); +# 323 +extern _Float64 strtof64_l(const char *__restrict__ __nptr, char **__restrict__ __endptr, locale_t __loc) throw() +# 326 + __attribute((__nonnull__(1, 3))); +# 337 "/usr/include/stdlib.h" 3 +extern _Float32x strtof32x_l(const char *__restrict__ __nptr, char **__restrict__ __endptr, locale_t __loc) throw() +# 340 + __attribute((__nonnull__(1, 3))); +# 344 +extern _Float64x strtof64x_l(const char *__restrict__ __nptr, char **__restrict__ __endptr, locale_t __loc) throw() +# 347 + __attribute((__nonnull__(1, 3))); +# 385 "/usr/include/stdlib.h" 3 +extern char *l64a(long __n) throw(); +# 388 +extern long a64l(const char * __s) throw() +# 389 + __attribute((__pure__)) __attribute((__nonnull__(1))); +# 27 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 +extern "C" { +# 33 +typedef __u_char u_char; +# 34 +typedef __u_short u_short; +# 35 +typedef __u_int u_int; +# 36 +typedef __u_long u_long; +# 37 +typedef __quad_t quad_t; +# 38 +typedef __u_quad_t u_quad_t; +# 39 +typedef __fsid_t fsid_t; +# 42 +typedef __loff_t loff_t; +# 47 +typedef __ino_t ino_t; +# 54 +typedef __ino64_t ino64_t; +# 59 +typedef __dev_t dev_t; +# 64 +typedef __gid_t gid_t; +# 69 +typedef __mode_t mode_t; +# 74 +typedef __nlink_t nlink_t; +# 79 +typedef __uid_t uid_t; +# 85 +typedef __off_t off_t; +# 92 +typedef __off64_t off64_t; +# 103 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 +typedef __id_t id_t; +# 108 +typedef __ssize_t ssize_t; +# 114 +typedef __daddr_t daddr_t; +# 115 +typedef __caddr_t caddr_t; +# 121 +typedef __key_t key_t; +# 134 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 +typedef __useconds_t useconds_t; +# 138 +typedef __suseconds_t suseconds_t; +# 148 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 +typedef unsigned long ulong; +# 149 +typedef unsigned short ushort; +# 150 +typedef unsigned uint; +# 24 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h" 3 +typedef __int8_t int8_t; +# 25 +typedef __int16_t int16_t; +# 26 +typedef __int32_t int32_t; +# 27 +typedef __int64_t int64_t; +# 158 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 +typedef __uint8_t u_int8_t; +# 159 +typedef __uint16_t u_int16_t; +# 160 +typedef __uint32_t u_int32_t; +# 161 +typedef __uint64_t u_int64_t; +# 164 +typedef long register_t __attribute((__mode__(__word__))); +# 34 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 3 +static inline __uint16_t __bswap_16(__uint16_t __bsx) +# 35 +{ +# 37 +return __builtin_bswap16(__bsx); +# 41 +} +# 49 +static inline __uint32_t __bswap_32(__uint32_t __bsx) +# 50 +{ +# 52 +return __builtin_bswap32(__bsx); +# 56 +} +# 70 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 3 +__extension__ static inline __uint64_t __bswap_64(__uint64_t __bsx) +# 71 +{ +# 73 +return __builtin_bswap64(__bsx); +# 77 +} +# 33 "/usr/include/x86_64-linux-gnu/bits/uintn-identity.h" 3 +static inline __uint16_t __uint16_identity(__uint16_t __x) +# 34 +{ +# 35 +return __x; +# 36 +} +# 39 +static inline __uint32_t __uint32_identity(__uint32_t __x) +# 40 +{ +# 41 +return __x; +# 42 +} +# 45 +static inline __uint64_t __uint64_identity(__uint64_t __x) +# 46 +{ +# 47 +return __x; +# 48 +} +# 8 "/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h" 3 +typedef +# 6 +struct { +# 7 +unsigned long __val[(1024) / ((8) * sizeof(unsigned long))]; +# 8 +} __sigset_t; +# 7 "/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h" 3 +typedef __sigset_t sigset_t; +# 49 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 +typedef long __fd_mask; +# 70 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 +typedef +# 60 +struct { +# 64 +__fd_mask fds_bits[1024 / (8 * ((int)sizeof(__fd_mask)))]; +# 70 +} fd_set; +# 77 +typedef __fd_mask fd_mask; +# 91 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 +extern "C" { +# 101 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 +extern int select(int __nfds, fd_set *__restrict__ __readfds, fd_set *__restrict__ __writefds, fd_set *__restrict__ __exceptfds, timeval *__restrict__ __timeout); +# 113 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 +extern int pselect(int __nfds, fd_set *__restrict__ __readfds, fd_set *__restrict__ __writefds, fd_set *__restrict__ __exceptfds, const timespec *__restrict__ __timeout, const __sigset_t *__restrict__ __sigmask); +# 126 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 +} +# 185 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 +typedef __blksize_t blksize_t; +# 192 +typedef __blkcnt_t blkcnt_t; +# 196 +typedef __fsblkcnt_t fsblkcnt_t; +# 200 +typedef __fsfilcnt_t fsfilcnt_t; +# 219 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 +typedef __blkcnt64_t blkcnt64_t; +# 220 +typedef __fsblkcnt64_t fsblkcnt64_t; +# 221 +typedef __fsfilcnt64_t fsfilcnt64_t; +# 53 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" 3 +typedef +# 49 +struct __pthread_internal_list { +# 51 +__pthread_internal_list *__prev; +# 52 +__pthread_internal_list *__next; +# 53 +} __pthread_list_t; +# 58 +typedef +# 55 +struct __pthread_internal_slist { +# 57 +__pthread_internal_slist *__next; +# 58 +} __pthread_slist_t; +# 22 "/usr/include/x86_64-linux-gnu/bits/struct_mutex.h" 3 +struct __pthread_mutex_s { +# 24 +int __lock; +# 25 +unsigned __count; +# 26 +int __owner; +# 28 +unsigned __nusers; +# 32 +int __kind; +# 34 +short __spins; +# 35 +short __elision; +# 36 +__pthread_list_t __list; +# 53 "/usr/include/x86_64-linux-gnu/bits/struct_mutex.h" 3 +}; +# 23 "/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h" 3 +struct __pthread_rwlock_arch_t { +# 25 +unsigned __readers; +# 26 +unsigned __writers; +# 27 +unsigned __wrphase_futex; +# 28 +unsigned __writers_futex; +# 29 +unsigned __pad3; +# 30 +unsigned __pad4; +# 32 +int __cur_writer; +# 33 +int __shared; +# 34 +signed char __rwelision; +# 39 +unsigned char __pad1[7]; +# 42 +unsigned long __pad2; +# 45 +unsigned __flags; +# 55 "/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h" 3 +}; +# 92 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" 3 +struct __pthread_cond_s { +# 95 +__extension__ union { +# 96 +__extension__ unsigned long long __wseq; +# 98 +struct { +# 99 +unsigned __low; +# 100 +unsigned __high; +# 101 +} __wseq32; +# 102 +}; +# 104 +__extension__ union { +# 105 +__extension__ unsigned long long __g1_start; +# 107 +struct { +# 108 +unsigned __low; +# 109 +unsigned __high; +# 110 +} __g1_start32; +# 111 +}; +# 112 +unsigned __g_refs[2]; +# 113 +unsigned __g_size[2]; +# 114 +unsigned __g1_orig_size; +# 115 +unsigned __wrefs; +# 116 +unsigned __g_signals[2]; +# 117 +}; +# 27 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 +typedef unsigned long pthread_t; +# 36 +typedef +# 33 +union { +# 34 +char __size[4]; +# 35 +int __align; +# 36 +} pthread_mutexattr_t; +# 45 +typedef +# 42 +union { +# 43 +char __size[4]; +# 44 +int __align; +# 45 +} pthread_condattr_t; +# 49 +typedef unsigned pthread_key_t; +# 53 +typedef int pthread_once_t; +# 56 +union pthread_attr_t { +# 58 +char __size[56]; +# 59 +long __align; +# 60 +}; +# 62 +typedef pthread_attr_t pthread_attr_t; +# 72 +typedef +# 68 +union { +# 69 +__pthread_mutex_s __data; +# 70 +char __size[40]; +# 71 +long __align; +# 72 +} pthread_mutex_t; +# 80 +typedef +# 76 +union { +# 77 +__pthread_cond_s __data; +# 78 +char __size[48]; +# 79 +__extension__ long long __align; +# 80 +} pthread_cond_t; +# 91 +typedef +# 87 +union { +# 88 +__pthread_rwlock_arch_t __data; +# 89 +char __size[56]; +# 90 +long __align; +# 91 +} pthread_rwlock_t; +# 97 +typedef +# 94 +union { +# 95 +char __size[8]; +# 96 +long __align; +# 97 +} pthread_rwlockattr_t; +# 103 +typedef volatile int pthread_spinlock_t; +# 112 +typedef +# 109 +union { +# 110 +char __size[32]; +# 111 +long __align; +# 112 +} pthread_barrier_t; +# 118 +typedef +# 115 +union { +# 116 +char __size[4]; +# 117 +int __align; +# 118 +} pthread_barrierattr_t; +# 230 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 +} +# 401 "/usr/include/stdlib.h" 3 +extern long random() throw(); +# 404 +extern void srandom(unsigned __seed) throw(); +# 410 +extern char *initstate(unsigned __seed, char * __statebuf, size_t __statelen) throw() +# 411 + __attribute((__nonnull__(2))); +# 415 +extern char *setstate(char * __statebuf) throw() __attribute((__nonnull__(1))); +# 423 +struct random_data { +# 425 +int32_t *fptr; +# 426 +int32_t *rptr; +# 427 +int32_t *state; +# 428 +int rand_type; +# 429 +int rand_deg; +# 430 +int rand_sep; +# 431 +int32_t *end_ptr; +# 432 +}; +# 434 +extern int random_r(random_data *__restrict__ __buf, int32_t *__restrict__ __result) throw() +# 435 + __attribute((__nonnull__(1, 2))); +# 437 +extern int srandom_r(unsigned __seed, random_data * __buf) throw() +# 438 + __attribute((__nonnull__(2))); +# 440 +extern int initstate_r(unsigned __seed, char *__restrict__ __statebuf, size_t __statelen, random_data *__restrict__ __buf) throw() +# 443 + __attribute((__nonnull__(2, 4))); +# 445 +extern int setstate_r(char *__restrict__ __statebuf, random_data *__restrict__ __buf) throw() +# 447 + __attribute((__nonnull__(1, 2))); +# 453 +extern int rand() throw(); +# 455 +extern void srand(unsigned __seed) throw(); +# 459 +extern int rand_r(unsigned * __seed) throw(); +# 467 +extern double drand48() throw(); +# 468 +extern double erand48(unsigned short __xsubi[3]) throw() __attribute((__nonnull__(1))); +# 471 +extern long lrand48() throw(); +# 472 +extern long nrand48(unsigned short __xsubi[3]) throw() +# 473 + __attribute((__nonnull__(1))); +# 476 +extern long mrand48() throw(); +# 477 +extern long jrand48(unsigned short __xsubi[3]) throw() +# 478 + __attribute((__nonnull__(1))); +# 481 +extern void srand48(long __seedval) throw(); +# 482 +extern unsigned short *seed48(unsigned short __seed16v[3]) throw() +# 483 + __attribute((__nonnull__(1))); +# 484 +extern void lcong48(unsigned short __param[7]) throw() __attribute((__nonnull__(1))); +# 490 +struct drand48_data { +# 492 +unsigned short __x[3]; +# 493 +unsigned short __old_x[3]; +# 494 +unsigned short __c; +# 495 +unsigned short __init; +# 496 +__extension__ unsigned long long __a; +# 498 +}; +# 501 +extern int drand48_r(drand48_data *__restrict__ __buffer, double *__restrict__ __result) throw() +# 502 + __attribute((__nonnull__(1, 2))); +# 503 +extern int erand48_r(unsigned short __xsubi[3], drand48_data *__restrict__ __buffer, double *__restrict__ __result) throw() +# 505 + __attribute((__nonnull__(1, 2))); +# 508 +extern int lrand48_r(drand48_data *__restrict__ __buffer, long *__restrict__ __result) throw() +# 510 + __attribute((__nonnull__(1, 2))); +# 511 +extern int nrand48_r(unsigned short __xsubi[3], drand48_data *__restrict__ __buffer, long *__restrict__ __result) throw() +# 514 + __attribute((__nonnull__(1, 2))); +# 517 +extern int mrand48_r(drand48_data *__restrict__ __buffer, long *__restrict__ __result) throw() +# 519 + __attribute((__nonnull__(1, 2))); +# 520 +extern int jrand48_r(unsigned short __xsubi[3], drand48_data *__restrict__ __buffer, long *__restrict__ __result) throw() +# 523 + __attribute((__nonnull__(1, 2))); +# 526 +extern int srand48_r(long __seedval, drand48_data * __buffer) throw() +# 527 + __attribute((__nonnull__(2))); +# 529 +extern int seed48_r(unsigned short __seed16v[3], drand48_data * __buffer) throw() +# 530 + __attribute((__nonnull__(1, 2))); +# 532 +extern int lcong48_r(unsigned short __param[7], drand48_data * __buffer) throw() +# 534 + __attribute((__nonnull__(1, 2))); +# 539 +extern void *malloc(size_t __size) throw() __attribute((__malloc__)) +# 540 + __attribute((__alloc_size__(1))); +# 542 +extern void *calloc(size_t __nmemb, size_t __size) throw() +# 543 + __attribute((__malloc__)) __attribute((__alloc_size__(1, 2))); +# 550 +extern void *realloc(void * __ptr, size_t __size) throw() +# 551 + __attribute((__warn_unused_result__)) __attribute((__alloc_size__(2))); +# 559 +extern void *reallocarray(void * __ptr, size_t __nmemb, size_t __size) throw() +# 560 + __attribute((__warn_unused_result__)) +# 561 + __attribute((__alloc_size__(2, 3))); +# 565 +extern void free(void * __ptr) throw(); +# 26 "/usr/include/alloca.h" 3 +extern "C" { +# 32 +extern void *alloca(size_t __size) throw(); +# 38 +} +# 574 "/usr/include/stdlib.h" 3 +extern void *valloc(size_t __size) throw() __attribute((__malloc__)) +# 575 + __attribute((__alloc_size__(1))); +# 580 +extern int posix_memalign(void ** __memptr, size_t __alignment, size_t __size) throw() +# 581 + __attribute((__nonnull__(1))); +# 586 +extern void *aligned_alloc(size_t __alignment, size_t __size) throw() +# 587 + __attribute((__malloc__)) __attribute((__alloc_size__(2))); +# 591 +extern void abort() throw() __attribute((__noreturn__)); +# 595 +extern int atexit(void (* __func)(void)) throw() __attribute((__nonnull__(1))); +# 600 +extern "C++" int at_quick_exit(void (* __func)(void)) throw() __asm__("at_quick_exit") +# 601 + __attribute((__nonnull__(1))); +# 610 "/usr/include/stdlib.h" 3 +extern int on_exit(void (* __func)(int __status, void * __arg), void * __arg) throw() +# 611 + __attribute((__nonnull__(1))); +# 617 +extern void exit(int __status) throw() __attribute((__noreturn__)); +# 623 +extern void quick_exit(int __status) throw() __attribute((__noreturn__)); +# 629 +extern void _Exit(int __status) throw() __attribute((__noreturn__)); +# 634 +extern char *getenv(const char * __name) throw() __attribute((__nonnull__(1))); +# 639 +extern char *secure_getenv(const char * __name) throw() +# 640 + __attribute((__nonnull__(1))); +# 647 +extern int putenv(char * __string) throw() __attribute((__nonnull__(1))); +# 653 +extern int setenv(const char * __name, const char * __value, int __replace) throw() +# 654 + __attribute((__nonnull__(2))); +# 657 +extern int unsetenv(const char * __name) throw() __attribute((__nonnull__(1))); +# 664 +extern int clearenv() throw(); +# 675 "/usr/include/stdlib.h" 3 +extern char *mktemp(char * __template) throw() __attribute((__nonnull__(1))); +# 688 "/usr/include/stdlib.h" 3 +extern int mkstemp(char * __template) __attribute((__nonnull__(1))); +# 698 "/usr/include/stdlib.h" 3 +extern int mkstemp64(char * __template) __attribute((__nonnull__(1))); +# 710 "/usr/include/stdlib.h" 3 +extern int mkstemps(char * __template, int __suffixlen) __attribute((__nonnull__(1))); +# 720 "/usr/include/stdlib.h" 3 +extern int mkstemps64(char * __template, int __suffixlen) +# 721 + __attribute((__nonnull__(1))); +# 731 "/usr/include/stdlib.h" 3 +extern char *mkdtemp(char * __template) throw() __attribute((__nonnull__(1))); +# 742 "/usr/include/stdlib.h" 3 +extern int mkostemp(char * __template, int __flags) __attribute((__nonnull__(1))); +# 752 "/usr/include/stdlib.h" 3 +extern int mkostemp64(char * __template, int __flags) __attribute((__nonnull__(1))); +# 762 "/usr/include/stdlib.h" 3 +extern int mkostemps(char * __template, int __suffixlen, int __flags) +# 763 + __attribute((__nonnull__(1))); +# 774 "/usr/include/stdlib.h" 3 +extern int mkostemps64(char * __template, int __suffixlen, int __flags) +# 775 + __attribute((__nonnull__(1))); +# 784 "/usr/include/stdlib.h" 3 +extern int system(const char * __command); +# 790 +extern char *canonicalize_file_name(const char * __name) throw() +# 791 + __attribute((__nonnull__(1))); +# 800 "/usr/include/stdlib.h" 3 +extern char *realpath(const char *__restrict__ __name, char *__restrict__ __resolved) throw(); +# 808 +typedef int (*__compar_fn_t)(const void *, const void *); +# 811 +typedef __compar_fn_t comparison_fn_t; +# 815 +typedef int (*__compar_d_fn_t)(const void *, const void *, void *); +# 820 +extern void *bsearch(const void * __key, const void * __base, size_t __nmemb, size_t __size, __compar_fn_t __compar) +# 822 + __attribute((__nonnull__(1, 2, 5))); +# 830 +extern void qsort(void * __base, size_t __nmemb, size_t __size, __compar_fn_t __compar) +# 831 + __attribute((__nonnull__(1, 4))); +# 833 +extern void qsort_r(void * __base, size_t __nmemb, size_t __size, __compar_d_fn_t __compar, void * __arg) +# 835 + __attribute((__nonnull__(1, 4))); +# 840 +extern int abs(int __x) throw() __attribute((const)); +# 841 +extern long labs(long __x) throw() __attribute((const)); +# 844 +__extension__ extern long long llabs(long long __x) throw() +# 845 + __attribute((const)); +# 852 +extern div_t div(int __numer, int __denom) throw() +# 853 + __attribute((const)); +# 854 +extern ldiv_t ldiv(long __numer, long __denom) throw() +# 855 + __attribute((const)); +# 858 +__extension__ extern lldiv_t lldiv(long long __numer, long long __denom) throw() +# 860 + __attribute((const)); +# 872 "/usr/include/stdlib.h" 3 +extern char *ecvt(double __value, int __ndigit, int *__restrict__ __decpt, int *__restrict__ __sign) throw() +# 873 + __attribute((__nonnull__(3, 4))); +# 878 +extern char *fcvt(double __value, int __ndigit, int *__restrict__ __decpt, int *__restrict__ __sign) throw() +# 879 + __attribute((__nonnull__(3, 4))); +# 884 +extern char *gcvt(double __value, int __ndigit, char * __buf) throw() +# 885 + __attribute((__nonnull__(3))); +# 890 +extern char *qecvt(long double __value, int __ndigit, int *__restrict__ __decpt, int *__restrict__ __sign) throw() +# 892 + __attribute((__nonnull__(3, 4))); +# 893 +extern char *qfcvt(long double __value, int __ndigit, int *__restrict__ __decpt, int *__restrict__ __sign) throw() +# 895 + __attribute((__nonnull__(3, 4))); +# 896 +extern char *qgcvt(long double __value, int __ndigit, char * __buf) throw() +# 897 + __attribute((__nonnull__(3))); +# 902 +extern int ecvt_r(double __value, int __ndigit, int *__restrict__ __decpt, int *__restrict__ __sign, char *__restrict__ __buf, size_t __len) throw() +# 904 + __attribute((__nonnull__(3, 4, 5))); +# 905 +extern int fcvt_r(double __value, int __ndigit, int *__restrict__ __decpt, int *__restrict__ __sign, char *__restrict__ __buf, size_t __len) throw() +# 907 + __attribute((__nonnull__(3, 4, 5))); +# 909 +extern int qecvt_r(long double __value, int __ndigit, int *__restrict__ __decpt, int *__restrict__ __sign, char *__restrict__ __buf, size_t __len) throw() +# 912 + __attribute((__nonnull__(3, 4, 5))); +# 913 +extern int qfcvt_r(long double __value, int __ndigit, int *__restrict__ __decpt, int *__restrict__ __sign, char *__restrict__ __buf, size_t __len) throw() +# 916 + __attribute((__nonnull__(3, 4, 5))); +# 922 +extern int mblen(const char * __s, size_t __n) throw(); +# 925 +extern int mbtowc(wchar_t *__restrict__ __pwc, const char *__restrict__ __s, size_t __n) throw(); +# 929 +extern int wctomb(char * __s, wchar_t __wchar) throw(); +# 933 +extern size_t mbstowcs(wchar_t *__restrict__ __pwcs, const char *__restrict__ __s, size_t __n) throw(); +# 936 +extern size_t wcstombs(char *__restrict__ __s, const wchar_t *__restrict__ __pwcs, size_t __n) throw(); +# 946 +extern int rpmatch(const char * __response) throw() __attribute((__nonnull__(1))); +# 957 "/usr/include/stdlib.h" 3 +extern int getsubopt(char **__restrict__ __optionp, char *const *__restrict__ __tokens, char **__restrict__ __valuep) throw() +# 960 + __attribute((__nonnull__(1, 2, 3))); +# 968 +extern int posix_openpt(int __oflag); +# 976 +extern int grantpt(int __fd) throw(); +# 980 +extern int unlockpt(int __fd) throw(); +# 985 +extern char *ptsname(int __fd) throw(); +# 992 +extern int ptsname_r(int __fd, char * __buf, size_t __buflen) throw() +# 993 + __attribute((__nonnull__(2))); +# 996 +extern int getpt(); +# 1003 +extern int getloadavg(double __loadavg[], int __nelem) throw() +# 1004 + __attribute((__nonnull__(1))); +# 1023 "/usr/include/stdlib.h" 3 +} +# 46 "/usr/include/c++/9/bits/std_abs.h" 3 +extern "C++" { +# 48 +namespace std __attribute((__visibility__("default"))) { +# 52 +using ::abs; +# 56 +inline long abs(long __i) { return __builtin_labs(__i); } +# 61 +inline long long abs(long long __x) { return __builtin_llabs(__x); } +# 71 "/usr/include/c++/9/bits/std_abs.h" 3 +constexpr double abs(double __x) +# 72 +{ return __builtin_fabs(__x); } +# 75 +constexpr float abs(float __x) +# 76 +{ return __builtin_fabsf(__x); } +# 79 +constexpr long double abs(long double __x) +# 80 +{ return __builtin_fabsl(__x); } +# 85 +constexpr __int128 abs(__int128 __x) { return (__x >= (0)) ? __x : (-__x); } +# 108 "/usr/include/c++/9/bits/std_abs.h" 3 +} +# 109 +} +# 77 "/usr/include/c++/9/cmath" 3 +extern "C++" { +# 79 +namespace std __attribute((__visibility__("default"))) { +# 83 +using ::acos; +# 87 +constexpr float acos(float __x) +# 88 +{ return __builtin_acosf(__x); } +# 91 +constexpr long double acos(long double __x) +# 92 +{ return __builtin_acosl(__x); } +# 95 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 99 +acos(_Tp __x) +# 100 +{ return __builtin_acos(__x); } +# 102 +using ::asin; +# 106 +constexpr float asin(float __x) +# 107 +{ return __builtin_asinf(__x); } +# 110 +constexpr long double asin(long double __x) +# 111 +{ return __builtin_asinl(__x); } +# 114 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 118 +asin(_Tp __x) +# 119 +{ return __builtin_asin(__x); } +# 121 +using ::atan; +# 125 +constexpr float atan(float __x) +# 126 +{ return __builtin_atanf(__x); } +# 129 +constexpr long double atan(long double __x) +# 130 +{ return __builtin_atanl(__x); } +# 133 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 137 +atan(_Tp __x) +# 138 +{ return __builtin_atan(__x); } +# 140 +using ::atan2; +# 144 +constexpr float atan2(float __y, float __x) +# 145 +{ return __builtin_atan2f(__y, __x); } +# 148 +constexpr long double atan2(long double __y, long double __x) +# 149 +{ return __builtin_atan2l(__y, __x); } +# 152 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type +# 155 +atan2(_Tp __y, _Up __x) +# 156 +{ +# 157 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 158 +return atan2((__type)__y, (__type)__x); +# 159 +} +# 161 +using ::ceil; +# 165 +constexpr float ceil(float __x) +# 166 +{ return __builtin_ceilf(__x); } +# 169 +constexpr long double ceil(long double __x) +# 170 +{ return __builtin_ceill(__x); } +# 173 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 177 +ceil(_Tp __x) +# 178 +{ return __builtin_ceil(__x); } +# 180 +using ::cos; +# 184 +constexpr float cos(float __x) +# 185 +{ return __builtin_cosf(__x); } +# 188 +constexpr long double cos(long double __x) +# 189 +{ return __builtin_cosl(__x); } +# 192 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 196 +cos(_Tp __x) +# 197 +{ return __builtin_cos(__x); } +# 199 +using ::cosh; +# 203 +constexpr float cosh(float __x) +# 204 +{ return __builtin_coshf(__x); } +# 207 +constexpr long double cosh(long double __x) +# 208 +{ return __builtin_coshl(__x); } +# 211 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 215 +cosh(_Tp __x) +# 216 +{ return __builtin_cosh(__x); } +# 218 +using ::exp; +# 222 +constexpr float exp(float __x) +# 223 +{ return __builtin_expf(__x); } +# 226 +constexpr long double exp(long double __x) +# 227 +{ return __builtin_expl(__x); } +# 230 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 234 +exp(_Tp __x) +# 235 +{ return __builtin_exp(__x); } +# 237 +using ::fabs; +# 241 +constexpr float fabs(float __x) +# 242 +{ return __builtin_fabsf(__x); } +# 245 +constexpr long double fabs(long double __x) +# 246 +{ return __builtin_fabsl(__x); } +# 249 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 253 +fabs(_Tp __x) +# 254 +{ return __builtin_fabs(__x); } +# 256 +using ::floor; +# 260 +constexpr float floor(float __x) +# 261 +{ return __builtin_floorf(__x); } +# 264 +constexpr long double floor(long double __x) +# 265 +{ return __builtin_floorl(__x); } +# 268 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 272 +floor(_Tp __x) +# 273 +{ return __builtin_floor(__x); } +# 275 +using ::fmod; +# 279 +constexpr float fmod(float __x, float __y) +# 280 +{ return __builtin_fmodf(__x, __y); } +# 283 +constexpr long double fmod(long double __x, long double __y) +# 284 +{ return __builtin_fmodl(__x, __y); } +# 287 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type +# 290 +fmod(_Tp __x, _Up __y) +# 291 +{ +# 292 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 293 +return fmod((__type)__x, (__type)__y); +# 294 +} +# 296 +using ::frexp; +# 300 +inline float frexp(float __x, int *__exp) +# 301 +{ return __builtin_frexpf(__x, __exp); } +# 304 +inline long double frexp(long double __x, int *__exp) +# 305 +{ return __builtin_frexpl(__x, __exp); } +# 308 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 312 +frexp(_Tp __x, int *__exp) +# 313 +{ return __builtin_frexp(__x, __exp); } +# 315 +using ::ldexp; +# 319 +constexpr float ldexp(float __x, int __exp) +# 320 +{ return __builtin_ldexpf(__x, __exp); } +# 323 +constexpr long double ldexp(long double __x, int __exp) +# 324 +{ return __builtin_ldexpl(__x, __exp); } +# 327 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 331 +ldexp(_Tp __x, int __exp) +# 332 +{ return __builtin_ldexp(__x, __exp); } +# 334 +using ::log; +# 338 +constexpr float log(float __x) +# 339 +{ return __builtin_logf(__x); } +# 342 +constexpr long double log(long double __x) +# 343 +{ return __builtin_logl(__x); } +# 346 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 350 +log(_Tp __x) +# 351 +{ return __builtin_log(__x); } +# 353 +using ::log10; +# 357 +constexpr float log10(float __x) +# 358 +{ return __builtin_log10f(__x); } +# 361 +constexpr long double log10(long double __x) +# 362 +{ return __builtin_log10l(__x); } +# 365 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 369 +log10(_Tp __x) +# 370 +{ return __builtin_log10(__x); } +# 372 +using ::modf; +# 376 +inline float modf(float __x, float *__iptr) +# 377 +{ return __builtin_modff(__x, __iptr); } +# 380 +inline long double modf(long double __x, long double *__iptr) +# 381 +{ return __builtin_modfl(__x, __iptr); } +# 384 +using ::pow; +# 388 +constexpr float pow(float __x, float __y) +# 389 +{ return __builtin_powf(__x, __y); } +# 392 +constexpr long double pow(long double __x, long double __y) +# 393 +{ return __builtin_powl(__x, __y); } +# 412 "/usr/include/c++/9/cmath" 3 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type +# 415 +pow(_Tp __x, _Up __y) +# 416 +{ +# 417 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 418 +return pow((__type)__x, (__type)__y); +# 419 +} +# 421 +using ::sin; +# 425 +constexpr float sin(float __x) +# 426 +{ return __builtin_sinf(__x); } +# 429 +constexpr long double sin(long double __x) +# 430 +{ return __builtin_sinl(__x); } +# 433 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 437 +sin(_Tp __x) +# 438 +{ return __builtin_sin(__x); } +# 440 +using ::sinh; +# 444 +constexpr float sinh(float __x) +# 445 +{ return __builtin_sinhf(__x); } +# 448 +constexpr long double sinh(long double __x) +# 449 +{ return __builtin_sinhl(__x); } +# 452 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 456 +sinh(_Tp __x) +# 457 +{ return __builtin_sinh(__x); } +# 459 +using ::sqrt; +# 463 +constexpr float sqrt(float __x) +# 464 +{ return __builtin_sqrtf(__x); } +# 467 +constexpr long double sqrt(long double __x) +# 468 +{ return __builtin_sqrtl(__x); } +# 471 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 475 +sqrt(_Tp __x) +# 476 +{ return __builtin_sqrt(__x); } +# 478 +using ::tan; +# 482 +constexpr float tan(float __x) +# 483 +{ return __builtin_tanf(__x); } +# 486 +constexpr long double tan(long double __x) +# 487 +{ return __builtin_tanl(__x); } +# 490 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 494 +tan(_Tp __x) +# 495 +{ return __builtin_tan(__x); } +# 497 +using ::tanh; +# 501 +constexpr float tanh(float __x) +# 502 +{ return __builtin_tanhf(__x); } +# 505 +constexpr long double tanh(long double __x) +# 506 +{ return __builtin_tanhl(__x); } +# 509 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 513 +tanh(_Tp __x) +# 514 +{ return __builtin_tanh(__x); } +# 537 "/usr/include/c++/9/cmath" 3 +constexpr int fpclassify(float __x) +# 538 +{ return __builtin_fpclassify(0, 1, 4, 3, 2, __x); +# 539 +} +# 542 +constexpr int fpclassify(double __x) +# 543 +{ return __builtin_fpclassify(0, 1, 4, 3, 2, __x); +# 544 +} +# 547 +constexpr int fpclassify(long double __x) +# 548 +{ return __builtin_fpclassify(0, 1, 4, 3, 2, __x); +# 549 +} +# 553 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, int> ::__type +# 556 +fpclassify(_Tp __x) +# 557 +{ return (__x != 0) ? 4 : 2; } +# 562 +constexpr bool isfinite(float __x) +# 563 +{ return __builtin_isfinite(__x); } +# 566 +constexpr bool isfinite(double __x) +# 567 +{ return __builtin_isfinite(__x); } +# 570 +constexpr bool isfinite(long double __x) +# 571 +{ return __builtin_isfinite(__x); } +# 575 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, bool> ::__type +# 578 +isfinite(_Tp __x) +# 579 +{ return true; } +# 584 +constexpr bool isinf(float __x) +# 585 +{ return __builtin_isinf(__x); } +# 592 +constexpr bool isinf(double __x) +# 593 +{ return __builtin_isinf(__x); } +# 597 +constexpr bool isinf(long double __x) +# 598 +{ return __builtin_isinf(__x); } +# 602 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, bool> ::__type +# 605 +isinf(_Tp __x) +# 606 +{ return false; } +# 611 +constexpr bool isnan(float __x) +# 612 +{ return __builtin_isnan(__x); } +# 619 +constexpr bool isnan(double __x) +# 620 +{ return __builtin_isnan(__x); } +# 624 +constexpr bool isnan(long double __x) +# 625 +{ return __builtin_isnan(__x); } +# 629 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, bool> ::__type +# 632 +isnan(_Tp __x) +# 633 +{ return false; } +# 638 +constexpr bool isnormal(float __x) +# 639 +{ return __builtin_isnormal(__x); } +# 642 +constexpr bool isnormal(double __x) +# 643 +{ return __builtin_isnormal(__x); } +# 646 +constexpr bool isnormal(long double __x) +# 647 +{ return __builtin_isnormal(__x); } +# 651 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, bool> ::__type +# 654 +isnormal(_Tp __x) +# 655 +{ return (__x != 0) ? true : false; } +# 661 +constexpr bool signbit(float __x) +# 662 +{ return __builtin_signbit(__x); } +# 665 +constexpr bool signbit(double __x) +# 666 +{ return __builtin_signbit(__x); } +# 669 +constexpr bool signbit(long double __x) +# 670 +{ return __builtin_signbit(__x); } +# 674 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, bool> ::__type +# 677 +signbit(_Tp __x) +# 678 +{ return (__x < 0) ? true : false; } +# 683 +constexpr bool isgreater(float __x, float __y) +# 684 +{ return __builtin_isgreater(__x, __y); } +# 687 +constexpr bool isgreater(double __x, double __y) +# 688 +{ return __builtin_isgreater(__x, __y); } +# 691 +constexpr bool isgreater(long double __x, long double __y) +# 692 +{ return __builtin_isgreater(__x, __y); } +# 696 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__enable_if< __is_arithmetic< _Tp> ::__value && __is_arithmetic< _Up> ::__value, bool> ::__type +# 700 +isgreater(_Tp __x, _Up __y) +# 701 +{ +# 702 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 703 +return __builtin_isgreater((__type)__x, (__type)__y); +# 704 +} +# 709 +constexpr bool isgreaterequal(float __x, float __y) +# 710 +{ return __builtin_isgreaterequal(__x, __y); } +# 713 +constexpr bool isgreaterequal(double __x, double __y) +# 714 +{ return __builtin_isgreaterequal(__x, __y); } +# 717 +constexpr bool isgreaterequal(long double __x, long double __y) +# 718 +{ return __builtin_isgreaterequal(__x, __y); } +# 722 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__enable_if< __is_arithmetic< _Tp> ::__value && __is_arithmetic< _Up> ::__value, bool> ::__type +# 726 +isgreaterequal(_Tp __x, _Up __y) +# 727 +{ +# 728 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 729 +return __builtin_isgreaterequal((__type)__x, (__type)__y); +# 730 +} +# 735 +constexpr bool isless(float __x, float __y) +# 736 +{ return __builtin_isless(__x, __y); } +# 739 +constexpr bool isless(double __x, double __y) +# 740 +{ return __builtin_isless(__x, __y); } +# 743 +constexpr bool isless(long double __x, long double __y) +# 744 +{ return __builtin_isless(__x, __y); } +# 748 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__enable_if< __is_arithmetic< _Tp> ::__value && __is_arithmetic< _Up> ::__value, bool> ::__type +# 752 +isless(_Tp __x, _Up __y) +# 753 +{ +# 754 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 755 +return __builtin_isless((__type)__x, (__type)__y); +# 756 +} +# 761 +constexpr bool islessequal(float __x, float __y) +# 762 +{ return __builtin_islessequal(__x, __y); } +# 765 +constexpr bool islessequal(double __x, double __y) +# 766 +{ return __builtin_islessequal(__x, __y); } +# 769 +constexpr bool islessequal(long double __x, long double __y) +# 770 +{ return __builtin_islessequal(__x, __y); } +# 774 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__enable_if< __is_arithmetic< _Tp> ::__value && __is_arithmetic< _Up> ::__value, bool> ::__type +# 778 +islessequal(_Tp __x, _Up __y) +# 779 +{ +# 780 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 781 +return __builtin_islessequal((__type)__x, (__type)__y); +# 782 +} +# 787 +constexpr bool islessgreater(float __x, float __y) +# 788 +{ return __builtin_islessgreater(__x, __y); } +# 791 +constexpr bool islessgreater(double __x, double __y) +# 792 +{ return __builtin_islessgreater(__x, __y); } +# 795 +constexpr bool islessgreater(long double __x, long double __y) +# 796 +{ return __builtin_islessgreater(__x, __y); } +# 800 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__enable_if< __is_arithmetic< _Tp> ::__value && __is_arithmetic< _Up> ::__value, bool> ::__type +# 804 +islessgreater(_Tp __x, _Up __y) +# 805 +{ +# 806 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 807 +return __builtin_islessgreater((__type)__x, (__type)__y); +# 808 +} +# 813 +constexpr bool isunordered(float __x, float __y) +# 814 +{ return __builtin_isunordered(__x, __y); } +# 817 +constexpr bool isunordered(double __x, double __y) +# 818 +{ return __builtin_isunordered(__x, __y); } +# 821 +constexpr bool isunordered(long double __x, long double __y) +# 822 +{ return __builtin_isunordered(__x, __y); } +# 826 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__enable_if< __is_arithmetic< _Tp> ::__value && __is_arithmetic< _Up> ::__value, bool> ::__type +# 830 +isunordered(_Tp __x, _Up __y) +# 831 +{ +# 832 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 833 +return __builtin_isunordered((__type)__x, (__type)__y); +# 834 +} +# 1065 "/usr/include/c++/9/cmath" 3 +using ::double_t; +# 1066 +using ::float_t; +# 1069 +using ::acosh; +# 1070 +using ::acoshf; +# 1071 +using ::acoshl; +# 1073 +using ::asinh; +# 1074 +using ::asinhf; +# 1075 +using ::asinhl; +# 1077 +using ::atanh; +# 1078 +using ::atanhf; +# 1079 +using ::atanhl; +# 1081 +using ::cbrt; +# 1082 +using ::cbrtf; +# 1083 +using ::cbrtl; +# 1085 +using ::copysign; +# 1086 +using ::copysignf; +# 1087 +using ::copysignl; +# 1089 +using ::erf; +# 1090 +using ::erff; +# 1091 +using ::erfl; +# 1093 +using ::erfc; +# 1094 +using ::erfcf; +# 1095 +using ::erfcl; +# 1097 +using ::exp2; +# 1098 +using ::exp2f; +# 1099 +using ::exp2l; +# 1101 +using ::expm1; +# 1102 +using ::expm1f; +# 1103 +using ::expm1l; +# 1105 +using ::fdim; +# 1106 +using ::fdimf; +# 1107 +using ::fdiml; +# 1109 +using ::fma; +# 1110 +using ::fmaf; +# 1111 +using ::fmal; +# 1113 +using ::fmax; +# 1114 +using ::fmaxf; +# 1115 +using ::fmaxl; +# 1117 +using ::fmin; +# 1118 +using ::fminf; +# 1119 +using ::fminl; +# 1121 +using ::hypot; +# 1122 +using ::hypotf; +# 1123 +using ::hypotl; +# 1125 +using ::ilogb; +# 1126 +using ::ilogbf; +# 1127 +using ::ilogbl; +# 1129 +using ::lgamma; +# 1130 +using ::lgammaf; +# 1131 +using ::lgammal; +# 1134 +using ::llrint; +# 1135 +using ::llrintf; +# 1136 +using ::llrintl; +# 1138 +using ::llround; +# 1139 +using ::llroundf; +# 1140 +using ::llroundl; +# 1143 +using ::log1p; +# 1144 +using ::log1pf; +# 1145 +using ::log1pl; +# 1147 +using ::log2; +# 1148 +using ::log2f; +# 1149 +using ::log2l; +# 1151 +using ::logb; +# 1152 +using ::logbf; +# 1153 +using ::logbl; +# 1155 +using ::lrint; +# 1156 +using ::lrintf; +# 1157 +using ::lrintl; +# 1159 +using ::lround; +# 1160 +using ::lroundf; +# 1161 +using ::lroundl; +# 1163 +using ::nan; +# 1164 +using ::nanf; +# 1165 +using ::nanl; +# 1167 +using ::nearbyint; +# 1168 +using ::nearbyintf; +# 1169 +using ::nearbyintl; +# 1171 +using ::nextafter; +# 1172 +using ::nextafterf; +# 1173 +using ::nextafterl; +# 1175 +using ::nexttoward; +# 1176 +using ::nexttowardf; +# 1177 +using ::nexttowardl; +# 1179 +using ::remainder; +# 1180 +using ::remainderf; +# 1181 +using ::remainderl; +# 1183 +using ::remquo; +# 1184 +using ::remquof; +# 1185 +using ::remquol; +# 1187 +using ::rint; +# 1188 +using ::rintf; +# 1189 +using ::rintl; +# 1191 +using ::round; +# 1192 +using ::roundf; +# 1193 +using ::roundl; +# 1195 +using ::scalbln; +# 1196 +using ::scalblnf; +# 1197 +using ::scalblnl; +# 1199 +using ::scalbn; +# 1200 +using ::scalbnf; +# 1201 +using ::scalbnl; +# 1203 +using ::tgamma; +# 1204 +using ::tgammaf; +# 1205 +using ::tgammal; +# 1207 +using ::trunc; +# 1208 +using ::truncf; +# 1209 +using ::truncl; +# 1214 +constexpr float acosh(float __x) +# 1215 +{ return __builtin_acoshf(__x); } +# 1218 +constexpr long double acosh(long double __x) +# 1219 +{ return __builtin_acoshl(__x); } +# 1223 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 1226 +acosh(_Tp __x) +# 1227 +{ return __builtin_acosh(__x); } +# 1232 +constexpr float asinh(float __x) +# 1233 +{ return __builtin_asinhf(__x); } +# 1236 +constexpr long double asinh(long double __x) +# 1237 +{ return __builtin_asinhl(__x); } +# 1241 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 1244 +asinh(_Tp __x) +# 1245 +{ return __builtin_asinh(__x); } +# 1250 +constexpr float atanh(float __x) +# 1251 +{ return __builtin_atanhf(__x); } +# 1254 +constexpr long double atanh(long double __x) +# 1255 +{ return __builtin_atanhl(__x); } +# 1259 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 1262 +atanh(_Tp __x) +# 1263 +{ return __builtin_atanh(__x); } +# 1268 +constexpr float cbrt(float __x) +# 1269 +{ return __builtin_cbrtf(__x); } +# 1272 +constexpr long double cbrt(long double __x) +# 1273 +{ return __builtin_cbrtl(__x); } +# 1277 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 1280 +cbrt(_Tp __x) +# 1281 +{ return __builtin_cbrt(__x); } +# 1286 +constexpr float copysign(float __x, float __y) +# 1287 +{ return __builtin_copysignf(__x, __y); } +# 1290 +constexpr long double copysign(long double __x, long double __y) +# 1291 +{ return __builtin_copysignl(__x, __y); } +# 1295 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type +# 1297 +copysign(_Tp __x, _Up __y) +# 1298 +{ +# 1299 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 1300 +return copysign((__type)__x, (__type)__y); +# 1301 +} +# 1306 +constexpr float erf(float __x) +# 1307 +{ return __builtin_erff(__x); } +# 1310 +constexpr long double erf(long double __x) +# 1311 +{ return __builtin_erfl(__x); } +# 1315 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 1318 +erf(_Tp __x) +# 1319 +{ return __builtin_erf(__x); } +# 1324 +constexpr float erfc(float __x) +# 1325 +{ return __builtin_erfcf(__x); } +# 1328 +constexpr long double erfc(long double __x) +# 1329 +{ return __builtin_erfcl(__x); } +# 1333 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 1336 +erfc(_Tp __x) +# 1337 +{ return __builtin_erfc(__x); } +# 1342 +constexpr float exp2(float __x) +# 1343 +{ return __builtin_exp2f(__x); } +# 1346 +constexpr long double exp2(long double __x) +# 1347 +{ return __builtin_exp2l(__x); } +# 1351 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 1354 +exp2(_Tp __x) +# 1355 +{ return __builtin_exp2(__x); } +# 1360 +constexpr float expm1(float __x) +# 1361 +{ return __builtin_expm1f(__x); } +# 1364 +constexpr long double expm1(long double __x) +# 1365 +{ return __builtin_expm1l(__x); } +# 1369 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 1372 +expm1(_Tp __x) +# 1373 +{ return __builtin_expm1(__x); } +# 1378 +constexpr float fdim(float __x, float __y) +# 1379 +{ return __builtin_fdimf(__x, __y); } +# 1382 +constexpr long double fdim(long double __x, long double __y) +# 1383 +{ return __builtin_fdiml(__x, __y); } +# 1387 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type +# 1389 +fdim(_Tp __x, _Up __y) +# 1390 +{ +# 1391 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 1392 +return fdim((__type)__x, (__type)__y); +# 1393 +} +# 1398 +constexpr float fma(float __x, float __y, float __z) +# 1399 +{ return __builtin_fmaf(__x, __y, __z); } +# 1402 +constexpr long double fma(long double __x, long double __y, long double __z) +# 1403 +{ return __builtin_fmal(__x, __y, __z); } +# 1407 +template< class _Tp, class _Up, class _Vp> constexpr typename __gnu_cxx::__promote_3< _Tp, _Up, _Vp> ::__type +# 1409 +fma(_Tp __x, _Up __y, _Vp __z) +# 1410 +{ +# 1411 +typedef typename __gnu_cxx::__promote_3< _Tp, _Up, _Vp> ::__type __type; +# 1412 +return fma((__type)__x, (__type)__y, (__type)__z); +# 1413 +} +# 1418 +constexpr float fmax(float __x, float __y) +# 1419 +{ return __builtin_fmaxf(__x, __y); } +# 1422 +constexpr long double fmax(long double __x, long double __y) +# 1423 +{ return __builtin_fmaxl(__x, __y); } +# 1427 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type +# 1429 +fmax(_Tp __x, _Up __y) +# 1430 +{ +# 1431 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 1432 +return fmax((__type)__x, (__type)__y); +# 1433 +} +# 1438 +constexpr float fmin(float __x, float __y) +# 1439 +{ return __builtin_fminf(__x, __y); } +# 1442 +constexpr long double fmin(long double __x, long double __y) +# 1443 +{ return __builtin_fminl(__x, __y); } +# 1447 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type +# 1449 +fmin(_Tp __x, _Up __y) +# 1450 +{ +# 1451 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 1452 +return fmin((__type)__x, (__type)__y); +# 1453 +} +# 1458 +constexpr float hypot(float __x, float __y) +# 1459 +{ return __builtin_hypotf(__x, __y); } +# 1462 +constexpr long double hypot(long double __x, long double __y) +# 1463 +{ return __builtin_hypotl(__x, __y); } +# 1467 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type +# 1469 +hypot(_Tp __x, _Up __y) +# 1470 +{ +# 1471 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 1472 +return hypot((__type)__x, (__type)__y); +# 1473 +} +# 1478 +constexpr int ilogb(float __x) +# 1479 +{ return __builtin_ilogbf(__x); } +# 1482 +constexpr int ilogb(long double __x) +# 1483 +{ return __builtin_ilogbl(__x); } +# 1487 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, int> ::__type +# 1491 +ilogb(_Tp __x) +# 1492 +{ return __builtin_ilogb(__x); } +# 1497 +constexpr float lgamma(float __x) +# 1498 +{ return __builtin_lgammaf(__x); } +# 1501 +constexpr long double lgamma(long double __x) +# 1502 +{ return __builtin_lgammal(__x); } +# 1506 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 1509 +lgamma(_Tp __x) +# 1510 +{ return __builtin_lgamma(__x); } +# 1515 +constexpr long long llrint(float __x) +# 1516 +{ return __builtin_llrintf(__x); } +# 1519 +constexpr long long llrint(long double __x) +# 1520 +{ return __builtin_llrintl(__x); } +# 1524 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, long long> ::__type +# 1527 +llrint(_Tp __x) +# 1528 +{ return __builtin_llrint(__x); } +# 1533 +constexpr long long llround(float __x) +# 1534 +{ return __builtin_llroundf(__x); } +# 1537 +constexpr long long llround(long double __x) +# 1538 +{ return __builtin_llroundl(__x); } +# 1542 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, long long> ::__type +# 1545 +llround(_Tp __x) +# 1546 +{ return __builtin_llround(__x); } +# 1551 +constexpr float log1p(float __x) +# 1552 +{ return __builtin_log1pf(__x); } +# 1555 +constexpr long double log1p(long double __x) +# 1556 +{ return __builtin_log1pl(__x); } +# 1560 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 1563 +log1p(_Tp __x) +# 1564 +{ return __builtin_log1p(__x); } +# 1570 +constexpr float log2(float __x) +# 1571 +{ return __builtin_log2f(__x); } +# 1574 +constexpr long double log2(long double __x) +# 1575 +{ return __builtin_log2l(__x); } +# 1579 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 1582 +log2(_Tp __x) +# 1583 +{ return __builtin_log2(__x); } +# 1588 +constexpr float logb(float __x) +# 1589 +{ return __builtin_logbf(__x); } +# 1592 +constexpr long double logb(long double __x) +# 1593 +{ return __builtin_logbl(__x); } +# 1597 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 1600 +logb(_Tp __x) +# 1601 +{ return __builtin_logb(__x); } +# 1606 +constexpr long lrint(float __x) +# 1607 +{ return __builtin_lrintf(__x); } +# 1610 +constexpr long lrint(long double __x) +# 1611 +{ return __builtin_lrintl(__x); } +# 1615 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, long> ::__type +# 1618 +lrint(_Tp __x) +# 1619 +{ return __builtin_lrint(__x); } +# 1624 +constexpr long lround(float __x) +# 1625 +{ return __builtin_lroundf(__x); } +# 1628 +constexpr long lround(long double __x) +# 1629 +{ return __builtin_lroundl(__x); } +# 1633 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, long> ::__type +# 1636 +lround(_Tp __x) +# 1637 +{ return __builtin_lround(__x); } +# 1642 +constexpr float nearbyint(float __x) +# 1643 +{ return __builtin_nearbyintf(__x); } +# 1646 +constexpr long double nearbyint(long double __x) +# 1647 +{ return __builtin_nearbyintl(__x); } +# 1651 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 1654 +nearbyint(_Tp __x) +# 1655 +{ return __builtin_nearbyint(__x); } +# 1660 +constexpr float nextafter(float __x, float __y) +# 1661 +{ return __builtin_nextafterf(__x, __y); } +# 1664 +constexpr long double nextafter(long double __x, long double __y) +# 1665 +{ return __builtin_nextafterl(__x, __y); } +# 1669 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type +# 1671 +nextafter(_Tp __x, _Up __y) +# 1672 +{ +# 1673 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 1674 +return nextafter((__type)__x, (__type)__y); +# 1675 +} +# 1680 +constexpr float nexttoward(float __x, long double __y) +# 1681 +{ return __builtin_nexttowardf(__x, __y); } +# 1684 +constexpr long double nexttoward(long double __x, long double __y) +# 1685 +{ return __builtin_nexttowardl(__x, __y); } +# 1689 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 1692 +nexttoward(_Tp __x, long double __y) +# 1693 +{ return __builtin_nexttoward(__x, __y); } +# 1698 +constexpr float remainder(float __x, float __y) +# 1699 +{ return __builtin_remainderf(__x, __y); } +# 1702 +constexpr long double remainder(long double __x, long double __y) +# 1703 +{ return __builtin_remainderl(__x, __y); } +# 1707 +template< class _Tp, class _Up> constexpr typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type +# 1709 +remainder(_Tp __x, _Up __y) +# 1710 +{ +# 1711 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 1712 +return remainder((__type)__x, (__type)__y); +# 1713 +} +# 1718 +inline float remquo(float __x, float __y, int *__pquo) +# 1719 +{ return __builtin_remquof(__x, __y, __pquo); } +# 1722 +inline long double remquo(long double __x, long double __y, int *__pquo) +# 1723 +{ return __builtin_remquol(__x, __y, __pquo); } +# 1727 +template< class _Tp, class _Up> inline typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type +# 1729 +remquo(_Tp __x, _Up __y, int *__pquo) +# 1730 +{ +# 1731 +typedef typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type __type; +# 1732 +return remquo((__type)__x, (__type)__y, __pquo); +# 1733 +} +# 1738 +constexpr float rint(float __x) +# 1739 +{ return __builtin_rintf(__x); } +# 1742 +constexpr long double rint(long double __x) +# 1743 +{ return __builtin_rintl(__x); } +# 1747 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 1750 +rint(_Tp __x) +# 1751 +{ return __builtin_rint(__x); } +# 1756 +constexpr float round(float __x) +# 1757 +{ return __builtin_roundf(__x); } +# 1760 +constexpr long double round(long double __x) +# 1761 +{ return __builtin_roundl(__x); } +# 1765 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 1768 +round(_Tp __x) +# 1769 +{ return __builtin_round(__x); } +# 1774 +constexpr float scalbln(float __x, long __ex) +# 1775 +{ return __builtin_scalblnf(__x, __ex); } +# 1778 +constexpr long double scalbln(long double __x, long __ex) +# 1779 +{ return __builtin_scalblnl(__x, __ex); } +# 1783 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 1786 +scalbln(_Tp __x, long __ex) +# 1787 +{ return __builtin_scalbln(__x, __ex); } +# 1792 +constexpr float scalbn(float __x, int __ex) +# 1793 +{ return __builtin_scalbnf(__x, __ex); } +# 1796 +constexpr long double scalbn(long double __x, int __ex) +# 1797 +{ return __builtin_scalbnl(__x, __ex); } +# 1801 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 1804 +scalbn(_Tp __x, int __ex) +# 1805 +{ return __builtin_scalbn(__x, __ex); } +# 1810 +constexpr float tgamma(float __x) +# 1811 +{ return __builtin_tgammaf(__x); } +# 1814 +constexpr long double tgamma(long double __x) +# 1815 +{ return __builtin_tgammal(__x); } +# 1819 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 1822 +tgamma(_Tp __x) +# 1823 +{ return __builtin_tgamma(__x); } +# 1828 +constexpr float trunc(float __x) +# 1829 +{ return __builtin_truncf(__x); } +# 1832 +constexpr long double trunc(long double __x) +# 1833 +{ return __builtin_truncl(__x); } +# 1837 +template< class _Tp> constexpr typename __gnu_cxx::__enable_if< __is_integer< _Tp> ::__value, double> ::__type +# 1840 +trunc(_Tp __x) +# 1841 +{ return __builtin_trunc(__x); } +# 1924 "/usr/include/c++/9/cmath" 3 +} +# 1930 +} +# 38 "/usr/include/c++/9/math.h" 3 +using std::abs; +# 39 +using std::acos; +# 40 +using std::asin; +# 41 +using std::atan; +# 42 +using std::atan2; +# 43 +using std::cos; +# 44 +using std::sin; +# 45 +using std::tan; +# 46 +using std::cosh; +# 47 +using std::sinh; +# 48 +using std::tanh; +# 49 +using std::exp; +# 50 +using std::frexp; +# 51 +using std::ldexp; +# 52 +using std::log; +# 53 +using std::log10; +# 54 +using std::modf; +# 55 +using std::pow; +# 56 +using std::sqrt; +# 57 +using std::ceil; +# 58 +using std::fabs; +# 59 +using std::floor; +# 60 +using std::fmod; +# 63 +using std::fpclassify; +# 64 +using std::isfinite; +# 65 +using std::isinf; +# 66 +using std::isnan; +# 67 +using std::isnormal; +# 68 +using std::signbit; +# 69 +using std::isgreater; +# 70 +using std::isgreaterequal; +# 71 +using std::isless; +# 72 +using std::islessequal; +# 73 +using std::islessgreater; +# 74 +using std::isunordered; +# 78 +using std::acosh; +# 79 +using std::asinh; +# 80 +using std::atanh; +# 81 +using std::cbrt; +# 82 +using std::copysign; +# 83 +using std::erf; +# 84 +using std::erfc; +# 85 +using std::exp2; +# 86 +using std::expm1; +# 87 +using std::fdim; +# 88 +using std::fma; +# 89 +using std::fmax; +# 90 +using std::fmin; +# 91 +using std::hypot; +# 92 +using std::ilogb; +# 93 +using std::lgamma; +# 94 +using std::llrint; +# 95 +using std::llround; +# 96 +using std::log1p; +# 97 +using std::log2; +# 98 +using std::logb; +# 99 +using std::lrint; +# 100 +using std::lround; +# 101 +using std::nearbyint; +# 102 +using std::nextafter; +# 103 +using std::nexttoward; +# 104 +using std::remainder; +# 105 +using std::remquo; +# 106 +using std::rint; +# 107 +using std::round; +# 108 +using std::scalbln; +# 109 +using std::scalbn; +# 110 +using std::tgamma; +# 111 +using std::trunc; +# 121 "/usr/include/c++/9/cstdlib" 3 +extern "C++" { +# 123 +namespace std __attribute((__visibility__("default"))) { +# 127 +using ::div_t; +# 128 +using ::ldiv_t; +# 130 +using ::abort; +# 134 +using ::atexit; +# 137 +using ::at_quick_exit; +# 140 +using ::atof; +# 141 +using ::atoi; +# 142 +using ::atol; +# 143 +using ::bsearch; +# 144 +using ::calloc; +# 145 +using ::div; +# 146 +using ::exit; +# 147 +using ::free; +# 148 +using ::getenv; +# 149 +using ::labs; +# 150 +using ::ldiv; +# 151 +using ::malloc; +# 153 +using ::mblen; +# 154 +using ::mbstowcs; +# 155 +using ::mbtowc; +# 157 +using ::qsort; +# 160 +using ::quick_exit; +# 163 +using ::rand; +# 164 +using ::realloc; +# 165 +using ::srand; +# 166 +using ::strtod; +# 167 +using ::strtol; +# 168 +using ::strtoul; +# 169 +using ::system; +# 171 +using ::wcstombs; +# 172 +using ::wctomb; +# 177 +inline ldiv_t div(long __i, long __j) { return ldiv(__i, __j); } +# 182 +} +# 195 "/usr/include/c++/9/cstdlib" 3 +namespace __gnu_cxx __attribute((__visibility__("default"))) { +# 200 +using ::lldiv_t; +# 206 +using ::_Exit; +# 210 +using ::llabs; +# 213 +inline lldiv_t div(long long __n, long long __d) +# 214 +{ lldiv_t __q; (__q.quot) = (__n / __d); (__q.rem) = (__n % __d); return __q; } +# 216 +using ::lldiv; +# 227 "/usr/include/c++/9/cstdlib" 3 +using ::atoll; +# 228 +using ::strtoll; +# 229 +using ::strtoull; +# 231 +using ::strtof; +# 232 +using ::strtold; +# 235 +} +# 237 +namespace std { +# 240 +using __gnu_cxx::lldiv_t; +# 242 +using __gnu_cxx::_Exit; +# 244 +using __gnu_cxx::llabs; +# 245 +using __gnu_cxx::div; +# 246 +using __gnu_cxx::lldiv; +# 248 +using __gnu_cxx::atoll; +# 249 +using __gnu_cxx::strtof; +# 250 +using __gnu_cxx::strtoll; +# 251 +using __gnu_cxx::strtoull; +# 252 +using __gnu_cxx::strtold; +# 253 +} +# 257 +} +# 38 "/usr/include/c++/9/stdlib.h" 3 +using std::abort; +# 39 +using std::atexit; +# 40 +using std::exit; +# 43 +using std::at_quick_exit; +# 46 +using std::quick_exit; +# 54 +using std::abs; +# 55 +using std::atof; +# 56 +using std::atoi; +# 57 +using std::atol; +# 58 +using std::bsearch; +# 59 +using std::calloc; +# 60 +using std::div; +# 61 +using std::free; +# 62 +using std::getenv; +# 63 +using std::labs; +# 64 +using std::ldiv; +# 65 +using std::malloc; +# 67 +using std::mblen; +# 68 +using std::mbstowcs; +# 69 +using std::mbtowc; +# 71 +using std::qsort; +# 72 +using std::rand; +# 73 +using std::realloc; +# 74 +using std::srand; +# 75 +using std::strtod; +# 76 +using std::strtol; +# 77 +using std::strtoul; +# 78 +using std::system; +# 80 +using std::wcstombs; +# 81 +using std::wctomb; +# 10622 "/usr/include/crt/math_functions.h" 3 +namespace std { +# 10623 +constexpr bool signbit(float x); +# 10624 +constexpr bool signbit(double x); +# 10625 +constexpr bool signbit(long double x); +# 10626 +constexpr bool isfinite(float x); +# 10627 +constexpr bool isfinite(double x); +# 10628 +constexpr bool isfinite(long double x); +# 10629 +constexpr bool isnan(float x); +# 10634 +constexpr bool isnan(double x); +# 10636 +constexpr bool isnan(long double x); +# 10637 +constexpr bool isinf(float x); +# 10642 +constexpr bool isinf(double x); +# 10644 +constexpr bool isinf(long double x); +# 10645 +} +# 10798 "/usr/include/crt/math_functions.h" 3 +namespace std { +# 10800 +template< class T> extern T __pow_helper(T, int); +# 10801 +template< class T> extern T __cmath_power(T, unsigned); +# 10802 +} +# 10804 +using std::abs; +# 10805 +using std::fabs; +# 10806 +using std::ceil; +# 10807 +using std::floor; +# 10808 +using std::sqrt; +# 10810 +using std::pow; +# 10812 +using std::log; +# 10813 +using std::log10; +# 10814 +using std::fmod; +# 10815 +using std::modf; +# 10816 +using std::exp; +# 10817 +using std::frexp; +# 10818 +using std::ldexp; +# 10819 +using std::asin; +# 10820 +using std::sin; +# 10821 +using std::sinh; +# 10822 +using std::acos; +# 10823 +using std::cos; +# 10824 +using std::cosh; +# 10825 +using std::atan; +# 10826 +using std::atan2; +# 10827 +using std::tan; +# 10828 +using std::tanh; +# 11199 "/usr/include/crt/math_functions.h" 3 +namespace std { +# 11208 "/usr/include/crt/math_functions.h" 3 +extern inline long long abs(long long); +# 11218 "/usr/include/crt/math_functions.h" 3 +extern inline long abs(long); +# 11219 +extern constexpr float abs(float); +# 11220 +extern constexpr double abs(double); +# 11221 +extern constexpr float fabs(float); +# 11222 +extern constexpr float ceil(float); +# 11223 +extern constexpr float floor(float); +# 11224 +extern constexpr float sqrt(float); +# 11225 +extern constexpr float pow(float, float); +# 11230 +template< class _Tp, class _Up> extern constexpr typename __gnu_cxx::__promote_2< _Tp, _Up> ::__type pow(_Tp, _Up); +# 11240 +extern constexpr float log(float); +# 11241 +extern constexpr float log10(float); +# 11242 +extern constexpr float fmod(float, float); +# 11243 +extern inline float modf(float, float *); +# 11244 +extern constexpr float exp(float); +# 11245 +extern inline float frexp(float, int *); +# 11246 +extern constexpr float ldexp(float, int); +# 11247 +extern constexpr float asin(float); +# 11248 +extern constexpr float sin(float); +# 11249 +extern constexpr float sinh(float); +# 11250 +extern constexpr float acos(float); +# 11251 +extern constexpr float cos(float); +# 11252 +extern constexpr float cosh(float); +# 11253 +extern constexpr float atan(float); +# 11254 +extern constexpr float atan2(float, float); +# 11255 +extern constexpr float tan(float); +# 11256 +extern constexpr float tanh(float); +# 11335 "/usr/include/crt/math_functions.h" 3 +} +# 11441 "/usr/include/crt/math_functions.h" 3 +namespace std { +# 11442 +constexpr float logb(float a); +# 11443 +constexpr int ilogb(float a); +# 11444 +constexpr float scalbn(float a, int b); +# 11445 +constexpr float scalbln(float a, long b); +# 11446 +constexpr float exp2(float a); +# 11447 +constexpr float expm1(float a); +# 11448 +constexpr float log2(float a); +# 11449 +constexpr float log1p(float a); +# 11450 +constexpr float acosh(float a); +# 11451 +constexpr float asinh(float a); +# 11452 +constexpr float atanh(float a); +# 11453 +constexpr float hypot(float a, float b); +# 11454 +constexpr float cbrt(float a); +# 11455 +constexpr float erf(float a); +# 11456 +constexpr float erfc(float a); +# 11457 +constexpr float lgamma(float a); +# 11458 +constexpr float tgamma(float a); +# 11459 +constexpr float copysign(float a, float b); +# 11460 +constexpr float nextafter(float a, float b); +# 11461 +constexpr float remainder(float a, float b); +# 11462 +inline float remquo(float a, float b, int * quo); +# 11463 +constexpr float round(float a); +# 11464 +constexpr long lround(float a); +# 11465 +constexpr long long llround(float a); +# 11466 +constexpr float trunc(float a); +# 11467 +constexpr float rint(float a); +# 11468 +constexpr long lrint(float a); +# 11469 +constexpr long long llrint(float a); +# 11470 +constexpr float nearbyint(float a); +# 11471 +constexpr float fdim(float a, float b); +# 11472 +constexpr float fma(float a, float b, float c); +# 11473 +constexpr float fmax(float a, float b); +# 11474 +constexpr float fmin(float a, float b); +# 11475 +} +# 11580 "/usr/include/crt/math_functions.h" 3 +static inline float exp10(const float a); +# 11582 +static inline float rsqrt(const float a); +# 11584 +static inline float rcbrt(const float a); +# 11586 +static inline float sinpi(const float a); +# 11588 +static inline float cospi(const float a); +# 11590 +static inline void sincospi(const float a, float *const sptr, float *const cptr); +# 11592 +static inline void sincos(const float a, float *const sptr, float *const cptr); +# 11594 +static inline float j0(const float a); +# 11596 +static inline float j1(const float a); +# 11598 +static inline float jn(const int n, const float a); +# 11600 +static inline float y0(const float a); +# 11602 +static inline float y1(const float a); +# 11604 +static inline float yn(const int n, const float a); +# 11606 +__attribute__((unused)) static inline float cyl_bessel_i0(const float a); +# 11608 +__attribute__((unused)) static inline float cyl_bessel_i1(const float a); +# 11610 +static inline float erfinv(const float a); +# 11612 +static inline float erfcinv(const float a); +# 11614 +static inline float normcdfinv(const float a); +# 11616 +static inline float normcdf(const float a); +# 11618 +static inline float erfcx(const float a); +# 11620 +static inline double copysign(const double a, const float b); +# 11622 +static inline double copysign(const float a, const double b); +# 11630 +static inline unsigned min(const unsigned a, const unsigned b); +# 11638 +static inline unsigned min(const int a, const unsigned b); +# 11646 +static inline unsigned min(const unsigned a, const int b); +# 11654 +static inline long min(const long a, const long b); +# 11662 +static inline unsigned long min(const unsigned long a, const unsigned long b); +# 11670 +static inline unsigned long min(const long a, const unsigned long b); +# 11678 +static inline unsigned long min(const unsigned long a, const long b); +# 11686 +static inline long long min(const long long a, const long long b); +# 11694 +static inline unsigned long long min(const unsigned long long a, const unsigned long long b); +# 11702 +static inline unsigned long long min(const long long a, const unsigned long long b); +# 11710 +static inline unsigned long long min(const unsigned long long a, const long long b); +# 11721 "/usr/include/crt/math_functions.h" 3 +static inline float min(const float a, const float b); +# 11732 "/usr/include/crt/math_functions.h" 3 +static inline double min(const double a, const double b); +# 11742 "/usr/include/crt/math_functions.h" 3 +static inline double min(const float a, const double b); +# 11752 "/usr/include/crt/math_functions.h" 3 +static inline double min(const double a, const float b); +# 11760 +static inline unsigned max(const unsigned a, const unsigned b); +# 11768 +static inline unsigned max(const int a, const unsigned b); +# 11776 +static inline unsigned max(const unsigned a, const int b); +# 11784 +static inline long max(const long a, const long b); +# 11792 +static inline unsigned long max(const unsigned long a, const unsigned long b); +# 11800 +static inline unsigned long max(const long a, const unsigned long b); +# 11808 +static inline unsigned long max(const unsigned long a, const long b); +# 11816 +static inline long long max(const long long a, const long long b); +# 11824 +static inline unsigned long long max(const unsigned long long a, const unsigned long long b); +# 11832 +static inline unsigned long long max(const long long a, const unsigned long long b); +# 11840 +static inline unsigned long long max(const unsigned long long a, const long long b); +# 11851 "/usr/include/crt/math_functions.h" 3 +static inline float max(const float a, const float b); +# 11862 "/usr/include/crt/math_functions.h" 3 +static inline double max(const double a, const double b); +# 11872 "/usr/include/crt/math_functions.h" 3 +static inline double max(const float a, const double b); +# 11882 "/usr/include/crt/math_functions.h" 3 +static inline double max(const double a, const float b); +# 11893 "/usr/include/crt/math_functions.h" 3 +extern "C" { +# 11894 +__attribute__((unused)) inline void *__nv_aligned_device_malloc(size_t size, size_t align) +# 11895 +{int volatile ___ = 1;(void)size;(void)align; +# 11898 +::exit(___);} +#if 0 +# 11895 +{ +# 11896 +__attribute__((unused)) void *__nv_aligned_device_malloc_impl(size_t, size_t); +# 11897 +return __nv_aligned_device_malloc_impl(size, align); +# 11898 +} +#endif +# 11899 "/usr/include/crt/math_functions.h" 3 +} +# 758 "/usr/include/crt/math_functions.hpp" 3 +static inline float exp10(const float a) +# 759 +{ +# 760 +return exp10f(a); +# 761 +} +# 763 +static inline float rsqrt(const float a) +# 764 +{ +# 765 +return rsqrtf(a); +# 766 +} +# 768 +static inline float rcbrt(const float a) +# 769 +{ +# 770 +return rcbrtf(a); +# 771 +} +# 773 +static inline float sinpi(const float a) +# 774 +{ +# 775 +return sinpif(a); +# 776 +} +# 778 +static inline float cospi(const float a) +# 779 +{ +# 780 +return cospif(a); +# 781 +} +# 783 +static inline void sincospi(const float a, float *const sptr, float *const cptr) +# 784 +{ +# 785 +sincospif(a, sptr, cptr); +# 786 +} +# 788 +static inline void sincos(const float a, float *const sptr, float *const cptr) +# 789 +{ +# 790 +sincosf(a, sptr, cptr); +# 791 +} +# 793 +static inline float j0(const float a) +# 794 +{ +# 795 +return j0f(a); +# 796 +} +# 798 +static inline float j1(const float a) +# 799 +{ +# 800 +return j1f(a); +# 801 +} +# 803 +static inline float jn(const int n, const float a) +# 804 +{ +# 805 +return jnf(n, a); +# 806 +} +# 808 +static inline float y0(const float a) +# 809 +{ +# 810 +return y0f(a); +# 811 +} +# 813 +static inline float y1(const float a) +# 814 +{ +# 815 +return y1f(a); +# 816 +} +# 818 +static inline float yn(const int n, const float a) +# 819 +{ +# 820 +return ynf(n, a); +# 821 +} +# 823 +__attribute__((unused)) static inline float cyl_bessel_i0(const float a) +# 824 +{int volatile ___ = 1;(void)a; +# 826 +::exit(___);} +#if 0 +# 824 +{ +# 825 +return cyl_bessel_i0f(a); +# 826 +} +#endif +# 828 "/usr/include/crt/math_functions.hpp" 3 +__attribute__((unused)) static inline float cyl_bessel_i1(const float a) +# 829 +{int volatile ___ = 1;(void)a; +# 831 +::exit(___);} +#if 0 +# 829 +{ +# 830 +return cyl_bessel_i1f(a); +# 831 +} +#endif +# 833 "/usr/include/crt/math_functions.hpp" 3 +static inline float erfinv(const float a) +# 834 +{ +# 835 +return erfinvf(a); +# 836 +} +# 838 +static inline float erfcinv(const float a) +# 839 +{ +# 840 +return erfcinvf(a); +# 841 +} +# 843 +static inline float normcdfinv(const float a) +# 844 +{ +# 845 +return normcdfinvf(a); +# 846 +} +# 848 +static inline float normcdf(const float a) +# 849 +{ +# 850 +return normcdff(a); +# 851 +} +# 853 +static inline float erfcx(const float a) +# 854 +{ +# 855 +return erfcxf(a); +# 856 +} +# 858 +static inline double copysign(const double a, const float b) +# 859 +{ +# 860 +return copysign(a, static_cast< double>(b)); +# 861 +} +# 863 +static inline double copysign(const float a, const double b) +# 864 +{ +# 865 +return copysign(static_cast< double>(a), b); +# 866 +} +# 868 +static inline unsigned min(const unsigned a, const unsigned b) +# 869 +{ +# 870 +return umin(a, b); +# 871 +} +# 873 +static inline unsigned min(const int a, const unsigned b) +# 874 +{ +# 875 +return umin(static_cast< unsigned>(a), b); +# 876 +} +# 878 +static inline unsigned min(const unsigned a, const int b) +# 879 +{ +# 880 +return umin(a, static_cast< unsigned>(b)); +# 881 +} +# 883 +static inline long min(const long a, const long b) +# 884 +{ +# 885 +long retval; +# 891 +if (sizeof(long) == sizeof(int)) { +# 895 +retval = (static_cast< long>(min(static_cast< int>(a), static_cast< int>(b)))); +# 896 +} else { +# 897 +retval = (static_cast< long>(llmin(static_cast< long long>(a), static_cast< long long>(b)))); +# 898 +} +# 899 +return retval; +# 900 +} +# 902 +static inline unsigned long min(const unsigned long a, const unsigned long b) +# 903 +{ +# 904 +unsigned long retval; +# 908 +if (sizeof(unsigned long) == sizeof(unsigned)) { +# 912 +retval = (static_cast< unsigned long>(umin(static_cast< unsigned>(a), static_cast< unsigned>(b)))); +# 913 +} else { +# 914 +retval = (static_cast< unsigned long>(ullmin(static_cast< unsigned long long>(a), static_cast< unsigned long long>(b)))); +# 915 +} +# 916 +return retval; +# 917 +} +# 919 +static inline unsigned long min(const long a, const unsigned long b) +# 920 +{ +# 921 +unsigned long retval; +# 925 +if (sizeof(unsigned long) == sizeof(unsigned)) { +# 929 +retval = (static_cast< unsigned long>(umin(static_cast< unsigned>(a), static_cast< unsigned>(b)))); +# 930 +} else { +# 931 +retval = (static_cast< unsigned long>(ullmin(static_cast< unsigned long long>(a), static_cast< unsigned long long>(b)))); +# 932 +} +# 933 +return retval; +# 934 +} +# 936 +static inline unsigned long min(const unsigned long a, const long b) +# 937 +{ +# 938 +unsigned long retval; +# 942 +if (sizeof(unsigned long) == sizeof(unsigned)) { +# 946 +retval = (static_cast< unsigned long>(umin(static_cast< unsigned>(a), static_cast< unsigned>(b)))); +# 947 +} else { +# 948 +retval = (static_cast< unsigned long>(ullmin(static_cast< unsigned long long>(a), static_cast< unsigned long long>(b)))); +# 949 +} +# 950 +return retval; +# 951 +} +# 953 +static inline long long min(const long long a, const long long b) +# 954 +{ +# 955 +return llmin(a, b); +# 956 +} +# 958 +static inline unsigned long long min(const unsigned long long a, const unsigned long long b) +# 959 +{ +# 960 +return ullmin(a, b); +# 961 +} +# 963 +static inline unsigned long long min(const long long a, const unsigned long long b) +# 964 +{ +# 965 +return ullmin(static_cast< unsigned long long>(a), b); +# 966 +} +# 968 +static inline unsigned long long min(const unsigned long long a, const long long b) +# 969 +{ +# 970 +return ullmin(a, static_cast< unsigned long long>(b)); +# 971 +} +# 973 +static inline float min(const float a, const float b) +# 974 +{ +# 975 +return fminf(a, b); +# 976 +} +# 978 +static inline double min(const double a, const double b) +# 979 +{ +# 980 +return fmin(a, b); +# 981 +} +# 983 +static inline double min(const float a, const double b) +# 984 +{ +# 985 +return fmin(static_cast< double>(a), b); +# 986 +} +# 988 +static inline double min(const double a, const float b) +# 989 +{ +# 990 +return fmin(a, static_cast< double>(b)); +# 991 +} +# 993 +static inline unsigned max(const unsigned a, const unsigned b) +# 994 +{ +# 995 +return umax(a, b); +# 996 +} +# 998 +static inline unsigned max(const int a, const unsigned b) +# 999 +{ +# 1000 +return umax(static_cast< unsigned>(a), b); +# 1001 +} +# 1003 +static inline unsigned max(const unsigned a, const int b) +# 1004 +{ +# 1005 +return umax(a, static_cast< unsigned>(b)); +# 1006 +} +# 1008 +static inline long max(const long a, const long b) +# 1009 +{ +# 1010 +long retval; +# 1015 +if (sizeof(long) == sizeof(int)) { +# 1019 +retval = (static_cast< long>(max(static_cast< int>(a), static_cast< int>(b)))); +# 1020 +} else { +# 1021 +retval = (static_cast< long>(llmax(static_cast< long long>(a), static_cast< long long>(b)))); +# 1022 +} +# 1023 +return retval; +# 1024 +} +# 1026 +static inline unsigned long max(const unsigned long a, const unsigned long b) +# 1027 +{ +# 1028 +unsigned long retval; +# 1032 +if (sizeof(unsigned long) == sizeof(unsigned)) { +# 1036 +retval = (static_cast< unsigned long>(umax(static_cast< unsigned>(a), static_cast< unsigned>(b)))); +# 1037 +} else { +# 1038 +retval = (static_cast< unsigned long>(ullmax(static_cast< unsigned long long>(a), static_cast< unsigned long long>(b)))); +# 1039 +} +# 1040 +return retval; +# 1041 +} +# 1043 +static inline unsigned long max(const long a, const unsigned long b) +# 1044 +{ +# 1045 +unsigned long retval; +# 1049 +if (sizeof(unsigned long) == sizeof(unsigned)) { +# 1053 +retval = (static_cast< unsigned long>(umax(static_cast< unsigned>(a), static_cast< unsigned>(b)))); +# 1054 +} else { +# 1055 +retval = (static_cast< unsigned long>(ullmax(static_cast< unsigned long long>(a), static_cast< unsigned long long>(b)))); +# 1056 +} +# 1057 +return retval; +# 1058 +} +# 1060 +static inline unsigned long max(const unsigned long a, const long b) +# 1061 +{ +# 1062 +unsigned long retval; +# 1066 +if (sizeof(unsigned long) == sizeof(unsigned)) { +# 1070 +retval = (static_cast< unsigned long>(umax(static_cast< unsigned>(a), static_cast< unsigned>(b)))); +# 1071 +} else { +# 1072 +retval = (static_cast< unsigned long>(ullmax(static_cast< unsigned long long>(a), static_cast< unsigned long long>(b)))); +# 1073 +} +# 1074 +return retval; +# 1075 +} +# 1077 +static inline long long max(const long long a, const long long b) +# 1078 +{ +# 1079 +return llmax(a, b); +# 1080 +} +# 1082 +static inline unsigned long long max(const unsigned long long a, const unsigned long long b) +# 1083 +{ +# 1084 +return ullmax(a, b); +# 1085 +} +# 1087 +static inline unsigned long long max(const long long a, const unsigned long long b) +# 1088 +{ +# 1089 +return ullmax(static_cast< unsigned long long>(a), b); +# 1090 +} +# 1092 +static inline unsigned long long max(const unsigned long long a, const long long b) +# 1093 +{ +# 1094 +return ullmax(a, static_cast< unsigned long long>(b)); +# 1095 +} +# 1097 +static inline float max(const float a, const float b) +# 1098 +{ +# 1099 +return fmaxf(a, b); +# 1100 +} +# 1102 +static inline double max(const double a, const double b) +# 1103 +{ +# 1104 +return fmax(a, b); +# 1105 +} +# 1107 +static inline double max(const float a, const double b) +# 1108 +{ +# 1109 +return fmax(static_cast< double>(a), b); +# 1110 +} +# 1112 +static inline double max(const double a, const float b) +# 1113 +{ +# 1114 +return fmax(a, static_cast< double>(b)); +# 1115 +} +# 1126 "/usr/include/crt/math_functions.hpp" 3 +inline int min(const int a, const int b) +# 1127 +{ +# 1128 +return (a < b) ? a : b; +# 1129 +} +# 1131 +inline unsigned umin(const unsigned a, const unsigned b) +# 1132 +{ +# 1133 +return (a < b) ? a : b; +# 1134 +} +# 1136 +inline long long llmin(const long long a, const long long b) +# 1137 +{ +# 1138 +return (a < b) ? a : b; +# 1139 +} +# 1141 +inline unsigned long long ullmin(const unsigned long long a, const unsigned long long +# 1142 +b) +# 1143 +{ +# 1144 +return (a < b) ? a : b; +# 1145 +} +# 1147 +inline int max(const int a, const int b) +# 1148 +{ +# 1149 +return (a > b) ? a : b; +# 1150 +} +# 1152 +inline unsigned umax(const unsigned a, const unsigned b) +# 1153 +{ +# 1154 +return (a > b) ? a : b; +# 1155 +} +# 1157 +inline long long llmax(const long long a, const long long b) +# 1158 +{ +# 1159 +return (a > b) ? a : b; +# 1160 +} +# 1162 +inline unsigned long long ullmax(const unsigned long long a, const unsigned long long +# 1163 +b) +# 1164 +{ +# 1165 +return (a > b) ? a : b; +# 1166 +} +# 74 "/usr/include/cuda_surface_types.h" 3 +template< class T, int dim = 1> +# 75 +struct surface : public surfaceReference { +# 78 +surface() +# 79 +{ +# 80 +(channelDesc) = cudaCreateChannelDesc< T> (); +# 81 +} +# 83 +surface(cudaChannelFormatDesc desc) +# 84 +{ +# 85 +(channelDesc) = desc; +# 86 +} +# 88 +}; +# 90 +template< int dim> +# 91 +struct surface< void, dim> : public surfaceReference { +# 94 +surface() +# 95 +{ +# 96 +(channelDesc) = cudaCreateChannelDesc< void> (); +# 97 +} +# 99 +}; +# 74 "/usr/include/cuda_texture_types.h" 3 +template< class T, int texType = 1, cudaTextureReadMode mode = cudaReadModeElementType> +# 75 +struct texture : public textureReference { +# 78 +texture(int norm = 0, cudaTextureFilterMode +# 79 +fMode = cudaFilterModePoint, cudaTextureAddressMode +# 80 +aMode = cudaAddressModeClamp) +# 81 +{ +# 82 +(normalized) = norm; +# 83 +(filterMode) = fMode; +# 84 +((addressMode)[0]) = aMode; +# 85 +((addressMode)[1]) = aMode; +# 86 +((addressMode)[2]) = aMode; +# 87 +(channelDesc) = cudaCreateChannelDesc< T> (); +# 88 +(sRGB) = 0; +# 89 +} +# 91 +texture(int norm, cudaTextureFilterMode +# 92 +fMode, cudaTextureAddressMode +# 93 +aMode, cudaChannelFormatDesc +# 94 +desc) +# 95 +{ +# 96 +(normalized) = norm; +# 97 +(filterMode) = fMode; +# 98 +((addressMode)[0]) = aMode; +# 99 +((addressMode)[1]) = aMode; +# 100 +((addressMode)[2]) = aMode; +# 101 +(channelDesc) = desc; +# 102 +(sRGB) = 0; +# 103 +} +# 105 +}; +# 89 "/usr/include/crt/device_functions.h" 3 +extern "C" { +# 3207 "/usr/include/crt/device_functions.h" 3 +} +# 3229 "/usr/include/crt/device_functions.h" 3 +__attribute((deprecated("mulhi() is deprecated in favor of __mulhi() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress" " this warning)."))) __attribute__((unused)) static inline int mulhi(const int a, const int b); +# 3231 +__attribute((deprecated("mulhi() is deprecated in favor of __mulhi() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress" " this warning)."))) __attribute__((unused)) static inline unsigned mulhi(const unsigned a, const unsigned b); +# 3233 +__attribute((deprecated("mulhi() is deprecated in favor of __mulhi() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress" " this warning)."))) __attribute__((unused)) static inline unsigned mulhi(const int a, const unsigned b); +# 3235 +__attribute((deprecated("mulhi() is deprecated in favor of __mulhi() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress" " this warning)."))) __attribute__((unused)) static inline unsigned mulhi(const unsigned a, const int b); +# 3237 +__attribute((deprecated("mul64hi() is deprecated in favor of __mul64hi() and may be removed in a future release (Use -Wno-deprecated-declarations to supp" "ress this warning)."))) __attribute__((unused)) static inline long long mul64hi(const long long a, const long long b); +# 3239 +__attribute((deprecated("mul64hi() is deprecated in favor of __mul64hi() and may be removed in a future release (Use -Wno-deprecated-declarations to supp" "ress this warning)."))) __attribute__((unused)) static inline unsigned long long mul64hi(const unsigned long long a, const unsigned long long b); +# 3241 +__attribute((deprecated("mul64hi() is deprecated in favor of __mul64hi() and may be removed in a future release (Use -Wno-deprecated-declarations to supp" "ress this warning)."))) __attribute__((unused)) static inline unsigned long long mul64hi(const long long a, const unsigned long long b); +# 3243 +__attribute((deprecated("mul64hi() is deprecated in favor of __mul64hi() and may be removed in a future release (Use -Wno-deprecated-declarations to supp" "ress this warning)."))) __attribute__((unused)) static inline unsigned long long mul64hi(const unsigned long long a, const long long b); +# 3245 +__attribute((deprecated("float_as_int() is deprecated in favor of __float_as_int() and may be removed in a future release (Use -Wno-deprecated-declaratio" "ns to suppress this warning)."))) __attribute__((unused)) static inline int float_as_int(const float a); +# 3247 +__attribute((deprecated("int_as_float() is deprecated in favor of __int_as_float() and may be removed in a future release (Use -Wno-deprecated-declaratio" "ns to suppress this warning)."))) __attribute__((unused)) static inline float int_as_float(const int a); +# 3249 +__attribute((deprecated("float_as_uint() is deprecated in favor of __float_as_uint() and may be removed in a future release (Use -Wno-deprecated-declarat" "ions to suppress this warning)."))) __attribute__((unused)) static inline unsigned float_as_uint(const float a); +# 3251 +__attribute((deprecated("uint_as_float() is deprecated in favor of __uint_as_float() and may be removed in a future release (Use -Wno-deprecated-declarat" "ions to suppress this warning)."))) __attribute__((unused)) static inline float uint_as_float(const unsigned a); +# 3253 +__attribute((deprecated("saturate() is deprecated in favor of __saturatef() and may be removed in a future release (Use -Wno-deprecated-declarations to s" "uppress this warning)."))) __attribute__((unused)) static inline float saturate(const float a); +# 3255 +__attribute((deprecated("mul24() is deprecated in favor of __mul24() and may be removed in a future release (Use -Wno-deprecated-declarations to suppress" " this warning)."))) __attribute__((unused)) static inline int mul24(const int a, const int b); +# 3257 +__attribute((deprecated("umul24() is deprecated in favor of __umul24() and may be removed in a future release (Use -Wno-deprecated-declarations to suppre" "ss this warning)."))) __attribute__((unused)) static inline unsigned umul24(const unsigned a, const unsigned b); +# 3259 +__attribute((deprecated("float2int() is deprecated in favor of __float2int_ru|_rd|_rn|_rz() and may be removed in a future release (Use -Wno-deprecated-d" "eclarations to suppress this warning)."))) __attribute__((unused)) static inline int float2int(const float a, const cudaRoundMode mode = cudaRoundZero); +# 3261 +__attribute((deprecated("float2uint() is deprecated in favor of __float2uint_ru|_rd|_rn|_rz() and may be removed in a future release (Use -Wno-deprecated" "-declarations to suppress this warning)."))) __attribute__((unused)) static inline unsigned float2uint(const float a, const cudaRoundMode mode = cudaRoundZero); +# 3263 +__attribute((deprecated("int2float() is deprecated in favor of __int2float_ru|_rd|_rn|_rz() and may be removed in a future release (Use -Wno-deprecated-d" "eclarations to suppress this warning)."))) __attribute__((unused)) static inline float int2float(const int a, const cudaRoundMode mode = cudaRoundNearest); +# 3265 +__attribute((deprecated("uint2float() is deprecated in favor of __uint2float_ru|_rd|_rn|_rz() and may be removed in a future release (Use -Wno-deprecated" "-declarations to suppress this warning)."))) __attribute__((unused)) static inline float uint2float(const unsigned a, const cudaRoundMode mode = cudaRoundNearest); +# 90 "/usr/include/crt/device_functions.hpp" 3 +__attribute__((unused)) static inline int mulhi(const int a, const int b) +# 91 +{int volatile ___ = 1;(void)a;(void)b; +# 93 +::exit(___);} +#if 0 +# 91 +{ +# 92 +return __mulhi(a, b); +# 93 +} +#endif +# 95 "/usr/include/crt/device_functions.hpp" 3 +__attribute__((unused)) static inline unsigned mulhi(const unsigned a, const unsigned b) +# 96 +{int volatile ___ = 1;(void)a;(void)b; +# 98 +::exit(___);} +#if 0 +# 96 +{ +# 97 +return __umulhi(a, b); +# 98 +} +#endif +# 100 "/usr/include/crt/device_functions.hpp" 3 +__attribute__((unused)) static inline unsigned mulhi(const int a, const unsigned b) +# 101 +{int volatile ___ = 1;(void)a;(void)b; +# 103 +::exit(___);} +#if 0 +# 101 +{ +# 102 +return __umulhi(static_cast< unsigned>(a), b); +# 103 +} +#endif +# 105 "/usr/include/crt/device_functions.hpp" 3 +__attribute__((unused)) static inline unsigned mulhi(const unsigned a, const int b) +# 106 +{int volatile ___ = 1;(void)a;(void)b; +# 108 +::exit(___);} +#if 0 +# 106 +{ +# 107 +return __umulhi(a, static_cast< unsigned>(b)); +# 108 +} +#endif +# 110 "/usr/include/crt/device_functions.hpp" 3 +__attribute__((unused)) static inline long long mul64hi(const long long a, const long long b) +# 111 +{int volatile ___ = 1;(void)a;(void)b; +# 113 +::exit(___);} +#if 0 +# 111 +{ +# 112 +return __mul64hi(a, b); +# 113 +} +#endif +# 115 "/usr/include/crt/device_functions.hpp" 3 +__attribute__((unused)) static inline unsigned long long mul64hi(const unsigned long long a, const unsigned long long b) +# 116 +{int volatile ___ = 1;(void)a;(void)b; +# 118 +::exit(___);} +#if 0 +# 116 +{ +# 117 +return __umul64hi(a, b); +# 118 +} +#endif +# 120 "/usr/include/crt/device_functions.hpp" 3 +__attribute__((unused)) static inline unsigned long long mul64hi(const long long a, const unsigned long long b) +# 121 +{int volatile ___ = 1;(void)a;(void)b; +# 123 +::exit(___);} +#if 0 +# 121 +{ +# 122 +return __umul64hi(static_cast< unsigned long long>(a), b); +# 123 +} +#endif +# 125 "/usr/include/crt/device_functions.hpp" 3 +__attribute__((unused)) static inline unsigned long long mul64hi(const unsigned long long a, const long long b) +# 126 +{int volatile ___ = 1;(void)a;(void)b; +# 128 +::exit(___);} +#if 0 +# 126 +{ +# 127 +return __umul64hi(a, static_cast< unsigned long long>(b)); +# 128 +} +#endif +# 130 "/usr/include/crt/device_functions.hpp" 3 +__attribute__((unused)) static inline int float_as_int(const float a) +# 131 +{int volatile ___ = 1;(void)a; +# 133 +::exit(___);} +#if 0 +# 131 +{ +# 132 +return __float_as_int(a); +# 133 +} +#endif +# 135 "/usr/include/crt/device_functions.hpp" 3 +__attribute__((unused)) static inline float int_as_float(const int a) +# 136 +{int volatile ___ = 1;(void)a; +# 138 +::exit(___);} +#if 0 +# 136 +{ +# 137 +return __int_as_float(a); +# 138 +} +#endif +# 140 "/usr/include/crt/device_functions.hpp" 3 +__attribute__((unused)) static inline unsigned float_as_uint(const float a) +# 141 +{int volatile ___ = 1;(void)a; +# 143 +::exit(___);} +#if 0 +# 141 +{ +# 142 +return __float_as_uint(a); +# 143 +} +#endif +# 145 "/usr/include/crt/device_functions.hpp" 3 +__attribute__((unused)) static inline float uint_as_float(const unsigned a) +# 146 +{int volatile ___ = 1;(void)a; +# 148 +::exit(___);} +#if 0 +# 146 +{ +# 147 +return __uint_as_float(a); +# 148 +} +#endif +# 149 "/usr/include/crt/device_functions.hpp" 3 +__attribute__((unused)) static inline float saturate(const float a) +# 150 +{int volatile ___ = 1;(void)a; +# 152 +::exit(___);} +#if 0 +# 150 +{ +# 151 +return __saturatef(a); +# 152 +} +#endif +# 154 "/usr/include/crt/device_functions.hpp" 3 +__attribute__((unused)) static inline int mul24(const int a, const int b) +# 155 +{int volatile ___ = 1;(void)a;(void)b; +# 157 +::exit(___);} +#if 0 +# 155 +{ +# 156 +return __mul24(a, b); +# 157 +} +#endif +# 159 "/usr/include/crt/device_functions.hpp" 3 +__attribute__((unused)) static inline unsigned umul24(const unsigned a, const unsigned b) +# 160 +{int volatile ___ = 1;(void)a;(void)b; +# 162 +::exit(___);} +#if 0 +# 160 +{ +# 161 +return __umul24(a, b); +# 162 +} +#endif +# 164 "/usr/include/crt/device_functions.hpp" 3 +__attribute__((unused)) static inline int float2int(const float a, const cudaRoundMode mode) +# 165 +{int volatile ___ = 1;(void)a;(void)mode; +# 170 +::exit(___);} +#if 0 +# 165 +{ +# 166 +return (mode == (cudaRoundNearest)) ? __float2int_rn(a) : ((mode == (cudaRoundPosInf)) ? __float2int_ru(a) : ((mode == (cudaRoundMinInf)) ? __float2int_rd(a) : __float2int_rz(a))); +# 170 +} +#endif +# 172 "/usr/include/crt/device_functions.hpp" 3 +__attribute__((unused)) static inline unsigned float2uint(const float a, const cudaRoundMode mode) +# 173 +{int volatile ___ = 1;(void)a;(void)mode; +# 178 +::exit(___);} +#if 0 +# 173 +{ +# 174 +return (mode == (cudaRoundNearest)) ? __float2uint_rn(a) : ((mode == (cudaRoundPosInf)) ? __float2uint_ru(a) : ((mode == (cudaRoundMinInf)) ? __float2uint_rd(a) : __float2uint_rz(a))); +# 178 +} +#endif +# 180 "/usr/include/crt/device_functions.hpp" 3 +__attribute__((unused)) static inline float int2float(const int a, const cudaRoundMode mode) +# 181 +{int volatile ___ = 1;(void)a;(void)mode; +# 186 +::exit(___);} +#if 0 +# 181 +{ +# 182 +return (mode == (cudaRoundZero)) ? __int2float_rz(a) : ((mode == (cudaRoundPosInf)) ? __int2float_ru(a) : ((mode == (cudaRoundMinInf)) ? __int2float_rd(a) : __int2float_rn(a))); +# 186 +} +#endif +# 188 "/usr/include/crt/device_functions.hpp" 3 +__attribute__((unused)) static inline float uint2float(const unsigned a, const cudaRoundMode mode) +# 189 +{int volatile ___ = 1;(void)a;(void)mode; +# 194 +::exit(___);} +#if 0 +# 189 +{ +# 190 +return (mode == (cudaRoundZero)) ? __uint2float_rz(a) : ((mode == (cudaRoundPosInf)) ? __uint2float_ru(a) : ((mode == (cudaRoundMinInf)) ? __uint2float_rd(a) : __uint2float_rn(a))); +# 194 +} +#endif +# 106 "/usr/include/device_atomic_functions.h" 3 +__attribute__((unused)) static inline int atomicAdd(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 106 +{ } +#endif +# 108 "/usr/include/device_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned atomicAdd(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 108 +{ } +#endif +# 110 "/usr/include/device_atomic_functions.h" 3 +__attribute__((unused)) static inline int atomicSub(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 110 +{ } +#endif +# 112 "/usr/include/device_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned atomicSub(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 112 +{ } +#endif +# 114 "/usr/include/device_atomic_functions.h" 3 +__attribute__((unused)) static inline int atomicExch(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 114 +{ } +#endif +# 116 "/usr/include/device_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned atomicExch(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 116 +{ } +#endif +# 118 "/usr/include/device_atomic_functions.h" 3 +__attribute__((unused)) static inline float atomicExch(float *address, float val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 118 +{ } +#endif +# 120 "/usr/include/device_atomic_functions.h" 3 +__attribute__((unused)) static inline int atomicMin(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 120 +{ } +#endif +# 122 "/usr/include/device_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned atomicMin(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 122 +{ } +#endif +# 124 "/usr/include/device_atomic_functions.h" 3 +__attribute__((unused)) static inline int atomicMax(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 124 +{ } +#endif +# 126 "/usr/include/device_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned atomicMax(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 126 +{ } +#endif +# 128 "/usr/include/device_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned atomicInc(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 128 +{ } +#endif +# 130 "/usr/include/device_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned atomicDec(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 130 +{ } +#endif +# 132 "/usr/include/device_atomic_functions.h" 3 +__attribute__((unused)) static inline int atomicAnd(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 132 +{ } +#endif +# 134 "/usr/include/device_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned atomicAnd(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 134 +{ } +#endif +# 136 "/usr/include/device_atomic_functions.h" 3 +__attribute__((unused)) static inline int atomicOr(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 136 +{ } +#endif +# 138 "/usr/include/device_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned atomicOr(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 138 +{ } +#endif +# 140 "/usr/include/device_atomic_functions.h" 3 +__attribute__((unused)) static inline int atomicXor(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 140 +{ } +#endif +# 142 "/usr/include/device_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned atomicXor(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 142 +{ } +#endif +# 144 "/usr/include/device_atomic_functions.h" 3 +__attribute__((unused)) static inline int atomicCAS(int *address, int compare, int val) {int volatile ___ = 1;(void)address;(void)compare;(void)val;::exit(___);} +#if 0 +# 144 +{ } +#endif +# 146 "/usr/include/device_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned atomicCAS(unsigned *address, unsigned compare, unsigned val) {int volatile ___ = 1;(void)address;(void)compare;(void)val;::exit(___);} +#if 0 +# 146 +{ } +#endif +# 171 "/usr/include/device_atomic_functions.h" 3 +extern "C" { +# 180 +} +# 189 "/usr/include/device_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned long long atomicAdd(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 189 +{ } +#endif +# 191 "/usr/include/device_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned long long atomicExch(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 191 +{ } +#endif +# 193 "/usr/include/device_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned long long atomicCAS(unsigned long long *address, unsigned long long compare, unsigned long long val) {int volatile ___ = 1;(void)address;(void)compare;(void)val;::exit(___);} +#if 0 +# 193 +{ } +#endif +# 195 "/usr/include/device_atomic_functions.h" 3 +__attribute((deprecated("__any() is deprecated in favor of __any_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppr" "ess this warning)."))) __attribute__((unused)) static inline bool any(bool cond) {int volatile ___ = 1;(void)cond;::exit(___);} +#if 0 +# 195 +{ } +#endif +# 197 "/usr/include/device_atomic_functions.h" 3 +__attribute((deprecated("__all() is deprecated in favor of __all_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to suppr" "ess this warning)."))) __attribute__((unused)) static inline bool all(bool cond) {int volatile ___ = 1;(void)cond;::exit(___);} +#if 0 +# 197 +{ } +#endif +# 87 "/usr/include/crt/device_double_functions.h" 3 +extern "C" { +# 1139 "/usr/include/crt/device_double_functions.h" 3 +} +# 1147 +__attribute__((unused)) static inline double fma(double a, double b, double c, cudaRoundMode mode); +# 1149 +__attribute__((unused)) static inline double dmul(double a, double b, cudaRoundMode mode = cudaRoundNearest); +# 1151 +__attribute__((unused)) static inline double dadd(double a, double b, cudaRoundMode mode = cudaRoundNearest); +# 1153 +__attribute__((unused)) static inline double dsub(double a, double b, cudaRoundMode mode = cudaRoundNearest); +# 1155 +__attribute__((unused)) static inline int double2int(double a, cudaRoundMode mode = cudaRoundZero); +# 1157 +__attribute__((unused)) static inline unsigned double2uint(double a, cudaRoundMode mode = cudaRoundZero); +# 1159 +__attribute__((unused)) static inline long long double2ll(double a, cudaRoundMode mode = cudaRoundZero); +# 1161 +__attribute__((unused)) static inline unsigned long long double2ull(double a, cudaRoundMode mode = cudaRoundZero); +# 1163 +__attribute__((unused)) static inline double ll2double(long long a, cudaRoundMode mode = cudaRoundNearest); +# 1165 +__attribute__((unused)) static inline double ull2double(unsigned long long a, cudaRoundMode mode = cudaRoundNearest); +# 1167 +__attribute__((unused)) static inline double int2double(int a, cudaRoundMode mode = cudaRoundNearest); +# 1169 +__attribute__((unused)) static inline double uint2double(unsigned a, cudaRoundMode mode = cudaRoundNearest); +# 1171 +__attribute__((unused)) static inline double float2double(float a, cudaRoundMode mode = cudaRoundNearest); +# 93 "/usr/include/crt/device_double_functions.hpp" 3 +__attribute__((unused)) static inline double fma(double a, double b, double c, cudaRoundMode mode) +# 94 +{int volatile ___ = 1;(void)a;(void)b;(void)c;(void)mode; +# 99 +::exit(___);} +#if 0 +# 94 +{ +# 95 +return (mode == (cudaRoundZero)) ? __fma_rz(a, b, c) : ((mode == (cudaRoundPosInf)) ? __fma_ru(a, b, c) : ((mode == (cudaRoundMinInf)) ? __fma_rd(a, b, c) : __fma_rn(a, b, c))); +# 99 +} +#endif +# 101 "/usr/include/crt/device_double_functions.hpp" 3 +__attribute__((unused)) static inline double dmul(double a, double b, cudaRoundMode mode) +# 102 +{int volatile ___ = 1;(void)a;(void)b;(void)mode; +# 107 +::exit(___);} +#if 0 +# 102 +{ +# 103 +return (mode == (cudaRoundZero)) ? __dmul_rz(a, b) : ((mode == (cudaRoundPosInf)) ? __dmul_ru(a, b) : ((mode == (cudaRoundMinInf)) ? __dmul_rd(a, b) : __dmul_rn(a, b))); +# 107 +} +#endif +# 109 "/usr/include/crt/device_double_functions.hpp" 3 +__attribute__((unused)) static inline double dadd(double a, double b, cudaRoundMode mode) +# 110 +{int volatile ___ = 1;(void)a;(void)b;(void)mode; +# 115 +::exit(___);} +#if 0 +# 110 +{ +# 111 +return (mode == (cudaRoundZero)) ? __dadd_rz(a, b) : ((mode == (cudaRoundPosInf)) ? __dadd_ru(a, b) : ((mode == (cudaRoundMinInf)) ? __dadd_rd(a, b) : __dadd_rn(a, b))); +# 115 +} +#endif +# 117 "/usr/include/crt/device_double_functions.hpp" 3 +__attribute__((unused)) static inline double dsub(double a, double b, cudaRoundMode mode) +# 118 +{int volatile ___ = 1;(void)a;(void)b;(void)mode; +# 123 +::exit(___);} +#if 0 +# 118 +{ +# 119 +return (mode == (cudaRoundZero)) ? __dsub_rz(a, b) : ((mode == (cudaRoundPosInf)) ? __dsub_ru(a, b) : ((mode == (cudaRoundMinInf)) ? __dsub_rd(a, b) : __dsub_rn(a, b))); +# 123 +} +#endif +# 125 "/usr/include/crt/device_double_functions.hpp" 3 +__attribute__((unused)) static inline int double2int(double a, cudaRoundMode mode) +# 126 +{int volatile ___ = 1;(void)a;(void)mode; +# 131 +::exit(___);} +#if 0 +# 126 +{ +# 127 +return (mode == (cudaRoundNearest)) ? __double2int_rn(a) : ((mode == (cudaRoundPosInf)) ? __double2int_ru(a) : ((mode == (cudaRoundMinInf)) ? __double2int_rd(a) : __double2int_rz(a))); +# 131 +} +#endif +# 133 "/usr/include/crt/device_double_functions.hpp" 3 +__attribute__((unused)) static inline unsigned double2uint(double a, cudaRoundMode mode) +# 134 +{int volatile ___ = 1;(void)a;(void)mode; +# 139 +::exit(___);} +#if 0 +# 134 +{ +# 135 +return (mode == (cudaRoundNearest)) ? __double2uint_rn(a) : ((mode == (cudaRoundPosInf)) ? __double2uint_ru(a) : ((mode == (cudaRoundMinInf)) ? __double2uint_rd(a) : __double2uint_rz(a))); +# 139 +} +#endif +# 141 "/usr/include/crt/device_double_functions.hpp" 3 +__attribute__((unused)) static inline long long double2ll(double a, cudaRoundMode mode) +# 142 +{int volatile ___ = 1;(void)a;(void)mode; +# 147 +::exit(___);} +#if 0 +# 142 +{ +# 143 +return (mode == (cudaRoundNearest)) ? __double2ll_rn(a) : ((mode == (cudaRoundPosInf)) ? __double2ll_ru(a) : ((mode == (cudaRoundMinInf)) ? __double2ll_rd(a) : __double2ll_rz(a))); +# 147 +} +#endif +# 149 "/usr/include/crt/device_double_functions.hpp" 3 +__attribute__((unused)) static inline unsigned long long double2ull(double a, cudaRoundMode mode) +# 150 +{int volatile ___ = 1;(void)a;(void)mode; +# 155 +::exit(___);} +#if 0 +# 150 +{ +# 151 +return (mode == (cudaRoundNearest)) ? __double2ull_rn(a) : ((mode == (cudaRoundPosInf)) ? __double2ull_ru(a) : ((mode == (cudaRoundMinInf)) ? __double2ull_rd(a) : __double2ull_rz(a))); +# 155 +} +#endif +# 157 "/usr/include/crt/device_double_functions.hpp" 3 +__attribute__((unused)) static inline double ll2double(long long a, cudaRoundMode mode) +# 158 +{int volatile ___ = 1;(void)a;(void)mode; +# 163 +::exit(___);} +#if 0 +# 158 +{ +# 159 +return (mode == (cudaRoundZero)) ? __ll2double_rz(a) : ((mode == (cudaRoundPosInf)) ? __ll2double_ru(a) : ((mode == (cudaRoundMinInf)) ? __ll2double_rd(a) : __ll2double_rn(a))); +# 163 +} +#endif +# 165 "/usr/include/crt/device_double_functions.hpp" 3 +__attribute__((unused)) static inline double ull2double(unsigned long long a, cudaRoundMode mode) +# 166 +{int volatile ___ = 1;(void)a;(void)mode; +# 171 +::exit(___);} +#if 0 +# 166 +{ +# 167 +return (mode == (cudaRoundZero)) ? __ull2double_rz(a) : ((mode == (cudaRoundPosInf)) ? __ull2double_ru(a) : ((mode == (cudaRoundMinInf)) ? __ull2double_rd(a) : __ull2double_rn(a))); +# 171 +} +#endif +# 173 "/usr/include/crt/device_double_functions.hpp" 3 +__attribute__((unused)) static inline double int2double(int a, cudaRoundMode mode) +# 174 +{int volatile ___ = 1;(void)a;(void)mode; +# 176 +::exit(___);} +#if 0 +# 174 +{ +# 175 +return (double)a; +# 176 +} +#endif +# 178 "/usr/include/crt/device_double_functions.hpp" 3 +__attribute__((unused)) static inline double uint2double(unsigned a, cudaRoundMode mode) +# 179 +{int volatile ___ = 1;(void)a;(void)mode; +# 181 +::exit(___);} +#if 0 +# 179 +{ +# 180 +return (double)a; +# 181 +} +#endif +# 183 "/usr/include/crt/device_double_functions.hpp" 3 +__attribute__((unused)) static inline double float2double(float a, cudaRoundMode mode) +# 184 +{int volatile ___ = 1;(void)a;(void)mode; +# 186 +::exit(___);} +#if 0 +# 184 +{ +# 185 +return (double)a; +# 186 +} +#endif +# 89 "/usr/include/sm_20_atomic_functions.h" 3 +__attribute__((unused)) static inline float atomicAdd(float *address, float val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 89 +{ } +#endif +# 100 "/usr/include/sm_32_atomic_functions.h" 3 +__attribute__((unused)) static inline long long atomicMin(long long *address, long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 100 +{ } +#endif +# 102 "/usr/include/sm_32_atomic_functions.h" 3 +__attribute__((unused)) static inline long long atomicMax(long long *address, long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 102 +{ } +#endif +# 104 "/usr/include/sm_32_atomic_functions.h" 3 +__attribute__((unused)) static inline long long atomicAnd(long long *address, long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 104 +{ } +#endif +# 106 "/usr/include/sm_32_atomic_functions.h" 3 +__attribute__((unused)) static inline long long atomicOr(long long *address, long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 106 +{ } +#endif +# 108 "/usr/include/sm_32_atomic_functions.h" 3 +__attribute__((unused)) static inline long long atomicXor(long long *address, long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 108 +{ } +#endif +# 110 "/usr/include/sm_32_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned long long atomicMin(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 110 +{ } +#endif +# 112 "/usr/include/sm_32_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned long long atomicMax(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 112 +{ } +#endif +# 114 "/usr/include/sm_32_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned long long atomicAnd(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 114 +{ } +#endif +# 116 "/usr/include/sm_32_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned long long atomicOr(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 116 +{ } +#endif +# 118 "/usr/include/sm_32_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned long long atomicXor(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 118 +{ } +#endif +# 303 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline double atomicAdd(double *address, double val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 303 +{ } +#endif +# 306 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline int atomicAdd_block(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 306 +{ } +#endif +# 309 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline int atomicAdd_system(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 309 +{ } +#endif +# 312 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned atomicAdd_block(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 312 +{ } +#endif +# 315 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned atomicAdd_system(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 315 +{ } +#endif +# 318 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned long long atomicAdd_block(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 318 +{ } +#endif +# 321 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned long long atomicAdd_system(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 321 +{ } +#endif +# 324 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline float atomicAdd_block(float *address, float val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 324 +{ } +#endif +# 327 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline float atomicAdd_system(float *address, float val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 327 +{ } +#endif +# 330 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline double atomicAdd_block(double *address, double val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 330 +{ } +#endif +# 333 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline double atomicAdd_system(double *address, double val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 333 +{ } +#endif +# 336 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline int atomicSub_block(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 336 +{ } +#endif +# 339 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline int atomicSub_system(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 339 +{ } +#endif +# 342 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned atomicSub_block(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 342 +{ } +#endif +# 345 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned atomicSub_system(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 345 +{ } +#endif +# 348 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline int atomicExch_block(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 348 +{ } +#endif +# 351 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline int atomicExch_system(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 351 +{ } +#endif +# 354 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned atomicExch_block(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 354 +{ } +#endif +# 357 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned atomicExch_system(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 357 +{ } +#endif +# 360 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned long long atomicExch_block(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 360 +{ } +#endif +# 363 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned long long atomicExch_system(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 363 +{ } +#endif +# 366 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline float atomicExch_block(float *address, float val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 366 +{ } +#endif +# 369 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline float atomicExch_system(float *address, float val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 369 +{ } +#endif +# 372 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline int atomicMin_block(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 372 +{ } +#endif +# 375 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline int atomicMin_system(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 375 +{ } +#endif +# 378 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline long long atomicMin_block(long long *address, long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 378 +{ } +#endif +# 381 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline long long atomicMin_system(long long *address, long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 381 +{ } +#endif +# 384 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned atomicMin_block(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 384 +{ } +#endif +# 387 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned atomicMin_system(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 387 +{ } +#endif +# 390 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned long long atomicMin_block(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 390 +{ } +#endif +# 393 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned long long atomicMin_system(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 393 +{ } +#endif +# 396 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline int atomicMax_block(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 396 +{ } +#endif +# 399 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline int atomicMax_system(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 399 +{ } +#endif +# 402 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline long long atomicMax_block(long long *address, long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 402 +{ } +#endif +# 405 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline long long atomicMax_system(long long *address, long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 405 +{ } +#endif +# 408 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned atomicMax_block(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 408 +{ } +#endif +# 411 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned atomicMax_system(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 411 +{ } +#endif +# 414 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned long long atomicMax_block(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 414 +{ } +#endif +# 417 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned long long atomicMax_system(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 417 +{ } +#endif +# 420 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned atomicInc_block(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 420 +{ } +#endif +# 423 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned atomicInc_system(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 423 +{ } +#endif +# 426 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned atomicDec_block(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 426 +{ } +#endif +# 429 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned atomicDec_system(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 429 +{ } +#endif +# 432 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline int atomicCAS_block(int *address, int compare, int val) {int volatile ___ = 1;(void)address;(void)compare;(void)val;::exit(___);} +#if 0 +# 432 +{ } +#endif +# 435 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline int atomicCAS_system(int *address, int compare, int val) {int volatile ___ = 1;(void)address;(void)compare;(void)val;::exit(___);} +#if 0 +# 435 +{ } +#endif +# 438 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned atomicCAS_block(unsigned *address, unsigned compare, unsigned +# 439 +val) {int volatile ___ = 1;(void)address;(void)compare;(void)val;::exit(___);} +#if 0 +# 439 +{ } +#endif +# 442 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned atomicCAS_system(unsigned *address, unsigned compare, unsigned +# 443 +val) {int volatile ___ = 1;(void)address;(void)compare;(void)val;::exit(___);} +#if 0 +# 443 +{ } +#endif +# 446 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned long long atomicCAS_block(unsigned long long *address, unsigned long long +# 447 +compare, unsigned long long +# 448 +val) {int volatile ___ = 1;(void)address;(void)compare;(void)val;::exit(___);} +#if 0 +# 448 +{ } +#endif +# 451 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned long long atomicCAS_system(unsigned long long *address, unsigned long long +# 452 +compare, unsigned long long +# 453 +val) {int volatile ___ = 1;(void)address;(void)compare;(void)val;::exit(___);} +#if 0 +# 453 +{ } +#endif +# 456 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline int atomicAnd_block(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 456 +{ } +#endif +# 459 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline int atomicAnd_system(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 459 +{ } +#endif +# 462 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline long long atomicAnd_block(long long *address, long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 462 +{ } +#endif +# 465 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline long long atomicAnd_system(long long *address, long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 465 +{ } +#endif +# 468 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned atomicAnd_block(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 468 +{ } +#endif +# 471 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned atomicAnd_system(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 471 +{ } +#endif +# 474 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned long long atomicAnd_block(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 474 +{ } +#endif +# 477 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned long long atomicAnd_system(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 477 +{ } +#endif +# 480 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline int atomicOr_block(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 480 +{ } +#endif +# 483 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline int atomicOr_system(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 483 +{ } +#endif +# 486 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline long long atomicOr_block(long long *address, long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 486 +{ } +#endif +# 489 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline long long atomicOr_system(long long *address, long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 489 +{ } +#endif +# 492 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned atomicOr_block(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 492 +{ } +#endif +# 495 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned atomicOr_system(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 495 +{ } +#endif +# 498 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned long long atomicOr_block(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 498 +{ } +#endif +# 501 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned long long atomicOr_system(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 501 +{ } +#endif +# 504 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline int atomicXor_block(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 504 +{ } +#endif +# 507 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline int atomicXor_system(int *address, int val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 507 +{ } +#endif +# 510 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline long long atomicXor_block(long long *address, long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 510 +{ } +#endif +# 513 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline long long atomicXor_system(long long *address, long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 513 +{ } +#endif +# 516 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned atomicXor_block(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 516 +{ } +#endif +# 519 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned atomicXor_system(unsigned *address, unsigned val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 519 +{ } +#endif +# 522 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned long long atomicXor_block(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 522 +{ } +#endif +# 525 "/usr/include/sm_60_atomic_functions.h" 3 +__attribute__((unused)) static inline unsigned long long atomicXor_system(unsigned long long *address, unsigned long long val) {int volatile ___ = 1;(void)address;(void)val;::exit(___);} +#if 0 +# 525 +{ } +#endif +# 90 "/usr/include/sm_20_intrinsics.h" 3 +extern "C" { +# 1503 "/usr/include/sm_20_intrinsics.h" 3 +} +# 1510 +__attribute((deprecated("__ballot() is deprecated in favor of __ballot_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to" " suppress this warning)."))) __attribute__((unused)) static inline unsigned ballot(bool pred) {int volatile ___ = 1;(void)pred;::exit(___);} +#if 0 +# 1510 +{ } +#endif +# 1512 "/usr/include/sm_20_intrinsics.h" 3 +__attribute__((unused)) static inline int syncthreads_count(bool pred) {int volatile ___ = 1;(void)pred;::exit(___);} +#if 0 +# 1512 +{ } +#endif +# 1514 "/usr/include/sm_20_intrinsics.h" 3 +__attribute__((unused)) static inline bool syncthreads_and(bool pred) {int volatile ___ = 1;(void)pred;::exit(___);} +#if 0 +# 1514 +{ } +#endif +# 1516 "/usr/include/sm_20_intrinsics.h" 3 +__attribute__((unused)) static inline bool syncthreads_or(bool pred) {int volatile ___ = 1;(void)pred;::exit(___);} +#if 0 +# 1516 +{ } +#endif +# 1521 "/usr/include/sm_20_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned __isGlobal(const void *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 1521 +{ } +#endif +# 1522 "/usr/include/sm_20_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned __isShared(const void *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 1522 +{ } +#endif +# 1523 "/usr/include/sm_20_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned __isConstant(const void *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 1523 +{ } +#endif +# 1524 "/usr/include/sm_20_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned __isLocal(const void *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 1524 +{ } +#endif +# 1526 "/usr/include/sm_20_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned __isGridConstant(const void *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 1526 +{ } +#endif +# 1528 "/usr/include/sm_20_intrinsics.h" 3 +__attribute__((unused)) static inline size_t __cvta_generic_to_global(const void *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 1528 +{ } +#endif +# 1529 "/usr/include/sm_20_intrinsics.h" 3 +__attribute__((unused)) static inline size_t __cvta_generic_to_shared(const void *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 1529 +{ } +#endif +# 1530 "/usr/include/sm_20_intrinsics.h" 3 +__attribute__((unused)) static inline size_t __cvta_generic_to_constant(const void *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 1530 +{ } +#endif +# 1531 "/usr/include/sm_20_intrinsics.h" 3 +__attribute__((unused)) static inline size_t __cvta_generic_to_local(const void *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 1531 +{ } +#endif +# 1533 "/usr/include/sm_20_intrinsics.h" 3 +__attribute__((unused)) static inline size_t __cvta_generic_to_grid_constant(const void *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 1533 +{ } +#endif +# 1536 "/usr/include/sm_20_intrinsics.h" 3 +__attribute__((unused)) static inline void *__cvta_global_to_generic(size_t rawbits) {int volatile ___ = 1;(void)rawbits;::exit(___);} +#if 0 +# 1536 +{ } +#endif +# 1537 "/usr/include/sm_20_intrinsics.h" 3 +__attribute__((unused)) static inline void *__cvta_shared_to_generic(size_t rawbits) {int volatile ___ = 1;(void)rawbits;::exit(___);} +#if 0 +# 1537 +{ } +#endif +# 1538 "/usr/include/sm_20_intrinsics.h" 3 +__attribute__((unused)) static inline void *__cvta_constant_to_generic(size_t rawbits) {int volatile ___ = 1;(void)rawbits;::exit(___);} +#if 0 +# 1538 +{ } +#endif +# 1539 "/usr/include/sm_20_intrinsics.h" 3 +__attribute__((unused)) static inline void *__cvta_local_to_generic(size_t rawbits) {int volatile ___ = 1;(void)rawbits;::exit(___);} +#if 0 +# 1539 +{ } +#endif +# 1541 "/usr/include/sm_20_intrinsics.h" 3 +__attribute__((unused)) static inline void *__cvta_grid_constant_to_generic(size_t rawbits) {int volatile ___ = 1;(void)rawbits;::exit(___);} +#if 0 +# 1541 +{ } +#endif +# 102 "/usr/include/sm_30_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned __fns(unsigned mask, unsigned base, int offset) {int volatile ___ = 1;(void)mask;(void)base;(void)offset;::exit(___);} +#if 0 +# 102 +{ } +#endif +# 103 "/usr/include/sm_30_intrinsics.h" 3 +__attribute__((unused)) static inline void __barrier_sync(unsigned id) {int volatile ___ = 1;(void)id;::exit(___);} +#if 0 +# 103 +{ } +#endif +# 104 "/usr/include/sm_30_intrinsics.h" 3 +__attribute__((unused)) static inline void __barrier_sync_count(unsigned id, unsigned cnt) {int volatile ___ = 1;(void)id;(void)cnt;::exit(___);} +#if 0 +# 104 +{ } +#endif +# 105 "/usr/include/sm_30_intrinsics.h" 3 +__attribute__((unused)) static inline void __syncwarp(unsigned mask = 4294967295U) {int volatile ___ = 1;(void)mask;::exit(___);} +#if 0 +# 105 +{ } +#endif +# 106 "/usr/include/sm_30_intrinsics.h" 3 +__attribute__((unused)) static inline int __all_sync(unsigned mask, int pred) {int volatile ___ = 1;(void)mask;(void)pred;::exit(___);} +#if 0 +# 106 +{ } +#endif +# 107 "/usr/include/sm_30_intrinsics.h" 3 +__attribute__((unused)) static inline int __any_sync(unsigned mask, int pred) {int volatile ___ = 1;(void)mask;(void)pred;::exit(___);} +#if 0 +# 107 +{ } +#endif +# 108 "/usr/include/sm_30_intrinsics.h" 3 +__attribute__((unused)) static inline int __uni_sync(unsigned mask, int pred) {int volatile ___ = 1;(void)mask;(void)pred;::exit(___);} +#if 0 +# 108 +{ } +#endif +# 109 "/usr/include/sm_30_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned __ballot_sync(unsigned mask, int pred) {int volatile ___ = 1;(void)mask;(void)pred;::exit(___);} +#if 0 +# 109 +{ } +#endif +# 110 "/usr/include/sm_30_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned __activemask() {int volatile ___ = 1;::exit(___);} +#if 0 +# 110 +{ } +#endif +# 119 "/usr/include/sm_30_intrinsics.h" 3 +__attribute((deprecated("__shfl() is deprecated in favor of __shfl_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to sup" "press this warning)."))) __attribute__((unused)) static inline int __shfl(int var, int srcLane, int width = 32) {int volatile ___ = 1;(void)var;(void)srcLane;(void)width;::exit(___);} +#if 0 +# 119 +{ } +#endif +# 120 "/usr/include/sm_30_intrinsics.h" 3 +__attribute((deprecated("__shfl() is deprecated in favor of __shfl_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to sup" "press this warning)."))) __attribute__((unused)) static inline unsigned __shfl(unsigned var, int srcLane, int width = 32) {int volatile ___ = 1;(void)var;(void)srcLane;(void)width;::exit(___);} +#if 0 +# 120 +{ } +#endif +# 121 "/usr/include/sm_30_intrinsics.h" 3 +__attribute((deprecated("__shfl_up() is deprecated in favor of __shfl_up_sync() and may be removed in a future release (Use -Wno-deprecated-declarations " "to suppress this warning)."))) __attribute__((unused)) static inline int __shfl_up(int var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 121 +{ } +#endif +# 122 "/usr/include/sm_30_intrinsics.h" 3 +__attribute((deprecated("__shfl_up() is deprecated in favor of __shfl_up_sync() and may be removed in a future release (Use -Wno-deprecated-declarations " "to suppress this warning)."))) __attribute__((unused)) static inline unsigned __shfl_up(unsigned var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 122 +{ } +#endif +# 123 "/usr/include/sm_30_intrinsics.h" 3 +__attribute((deprecated("__shfl_down() is deprecated in favor of __shfl_down_sync() and may be removed in a future release (Use -Wno-deprecated-declarati" "ons to suppress this warning)."))) __attribute__((unused)) static inline int __shfl_down(int var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 123 +{ } +#endif +# 124 "/usr/include/sm_30_intrinsics.h" 3 +__attribute((deprecated("__shfl_down() is deprecated in favor of __shfl_down_sync() and may be removed in a future release (Use -Wno-deprecated-declarati" "ons to suppress this warning)."))) __attribute__((unused)) static inline unsigned __shfl_down(unsigned var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 124 +{ } +#endif +# 125 "/usr/include/sm_30_intrinsics.h" 3 +__attribute((deprecated("__shfl_xor() is deprecated in favor of __shfl_xor_sync() and may be removed in a future release (Use -Wno-deprecated-declaration" "s to suppress this warning)."))) __attribute__((unused)) static inline int __shfl_xor(int var, int laneMask, int width = 32) {int volatile ___ = 1;(void)var;(void)laneMask;(void)width;::exit(___);} +#if 0 +# 125 +{ } +#endif +# 126 "/usr/include/sm_30_intrinsics.h" 3 +__attribute((deprecated("__shfl_xor() is deprecated in favor of __shfl_xor_sync() and may be removed in a future release (Use -Wno-deprecated-declaration" "s to suppress this warning)."))) __attribute__((unused)) static inline unsigned __shfl_xor(unsigned var, int laneMask, int width = 32) {int volatile ___ = 1;(void)var;(void)laneMask;(void)width;::exit(___);} +#if 0 +# 126 +{ } +#endif +# 127 "/usr/include/sm_30_intrinsics.h" 3 +__attribute((deprecated("__shfl() is deprecated in favor of __shfl_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to sup" "press this warning)."))) __attribute__((unused)) static inline float __shfl(float var, int srcLane, int width = 32) {int volatile ___ = 1;(void)var;(void)srcLane;(void)width;::exit(___);} +#if 0 +# 127 +{ } +#endif +# 128 "/usr/include/sm_30_intrinsics.h" 3 +__attribute((deprecated("__shfl_up() is deprecated in favor of __shfl_up_sync() and may be removed in a future release (Use -Wno-deprecated-declarations " "to suppress this warning)."))) __attribute__((unused)) static inline float __shfl_up(float var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 128 +{ } +#endif +# 129 "/usr/include/sm_30_intrinsics.h" 3 +__attribute((deprecated("__shfl_down() is deprecated in favor of __shfl_down_sync() and may be removed in a future release (Use -Wno-deprecated-declarati" "ons to suppress this warning)."))) __attribute__((unused)) static inline float __shfl_down(float var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 129 +{ } +#endif +# 130 "/usr/include/sm_30_intrinsics.h" 3 +__attribute((deprecated("__shfl_xor() is deprecated in favor of __shfl_xor_sync() and may be removed in a future release (Use -Wno-deprecated-declaration" "s to suppress this warning)."))) __attribute__((unused)) static inline float __shfl_xor(float var, int laneMask, int width = 32) {int volatile ___ = 1;(void)var;(void)laneMask;(void)width;::exit(___);} +#if 0 +# 130 +{ } +#endif +# 133 "/usr/include/sm_30_intrinsics.h" 3 +__attribute__((unused)) static inline int __shfl_sync(unsigned mask, int var, int srcLane, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)srcLane;(void)width;::exit(___);} +#if 0 +# 133 +{ } +#endif +# 134 "/usr/include/sm_30_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned __shfl_sync(unsigned mask, unsigned var, int srcLane, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)srcLane;(void)width;::exit(___);} +#if 0 +# 134 +{ } +#endif +# 135 "/usr/include/sm_30_intrinsics.h" 3 +__attribute__((unused)) static inline int __shfl_up_sync(unsigned mask, int var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 135 +{ } +#endif +# 136 "/usr/include/sm_30_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned __shfl_up_sync(unsigned mask, unsigned var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 136 +{ } +#endif +# 137 "/usr/include/sm_30_intrinsics.h" 3 +__attribute__((unused)) static inline int __shfl_down_sync(unsigned mask, int var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 137 +{ } +#endif +# 138 "/usr/include/sm_30_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned __shfl_down_sync(unsigned mask, unsigned var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 138 +{ } +#endif +# 139 "/usr/include/sm_30_intrinsics.h" 3 +__attribute__((unused)) static inline int __shfl_xor_sync(unsigned mask, int var, int laneMask, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)laneMask;(void)width;::exit(___);} +#if 0 +# 139 +{ } +#endif +# 140 "/usr/include/sm_30_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned __shfl_xor_sync(unsigned mask, unsigned var, int laneMask, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)laneMask;(void)width;::exit(___);} +#if 0 +# 140 +{ } +#endif +# 141 "/usr/include/sm_30_intrinsics.h" 3 +__attribute__((unused)) static inline float __shfl_sync(unsigned mask, float var, int srcLane, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)srcLane;(void)width;::exit(___);} +#if 0 +# 141 +{ } +#endif +# 142 "/usr/include/sm_30_intrinsics.h" 3 +__attribute__((unused)) static inline float __shfl_up_sync(unsigned mask, float var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 142 +{ } +#endif +# 143 "/usr/include/sm_30_intrinsics.h" 3 +__attribute__((unused)) static inline float __shfl_down_sync(unsigned mask, float var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 143 +{ } +#endif +# 144 "/usr/include/sm_30_intrinsics.h" 3 +__attribute__((unused)) static inline float __shfl_xor_sync(unsigned mask, float var, int laneMask, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)laneMask;(void)width;::exit(___);} +#if 0 +# 144 +{ } +#endif +# 148 "/usr/include/sm_30_intrinsics.h" 3 +__attribute((deprecated("__shfl() is deprecated in favor of __shfl_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to sup" "press this warning)."))) __attribute__((unused)) static inline unsigned long long __shfl(unsigned long long var, int srcLane, int width = 32) {int volatile ___ = 1;(void)var;(void)srcLane;(void)width;::exit(___);} +#if 0 +# 148 +{ } +#endif +# 149 "/usr/include/sm_30_intrinsics.h" 3 +__attribute((deprecated("__shfl() is deprecated in favor of __shfl_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to sup" "press this warning)."))) __attribute__((unused)) static inline long long __shfl(long long var, int srcLane, int width = 32) {int volatile ___ = 1;(void)var;(void)srcLane;(void)width;::exit(___);} +#if 0 +# 149 +{ } +#endif +# 150 "/usr/include/sm_30_intrinsics.h" 3 +__attribute((deprecated("__shfl_up() is deprecated in favor of __shfl_up_sync() and may be removed in a future release (Use -Wno-deprecated-declarations " "to suppress this warning)."))) __attribute__((unused)) static inline long long __shfl_up(long long var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 150 +{ } +#endif +# 151 "/usr/include/sm_30_intrinsics.h" 3 +__attribute((deprecated("__shfl_up() is deprecated in favor of __shfl_up_sync() and may be removed in a future release (Use -Wno-deprecated-declarations " "to suppress this warning)."))) __attribute__((unused)) static inline unsigned long long __shfl_up(unsigned long long var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 151 +{ } +#endif +# 152 "/usr/include/sm_30_intrinsics.h" 3 +__attribute((deprecated("__shfl_down() is deprecated in favor of __shfl_down_sync() and may be removed in a future release (Use -Wno-deprecated-declarati" "ons to suppress this warning)."))) __attribute__((unused)) static inline long long __shfl_down(long long var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 152 +{ } +#endif +# 153 "/usr/include/sm_30_intrinsics.h" 3 +__attribute((deprecated("__shfl_down() is deprecated in favor of __shfl_down_sync() and may be removed in a future release (Use -Wno-deprecated-declarati" "ons to suppress this warning)."))) __attribute__((unused)) static inline unsigned long long __shfl_down(unsigned long long var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 153 +{ } +#endif +# 154 "/usr/include/sm_30_intrinsics.h" 3 +__attribute((deprecated("__shfl_xor() is deprecated in favor of __shfl_xor_sync() and may be removed in a future release (Use -Wno-deprecated-declaration" "s to suppress this warning)."))) __attribute__((unused)) static inline long long __shfl_xor(long long var, int laneMask, int width = 32) {int volatile ___ = 1;(void)var;(void)laneMask;(void)width;::exit(___);} +#if 0 +# 154 +{ } +#endif +# 155 "/usr/include/sm_30_intrinsics.h" 3 +__attribute((deprecated("__shfl_xor() is deprecated in favor of __shfl_xor_sync() and may be removed in a future release (Use -Wno-deprecated-declaration" "s to suppress this warning)."))) __attribute__((unused)) static inline unsigned long long __shfl_xor(unsigned long long var, int laneMask, int width = 32) {int volatile ___ = 1;(void)var;(void)laneMask;(void)width;::exit(___);} +#if 0 +# 155 +{ } +#endif +# 156 "/usr/include/sm_30_intrinsics.h" 3 +__attribute((deprecated("__shfl() is deprecated in favor of __shfl_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to sup" "press this warning)."))) __attribute__((unused)) static inline double __shfl(double var, int srcLane, int width = 32) {int volatile ___ = 1;(void)var;(void)srcLane;(void)width;::exit(___);} +#if 0 +# 156 +{ } +#endif +# 157 "/usr/include/sm_30_intrinsics.h" 3 +__attribute((deprecated("__shfl_up() is deprecated in favor of __shfl_up_sync() and may be removed in a future release (Use -Wno-deprecated-declarations " "to suppress this warning)."))) __attribute__((unused)) static inline double __shfl_up(double var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 157 +{ } +#endif +# 158 "/usr/include/sm_30_intrinsics.h" 3 +__attribute((deprecated("__shfl_down() is deprecated in favor of __shfl_down_sync() and may be removed in a future release (Use -Wno-deprecated-declarati" "ons to suppress this warning)."))) __attribute__((unused)) static inline double __shfl_down(double var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 158 +{ } +#endif +# 159 "/usr/include/sm_30_intrinsics.h" 3 +__attribute((deprecated("__shfl_xor() is deprecated in favor of __shfl_xor_sync() and may be removed in a future release (Use -Wno-deprecated-declaration" "s to suppress this warning)."))) __attribute__((unused)) static inline double __shfl_xor(double var, int laneMask, int width = 32) {int volatile ___ = 1;(void)var;(void)laneMask;(void)width;::exit(___);} +#if 0 +# 159 +{ } +#endif +# 162 "/usr/include/sm_30_intrinsics.h" 3 +__attribute__((unused)) static inline long long __shfl_sync(unsigned mask, long long var, int srcLane, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)srcLane;(void)width;::exit(___);} +#if 0 +# 162 +{ } +#endif +# 163 "/usr/include/sm_30_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned long long __shfl_sync(unsigned mask, unsigned long long var, int srcLane, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)srcLane;(void)width;::exit(___);} +#if 0 +# 163 +{ } +#endif +# 164 "/usr/include/sm_30_intrinsics.h" 3 +__attribute__((unused)) static inline long long __shfl_up_sync(unsigned mask, long long var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 164 +{ } +#endif +# 165 "/usr/include/sm_30_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned long long __shfl_up_sync(unsigned mask, unsigned long long var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 165 +{ } +#endif +# 166 "/usr/include/sm_30_intrinsics.h" 3 +__attribute__((unused)) static inline long long __shfl_down_sync(unsigned mask, long long var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 166 +{ } +#endif +# 167 "/usr/include/sm_30_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned long long __shfl_down_sync(unsigned mask, unsigned long long var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 167 +{ } +#endif +# 168 "/usr/include/sm_30_intrinsics.h" 3 +__attribute__((unused)) static inline long long __shfl_xor_sync(unsigned mask, long long var, int laneMask, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)laneMask;(void)width;::exit(___);} +#if 0 +# 168 +{ } +#endif +# 169 "/usr/include/sm_30_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned long long __shfl_xor_sync(unsigned mask, unsigned long long var, int laneMask, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)laneMask;(void)width;::exit(___);} +#if 0 +# 169 +{ } +#endif +# 170 "/usr/include/sm_30_intrinsics.h" 3 +__attribute__((unused)) static inline double __shfl_sync(unsigned mask, double var, int srcLane, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)srcLane;(void)width;::exit(___);} +#if 0 +# 170 +{ } +#endif +# 171 "/usr/include/sm_30_intrinsics.h" 3 +__attribute__((unused)) static inline double __shfl_up_sync(unsigned mask, double var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 171 +{ } +#endif +# 172 "/usr/include/sm_30_intrinsics.h" 3 +__attribute__((unused)) static inline double __shfl_down_sync(unsigned mask, double var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 172 +{ } +#endif +# 173 "/usr/include/sm_30_intrinsics.h" 3 +__attribute__((unused)) static inline double __shfl_xor_sync(unsigned mask, double var, int laneMask, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)laneMask;(void)width;::exit(___);} +#if 0 +# 173 +{ } +#endif +# 177 "/usr/include/sm_30_intrinsics.h" 3 +__attribute((deprecated("__shfl() is deprecated in favor of __shfl_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to sup" "press this warning)."))) __attribute__((unused)) static inline long __shfl(long var, int srcLane, int width = 32) {int volatile ___ = 1;(void)var;(void)srcLane;(void)width;::exit(___);} +#if 0 +# 177 +{ } +#endif +# 178 "/usr/include/sm_30_intrinsics.h" 3 +__attribute((deprecated("__shfl() is deprecated in favor of __shfl_sync() and may be removed in a future release (Use -Wno-deprecated-declarations to sup" "press this warning)."))) __attribute__((unused)) static inline unsigned long __shfl(unsigned long var, int srcLane, int width = 32) {int volatile ___ = 1;(void)var;(void)srcLane;(void)width;::exit(___);} +#if 0 +# 178 +{ } +#endif +# 179 "/usr/include/sm_30_intrinsics.h" 3 +__attribute((deprecated("__shfl_up() is deprecated in favor of __shfl_up_sync() and may be removed in a future release (Use -Wno-deprecated-declarations " "to suppress this warning)."))) __attribute__((unused)) static inline long __shfl_up(long var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 179 +{ } +#endif +# 180 "/usr/include/sm_30_intrinsics.h" 3 +__attribute((deprecated("__shfl_up() is deprecated in favor of __shfl_up_sync() and may be removed in a future release (Use -Wno-deprecated-declarations " "to suppress this warning)."))) __attribute__((unused)) static inline unsigned long __shfl_up(unsigned long var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 180 +{ } +#endif +# 181 "/usr/include/sm_30_intrinsics.h" 3 +__attribute((deprecated("__shfl_down() is deprecated in favor of __shfl_down_sync() and may be removed in a future release (Use -Wno-deprecated-declarati" "ons to suppress this warning)."))) __attribute__((unused)) static inline long __shfl_down(long var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 181 +{ } +#endif +# 182 "/usr/include/sm_30_intrinsics.h" 3 +__attribute((deprecated("__shfl_down() is deprecated in favor of __shfl_down_sync() and may be removed in a future release (Use -Wno-deprecated-declarati" "ons to suppress this warning)."))) __attribute__((unused)) static inline unsigned long __shfl_down(unsigned long var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 182 +{ } +#endif +# 183 "/usr/include/sm_30_intrinsics.h" 3 +__attribute((deprecated("__shfl_xor() is deprecated in favor of __shfl_xor_sync() and may be removed in a future release (Use -Wno-deprecated-declaration" "s to suppress this warning)."))) __attribute__((unused)) static inline long __shfl_xor(long var, int laneMask, int width = 32) {int volatile ___ = 1;(void)var;(void)laneMask;(void)width;::exit(___);} +#if 0 +# 183 +{ } +#endif +# 184 "/usr/include/sm_30_intrinsics.h" 3 +__attribute((deprecated("__shfl_xor() is deprecated in favor of __shfl_xor_sync() and may be removed in a future release (Use -Wno-deprecated-declaration" "s to suppress this warning)."))) __attribute__((unused)) static inline unsigned long __shfl_xor(unsigned long var, int laneMask, int width = 32) {int volatile ___ = 1;(void)var;(void)laneMask;(void)width;::exit(___);} +#if 0 +# 184 +{ } +#endif +# 187 "/usr/include/sm_30_intrinsics.h" 3 +__attribute__((unused)) static inline long __shfl_sync(unsigned mask, long var, int srcLane, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)srcLane;(void)width;::exit(___);} +#if 0 +# 187 +{ } +#endif +# 188 "/usr/include/sm_30_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned long __shfl_sync(unsigned mask, unsigned long var, int srcLane, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)srcLane;(void)width;::exit(___);} +#if 0 +# 188 +{ } +#endif +# 189 "/usr/include/sm_30_intrinsics.h" 3 +__attribute__((unused)) static inline long __shfl_up_sync(unsigned mask, long var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 189 +{ } +#endif +# 190 "/usr/include/sm_30_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned long __shfl_up_sync(unsigned mask, unsigned long var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 190 +{ } +#endif +# 191 "/usr/include/sm_30_intrinsics.h" 3 +__attribute__((unused)) static inline long __shfl_down_sync(unsigned mask, long var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 191 +{ } +#endif +# 192 "/usr/include/sm_30_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned long __shfl_down_sync(unsigned mask, unsigned long var, unsigned delta, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)delta;(void)width;::exit(___);} +#if 0 +# 192 +{ } +#endif +# 193 "/usr/include/sm_30_intrinsics.h" 3 +__attribute__((unused)) static inline long __shfl_xor_sync(unsigned mask, long var, int laneMask, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)laneMask;(void)width;::exit(___);} +#if 0 +# 193 +{ } +#endif +# 194 "/usr/include/sm_30_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned long __shfl_xor_sync(unsigned mask, unsigned long var, int laneMask, int width = 32) {int volatile ___ = 1;(void)mask;(void)var;(void)laneMask;(void)width;::exit(___);} +#if 0 +# 194 +{ } +#endif +# 87 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline long __ldg(const long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 87 +{ } +#endif +# 88 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned long __ldg(const unsigned long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 88 +{ } +#endif +# 90 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline char __ldg(const char *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 90 +{ } +#endif +# 91 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline signed char __ldg(const signed char *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 91 +{ } +#endif +# 92 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline short __ldg(const short *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 92 +{ } +#endif +# 93 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline int __ldg(const int *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 93 +{ } +#endif +# 94 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline long long __ldg(const long long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 94 +{ } +#endif +# 95 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline char2 __ldg(const char2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 95 +{ } +#endif +# 96 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline char4 __ldg(const char4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 96 +{ } +#endif +# 97 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline short2 __ldg(const short2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 97 +{ } +#endif +# 98 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline short4 __ldg(const short4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 98 +{ } +#endif +# 99 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline int2 __ldg(const int2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 99 +{ } +#endif +# 100 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline int4 __ldg(const int4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 100 +{ } +#endif +# 101 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline longlong2 __ldg(const longlong2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 101 +{ } +#endif +# 103 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned char __ldg(const unsigned char *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 103 +{ } +#endif +# 104 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned short __ldg(const unsigned short *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 104 +{ } +#endif +# 105 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned __ldg(const unsigned *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 105 +{ } +#endif +# 106 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned long long __ldg(const unsigned long long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 106 +{ } +#endif +# 107 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline uchar2 __ldg(const uchar2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 107 +{ } +#endif +# 108 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline uchar4 __ldg(const uchar4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 108 +{ } +#endif +# 109 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline ushort2 __ldg(const ushort2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 109 +{ } +#endif +# 110 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline ushort4 __ldg(const ushort4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 110 +{ } +#endif +# 111 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline uint2 __ldg(const uint2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 111 +{ } +#endif +# 112 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline uint4 __ldg(const uint4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 112 +{ } +#endif +# 113 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline ulonglong2 __ldg(const ulonglong2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 113 +{ } +#endif +# 115 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline float __ldg(const float *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 115 +{ } +#endif +# 116 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline double __ldg(const double *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 116 +{ } +#endif +# 117 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline float2 __ldg(const float2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 117 +{ } +#endif +# 118 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline float4 __ldg(const float4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 118 +{ } +#endif +# 119 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline double2 __ldg(const double2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 119 +{ } +#endif +# 123 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline long __ldcg(const long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 123 +{ } +#endif +# 124 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned long __ldcg(const unsigned long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 124 +{ } +#endif +# 126 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline char __ldcg(const char *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 126 +{ } +#endif +# 127 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline signed char __ldcg(const signed char *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 127 +{ } +#endif +# 128 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline short __ldcg(const short *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 128 +{ } +#endif +# 129 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline int __ldcg(const int *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 129 +{ } +#endif +# 130 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline long long __ldcg(const long long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 130 +{ } +#endif +# 131 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline char2 __ldcg(const char2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 131 +{ } +#endif +# 132 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline char4 __ldcg(const char4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 132 +{ } +#endif +# 133 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline short2 __ldcg(const short2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 133 +{ } +#endif +# 134 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline short4 __ldcg(const short4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 134 +{ } +#endif +# 135 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline int2 __ldcg(const int2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 135 +{ } +#endif +# 136 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline int4 __ldcg(const int4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 136 +{ } +#endif +# 137 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline longlong2 __ldcg(const longlong2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 137 +{ } +#endif +# 139 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned char __ldcg(const unsigned char *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 139 +{ } +#endif +# 140 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned short __ldcg(const unsigned short *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 140 +{ } +#endif +# 141 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned __ldcg(const unsigned *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 141 +{ } +#endif +# 142 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned long long __ldcg(const unsigned long long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 142 +{ } +#endif +# 143 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline uchar2 __ldcg(const uchar2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 143 +{ } +#endif +# 144 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline uchar4 __ldcg(const uchar4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 144 +{ } +#endif +# 145 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline ushort2 __ldcg(const ushort2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 145 +{ } +#endif +# 146 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline ushort4 __ldcg(const ushort4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 146 +{ } +#endif +# 147 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline uint2 __ldcg(const uint2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 147 +{ } +#endif +# 148 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline uint4 __ldcg(const uint4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 148 +{ } +#endif +# 149 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline ulonglong2 __ldcg(const ulonglong2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 149 +{ } +#endif +# 151 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline float __ldcg(const float *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 151 +{ } +#endif +# 152 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline double __ldcg(const double *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 152 +{ } +#endif +# 153 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline float2 __ldcg(const float2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 153 +{ } +#endif +# 154 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline float4 __ldcg(const float4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 154 +{ } +#endif +# 155 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline double2 __ldcg(const double2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 155 +{ } +#endif +# 159 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline long __ldca(const long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 159 +{ } +#endif +# 160 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned long __ldca(const unsigned long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 160 +{ } +#endif +# 162 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline char __ldca(const char *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 162 +{ } +#endif +# 163 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline signed char __ldca(const signed char *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 163 +{ } +#endif +# 164 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline short __ldca(const short *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 164 +{ } +#endif +# 165 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline int __ldca(const int *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 165 +{ } +#endif +# 166 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline long long __ldca(const long long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 166 +{ } +#endif +# 167 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline char2 __ldca(const char2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 167 +{ } +#endif +# 168 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline char4 __ldca(const char4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 168 +{ } +#endif +# 169 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline short2 __ldca(const short2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 169 +{ } +#endif +# 170 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline short4 __ldca(const short4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 170 +{ } +#endif +# 171 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline int2 __ldca(const int2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 171 +{ } +#endif +# 172 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline int4 __ldca(const int4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 172 +{ } +#endif +# 173 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline longlong2 __ldca(const longlong2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 173 +{ } +#endif +# 175 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned char __ldca(const unsigned char *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 175 +{ } +#endif +# 176 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned short __ldca(const unsigned short *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 176 +{ } +#endif +# 177 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned __ldca(const unsigned *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 177 +{ } +#endif +# 178 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned long long __ldca(const unsigned long long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 178 +{ } +#endif +# 179 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline uchar2 __ldca(const uchar2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 179 +{ } +#endif +# 180 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline uchar4 __ldca(const uchar4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 180 +{ } +#endif +# 181 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline ushort2 __ldca(const ushort2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 181 +{ } +#endif +# 182 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline ushort4 __ldca(const ushort4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 182 +{ } +#endif +# 183 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline uint2 __ldca(const uint2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 183 +{ } +#endif +# 184 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline uint4 __ldca(const uint4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 184 +{ } +#endif +# 185 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline ulonglong2 __ldca(const ulonglong2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 185 +{ } +#endif +# 187 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline float __ldca(const float *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 187 +{ } +#endif +# 188 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline double __ldca(const double *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 188 +{ } +#endif +# 189 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline float2 __ldca(const float2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 189 +{ } +#endif +# 190 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline float4 __ldca(const float4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 190 +{ } +#endif +# 191 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline double2 __ldca(const double2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 191 +{ } +#endif +# 195 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline long __ldcs(const long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 195 +{ } +#endif +# 196 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned long __ldcs(const unsigned long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 196 +{ } +#endif +# 198 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline char __ldcs(const char *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 198 +{ } +#endif +# 199 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline signed char __ldcs(const signed char *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 199 +{ } +#endif +# 200 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline short __ldcs(const short *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 200 +{ } +#endif +# 201 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline int __ldcs(const int *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 201 +{ } +#endif +# 202 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline long long __ldcs(const long long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 202 +{ } +#endif +# 203 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline char2 __ldcs(const char2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 203 +{ } +#endif +# 204 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline char4 __ldcs(const char4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 204 +{ } +#endif +# 205 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline short2 __ldcs(const short2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 205 +{ } +#endif +# 206 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline short4 __ldcs(const short4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 206 +{ } +#endif +# 207 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline int2 __ldcs(const int2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 207 +{ } +#endif +# 208 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline int4 __ldcs(const int4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 208 +{ } +#endif +# 209 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline longlong2 __ldcs(const longlong2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 209 +{ } +#endif +# 211 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned char __ldcs(const unsigned char *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 211 +{ } +#endif +# 212 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned short __ldcs(const unsigned short *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 212 +{ } +#endif +# 213 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned __ldcs(const unsigned *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 213 +{ } +#endif +# 214 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned long long __ldcs(const unsigned long long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 214 +{ } +#endif +# 215 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline uchar2 __ldcs(const uchar2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 215 +{ } +#endif +# 216 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline uchar4 __ldcs(const uchar4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 216 +{ } +#endif +# 217 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline ushort2 __ldcs(const ushort2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 217 +{ } +#endif +# 218 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline ushort4 __ldcs(const ushort4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 218 +{ } +#endif +# 219 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline uint2 __ldcs(const uint2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 219 +{ } +#endif +# 220 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline uint4 __ldcs(const uint4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 220 +{ } +#endif +# 221 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline ulonglong2 __ldcs(const ulonglong2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 221 +{ } +#endif +# 223 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline float __ldcs(const float *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 223 +{ } +#endif +# 224 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline double __ldcs(const double *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 224 +{ } +#endif +# 225 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline float2 __ldcs(const float2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 225 +{ } +#endif +# 226 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline float4 __ldcs(const float4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 226 +{ } +#endif +# 227 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline double2 __ldcs(const double2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 227 +{ } +#endif +# 231 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline long __ldlu(const long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 231 +{ } +#endif +# 232 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned long __ldlu(const unsigned long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 232 +{ } +#endif +# 234 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline char __ldlu(const char *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 234 +{ } +#endif +# 235 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline signed char __ldlu(const signed char *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 235 +{ } +#endif +# 236 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline short __ldlu(const short *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 236 +{ } +#endif +# 237 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline int __ldlu(const int *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 237 +{ } +#endif +# 238 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline long long __ldlu(const long long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 238 +{ } +#endif +# 239 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline char2 __ldlu(const char2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 239 +{ } +#endif +# 240 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline char4 __ldlu(const char4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 240 +{ } +#endif +# 241 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline short2 __ldlu(const short2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 241 +{ } +#endif +# 242 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline short4 __ldlu(const short4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 242 +{ } +#endif +# 243 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline int2 __ldlu(const int2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 243 +{ } +#endif +# 244 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline int4 __ldlu(const int4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 244 +{ } +#endif +# 245 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline longlong2 __ldlu(const longlong2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 245 +{ } +#endif +# 247 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned char __ldlu(const unsigned char *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 247 +{ } +#endif +# 248 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned short __ldlu(const unsigned short *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 248 +{ } +#endif +# 249 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned __ldlu(const unsigned *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 249 +{ } +#endif +# 250 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned long long __ldlu(const unsigned long long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 250 +{ } +#endif +# 251 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline uchar2 __ldlu(const uchar2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 251 +{ } +#endif +# 252 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline uchar4 __ldlu(const uchar4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 252 +{ } +#endif +# 253 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline ushort2 __ldlu(const ushort2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 253 +{ } +#endif +# 254 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline ushort4 __ldlu(const ushort4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 254 +{ } +#endif +# 255 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline uint2 __ldlu(const uint2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 255 +{ } +#endif +# 256 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline uint4 __ldlu(const uint4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 256 +{ } +#endif +# 257 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline ulonglong2 __ldlu(const ulonglong2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 257 +{ } +#endif +# 259 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline float __ldlu(const float *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 259 +{ } +#endif +# 260 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline double __ldlu(const double *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 260 +{ } +#endif +# 261 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline float2 __ldlu(const float2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 261 +{ } +#endif +# 262 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline float4 __ldlu(const float4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 262 +{ } +#endif +# 263 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline double2 __ldlu(const double2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 263 +{ } +#endif +# 267 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline long __ldcv(const long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 267 +{ } +#endif +# 268 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned long __ldcv(const unsigned long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 268 +{ } +#endif +# 270 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline char __ldcv(const char *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 270 +{ } +#endif +# 271 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline signed char __ldcv(const signed char *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 271 +{ } +#endif +# 272 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline short __ldcv(const short *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 272 +{ } +#endif +# 273 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline int __ldcv(const int *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 273 +{ } +#endif +# 274 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline long long __ldcv(const long long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 274 +{ } +#endif +# 275 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline char2 __ldcv(const char2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 275 +{ } +#endif +# 276 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline char4 __ldcv(const char4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 276 +{ } +#endif +# 277 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline short2 __ldcv(const short2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 277 +{ } +#endif +# 278 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline short4 __ldcv(const short4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 278 +{ } +#endif +# 279 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline int2 __ldcv(const int2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 279 +{ } +#endif +# 280 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline int4 __ldcv(const int4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 280 +{ } +#endif +# 281 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline longlong2 __ldcv(const longlong2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 281 +{ } +#endif +# 283 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned char __ldcv(const unsigned char *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 283 +{ } +#endif +# 284 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned short __ldcv(const unsigned short *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 284 +{ } +#endif +# 285 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned __ldcv(const unsigned *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 285 +{ } +#endif +# 286 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned long long __ldcv(const unsigned long long *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 286 +{ } +#endif +# 287 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline uchar2 __ldcv(const uchar2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 287 +{ } +#endif +# 288 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline uchar4 __ldcv(const uchar4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 288 +{ } +#endif +# 289 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline ushort2 __ldcv(const ushort2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 289 +{ } +#endif +# 290 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline ushort4 __ldcv(const ushort4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 290 +{ } +#endif +# 291 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline uint2 __ldcv(const uint2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 291 +{ } +#endif +# 292 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline uint4 __ldcv(const uint4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 292 +{ } +#endif +# 293 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline ulonglong2 __ldcv(const ulonglong2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 293 +{ } +#endif +# 295 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline float __ldcv(const float *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 295 +{ } +#endif +# 296 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline double __ldcv(const double *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 296 +{ } +#endif +# 297 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline float2 __ldcv(const float2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 297 +{ } +#endif +# 298 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline float4 __ldcv(const float4 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 298 +{ } +#endif +# 299 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline double2 __ldcv(const double2 *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 299 +{ } +#endif +# 303 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwb(long *ptr, long value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 303 +{ } +#endif +# 304 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwb(unsigned long *ptr, unsigned long value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 304 +{ } +#endif +# 306 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwb(char *ptr, char value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 306 +{ } +#endif +# 307 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwb(signed char *ptr, signed char value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 307 +{ } +#endif +# 308 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwb(short *ptr, short value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 308 +{ } +#endif +# 309 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwb(int *ptr, int value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 309 +{ } +#endif +# 310 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwb(long long *ptr, long long value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 310 +{ } +#endif +# 311 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwb(char2 *ptr, char2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 311 +{ } +#endif +# 312 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwb(char4 *ptr, char4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 312 +{ } +#endif +# 313 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwb(short2 *ptr, short2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 313 +{ } +#endif +# 314 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwb(short4 *ptr, short4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 314 +{ } +#endif +# 315 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwb(int2 *ptr, int2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 315 +{ } +#endif +# 316 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwb(int4 *ptr, int4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 316 +{ } +#endif +# 317 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwb(longlong2 *ptr, longlong2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 317 +{ } +#endif +# 319 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwb(unsigned char *ptr, unsigned char value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 319 +{ } +#endif +# 320 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwb(unsigned short *ptr, unsigned short value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 320 +{ } +#endif +# 321 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwb(unsigned *ptr, unsigned value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 321 +{ } +#endif +# 322 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwb(unsigned long long *ptr, unsigned long long value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 322 +{ } +#endif +# 323 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwb(uchar2 *ptr, uchar2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 323 +{ } +#endif +# 324 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwb(uchar4 *ptr, uchar4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 324 +{ } +#endif +# 325 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwb(ushort2 *ptr, ushort2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 325 +{ } +#endif +# 326 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwb(ushort4 *ptr, ushort4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 326 +{ } +#endif +# 327 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwb(uint2 *ptr, uint2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 327 +{ } +#endif +# 328 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwb(uint4 *ptr, uint4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 328 +{ } +#endif +# 329 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwb(ulonglong2 *ptr, ulonglong2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 329 +{ } +#endif +# 331 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwb(float *ptr, float value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 331 +{ } +#endif +# 332 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwb(double *ptr, double value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 332 +{ } +#endif +# 333 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwb(float2 *ptr, float2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 333 +{ } +#endif +# 334 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwb(float4 *ptr, float4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 334 +{ } +#endif +# 335 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwb(double2 *ptr, double2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 335 +{ } +#endif +# 339 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcg(long *ptr, long value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 339 +{ } +#endif +# 340 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcg(unsigned long *ptr, unsigned long value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 340 +{ } +#endif +# 342 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcg(char *ptr, char value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 342 +{ } +#endif +# 343 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcg(signed char *ptr, signed char value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 343 +{ } +#endif +# 344 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcg(short *ptr, short value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 344 +{ } +#endif +# 345 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcg(int *ptr, int value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 345 +{ } +#endif +# 346 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcg(long long *ptr, long long value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 346 +{ } +#endif +# 347 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcg(char2 *ptr, char2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 347 +{ } +#endif +# 348 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcg(char4 *ptr, char4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 348 +{ } +#endif +# 349 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcg(short2 *ptr, short2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 349 +{ } +#endif +# 350 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcg(short4 *ptr, short4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 350 +{ } +#endif +# 351 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcg(int2 *ptr, int2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 351 +{ } +#endif +# 352 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcg(int4 *ptr, int4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 352 +{ } +#endif +# 353 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcg(longlong2 *ptr, longlong2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 353 +{ } +#endif +# 355 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcg(unsigned char *ptr, unsigned char value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 355 +{ } +#endif +# 356 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcg(unsigned short *ptr, unsigned short value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 356 +{ } +#endif +# 357 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcg(unsigned *ptr, unsigned value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 357 +{ } +#endif +# 358 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcg(unsigned long long *ptr, unsigned long long value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 358 +{ } +#endif +# 359 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcg(uchar2 *ptr, uchar2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 359 +{ } +#endif +# 360 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcg(uchar4 *ptr, uchar4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 360 +{ } +#endif +# 361 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcg(ushort2 *ptr, ushort2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 361 +{ } +#endif +# 362 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcg(ushort4 *ptr, ushort4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 362 +{ } +#endif +# 363 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcg(uint2 *ptr, uint2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 363 +{ } +#endif +# 364 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcg(uint4 *ptr, uint4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 364 +{ } +#endif +# 365 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcg(ulonglong2 *ptr, ulonglong2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 365 +{ } +#endif +# 367 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcg(float *ptr, float value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 367 +{ } +#endif +# 368 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcg(double *ptr, double value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 368 +{ } +#endif +# 369 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcg(float2 *ptr, float2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 369 +{ } +#endif +# 370 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcg(float4 *ptr, float4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 370 +{ } +#endif +# 371 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcg(double2 *ptr, double2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 371 +{ } +#endif +# 375 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcs(long *ptr, long value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 375 +{ } +#endif +# 376 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcs(unsigned long *ptr, unsigned long value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 376 +{ } +#endif +# 378 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcs(char *ptr, char value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 378 +{ } +#endif +# 379 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcs(signed char *ptr, signed char value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 379 +{ } +#endif +# 380 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcs(short *ptr, short value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 380 +{ } +#endif +# 381 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcs(int *ptr, int value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 381 +{ } +#endif +# 382 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcs(long long *ptr, long long value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 382 +{ } +#endif +# 383 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcs(char2 *ptr, char2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 383 +{ } +#endif +# 384 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcs(char4 *ptr, char4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 384 +{ } +#endif +# 385 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcs(short2 *ptr, short2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 385 +{ } +#endif +# 386 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcs(short4 *ptr, short4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 386 +{ } +#endif +# 387 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcs(int2 *ptr, int2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 387 +{ } +#endif +# 388 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcs(int4 *ptr, int4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 388 +{ } +#endif +# 389 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcs(longlong2 *ptr, longlong2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 389 +{ } +#endif +# 391 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcs(unsigned char *ptr, unsigned char value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 391 +{ } +#endif +# 392 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcs(unsigned short *ptr, unsigned short value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 392 +{ } +#endif +# 393 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcs(unsigned *ptr, unsigned value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 393 +{ } +#endif +# 394 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcs(unsigned long long *ptr, unsigned long long value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 394 +{ } +#endif +# 395 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcs(uchar2 *ptr, uchar2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 395 +{ } +#endif +# 396 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcs(uchar4 *ptr, uchar4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 396 +{ } +#endif +# 397 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcs(ushort2 *ptr, ushort2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 397 +{ } +#endif +# 398 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcs(ushort4 *ptr, ushort4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 398 +{ } +#endif +# 399 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcs(uint2 *ptr, uint2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 399 +{ } +#endif +# 400 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcs(uint4 *ptr, uint4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 400 +{ } +#endif +# 401 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcs(ulonglong2 *ptr, ulonglong2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 401 +{ } +#endif +# 403 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcs(float *ptr, float value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 403 +{ } +#endif +# 404 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcs(double *ptr, double value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 404 +{ } +#endif +# 405 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcs(float2 *ptr, float2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 405 +{ } +#endif +# 406 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcs(float4 *ptr, float4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 406 +{ } +#endif +# 407 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stcs(double2 *ptr, double2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 407 +{ } +#endif +# 411 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwt(long *ptr, long value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 411 +{ } +#endif +# 412 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwt(unsigned long *ptr, unsigned long value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 412 +{ } +#endif +# 414 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwt(char *ptr, char value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 414 +{ } +#endif +# 415 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwt(signed char *ptr, signed char value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 415 +{ } +#endif +# 416 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwt(short *ptr, short value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 416 +{ } +#endif +# 417 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwt(int *ptr, int value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 417 +{ } +#endif +# 418 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwt(long long *ptr, long long value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 418 +{ } +#endif +# 419 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwt(char2 *ptr, char2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 419 +{ } +#endif +# 420 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwt(char4 *ptr, char4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 420 +{ } +#endif +# 421 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwt(short2 *ptr, short2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 421 +{ } +#endif +# 422 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwt(short4 *ptr, short4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 422 +{ } +#endif +# 423 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwt(int2 *ptr, int2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 423 +{ } +#endif +# 424 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwt(int4 *ptr, int4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 424 +{ } +#endif +# 425 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwt(longlong2 *ptr, longlong2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 425 +{ } +#endif +# 427 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwt(unsigned char *ptr, unsigned char value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 427 +{ } +#endif +# 428 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwt(unsigned short *ptr, unsigned short value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 428 +{ } +#endif +# 429 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwt(unsigned *ptr, unsigned value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 429 +{ } +#endif +# 430 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwt(unsigned long long *ptr, unsigned long long value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 430 +{ } +#endif +# 431 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwt(uchar2 *ptr, uchar2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 431 +{ } +#endif +# 432 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwt(uchar4 *ptr, uchar4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 432 +{ } +#endif +# 433 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwt(ushort2 *ptr, ushort2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 433 +{ } +#endif +# 434 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwt(ushort4 *ptr, ushort4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 434 +{ } +#endif +# 435 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwt(uint2 *ptr, uint2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 435 +{ } +#endif +# 436 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwt(uint4 *ptr, uint4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 436 +{ } +#endif +# 437 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwt(ulonglong2 *ptr, ulonglong2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 437 +{ } +#endif +# 439 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwt(float *ptr, float value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 439 +{ } +#endif +# 440 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwt(double *ptr, double value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 440 +{ } +#endif +# 441 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwt(float2 *ptr, float2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 441 +{ } +#endif +# 442 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwt(float4 *ptr, float4 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 442 +{ } +#endif +# 443 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline void __stwt(double2 *ptr, double2 value) {int volatile ___ = 1;(void)ptr;(void)value;::exit(___);} +#if 0 +# 443 +{ } +#endif +# 460 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned __funnelshift_l(unsigned lo, unsigned hi, unsigned shift) {int volatile ___ = 1;(void)lo;(void)hi;(void)shift;::exit(___);} +#if 0 +# 460 +{ } +#endif +# 472 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned __funnelshift_lc(unsigned lo, unsigned hi, unsigned shift) {int volatile ___ = 1;(void)lo;(void)hi;(void)shift;::exit(___);} +#if 0 +# 472 +{ } +#endif +# 485 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned __funnelshift_r(unsigned lo, unsigned hi, unsigned shift) {int volatile ___ = 1;(void)lo;(void)hi;(void)shift;::exit(___);} +#if 0 +# 485 +{ } +#endif +# 497 "/usr/include/sm_32_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned __funnelshift_rc(unsigned lo, unsigned hi, unsigned shift) {int volatile ___ = 1;(void)lo;(void)hi;(void)shift;::exit(___);} +#if 0 +# 497 +{ } +#endif +# 89 "/usr/include/sm_61_intrinsics.h" 3 +__attribute__((unused)) static inline int __dp2a_lo(int srcA, int srcB, int c) {int volatile ___ = 1;(void)srcA;(void)srcB;(void)c;::exit(___);} +#if 0 +# 89 +{ } +#endif +# 90 "/usr/include/sm_61_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned __dp2a_lo(unsigned srcA, unsigned srcB, unsigned c) {int volatile ___ = 1;(void)srcA;(void)srcB;(void)c;::exit(___);} +#if 0 +# 90 +{ } +#endif +# 92 "/usr/include/sm_61_intrinsics.h" 3 +__attribute__((unused)) static inline int __dp2a_lo(short2 srcA, char4 srcB, int c) {int volatile ___ = 1;(void)srcA;(void)srcB;(void)c;::exit(___);} +#if 0 +# 92 +{ } +#endif +# 93 "/usr/include/sm_61_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned __dp2a_lo(ushort2 srcA, uchar4 srcB, unsigned c) {int volatile ___ = 1;(void)srcA;(void)srcB;(void)c;::exit(___);} +#if 0 +# 93 +{ } +#endif +# 95 "/usr/include/sm_61_intrinsics.h" 3 +__attribute__((unused)) static inline int __dp2a_hi(int srcA, int srcB, int c) {int volatile ___ = 1;(void)srcA;(void)srcB;(void)c;::exit(___);} +#if 0 +# 95 +{ } +#endif +# 96 "/usr/include/sm_61_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned __dp2a_hi(unsigned srcA, unsigned srcB, unsigned c) {int volatile ___ = 1;(void)srcA;(void)srcB;(void)c;::exit(___);} +#if 0 +# 96 +{ } +#endif +# 98 "/usr/include/sm_61_intrinsics.h" 3 +__attribute__((unused)) static inline int __dp2a_hi(short2 srcA, char4 srcB, int c) {int volatile ___ = 1;(void)srcA;(void)srcB;(void)c;::exit(___);} +#if 0 +# 98 +{ } +#endif +# 99 "/usr/include/sm_61_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned __dp2a_hi(ushort2 srcA, uchar4 srcB, unsigned c) {int volatile ___ = 1;(void)srcA;(void)srcB;(void)c;::exit(___);} +#if 0 +# 99 +{ } +#endif +# 106 "/usr/include/sm_61_intrinsics.h" 3 +__attribute__((unused)) static inline int __dp4a(int srcA, int srcB, int c) {int volatile ___ = 1;(void)srcA;(void)srcB;(void)c;::exit(___);} +#if 0 +# 106 +{ } +#endif +# 107 "/usr/include/sm_61_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned __dp4a(unsigned srcA, unsigned srcB, unsigned c) {int volatile ___ = 1;(void)srcA;(void)srcB;(void)c;::exit(___);} +#if 0 +# 107 +{ } +#endif +# 109 "/usr/include/sm_61_intrinsics.h" 3 +__attribute__((unused)) static inline int __dp4a(char4 srcA, char4 srcB, int c) {int volatile ___ = 1;(void)srcA;(void)srcB;(void)c;::exit(___);} +#if 0 +# 109 +{ } +#endif +# 110 "/usr/include/sm_61_intrinsics.h" 3 +__attribute__((unused)) static inline unsigned __dp4a(uchar4 srcA, uchar4 srcB, unsigned c) {int volatile ___ = 1;(void)srcA;(void)srcB;(void)c;::exit(___);} +#if 0 +# 110 +{ } +#endif +# 93 "/usr/include/crt/sm_70_rt.h" 3 +__attribute__((unused)) static inline unsigned __match_any_sync(unsigned mask, unsigned value) {int volatile ___ = 1;(void)mask;(void)value;::exit(___);} +#if 0 +# 93 +{ } +#endif +# 94 "/usr/include/crt/sm_70_rt.h" 3 +__attribute__((unused)) static inline unsigned __match_any_sync(unsigned mask, int value) {int volatile ___ = 1;(void)mask;(void)value;::exit(___);} +#if 0 +# 94 +{ } +#endif +# 95 "/usr/include/crt/sm_70_rt.h" 3 +__attribute__((unused)) static inline unsigned __match_any_sync(unsigned mask, unsigned long value) {int volatile ___ = 1;(void)mask;(void)value;::exit(___);} +#if 0 +# 95 +{ } +#endif +# 96 "/usr/include/crt/sm_70_rt.h" 3 +__attribute__((unused)) static inline unsigned __match_any_sync(unsigned mask, long value) {int volatile ___ = 1;(void)mask;(void)value;::exit(___);} +#if 0 +# 96 +{ } +#endif +# 97 "/usr/include/crt/sm_70_rt.h" 3 +__attribute__((unused)) static inline unsigned __match_any_sync(unsigned mask, unsigned long long value) {int volatile ___ = 1;(void)mask;(void)value;::exit(___);} +#if 0 +# 97 +{ } +#endif +# 98 "/usr/include/crt/sm_70_rt.h" 3 +__attribute__((unused)) static inline unsigned __match_any_sync(unsigned mask, long long value) {int volatile ___ = 1;(void)mask;(void)value;::exit(___);} +#if 0 +# 98 +{ } +#endif +# 99 "/usr/include/crt/sm_70_rt.h" 3 +__attribute__((unused)) static inline unsigned __match_any_sync(unsigned mask, float value) {int volatile ___ = 1;(void)mask;(void)value;::exit(___);} +#if 0 +# 99 +{ } +#endif +# 100 "/usr/include/crt/sm_70_rt.h" 3 +__attribute__((unused)) static inline unsigned __match_any_sync(unsigned mask, double value) {int volatile ___ = 1;(void)mask;(void)value;::exit(___);} +#if 0 +# 100 +{ } +#endif +# 102 "/usr/include/crt/sm_70_rt.h" 3 +__attribute__((unused)) static inline unsigned __match_all_sync(unsigned mask, unsigned value, int *pred) {int volatile ___ = 1;(void)mask;(void)value;(void)pred;::exit(___);} +#if 0 +# 102 +{ } +#endif +# 103 "/usr/include/crt/sm_70_rt.h" 3 +__attribute__((unused)) static inline unsigned __match_all_sync(unsigned mask, int value, int *pred) {int volatile ___ = 1;(void)mask;(void)value;(void)pred;::exit(___);} +#if 0 +# 103 +{ } +#endif +# 104 "/usr/include/crt/sm_70_rt.h" 3 +__attribute__((unused)) static inline unsigned __match_all_sync(unsigned mask, unsigned long value, int *pred) {int volatile ___ = 1;(void)mask;(void)value;(void)pred;::exit(___);} +#if 0 +# 104 +{ } +#endif +# 105 "/usr/include/crt/sm_70_rt.h" 3 +__attribute__((unused)) static inline unsigned __match_all_sync(unsigned mask, long value, int *pred) {int volatile ___ = 1;(void)mask;(void)value;(void)pred;::exit(___);} +#if 0 +# 105 +{ } +#endif +# 106 "/usr/include/crt/sm_70_rt.h" 3 +__attribute__((unused)) static inline unsigned __match_all_sync(unsigned mask, unsigned long long value, int *pred) {int volatile ___ = 1;(void)mask;(void)value;(void)pred;::exit(___);} +#if 0 +# 106 +{ } +#endif +# 107 "/usr/include/crt/sm_70_rt.h" 3 +__attribute__((unused)) static inline unsigned __match_all_sync(unsigned mask, long long value, int *pred) {int volatile ___ = 1;(void)mask;(void)value;(void)pred;::exit(___);} +#if 0 +# 107 +{ } +#endif +# 108 "/usr/include/crt/sm_70_rt.h" 3 +__attribute__((unused)) static inline unsigned __match_all_sync(unsigned mask, float value, int *pred) {int volatile ___ = 1;(void)mask;(void)value;(void)pred;::exit(___);} +#if 0 +# 108 +{ } +#endif +# 109 "/usr/include/crt/sm_70_rt.h" 3 +__attribute__((unused)) static inline unsigned __match_all_sync(unsigned mask, double value, int *pred) {int volatile ___ = 1;(void)mask;(void)value;(void)pred;::exit(___);} +#if 0 +# 109 +{ } +#endif +# 111 "/usr/include/crt/sm_70_rt.h" 3 +__attribute__((unused)) static inline void __nanosleep(unsigned ns) {int volatile ___ = 1;(void)ns;::exit(___);} +#if 0 +# 111 +{ } +#endif +# 113 "/usr/include/crt/sm_70_rt.h" 3 +__attribute__((unused)) static inline unsigned short atomicCAS(unsigned short *address, unsigned short compare, unsigned short val) {int volatile ___ = 1;(void)address;(void)compare;(void)val;::exit(___);} +#if 0 +# 113 +{ } +#endif +# 93 "/usr/include/crt/sm_80_rt.h" 3 +__attribute__((unused)) static inline unsigned __reduce_add_sync(unsigned mask, unsigned value) {int volatile ___ = 1;(void)mask;(void)value;::exit(___);} +#if 0 +# 93 +{ } +#endif +# 94 "/usr/include/crt/sm_80_rt.h" 3 +__attribute__((unused)) static inline unsigned __reduce_min_sync(unsigned mask, unsigned value) {int volatile ___ = 1;(void)mask;(void)value;::exit(___);} +#if 0 +# 94 +{ } +#endif +# 95 "/usr/include/crt/sm_80_rt.h" 3 +__attribute__((unused)) static inline unsigned __reduce_max_sync(unsigned mask, unsigned value) {int volatile ___ = 1;(void)mask;(void)value;::exit(___);} +#if 0 +# 95 +{ } +#endif +# 97 "/usr/include/crt/sm_80_rt.h" 3 +__attribute__((unused)) static inline int __reduce_add_sync(unsigned mask, int value) {int volatile ___ = 1;(void)mask;(void)value;::exit(___);} +#if 0 +# 97 +{ } +#endif +# 98 "/usr/include/crt/sm_80_rt.h" 3 +__attribute__((unused)) static inline int __reduce_min_sync(unsigned mask, int value) {int volatile ___ = 1;(void)mask;(void)value;::exit(___);} +#if 0 +# 98 +{ } +#endif +# 99 "/usr/include/crt/sm_80_rt.h" 3 +__attribute__((unused)) static inline int __reduce_max_sync(unsigned mask, int value) {int volatile ___ = 1;(void)mask;(void)value;::exit(___);} +#if 0 +# 99 +{ } +#endif +# 101 "/usr/include/crt/sm_80_rt.h" 3 +__attribute__((unused)) static inline unsigned __reduce_and_sync(unsigned mask, unsigned value) {int volatile ___ = 1;(void)mask;(void)value;::exit(___);} +#if 0 +# 101 +{ } +#endif +# 102 "/usr/include/crt/sm_80_rt.h" 3 +__attribute__((unused)) static inline unsigned __reduce_or_sync(unsigned mask, unsigned value) {int volatile ___ = 1;(void)mask;(void)value;::exit(___);} +#if 0 +# 102 +{ } +#endif +# 103 "/usr/include/crt/sm_80_rt.h" 3 +__attribute__((unused)) static inline unsigned __reduce_xor_sync(unsigned mask, unsigned value) {int volatile ___ = 1;(void)mask;(void)value;::exit(___);} +#if 0 +# 103 +{ } +#endif +# 106 "/usr/include/crt/sm_80_rt.h" 3 +extern "C" { +# 107 +__attribute__((unused)) inline void *__nv_associate_access_property(const void *ptr, unsigned long long +# 108 +property) {int volatile ___ = 1;(void)ptr;(void)property; +# 112 +::exit(___);} +#if 0 +# 108 +{ +# 109 +__attribute__((unused)) extern void *__nv_associate_access_property_impl(const void *, unsigned long long); +# 111 +return __nv_associate_access_property_impl(ptr, property); +# 112 +} +#endif +# 114 "/usr/include/crt/sm_80_rt.h" 3 +__attribute__((unused)) inline void __nv_memcpy_async_shared_global_4(void *dst, const void * +# 115 +src, unsigned +# 116 +src_size) {int volatile ___ = 1;(void)dst;(void)src;(void)src_size; +# 121 +::exit(___);} +#if 0 +# 116 +{ +# 117 +__attribute__((unused)) extern void __nv_memcpy_async_shared_global_4_impl(void *, const void *, unsigned); +# 120 +__nv_memcpy_async_shared_global_4_impl(dst, src, src_size); +# 121 +} +#endif +# 123 "/usr/include/crt/sm_80_rt.h" 3 +__attribute__((unused)) inline void __nv_memcpy_async_shared_global_8(void *dst, const void * +# 124 +src, unsigned +# 125 +src_size) {int volatile ___ = 1;(void)dst;(void)src;(void)src_size; +# 130 +::exit(___);} +#if 0 +# 125 +{ +# 126 +__attribute__((unused)) extern void __nv_memcpy_async_shared_global_8_impl(void *, const void *, unsigned); +# 129 +__nv_memcpy_async_shared_global_8_impl(dst, src, src_size); +# 130 +} +#endif +# 132 "/usr/include/crt/sm_80_rt.h" 3 +__attribute__((unused)) inline void __nv_memcpy_async_shared_global_16(void *dst, const void * +# 133 +src, unsigned +# 134 +src_size) {int volatile ___ = 1;(void)dst;(void)src;(void)src_size; +# 139 +::exit(___);} +#if 0 +# 134 +{ +# 135 +__attribute__((unused)) extern void __nv_memcpy_async_shared_global_16_impl(void *, const void *, unsigned); +# 138 +__nv_memcpy_async_shared_global_16_impl(dst, src, src_size); +# 139 +} +#endif +# 141 "/usr/include/crt/sm_80_rt.h" 3 +} +# 89 "/usr/include/crt/sm_90_rt.h" 3 +__attribute__((unused)) static inline unsigned __isCtaShared(const void *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 89 +{ } +#endif +# 90 "/usr/include/crt/sm_90_rt.h" 3 +__attribute__((unused)) static inline unsigned __isClusterShared(const void *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 90 +{ } +#endif +# 91 "/usr/include/crt/sm_90_rt.h" 3 +__attribute__((unused)) static inline void *__cluster_map_shared_rank(const void *ptr, unsigned target_block_rank) {int volatile ___ = 1;(void)ptr;(void)target_block_rank;::exit(___);} +#if 0 +# 91 +{ } +#endif +# 92 "/usr/include/crt/sm_90_rt.h" 3 +__attribute__((unused)) static inline unsigned __cluster_query_shared_rank(const void *ptr) {int volatile ___ = 1;(void)ptr;::exit(___);} +#if 0 +# 92 +{ } +#endif +# 93 "/usr/include/crt/sm_90_rt.h" 3 +__attribute__((unused)) static inline uint2 __cluster_map_shared_multicast(const void *ptr, unsigned cluster_cta_mask) {int volatile ___ = 1;(void)ptr;(void)cluster_cta_mask;::exit(___);} +#if 0 +# 93 +{ } +#endif +# 94 "/usr/include/crt/sm_90_rt.h" 3 +__attribute__((unused)) static inline unsigned __clusterDimIsSpecified() {int volatile ___ = 1;::exit(___);} +#if 0 +# 94 +{ } +#endif +# 95 "/usr/include/crt/sm_90_rt.h" 3 +__attribute__((unused)) static inline dim3 __clusterDim() {int volatile ___ = 1;::exit(___);} +#if 0 +# 95 +{ } +#endif +# 96 "/usr/include/crt/sm_90_rt.h" 3 +__attribute__((unused)) static inline dim3 __clusterRelativeBlockIdx() {int volatile ___ = 1;::exit(___);} +#if 0 +# 96 +{ } +#endif +# 97 "/usr/include/crt/sm_90_rt.h" 3 +__attribute__((unused)) static inline dim3 __clusterGridDimInClusters() {int volatile ___ = 1;::exit(___);} +#if 0 +# 97 +{ } +#endif +# 98 "/usr/include/crt/sm_90_rt.h" 3 +__attribute__((unused)) static inline dim3 __clusterIdx() {int volatile ___ = 1;::exit(___);} +#if 0 +# 98 +{ } +#endif +# 99 "/usr/include/crt/sm_90_rt.h" 3 +__attribute__((unused)) static inline unsigned __clusterRelativeBlockRank() {int volatile ___ = 1;::exit(___);} +#if 0 +# 99 +{ } +#endif +# 100 "/usr/include/crt/sm_90_rt.h" 3 +__attribute__((unused)) static inline unsigned __clusterSizeInBlocks() {int volatile ___ = 1;::exit(___);} +#if 0 +# 100 +{ } +#endif +# 101 "/usr/include/crt/sm_90_rt.h" 3 +__attribute__((unused)) static inline void __cluster_barrier_arrive() {int volatile ___ = 1;::exit(___);} +#if 0 +# 101 +{ } +#endif +# 102 "/usr/include/crt/sm_90_rt.h" 3 +__attribute__((unused)) static inline void __cluster_barrier_wait() {int volatile ___ = 1;::exit(___);} +#if 0 +# 102 +{ } +#endif +# 103 "/usr/include/crt/sm_90_rt.h" 3 +__attribute__((unused)) static inline void __threadfence_cluster() {int volatile ___ = 1;::exit(___);} +#if 0 +# 103 +{ } +#endif +# 122 "/usr/include/surface_functions.h" 3 +template< class T> +# 123 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline void surf1Dread(T *res, surface< void, 1> surf, int x, int s, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 124 +{int volatile ___ = 1;(void)res;(void)surf;(void)x;(void)s;(void)mode; +# 128 +::exit(___);} +#if 0 +# 124 +{ +# 128 +} +#endif +# 130 "/usr/include/surface_functions.h" 3 +template< class T> +# 131 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline T surf1Dread(surface< void, 1> surf, int x, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 132 +{int volatile ___ = 1;(void)surf;(void)x;(void)mode; +# 138 +::exit(___);} +#if 0 +# 132 +{ +# 138 +} +#endif +# 140 "/usr/include/surface_functions.h" 3 +template< class T> +# 141 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline void surf1Dread(T *res, surface< void, 1> surf, int x, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 142 +{int volatile ___ = 1;(void)res;(void)surf;(void)x;(void)mode; +# 146 +::exit(___);} +#if 0 +# 142 +{ +# 146 +} +#endif +# 149 "/usr/include/surface_functions.h" 3 +template< class T> +# 150 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline void surf2Dread(T *res, surface< void, 2> surf, int x, int y, int s, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 151 +{int volatile ___ = 1;(void)res;(void)surf;(void)x;(void)y;(void)s;(void)mode; +# 155 +::exit(___);} +#if 0 +# 151 +{ +# 155 +} +#endif +# 157 "/usr/include/surface_functions.h" 3 +template< class T> +# 158 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline T surf2Dread(surface< void, 2> surf, int x, int y, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 159 +{int volatile ___ = 1;(void)surf;(void)x;(void)y;(void)mode; +# 165 +::exit(___);} +#if 0 +# 159 +{ +# 165 +} +#endif +# 167 "/usr/include/surface_functions.h" 3 +template< class T> +# 168 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline void surf2Dread(T *res, surface< void, 2> surf, int x, int y, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 169 +{int volatile ___ = 1;(void)res;(void)surf;(void)x;(void)y;(void)mode; +# 173 +::exit(___);} +#if 0 +# 169 +{ +# 173 +} +#endif +# 176 "/usr/include/surface_functions.h" 3 +template< class T> +# 177 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline void surf3Dread(T *res, surface< void, 3> surf, int x, int y, int z, int s, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 178 +{int volatile ___ = 1;(void)res;(void)surf;(void)x;(void)y;(void)z;(void)s;(void)mode; +# 182 +::exit(___);} +#if 0 +# 178 +{ +# 182 +} +#endif +# 184 "/usr/include/surface_functions.h" 3 +template< class T> +# 185 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline T surf3Dread(surface< void, 3> surf, int x, int y, int z, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 186 +{int volatile ___ = 1;(void)surf;(void)x;(void)y;(void)z;(void)mode; +# 192 +::exit(___);} +#if 0 +# 186 +{ +# 192 +} +#endif +# 194 "/usr/include/surface_functions.h" 3 +template< class T> +# 195 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline void surf3Dread(T *res, surface< void, 3> surf, int x, int y, int z, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 196 +{int volatile ___ = 1;(void)res;(void)surf;(void)x;(void)y;(void)z;(void)mode; +# 200 +::exit(___);} +#if 0 +# 196 +{ +# 200 +} +#endif +# 204 "/usr/include/surface_functions.h" 3 +template< class T> +# 205 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline void surf1DLayeredread(T *res, surface< void, 241> surf, int x, int layer, int s, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 206 +{int volatile ___ = 1;(void)res;(void)surf;(void)x;(void)layer;(void)s;(void)mode; +# 210 +::exit(___);} +#if 0 +# 206 +{ +# 210 +} +#endif +# 212 "/usr/include/surface_functions.h" 3 +template< class T> +# 213 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline T surf1DLayeredread(surface< void, 241> surf, int x, int layer, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 214 +{int volatile ___ = 1;(void)surf;(void)x;(void)layer;(void)mode; +# 220 +::exit(___);} +#if 0 +# 214 +{ +# 220 +} +#endif +# 223 "/usr/include/surface_functions.h" 3 +template< class T> +# 224 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline void surf1DLayeredread(T *res, surface< void, 241> surf, int x, int layer, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 225 +{int volatile ___ = 1;(void)res;(void)surf;(void)x;(void)layer;(void)mode; +# 229 +::exit(___);} +#if 0 +# 225 +{ +# 229 +} +#endif +# 232 "/usr/include/surface_functions.h" 3 +template< class T> +# 233 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline void surf2DLayeredread(T *res, surface< void, 242> surf, int x, int y, int layer, int s, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 234 +{int volatile ___ = 1;(void)res;(void)surf;(void)x;(void)y;(void)layer;(void)s;(void)mode; +# 238 +::exit(___);} +#if 0 +# 234 +{ +# 238 +} +#endif +# 240 "/usr/include/surface_functions.h" 3 +template< class T> +# 241 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline T surf2DLayeredread(surface< void, 242> surf, int x, int y, int layer, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 242 +{int volatile ___ = 1;(void)surf;(void)x;(void)y;(void)layer;(void)mode; +# 248 +::exit(___);} +#if 0 +# 242 +{ +# 248 +} +#endif +# 251 "/usr/include/surface_functions.h" 3 +template< class T> +# 252 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline void surf2DLayeredread(T *res, surface< void, 242> surf, int x, int y, int layer, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 253 +{int volatile ___ = 1;(void)res;(void)surf;(void)x;(void)y;(void)layer;(void)mode; +# 257 +::exit(___);} +#if 0 +# 253 +{ +# 257 +} +#endif +# 260 "/usr/include/surface_functions.h" 3 +template< class T> +# 261 +__attribute((always_inline)) __attribute__((unused)) static inline void surfCubemapread(T *res, surface< void, 12> surf, int x, int y, int face, int s, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 262 +{int volatile ___ = 1;(void)res;(void)surf;(void)x;(void)y;(void)face;(void)s;(void)mode; +# 266 +::exit(___);} +#if 0 +# 262 +{ +# 266 +} +#endif +# 268 "/usr/include/surface_functions.h" 3 +template< class T> +# 269 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline T surfCubemapread(surface< void, 12> surf, int x, int y, int face, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 270 +{int volatile ___ = 1;(void)surf;(void)x;(void)y;(void)face;(void)mode; +# 277 +::exit(___);} +#if 0 +# 270 +{ +# 277 +} +#endif +# 279 "/usr/include/surface_functions.h" 3 +template< class T> +# 280 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline void surfCubemapread(T *res, surface< void, 12> surf, int x, int y, int face, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 281 +{int volatile ___ = 1;(void)res;(void)surf;(void)x;(void)y;(void)face;(void)mode; +# 285 +::exit(___);} +#if 0 +# 281 +{ +# 285 +} +#endif +# 288 "/usr/include/surface_functions.h" 3 +template< class T> +# 289 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline void surfCubemapLayeredread(T *res, surface< void, 252> surf, int x, int y, int layerFace, int s, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 290 +{int volatile ___ = 1;(void)res;(void)surf;(void)x;(void)y;(void)layerFace;(void)s;(void)mode; +# 294 +::exit(___);} +#if 0 +# 290 +{ +# 294 +} +#endif +# 296 "/usr/include/surface_functions.h" 3 +template< class T> +# 297 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline T surfCubemapLayeredread(surface< void, 252> surf, int x, int y, int layerFace, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 298 +{int volatile ___ = 1;(void)surf;(void)x;(void)y;(void)layerFace;(void)mode; +# 304 +::exit(___);} +#if 0 +# 298 +{ +# 304 +} +#endif +# 306 "/usr/include/surface_functions.h" 3 +template< class T> +# 307 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline void surfCubemapLayeredread(T *res, surface< void, 252> surf, int x, int y, int layerFace, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 308 +{int volatile ___ = 1;(void)res;(void)surf;(void)x;(void)y;(void)layerFace;(void)mode; +# 312 +::exit(___);} +#if 0 +# 308 +{ +# 312 +} +#endif +# 315 "/usr/include/surface_functions.h" 3 +template< class T> +# 316 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline void surf1Dwrite(T val, surface< void, 1> surf, int x, int s, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 317 +{int volatile ___ = 1;(void)val;(void)surf;(void)x;(void)s;(void)mode; +# 321 +::exit(___);} +#if 0 +# 317 +{ +# 321 +} +#endif +# 323 "/usr/include/surface_functions.h" 3 +template< class T> +# 324 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline void surf1Dwrite(T val, surface< void, 1> surf, int x, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 325 +{int volatile ___ = 1;(void)val;(void)surf;(void)x;(void)mode; +# 329 +::exit(___);} +#if 0 +# 325 +{ +# 329 +} +#endif +# 333 "/usr/include/surface_functions.h" 3 +template< class T> +# 334 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline void surf2Dwrite(T val, surface< void, 2> surf, int x, int y, int s, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 335 +{int volatile ___ = 1;(void)val;(void)surf;(void)x;(void)y;(void)s;(void)mode; +# 339 +::exit(___);} +#if 0 +# 335 +{ +# 339 +} +#endif +# 341 "/usr/include/surface_functions.h" 3 +template< class T> +# 342 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline void surf2Dwrite(T val, surface< void, 2> surf, int x, int y, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 343 +{int volatile ___ = 1;(void)val;(void)surf;(void)x;(void)y;(void)mode; +# 347 +::exit(___);} +#if 0 +# 343 +{ +# 347 +} +#endif +# 350 "/usr/include/surface_functions.h" 3 +template< class T> +# 351 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline void surf3Dwrite(T val, surface< void, 3> surf, int x, int y, int z, int s, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 352 +{int volatile ___ = 1;(void)val;(void)surf;(void)x;(void)y;(void)z;(void)s;(void)mode; +# 356 +::exit(___);} +#if 0 +# 352 +{ +# 356 +} +#endif +# 358 "/usr/include/surface_functions.h" 3 +template< class T> +# 359 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline void surf3Dwrite(T val, surface< void, 3> surf, int x, int y, int z, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 360 +{int volatile ___ = 1;(void)val;(void)surf;(void)x;(void)y;(void)z;(void)mode; +# 364 +::exit(___);} +#if 0 +# 360 +{ +# 364 +} +#endif +# 367 "/usr/include/surface_functions.h" 3 +template< class T> +# 368 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline void surf1DLayeredwrite(T val, surface< void, 241> surf, int x, int layer, int s, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 369 +{int volatile ___ = 1;(void)val;(void)surf;(void)x;(void)layer;(void)s;(void)mode; +# 373 +::exit(___);} +#if 0 +# 369 +{ +# 373 +} +#endif +# 375 "/usr/include/surface_functions.h" 3 +template< class T> +# 376 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline void surf1DLayeredwrite(T val, surface< void, 241> surf, int x, int layer, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 377 +{int volatile ___ = 1;(void)val;(void)surf;(void)x;(void)layer;(void)mode; +# 381 +::exit(___);} +#if 0 +# 377 +{ +# 381 +} +#endif +# 384 "/usr/include/surface_functions.h" 3 +template< class T> +# 385 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline void surf2DLayeredwrite(T val, surface< void, 242> surf, int x, int y, int layer, int s, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 386 +{int volatile ___ = 1;(void)val;(void)surf;(void)x;(void)y;(void)layer;(void)s;(void)mode; +# 390 +::exit(___);} +#if 0 +# 386 +{ +# 390 +} +#endif +# 392 "/usr/include/surface_functions.h" 3 +template< class T> +# 393 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline void surf2DLayeredwrite(T val, surface< void, 242> surf, int x, int y, int layer, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 394 +{int volatile ___ = 1;(void)val;(void)surf;(void)x;(void)y;(void)layer;(void)mode; +# 398 +::exit(___);} +#if 0 +# 394 +{ +# 398 +} +#endif +# 401 "/usr/include/surface_functions.h" 3 +template< class T> +# 402 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline void surfCubemapwrite(T val, surface< void, 12> surf, int x, int y, int face, int s, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 403 +{int volatile ___ = 1;(void)val;(void)surf;(void)x;(void)y;(void)face;(void)s;(void)mode; +# 407 +::exit(___);} +#if 0 +# 403 +{ +# 407 +} +#endif +# 409 "/usr/include/surface_functions.h" 3 +template< class T> +# 410 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline void surfCubemapwrite(T val, surface< void, 12> surf, int x, int y, int face, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 411 +{int volatile ___ = 1;(void)val;(void)surf;(void)x;(void)y;(void)face;(void)mode; +# 415 +::exit(___);} +#if 0 +# 411 +{ +# 415 +} +#endif +# 419 "/usr/include/surface_functions.h" 3 +template< class T> +# 420 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline void surfCubemapLayeredwrite(T val, surface< void, 252> surf, int x, int y, int layerFace, int s, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 421 +{int volatile ___ = 1;(void)val;(void)surf;(void)x;(void)y;(void)layerFace;(void)s;(void)mode; +# 425 +::exit(___);} +#if 0 +# 421 +{ +# 425 +} +#endif +# 427 "/usr/include/surface_functions.h" 3 +template< class T> +# 428 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline void surfCubemapLayeredwrite(T val, surface< void, 252> surf, int x, int y, int layerFace, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 429 +{int volatile ___ = 1;(void)val;(void)surf;(void)x;(void)y;(void)layerFace;(void)mode; +# 433 +::exit(___);} +#if 0 +# 429 +{ +# 433 +} +#endif +# 72 "/usr/include/texture_fetch_functions.h" 3 +template< class T> +# 73 +struct __nv_tex_rmet_ret { }; +# 75 +template<> struct __nv_tex_rmet_ret< char> { typedef char type; }; +# 76 +template<> struct __nv_tex_rmet_ret< signed char> { typedef signed char type; }; +# 77 +template<> struct __nv_tex_rmet_ret< unsigned char> { typedef unsigned char type; }; +# 78 +template<> struct __nv_tex_rmet_ret< char1> { typedef char1 type; }; +# 79 +template<> struct __nv_tex_rmet_ret< uchar1> { typedef uchar1 type; }; +# 80 +template<> struct __nv_tex_rmet_ret< char2> { typedef char2 type; }; +# 81 +template<> struct __nv_tex_rmet_ret< uchar2> { typedef uchar2 type; }; +# 82 +template<> struct __nv_tex_rmet_ret< char4> { typedef char4 type; }; +# 83 +template<> struct __nv_tex_rmet_ret< uchar4> { typedef uchar4 type; }; +# 85 +template<> struct __nv_tex_rmet_ret< short> { typedef short type; }; +# 86 +template<> struct __nv_tex_rmet_ret< unsigned short> { typedef unsigned short type; }; +# 87 +template<> struct __nv_tex_rmet_ret< short1> { typedef short1 type; }; +# 88 +template<> struct __nv_tex_rmet_ret< ushort1> { typedef ushort1 type; }; +# 89 +template<> struct __nv_tex_rmet_ret< short2> { typedef short2 type; }; +# 90 +template<> struct __nv_tex_rmet_ret< ushort2> { typedef ushort2 type; }; +# 91 +template<> struct __nv_tex_rmet_ret< short4> { typedef short4 type; }; +# 92 +template<> struct __nv_tex_rmet_ret< ushort4> { typedef ushort4 type; }; +# 94 +template<> struct __nv_tex_rmet_ret< int> { typedef int type; }; +# 95 +template<> struct __nv_tex_rmet_ret< unsigned> { typedef unsigned type; }; +# 96 +template<> struct __nv_tex_rmet_ret< int1> { typedef int1 type; }; +# 97 +template<> struct __nv_tex_rmet_ret< uint1> { typedef uint1 type; }; +# 98 +template<> struct __nv_tex_rmet_ret< int2> { typedef int2 type; }; +# 99 +template<> struct __nv_tex_rmet_ret< uint2> { typedef uint2 type; }; +# 100 +template<> struct __nv_tex_rmet_ret< int4> { typedef int4 type; }; +# 101 +template<> struct __nv_tex_rmet_ret< uint4> { typedef uint4 type; }; +# 113 "/usr/include/texture_fetch_functions.h" 3 +template<> struct __nv_tex_rmet_ret< float> { typedef float type; }; +# 114 +template<> struct __nv_tex_rmet_ret< float1> { typedef float1 type; }; +# 115 +template<> struct __nv_tex_rmet_ret< float2> { typedef float2 type; }; +# 116 +template<> struct __nv_tex_rmet_ret< float4> { typedef float4 type; }; +# 119 +template< class T> struct __nv_tex_rmet_cast { typedef T *type; }; +# 131 "/usr/include/texture_fetch_functions.h" 3 +template< class T> +# 132 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline typename __nv_tex_rmet_ret< T> ::type tex1Dfetch(texture< T, 1, cudaReadModeElementType> t, int x) +# 133 +{int volatile ___ = 1;(void)t;(void)x; +# 139 +::exit(___);} +#if 0 +# 133 +{ +# 139 +} +#endif +# 141 "/usr/include/texture_fetch_functions.h" 3 +template< class T> +# 142 +struct __nv_tex_rmnf_ret { }; +# 144 +template<> struct __nv_tex_rmnf_ret< char> { typedef float type; }; +# 145 +template<> struct __nv_tex_rmnf_ret< signed char> { typedef float type; }; +# 146 +template<> struct __nv_tex_rmnf_ret< unsigned char> { typedef float type; }; +# 147 +template<> struct __nv_tex_rmnf_ret< short> { typedef float type; }; +# 148 +template<> struct __nv_tex_rmnf_ret< unsigned short> { typedef float type; }; +# 149 +template<> struct __nv_tex_rmnf_ret< char1> { typedef float1 type; }; +# 150 +template<> struct __nv_tex_rmnf_ret< uchar1> { typedef float1 type; }; +# 151 +template<> struct __nv_tex_rmnf_ret< short1> { typedef float1 type; }; +# 152 +template<> struct __nv_tex_rmnf_ret< ushort1> { typedef float1 type; }; +# 153 +template<> struct __nv_tex_rmnf_ret< char2> { typedef float2 type; }; +# 154 +template<> struct __nv_tex_rmnf_ret< uchar2> { typedef float2 type; }; +# 155 +template<> struct __nv_tex_rmnf_ret< short2> { typedef float2 type; }; +# 156 +template<> struct __nv_tex_rmnf_ret< ushort2> { typedef float2 type; }; +# 157 +template<> struct __nv_tex_rmnf_ret< char4> { typedef float4 type; }; +# 158 +template<> struct __nv_tex_rmnf_ret< uchar4> { typedef float4 type; }; +# 159 +template<> struct __nv_tex_rmnf_ret< short4> { typedef float4 type; }; +# 160 +template<> struct __nv_tex_rmnf_ret< ushort4> { typedef float4 type; }; +# 162 +template< class T> +# 163 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline typename __nv_tex_rmnf_ret< T> ::type tex1Dfetch(texture< T, 1, cudaReadModeNormalizedFloat> t, int x) +# 164 +{int volatile ___ = 1;(void)t;(void)x; +# 171 +::exit(___);} +#if 0 +# 164 +{ +# 171 +} +#endif +# 174 "/usr/include/texture_fetch_functions.h" 3 +template< class T> +# 175 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline typename __nv_tex_rmet_ret< T> ::type tex1D(texture< T, 1, cudaReadModeElementType> t, float x) +# 176 +{int volatile ___ = 1;(void)t;(void)x; +# 182 +::exit(___);} +#if 0 +# 176 +{ +# 182 +} +#endif +# 184 "/usr/include/texture_fetch_functions.h" 3 +template< class T> +# 185 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline typename __nv_tex_rmnf_ret< T> ::type tex1D(texture< T, 1, cudaReadModeNormalizedFloat> t, float x) +# 186 +{int volatile ___ = 1;(void)t;(void)x; +# 193 +::exit(___);} +#if 0 +# 186 +{ +# 193 +} +#endif +# 197 "/usr/include/texture_fetch_functions.h" 3 +template< class T> +# 198 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline typename __nv_tex_rmet_ret< T> ::type tex2D(texture< T, 2, cudaReadModeElementType> t, float x, float y) +# 199 +{int volatile ___ = 1;(void)t;(void)x;(void)y; +# 206 +::exit(___);} +#if 0 +# 199 +{ +# 206 +} +#endif +# 208 "/usr/include/texture_fetch_functions.h" 3 +template< class T> +# 209 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline typename __nv_tex_rmnf_ret< T> ::type tex2D(texture< T, 2, cudaReadModeNormalizedFloat> t, float x, float y) +# 210 +{int volatile ___ = 1;(void)t;(void)x;(void)y; +# 217 +::exit(___);} +#if 0 +# 210 +{ +# 217 +} +#endif +# 221 "/usr/include/texture_fetch_functions.h" 3 +template< class T> +# 222 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline typename __nv_tex_rmet_ret< T> ::type tex1DLayered(texture< T, 241, cudaReadModeElementType> t, float x, int layer) +# 223 +{int volatile ___ = 1;(void)t;(void)x;(void)layer; +# 229 +::exit(___);} +#if 0 +# 223 +{ +# 229 +} +#endif +# 231 "/usr/include/texture_fetch_functions.h" 3 +template< class T> +# 232 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline typename __nv_tex_rmnf_ret< T> ::type tex1DLayered(texture< T, 241, cudaReadModeNormalizedFloat> t, float x, int layer) +# 233 +{int volatile ___ = 1;(void)t;(void)x;(void)layer; +# 240 +::exit(___);} +#if 0 +# 233 +{ +# 240 +} +#endif +# 244 "/usr/include/texture_fetch_functions.h" 3 +template< class T> +# 245 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline typename __nv_tex_rmet_ret< T> ::type tex2DLayered(texture< T, 242, cudaReadModeElementType> t, float x, float y, int layer) +# 246 +{int volatile ___ = 1;(void)t;(void)x;(void)y;(void)layer; +# 252 +::exit(___);} +#if 0 +# 246 +{ +# 252 +} +#endif +# 254 "/usr/include/texture_fetch_functions.h" 3 +template< class T> +# 255 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline typename __nv_tex_rmnf_ret< T> ::type tex2DLayered(texture< T, 242, cudaReadModeNormalizedFloat> t, float x, float y, int layer) +# 256 +{int volatile ___ = 1;(void)t;(void)x;(void)y;(void)layer; +# 263 +::exit(___);} +#if 0 +# 256 +{ +# 263 +} +#endif +# 266 "/usr/include/texture_fetch_functions.h" 3 +template< class T> +# 267 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline typename __nv_tex_rmet_ret< T> ::type tex3D(texture< T, 3, cudaReadModeElementType> t, float x, float y, float z) +# 268 +{int volatile ___ = 1;(void)t;(void)x;(void)y;(void)z; +# 274 +::exit(___);} +#if 0 +# 268 +{ +# 274 +} +#endif +# 276 "/usr/include/texture_fetch_functions.h" 3 +template< class T> +# 277 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline typename __nv_tex_rmnf_ret< T> ::type tex3D(texture< T, 3, cudaReadModeNormalizedFloat> t, float x, float y, float z) +# 278 +{int volatile ___ = 1;(void)t;(void)x;(void)y;(void)z; +# 285 +::exit(___);} +#if 0 +# 278 +{ +# 285 +} +#endif +# 288 "/usr/include/texture_fetch_functions.h" 3 +template< class T> +# 289 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline typename __nv_tex_rmet_ret< T> ::type texCubemap(texture< T, 12, cudaReadModeElementType> t, float x, float y, float z) +# 290 +{int volatile ___ = 1;(void)t;(void)x;(void)y;(void)z; +# 296 +::exit(___);} +#if 0 +# 290 +{ +# 296 +} +#endif +# 298 "/usr/include/texture_fetch_functions.h" 3 +template< class T> +# 299 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline typename __nv_tex_rmnf_ret< T> ::type texCubemap(texture< T, 12, cudaReadModeNormalizedFloat> t, float x, float y, float z) +# 300 +{int volatile ___ = 1;(void)t;(void)x;(void)y;(void)z; +# 307 +::exit(___);} +#if 0 +# 300 +{ +# 307 +} +#endif +# 310 "/usr/include/texture_fetch_functions.h" 3 +template< class T> +# 311 +struct __nv_tex2dgather_ret { }; +# 312 +template<> struct __nv_tex2dgather_ret< char> { typedef char4 type; }; +# 313 +template<> struct __nv_tex2dgather_ret< signed char> { typedef char4 type; }; +# 314 +template<> struct __nv_tex2dgather_ret< char1> { typedef char4 type; }; +# 315 +template<> struct __nv_tex2dgather_ret< char2> { typedef char4 type; }; +# 316 +template<> struct __nv_tex2dgather_ret< char3> { typedef char4 type; }; +# 317 +template<> struct __nv_tex2dgather_ret< char4> { typedef char4 type; }; +# 318 +template<> struct __nv_tex2dgather_ret< unsigned char> { typedef uchar4 type; }; +# 319 +template<> struct __nv_tex2dgather_ret< uchar1> { typedef uchar4 type; }; +# 320 +template<> struct __nv_tex2dgather_ret< uchar2> { typedef uchar4 type; }; +# 321 +template<> struct __nv_tex2dgather_ret< uchar3> { typedef uchar4 type; }; +# 322 +template<> struct __nv_tex2dgather_ret< uchar4> { typedef uchar4 type; }; +# 324 +template<> struct __nv_tex2dgather_ret< short> { typedef short4 type; }; +# 325 +template<> struct __nv_tex2dgather_ret< short1> { typedef short4 type; }; +# 326 +template<> struct __nv_tex2dgather_ret< short2> { typedef short4 type; }; +# 327 +template<> struct __nv_tex2dgather_ret< short3> { typedef short4 type; }; +# 328 +template<> struct __nv_tex2dgather_ret< short4> { typedef short4 type; }; +# 329 +template<> struct __nv_tex2dgather_ret< unsigned short> { typedef ushort4 type; }; +# 330 +template<> struct __nv_tex2dgather_ret< ushort1> { typedef ushort4 type; }; +# 331 +template<> struct __nv_tex2dgather_ret< ushort2> { typedef ushort4 type; }; +# 332 +template<> struct __nv_tex2dgather_ret< ushort3> { typedef ushort4 type; }; +# 333 +template<> struct __nv_tex2dgather_ret< ushort4> { typedef ushort4 type; }; +# 335 +template<> struct __nv_tex2dgather_ret< int> { typedef int4 type; }; +# 336 +template<> struct __nv_tex2dgather_ret< int1> { typedef int4 type; }; +# 337 +template<> struct __nv_tex2dgather_ret< int2> { typedef int4 type; }; +# 338 +template<> struct __nv_tex2dgather_ret< int3> { typedef int4 type; }; +# 339 +template<> struct __nv_tex2dgather_ret< int4> { typedef int4 type; }; +# 340 +template<> struct __nv_tex2dgather_ret< unsigned> { typedef uint4 type; }; +# 341 +template<> struct __nv_tex2dgather_ret< uint1> { typedef uint4 type; }; +# 342 +template<> struct __nv_tex2dgather_ret< uint2> { typedef uint4 type; }; +# 343 +template<> struct __nv_tex2dgather_ret< uint3> { typedef uint4 type; }; +# 344 +template<> struct __nv_tex2dgather_ret< uint4> { typedef uint4 type; }; +# 346 +template<> struct __nv_tex2dgather_ret< float> { typedef float4 type; }; +# 347 +template<> struct __nv_tex2dgather_ret< float1> { typedef float4 type; }; +# 348 +template<> struct __nv_tex2dgather_ret< float2> { typedef float4 type; }; +# 349 +template<> struct __nv_tex2dgather_ret< float3> { typedef float4 type; }; +# 350 +template<> struct __nv_tex2dgather_ret< float4> { typedef float4 type; }; +# 352 +template< class T> +# 353 +__attribute((always_inline)) __attribute__((unused)) static inline typename __nv_tex2dgather_ret< T> ::type tex2Dgather(texture< T, 2, cudaReadModeElementType> t, float x, float y, int comp = 0) +# 354 +{int volatile ___ = 1;(void)t;(void)x;(void)y;(void)comp; +# 361 +::exit(___);} +#if 0 +# 354 +{ +# 361 +} +#endif +# 364 "/usr/include/texture_fetch_functions.h" 3 +template< class T> struct __nv_tex2dgather_rmnf_ret { }; +# 365 +template<> struct __nv_tex2dgather_rmnf_ret< char> { typedef float4 type; }; +# 366 +template<> struct __nv_tex2dgather_rmnf_ret< signed char> { typedef float4 type; }; +# 367 +template<> struct __nv_tex2dgather_rmnf_ret< unsigned char> { typedef float4 type; }; +# 368 +template<> struct __nv_tex2dgather_rmnf_ret< char1> { typedef float4 type; }; +# 369 +template<> struct __nv_tex2dgather_rmnf_ret< uchar1> { typedef float4 type; }; +# 370 +template<> struct __nv_tex2dgather_rmnf_ret< char2> { typedef float4 type; }; +# 371 +template<> struct __nv_tex2dgather_rmnf_ret< uchar2> { typedef float4 type; }; +# 372 +template<> struct __nv_tex2dgather_rmnf_ret< char3> { typedef float4 type; }; +# 373 +template<> struct __nv_tex2dgather_rmnf_ret< uchar3> { typedef float4 type; }; +# 374 +template<> struct __nv_tex2dgather_rmnf_ret< char4> { typedef float4 type; }; +# 375 +template<> struct __nv_tex2dgather_rmnf_ret< uchar4> { typedef float4 type; }; +# 376 +template<> struct __nv_tex2dgather_rmnf_ret< signed short> { typedef float4 type; }; +# 377 +template<> struct __nv_tex2dgather_rmnf_ret< unsigned short> { typedef float4 type; }; +# 378 +template<> struct __nv_tex2dgather_rmnf_ret< short1> { typedef float4 type; }; +# 379 +template<> struct __nv_tex2dgather_rmnf_ret< ushort1> { typedef float4 type; }; +# 380 +template<> struct __nv_tex2dgather_rmnf_ret< short2> { typedef float4 type; }; +# 381 +template<> struct __nv_tex2dgather_rmnf_ret< ushort2> { typedef float4 type; }; +# 382 +template<> struct __nv_tex2dgather_rmnf_ret< short3> { typedef float4 type; }; +# 383 +template<> struct __nv_tex2dgather_rmnf_ret< ushort3> { typedef float4 type; }; +# 384 +template<> struct __nv_tex2dgather_rmnf_ret< short4> { typedef float4 type; }; +# 385 +template<> struct __nv_tex2dgather_rmnf_ret< ushort4> { typedef float4 type; }; +# 387 +template< class T> +# 388 +__attribute((always_inline)) __attribute__((unused)) static inline typename __nv_tex2dgather_rmnf_ret< T> ::type tex2Dgather(texture< T, 2, cudaReadModeNormalizedFloat> t, float x, float y, int comp = 0) +# 389 +{int volatile ___ = 1;(void)t;(void)x;(void)y;(void)comp; +# 396 +::exit(___);} +#if 0 +# 389 +{ +# 396 +} +#endif +# 400 "/usr/include/texture_fetch_functions.h" 3 +template< class T> +# 401 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline typename __nv_tex_rmet_ret< T> ::type tex1DLod(texture< T, 1, cudaReadModeElementType> t, float x, float level) +# 402 +{int volatile ___ = 1;(void)t;(void)x;(void)level; +# 408 +::exit(___);} +#if 0 +# 402 +{ +# 408 +} +#endif +# 410 "/usr/include/texture_fetch_functions.h" 3 +template< class T> +# 411 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline typename __nv_tex_rmnf_ret< T> ::type tex1DLod(texture< T, 1, cudaReadModeNormalizedFloat> t, float x, float level) +# 412 +{int volatile ___ = 1;(void)t;(void)x;(void)level; +# 419 +::exit(___);} +#if 0 +# 412 +{ +# 419 +} +#endif +# 422 "/usr/include/texture_fetch_functions.h" 3 +template< class T> +# 423 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline typename __nv_tex_rmet_ret< T> ::type tex2DLod(texture< T, 2, cudaReadModeElementType> t, float x, float y, float level) +# 424 +{int volatile ___ = 1;(void)t;(void)x;(void)y;(void)level; +# 430 +::exit(___);} +#if 0 +# 424 +{ +# 430 +} +#endif +# 432 "/usr/include/texture_fetch_functions.h" 3 +template< class T> +# 433 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline typename __nv_tex_rmnf_ret< T> ::type tex2DLod(texture< T, 2, cudaReadModeNormalizedFloat> t, float x, float y, float level) +# 434 +{int volatile ___ = 1;(void)t;(void)x;(void)y;(void)level; +# 441 +::exit(___);} +#if 0 +# 434 +{ +# 441 +} +#endif +# 444 "/usr/include/texture_fetch_functions.h" 3 +template< class T> +# 445 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline typename __nv_tex_rmet_ret< T> ::type tex1DLayeredLod(texture< T, 241, cudaReadModeElementType> t, float x, int layer, float level) +# 446 +{int volatile ___ = 1;(void)t;(void)x;(void)layer;(void)level; +# 452 +::exit(___);} +#if 0 +# 446 +{ +# 452 +} +#endif +# 454 "/usr/include/texture_fetch_functions.h" 3 +template< class T> +# 455 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline typename __nv_tex_rmnf_ret< T> ::type tex1DLayeredLod(texture< T, 241, cudaReadModeNormalizedFloat> t, float x, int layer, float level) +# 456 +{int volatile ___ = 1;(void)t;(void)x;(void)layer;(void)level; +# 463 +::exit(___);} +#if 0 +# 456 +{ +# 463 +} +#endif +# 466 "/usr/include/texture_fetch_functions.h" 3 +template< class T> +# 467 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline typename __nv_tex_rmet_ret< T> ::type tex2DLayeredLod(texture< T, 242, cudaReadModeElementType> t, float x, float y, int layer, float level) +# 468 +{int volatile ___ = 1;(void)t;(void)x;(void)y;(void)layer;(void)level; +# 474 +::exit(___);} +#if 0 +# 468 +{ +# 474 +} +#endif +# 476 "/usr/include/texture_fetch_functions.h" 3 +template< class T> +# 477 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline typename __nv_tex_rmnf_ret< T> ::type tex2DLayeredLod(texture< T, 242, cudaReadModeNormalizedFloat> t, float x, float y, int layer, float level) +# 478 +{int volatile ___ = 1;(void)t;(void)x;(void)y;(void)layer;(void)level; +# 485 +::exit(___);} +#if 0 +# 478 +{ +# 485 +} +#endif +# 488 "/usr/include/texture_fetch_functions.h" 3 +template< class T> +# 489 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline typename __nv_tex_rmet_ret< T> ::type tex3DLod(texture< T, 3, cudaReadModeElementType> t, float x, float y, float z, float level) +# 490 +{int volatile ___ = 1;(void)t;(void)x;(void)y;(void)z;(void)level; +# 496 +::exit(___);} +#if 0 +# 490 +{ +# 496 +} +#endif +# 498 "/usr/include/texture_fetch_functions.h" 3 +template< class T> +# 499 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline typename __nv_tex_rmnf_ret< T> ::type tex3DLod(texture< T, 3, cudaReadModeNormalizedFloat> t, float x, float y, float z, float level) +# 500 +{int volatile ___ = 1;(void)t;(void)x;(void)y;(void)z;(void)level; +# 507 +::exit(___);} +#if 0 +# 500 +{ +# 507 +} +#endif +# 510 "/usr/include/texture_fetch_functions.h" 3 +template< class T> +# 511 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline typename __nv_tex_rmet_ret< T> ::type texCubemapLod(texture< T, 12, cudaReadModeElementType> t, float x, float y, float z, float level) +# 512 +{int volatile ___ = 1;(void)t;(void)x;(void)y;(void)z;(void)level; +# 518 +::exit(___);} +#if 0 +# 512 +{ +# 518 +} +#endif +# 520 "/usr/include/texture_fetch_functions.h" 3 +template< class T> +# 521 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline typename __nv_tex_rmnf_ret< T> ::type texCubemapLod(texture< T, 12, cudaReadModeNormalizedFloat> t, float x, float y, float z, float level) +# 522 +{int volatile ___ = 1;(void)t;(void)x;(void)y;(void)z;(void)level; +# 529 +::exit(___);} +#if 0 +# 522 +{ +# 529 +} +#endif +# 533 "/usr/include/texture_fetch_functions.h" 3 +template< class T> +# 534 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline typename __nv_tex_rmet_ret< T> ::type texCubemapLayered(texture< T, 252, cudaReadModeElementType> t, float x, float y, float z, int layer) +# 535 +{int volatile ___ = 1;(void)t;(void)x;(void)y;(void)z;(void)layer; +# 541 +::exit(___);} +#if 0 +# 535 +{ +# 541 +} +#endif +# 543 "/usr/include/texture_fetch_functions.h" 3 +template< class T> +# 544 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline typename __nv_tex_rmnf_ret< T> ::type texCubemapLayered(texture< T, 252, cudaReadModeNormalizedFloat> t, float x, float y, float z, int layer) +# 545 +{int volatile ___ = 1;(void)t;(void)x;(void)y;(void)z;(void)layer; +# 552 +::exit(___);} +#if 0 +# 545 +{ +# 552 +} +#endif +# 556 "/usr/include/texture_fetch_functions.h" 3 +template< class T> +# 557 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline typename __nv_tex_rmet_ret< T> ::type texCubemapLayeredLod(texture< T, 252, cudaReadModeElementType> t, float x, float y, float z, int layer, float level) +# 558 +{int volatile ___ = 1;(void)t;(void)x;(void)y;(void)z;(void)layer;(void)level; +# 564 +::exit(___);} +#if 0 +# 558 +{ +# 564 +} +#endif +# 566 "/usr/include/texture_fetch_functions.h" 3 +template< class T> +# 567 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline typename __nv_tex_rmnf_ret< T> ::type texCubemapLayeredLod(texture< T, 252, cudaReadModeNormalizedFloat> t, float x, float y, float z, int layer, float level) +# 568 +{int volatile ___ = 1;(void)t;(void)x;(void)y;(void)z;(void)layer;(void)level; +# 575 +::exit(___);} +#if 0 +# 568 +{ +# 575 +} +#endif +# 579 "/usr/include/texture_fetch_functions.h" 3 +template< class T> +# 580 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline typename __nv_tex_rmet_ret< T> ::type texCubemapGrad(texture< T, 12, cudaReadModeElementType> t, float x, float y, float z, float4 dPdx, float4 dPdy) +# 581 +{int volatile ___ = 1;(void)t;(void)x;(void)y;(void)z;(void)dPdx;(void)dPdy; +# 587 +::exit(___);} +#if 0 +# 581 +{ +# 587 +} +#endif +# 589 "/usr/include/texture_fetch_functions.h" 3 +template< class T> +# 590 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline typename __nv_tex_rmnf_ret< T> ::type texCubemapGrad(texture< T, 12, cudaReadModeNormalizedFloat> t, float x, float y, float z, float4 dPdx, float4 dPdy) +# 591 +{int volatile ___ = 1;(void)t;(void)x;(void)y;(void)z;(void)dPdx;(void)dPdy; +# 598 +::exit(___);} +#if 0 +# 591 +{ +# 598 +} +#endif +# 602 "/usr/include/texture_fetch_functions.h" 3 +template< class T> +# 603 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline typename __nv_tex_rmet_ret< T> ::type texCubemapLayeredGrad(texture< T, 252, cudaReadModeElementType> t, float x, float y, float z, int layer, float4 dPdx, float4 dPdy) +# 604 +{int volatile ___ = 1;(void)t;(void)x;(void)y;(void)z;(void)layer;(void)dPdx;(void)dPdy; +# 610 +::exit(___);} +#if 0 +# 604 +{ +# 610 +} +#endif +# 612 "/usr/include/texture_fetch_functions.h" 3 +template< class T> +# 613 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline typename __nv_tex_rmnf_ret< T> ::type texCubemapLayeredGrad(texture< T, 252, cudaReadModeNormalizedFloat> t, float x, float y, float z, int layer, float4 dPdx, float4 dPdy) +# 614 +{int volatile ___ = 1;(void)t;(void)x;(void)y;(void)z;(void)layer;(void)dPdx;(void)dPdy; +# 621 +::exit(___);} +#if 0 +# 614 +{ +# 621 +} +#endif +# 625 "/usr/include/texture_fetch_functions.h" 3 +template< class T> +# 626 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline typename __nv_tex_rmet_ret< T> ::type tex1DGrad(texture< T, 1, cudaReadModeElementType> t, float x, float dPdx, float dPdy) +# 627 +{int volatile ___ = 1;(void)t;(void)x;(void)dPdx;(void)dPdy; +# 633 +::exit(___);} +#if 0 +# 627 +{ +# 633 +} +#endif +# 635 "/usr/include/texture_fetch_functions.h" 3 +template< class T> +# 636 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline typename __nv_tex_rmnf_ret< T> ::type tex1DGrad(texture< T, 1, cudaReadModeNormalizedFloat> t, float x, float dPdx, float dPdy) +# 637 +{int volatile ___ = 1;(void)t;(void)x;(void)dPdx;(void)dPdy; +# 644 +::exit(___);} +#if 0 +# 637 +{ +# 644 +} +#endif +# 648 "/usr/include/texture_fetch_functions.h" 3 +template< class T> +# 649 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline typename __nv_tex_rmet_ret< T> ::type tex2DGrad(texture< T, 2, cudaReadModeElementType> t, float x, float y, float2 dPdx, float2 dPdy) +# 650 +{int volatile ___ = 1;(void)t;(void)x;(void)y;(void)dPdx;(void)dPdy; +# 656 +::exit(___);} +#if 0 +# 650 +{ +# 656 +} +#endif +# 658 "/usr/include/texture_fetch_functions.h" 3 +template< class T> +# 659 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline typename __nv_tex_rmnf_ret< T> ::type tex2DGrad(texture< T, 2, cudaReadModeNormalizedFloat> t, float x, float y, float2 dPdx, float2 dPdy) +# 660 +{int volatile ___ = 1;(void)t;(void)x;(void)y;(void)dPdx;(void)dPdy; +# 667 +::exit(___);} +#if 0 +# 660 +{ +# 667 +} +#endif +# 670 "/usr/include/texture_fetch_functions.h" 3 +template< class T> +# 671 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline typename __nv_tex_rmet_ret< T> ::type tex1DLayeredGrad(texture< T, 241, cudaReadModeElementType> t, float x, int layer, float dPdx, float dPdy) +# 672 +{int volatile ___ = 1;(void)t;(void)x;(void)layer;(void)dPdx;(void)dPdy; +# 678 +::exit(___);} +#if 0 +# 672 +{ +# 678 +} +#endif +# 680 "/usr/include/texture_fetch_functions.h" 3 +template< class T> +# 681 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline typename __nv_tex_rmnf_ret< T> ::type tex1DLayeredGrad(texture< T, 241, cudaReadModeNormalizedFloat> t, float x, int layer, float dPdx, float dPdy) +# 682 +{int volatile ___ = 1;(void)t;(void)x;(void)layer;(void)dPdx;(void)dPdy; +# 689 +::exit(___);} +#if 0 +# 682 +{ +# 689 +} +#endif +# 692 "/usr/include/texture_fetch_functions.h" 3 +template< class T> +# 693 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline typename __nv_tex_rmet_ret< T> ::type tex2DLayeredGrad(texture< T, 242, cudaReadModeElementType> t, float x, float y, int layer, float2 dPdx, float2 dPdy) +# 694 +{int volatile ___ = 1;(void)t;(void)x;(void)y;(void)layer;(void)dPdx;(void)dPdy; +# 700 +::exit(___);} +#if 0 +# 694 +{ +# 700 +} +#endif +# 702 "/usr/include/texture_fetch_functions.h" 3 +template< class T> +# 703 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline typename __nv_tex_rmnf_ret< T> ::type tex2DLayeredGrad(texture< T, 242, cudaReadModeNormalizedFloat> t, float x, float y, int layer, float2 dPdx, float2 dPdy) +# 704 +{int volatile ___ = 1;(void)t;(void)x;(void)y;(void)layer;(void)dPdx;(void)dPdy; +# 711 +::exit(___);} +#if 0 +# 704 +{ +# 711 +} +#endif +# 714 "/usr/include/texture_fetch_functions.h" 3 +template< class T> +# 715 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline typename __nv_tex_rmet_ret< T> ::type tex3DGrad(texture< T, 3, cudaReadModeElementType> t, float x, float y, float z, float4 dPdx, float4 dPdy) +# 716 +{int volatile ___ = 1;(void)t;(void)x;(void)y;(void)z;(void)dPdx;(void)dPdy; +# 722 +::exit(___);} +#if 0 +# 716 +{ +# 722 +} +#endif +# 724 "/usr/include/texture_fetch_functions.h" 3 +template< class T> +# 725 +__attribute((deprecated)) __attribute((always_inline)) __attribute__((unused)) static inline typename __nv_tex_rmnf_ret< T> ::type tex3DGrad(texture< T, 3, cudaReadModeNormalizedFloat> t, float x, float y, float z, float4 dPdx, float4 dPdy) +# 726 +{int volatile ___ = 1;(void)t;(void)x;(void)y;(void)z;(void)dPdx;(void)dPdy; +# 733 +::exit(___);} +#if 0 +# 726 +{ +# 733 +} +#endif +# 64 "/usr/include/texture_indirect_functions.h" 3 +template< class T> struct __nv_itex_trait { }; +# 65 +template<> struct __nv_itex_trait< char> { typedef void type; }; +# 66 +template<> struct __nv_itex_trait< signed char> { typedef void type; }; +# 67 +template<> struct __nv_itex_trait< char1> { typedef void type; }; +# 68 +template<> struct __nv_itex_trait< char2> { typedef void type; }; +# 69 +template<> struct __nv_itex_trait< char4> { typedef void type; }; +# 70 +template<> struct __nv_itex_trait< unsigned char> { typedef void type; }; +# 71 +template<> struct __nv_itex_trait< uchar1> { typedef void type; }; +# 72 +template<> struct __nv_itex_trait< uchar2> { typedef void type; }; +# 73 +template<> struct __nv_itex_trait< uchar4> { typedef void type; }; +# 74 +template<> struct __nv_itex_trait< short> { typedef void type; }; +# 75 +template<> struct __nv_itex_trait< short1> { typedef void type; }; +# 76 +template<> struct __nv_itex_trait< short2> { typedef void type; }; +# 77 +template<> struct __nv_itex_trait< short4> { typedef void type; }; +# 78 +template<> struct __nv_itex_trait< unsigned short> { typedef void type; }; +# 79 +template<> struct __nv_itex_trait< ushort1> { typedef void type; }; +# 80 +template<> struct __nv_itex_trait< ushort2> { typedef void type; }; +# 81 +template<> struct __nv_itex_trait< ushort4> { typedef void type; }; +# 82 +template<> struct __nv_itex_trait< int> { typedef void type; }; +# 83 +template<> struct __nv_itex_trait< int1> { typedef void type; }; +# 84 +template<> struct __nv_itex_trait< int2> { typedef void type; }; +# 85 +template<> struct __nv_itex_trait< int4> { typedef void type; }; +# 86 +template<> struct __nv_itex_trait< unsigned> { typedef void type; }; +# 87 +template<> struct __nv_itex_trait< uint1> { typedef void type; }; +# 88 +template<> struct __nv_itex_trait< uint2> { typedef void type; }; +# 89 +template<> struct __nv_itex_trait< uint4> { typedef void type; }; +# 100 "/usr/include/texture_indirect_functions.h" 3 +template<> struct __nv_itex_trait< float> { typedef void type; }; +# 101 +template<> struct __nv_itex_trait< float1> { typedef void type; }; +# 102 +template<> struct __nv_itex_trait< float2> { typedef void type; }; +# 103 +template<> struct __nv_itex_trait< float4> { typedef void type; }; +# 107 +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 108 +tex1Dfetch(T *ptr, cudaTextureObject_t obj, int x) +# 109 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x; +# 113 +::exit(___);} +#if 0 +# 109 +{ +# 113 +} +#endif +# 115 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static T +# 116 +tex1Dfetch(cudaTextureObject_t texObject, int x) +# 117 +{int volatile ___ = 1;(void)texObject;(void)x; +# 123 +::exit(___);} +#if 0 +# 117 +{ +# 123 +} +#endif +# 125 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 126 +tex1D(T *ptr, cudaTextureObject_t obj, float x) +# 127 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x; +# 131 +::exit(___);} +#if 0 +# 127 +{ +# 131 +} +#endif +# 134 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static T +# 135 +tex1D(cudaTextureObject_t texObject, float x) +# 136 +{int volatile ___ = 1;(void)texObject;(void)x; +# 142 +::exit(___);} +#if 0 +# 136 +{ +# 142 +} +#endif +# 145 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 146 +tex2D(T *ptr, cudaTextureObject_t obj, float x, float y) +# 147 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y; +# 151 +::exit(___);} +#if 0 +# 147 +{ +# 151 +} +#endif +# 153 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static T +# 154 +tex2D(cudaTextureObject_t texObject, float x, float y) +# 155 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y; +# 161 +::exit(___);} +#if 0 +# 155 +{ +# 161 +} +#endif +# 164 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 165 +tex2D(T *ptr, cudaTextureObject_t obj, float x, float y, bool * +# 166 +isResident) +# 167 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)isResident; +# 173 +::exit(___);} +#if 0 +# 167 +{ +# 173 +} +#endif +# 175 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static T +# 176 +tex2D(cudaTextureObject_t texObject, float x, float y, bool *isResident) +# 177 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)isResident; +# 183 +::exit(___);} +#if 0 +# 177 +{ +# 183 +} +#endif +# 188 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 189 +tex3D(T *ptr, cudaTextureObject_t obj, float x, float y, float z) +# 190 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)z; +# 194 +::exit(___);} +#if 0 +# 190 +{ +# 194 +} +#endif +# 196 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static T +# 197 +tex3D(cudaTextureObject_t texObject, float x, float y, float z) +# 198 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)z; +# 204 +::exit(___);} +#if 0 +# 198 +{ +# 204 +} +#endif +# 207 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 208 +tex3D(T *ptr, cudaTextureObject_t obj, float x, float y, float z, bool * +# 209 +isResident) +# 210 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)z;(void)isResident; +# 216 +::exit(___);} +#if 0 +# 210 +{ +# 216 +} +#endif +# 218 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static T +# 219 +tex3D(cudaTextureObject_t texObject, float x, float y, float z, bool *isResident) +# 220 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)z;(void)isResident; +# 226 +::exit(___);} +#if 0 +# 220 +{ +# 226 +} +#endif +# 230 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 231 +tex1DLayered(T *ptr, cudaTextureObject_t obj, float x, int layer) +# 232 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)layer; +# 236 +::exit(___);} +#if 0 +# 232 +{ +# 236 +} +#endif +# 238 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static T +# 239 +tex1DLayered(cudaTextureObject_t texObject, float x, int layer) +# 240 +{int volatile ___ = 1;(void)texObject;(void)x;(void)layer; +# 246 +::exit(___);} +#if 0 +# 240 +{ +# 246 +} +#endif +# 248 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 249 +tex2DLayered(T *ptr, cudaTextureObject_t obj, float x, float y, int layer) +# 250 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)layer; +# 254 +::exit(___);} +#if 0 +# 250 +{ +# 254 +} +#endif +# 256 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static T +# 257 +tex2DLayered(cudaTextureObject_t texObject, float x, float y, int layer) +# 258 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)layer; +# 264 +::exit(___);} +#if 0 +# 258 +{ +# 264 +} +#endif +# 267 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 268 +tex2DLayered(T *ptr, cudaTextureObject_t obj, float x, float y, int layer, bool *isResident) +# 269 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)layer;(void)isResident; +# 275 +::exit(___);} +#if 0 +# 269 +{ +# 275 +} +#endif +# 277 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static T +# 278 +tex2DLayered(cudaTextureObject_t texObject, float x, float y, int layer, bool *isResident) +# 279 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)layer;(void)isResident; +# 285 +::exit(___);} +#if 0 +# 279 +{ +# 285 +} +#endif +# 289 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 290 +texCubemap(T *ptr, cudaTextureObject_t obj, float x, float y, float z) +# 291 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)z; +# 295 +::exit(___);} +#if 0 +# 291 +{ +# 295 +} +#endif +# 298 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static T +# 299 +texCubemap(cudaTextureObject_t texObject, float x, float y, float z) +# 300 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)z; +# 306 +::exit(___);} +#if 0 +# 300 +{ +# 306 +} +#endif +# 309 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 310 +texCubemapLayered(T *ptr, cudaTextureObject_t obj, float x, float y, float z, int layer) +# 311 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)z;(void)layer; +# 315 +::exit(___);} +#if 0 +# 311 +{ +# 315 +} +#endif +# 317 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static T +# 318 +texCubemapLayered(cudaTextureObject_t texObject, float x, float y, float z, int layer) +# 319 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)z;(void)layer; +# 325 +::exit(___);} +#if 0 +# 319 +{ +# 325 +} +#endif +# 327 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 328 +tex2Dgather(T *ptr, cudaTextureObject_t obj, float x, float y, int comp = 0) +# 329 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)comp; +# 333 +::exit(___);} +#if 0 +# 329 +{ +# 333 +} +#endif +# 335 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static T +# 336 +tex2Dgather(cudaTextureObject_t to, float x, float y, int comp = 0) +# 337 +{int volatile ___ = 1;(void)to;(void)x;(void)y;(void)comp; +# 343 +::exit(___);} +#if 0 +# 337 +{ +# 343 +} +#endif +# 346 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 347 +tex2Dgather(T *ptr, cudaTextureObject_t obj, float x, float y, bool *isResident, int comp = 0) +# 348 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)isResident;(void)comp; +# 354 +::exit(___);} +#if 0 +# 348 +{ +# 354 +} +#endif +# 356 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static T +# 357 +tex2Dgather(cudaTextureObject_t to, float x, float y, bool *isResident, int comp = 0) +# 358 +{int volatile ___ = 1;(void)to;(void)x;(void)y;(void)isResident;(void)comp; +# 364 +::exit(___);} +#if 0 +# 358 +{ +# 364 +} +#endif +# 368 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 369 +tex1DLod(T *ptr, cudaTextureObject_t obj, float x, float level) +# 370 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)level; +# 374 +::exit(___);} +#if 0 +# 370 +{ +# 374 +} +#endif +# 376 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static T +# 377 +tex1DLod(cudaTextureObject_t texObject, float x, float level) +# 378 +{int volatile ___ = 1;(void)texObject;(void)x;(void)level; +# 384 +::exit(___);} +#if 0 +# 378 +{ +# 384 +} +#endif +# 387 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 388 +tex2DLod(T *ptr, cudaTextureObject_t obj, float x, float y, float level) +# 389 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)level; +# 393 +::exit(___);} +#if 0 +# 389 +{ +# 393 +} +#endif +# 395 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static T +# 396 +tex2DLod(cudaTextureObject_t texObject, float x, float y, float level) +# 397 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)level; +# 403 +::exit(___);} +#if 0 +# 397 +{ +# 403 +} +#endif +# 407 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 408 +tex2DLod(T *ptr, cudaTextureObject_t obj, float x, float y, float level, bool *isResident) +# 409 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)level;(void)isResident; +# 415 +::exit(___);} +#if 0 +# 409 +{ +# 415 +} +#endif +# 417 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static T +# 418 +tex2DLod(cudaTextureObject_t texObject, float x, float y, float level, bool *isResident) +# 419 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)level;(void)isResident; +# 425 +::exit(___);} +#if 0 +# 419 +{ +# 425 +} +#endif +# 430 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 431 +tex3DLod(T *ptr, cudaTextureObject_t obj, float x, float y, float z, float level) +# 432 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)z;(void)level; +# 436 +::exit(___);} +#if 0 +# 432 +{ +# 436 +} +#endif +# 438 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static T +# 439 +tex3DLod(cudaTextureObject_t texObject, float x, float y, float z, float level) +# 440 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)z;(void)level; +# 446 +::exit(___);} +#if 0 +# 440 +{ +# 446 +} +#endif +# 449 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 450 +tex3DLod(T *ptr, cudaTextureObject_t obj, float x, float y, float z, float level, bool *isResident) +# 451 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)z;(void)level;(void)isResident; +# 457 +::exit(___);} +#if 0 +# 451 +{ +# 457 +} +#endif +# 459 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static T +# 460 +tex3DLod(cudaTextureObject_t texObject, float x, float y, float z, float level, bool *isResident) +# 461 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)z;(void)level;(void)isResident; +# 467 +::exit(___);} +#if 0 +# 461 +{ +# 467 +} +#endif +# 472 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 473 +tex1DLayeredLod(T *ptr, cudaTextureObject_t obj, float x, int layer, float level) +# 474 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)layer;(void)level; +# 478 +::exit(___);} +#if 0 +# 474 +{ +# 478 +} +#endif +# 480 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static T +# 481 +tex1DLayeredLod(cudaTextureObject_t texObject, float x, int layer, float level) +# 482 +{int volatile ___ = 1;(void)texObject;(void)x;(void)layer;(void)level; +# 488 +::exit(___);} +#if 0 +# 482 +{ +# 488 +} +#endif +# 491 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 492 +tex2DLayeredLod(T *ptr, cudaTextureObject_t obj, float x, float y, int layer, float level) +# 493 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)layer;(void)level; +# 497 +::exit(___);} +#if 0 +# 493 +{ +# 497 +} +#endif +# 499 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static T +# 500 +tex2DLayeredLod(cudaTextureObject_t texObject, float x, float y, int layer, float level) +# 501 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)layer;(void)level; +# 507 +::exit(___);} +#if 0 +# 501 +{ +# 507 +} +#endif +# 510 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 511 +tex2DLayeredLod(T *ptr, cudaTextureObject_t obj, float x, float y, int layer, float level, bool *isResident) +# 512 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)layer;(void)level;(void)isResident; +# 518 +::exit(___);} +#if 0 +# 512 +{ +# 518 +} +#endif +# 520 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static T +# 521 +tex2DLayeredLod(cudaTextureObject_t texObject, float x, float y, int layer, float level, bool *isResident) +# 522 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)layer;(void)level;(void)isResident; +# 528 +::exit(___);} +#if 0 +# 522 +{ +# 528 +} +#endif +# 531 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 532 +texCubemapLod(T *ptr, cudaTextureObject_t obj, float x, float y, float z, float level) +# 533 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)z;(void)level; +# 537 +::exit(___);} +#if 0 +# 533 +{ +# 537 +} +#endif +# 539 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static T +# 540 +texCubemapLod(cudaTextureObject_t texObject, float x, float y, float z, float level) +# 541 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)z;(void)level; +# 547 +::exit(___);} +#if 0 +# 541 +{ +# 547 +} +#endif +# 550 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 551 +texCubemapGrad(T *ptr, cudaTextureObject_t obj, float x, float y, float z, float4 dPdx, float4 dPdy) +# 552 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)z;(void)dPdx;(void)dPdy; +# 556 +::exit(___);} +#if 0 +# 552 +{ +# 556 +} +#endif +# 558 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static T +# 559 +texCubemapGrad(cudaTextureObject_t texObject, float x, float y, float z, float4 dPdx, float4 dPdy) +# 560 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)z;(void)dPdx;(void)dPdy; +# 566 +::exit(___);} +#if 0 +# 560 +{ +# 566 +} +#endif +# 568 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 569 +texCubemapLayeredLod(T *ptr, cudaTextureObject_t obj, float x, float y, float z, int layer, float level) +# 570 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)z;(void)layer;(void)level; +# 574 +::exit(___);} +#if 0 +# 570 +{ +# 574 +} +#endif +# 576 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static T +# 577 +texCubemapLayeredLod(cudaTextureObject_t texObject, float x, float y, float z, int layer, float level) +# 578 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)z;(void)layer;(void)level; +# 584 +::exit(___);} +#if 0 +# 578 +{ +# 584 +} +#endif +# 586 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 587 +tex1DGrad(T *ptr, cudaTextureObject_t obj, float x, float dPdx, float dPdy) +# 588 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)dPdx;(void)dPdy; +# 592 +::exit(___);} +#if 0 +# 588 +{ +# 592 +} +#endif +# 594 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static T +# 595 +tex1DGrad(cudaTextureObject_t texObject, float x, float dPdx, float dPdy) +# 596 +{int volatile ___ = 1;(void)texObject;(void)x;(void)dPdx;(void)dPdy; +# 602 +::exit(___);} +#if 0 +# 596 +{ +# 602 +} +#endif +# 605 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 606 +tex2DGrad(T *ptr, cudaTextureObject_t obj, float x, float y, float2 dPdx, float2 dPdy) +# 607 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)dPdx;(void)dPdy; +# 612 +::exit(___);} +#if 0 +# 607 +{ +# 612 +} +#endif +# 614 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static T +# 615 +tex2DGrad(cudaTextureObject_t texObject, float x, float y, float2 dPdx, float2 dPdy) +# 616 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)dPdx;(void)dPdy; +# 622 +::exit(___);} +#if 0 +# 616 +{ +# 622 +} +#endif +# 625 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 626 +tex2DGrad(T *ptr, cudaTextureObject_t obj, float x, float y, float2 dPdx, float2 dPdy, bool *isResident) +# 627 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)dPdx;(void)dPdy;(void)isResident; +# 634 +::exit(___);} +#if 0 +# 627 +{ +# 634 +} +#endif +# 636 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static T +# 637 +tex2DGrad(cudaTextureObject_t texObject, float x, float y, float2 dPdx, float2 dPdy, bool *isResident) +# 638 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)dPdx;(void)dPdy;(void)isResident; +# 644 +::exit(___);} +#if 0 +# 638 +{ +# 644 +} +#endif +# 648 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 649 +tex3DGrad(T *ptr, cudaTextureObject_t obj, float x, float y, float z, float4 dPdx, float4 dPdy) +# 650 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)z;(void)dPdx;(void)dPdy; +# 654 +::exit(___);} +#if 0 +# 650 +{ +# 654 +} +#endif +# 656 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static T +# 657 +tex3DGrad(cudaTextureObject_t texObject, float x, float y, float z, float4 dPdx, float4 dPdy) +# 658 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)z;(void)dPdx;(void)dPdy; +# 664 +::exit(___);} +#if 0 +# 658 +{ +# 664 +} +#endif +# 667 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 668 +tex3DGrad(T *ptr, cudaTextureObject_t obj, float x, float y, float z, float4 dPdx, float4 dPdy, bool *isResident) +# 669 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)z;(void)dPdx;(void)dPdy;(void)isResident; +# 675 +::exit(___);} +#if 0 +# 669 +{ +# 675 +} +#endif +# 677 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static T +# 678 +tex3DGrad(cudaTextureObject_t texObject, float x, float y, float z, float4 dPdx, float4 dPdy, bool *isResident) +# 679 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)z;(void)dPdx;(void)dPdy;(void)isResident; +# 685 +::exit(___);} +#if 0 +# 679 +{ +# 685 +} +#endif +# 690 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 691 +tex1DLayeredGrad(T *ptr, cudaTextureObject_t obj, float x, int layer, float dPdx, float dPdy) +# 692 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)layer;(void)dPdx;(void)dPdy; +# 696 +::exit(___);} +#if 0 +# 692 +{ +# 696 +} +#endif +# 698 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static T +# 699 +tex1DLayeredGrad(cudaTextureObject_t texObject, float x, int layer, float dPdx, float dPdy) +# 700 +{int volatile ___ = 1;(void)texObject;(void)x;(void)layer;(void)dPdx;(void)dPdy; +# 706 +::exit(___);} +#if 0 +# 700 +{ +# 706 +} +#endif +# 709 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 710 +tex2DLayeredGrad(T *ptr, cudaTextureObject_t obj, float x, float y, int layer, float2 dPdx, float2 dPdy) +# 711 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)layer;(void)dPdx;(void)dPdy; +# 715 +::exit(___);} +#if 0 +# 711 +{ +# 715 +} +#endif +# 717 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static T +# 718 +tex2DLayeredGrad(cudaTextureObject_t texObject, float x, float y, int layer, float2 dPdx, float2 dPdy) +# 719 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)layer;(void)dPdx;(void)dPdy; +# 725 +::exit(___);} +#if 0 +# 719 +{ +# 725 +} +#endif +# 728 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 729 +tex2DLayeredGrad(T *ptr, cudaTextureObject_t obj, float x, float y, int layer, float2 dPdx, float2 dPdy, bool *isResident) +# 730 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)layer;(void)dPdx;(void)dPdy;(void)isResident; +# 736 +::exit(___);} +#if 0 +# 730 +{ +# 736 +} +#endif +# 738 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static T +# 739 +tex2DLayeredGrad(cudaTextureObject_t texObject, float x, float y, int layer, float2 dPdx, float2 dPdy, bool *isResident) +# 740 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)layer;(void)dPdx;(void)dPdy;(void)isResident; +# 746 +::exit(___);} +#if 0 +# 740 +{ +# 746 +} +#endif +# 750 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static typename __nv_itex_trait< T> ::type +# 751 +texCubemapLayeredGrad(T *ptr, cudaTextureObject_t obj, float x, float y, float z, int layer, float4 dPdx, float4 dPdy) +# 752 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)z;(void)layer;(void)dPdx;(void)dPdy; +# 756 +::exit(___);} +#if 0 +# 752 +{ +# 756 +} +#endif +# 758 "/usr/include/texture_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static T +# 759 +texCubemapLayeredGrad(cudaTextureObject_t texObject, float x, float y, float z, int layer, float4 dPdx, float4 dPdy) +# 760 +{int volatile ___ = 1;(void)texObject;(void)x;(void)y;(void)z;(void)layer;(void)dPdx;(void)dPdy; +# 766 +::exit(___);} +#if 0 +# 760 +{ +# 766 +} +#endif +# 59 "/usr/include/surface_indirect_functions.h" 3 +template< class T> struct __nv_isurf_trait { }; +# 60 +template<> struct __nv_isurf_trait< char> { typedef void type; }; +# 61 +template<> struct __nv_isurf_trait< signed char> { typedef void type; }; +# 62 +template<> struct __nv_isurf_trait< char1> { typedef void type; }; +# 63 +template<> struct __nv_isurf_trait< unsigned char> { typedef void type; }; +# 64 +template<> struct __nv_isurf_trait< uchar1> { typedef void type; }; +# 65 +template<> struct __nv_isurf_trait< short> { typedef void type; }; +# 66 +template<> struct __nv_isurf_trait< short1> { typedef void type; }; +# 67 +template<> struct __nv_isurf_trait< unsigned short> { typedef void type; }; +# 68 +template<> struct __nv_isurf_trait< ushort1> { typedef void type; }; +# 69 +template<> struct __nv_isurf_trait< int> { typedef void type; }; +# 70 +template<> struct __nv_isurf_trait< int1> { typedef void type; }; +# 71 +template<> struct __nv_isurf_trait< unsigned> { typedef void type; }; +# 72 +template<> struct __nv_isurf_trait< uint1> { typedef void type; }; +# 73 +template<> struct __nv_isurf_trait< long long> { typedef void type; }; +# 74 +template<> struct __nv_isurf_trait< longlong1> { typedef void type; }; +# 75 +template<> struct __nv_isurf_trait< unsigned long long> { typedef void type; }; +# 76 +template<> struct __nv_isurf_trait< ulonglong1> { typedef void type; }; +# 77 +template<> struct __nv_isurf_trait< float> { typedef void type; }; +# 78 +template<> struct __nv_isurf_trait< float1> { typedef void type; }; +# 80 +template<> struct __nv_isurf_trait< char2> { typedef void type; }; +# 81 +template<> struct __nv_isurf_trait< uchar2> { typedef void type; }; +# 82 +template<> struct __nv_isurf_trait< short2> { typedef void type; }; +# 83 +template<> struct __nv_isurf_trait< ushort2> { typedef void type; }; +# 84 +template<> struct __nv_isurf_trait< int2> { typedef void type; }; +# 85 +template<> struct __nv_isurf_trait< uint2> { typedef void type; }; +# 86 +template<> struct __nv_isurf_trait< longlong2> { typedef void type; }; +# 87 +template<> struct __nv_isurf_trait< ulonglong2> { typedef void type; }; +# 88 +template<> struct __nv_isurf_trait< float2> { typedef void type; }; +# 90 +template<> struct __nv_isurf_trait< char4> { typedef void type; }; +# 91 +template<> struct __nv_isurf_trait< uchar4> { typedef void type; }; +# 92 +template<> struct __nv_isurf_trait< short4> { typedef void type; }; +# 93 +template<> struct __nv_isurf_trait< ushort4> { typedef void type; }; +# 94 +template<> struct __nv_isurf_trait< int4> { typedef void type; }; +# 95 +template<> struct __nv_isurf_trait< uint4> { typedef void type; }; +# 96 +template<> struct __nv_isurf_trait< float4> { typedef void type; }; +# 99 +template< class T> __attribute__((unused)) static typename __nv_isurf_trait< T> ::type +# 100 +surf1Dread(T *ptr, cudaSurfaceObject_t obj, int x, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 101 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)mode; +# 105 +::exit(___);} +#if 0 +# 101 +{ +# 105 +} +#endif +# 107 "/usr/include/surface_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static T +# 108 +surf1Dread(cudaSurfaceObject_t surfObject, int x, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +# 109 +{int volatile ___ = 1;(void)surfObject;(void)x;(void)boundaryMode; +# 115 +::exit(___);} +#if 0 +# 109 +{ +# 115 +} +#endif +# 117 "/usr/include/surface_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static typename __nv_isurf_trait< T> ::type +# 118 +surf2Dread(T *ptr, cudaSurfaceObject_t obj, int x, int y, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 119 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)mode; +# 123 +::exit(___);} +#if 0 +# 119 +{ +# 123 +} +#endif +# 125 "/usr/include/surface_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static T +# 126 +surf2Dread(cudaSurfaceObject_t surfObject, int x, int y, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +# 127 +{int volatile ___ = 1;(void)surfObject;(void)x;(void)y;(void)boundaryMode; +# 133 +::exit(___);} +#if 0 +# 127 +{ +# 133 +} +#endif +# 136 "/usr/include/surface_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static typename __nv_isurf_trait< T> ::type +# 137 +surf3Dread(T *ptr, cudaSurfaceObject_t obj, int x, int y, int z, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 138 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)z;(void)mode; +# 142 +::exit(___);} +#if 0 +# 138 +{ +# 142 +} +#endif +# 144 "/usr/include/surface_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static T +# 145 +surf3Dread(cudaSurfaceObject_t surfObject, int x, int y, int z, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +# 146 +{int volatile ___ = 1;(void)surfObject;(void)x;(void)y;(void)z;(void)boundaryMode; +# 152 +::exit(___);} +#if 0 +# 146 +{ +# 152 +} +#endif +# 154 "/usr/include/surface_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static typename __nv_isurf_trait< T> ::type +# 155 +surf1DLayeredread(T *ptr, cudaSurfaceObject_t obj, int x, int layer, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 156 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)layer;(void)mode; +# 160 +::exit(___);} +#if 0 +# 156 +{ +# 160 +} +#endif +# 162 "/usr/include/surface_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static T +# 163 +surf1DLayeredread(cudaSurfaceObject_t surfObject, int x, int layer, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +# 164 +{int volatile ___ = 1;(void)surfObject;(void)x;(void)layer;(void)boundaryMode; +# 170 +::exit(___);} +#if 0 +# 164 +{ +# 170 +} +#endif +# 172 "/usr/include/surface_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static typename __nv_isurf_trait< T> ::type +# 173 +surf2DLayeredread(T *ptr, cudaSurfaceObject_t obj, int x, int y, int layer, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 174 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)layer;(void)mode; +# 178 +::exit(___);} +#if 0 +# 174 +{ +# 178 +} +#endif +# 180 "/usr/include/surface_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static T +# 181 +surf2DLayeredread(cudaSurfaceObject_t surfObject, int x, int y, int layer, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +# 182 +{int volatile ___ = 1;(void)surfObject;(void)x;(void)y;(void)layer;(void)boundaryMode; +# 188 +::exit(___);} +#if 0 +# 182 +{ +# 188 +} +#endif +# 190 "/usr/include/surface_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static typename __nv_isurf_trait< T> ::type +# 191 +surfCubemapread(T *ptr, cudaSurfaceObject_t obj, int x, int y, int face, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 192 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)face;(void)mode; +# 196 +::exit(___);} +#if 0 +# 192 +{ +# 196 +} +#endif +# 198 "/usr/include/surface_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static T +# 199 +surfCubemapread(cudaSurfaceObject_t surfObject, int x, int y, int face, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +# 200 +{int volatile ___ = 1;(void)surfObject;(void)x;(void)y;(void)face;(void)boundaryMode; +# 206 +::exit(___);} +#if 0 +# 200 +{ +# 206 +} +#endif +# 208 "/usr/include/surface_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static typename __nv_isurf_trait< T> ::type +# 209 +surfCubemapLayeredread(T *ptr, cudaSurfaceObject_t obj, int x, int y, int layerface, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 210 +{int volatile ___ = 1;(void)ptr;(void)obj;(void)x;(void)y;(void)layerface;(void)mode; +# 214 +::exit(___);} +#if 0 +# 210 +{ +# 214 +} +#endif +# 216 "/usr/include/surface_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static T +# 217 +surfCubemapLayeredread(cudaSurfaceObject_t surfObject, int x, int y, int layerface, cudaSurfaceBoundaryMode boundaryMode = cudaBoundaryModeTrap) +# 218 +{int volatile ___ = 1;(void)surfObject;(void)x;(void)y;(void)layerface;(void)boundaryMode; +# 224 +::exit(___);} +#if 0 +# 218 +{ +# 224 +} +#endif +# 226 "/usr/include/surface_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static typename __nv_isurf_trait< T> ::type +# 227 +surf1Dwrite(T val, cudaSurfaceObject_t obj, int x, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 228 +{int volatile ___ = 1;(void)val;(void)obj;(void)x;(void)mode; +# 232 +::exit(___);} +#if 0 +# 228 +{ +# 232 +} +#endif +# 234 "/usr/include/surface_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static typename __nv_isurf_trait< T> ::type +# 235 +surf2Dwrite(T val, cudaSurfaceObject_t obj, int x, int y, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 236 +{int volatile ___ = 1;(void)val;(void)obj;(void)x;(void)y;(void)mode; +# 240 +::exit(___);} +#if 0 +# 236 +{ +# 240 +} +#endif +# 242 "/usr/include/surface_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static typename __nv_isurf_trait< T> ::type +# 243 +surf3Dwrite(T val, cudaSurfaceObject_t obj, int x, int y, int z, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 244 +{int volatile ___ = 1;(void)val;(void)obj;(void)x;(void)y;(void)z;(void)mode; +# 248 +::exit(___);} +#if 0 +# 244 +{ +# 248 +} +#endif +# 250 "/usr/include/surface_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static typename __nv_isurf_trait< T> ::type +# 251 +surf1DLayeredwrite(T val, cudaSurfaceObject_t obj, int x, int layer, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 252 +{int volatile ___ = 1;(void)val;(void)obj;(void)x;(void)layer;(void)mode; +# 256 +::exit(___);} +#if 0 +# 252 +{ +# 256 +} +#endif +# 258 "/usr/include/surface_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static typename __nv_isurf_trait< T> ::type +# 259 +surf2DLayeredwrite(T val, cudaSurfaceObject_t obj, int x, int y, int layer, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 260 +{int volatile ___ = 1;(void)val;(void)obj;(void)x;(void)y;(void)layer;(void)mode; +# 264 +::exit(___);} +#if 0 +# 260 +{ +# 264 +} +#endif +# 266 "/usr/include/surface_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static typename __nv_isurf_trait< T> ::type +# 267 +surfCubemapwrite(T val, cudaSurfaceObject_t obj, int x, int y, int face, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 268 +{int volatile ___ = 1;(void)val;(void)obj;(void)x;(void)y;(void)face;(void)mode; +# 272 +::exit(___);} +#if 0 +# 268 +{ +# 272 +} +#endif +# 274 "/usr/include/surface_indirect_functions.h" 3 +template< class T> __attribute__((unused)) static typename __nv_isurf_trait< T> ::type +# 275 +surfCubemapLayeredwrite(T val, cudaSurfaceObject_t obj, int x, int y, int layerface, cudaSurfaceBoundaryMode mode = cudaBoundaryModeTrap) +# 276 +{int volatile ___ = 1;(void)val;(void)obj;(void)x;(void)y;(void)layerface;(void)mode; +# 280 +::exit(___);} +#if 0 +# 276 +{ +# 280 +} +#endif +# 3309 "/usr/include/crt/device_functions.h" 3 +extern "C" unsigned __cudaPushCallConfiguration(dim3 gridDim, dim3 blockDim, size_t sharedMem = 0, CUstream_st * stream = 0); +# 68 "/usr/include/device_launch_parameters.h" 3 +extern "C" { +# 71 +extern const uint3 __device_builtin_variable_threadIdx; +# 72 +extern const uint3 __device_builtin_variable_blockIdx; +# 73 +extern const dim3 __device_builtin_variable_blockDim; +# 74 +extern const dim3 __device_builtin_variable_gridDim; +# 75 +extern const int __device_builtin_variable_warpSize; +# 80 +} +# 67 "/usr/include/c++/9/bits/stl_relops.h" 3 +namespace std __attribute((__visibility__("default"))) { +# 71 +namespace rel_ops { +# 85 "/usr/include/c++/9/bits/stl_relops.h" 3 +template< class _Tp> inline bool +# 87 +operator!=(const _Tp &__x, const _Tp &__y) +# 88 +{ return !(__x == __y); } +# 98 "/usr/include/c++/9/bits/stl_relops.h" 3 +template< class _Tp> inline bool +# 100 +operator>(const _Tp &__x, const _Tp &__y) +# 101 +{ return __y < __x; } +# 111 "/usr/include/c++/9/bits/stl_relops.h" 3 +template< class _Tp> inline bool +# 113 +operator<=(const _Tp &__x, const _Tp &__y) +# 114 +{ return !(__y < __x); } +# 124 "/usr/include/c++/9/bits/stl_relops.h" 3 +template< class _Tp> inline bool +# 126 +operator>=(const _Tp &__x, const _Tp &__y) +# 127 +{ return !(__x < __y); } +# 128 +} +# 131 +} +# 36 "/usr/include/c++/9/bits/move.h" 3 +namespace std __attribute((__visibility__("default"))) { +# 45 +template< class _Tp> constexpr _Tp * +# 47 +__addressof(_Tp &__r) noexcept +# 48 +{ return __builtin_addressof(__r); } +# 53 +} +# 40 "/usr/include/c++/9/type_traits" 3 +namespace std __attribute((__visibility__("default"))) { +# 56 "/usr/include/c++/9/type_traits" 3 +template< class _Tp, _Tp __v> +# 57 +struct integral_constant { +# 59 +static constexpr _Tp value = (__v); +# 60 +typedef _Tp value_type; +# 61 +typedef integral_constant type; +# 62 +constexpr operator value_type() const noexcept { return value; } +# 67 +constexpr value_type operator()() const noexcept { return value; } +# 69 +}; +# 71 +template< class _Tp, _Tp __v> constexpr _Tp integral_constant< _Tp, __v> ::value; +# 75 +typedef integral_constant< bool, true> true_type; +# 78 +typedef integral_constant< bool, false> false_type; +# 80 +template< bool __v> using __bool_constant = integral_constant< bool, __v> ; +# 91 "/usr/include/c++/9/type_traits" 3 +template< bool , class , class > struct conditional; +# 94 +template< class ...> struct __or_; +# 98 +template<> struct __or_< > : public false_type { +# 100 +}; +# 102 +template< class _B1> +# 103 +struct __or_< _B1> : public _B1 { +# 105 +}; +# 107 +template< class _B1, class _B2> +# 108 +struct __or_< _B1, _B2> : public conditional< _B1::value, _B1, _B2> ::type { +# 110 +}; +# 112 +template< class _B1, class _B2, class _B3, class ..._Bn> +# 113 +struct __or_< _B1, _B2, _B3, _Bn...> : public conditional< _B1::value, _B1, std::__or_< _B2, _B3, _Bn...> > ::type { +# 115 +}; +# 117 +template< class ...> struct __and_; +# 121 +template<> struct __and_< > : public true_type { +# 123 +}; +# 125 +template< class _B1> +# 126 +struct __and_< _B1> : public _B1 { +# 128 +}; +# 130 +template< class _B1, class _B2> +# 131 +struct __and_< _B1, _B2> : public conditional< _B1::value, _B2, _B1> ::type { +# 133 +}; +# 135 +template< class _B1, class _B2, class _B3, class ..._Bn> +# 136 +struct __and_< _B1, _B2, _B3, _Bn...> : public conditional< _B1::value, std::__and_< _B2, _B3, _Bn...> , _B1> ::type { +# 138 +}; +# 140 +template< class _Pp> +# 141 +struct __not_ : public __bool_constant< !((bool)_Pp::value)> { +# 143 +}; +# 185 "/usr/include/c++/9/type_traits" 3 +template< class _Tp> +# 186 +struct __success_type { +# 187 +typedef _Tp type; }; +# 189 +struct __failure_type { +# 190 +}; +# 194 +template< class > struct remove_cv; +# 197 +template< class > +# 198 +struct __is_void_helper : public false_type { +# 199 +}; +# 202 +template<> struct __is_void_helper< void> : public true_type { +# 203 +}; +# 206 +template< class _Tp> +# 207 +struct is_void : public __is_void_helper< typename remove_cv< _Tp> ::type> ::type { +# 209 +}; +# 211 +template< class > +# 212 +struct __is_integral_helper : public false_type { +# 213 +}; +# 216 +template<> struct __is_integral_helper< bool> : public true_type { +# 217 +}; +# 220 +template<> struct __is_integral_helper< char> : public true_type { +# 221 +}; +# 224 +template<> struct __is_integral_helper< signed char> : public true_type { +# 225 +}; +# 228 +template<> struct __is_integral_helper< unsigned char> : public true_type { +# 229 +}; +# 233 +template<> struct __is_integral_helper< wchar_t> : public true_type { +# 234 +}; +# 244 "/usr/include/c++/9/type_traits" 3 +template<> struct __is_integral_helper< char16_t> : public true_type { +# 245 +}; +# 248 +template<> struct __is_integral_helper< char32_t> : public true_type { +# 249 +}; +# 252 +template<> struct __is_integral_helper< short> : public true_type { +# 253 +}; +# 256 +template<> struct __is_integral_helper< unsigned short> : public true_type { +# 257 +}; +# 260 +template<> struct __is_integral_helper< int> : public true_type { +# 261 +}; +# 264 +template<> struct __is_integral_helper< unsigned> : public true_type { +# 265 +}; +# 268 +template<> struct __is_integral_helper< long> : public true_type { +# 269 +}; +# 272 +template<> struct __is_integral_helper< unsigned long> : public true_type { +# 273 +}; +# 276 +template<> struct __is_integral_helper< long long> : public true_type { +# 277 +}; +# 280 +template<> struct __is_integral_helper< unsigned long long> : public true_type { +# 281 +}; +# 287 +template<> struct __is_integral_helper< __int128> : public true_type { +# 288 +}; +# 291 +template<> struct __is_integral_helper< unsigned __int128> : public true_type { +# 292 +}; +# 323 "/usr/include/c++/9/type_traits" 3 +template< class _Tp> +# 324 +struct is_integral : public __is_integral_helper< typename remove_cv< _Tp> ::type> ::type { +# 326 +}; +# 328 +template< class > +# 329 +struct __is_floating_point_helper : public false_type { +# 330 +}; +# 333 +template<> struct __is_floating_point_helper< float> : public true_type { +# 334 +}; +# 337 +template<> struct __is_floating_point_helper< double> : public true_type { +# 338 +}; +# 341 +template<> struct __is_floating_point_helper< long double> : public true_type { +# 342 +}; +# 351 "/usr/include/c++/9/type_traits" 3 +template< class _Tp> +# 352 +struct is_floating_point : public __is_floating_point_helper< typename remove_cv< _Tp> ::type> ::type { +# 354 +}; +# 357 +template< class > +# 358 +struct is_array : public false_type { +# 359 +}; +# 361 +template< class _Tp, size_t _Size> +# 362 +struct is_array< _Tp [_Size]> : public true_type { +# 363 +}; +# 365 +template< class _Tp> +# 366 +struct is_array< _Tp []> : public true_type { +# 367 +}; +# 369 +template< class > +# 370 +struct __is_pointer_helper : public false_type { +# 371 +}; +# 373 +template< class _Tp> +# 374 +struct __is_pointer_helper< _Tp *> : public true_type { +# 375 +}; +# 378 +template< class _Tp> +# 379 +struct is_pointer : public __is_pointer_helper< typename remove_cv< _Tp> ::type> ::type { +# 381 +}; +# 384 +template< class > +# 385 +struct is_lvalue_reference : public false_type { +# 386 +}; +# 388 +template< class _Tp> +# 389 +struct is_lvalue_reference< _Tp &> : public true_type { +# 390 +}; +# 393 +template< class > +# 394 +struct is_rvalue_reference : public false_type { +# 395 +}; +# 397 +template< class _Tp> +# 398 +struct is_rvalue_reference< _Tp &&> : public true_type { +# 399 +}; +# 401 +template< class > struct is_function; +# 404 +template< class > +# 405 +struct __is_member_object_pointer_helper : public false_type { +# 406 +}; +# 408 +template< class _Tp, class _Cp> +# 409 +struct __is_member_object_pointer_helper< _Tp (_Cp::*)> : public __not_< is_function< _Tp> > ::type { +# 410 +}; +# 413 +template< class _Tp> +# 414 +struct is_member_object_pointer : public __is_member_object_pointer_helper< typename remove_cv< _Tp> ::type> ::type { +# 417 +}; +# 419 +template< class > +# 420 +struct __is_member_function_pointer_helper : public false_type { +# 421 +}; +# 423 +template< class _Tp, class _Cp> +# 424 +struct __is_member_function_pointer_helper< _Tp (_Cp::*)> : public is_function< _Tp> ::type { +# 425 +}; +# 428 +template< class _Tp> +# 429 +struct is_member_function_pointer : public __is_member_function_pointer_helper< typename remove_cv< _Tp> ::type> ::type { +# 432 +}; +# 435 +template< class _Tp> +# 436 +struct is_enum : public integral_constant< bool, __is_enum(_Tp)> { +# 438 +}; +# 441 +template< class _Tp> +# 442 +struct is_union : public integral_constant< bool, __is_union(_Tp)> { +# 444 +}; +# 447 +template< class _Tp> +# 448 +struct is_class : public integral_constant< bool, __is_class(_Tp)> { +# 450 +}; +# 453 +template< class > +# 454 +struct is_function : public false_type { +# 455 +}; +# 457 +template< class _Res, class ..._ArgTypes> +# 458 +struct is_function< _Res (_ArgTypes ...)> : public true_type { +# 459 +}; +# 461 +template< class _Res, class ..._ArgTypes> +# 462 +struct is_function< _Res (_ArgTypes ...) &> : public true_type { +# 463 +}; +# 465 +template< class _Res, class ..._ArgTypes> +# 466 +struct is_function< _Res (_ArgTypes ...) &&> : public true_type { +# 467 +}; +# 469 +template< class _Res, class ..._ArgTypes> +# 470 +struct is_function< _Res (_ArgTypes ..., ...)> : public true_type { +# 471 +}; +# 473 +template< class _Res, class ..._ArgTypes> +# 474 +struct is_function< _Res (_ArgTypes ..., ...) &> : public true_type { +# 475 +}; +# 477 +template< class _Res, class ..._ArgTypes> +# 478 +struct is_function< _Res (_ArgTypes ..., ...) &&> : public true_type { +# 479 +}; +# 481 +template< class _Res, class ..._ArgTypes> +# 482 +struct is_function< _Res (_ArgTypes ...) const> : public true_type { +# 483 +}; +# 485 +template< class _Res, class ..._ArgTypes> +# 486 +struct is_function< _Res (_ArgTypes ...) const &> : public true_type { +# 487 +}; +# 489 +template< class _Res, class ..._ArgTypes> +# 490 +struct is_function< _Res (_ArgTypes ...) const &&> : public true_type { +# 491 +}; +# 493 +template< class _Res, class ..._ArgTypes> +# 494 +struct is_function< _Res (_ArgTypes ..., ...) const> : public true_type { +# 495 +}; +# 497 +template< class _Res, class ..._ArgTypes> +# 498 +struct is_function< _Res (_ArgTypes ..., ...) const &> : public true_type { +# 499 +}; +# 501 +template< class _Res, class ..._ArgTypes> +# 502 +struct is_function< _Res (_ArgTypes ..., ...) const &&> : public true_type { +# 503 +}; +# 505 +template< class _Res, class ..._ArgTypes> +# 506 +struct is_function< _Res (_ArgTypes ...) volatile> : public true_type { +# 507 +}; +# 509 +template< class _Res, class ..._ArgTypes> +# 510 +struct is_function< _Res (_ArgTypes ...) volatile &> : public true_type { +# 511 +}; +# 513 +template< class _Res, class ..._ArgTypes> +# 514 +struct is_function< _Res (_ArgTypes ...) volatile &&> : public true_type { +# 515 +}; +# 517 +template< class _Res, class ..._ArgTypes> +# 518 +struct is_function< _Res (_ArgTypes ..., ...) volatile> : public true_type { +# 519 +}; +# 521 +template< class _Res, class ..._ArgTypes> +# 522 +struct is_function< _Res (_ArgTypes ..., ...) volatile &> : public true_type { +# 523 +}; +# 525 +template< class _Res, class ..._ArgTypes> +# 526 +struct is_function< _Res (_ArgTypes ..., ...) volatile &&> : public true_type { +# 527 +}; +# 529 +template< class _Res, class ..._ArgTypes> +# 530 +struct is_function< _Res (_ArgTypes ...) const volatile> : public true_type { +# 531 +}; +# 533 +template< class _Res, class ..._ArgTypes> +# 534 +struct is_function< _Res (_ArgTypes ...) const volatile &> : public true_type { +# 535 +}; +# 537 +template< class _Res, class ..._ArgTypes> +# 538 +struct is_function< _Res (_ArgTypes ...) const volatile &&> : public true_type { +# 539 +}; +# 541 +template< class _Res, class ..._ArgTypes> +# 542 +struct is_function< _Res (_ArgTypes ..., ...) const volatile> : public true_type { +# 543 +}; +# 545 +template< class _Res, class ..._ArgTypes> +# 546 +struct is_function< _Res (_ArgTypes ..., ...) const volatile &> : public true_type { +# 547 +}; +# 549 +template< class _Res, class ..._ArgTypes> +# 550 +struct is_function< _Res (_ArgTypes ..., ...) const volatile &&> : public true_type { +# 551 +}; +# 555 +template< class > +# 556 +struct __is_null_pointer_helper : public false_type { +# 557 +}; +# 560 +template<> struct __is_null_pointer_helper< nullptr_t> : public true_type { +# 561 +}; +# 564 +template< class _Tp> +# 565 +struct is_null_pointer : public __is_null_pointer_helper< typename remove_cv< _Tp> ::type> ::type { +# 567 +}; +# 570 +template< class _Tp> +# 571 +struct __is_nullptr_t : public is_null_pointer< _Tp> { +# 573 +}; +# 578 +template< class _Tp> +# 579 +struct is_reference : public __or_< is_lvalue_reference< _Tp> , is_rvalue_reference< _Tp> > ::type { +# 582 +}; +# 585 +template< class _Tp> +# 586 +struct is_arithmetic : public __or_< is_integral< _Tp> , is_floating_point< _Tp> > ::type { +# 588 +}; +# 591 +template< class _Tp> +# 592 +struct is_fundamental : public __or_< is_arithmetic< _Tp> , is_void< _Tp> , is_null_pointer< _Tp> > ::type { +# 595 +}; +# 598 +template< class _Tp> +# 599 +struct is_object : public __not_< __or_< is_function< _Tp> , is_reference< _Tp> , is_void< _Tp> > > ::type { +# 602 +}; +# 604 +template< class > struct is_member_pointer; +# 608 +template< class _Tp> +# 609 +struct is_scalar : public __or_< is_arithmetic< _Tp> , is_enum< _Tp> , is_pointer< _Tp> , is_member_pointer< _Tp> , is_null_pointer< _Tp> > ::type { +# 612 +}; +# 615 +template< class _Tp> +# 616 +struct is_compound : public __not_< is_fundamental< _Tp> > ::type { +# 617 +}; +# 619 +template< class _Tp> +# 620 +struct __is_member_pointer_helper : public false_type { +# 621 +}; +# 623 +template< class _Tp, class _Cp> +# 624 +struct __is_member_pointer_helper< _Tp (_Cp::*)> : public true_type { +# 625 +}; +# 628 +template< class _Tp> +# 629 +struct is_member_pointer : public __is_member_pointer_helper< typename remove_cv< _Tp> ::type> ::type { +# 631 +}; +# 635 +template< class _Tp> +# 636 +struct __is_referenceable : public __or_< is_object< _Tp> , is_reference< _Tp> > ::type { +# 638 +}; +# 640 +template< class _Res, class ..._Args> +# 641 +struct __is_referenceable< _Res (_Args ...)> : public true_type { +# 643 +}; +# 645 +template< class _Res, class ..._Args> +# 646 +struct __is_referenceable< _Res (_Args ..., ...)> : public true_type { +# 648 +}; +# 653 +template< class > +# 654 +struct is_const : public false_type { +# 655 +}; +# 657 +template< class _Tp> +# 658 +struct is_const< const _Tp> : public true_type { +# 659 +}; +# 662 +template< class > +# 663 +struct is_volatile : public false_type { +# 664 +}; +# 666 +template< class _Tp> +# 667 +struct is_volatile< volatile _Tp> : public true_type { +# 668 +}; +# 671 +template< class _Tp> +# 672 +struct is_trivial : public integral_constant< bool, __is_trivial(_Tp)> { +# 674 +}; +# 677 +template< class _Tp> +# 678 +struct is_trivially_copyable : public integral_constant< bool, __is_trivially_copyable(_Tp)> { +# 680 +}; +# 683 +template< class _Tp> +# 684 +struct is_standard_layout : public integral_constant< bool, __is_standard_layout(_Tp)> { +# 686 +}; +# 690 +template< class _Tp> +# 691 +struct is_pod : public integral_constant< bool, __is_pod(_Tp)> { +# 693 +}; +# 696 +template< class _Tp> +# 697 +struct is_literal_type : public integral_constant< bool, __is_literal_type(_Tp)> { +# 699 +}; +# 702 +template< class _Tp> +# 703 +struct is_empty : public integral_constant< bool, __is_empty(_Tp)> { +# 705 +}; +# 708 +template< class _Tp> +# 709 +struct is_polymorphic : public integral_constant< bool, __is_polymorphic(_Tp)> { +# 711 +}; +# 716 +template< class _Tp> +# 717 +struct is_final : public integral_constant< bool, __is_final(_Tp)> { +# 719 +}; +# 723 +template< class _Tp> +# 724 +struct is_abstract : public integral_constant< bool, __is_abstract(_Tp)> { +# 726 +}; +# 728 +template< class _Tp, bool +# 729 + = is_arithmetic< _Tp> ::value> +# 730 +struct __is_signed_helper : public false_type { +# 731 +}; +# 733 +template< class _Tp> +# 734 +struct __is_signed_helper< _Tp, true> : public integral_constant< bool, ((_Tp)(-1)) < ((_Tp)0)> { +# 736 +}; +# 739 +template< class _Tp> +# 740 +struct is_signed : public __is_signed_helper< _Tp> ::type { +# 742 +}; +# 745 +template< class _Tp> +# 746 +struct is_unsigned : public __and_< is_arithmetic< _Tp> , __not_< is_signed< _Tp> > > { +# 748 +}; +# 758 "/usr/include/c++/9/type_traits" 3 +template< class _Tp, class _Up = _Tp &&> _Up __declval(int); +# 762 +template< class _Tp> _Tp __declval(long); +# 766 +template< class _Tp> auto declval() noexcept->__decltype((__declval< _Tp> (0))); +# 769 +template< class , unsigned = 0U> struct extent; +# 772 +template< class > struct remove_all_extents; +# 775 +template< class _Tp> +# 776 +struct __is_array_known_bounds : public integral_constant< bool, (extent< _Tp> ::value > 0)> { +# 778 +}; +# 780 +template< class _Tp> +# 781 +struct __is_array_unknown_bounds : public __and_< is_array< _Tp> , __not_< extent< _Tp> > > { +# 783 +}; +# 790 +struct __do_is_destructible_impl { +# 792 +template< class _Tp, class = __decltype((declval< _Tp &> ().~_Tp()))> static true_type __test(int); +# 795 +template< class > static false_type __test(...); +# 797 +}; +# 799 +template< class _Tp> +# 800 +struct __is_destructible_impl : public __do_is_destructible_impl { +# 803 +typedef __decltype((__test< _Tp> (0))) type; +# 804 +}; +# 806 +template< class _Tp, bool +# 807 + = __or_< is_void< _Tp> , __is_array_unknown_bounds< _Tp> , is_function< _Tp> > ::value, bool +# 810 + = __or_< is_reference< _Tp> , is_scalar< _Tp> > ::value> struct __is_destructible_safe; +# 813 +template< class _Tp> +# 814 +struct __is_destructible_safe< _Tp, false, false> : public __is_destructible_impl< typename remove_all_extents< _Tp> ::type> ::type { +# 817 +}; +# 819 +template< class _Tp> +# 820 +struct __is_destructible_safe< _Tp, true, false> : public false_type { +# 821 +}; +# 823 +template< class _Tp> +# 824 +struct __is_destructible_safe< _Tp, false, true> : public true_type { +# 825 +}; +# 828 +template< class _Tp> +# 829 +struct is_destructible : public __is_destructible_safe< _Tp> ::type { +# 831 +}; +# 837 +struct __do_is_nt_destructible_impl { +# 839 +template< class _Tp> static __bool_constant< noexcept(declval< _Tp &> ().~_Tp())> __test(int); +# 843 +template< class > static false_type __test(...); +# 845 +}; +# 847 +template< class _Tp> +# 848 +struct __is_nt_destructible_impl : public __do_is_nt_destructible_impl { +# 851 +typedef __decltype((__test< _Tp> (0))) type; +# 852 +}; +# 854 +template< class _Tp, bool +# 855 + = __or_< is_void< _Tp> , __is_array_unknown_bounds< _Tp> , is_function< _Tp> > ::value, bool +# 858 + = __or_< is_reference< _Tp> , is_scalar< _Tp> > ::value> struct __is_nt_destructible_safe; +# 861 +template< class _Tp> +# 862 +struct __is_nt_destructible_safe< _Tp, false, false> : public __is_nt_destructible_impl< typename remove_all_extents< _Tp> ::type> ::type { +# 865 +}; +# 867 +template< class _Tp> +# 868 +struct __is_nt_destructible_safe< _Tp, true, false> : public false_type { +# 869 +}; +# 871 +template< class _Tp> +# 872 +struct __is_nt_destructible_safe< _Tp, false, true> : public true_type { +# 873 +}; +# 876 +template< class _Tp> +# 877 +struct is_nothrow_destructible : public __is_nt_destructible_safe< _Tp> ::type { +# 879 +}; +# 882 +template< class _Tp, class ..._Args> +# 883 +struct is_constructible : public __bool_constant< __is_constructible(_Tp, _Args...)> { +# 885 +}; +# 888 +template< class _Tp> +# 889 +struct is_default_constructible : public is_constructible< _Tp> ::type { +# 891 +}; +# 893 +template< class _Tp, bool = __is_referenceable< _Tp> ::value> struct __is_copy_constructible_impl; +# 896 +template< class _Tp> +# 897 +struct __is_copy_constructible_impl< _Tp, false> : public false_type { +# 898 +}; +# 900 +template< class _Tp> +# 901 +struct __is_copy_constructible_impl< _Tp, true> : public is_constructible< _Tp, const _Tp &> { +# 903 +}; +# 906 +template< class _Tp> +# 907 +struct is_copy_constructible : public __is_copy_constructible_impl< _Tp> { +# 909 +}; +# 911 +template< class _Tp, bool = __is_referenceable< _Tp> ::value> struct __is_move_constructible_impl; +# 914 +template< class _Tp> +# 915 +struct __is_move_constructible_impl< _Tp, false> : public false_type { +# 916 +}; +# 918 +template< class _Tp> +# 919 +struct __is_move_constructible_impl< _Tp, true> : public is_constructible< _Tp, _Tp &&> { +# 921 +}; +# 924 +template< class _Tp> +# 925 +struct is_move_constructible : public __is_move_constructible_impl< _Tp> { +# 927 +}; +# 929 +template< bool , class _Tp, class ..._Args> +# 930 +struct __is_nt_constructible_impl : public false_type { +# 932 +}; +# 934 +template< class _Tp, class ..._Args> +# 935 +struct __is_nt_constructible_impl< true, _Tp, _Args...> : public __bool_constant< noexcept((_Tp(std::declval< _Args> ()...)))> { +# 937 +}; +# 939 +template< class _Tp, class _Arg> +# 940 +struct __is_nt_constructible_impl< true, _Tp, _Arg> : public __bool_constant< noexcept((static_cast< _Tp>(std::declval< _Arg> ())))> { +# 942 +}; +# 944 +template< class _Tp> +# 945 +struct __is_nt_constructible_impl< true, _Tp> : public __bool_constant< noexcept((_Tp()))> { +# 947 +}; +# 949 +template< class _Tp, size_t _Num> +# 950 +struct __is_nt_constructible_impl< true, _Tp [_Num]> : public __bool_constant< noexcept((typename remove_all_extents< _Tp> ::type()))> { +# 952 +}; +# 954 +template< class _Tp, class ..._Args> using __is_nothrow_constructible_impl = __is_nt_constructible_impl< __is_constructible(_Tp, _Args...), _Tp, _Args...> ; +# 960 +template< class _Tp, class ..._Args> +# 961 +struct is_nothrow_constructible : public __is_nt_constructible_impl< __is_constructible(_Tp, _Args...), _Tp, _Args...> ::type { +# 963 +}; +# 966 +template< class _Tp> +# 967 +struct is_nothrow_default_constructible : public __is_nt_constructible_impl< __is_constructible(_Tp), _Tp> ::type { +# 969 +}; +# 972 +template< class _Tp, bool = __is_referenceable< _Tp> ::value> struct __is_nothrow_copy_constructible_impl; +# 975 +template< class _Tp> +# 976 +struct __is_nothrow_copy_constructible_impl< _Tp, false> : public false_type { +# 977 +}; +# 979 +template< class _Tp> +# 980 +struct __is_nothrow_copy_constructible_impl< _Tp, true> : public is_nothrow_constructible< _Tp, const _Tp &> { +# 982 +}; +# 985 +template< class _Tp> +# 986 +struct is_nothrow_copy_constructible : public __is_nothrow_copy_constructible_impl< _Tp> { +# 988 +}; +# 990 +template< class _Tp, bool = __is_referenceable< _Tp> ::value> struct __is_nothrow_move_constructible_impl; +# 993 +template< class _Tp> +# 994 +struct __is_nothrow_move_constructible_impl< _Tp, false> : public false_type { +# 995 +}; +# 997 +template< class _Tp> +# 998 +struct __is_nothrow_move_constructible_impl< _Tp, true> : public is_nothrow_constructible< _Tp, _Tp &&> { +# 1000 +}; +# 1003 +template< class _Tp> +# 1004 +struct is_nothrow_move_constructible : public __is_nothrow_move_constructible_impl< _Tp> { +# 1006 +}; +# 1009 +template< class _Tp, class _Up> +# 1010 +struct is_assignable : public __bool_constant< __is_assignable(_Tp, _Up)> { +# 1012 +}; +# 1014 +template< class _Tp, bool = __is_referenceable< _Tp> ::value> struct __is_copy_assignable_impl; +# 1017 +template< class _Tp> +# 1018 +struct __is_copy_assignable_impl< _Tp, false> : public false_type { +# 1019 +}; +# 1021 +template< class _Tp> +# 1022 +struct __is_copy_assignable_impl< _Tp, true> : public is_assignable< _Tp &, const _Tp &> { +# 1024 +}; +# 1027 +template< class _Tp> +# 1028 +struct is_copy_assignable : public __is_copy_assignable_impl< _Tp> { +# 1030 +}; +# 1032 +template< class _Tp, bool = __is_referenceable< _Tp> ::value> struct __is_move_assignable_impl; +# 1035 +template< class _Tp> +# 1036 +struct __is_move_assignable_impl< _Tp, false> : public false_type { +# 1037 +}; +# 1039 +template< class _Tp> +# 1040 +struct __is_move_assignable_impl< _Tp, true> : public is_assignable< _Tp &, _Tp &&> { +# 1042 +}; +# 1045 +template< class _Tp> +# 1046 +struct is_move_assignable : public __is_move_assignable_impl< _Tp> { +# 1048 +}; +# 1050 +template< class _Tp, class _Up> +# 1051 +struct __is_nt_assignable_impl : public integral_constant< bool, noexcept((declval< _Tp> () = declval< _Up> ()))> { +# 1053 +}; +# 1056 +template< class _Tp, class _Up> +# 1057 +struct is_nothrow_assignable : public __and_< is_assignable< _Tp, _Up> , __is_nt_assignable_impl< _Tp, _Up> > { +# 1060 +}; +# 1062 +template< class _Tp, bool = __is_referenceable< _Tp> ::value> struct __is_nt_copy_assignable_impl; +# 1065 +template< class _Tp> +# 1066 +struct __is_nt_copy_assignable_impl< _Tp, false> : public false_type { +# 1067 +}; +# 1069 +template< class _Tp> +# 1070 +struct __is_nt_copy_assignable_impl< _Tp, true> : public is_nothrow_assignable< _Tp &, const _Tp &> { +# 1072 +}; +# 1075 +template< class _Tp> +# 1076 +struct is_nothrow_copy_assignable : public __is_nt_copy_assignable_impl< _Tp> { +# 1078 +}; +# 1080 +template< class _Tp, bool = __is_referenceable< _Tp> ::value> struct __is_nt_move_assignable_impl; +# 1083 +template< class _Tp> +# 1084 +struct __is_nt_move_assignable_impl< _Tp, false> : public false_type { +# 1085 +}; +# 1087 +template< class _Tp> +# 1088 +struct __is_nt_move_assignable_impl< _Tp, true> : public is_nothrow_assignable< _Tp &, _Tp &&> { +# 1090 +}; +# 1093 +template< class _Tp> +# 1094 +struct is_nothrow_move_assignable : public __is_nt_move_assignable_impl< _Tp> { +# 1096 +}; +# 1099 +template< class _Tp, class ..._Args> +# 1100 +struct is_trivially_constructible : public __bool_constant< __is_trivially_constructible(_Tp, _Args...)> { +# 1102 +}; +# 1105 +template< class _Tp> +# 1106 +struct is_trivially_default_constructible : public is_trivially_constructible< _Tp> ::type { +# 1108 +}; +# 1110 +struct __do_is_implicitly_default_constructible_impl { +# 1112 +template< class _Tp> static void __helper(const _Tp &); +# 1115 +template< class _Tp> static true_type __test(const _Tp &, __decltype((__helper< const _Tp &> ({}))) * = 0); +# 1119 +static false_type __test(...); +# 1120 +}; +# 1122 +template< class _Tp> +# 1123 +struct __is_implicitly_default_constructible_impl : public __do_is_implicitly_default_constructible_impl { +# 1126 +typedef __decltype((__test(declval< _Tp> ()))) type; +# 1127 +}; +# 1129 +template< class _Tp> +# 1130 +struct __is_implicitly_default_constructible_safe : public __is_implicitly_default_constructible_impl< _Tp> ::type { +# 1132 +}; +# 1134 +template< class _Tp> +# 1135 +struct __is_implicitly_default_constructible : public __and_< is_default_constructible< _Tp> , __is_implicitly_default_constructible_safe< _Tp> > { +# 1138 +}; +# 1142 +template< class _Tp, bool = __is_referenceable< _Tp> ::value> struct __is_trivially_copy_constructible_impl; +# 1145 +template< class _Tp> +# 1146 +struct __is_trivially_copy_constructible_impl< _Tp, false> : public false_type { +# 1147 +}; +# 1149 +template< class _Tp> +# 1150 +struct __is_trivially_copy_constructible_impl< _Tp, true> : public __and_< is_copy_constructible< _Tp> , integral_constant< bool, __is_trivially_constructible(_Tp, const _Tp &)> > { +# 1154 +}; +# 1156 +template< class _Tp> +# 1157 +struct is_trivially_copy_constructible : public __is_trivially_copy_constructible_impl< _Tp> { +# 1159 +}; +# 1163 +template< class _Tp, bool = __is_referenceable< _Tp> ::value> struct __is_trivially_move_constructible_impl; +# 1166 +template< class _Tp> +# 1167 +struct __is_trivially_move_constructible_impl< _Tp, false> : public false_type { +# 1168 +}; +# 1170 +template< class _Tp> +# 1171 +struct __is_trivially_move_constructible_impl< _Tp, true> : public __and_< is_move_constructible< _Tp> , integral_constant< bool, __is_trivially_constructible(_Tp, _Tp &&)> > { +# 1175 +}; +# 1177 +template< class _Tp> +# 1178 +struct is_trivially_move_constructible : public __is_trivially_move_constructible_impl< _Tp> { +# 1180 +}; +# 1183 +template< class _Tp, class _Up> +# 1184 +struct is_trivially_assignable : public __bool_constant< __is_trivially_assignable(_Tp, _Up)> { +# 1186 +}; +# 1190 +template< class _Tp, bool = __is_referenceable< _Tp> ::value> struct __is_trivially_copy_assignable_impl; +# 1193 +template< class _Tp> +# 1194 +struct __is_trivially_copy_assignable_impl< _Tp, false> : public false_type { +# 1195 +}; +# 1197 +template< class _Tp> +# 1198 +struct __is_trivially_copy_assignable_impl< _Tp, true> : public __bool_constant< __is_trivially_assignable(_Tp &, const _Tp &)> { +# 1200 +}; +# 1202 +template< class _Tp> +# 1203 +struct is_trivially_copy_assignable : public __is_trivially_copy_assignable_impl< _Tp> { +# 1205 +}; +# 1209 +template< class _Tp, bool = __is_referenceable< _Tp> ::value> struct __is_trivially_move_assignable_impl; +# 1212 +template< class _Tp> +# 1213 +struct __is_trivially_move_assignable_impl< _Tp, false> : public false_type { +# 1214 +}; +# 1216 +template< class _Tp> +# 1217 +struct __is_trivially_move_assignable_impl< _Tp, true> : public __bool_constant< __is_trivially_assignable(_Tp &, _Tp &&)> { +# 1219 +}; +# 1221 +template< class _Tp> +# 1222 +struct is_trivially_move_assignable : public __is_trivially_move_assignable_impl< _Tp> { +# 1224 +}; +# 1227 +template< class _Tp> +# 1228 +struct is_trivially_destructible : public __and_< is_destructible< _Tp> , __bool_constant< __has_trivial_destructor(_Tp)> > { +# 1231 +}; +# 1235 +template< class _Tp> +# 1236 +struct has_virtual_destructor : public integral_constant< bool, __has_virtual_destructor(_Tp)> { +# 1238 +}; +# 1244 +template< class _Tp> +# 1245 +struct alignment_of : public integral_constant< unsigned long, __alignof__(_Tp)> { +# 1246 +}; +# 1249 +template< class > +# 1250 +struct rank : public integral_constant< unsigned long, 0UL> { +# 1251 +}; +# 1253 +template< class _Tp, size_t _Size> +# 1254 +struct rank< _Tp [_Size]> : public integral_constant< unsigned long, 1 + std::rank< _Tp> ::value> { +# 1255 +}; +# 1257 +template< class _Tp> +# 1258 +struct rank< _Tp []> : public integral_constant< unsigned long, 1 + std::rank< _Tp> ::value> { +# 1259 +}; +# 1262 +template< class , unsigned _Uint> +# 1263 +struct extent : public integral_constant< unsigned long, 0UL> { +# 1264 +}; +# 1266 +template< class _Tp, unsigned _Uint, size_t _Size> +# 1267 +struct extent< _Tp [_Size], _Uint> : public integral_constant< unsigned long, (_Uint == (0)) ? _Size : std::extent< _Tp, _Uint - (1)> ::value> { +# 1271 +}; +# 1273 +template< class _Tp, unsigned _Uint> +# 1274 +struct extent< _Tp [], _Uint> : public integral_constant< unsigned long, (_Uint == (0)) ? 0 : std::extent< _Tp, _Uint - (1)> ::value> { +# 1278 +}; +# 1284 +template< class , class > +# 1285 +struct is_same : public false_type { +# 1286 +}; +# 1288 +template< class _Tp> +# 1289 +struct is_same< _Tp, _Tp> : public true_type { +# 1290 +}; +# 1293 +template< class _Base, class _Derived> +# 1294 +struct is_base_of : public integral_constant< bool, __is_base_of(_Base, _Derived)> { +# 1296 +}; +# 1298 +template< class _From, class _To, bool +# 1299 + = __or_< is_void< _From> , is_function< _To> , is_array< _To> > ::value> +# 1301 +struct __is_convertible_helper { +# 1303 +typedef typename is_void< _To> ::type type; +# 1304 +}; +# 1306 +template< class _From, class _To> +# 1307 +class __is_convertible_helper< _From, _To, false> { +# 1309 +template< class _To1> static void __test_aux(_To1) noexcept; +# 1312 +template< class _From1, class _To1, class +# 1313 + = __decltype((__test_aux< _To1> (std::declval< _From1> ())))> static true_type +# 1312 +__test(int); +# 1317 +template< class , class > static false_type __test(...); +# 1322 +public: typedef __decltype((__test< _From, _To> (0))) type; +# 1323 +}; +# 1327 +template< class _From, class _To> +# 1328 +struct is_convertible : public __is_convertible_helper< _From, _To> ::type { +# 1330 +}; +# 1374 "/usr/include/c++/9/type_traits" 3 +template< class _Tp> +# 1375 +struct remove_const { +# 1376 +typedef _Tp type; }; +# 1378 +template< class _Tp> +# 1379 +struct remove_const< const _Tp> { +# 1380 +typedef _Tp type; }; +# 1383 +template< class _Tp> +# 1384 +struct remove_volatile { +# 1385 +typedef _Tp type; }; +# 1387 +template< class _Tp> +# 1388 +struct remove_volatile< volatile _Tp> { +# 1389 +typedef _Tp type; }; +# 1392 +template< class _Tp> +# 1393 +struct remove_cv { +# 1396 +typedef typename remove_const< typename remove_volatile< _Tp> ::type> ::type type; +# 1397 +}; +# 1400 +template< class _Tp> +# 1401 +struct add_const { +# 1402 +typedef const _Tp type; }; +# 1405 +template< class _Tp> +# 1406 +struct add_volatile { +# 1407 +typedef volatile _Tp type; }; +# 1410 +template< class _Tp> +# 1411 +struct add_cv { +# 1414 +typedef typename add_const< typename add_volatile< _Tp> ::type> ::type type; +# 1415 +}; +# 1422 +template< class _Tp> using remove_const_t = typename remove_const< _Tp> ::type; +# 1426 +template< class _Tp> using remove_volatile_t = typename remove_volatile< _Tp> ::type; +# 1430 +template< class _Tp> using remove_cv_t = typename remove_cv< _Tp> ::type; +# 1434 +template< class _Tp> using add_const_t = typename add_const< _Tp> ::type; +# 1438 +template< class _Tp> using add_volatile_t = typename add_volatile< _Tp> ::type; +# 1442 +template< class _Tp> using add_cv_t = typename add_cv< _Tp> ::type; +# 1449 +template< class _Tp> +# 1450 +struct remove_reference { +# 1451 +typedef _Tp type; }; +# 1453 +template< class _Tp> +# 1454 +struct remove_reference< _Tp &> { +# 1455 +typedef _Tp type; }; +# 1457 +template< class _Tp> +# 1458 +struct remove_reference< _Tp &&> { +# 1459 +typedef _Tp type; }; +# 1461 +template< class _Tp, bool = __is_referenceable< _Tp> ::value> +# 1462 +struct __add_lvalue_reference_helper { +# 1463 +typedef _Tp type; }; +# 1465 +template< class _Tp> +# 1466 +struct __add_lvalue_reference_helper< _Tp, true> { +# 1467 +typedef _Tp &type; }; +# 1470 +template< class _Tp> +# 1471 +struct add_lvalue_reference : public __add_lvalue_reference_helper< _Tp> { +# 1473 +}; +# 1475 +template< class _Tp, bool = __is_referenceable< _Tp> ::value> +# 1476 +struct __add_rvalue_reference_helper { +# 1477 +typedef _Tp type; }; +# 1479 +template< class _Tp> +# 1480 +struct __add_rvalue_reference_helper< _Tp, true> { +# 1481 +typedef _Tp &&type; }; +# 1484 +template< class _Tp> +# 1485 +struct add_rvalue_reference : public __add_rvalue_reference_helper< _Tp> { +# 1487 +}; +# 1491 +template< class _Tp> using remove_reference_t = typename remove_reference< _Tp> ::type; +# 1495 +template< class _Tp> using add_lvalue_reference_t = typename add_lvalue_reference< _Tp> ::type; +# 1499 +template< class _Tp> using add_rvalue_reference_t = typename add_rvalue_reference< _Tp> ::type; +# 1506 +template< class _Unqualified, bool _IsConst, bool _IsVol> struct __cv_selector; +# 1509 +template< class _Unqualified> +# 1510 +struct __cv_selector< _Unqualified, false, false> { +# 1511 +typedef _Unqualified __type; }; +# 1513 +template< class _Unqualified> +# 1514 +struct __cv_selector< _Unqualified, false, true> { +# 1515 +typedef volatile _Unqualified __type; }; +# 1517 +template< class _Unqualified> +# 1518 +struct __cv_selector< _Unqualified, true, false> { +# 1519 +typedef const _Unqualified __type; }; +# 1521 +template< class _Unqualified> +# 1522 +struct __cv_selector< _Unqualified, true, true> { +# 1523 +typedef const volatile _Unqualified __type; }; +# 1525 +template< class _Qualified, class _Unqualified, bool +# 1526 +_IsConst = is_const< _Qualified> ::value, bool +# 1527 +_IsVol = is_volatile< _Qualified> ::value> +# 1528 +class __match_cv_qualifiers { +# 1530 +typedef __cv_selector< _Unqualified, _IsConst, _IsVol> __match; +# 1533 +public: typedef typename __cv_selector< _Unqualified, _IsConst, _IsVol> ::__type __type; +# 1534 +}; +# 1537 +template< class _Tp> +# 1538 +struct __make_unsigned { +# 1539 +typedef _Tp __type; }; +# 1542 +template<> struct __make_unsigned< char> { +# 1543 +typedef unsigned char __type; }; +# 1546 +template<> struct __make_unsigned< signed char> { +# 1547 +typedef unsigned char __type; }; +# 1550 +template<> struct __make_unsigned< short> { +# 1551 +typedef unsigned short __type; }; +# 1554 +template<> struct __make_unsigned< int> { +# 1555 +typedef unsigned __type; }; +# 1558 +template<> struct __make_unsigned< long> { +# 1559 +typedef unsigned long __type; }; +# 1562 +template<> struct __make_unsigned< long long> { +# 1563 +typedef unsigned long long __type; }; +# 1567 +template<> struct __make_unsigned< __int128> { +# 1568 +typedef unsigned __int128 __type; }; +# 1587 "/usr/include/c++/9/type_traits" 3 +template< class _Tp, bool +# 1588 +_IsInt = is_integral< _Tp> ::value, bool +# 1589 +_IsEnum = is_enum< _Tp> ::value> class __make_unsigned_selector; +# 1592 +template< class _Tp> +# 1593 +class __make_unsigned_selector< _Tp, true, false> { +# 1595 +using __unsigned_type = typename __make_unsigned< typename remove_cv< _Tp> ::type> ::__type; +# 1599 +public: using __type = typename __match_cv_qualifiers< _Tp, __unsigned_type> ::__type; +# 1601 +}; +# 1603 +class __make_unsigned_selector_base { +# 1606 +protected: template< class ...> struct _List { }; +# 1608 +template< class _Tp, class ..._Up> +# 1609 +struct _List< _Tp, _Up...> : public __make_unsigned_selector_base::_List< _Up...> { +# 1610 +static constexpr std::size_t __size = sizeof(_Tp); }; +# 1612 +template< size_t _Sz, class _Tp, bool = _Sz <= _Tp::__size> struct __select; +# 1615 +template< size_t _Sz, class _Uint, class ..._UInts> +# 1616 +struct __select< _Sz, _List< _Uint, _UInts...> , true> { +# 1617 +using __type = _Uint; }; +# 1619 +template< size_t _Sz, class _Uint, class ..._UInts> +# 1620 +struct __select< _Sz, _List< _Uint, _UInts...> , false> : public __make_unsigned_selector_base::__select< _Sz, _List< _UInts...> > { +# 1622 +}; +# 1623 +}; +# 1626 +template< class _Tp> +# 1627 +class __make_unsigned_selector< _Tp, false, true> : private __make_unsigned_selector_base { +# 1631 +using _UInts = _List< unsigned char, unsigned short, unsigned, unsigned long, unsigned long long> ; +# 1634 +using __unsigned_type = typename __select< sizeof(_Tp), _List< unsigned char, unsigned short, unsigned, unsigned long, unsigned long long> > ::__type; +# 1637 +public: using __type = typename __match_cv_qualifiers< _Tp, __unsigned_type> ::__type; +# 1639 +}; +# 1647 +template<> struct __make_unsigned< wchar_t> { +# 1649 +using __type = __make_unsigned_selector< wchar_t, false, true> ::__type; +# 1651 +}; +# 1664 "/usr/include/c++/9/type_traits" 3 +template<> struct __make_unsigned< char16_t> { +# 1666 +using __type = __make_unsigned_selector< char16_t, false, true> ::__type; +# 1668 +}; +# 1671 +template<> struct __make_unsigned< char32_t> { +# 1673 +using __type = __make_unsigned_selector< char32_t, false, true> ::__type; +# 1675 +}; +# 1681 +template< class _Tp> +# 1682 +struct make_unsigned { +# 1683 +typedef typename __make_unsigned_selector< _Tp> ::__type type; }; +# 1687 +template<> struct make_unsigned< bool> ; +# 1691 +template< class _Tp> +# 1692 +struct __make_signed { +# 1693 +typedef _Tp __type; }; +# 1696 +template<> struct __make_signed< char> { +# 1697 +typedef signed char __type; }; +# 1700 +template<> struct __make_signed< unsigned char> { +# 1701 +typedef signed char __type; }; +# 1704 +template<> struct __make_signed< unsigned short> { +# 1705 +typedef signed short __type; }; +# 1708 +template<> struct __make_signed< unsigned> { +# 1709 +typedef signed int __type; }; +# 1712 +template<> struct __make_signed< unsigned long> { +# 1713 +typedef signed long __type; }; +# 1716 +template<> struct __make_signed< unsigned long long> { +# 1717 +typedef signed long long __type; }; +# 1721 +template<> struct __make_signed< unsigned __int128> { +# 1722 +typedef __int128 __type; }; +# 1741 "/usr/include/c++/9/type_traits" 3 +template< class _Tp, bool +# 1742 +_IsInt = is_integral< _Tp> ::value, bool +# 1743 +_IsEnum = is_enum< _Tp> ::value> class __make_signed_selector; +# 1746 +template< class _Tp> +# 1747 +class __make_signed_selector< _Tp, true, false> { +# 1749 +using __signed_type = typename __make_signed< typename remove_cv< _Tp> ::type> ::__type; +# 1753 +public: using __type = typename __match_cv_qualifiers< _Tp, __signed_type> ::__type; +# 1755 +}; +# 1758 +template< class _Tp> +# 1759 +class __make_signed_selector< _Tp, false, true> { +# 1761 +typedef typename __make_unsigned_selector< _Tp> ::__type __unsigned_type; +# 1764 +public: typedef typename std::__make_signed_selector< __unsigned_type> ::__type __type; +# 1765 +}; +# 1773 +template<> struct __make_signed< wchar_t> { +# 1775 +using __type = __make_signed_selector< wchar_t, false, true> ::__type; +# 1777 +}; +# 1790 "/usr/include/c++/9/type_traits" 3 +template<> struct __make_signed< char16_t> { +# 1792 +using __type = __make_signed_selector< char16_t, false, true> ::__type; +# 1794 +}; +# 1797 +template<> struct __make_signed< char32_t> { +# 1799 +using __type = __make_signed_selector< char32_t, false, true> ::__type; +# 1801 +}; +# 1807 +template< class _Tp> +# 1808 +struct make_signed { +# 1809 +typedef typename __make_signed_selector< _Tp> ::__type type; }; +# 1813 +template<> struct make_signed< bool> ; +# 1817 +template< class _Tp> using make_signed_t = typename make_signed< _Tp> ::type; +# 1821 +template< class _Tp> using make_unsigned_t = typename make_unsigned< _Tp> ::type; +# 1828 +template< class _Tp> +# 1829 +struct remove_extent { +# 1830 +typedef _Tp type; }; +# 1832 +template< class _Tp, size_t _Size> +# 1833 +struct remove_extent< _Tp [_Size]> { +# 1834 +typedef _Tp type; }; +# 1836 +template< class _Tp> +# 1837 +struct remove_extent< _Tp []> { +# 1838 +typedef _Tp type; }; +# 1841 +template< class _Tp> +# 1842 +struct remove_all_extents { +# 1843 +typedef _Tp type; }; +# 1845 +template< class _Tp, size_t _Size> +# 1846 +struct remove_all_extents< _Tp [_Size]> { +# 1847 +typedef typename std::remove_all_extents< _Tp> ::type type; }; +# 1849 +template< class _Tp> +# 1850 +struct remove_all_extents< _Tp []> { +# 1851 +typedef typename std::remove_all_extents< _Tp> ::type type; }; +# 1855 +template< class _Tp> using remove_extent_t = typename remove_extent< _Tp> ::type; +# 1859 +template< class _Tp> using remove_all_extents_t = typename remove_all_extents< _Tp> ::type; +# 1865 +template< class _Tp, class > +# 1866 +struct __remove_pointer_helper { +# 1867 +typedef _Tp type; }; +# 1869 +template< class _Tp, class _Up> +# 1870 +struct __remove_pointer_helper< _Tp, _Up *> { +# 1871 +typedef _Up type; }; +# 1874 +template< class _Tp> +# 1875 +struct remove_pointer : public __remove_pointer_helper< _Tp, typename remove_cv< _Tp> ::type> { +# 1877 +}; +# 1880 +template< class _Tp, bool = __or_< __is_referenceable< _Tp> , is_void< _Tp> > ::value> +# 1882 +struct __add_pointer_helper { +# 1883 +typedef _Tp type; }; +# 1885 +template< class _Tp> +# 1886 +struct __add_pointer_helper< _Tp, true> { +# 1887 +typedef typename remove_reference< _Tp> ::type *type; }; +# 1889 +template< class _Tp> +# 1890 +struct add_pointer : public __add_pointer_helper< _Tp> { +# 1892 +}; +# 1896 +template< class _Tp> using remove_pointer_t = typename remove_pointer< _Tp> ::type; +# 1900 +template< class _Tp> using add_pointer_t = typename add_pointer< _Tp> ::type; +# 1904 +template< size_t _Len> +# 1905 +struct __aligned_storage_msa { +# 1907 +union __type { +# 1909 +unsigned char __data[_Len]; +# 1910 +struct __attribute((__aligned__)) { } __align; +# 1911 +}; +# 1912 +}; +# 1924 "/usr/include/c++/9/type_traits" 3 +template< size_t _Len, size_t _Align = __alignof__(typename __aligned_storage_msa< _Len> ::__type)> +# 1926 +struct aligned_storage { +# 1928 +union type { +# 1930 +unsigned char __data[_Len]; +# 1931 +struct __attribute((__aligned__(_Align))) { } __align; +# 1932 +}; +# 1933 +}; +# 1935 +template< class ..._Types> +# 1936 +struct __strictest_alignment { +# 1938 +static const size_t _S_alignment = (0); +# 1939 +static const size_t _S_size = (0); +# 1940 +}; +# 1942 +template< class _Tp, class ..._Types> +# 1943 +struct __strictest_alignment< _Tp, _Types...> { +# 1945 +static const size_t _S_alignment = ((__alignof__(_Tp) > __strictest_alignment< _Types...> ::_S_alignment) ? __alignof__(_Tp) : __strictest_alignment< _Types...> ::_S_alignment); +# 1948 +static const size_t _S_size = ((sizeof(_Tp) > __strictest_alignment< _Types...> ::_S_size) ? sizeof(_Tp) : __strictest_alignment< _Types...> ::_S_size); +# 1951 +}; +# 1963 "/usr/include/c++/9/type_traits" 3 +template< size_t _Len, class ..._Types> +# 1964 +struct aligned_union { +# 1967 +static_assert((sizeof...(_Types) != (0)), "At least one type is required"); +# 1969 +private: using __strictest = __strictest_alignment< _Types...> ; +# 1970 +static const size_t _S_len = ((_Len > __strictest::_S_size) ? _Len : __strictest::_S_size); +# 1974 +public: static const size_t alignment_value = (__strictest::_S_alignment); +# 1976 +typedef typename aligned_storage< _S_len, alignment_value> ::type type; +# 1977 +}; +# 1979 +template< size_t _Len, class ..._Types> const size_t aligned_union< _Len, _Types...> ::alignment_value; +# 1984 +template< class _Up, bool +# 1985 +_IsArray = is_array< _Up> ::value, bool +# 1986 +_IsFunction = is_function< _Up> ::value> struct __decay_selector; +# 1990 +template< class _Up> +# 1991 +struct __decay_selector< _Up, false, false> { +# 1992 +typedef typename remove_cv< _Up> ::type __type; }; +# 1994 +template< class _Up> +# 1995 +struct __decay_selector< _Up, true, false> { +# 1996 +typedef typename remove_extent< _Up> ::type *__type; }; +# 1998 +template< class _Up> +# 1999 +struct __decay_selector< _Up, false, true> { +# 2000 +typedef typename add_pointer< _Up> ::type __type; }; +# 2003 +template< class _Tp> +# 2004 +class decay { +# 2006 +typedef typename remove_reference< _Tp> ::type __remove_type; +# 2009 +public: typedef typename __decay_selector< __remove_type> ::__type type; +# 2010 +}; +# 2012 +template< class _Tp> class reference_wrapper; +# 2016 +template< class _Tp> +# 2017 +struct __strip_reference_wrapper { +# 2019 +typedef _Tp __type; +# 2020 +}; +# 2022 +template< class _Tp> +# 2023 +struct __strip_reference_wrapper< reference_wrapper< _Tp> > { +# 2025 +typedef _Tp &__type; +# 2026 +}; +# 2028 +template< class _Tp> +# 2029 +struct __decay_and_strip { +# 2032 +typedef typename __strip_reference_wrapper< typename decay< _Tp> ::type> ::__type __type; +# 2033 +}; +# 2038 +template< bool , class _Tp = void> +# 2039 +struct enable_if { +# 2040 +}; +# 2043 +template< class _Tp> +# 2044 +struct enable_if< true, _Tp> { +# 2045 +typedef _Tp type; }; +# 2047 +template< class ..._Cond> using _Require = typename enable_if< __and_< _Cond...> ::value> ::type; +# 2052 +template< bool _Cond, class _Iftrue, class _Iffalse> +# 2053 +struct conditional { +# 2054 +typedef _Iftrue type; }; +# 2057 +template< class _Iftrue, class _Iffalse> +# 2058 +struct conditional< false, _Iftrue, _Iffalse> { +# 2059 +typedef _Iffalse type; }; +# 2062 +template< class ..._Tp> struct common_type; +# 2067 +struct __do_common_type_impl { +# 2069 +template< class _Tp, class _Up> static __success_type< typename decay< __decltype((true ? std::declval< _Tp> () : std::declval< _Up> ()))> ::type> _S_test(int); +# 2074 +template< class , class > static __failure_type _S_test(...); +# 2076 +}; +# 2078 +template< class _Tp, class _Up> +# 2079 +struct __common_type_impl : private __do_common_type_impl { +# 2082 +typedef __decltype((_S_test< _Tp, _Up> (0))) type; +# 2083 +}; +# 2085 +struct __do_member_type_wrapper { +# 2087 +template< class _Tp> static __success_type< typename _Tp::type> _S_test(int); +# 2090 +template< class > static __failure_type _S_test(...); +# 2092 +}; +# 2094 +template< class _Tp> +# 2095 +struct __member_type_wrapper : private __do_member_type_wrapper { +# 2098 +typedef __decltype((_S_test< _Tp> (0))) type; +# 2099 +}; +# 2101 +template< class _CTp, class ..._Args> +# 2102 +struct __expanded_common_type_wrapper { +# 2104 +typedef common_type< typename _CTp::type, _Args...> type; +# 2105 +}; +# 2107 +template< class ..._Args> +# 2108 +struct __expanded_common_type_wrapper< __failure_type, _Args...> { +# 2109 +typedef __failure_type type; }; +# 2112 +template<> struct common_type< > { +# 2113 +}; +# 2115 +template< class _Tp> +# 2116 +struct common_type< _Tp> : public std::common_type< _Tp, _Tp> { +# 2118 +}; +# 2120 +template< class _Tp, class _Up> +# 2121 +struct common_type< _Tp, _Up> : public __common_type_impl< _Tp, _Up> ::type { +# 2123 +}; +# 2125 +template< class _Tp, class _Up, class ..._Vp> +# 2126 +struct common_type< _Tp, _Up, _Vp...> : public __expanded_common_type_wrapper< typename __member_type_wrapper< std::common_type< _Tp, _Up> > ::type, _Vp...> ::type { +# 2129 +}; +# 2131 +template< class _Tp, bool = is_enum< _Tp> ::value> +# 2132 +struct __underlying_type_impl { +# 2134 +using type = __underlying_type(_Tp); +# 2135 +}; +# 2137 +template< class _Tp> +# 2138 +struct __underlying_type_impl< _Tp, false> { +# 2139 +}; +# 2142 +template< class _Tp> +# 2143 +struct underlying_type : public __underlying_type_impl< _Tp> { +# 2145 +}; +# 2147 +template< class _Tp> +# 2148 +struct __declval_protector { +# 2150 +static const bool __stop = false; +# 2151 +}; +# 2153 +template< class _Tp> auto +# 2154 +declval() noexcept->__decltype((__declval< _Tp> (0))) +# 2155 +{ +# 2156 +static_assert((__declval_protector< _Tp> ::__stop), "declval() must not be used!"); +# 2158 +return __declval< _Tp> (0); +# 2159 +} +# 2162 +template< class _Tp> using __remove_cvref_t = typename remove_cv< typename remove_reference< _Tp> ::type> ::type; +# 2167 +template< class _Signature> class result_of; +# 2174 +struct __invoke_memfun_ref { }; +# 2175 +struct __invoke_memfun_deref { }; +# 2176 +struct __invoke_memobj_ref { }; +# 2177 +struct __invoke_memobj_deref { }; +# 2178 +struct __invoke_other { }; +# 2181 +template< class _Tp, class _Tag> +# 2182 +struct __result_of_success : public __success_type< _Tp> { +# 2183 +using __invoke_type = _Tag; }; +# 2186 +struct __result_of_memfun_ref_impl { +# 2188 +template< class _Fp, class _Tp1, class ..._Args> static __result_of_success< __decltype(((std::declval< _Tp1> ().*std::declval< _Fp> ())(std::declval< _Args> ()...))), __invoke_memfun_ref> _S_test(int); +# 2193 +template< class ...> static __failure_type _S_test(...); +# 2195 +}; +# 2197 +template< class _MemPtr, class _Arg, class ..._Args> +# 2198 +struct __result_of_memfun_ref : private __result_of_memfun_ref_impl { +# 2201 +typedef __decltype((_S_test< _MemPtr, _Arg, _Args...> (0))) type; +# 2202 +}; +# 2205 +struct __result_of_memfun_deref_impl { +# 2207 +template< class _Fp, class _Tp1, class ..._Args> static __result_of_success< __decltype((((*std::declval< _Tp1> ()).*std::declval< _Fp> ())(std::declval< _Args> ()...))), __invoke_memfun_deref> _S_test(int); +# 2212 +template< class ...> static __failure_type _S_test(...); +# 2214 +}; +# 2216 +template< class _MemPtr, class _Arg, class ..._Args> +# 2217 +struct __result_of_memfun_deref : private __result_of_memfun_deref_impl { +# 2220 +typedef __decltype((_S_test< _MemPtr, _Arg, _Args...> (0))) type; +# 2221 +}; +# 2224 +struct __result_of_memobj_ref_impl { +# 2226 +template< class _Fp, class _Tp1> static __result_of_success< __decltype((std::declval< _Tp1> ().*std::declval< _Fp> ())), __invoke_memobj_ref> _S_test(int); +# 2231 +template< class , class > static __failure_type _S_test(...); +# 2233 +}; +# 2235 +template< class _MemPtr, class _Arg> +# 2236 +struct __result_of_memobj_ref : private __result_of_memobj_ref_impl { +# 2239 +typedef __decltype((_S_test< _MemPtr, _Arg> (0))) type; +# 2240 +}; +# 2243 +struct __result_of_memobj_deref_impl { +# 2245 +template< class _Fp, class _Tp1> static __result_of_success< __decltype(((*std::declval< _Tp1> ()).*std::declval< _Fp> ())), __invoke_memobj_deref> _S_test(int); +# 2250 +template< class , class > static __failure_type _S_test(...); +# 2252 +}; +# 2254 +template< class _MemPtr, class _Arg> +# 2255 +struct __result_of_memobj_deref : private __result_of_memobj_deref_impl { +# 2258 +typedef __decltype((_S_test< _MemPtr, _Arg> (0))) type; +# 2259 +}; +# 2261 +template< class _MemPtr, class _Arg> struct __result_of_memobj; +# 2264 +template< class _Res, class _Class, class _Arg> +# 2265 +struct __result_of_memobj< _Res (_Class::*), _Arg> { +# 2267 +typedef __remove_cvref_t< _Arg> _Argval; +# 2268 +typedef _Res (_Class::*_MemPtr); +# 2273 +typedef typename conditional< __or_< is_same< _Argval, _Class> , is_base_of< _Class, _Argval> > ::value, __result_of_memobj_ref< _MemPtr, _Arg> , __result_of_memobj_deref< _MemPtr, _Arg> > ::type::type type; +# 2274 +}; +# 2276 +template< class _MemPtr, class _Arg, class ..._Args> struct __result_of_memfun; +# 2279 +template< class _Res, class _Class, class _Arg, class ..._Args> +# 2280 +struct __result_of_memfun< _Res (_Class::*), _Arg, _Args...> { +# 2282 +typedef typename remove_reference< _Arg> ::type _Argval; +# 2283 +typedef _Res (_Class::*_MemPtr); +# 2287 +typedef typename conditional< is_base_of< _Class, _Argval> ::value, __result_of_memfun_ref< _MemPtr, _Arg, _Args...> , __result_of_memfun_deref< _MemPtr, _Arg, _Args...> > ::type::type type; +# 2288 +}; +# 2295 +template< class _Tp, class _Up = __remove_cvref_t< _Tp> > +# 2296 +struct __inv_unwrap { +# 2298 +using type = _Tp; +# 2299 +}; +# 2301 +template< class _Tp, class _Up> +# 2302 +struct __inv_unwrap< _Tp, reference_wrapper< _Up> > { +# 2304 +using type = _Up &; +# 2305 +}; +# 2307 +template< bool , bool , class _Functor, class ..._ArgTypes> +# 2308 +struct __result_of_impl { +# 2310 +typedef __failure_type type; +# 2311 +}; +# 2313 +template< class _MemPtr, class _Arg> +# 2314 +struct __result_of_impl< true, false, _MemPtr, _Arg> : public __result_of_memobj< typename decay< _MemPtr> ::type, typename __inv_unwrap< _Arg> ::type> { +# 2317 +}; +# 2319 +template< class _MemPtr, class _Arg, class ..._Args> +# 2320 +struct __result_of_impl< false, true, _MemPtr, _Arg, _Args...> : public __result_of_memfun< typename decay< _MemPtr> ::type, typename __inv_unwrap< _Arg> ::type, _Args...> { +# 2323 +}; +# 2326 +struct __result_of_other_impl { +# 2328 +template< class _Fn, class ..._Args> static __result_of_success< __decltype((std::declval< _Fn> ()(std::declval< _Args> ()...))), __invoke_other> _S_test(int); +# 2333 +template< class ...> static __failure_type _S_test(...); +# 2335 +}; +# 2337 +template< class _Functor, class ..._ArgTypes> +# 2338 +struct __result_of_impl< false, false, _Functor, _ArgTypes...> : private __result_of_other_impl { +# 2341 +typedef __decltype((_S_test< _Functor, _ArgTypes...> (0))) type; +# 2342 +}; +# 2345 +template< class _Functor, class ..._ArgTypes> +# 2346 +struct __invoke_result : public __result_of_impl< is_member_object_pointer< typename remove_reference< _Functor> ::type> ::value, is_member_function_pointer< typename remove_reference< _Functor> ::type> ::value, _Functor, _ArgTypes...> ::type { +# 2356 +}; +# 2358 +template< class _Functor, class ..._ArgTypes> +# 2359 +struct result_of< _Functor (_ArgTypes ...)> : public __invoke_result< _Functor, _ArgTypes...> { +# 2361 +}; +# 2365 +template< size_t _Len, size_t _Align = __alignof__(typename __aligned_storage_msa< _Len> ::__type)> using aligned_storage_t = typename aligned_storage< _Len, _Align> ::type; +# 2369 +template< size_t _Len, class ..._Types> using aligned_union_t = typename aligned_union< _Len, _Types...> ::type; +# 2373 +template< class _Tp> using decay_t = typename decay< _Tp> ::type; +# 2377 +template< bool _Cond, class _Tp = void> using enable_if_t = typename enable_if< _Cond, _Tp> ::type; +# 2381 +template< bool _Cond, class _Iftrue, class _Iffalse> using conditional_t = typename conditional< _Cond, _Iftrue, _Iffalse> ::type; +# 2385 +template< class ..._Tp> using common_type_t = typename common_type< _Tp...> ::type; +# 2389 +template< class _Tp> using underlying_type_t = typename underlying_type< _Tp> ::type; +# 2393 +template< class _Tp> using result_of_t = typename result_of< _Tp> ::type; +# 2398 +template< bool _Cond, class _Tp = void> using __enable_if_t = typename enable_if< _Cond, _Tp> ::type; +# 2402 +template< class ...> using __void_t = void; +# 2407 +template< class ...> using void_t = void; +# 2411 +template< class _Default, class _AlwaysVoid, +# 2412 +template< class ...> class _Op, class ..._Args> +# 2413 +struct __detector { +# 2415 +using value_t = false_type; +# 2416 +using type = _Default; +# 2417 +}; +# 2420 +template< class _Default, template< class ...> class _Op, class ... +# 2421 +_Args> +# 2422 +struct __detector< _Default, __void_t< _Op< _Args...> > , _Op, _Args...> { +# 2424 +using value_t = true_type; +# 2425 +using type = _Op< _Args...> ; +# 2426 +}; +# 2429 +template< class _Default, template< class ...> class _Op, class ... +# 2430 +_Args> using __detected_or = __detector< _Default, void, _Op, _Args...> ; +# 2434 +template< class _Default, template< class ...> class _Op, class ... +# 2435 +_Args> using __detected_or_t = typename __detector< _Default, void, _Op, _Args...> ::type; +# 2455 "/usr/include/c++/9/type_traits" 3 +template< class _Tp> struct __is_swappable; +# 2458 +template< class _Tp> struct __is_nothrow_swappable; +# 2461 +template< class ..._Elements> class tuple; +# 2464 +template< class > +# 2465 +struct __is_tuple_like_impl : public false_type { +# 2466 +}; +# 2468 +template< class ..._Tps> +# 2469 +struct __is_tuple_like_impl< tuple< _Tps...> > : public true_type { +# 2470 +}; +# 2473 +template< class _Tp> +# 2474 +struct __is_tuple_like : public __is_tuple_like_impl< __remove_cvref_t< _Tp> > ::type { +# 2476 +}; +# 2478 +template< class _Tp> inline typename enable_if< __and_< __not_< __is_tuple_like< _Tp> > , is_move_constructible< _Tp> , is_move_assignable< _Tp> > ::value> ::type swap(_Tp &, _Tp &) noexcept(__and_< is_nothrow_move_constructible< _Tp> , is_nothrow_move_assignable< _Tp> > ::value); +# 2487 +template< class _Tp, size_t _Nm> inline typename enable_if< __is_swappable< _Tp> ::value> ::type swap(_Tp (& __a)[_Nm], _Tp (& __b)[_Nm]) noexcept(__is_nothrow_swappable< _Tp> ::value); +# 2493 +namespace __swappable_details { +# 2494 +using std::swap; +# 2496 +struct __do_is_swappable_impl { +# 2498 +template< class _Tp, class +# 2499 + = __decltype((swap(std::declval< _Tp &> (), std::declval< _Tp &> ())))> static true_type +# 2498 +__test(int); +# 2502 +template< class > static false_type __test(...); +# 2504 +}; +# 2506 +struct __do_is_nothrow_swappable_impl { +# 2508 +template< class _Tp> static __bool_constant< noexcept(swap(std::declval< _Tp &> (), std::declval< _Tp &> ()))> __test(int); +# 2513 +template< class > static false_type __test(...); +# 2515 +}; +# 2517 +} +# 2519 +template< class _Tp> +# 2520 +struct __is_swappable_impl : public __swappable_details::__do_is_swappable_impl { +# 2523 +typedef __decltype((__test< _Tp> (0))) type; +# 2524 +}; +# 2526 +template< class _Tp> +# 2527 +struct __is_nothrow_swappable_impl : public __swappable_details::__do_is_nothrow_swappable_impl { +# 2530 +typedef __decltype((__test< _Tp> (0))) type; +# 2531 +}; +# 2533 +template< class _Tp> +# 2534 +struct __is_swappable : public __is_swappable_impl< _Tp> ::type { +# 2536 +}; +# 2538 +template< class _Tp> +# 2539 +struct __is_nothrow_swappable : public __is_nothrow_swappable_impl< _Tp> ::type { +# 2541 +}; +# 2548 +template< class _Tp> +# 2549 +struct is_swappable : public __is_swappable_impl< _Tp> ::type { +# 2551 +}; +# 2554 +template< class _Tp> +# 2555 +struct is_nothrow_swappable : public __is_nothrow_swappable_impl< _Tp> ::type { +# 2557 +}; +# 2561 +template< class _Tp> constexpr bool +# 2562 +is_swappable_v = (is_swappable< _Tp> ::value); +# 2566 +template< class _Tp> constexpr bool +# 2567 +is_nothrow_swappable_v = (is_nothrow_swappable< _Tp> ::value); +# 2571 +namespace __swappable_with_details { +# 2572 +using std::swap; +# 2574 +struct __do_is_swappable_with_impl { +# 2576 +template< class _Tp, class _Up, class +# 2577 + = __decltype((swap(std::declval< _Tp> (), std::declval< _Up> ()))), class +# 2579 + = __decltype((swap(std::declval< _Up> (), std::declval< _Tp> ())))> static true_type +# 2576 +__test(int); +# 2582 +template< class , class > static false_type __test(...); +# 2584 +}; +# 2586 +struct __do_is_nothrow_swappable_with_impl { +# 2588 +template< class _Tp, class _Up> static __bool_constant< noexcept(swap(std::declval< _Tp> (), std::declval< _Up> ())) && noexcept(swap(std::declval< _Up> (), std::declval< _Tp> ()))> __test(int); +# 2595 +template< class , class > static false_type __test(...); +# 2597 +}; +# 2599 +} +# 2601 +template< class _Tp, class _Up> +# 2602 +struct __is_swappable_with_impl : public __swappable_with_details::__do_is_swappable_with_impl { +# 2605 +typedef __decltype((__test< _Tp, _Up> (0))) type; +# 2606 +}; +# 2609 +template< class _Tp> +# 2610 +struct __is_swappable_with_impl< _Tp &, _Tp &> : public __swappable_details::__do_is_swappable_impl { +# 2613 +typedef __decltype((__test< _Tp &> (0))) type; +# 2614 +}; +# 2616 +template< class _Tp, class _Up> +# 2617 +struct __is_nothrow_swappable_with_impl : public __swappable_with_details::__do_is_nothrow_swappable_with_impl { +# 2620 +typedef __decltype((__test< _Tp, _Up> (0))) type; +# 2621 +}; +# 2624 +template< class _Tp> +# 2625 +struct __is_nothrow_swappable_with_impl< _Tp &, _Tp &> : public __swappable_details::__do_is_nothrow_swappable_impl { +# 2628 +typedef __decltype((__test< _Tp &> (0))) type; +# 2629 +}; +# 2632 +template< class _Tp, class _Up> +# 2633 +struct is_swappable_with : public __is_swappable_with_impl< _Tp, _Up> ::type { +# 2635 +}; +# 2638 +template< class _Tp, class _Up> +# 2639 +struct is_nothrow_swappable_with : public __is_nothrow_swappable_with_impl< _Tp, _Up> ::type { +# 2641 +}; +# 2645 +template< class _Tp, class _Up> constexpr bool +# 2646 +is_swappable_with_v = (is_swappable_with< _Tp, _Up> ::value); +# 2650 +template< class _Tp, class _Up> constexpr bool +# 2651 +is_nothrow_swappable_with_v = (is_nothrow_swappable_with< _Tp, _Up> ::value); +# 2660 +template< class _Result, class _Ret, bool +# 2661 + = is_void< _Ret> ::value, class = void> +# 2662 +struct __is_invocable_impl : public false_type { }; +# 2665 +template< class _Result, class _Ret> +# 2666 +struct __is_invocable_impl< _Result, _Ret, true, __void_t< typename _Result::type> > : public true_type { +# 2670 +}; +# 2672 +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wctor-dtor-privacy" +# 2675 +template< class _Result, class _Ret> +# 2676 +struct __is_invocable_impl< _Result, _Ret, false, __void_t< typename _Result::type> > { +# 2683 +private: static typename _Result::type _S_get(); +# 2685 +template< class _Tp> static void _S_conv(_Tp); +# 2689 +template< class _Tp, class = __decltype((_S_conv< _Tp> ((_S_get)())))> static true_type _S_test(int); +# 2693 +template< class _Tp> static false_type _S_test(...); +# 2698 +public: using type = __decltype((_S_test< _Ret> (1))); +# 2699 +}; +#pragma GCC diagnostic pop +# 2702 +template< class _Fn, class ..._ArgTypes> +# 2703 +struct __is_invocable : public __is_invocable_impl< __invoke_result< _Fn, _ArgTypes...> , void> ::type { +# 2705 +}; +# 2707 +template< class _Fn, class _Tp, class ..._Args> constexpr bool +# 2708 +__call_is_nt(__invoke_memfun_ref) +# 2709 +{ +# 2710 +using _Up = typename __inv_unwrap< _Tp> ::type; +# 2711 +return noexcept((std::declval< typename __inv_unwrap< _Tp> ::type> ().*std::declval< _Fn> ())(std::declval< _Args> ()...)); +# 2713 +} +# 2715 +template< class _Fn, class _Tp, class ..._Args> constexpr bool +# 2716 +__call_is_nt(__invoke_memfun_deref) +# 2717 +{ +# 2718 +return noexcept(((*std::declval< _Tp> ()).*std::declval< _Fn> ())(std::declval< _Args> ()...)); +# 2720 +} +# 2722 +template< class _Fn, class _Tp> constexpr bool +# 2723 +__call_is_nt(__invoke_memobj_ref) +# 2724 +{ +# 2725 +using _Up = typename __inv_unwrap< _Tp> ::type; +# 2726 +return noexcept((std::declval< typename __inv_unwrap< _Tp> ::type> ().*std::declval< _Fn> ())); +# 2727 +} +# 2729 +template< class _Fn, class _Tp> constexpr bool +# 2730 +__call_is_nt(__invoke_memobj_deref) +# 2731 +{ +# 2732 +return noexcept(((*std::declval< _Tp> ()).*std::declval< _Fn> ())); +# 2733 +} +# 2735 +template< class _Fn, class ..._Args> constexpr bool +# 2736 +__call_is_nt(__invoke_other) +# 2737 +{ +# 2738 +return noexcept(std::declval< _Fn> ()(std::declval< _Args> ()...)); +# 2739 +} +# 2741 +template< class _Result, class _Fn, class ..._Args> +# 2742 +struct __call_is_nothrow : public __bool_constant< std::__call_is_nt< _Fn, _Args...> (typename _Result::__invoke_type{})> { +# 2746 +}; +# 2748 +template< class _Fn, class ..._Args> using __call_is_nothrow_ = __call_is_nothrow< __invoke_result< _Fn, _Args...> , _Fn, _Args...> ; +# 2753 +template< class _Fn, class ..._Args> +# 2754 +struct __is_nothrow_invocable : public __and_< __is_invocable< _Fn, _Args...> , __call_is_nothrow_< _Fn, _Args...> > ::type { +# 2757 +}; +# 2759 +struct __nonesuch { +# 2760 +__nonesuch() = delete; +# 2761 +~__nonesuch() = delete; +# 2762 +__nonesuch(const __nonesuch &) = delete; +# 2763 +void operator=(const __nonesuch &) = delete; +# 2764 +}; +# 3097 "/usr/include/c++/9/type_traits" 3 +} +# 57 "/usr/include/c++/9/bits/move.h" 3 +namespace std __attribute((__visibility__("default"))) { +# 72 "/usr/include/c++/9/bits/move.h" 3 +template< class _Tp> constexpr _Tp && +# 74 +forward(typename remove_reference< _Tp> ::type &__t) noexcept +# 75 +{ return static_cast< _Tp &&>(__t); } +# 83 +template< class _Tp> constexpr _Tp && +# 85 +forward(typename remove_reference< _Tp> ::type &&__t) noexcept +# 86 +{ +# 87 +static_assert((!std::template is_lvalue_reference< _Tp> ::value), "template argument substituting _Tp is an lvalue reference type"); +# 89 +return static_cast< _Tp &&>(__t); +# 90 +} +# 97 +template< class _Tp> constexpr typename remove_reference< _Tp> ::type && +# 99 +move(_Tp &&__t) noexcept +# 100 +{ return static_cast< typename remove_reference< _Tp> ::type &&>(__t); } +# 103 +template< class _Tp> +# 104 +struct __move_if_noexcept_cond : public __and_< __not_< is_nothrow_move_constructible< _Tp> > , is_copy_constructible< _Tp> > ::type { +# 106 +}; +# 116 "/usr/include/c++/9/bits/move.h" 3 +template< class _Tp> constexpr typename conditional< __move_if_noexcept_cond< _Tp> ::value, const _Tp &, _Tp &&> ::type +# 119 +move_if_noexcept(_Tp &__x) noexcept +# 120 +{ return std::move(__x); } +# 136 "/usr/include/c++/9/bits/move.h" 3 +template< class _Tp> inline _Tp * +# 138 +addressof(_Tp &__r) noexcept +# 139 +{ return std::__addressof(__r); } +# 143 +template < typename _Tp > + const _Tp * addressof ( const _Tp && ) = delete; +# 147 +template< class _Tp, class _Up = _Tp> inline _Tp +# 149 +__exchange(_Tp &__obj, _Up &&__new_val) +# 150 +{ +# 151 +_Tp __old_val = std::move(__obj); +# 152 +__obj = std::forward< _Up> (__new_val); +# 153 +return __old_val; +# 154 +} +# 176 "/usr/include/c++/9/bits/move.h" 3 +template< class _Tp> inline typename enable_if< __and_< __not_< __is_tuple_like< _Tp> > , is_move_constructible< _Tp> , is_move_assignable< _Tp> > ::value> ::type +# 182 +swap(_Tp &__a, _Tp &__b) noexcept(__and_< is_nothrow_move_constructible< _Tp> , is_nothrow_move_assignable< _Tp> > ::value) +# 189 +{ +# 193 +_Tp __tmp = std::move(__a); +# 194 +__a = std::move(__b); +# 195 +__b = std::move(__tmp); +# 196 +} +# 201 +template< class _Tp, size_t _Nm> inline typename enable_if< __is_swappable< _Tp> ::value> ::type +# 205 +swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm]) noexcept(__is_nothrow_swappable< _Tp> ::value) +# 211 +{ +# 212 +for (size_t __n = (0); __n < _Nm; ++__n) { +# 213 +swap(__a[__n], __b[__n]); } +# 214 +} +# 218 +} +# 65 "/usr/include/c++/9/bits/stl_pair.h" 3 +namespace std __attribute((__visibility__("default"))) { +# 76 "/usr/include/c++/9/bits/stl_pair.h" 3 +struct piecewise_construct_t { explicit piecewise_construct_t() = default;}; +# 79 +constexpr piecewise_construct_t piecewise_construct = piecewise_construct_t(); +# 83 +template< class ...> class tuple; +# 86 +template< size_t ...> struct _Index_tuple; +# 94 +template< bool , class _T1, class _T2> +# 95 +struct _PCC { +# 97 +template< class _U1, class _U2> static constexpr bool +# 98 +_ConstructiblePair() +# 99 +{ +# 100 +return __and_< is_constructible< _T1, const _U1 &> , is_constructible< _T2, const _U2 &> > ::value; +# 102 +} +# 104 +template< class _U1, class _U2> static constexpr bool +# 105 +_ImplicitlyConvertiblePair() +# 106 +{ +# 107 +return __and_< is_convertible< const _U1 &, _T1> , is_convertible< const _U2 &, _T2> > ::value; +# 109 +} +# 111 +template< class _U1, class _U2> static constexpr bool +# 112 +_MoveConstructiblePair() +# 113 +{ +# 114 +return __and_< is_constructible< _T1, _U1 &&> , is_constructible< _T2, _U2 &&> > ::value; +# 116 +} +# 118 +template< class _U1, class _U2> static constexpr bool +# 119 +_ImplicitlyMoveConvertiblePair() +# 120 +{ +# 121 +return __and_< is_convertible< _U1 &&, _T1> , is_convertible< _U2 &&, _T2> > ::value; +# 123 +} +# 125 +template< bool __implicit, class _U1, class _U2> static constexpr bool +# 126 +_CopyMovePair() +# 127 +{ +# 128 +using __do_converts = __and_< is_convertible< const _U1 &, _T1> , is_convertible< _U2 &&, _T2> > ; +# 130 +using __converts = typename conditional< __implicit, __and_< is_convertible< const _U1 &, _T1> , is_convertible< _U2 &&, _T2> > , __not_< __and_< is_convertible< const _U1 &, _T1> , is_convertible< _U2 &&, _T2> > > > ::type; +# 133 +return __and_< is_constructible< _T1, const _U1 &> , is_constructible< _T2, _U2 &&> , typename conditional< __implicit, __and_< is_convertible< const _U1 &, _T1> , is_convertible< _U2 &&, _T2> > , __not_< __and_< is_convertible< const _U1 &, _T1> , is_convertible< _U2 &&, _T2> > > > ::type> ::value; +# 137 +} +# 139 +template< bool __implicit, class _U1, class _U2> static constexpr bool +# 140 +_MoveCopyPair() +# 141 +{ +# 142 +using __do_converts = __and_< is_convertible< _U1 &&, _T1> , is_convertible< const _U2 &, _T2> > ; +# 144 +using __converts = typename conditional< __implicit, __and_< is_convertible< _U1 &&, _T1> , is_convertible< const _U2 &, _T2> > , __not_< __and_< is_convertible< _U1 &&, _T1> , is_convertible< const _U2 &, _T2> > > > ::type; +# 147 +return __and_< is_constructible< _T1, _U1 &&> , is_constructible< _T2, const _U2 &&> , typename conditional< __implicit, __and_< is_convertible< _U1 &&, _T1> , is_convertible< const _U2 &, _T2> > , __not_< __and_< is_convertible< _U1 &&, _T1> , is_convertible< const _U2 &, _T2> > > > ::type> ::value; +# 151 +} +# 152 +}; +# 154 +template< class _T1, class _T2> +# 155 +struct _PCC< false, _T1, _T2> { +# 157 +template< class _U1, class _U2> static constexpr bool +# 158 +_ConstructiblePair() +# 159 +{ +# 160 +return false; +# 161 +} +# 163 +template< class _U1, class _U2> static constexpr bool +# 164 +_ImplicitlyConvertiblePair() +# 165 +{ +# 166 +return false; +# 167 +} +# 169 +template< class _U1, class _U2> static constexpr bool +# 170 +_MoveConstructiblePair() +# 171 +{ +# 172 +return false; +# 173 +} +# 175 +template< class _U1, class _U2> static constexpr bool +# 176 +_ImplicitlyMoveConvertiblePair() +# 177 +{ +# 178 +return false; +# 179 +} +# 180 +}; +# 185 +struct __nonesuch_no_braces : public __nonesuch { +# 186 +explicit __nonesuch_no_braces(const __nonesuch &) = delete; +# 187 +}; +# 190 +template< class _U1, class _U2> class __pair_base { +# 193 +template< class _T1, class _T2> friend struct pair; +# 194 +__pair_base() = default; +# 195 +~__pair_base() = default; +# 196 +__pair_base(const __pair_base &) = default; +# 197 +__pair_base &operator=(const __pair_base &) = delete; +# 199 +}; +# 207 +template< class _T1, class _T2> +# 208 +struct pair : private __pair_base< _T1, _T2> { +# 211 +typedef _T1 first_type; +# 212 +typedef _T2 second_type; +# 214 +_T1 first; +# 215 +_T2 second; +# 222 +template< class _U1 = _T1, class +# 223 +_U2 = _T2, typename enable_if< __and_< __is_implicitly_default_constructible< _U1> , __is_implicitly_default_constructible< _U2> > ::value, bool> ::type +# 227 + = true> constexpr +# 229 +pair() : first(), second() +# 230 +{ } +# 233 +template< class _U1 = _T1, class +# 234 +_U2 = _T2, typename enable_if< __and_< is_default_constructible< _U1> , is_default_constructible< _U2> , __not_< __and_< __is_implicitly_default_constructible< _U1> , __is_implicitly_default_constructible< _U2> > > > ::value, bool> ::type +# 241 + = false> constexpr explicit +# 242 +pair() : first(), second() +# 243 +{ } +# 252 "/usr/include/c++/9/bits/stl_pair.h" 3 +using _PCCP = _PCC< true, _T1, _T2> ; +# 254 +template< class _U1 = _T1, class _U2 = _T2, typename enable_if< _PCC< true, _T1, _T2> ::template _ConstructiblePair< _U1, _U2> () && _PCC< true, _T1, _T2> ::template _ImplicitlyConvertiblePair< _U1, _U2> (), bool> ::type +# 259 + = true> constexpr +# 260 +pair(const _T1 &__a, const _T2 &__b) : first(__a), second(__b) +# 261 +{ } +# 263 +template< class _U1 = _T1, class _U2 = _T2, typename enable_if< _PCC< true, _T1, _T2> ::template _ConstructiblePair< _U1, _U2> () && (!_PCC< true, _T1, _T2> ::template _ImplicitlyConvertiblePair< _U1, _U2> ()), bool> ::type +# 268 + = false> constexpr explicit +# 269 +pair(const _T1 &__a, const _T2 &__b) : first(__a), second(__b) +# 270 +{ } +# 280 "/usr/include/c++/9/bits/stl_pair.h" 3 +template< class _U1, class _U2> using _PCCFP = _PCC< (!is_same< _T1, _U1> ::value) || (!is_same< _T2, _U2> ::value), _T1, _T2> ; +# 285 +template< class _U1, class _U2, typename enable_if< _PCC< (!is_same< _T1, _U1> ::value) || (!is_same< _T2, _U2> ::value), _T1, _T2> ::template _ConstructiblePair< _U1, _U2> () && _PCC< (!is_same< _T1, _U1> ::value) || (!is_same< _T2, _U2> ::value), _T1, _T2> ::template _ImplicitlyConvertiblePair< _U1, _U2> (), bool> ::type +# 290 + = true> constexpr +# 291 +pair(const std::pair< _U1, _U2> &__p) : first((__p.first)), second((__p.second)) +# 292 +{ } +# 294 +template< class _U1, class _U2, typename enable_if< _PCC< (!is_same< _T1, _U1> ::value) || (!is_same< _T2, _U2> ::value), _T1, _T2> ::template _ConstructiblePair< _U1, _U2> () && (!_PCC< (!is_same< _T1, _U1> ::value) || (!is_same< _T2, _U2> ::value), _T1, _T2> ::template _ImplicitlyConvertiblePair< _U1, _U2> ()), bool> ::type +# 299 + = false> constexpr explicit +# 300 +pair(const std::pair< _U1, _U2> &__p) : first((__p.first)), second((__p.second)) +# 301 +{ } +# 303 +constexpr pair(const pair &) = default; +# 304 +constexpr pair(pair &&) = default; +# 307 +template< class _U1, typename enable_if< _PCC< true, _T1, _T2> ::template _MoveCopyPair< true, _U1, _T2> (), bool> ::type +# 310 + = true> constexpr +# 311 +pair(_U1 &&__x, const _T2 &__y) : first(std::forward< _U1> (__x)), second(__y) +# 312 +{ } +# 314 +template< class _U1, typename enable_if< _PCC< true, _T1, _T2> ::template _MoveCopyPair< false, _U1, _T2> (), bool> ::type +# 317 + = false> constexpr explicit +# 318 +pair(_U1 &&__x, const _T2 &__y) : first(std::forward< _U1> (__x)), second(__y) +# 319 +{ } +# 321 +template< class _U2, typename enable_if< _PCC< true, _T1, _T2> ::template _CopyMovePair< true, _T1, _U2> (), bool> ::type +# 324 + = true> constexpr +# 325 +pair(const _T1 &__x, _U2 &&__y) : first(__x), second(std::forward< _U2> (__y)) +# 326 +{ } +# 328 +template< class _U2, typename enable_if< _PCC< true, _T1, _T2> ::template _CopyMovePair< false, _T1, _U2> (), bool> ::type +# 331 + = false> explicit +# 332 +pair(const _T1 &__x, _U2 &&__y) : first(__x), second(std::forward< _U2> (__y)) +# 333 +{ } +# 335 +template< class _U1, class _U2, typename enable_if< _PCC< true, _T1, _T2> ::template _MoveConstructiblePair< _U1, _U2> () && _PCC< true, _T1, _T2> ::template _ImplicitlyMoveConvertiblePair< _U1, _U2> (), bool> ::type +# 340 + = true> constexpr +# 341 +pair(_U1 &&__x, _U2 &&__y) : first(std::forward< _U1> (__x)), second(std::forward< _U2> (__y)) +# 342 +{ } +# 344 +template< class _U1, class _U2, typename enable_if< _PCC< true, _T1, _T2> ::template _MoveConstructiblePair< _U1, _U2> () && (!_PCC< true, _T1, _T2> ::template _ImplicitlyMoveConvertiblePair< _U1, _U2> ()), bool> ::type +# 349 + = false> constexpr explicit +# 350 +pair(_U1 &&__x, _U2 &&__y) : first(std::forward< _U1> (__x)), second(std::forward< _U2> (__y)) +# 351 +{ } +# 354 +template< class _U1, class _U2, typename enable_if< _PCC< (!is_same< _T1, _U1> ::value) || (!is_same< _T2, _U2> ::value), _T1, _T2> ::template _MoveConstructiblePair< _U1, _U2> () && _PCC< (!is_same< _T1, _U1> ::value) || (!is_same< _T2, _U2> ::value), _T1, _T2> ::template _ImplicitlyMoveConvertiblePair< _U1, _U2> (), bool> ::type +# 359 + = true> constexpr +# 360 +pair(std::pair< _U1, _U2> &&__p) : first(std::forward< _U1> ((__p.first))), second(std::forward< _U2> ((__p.second))) +# 362 +{ } +# 364 +template< class _U1, class _U2, typename enable_if< _PCC< (!is_same< _T1, _U1> ::value) || (!is_same< _T2, _U2> ::value), _T1, _T2> ::template _MoveConstructiblePair< _U1, _U2> () && (!_PCC< (!is_same< _T1, _U1> ::value) || (!is_same< _T2, _U2> ::value), _T1, _T2> ::template _ImplicitlyMoveConvertiblePair< _U1, _U2> ()), bool> ::type +# 369 + = false> constexpr explicit +# 370 +pair(std::pair< _U1, _U2> &&__p) : first(std::forward< _U1> ((__p.first))), second(std::forward< _U2> ((__p.second))) +# 372 +{ } +# 374 +template< class ..._Args1, class ..._Args2> pair(std::piecewise_construct_t, tuple< _Args1...> , tuple< _Args2...> ); +# 378 +pair &operator=(typename conditional< __and_< is_copy_assignable< _T1> , is_copy_assignable< _T2> > ::value, const pair &, const std::__nonesuch_no_braces &> ::type +# 381 +__p) +# 382 +{ +# 383 +(first) = (__p.first); +# 384 +(second) = (__p.second); +# 385 +return *this; +# 386 +} +# 389 +pair &operator=(typename conditional< __and_< is_move_assignable< _T1> , is_move_assignable< _T2> > ::value, pair &&, std::__nonesuch_no_braces &&> ::type +# 392 +__p) noexcept(__and_< is_nothrow_move_assignable< _T1> , is_nothrow_move_assignable< _T2> > ::value) +# 395 +{ +# 396 +(first) = std::forward< first_type> ((__p.first)); +# 397 +(second) = std::forward< second_type> ((__p.second)); +# 398 +return *this; +# 399 +} +# 401 +template< class _U1, class _U2> typename enable_if< __and_< is_assignable< _T1 &, const _U1 &> , is_assignable< _T2 &, const _U2 &> > ::value, pair &> ::type +# 405 +operator=(const std::pair< _U1, _U2> &__p) +# 406 +{ +# 407 +(first) = (__p.first); +# 408 +(second) = (__p.second); +# 409 +return *this; +# 410 +} +# 412 +template< class _U1, class _U2> typename enable_if< __and_< is_assignable< _T1 &, _U1 &&> , is_assignable< _T2 &, _U2 &&> > ::value, pair &> ::type +# 416 +operator=(std::pair< _U1, _U2> &&__p) +# 417 +{ +# 418 +(first) = std::forward< _U1> ((__p.first)); +# 419 +(second) = std::forward< _U2> ((__p.second)); +# 420 +return *this; +# 421 +} +# 424 +void swap(pair &__p) noexcept(__and_< __is_nothrow_swappable< _T1> , __is_nothrow_swappable< _T2> > ::value) +# 427 +{ +# 428 +using std::swap; +# 429 +swap(first, __p.first); +# 430 +swap(second, __p.second); +# 431 +} +# 434 +private: template< class ..._Args1, std::size_t ..._Indexes1, class ... +# 435 +_Args2, std::size_t ..._Indexes2> +# 434 +pair(tuple< _Args1...> &, tuple< _Args2...> &, _Index_tuple< _Indexes1...> , _Index_tuple< _Indexes2...> ); +# 439 +}; +# 446 +template< class _T1, class _T2> constexpr bool +# 448 +operator==(const pair< _T1, _T2> &__x, const pair< _T1, _T2> &__y) +# 449 +{ return ((__x.first) == (__y.first)) && ((__x.second) == (__y.second)); } +# 452 +template< class _T1, class _T2> constexpr bool +# 454 +operator<(const pair< _T1, _T2> &__x, const pair< _T1, _T2> &__y) +# 455 +{ return ((__x.first) < (__y.first)) || ((!((__y.first) < (__x.first))) && ((__x.second) < (__y.second))); +# 456 +} +# 459 +template< class _T1, class _T2> constexpr bool +# 461 +operator!=(const pair< _T1, _T2> &__x, const pair< _T1, _T2> &__y) +# 462 +{ return !(__x == __y); } +# 465 +template< class _T1, class _T2> constexpr bool +# 467 +operator>(const pair< _T1, _T2> &__x, const pair< _T1, _T2> &__y) +# 468 +{ return __y < __x; } +# 471 +template< class _T1, class _T2> constexpr bool +# 473 +operator<=(const pair< _T1, _T2> &__x, const pair< _T1, _T2> &__y) +# 474 +{ return !(__y < __x); } +# 477 +template< class _T1, class _T2> constexpr bool +# 479 +operator>=(const pair< _T1, _T2> &__x, const pair< _T1, _T2> &__y) +# 480 +{ return !(__x < __y); } +# 486 +template< class _T1, class _T2> inline typename enable_if< __and_< __is_swappable< _T1> , __is_swappable< _T2> > ::value> ::type +# 495 +swap(pair< _T1, _T2> &__x, pair< _T1, _T2> &__y) noexcept(noexcept(__x.swap(__y))) +# 497 +{ __x.swap(__y); } +# 500 +template < typename _T1, typename _T2 > + typename enable_if < ! __and_ < __is_swappable < _T1 >, + __is_swappable < _T2 > > :: value > :: type + swap ( pair < _T1, _T2 > &, pair < _T1, _T2 > & ) = delete; +# 521 "/usr/include/c++/9/bits/stl_pair.h" 3 +template< class _T1, class _T2> constexpr pair< typename __decay_and_strip< _T1> ::__type, typename __decay_and_strip< _T2> ::__type> +# 524 +make_pair(_T1 &&__x, _T2 &&__y) +# 525 +{ +# 526 +typedef typename __decay_and_strip< _T1> ::__type __ds_type1; +# 527 +typedef typename __decay_and_strip< _T2> ::__type __ds_type2; +# 528 +typedef pair< typename __decay_and_strip< _T1> ::__type, typename __decay_and_strip< _T2> ::__type> __pair_type; +# 529 +return __pair_type(std::forward< _T1> (__x), std::forward< _T2> (__y)); +# 530 +} +# 541 "/usr/include/c++/9/bits/stl_pair.h" 3 +} +# 39 "/usr/include/c++/9/initializer_list" 3 +#pragma GCC visibility push ( default ) +# 43 +namespace std { +# 46 +template< class _E> +# 47 +class initializer_list { +# 50 +public: typedef _E value_type; +# 51 +typedef const _E &reference; +# 52 +typedef const _E &const_reference; +# 53 +typedef size_t size_type; +# 54 +typedef const _E *iterator; +# 55 +typedef const _E *const_iterator; +# 58 +private: iterator _M_array; +# 59 +size_type _M_len; +# 62 +constexpr initializer_list(const_iterator __a, size_type __l) : _M_array(__a), _M_len(__l) +# 63 +{ } +# 66 +public: constexpr initializer_list() noexcept : _M_array((0)), _M_len((0)) +# 67 +{ } +# 71 +constexpr size_type size() const noexcept { return _M_len; } +# 75 +constexpr const_iterator begin() const noexcept { return _M_array; } +# 79 +constexpr const_iterator end() const noexcept { return begin() + size(); } +# 80 +}; +# 87 +template< class _Tp> constexpr const _Tp * +# 89 +begin(initializer_list< _Tp> __ils) noexcept +# 90 +{ return __ils.begin(); } +# 97 +template< class _Tp> constexpr const _Tp * +# 99 +end(initializer_list< _Tp> __ils) noexcept +# 100 +{ return __ils.end(); } +# 101 +} +# 103 +#pragma GCC visibility pop +# 78 "/usr/include/c++/9/utility" 3 +namespace std __attribute((__visibility__("default"))) { +# 83 +template< class _Tp> struct tuple_size; +# 90 +template< class _Tp, class +# 91 +_Up = typename remove_cv< _Tp> ::type, class +# 92 + = typename enable_if< is_same< _Tp, _Up> ::value> ::type, size_t +# 93 + = tuple_size< _Tp> ::value> using __enable_if_has_tuple_size = _Tp; +# 96 +template< class _Tp> +# 97 +struct tuple_size< const __enable_if_has_tuple_size< _Tp> > : public std::tuple_size< _Tp> { +# 98 +}; +# 100 +template< class _Tp> +# 101 +struct tuple_size< volatile __enable_if_has_tuple_size< _Tp> > : public std::tuple_size< _Tp> { +# 102 +}; +# 104 +template< class _Tp> +# 105 +struct tuple_size< const volatile __enable_if_has_tuple_size< _Tp> > : public std::tuple_size< _Tp> { +# 106 +}; +# 109 +template< size_t __i, class _Tp> struct tuple_element; +# 113 +template< size_t __i, class _Tp> using __tuple_element_t = typename tuple_element< __i, _Tp> ::type; +# 116 +template< size_t __i, class _Tp> +# 117 +struct tuple_element< __i, const _Tp> { +# 119 +typedef typename add_const< __tuple_element_t< __i, _Tp> > ::type type; +# 120 +}; +# 122 +template< size_t __i, class _Tp> +# 123 +struct tuple_element< __i, volatile _Tp> { +# 125 +typedef typename add_volatile< __tuple_element_t< __i, _Tp> > ::type type; +# 126 +}; +# 128 +template< size_t __i, class _Tp> +# 129 +struct tuple_element< __i, const volatile _Tp> { +# 131 +typedef typename add_cv< __tuple_element_t< __i, _Tp> > ::type type; +# 132 +}; +# 140 +template< size_t __i, class _Tp> using tuple_element_t = typename tuple_element< __i, _Tp> ::type; +# 147 +template< class _T1, class _T2> +# 148 +struct __is_tuple_like_impl< pair< _T1, _T2> > : public true_type { +# 149 +}; +# 152 +template< class _Tp1, class _Tp2> +# 153 +struct tuple_size< pair< _Tp1, _Tp2> > : public integral_constant< unsigned long, 2UL> { +# 154 +}; +# 157 +template< class _Tp1, class _Tp2> +# 158 +struct tuple_element< 0, pair< _Tp1, _Tp2> > { +# 159 +typedef _Tp1 type; }; +# 162 +template< class _Tp1, class _Tp2> +# 163 +struct tuple_element< 1, pair< _Tp1, _Tp2> > { +# 164 +typedef _Tp2 type; }; +# 166 +template< size_t _Int> struct __pair_get; +# 170 +template<> struct __pair_get< 0UL> { +# 172 +template< class _Tp1, class _Tp2> static constexpr _Tp1 & +# 174 +__get(pair< _Tp1, _Tp2> &__pair) noexcept +# 175 +{ return __pair.first; } +# 177 +template< class _Tp1, class _Tp2> static constexpr _Tp1 && +# 179 +__move_get(pair< _Tp1, _Tp2> &&__pair) noexcept +# 180 +{ return std::forward< _Tp1> ((__pair.first)); } +# 182 +template< class _Tp1, class _Tp2> static constexpr const _Tp1 & +# 184 +__const_get(const pair< _Tp1, _Tp2> &__pair) noexcept +# 185 +{ return __pair.first; } +# 187 +template< class _Tp1, class _Tp2> static constexpr const _Tp1 && +# 189 +__const_move_get(const pair< _Tp1, _Tp2> &&__pair) noexcept +# 190 +{ return std::forward< const _Tp1> ((__pair.first)); } +# 191 +}; +# 194 +template<> struct __pair_get< 1UL> { +# 196 +template< class _Tp1, class _Tp2> static constexpr _Tp2 & +# 198 +__get(pair< _Tp1, _Tp2> &__pair) noexcept +# 199 +{ return __pair.second; } +# 201 +template< class _Tp1, class _Tp2> static constexpr _Tp2 && +# 203 +__move_get(pair< _Tp1, _Tp2> &&__pair) noexcept +# 204 +{ return std::forward< _Tp2> ((__pair.second)); } +# 206 +template< class _Tp1, class _Tp2> static constexpr const _Tp2 & +# 208 +__const_get(const pair< _Tp1, _Tp2> &__pair) noexcept +# 209 +{ return __pair.second; } +# 211 +template< class _Tp1, class _Tp2> static constexpr const _Tp2 && +# 213 +__const_move_get(const pair< _Tp1, _Tp2> &&__pair) noexcept +# 214 +{ return std::forward< const _Tp2> ((__pair.second)); } +# 215 +}; +# 217 +template< size_t _Int, class _Tp1, class _Tp2> constexpr typename tuple_element< _Int, pair< _Tp1, _Tp2> > ::type & +# 219 +get(pair< _Tp1, _Tp2> &__in) noexcept +# 220 +{ return __pair_get< _Int> ::__get(__in); } +# 222 +template< size_t _Int, class _Tp1, class _Tp2> constexpr typename tuple_element< _Int, pair< _Tp1, _Tp2> > ::type && +# 224 +get(pair< _Tp1, _Tp2> &&__in) noexcept +# 225 +{ return __pair_get< _Int> ::__move_get(std::move(__in)); } +# 227 +template< size_t _Int, class _Tp1, class _Tp2> constexpr const typename tuple_element< _Int, pair< _Tp1, _Tp2> > ::type & +# 229 +get(const pair< _Tp1, _Tp2> &__in) noexcept +# 230 +{ return __pair_get< _Int> ::__const_get(__in); } +# 232 +template< size_t _Int, class _Tp1, class _Tp2> constexpr const typename tuple_element< _Int, pair< _Tp1, _Tp2> > ::type && +# 234 +get(const pair< _Tp1, _Tp2> &&__in) noexcept +# 235 +{ return __pair_get< _Int> ::__const_move_get(std::move(__in)); } +# 241 +template< class _Tp, class _Up> constexpr _Tp & +# 243 +get(pair< _Tp, _Up> &__p) noexcept +# 244 +{ return __p.first; } +# 246 +template< class _Tp, class _Up> constexpr const _Tp & +# 248 +get(const pair< _Tp, _Up> &__p) noexcept +# 249 +{ return __p.first; } +# 251 +template< class _Tp, class _Up> constexpr _Tp && +# 253 +get(pair< _Tp, _Up> &&__p) noexcept +# 254 +{ return std::move((__p.first)); } +# 256 +template< class _Tp, class _Up> constexpr const _Tp && +# 258 +get(const pair< _Tp, _Up> &&__p) noexcept +# 259 +{ return std::move((__p.first)); } +# 261 +template< class _Tp, class _Up> constexpr _Tp & +# 263 +get(pair< _Up, _Tp> &__p) noexcept +# 264 +{ return __p.second; } +# 266 +template< class _Tp, class _Up> constexpr const _Tp & +# 268 +get(const pair< _Up, _Tp> &__p) noexcept +# 269 +{ return __p.second; } +# 271 +template< class _Tp, class _Up> constexpr _Tp && +# 273 +get(pair< _Up, _Tp> &&__p) noexcept +# 274 +{ return std::move((__p.second)); } +# 276 +template< class _Tp, class _Up> constexpr const _Tp && +# 278 +get(const pair< _Up, _Tp> &&__p) noexcept +# 279 +{ return std::move((__p.second)); } +# 284 +template< class _Tp, class _Up = _Tp> inline _Tp +# 286 +exchange(_Tp &__obj, _Up &&__new_val) +# 287 +{ return std::__exchange(__obj, std::forward< _Up> (__new_val)); } +# 292 +template< size_t ..._Indexes> struct _Index_tuple { }; +# 301 "/usr/include/c++/9/utility" 3 +template< size_t _Num> +# 302 +struct _Build_index_tuple { +# 310 +using __type = _Index_tuple< __integer_pack(_Num)...> ; +# 312 +}; +# 319 +template< class _Tp, _Tp ..._Idx> +# 320 +struct integer_sequence { +# 322 +typedef _Tp value_type; +# 323 +static constexpr size_t size() noexcept { return sizeof...(_Idx); } +# 324 +}; +# 327 +template< class _Tp, _Tp _Num> using make_integer_sequence = integer_sequence< _Tp, __integer_pack(_Num)...> ; +# 338 +template< size_t ..._Idx> using index_sequence = integer_sequence< unsigned long, _Idx...> ; +# 342 +template< size_t _Num> using make_index_sequence = make_integer_sequence< unsigned long, _Num> ; +# 346 +template< class ..._Types> using index_sequence_for = make_index_sequence< sizeof...(_Types)> ; +# 397 "/usr/include/c++/9/utility" 3 +} +# 205 "/usr/include/cuda_runtime.h" 3 +template< class T> static inline cudaError_t +# 206 +cudaLaunchKernel(const T * +# 207 +func, dim3 +# 208 +gridDim, dim3 +# 209 +blockDim, void ** +# 210 +args, size_t +# 211 +sharedMem = 0, cudaStream_t +# 212 +stream = 0) +# 214 +{ +# 215 +return ::cudaLaunchKernel((const void *)func, gridDim, blockDim, args, sharedMem, stream); +# 216 +} +# 276 "/usr/include/cuda_runtime.h" 3 +template< class ...ExpTypes, class ...ActTypes> static inline cudaError_t +# 277 +cudaLaunchKernelEx(const cudaLaunchConfig_t * +# 278 +config, void (* +# 279 +kernel)(ExpTypes ...), ActTypes &&... +# 280 +args) +# 282 +{ +# 283 +return [&](ExpTypes ...coercedArgs) { +# 284 +void *pArgs[] = {(&coercedArgs)...}; +# 285 +return ::cudaLaunchKernelExC(config, (const void *)(kernel), pArgs); +# 286 +} (std::forward< ActTypes> (args)...); +# 287 +} +# 339 "/usr/include/cuda_runtime.h" 3 +template< class T> static inline cudaError_t +# 340 +cudaLaunchCooperativeKernel(const T * +# 341 +func, dim3 +# 342 +gridDim, dim3 +# 343 +blockDim, void ** +# 344 +args, size_t +# 345 +sharedMem = 0, cudaStream_t +# 346 +stream = 0) +# 348 +{ +# 349 +return ::cudaLaunchCooperativeKernel((const void *)func, gridDim, blockDim, args, sharedMem, stream); +# 350 +} +# 383 "/usr/include/cuda_runtime.h" 3 +static inline cudaError_t cudaEventCreate(cudaEvent_t * +# 384 +event, unsigned +# 385 +flags) +# 387 +{ +# 388 +return ::cudaEventCreateWithFlags(event, flags); +# 389 +} +# 448 "/usr/include/cuda_runtime.h" 3 +static inline cudaError_t cudaMallocHost(void ** +# 449 +ptr, size_t +# 450 +size, unsigned +# 451 +flags) +# 453 +{ +# 454 +return ::cudaHostAlloc(ptr, size, flags); +# 455 +} +# 457 +template< class T> static inline cudaError_t +# 458 +cudaHostAlloc(T ** +# 459 +ptr, size_t +# 460 +size, unsigned +# 461 +flags) +# 463 +{ +# 464 +return ::cudaHostAlloc((void **)((void *)ptr), size, flags); +# 465 +} +# 467 +template< class T> static inline cudaError_t +# 468 +cudaHostGetDevicePointer(T ** +# 469 +pDevice, void * +# 470 +pHost, unsigned +# 471 +flags) +# 473 +{ +# 474 +return ::cudaHostGetDevicePointer((void **)((void *)pDevice), pHost, flags); +# 475 +} +# 577 "/usr/include/cuda_runtime.h" 3 +template< class T> static inline cudaError_t +# 578 +cudaMallocManaged(T ** +# 579 +devPtr, size_t +# 580 +size, unsigned +# 581 +flags = 1) +# 583 +{ +# 584 +return ::cudaMallocManaged((void **)((void *)devPtr), size, flags); +# 585 +} +# 667 "/usr/include/cuda_runtime.h" 3 +template< class T> static inline cudaError_t +# 668 +cudaStreamAttachMemAsync(cudaStream_t +# 669 +stream, T * +# 670 +devPtr, size_t +# 671 +length = 0, unsigned +# 672 +flags = 4) +# 674 +{ +# 675 +return ::cudaStreamAttachMemAsync(stream, (void *)devPtr, length, flags); +# 676 +} +# 678 +template< class T> inline cudaError_t +# 679 +cudaMalloc(T ** +# 680 +devPtr, size_t +# 681 +size) +# 683 +{ +# 684 +return ::cudaMalloc((void **)((void *)devPtr), size); +# 685 +} +# 687 +template< class T> static inline cudaError_t +# 688 +cudaMallocHost(T ** +# 689 +ptr, size_t +# 690 +size, unsigned +# 691 +flags = 0) +# 693 +{ +# 694 +return cudaMallocHost((void **)((void *)ptr), size, flags); +# 695 +} +# 697 +template< class T> static inline cudaError_t +# 698 +cudaMallocPitch(T ** +# 699 +devPtr, size_t * +# 700 +pitch, size_t +# 701 +width, size_t +# 702 +height) +# 704 +{ +# 705 +return ::cudaMallocPitch((void **)((void *)devPtr), pitch, width, height); +# 706 +} +# 717 "/usr/include/cuda_runtime.h" 3 +static inline cudaError_t cudaMallocAsync(void ** +# 718 +ptr, size_t +# 719 +size, cudaMemPool_t +# 720 +memPool, cudaStream_t +# 721 +stream) +# 723 +{ +# 724 +return ::cudaMallocFromPoolAsync(ptr, size, memPool, stream); +# 725 +} +# 727 +template< class T> static inline cudaError_t +# 728 +cudaMallocAsync(T ** +# 729 +ptr, size_t +# 730 +size, cudaMemPool_t +# 731 +memPool, cudaStream_t +# 732 +stream) +# 734 +{ +# 735 +return ::cudaMallocFromPoolAsync((void **)((void *)ptr), size, memPool, stream); +# 736 +} +# 738 +template< class T> static inline cudaError_t +# 739 +cudaMallocAsync(T ** +# 740 +ptr, size_t +# 741 +size, cudaStream_t +# 742 +stream) +# 744 +{ +# 745 +return ::cudaMallocAsync((void **)((void *)ptr), size, stream); +# 746 +} +# 748 +template< class T> static inline cudaError_t +# 749 +cudaMallocFromPoolAsync(T ** +# 750 +ptr, size_t +# 751 +size, cudaMemPool_t +# 752 +memPool, cudaStream_t +# 753 +stream) +# 755 +{ +# 756 +return ::cudaMallocFromPoolAsync((void **)((void *)ptr), size, memPool, stream); +# 757 +} +# 796 "/usr/include/cuda_runtime.h" 3 +template< class T> static inline cudaError_t +# 797 +cudaMemcpyToSymbol(const T & +# 798 +symbol, const void * +# 799 +src, size_t +# 800 +count, size_t +# 801 +offset = 0, cudaMemcpyKind +# 802 +kind = cudaMemcpyHostToDevice) +# 804 +{ +# 805 +return ::cudaMemcpyToSymbol((const void *)(&symbol), src, count, offset, kind); +# 806 +} +# 850 "/usr/include/cuda_runtime.h" 3 +template< class T> static inline cudaError_t +# 851 +cudaMemcpyToSymbolAsync(const T & +# 852 +symbol, const void * +# 853 +src, size_t +# 854 +count, size_t +# 855 +offset = 0, cudaMemcpyKind +# 856 +kind = cudaMemcpyHostToDevice, cudaStream_t +# 857 +stream = 0) +# 859 +{ +# 860 +return ::cudaMemcpyToSymbolAsync((const void *)(&symbol), src, count, offset, kind, stream); +# 861 +} +# 898 "/usr/include/cuda_runtime.h" 3 +template< class T> static inline cudaError_t +# 899 +cudaMemcpyFromSymbol(void * +# 900 +dst, const T & +# 901 +symbol, size_t +# 902 +count, size_t +# 903 +offset = 0, cudaMemcpyKind +# 904 +kind = cudaMemcpyDeviceToHost) +# 906 +{ +# 907 +return ::cudaMemcpyFromSymbol(dst, (const void *)(&symbol), count, offset, kind); +# 908 +} +# 952 "/usr/include/cuda_runtime.h" 3 +template< class T> static inline cudaError_t +# 953 +cudaMemcpyFromSymbolAsync(void * +# 954 +dst, const T & +# 955 +symbol, size_t +# 956 +count, size_t +# 957 +offset = 0, cudaMemcpyKind +# 958 +kind = cudaMemcpyDeviceToHost, cudaStream_t +# 959 +stream = 0) +# 961 +{ +# 962 +return ::cudaMemcpyFromSymbolAsync(dst, (const void *)(&symbol), count, offset, kind, stream); +# 963 +} +# 1021 "/usr/include/cuda_runtime.h" 3 +template< class T> static inline cudaError_t +# 1022 +cudaGraphAddMemcpyNodeToSymbol(cudaGraphNode_t * +# 1023 +pGraphNode, cudaGraph_t +# 1024 +graph, const cudaGraphNode_t * +# 1025 +pDependencies, size_t +# 1026 +numDependencies, const T & +# 1027 +symbol, const void * +# 1028 +src, size_t +# 1029 +count, size_t +# 1030 +offset, cudaMemcpyKind +# 1031 +kind) +# 1032 +{ +# 1033 +return ::cudaGraphAddMemcpyNodeToSymbol(pGraphNode, graph, pDependencies, numDependencies, (const void *)(&symbol), src, count, offset, kind); +# 1034 +} +# 1092 "/usr/include/cuda_runtime.h" 3 +template< class T> static inline cudaError_t +# 1093 +cudaGraphAddMemcpyNodeFromSymbol(cudaGraphNode_t * +# 1094 +pGraphNode, cudaGraph_t +# 1095 +graph, const cudaGraphNode_t * +# 1096 +pDependencies, size_t +# 1097 +numDependencies, void * +# 1098 +dst, const T & +# 1099 +symbol, size_t +# 1100 +count, size_t +# 1101 +offset, cudaMemcpyKind +# 1102 +kind) +# 1103 +{ +# 1104 +return ::cudaGraphAddMemcpyNodeFromSymbol(pGraphNode, graph, pDependencies, numDependencies, dst, (const void *)(&symbol), count, offset, kind); +# 1105 +} +# 1143 "/usr/include/cuda_runtime.h" 3 +template< class T> static inline cudaError_t +# 1144 +cudaGraphMemcpyNodeSetParamsToSymbol(cudaGraphNode_t +# 1145 +node, const T & +# 1146 +symbol, const void * +# 1147 +src, size_t +# 1148 +count, size_t +# 1149 +offset, cudaMemcpyKind +# 1150 +kind) +# 1151 +{ +# 1152 +return ::cudaGraphMemcpyNodeSetParamsToSymbol(node, (const void *)(&symbol), src, count, offset, kind); +# 1153 +} +# 1191 "/usr/include/cuda_runtime.h" 3 +template< class T> static inline cudaError_t +# 1192 +cudaGraphMemcpyNodeSetParamsFromSymbol(cudaGraphNode_t +# 1193 +node, void * +# 1194 +dst, const T & +# 1195 +symbol, size_t +# 1196 +count, size_t +# 1197 +offset, cudaMemcpyKind +# 1198 +kind) +# 1199 +{ +# 1200 +return ::cudaGraphMemcpyNodeSetParamsFromSymbol(node, dst, (const void *)(&symbol), count, offset, kind); +# 1201 +} +# 1249 "/usr/include/cuda_runtime.h" 3 +template< class T> static inline cudaError_t +# 1250 +cudaGraphExecMemcpyNodeSetParamsToSymbol(cudaGraphExec_t +# 1251 +hGraphExec, cudaGraphNode_t +# 1252 +node, const T & +# 1253 +symbol, const void * +# 1254 +src, size_t +# 1255 +count, size_t +# 1256 +offset, cudaMemcpyKind +# 1257 +kind) +# 1258 +{ +# 1259 +return ::cudaGraphExecMemcpyNodeSetParamsToSymbol(hGraphExec, node, (const void *)(&symbol), src, count, offset, kind); +# 1260 +} +# 1308 "/usr/include/cuda_runtime.h" 3 +template< class T> static inline cudaError_t +# 1309 +cudaGraphExecMemcpyNodeSetParamsFromSymbol(cudaGraphExec_t +# 1310 +hGraphExec, cudaGraphNode_t +# 1311 +node, void * +# 1312 +dst, const T & +# 1313 +symbol, size_t +# 1314 +count, size_t +# 1315 +offset, cudaMemcpyKind +# 1316 +kind) +# 1317 +{ +# 1318 +return ::cudaGraphExecMemcpyNodeSetParamsFromSymbol(hGraphExec, node, dst, (const void *)(&symbol), count, offset, kind); +# 1319 +} +# 1347 "/usr/include/cuda_runtime.h" 3 +template< class T> static inline cudaError_t +# 1348 +cudaUserObjectCreate(cudaUserObject_t * +# 1349 +object_out, T * +# 1350 +objectToWrap, unsigned +# 1351 +initialRefcount, unsigned +# 1352 +flags) +# 1353 +{ +# 1354 +return ::cudaUserObjectCreate(object_out, objectToWrap, [](void * +# 1357 +vpObj) { delete (reinterpret_cast< T *>(vpObj)); } , initialRefcount, flags); +# 1360 +} +# 1362 +template< class T> static inline cudaError_t +# 1363 +cudaUserObjectCreate(cudaUserObject_t * +# 1364 +object_out, T * +# 1365 +objectToWrap, unsigned +# 1366 +initialRefcount, cudaUserObjectFlags +# 1367 +flags) +# 1368 +{ +# 1369 +return cudaUserObjectCreate(object_out, objectToWrap, initialRefcount, (unsigned)flags); +# 1370 +} +# 1397 "/usr/include/cuda_runtime.h" 3 +template< class T> static inline cudaError_t +# 1398 +cudaGetSymbolAddress(void ** +# 1399 +devPtr, const T & +# 1400 +symbol) +# 1402 +{ +# 1403 +return ::cudaGetSymbolAddress(devPtr, (const void *)(&symbol)); +# 1404 +} +# 1429 "/usr/include/cuda_runtime.h" 3 +template< class T> static inline cudaError_t +# 1430 +cudaGetSymbolSize(size_t * +# 1431 +size, const T & +# 1432 +symbol) +# 1434 +{ +# 1435 +return ::cudaGetSymbolSize(size, (const void *)(&symbol)); +# 1436 +} +# 1473 "/usr/include/cuda_runtime.h" 3 +template< class T, int dim, cudaTextureReadMode readMode> +# 1474 +__attribute((deprecated)) static inline cudaError_t cudaBindTexture(size_t * +# 1475 +offset, const texture< T, dim, readMode> & +# 1476 +tex, const void * +# 1477 +devPtr, const cudaChannelFormatDesc & +# 1478 +desc, size_t +# 1479 +size = ((2147483647) * 2U) + 1U) +# 1481 +{ +# 1482 +return ::cudaBindTexture(offset, &tex, devPtr, &desc, size); +# 1483 +} +# 1519 "/usr/include/cuda_runtime.h" 3 +template< class T, int dim, cudaTextureReadMode readMode> +# 1520 +__attribute((deprecated)) static inline cudaError_t cudaBindTexture(size_t * +# 1521 +offset, const texture< T, dim, readMode> & +# 1522 +tex, const void * +# 1523 +devPtr, size_t +# 1524 +size = ((2147483647) * 2U) + 1U) +# 1526 +{ +# 1527 +return cudaBindTexture(offset, tex, devPtr, (tex.channelDesc), size); +# 1528 +} +# 1576 "/usr/include/cuda_runtime.h" 3 +template< class T, int dim, cudaTextureReadMode readMode> +# 1577 +__attribute((deprecated)) static inline cudaError_t cudaBindTexture2D(size_t * +# 1578 +offset, const texture< T, dim, readMode> & +# 1579 +tex, const void * +# 1580 +devPtr, const cudaChannelFormatDesc & +# 1581 +desc, size_t +# 1582 +width, size_t +# 1583 +height, size_t +# 1584 +pitch) +# 1586 +{ +# 1587 +return ::cudaBindTexture2D(offset, &tex, devPtr, &desc, width, height, pitch); +# 1588 +} +# 1635 "/usr/include/cuda_runtime.h" 3 +template< class T, int dim, cudaTextureReadMode readMode> +# 1636 +__attribute((deprecated)) static inline cudaError_t cudaBindTexture2D(size_t * +# 1637 +offset, const texture< T, dim, readMode> & +# 1638 +tex, const void * +# 1639 +devPtr, size_t +# 1640 +width, size_t +# 1641 +height, size_t +# 1642 +pitch) +# 1644 +{ +# 1645 +return ::cudaBindTexture2D(offset, &tex, devPtr, &(tex.channelDesc), width, height, pitch); +# 1646 +} +# 1678 "/usr/include/cuda_runtime.h" 3 +template< class T, int dim, cudaTextureReadMode readMode> +# 1679 +__attribute((deprecated)) static inline cudaError_t cudaBindTextureToArray(const texture< T, dim, readMode> & +# 1680 +tex, cudaArray_const_t +# 1681 +array, const cudaChannelFormatDesc & +# 1682 +desc) +# 1684 +{ +# 1685 +return ::cudaBindTextureToArray(&tex, array, &desc); +# 1686 +} +# 1717 "/usr/include/cuda_runtime.h" 3 +template< class T, int dim, cudaTextureReadMode readMode> +# 1718 +__attribute((deprecated)) static inline cudaError_t cudaBindTextureToArray(const texture< T, dim, readMode> & +# 1719 +tex, cudaArray_const_t +# 1720 +array) +# 1722 +{ +# 1723 +cudaChannelFormatDesc desc; +# 1724 +cudaError_t err = ::cudaGetChannelDesc(&desc, array); +# 1726 +return (err == (cudaSuccess)) ? cudaBindTextureToArray(tex, array, desc) : err; +# 1727 +} +# 1759 "/usr/include/cuda_runtime.h" 3 +template< class T, int dim, cudaTextureReadMode readMode> +# 1760 +__attribute((deprecated)) static inline cudaError_t cudaBindTextureToMipmappedArray(const texture< T, dim, readMode> & +# 1761 +tex, cudaMipmappedArray_const_t +# 1762 +mipmappedArray, const cudaChannelFormatDesc & +# 1763 +desc) +# 1765 +{ +# 1766 +return ::cudaBindTextureToMipmappedArray(&tex, mipmappedArray, &desc); +# 1767 +} +# 1798 "/usr/include/cuda_runtime.h" 3 +template< class T, int dim, cudaTextureReadMode readMode> +# 1799 +__attribute((deprecated)) static inline cudaError_t cudaBindTextureToMipmappedArray(const texture< T, dim, readMode> & +# 1800 +tex, cudaMipmappedArray_const_t +# 1801 +mipmappedArray) +# 1803 +{ +# 1804 +cudaChannelFormatDesc desc; +# 1805 +cudaArray_t levelArray; +# 1806 +cudaError_t err = ::cudaGetMipmappedArrayLevel(&levelArray, mipmappedArray, 0); +# 1808 +if (err != (cudaSuccess)) { +# 1809 +return err; +# 1810 +} +# 1811 +err = ::cudaGetChannelDesc(&desc, levelArray); +# 1813 +return (err == (cudaSuccess)) ? cudaBindTextureToMipmappedArray(tex, mipmappedArray, desc) : err; +# 1814 +} +# 1841 "/usr/include/cuda_runtime.h" 3 +template< class T, int dim, cudaTextureReadMode readMode> +# 1842 +__attribute((deprecated)) static inline cudaError_t cudaUnbindTexture(const texture< T, dim, readMode> & +# 1843 +tex) +# 1845 +{ +# 1846 +return ::cudaUnbindTexture(&tex); +# 1847 +} +# 1877 "/usr/include/cuda_runtime.h" 3 +template< class T, int dim, cudaTextureReadMode readMode> +# 1878 +__attribute((deprecated)) static inline cudaError_t cudaGetTextureAlignmentOffset(size_t * +# 1879 +offset, const texture< T, dim, readMode> & +# 1880 +tex) +# 1882 +{ +# 1883 +return ::cudaGetTextureAlignmentOffset(offset, &tex); +# 1884 +} +# 1929 "/usr/include/cuda_runtime.h" 3 +template< class T> static inline cudaError_t +# 1930 +cudaFuncSetCacheConfig(T * +# 1931 +func, cudaFuncCache +# 1932 +cacheConfig) +# 1934 +{ +# 1935 +return ::cudaFuncSetCacheConfig((const void *)func, cacheConfig); +# 1936 +} +# 1938 +template< class T> static inline cudaError_t +# 1939 +cudaFuncSetSharedMemConfig(T * +# 1940 +func, cudaSharedMemConfig +# 1941 +config) +# 1943 +{ +# 1944 +return ::cudaFuncSetSharedMemConfig((const void *)func, config); +# 1945 +} +# 1977 "/usr/include/cuda_runtime.h" 3 +template< class T> inline cudaError_t +# 1978 +cudaOccupancyMaxActiveBlocksPerMultiprocessor(int * +# 1979 +numBlocks, T +# 1980 +func, int +# 1981 +blockSize, size_t +# 1982 +dynamicSMemSize) +# 1983 +{ +# 1984 +return ::cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(numBlocks, (const void *)func, blockSize, dynamicSMemSize, 0); +# 1985 +} +# 2029 "/usr/include/cuda_runtime.h" 3 +template< class T> inline cudaError_t +# 2030 +cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(int * +# 2031 +numBlocks, T +# 2032 +func, int +# 2033 +blockSize, size_t +# 2034 +dynamicSMemSize, unsigned +# 2035 +flags) +# 2036 +{ +# 2037 +return ::cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(numBlocks, (const void *)func, blockSize, dynamicSMemSize, flags); +# 2038 +} +# 2043 +class __cudaOccupancyB2DHelper { +# 2044 +size_t n; +# 2046 +public: __cudaOccupancyB2DHelper(size_t n_) : n(n_) { } +# 2047 +size_t operator()(int) +# 2048 +{ +# 2049 +return n; +# 2050 +} +# 2051 +}; +# 2099 "/usr/include/cuda_runtime.h" 3 +template< class UnaryFunction, class T> static inline cudaError_t +# 2100 +cudaOccupancyMaxPotentialBlockSizeVariableSMemWithFlags(int * +# 2101 +minGridSize, int * +# 2102 +blockSize, T +# 2103 +func, UnaryFunction +# 2104 +blockSizeToDynamicSMemSize, int +# 2105 +blockSizeLimit = 0, unsigned +# 2106 +flags = 0) +# 2107 +{ +# 2108 +cudaError_t status; +# 2111 +int device; +# 2112 +cudaFuncAttributes attr; +# 2115 +int maxThreadsPerMultiProcessor; +# 2116 +int warpSize; +# 2117 +int devMaxThreadsPerBlock; +# 2118 +int multiProcessorCount; +# 2119 +int funcMaxThreadsPerBlock; +# 2120 +int occupancyLimit; +# 2121 +int granularity; +# 2124 +int maxBlockSize = 0; +# 2125 +int numBlocks = 0; +# 2126 +int maxOccupancy = 0; +# 2129 +int blockSizeToTryAligned; +# 2130 +int blockSizeToTry; +# 2131 +int blockSizeLimitAligned; +# 2132 +int occupancyInBlocks; +# 2133 +int occupancyInThreads; +# 2134 +size_t dynamicSMemSize; +# 2140 +if (((!minGridSize) || (!blockSize)) || (!func)) { +# 2141 +return cudaErrorInvalidValue; +# 2142 +} +# 2148 +status = ::cudaGetDevice(&device); +# 2149 +if (status != (cudaSuccess)) { +# 2150 +return status; +# 2151 +} +# 2153 +status = cudaDeviceGetAttribute(&maxThreadsPerMultiProcessor, cudaDevAttrMaxThreadsPerMultiProcessor, device); +# 2157 +if (status != (cudaSuccess)) { +# 2158 +return status; +# 2159 +} +# 2161 +status = cudaDeviceGetAttribute(&warpSize, cudaDevAttrWarpSize, device); +# 2165 +if (status != (cudaSuccess)) { +# 2166 +return status; +# 2167 +} +# 2169 +status = cudaDeviceGetAttribute(&devMaxThreadsPerBlock, cudaDevAttrMaxThreadsPerBlock, device); +# 2173 +if (status != (cudaSuccess)) { +# 2174 +return status; +# 2175 +} +# 2177 +status = cudaDeviceGetAttribute(&multiProcessorCount, cudaDevAttrMultiProcessorCount, device); +# 2181 +if (status != (cudaSuccess)) { +# 2182 +return status; +# 2183 +} +# 2185 +status = cudaFuncGetAttributes(&attr, func); +# 2186 +if (status != (cudaSuccess)) { +# 2187 +return status; +# 2188 +} +# 2190 +funcMaxThreadsPerBlock = (attr.maxThreadsPerBlock); +# 2196 +occupancyLimit = maxThreadsPerMultiProcessor; +# 2197 +granularity = warpSize; +# 2199 +if (blockSizeLimit == 0) { +# 2200 +blockSizeLimit = devMaxThreadsPerBlock; +# 2201 +} +# 2203 +if (devMaxThreadsPerBlock < blockSizeLimit) { +# 2204 +blockSizeLimit = devMaxThreadsPerBlock; +# 2205 +} +# 2207 +if (funcMaxThreadsPerBlock < blockSizeLimit) { +# 2208 +blockSizeLimit = funcMaxThreadsPerBlock; +# 2209 +} +# 2211 +blockSizeLimitAligned = (((blockSizeLimit + (granularity - 1)) / granularity) * granularity); +# 2213 +for (blockSizeToTryAligned = blockSizeLimitAligned; blockSizeToTryAligned > 0; blockSizeToTryAligned -= granularity) { +# 2217 +if (blockSizeLimit < blockSizeToTryAligned) { +# 2218 +blockSizeToTry = blockSizeLimit; +# 2219 +} else { +# 2220 +blockSizeToTry = blockSizeToTryAligned; +# 2221 +} +# 2223 +dynamicSMemSize = blockSizeToDynamicSMemSize(blockSizeToTry); +# 2225 +status = cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(&occupancyInBlocks, func, blockSizeToTry, dynamicSMemSize, flags); +# 2232 +if (status != (cudaSuccess)) { +# 2233 +return status; +# 2234 +} +# 2236 +occupancyInThreads = (blockSizeToTry * occupancyInBlocks); +# 2238 +if (occupancyInThreads > maxOccupancy) { +# 2239 +maxBlockSize = blockSizeToTry; +# 2240 +numBlocks = occupancyInBlocks; +# 2241 +maxOccupancy = occupancyInThreads; +# 2242 +} +# 2246 +if (occupancyLimit == maxOccupancy) { +# 2247 +break; +# 2248 +} +# 2249 +} +# 2257 +(*minGridSize) = (numBlocks * multiProcessorCount); +# 2258 +(*blockSize) = maxBlockSize; +# 2260 +return status; +# 2261 +} +# 2295 "/usr/include/cuda_runtime.h" 3 +template< class UnaryFunction, class T> static inline cudaError_t +# 2296 +cudaOccupancyMaxPotentialBlockSizeVariableSMem(int * +# 2297 +minGridSize, int * +# 2298 +blockSize, T +# 2299 +func, UnaryFunction +# 2300 +blockSizeToDynamicSMemSize, int +# 2301 +blockSizeLimit = 0) +# 2302 +{ +# 2303 +return cudaOccupancyMaxPotentialBlockSizeVariableSMemWithFlags(minGridSize, blockSize, func, blockSizeToDynamicSMemSize, blockSizeLimit, 0); +# 2304 +} +# 2341 "/usr/include/cuda_runtime.h" 3 +template< class T> static inline cudaError_t +# 2342 +cudaOccupancyMaxPotentialBlockSize(int * +# 2343 +minGridSize, int * +# 2344 +blockSize, T +# 2345 +func, size_t +# 2346 +dynamicSMemSize = 0, int +# 2347 +blockSizeLimit = 0) +# 2348 +{ +# 2349 +return cudaOccupancyMaxPotentialBlockSizeVariableSMemWithFlags(minGridSize, blockSize, func, ((__cudaOccupancyB2DHelper)(dynamicSMemSize)), blockSizeLimit, 0); +# 2350 +} +# 2379 "/usr/include/cuda_runtime.h" 3 +template< class T> static inline cudaError_t +# 2380 +cudaOccupancyAvailableDynamicSMemPerBlock(size_t * +# 2381 +dynamicSmemSize, T +# 2382 +func, int +# 2383 +numBlocks, int +# 2384 +blockSize) +# 2385 +{ +# 2386 +return ::cudaOccupancyAvailableDynamicSMemPerBlock(dynamicSmemSize, (const void *)func, numBlocks, blockSize); +# 2387 +} +# 2438 "/usr/include/cuda_runtime.h" 3 +template< class T> static inline cudaError_t +# 2439 +cudaOccupancyMaxPotentialBlockSizeWithFlags(int * +# 2440 +minGridSize, int * +# 2441 +blockSize, T +# 2442 +func, size_t +# 2443 +dynamicSMemSize = 0, int +# 2444 +blockSizeLimit = 0, unsigned +# 2445 +flags = 0) +# 2446 +{ +# 2447 +return cudaOccupancyMaxPotentialBlockSizeVariableSMemWithFlags(minGridSize, blockSize, func, ((__cudaOccupancyB2DHelper)(dynamicSMemSize)), blockSizeLimit, flags); +# 2448 +} +# 2482 "/usr/include/cuda_runtime.h" 3 +template< class T> static inline cudaError_t +# 2483 +cudaOccupancyMaxPotentialClusterSize(int * +# 2484 +clusterSize, T * +# 2485 +func, const cudaLaunchConfig_t * +# 2486 +config) +# 2487 +{ +# 2488 +return ::cudaOccupancyMaxPotentialClusterSize(clusterSize, (const void *)func, config); +# 2489 +} +# 2525 "/usr/include/cuda_runtime.h" 3 +template< class T> static inline cudaError_t +# 2526 +cudaOccupancyMaxActiveClusters(int * +# 2527 +numClusters, T * +# 2528 +func, const cudaLaunchConfig_t * +# 2529 +config) +# 2530 +{ +# 2531 +return ::cudaOccupancyMaxActiveClusters(numClusters, (const void *)func, config); +# 2532 +} +# 2565 "/usr/include/cuda_runtime.h" 3 +template< class T> inline cudaError_t +# 2566 +cudaFuncGetAttributes(cudaFuncAttributes * +# 2567 +attr, T * +# 2568 +entry) +# 2570 +{ +# 2571 +return ::cudaFuncGetAttributes(attr, (const void *)entry); +# 2572 +} +# 2627 "/usr/include/cuda_runtime.h" 3 +template< class T> static inline cudaError_t +# 2628 +cudaFuncSetAttribute(T * +# 2629 +entry, cudaFuncAttribute +# 2630 +attr, int +# 2631 +value) +# 2633 +{ +# 2634 +return ::cudaFuncSetAttribute((const void *)entry, attr, value); +# 2635 +} +# 2659 "/usr/include/cuda_runtime.h" 3 +template< class T, int dim> +# 2660 +__attribute((deprecated)) static inline cudaError_t cudaBindSurfaceToArray(const surface< T, dim> & +# 2661 +surf, cudaArray_const_t +# 2662 +array, const cudaChannelFormatDesc & +# 2663 +desc) +# 2665 +{ +# 2666 +return ::cudaBindSurfaceToArray(&surf, array, &desc); +# 2667 +} +# 2690 "/usr/include/cuda_runtime.h" 3 +template< class T, int dim> +# 2691 +__attribute((deprecated)) static inline cudaError_t cudaBindSurfaceToArray(const surface< T, dim> & +# 2692 +surf, cudaArray_const_t +# 2693 +array) +# 2695 +{ +# 2696 +cudaChannelFormatDesc desc; +# 2697 +cudaError_t err = ::cudaGetChannelDesc(&desc, array); +# 2699 +return (err == (cudaSuccess)) ? cudaBindSurfaceToArray(surf, array, desc) : err; +# 2700 +} +# 2711 "/usr/include/cuda_runtime.h" 3 +#pragma GCC diagnostic pop +# 64 "CMakeCUDACompilerId.cu" +const char *info_compiler = ("INFO:compiler[NVIDIA]"); +# 66 +const char *info_simulate = ("INFO:simulate[GNU]"); +# 369 "CMakeCUDACompilerId.cu" +const char info_version[] = {'I', 'N', 'F', 'O', ':', 'c', 'o', 'm', 'p', 'i', 'l', 'e', 'r', '_', 'v', 'e', 'r', 's', 'i', 'o', 'n', '[', (('0') + ((11 / 10000000) % 10)), (('0') + ((11 / 1000000) % 10)), (('0') + ((11 / 100000) % 10)), (('0') + ((11 / 10000) % 10)), (('0') + ((11 / 1000) % 10)), (('0') + ((11 / 100) % 10)), (('0') + ((11 / 10) % 10)), (('0') + (11 % 10)), '.', (('0') + ((8 / 10000000) % 10)), (('0') + ((8 / 1000000) % 10)), (('0') + ((8 / 100000) % 10)), (('0') + ((8 / 10000) % 10)), (('0') + ((8 / 1000) % 10)), (('0') + ((8 / 100) % 10)), (('0') + ((8 / 10) % 10)), (('0') + (8 % 10)), '.', (('0') + ((89 / 10000000) % 10)), (('0') + ((89 / 1000000) % 10)), (('0') + ((89 / 100000) % 10)), (('0') + ((89 / 10000) % 10)), (('0') + ((89 / 1000) % 10)), (('0') + ((89 / 100) % 10)), (('0') + ((89 / 10) % 10)), (('0') + (89 % 10)), ']', '\000'}; +# 398 "CMakeCUDACompilerId.cu" +const char info_simulate_version[] = {'I', 'N', 'F', 'O', ':', 's', 'i', 'm', 'u', 'l', 'a', 't', 'e', '_', 'v', 'e', 'r', 's', 'i', 'o', 'n', '[', (('0') + ((9 / 10000000) % 10)), (('0') + ((9 / 1000000) % 10)), (('0') + ((9 / 100000) % 10)), (('0') + ((9 / 10000) % 10)), (('0') + ((9 / 1000) % 10)), (('0') + ((9 / 100) % 10)), (('0') + ((9 / 10) % 10)), (('0') + (9 % 10)), '.', (('0') + ((4 / 10000000) % 10)), (('0') + ((4 / 1000000) % 10)), (('0') + ((4 / 100000) % 10)), (('0') + ((4 / 10000) % 10)), (('0') + ((4 / 1000) % 10)), (('0') + ((4 / 100) % 10)), (('0') + ((4 / 10) % 10)), (('0') + (4 % 10)), ']', '\000'}; +# 418 +const char *info_platform = ("INFO:platform[Linux]"); +# 419 +const char *info_arch = ("INFO:arch[]"); +# 423 +const char *info_language_standard_default = ("INFO:standard_default[14]"); +# 439 +const char *info_language_extensions_default = ("INFO:extensions_default[ON]"); +# 450 +int main(int argc, char *argv[]) +# 451 +{ +# 452 +int require = 0; +# 453 +require += (info_compiler[argc]); +# 454 +require += (info_platform[argc]); +# 456 +require += (info_version[argc]); +# 459 +require += (info_simulate[argc]); +# 462 +require += (info_simulate_version[argc]); +# 464 +require += (info_language_standard_default[argc]); +# 465 +require += (info_language_extensions_default[argc]); +# 466 +(void)argv; +# 467 +return require; +# 468 +} + +# 1 "CMakeCUDACompilerId.cudafe1.stub.c" +#define _NV_ANON_NAMESPACE _GLOBAL__N__fa924b2e_22_CMakeCUDACompilerId_cu_bd57c623 +#ifdef _NV_ANON_NAMESPACE +#endif +# 1 "CMakeCUDACompilerId.cudafe1.stub.c" +#include "CMakeCUDACompilerId.cudafe1.stub.c" +# 1 "CMakeCUDACompilerId.cudafe1.stub.c" +#undef _NV_ANON_NAMESPACE diff --git a/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cudafe1.gpu b/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cudafe1.gpu new file mode 100644 index 0000000000000000000000000000000000000000..21aaf44374a2c5076c35475183e2c9c11809a4b4 --- /dev/null +++ b/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cudafe1.gpu @@ -0,0 +1,7 @@ +typedef char __nv_bool; +# 209 "/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h" 3 +typedef unsigned long size_t; +#include "crt/device_runtime.h" +# 258 "/usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h" 3 +typedef unsigned long _ZSt6size_t; +#include "common_functions.h" diff --git a/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cudafe1.stub.c b/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cudafe1.stub.c new file mode 100644 index 0000000000000000000000000000000000000000..2ebe7e6ab7c5a474ab073ef218e07966ff2a860a --- /dev/null +++ b/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/tmp/CMakeCUDACompilerId.cudafe1.stub.c @@ -0,0 +1,15 @@ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wunused-function" +#pragma GCC diagnostic ignored "-Wcast-qual" +#define __NV_CUBIN_HANDLE_STORAGE__ static +#if !defined(__CUDA_INCLUDE_COMPILER_INTERNAL_HEADERS__) +#define __CUDA_INCLUDE_COMPILER_INTERNAL_HEADERS__ +#endif +#include "crt/host_runtime.h" +#include "CMakeCUDACompilerId.fatbin.c" +static void __nv_cudaEntityRegisterCallback(void **); +static void __sti____cudaRegisterAll(void) __attribute__((__constructor__)); +static void __nv_cudaEntityRegisterCallback(void **__T0){__nv_dummy_param_ref(__T0);__nv_save_fatbinhandle_for_managed_rt(__T0);} +static void __sti____cudaRegisterAll(void){__cudaRegisterBinary(__nv_cudaEntityRegisterCallback);} + +#pragma GCC diagnostic pop diff --git a/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/tmp/CMakeCUDACompilerId.fatbin b/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/tmp/CMakeCUDACompilerId.fatbin new file mode 100644 index 0000000000000000000000000000000000000000..40961c5adafd04e65369ea12fdce05cbb4d444fc Binary files /dev/null and b/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/tmp/CMakeCUDACompilerId.fatbin differ diff --git a/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/tmp/CMakeCUDACompilerId.fatbin.c b/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/tmp/CMakeCUDACompilerId.fatbin.c new file mode 100644 index 0000000000000000000000000000000000000000..345f8829205f9ec9a0b2d59687ebb82a3c752072 --- /dev/null +++ b/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/tmp/CMakeCUDACompilerId.fatbin.c @@ -0,0 +1,60 @@ +#ifndef __SKIP_INTERNAL_FATBINARY_HEADERS +#include "fatbinary_section.h" +#endif +#define __CUDAFATBINSECTION ".nvFatBinSegment" +#define __CUDAFATBINDATASECTION ".nv_fatbin" +asm( +".section .nv_fatbin, \"a\"\n" +".align 8\n" +"fatbinData:\n" +".quad 0x00100001ba55ed50,0x0000000000000448,0x0000004001010002,0x0000000000000388\n" +".quad 0x0000000000000000,0x0000003400010007,0x0000000000000000,0x0000000000000011\n" +".quad 0x0000000000000000,0x0000000000000000,0x33010102464c457f,0x0000000000000007\n" +".quad 0x0000007600be0002,0x0000000000000000,0x0000000000000318,0x00000000000001d8\n" +".quad 0x0038004000340534,0x0001000500400002,0x7472747368732e00,0x747274732e006261\n" +".quad 0x746d79732e006261,0x746d79732e006261,0x78646e68735f6261,0x666e692e766e2e00\n" +".quad 0x65722e766e2e006f,0x6e6f697463612e6c,0x72747368732e0000,0x7274732e00626174\n" +".quad 0x6d79732e00626174,0x6d79732e00626174,0x646e68735f626174,0x6e692e766e2e0078\n" +".quad 0x722e766e2e006f66,0x6f697463612e6c65,0x000000000000006e,0x0000000000000000\n" +".quad 0x0000000000000000,0x0000000000000000,0x0004000300000032,0x0000000000000000\n" +".quad 0x0000000000000000,0x000000000000004b,0x222f0a1008020200,0x0000000008000000\n" +".quad 0x0000000008080000,0x0000000008100000,0x0000000008180000,0x0000000008200000\n" +".quad 0x0000000008280000,0x0000000008300000,0x0000000008380000,0x0000000008000001\n" +".quad 0x0000000008080001,0x0000000008100001,0x0000000008180001,0x0000000008200001\n" +".quad 0x0000000008280001,0x0000000008300001,0x0000000008380001,0x0000000008000002\n" +".quad 0x0000000008080002,0x0000000008100002,0x0000000008180002,0x0000000008200002\n" +".quad 0x0000000008280002,0x0000000008300002,0x0000000008380002,0x0000002c14000000\n" +".quad 0x000000000c000003,0x0000000000000000,0x0000000000000000,0x0000000000000000\n" +".quad 0x0000000000000000,0x0000000000000000,0x0000000000000000,0x0000000000000000\n" +".quad 0x0000000000000000,0x0000000300000001,0x0000000000000000,0x0000000000000000\n" +".quad 0x0000000000000040,0x0000000000000041,0x0000000000000000,0x0000000000000001\n" +".quad 0x0000000000000000,0x000000030000000b,0x0000000000000000,0x0000000000000000\n" +".quad 0x0000000000000081,0x0000000000000041,0x0000000000000000,0x0000000000000001\n" +".quad 0x0000000000000000,0x0000000200000013,0x0000000000000000,0x0000000000000000\n" +".quad 0x00000000000000c8,0x0000000000000030,0x0000000200000002,0x0000000000000008\n" +".quad 0x0000000000000018,0x7000000b00000032,0x0000000000000000,0x0000000000000000\n" +".quad 0x00000000000000f8,0x00000000000000e0,0x0000000000000000,0x0000000000000008\n" +".quad 0x0000000000000008,0x0000000500000006,0x0000000000000318,0x0000000000000000\n" +".quad 0x0000000000000000,0x0000000000000070,0x0000000000000070,0x0000000000000008\n" +".quad 0x0000000500000001,0x0000000000000318,0x0000000000000000,0x0000000000000000\n" +".quad 0x0000000000000070,0x0000000000000070,0x0000000000000008,0x0000004801010001\n" +".quad 0x0000000000000038,0x0000004000000036,0x0000003400070008,0x0000000000000000\n" +".quad 0x0000000000002011,0x0000000000000000,0x0000000000000038,0x0000000000000000\n" +".quad 0x762e21f000010a13,0x37206e6f69737265,0x677261742e0a382e,0x32355f6d73207465\n" +".quad 0x7365726464612e0a, 0x3620657a69735f73, 0x0000000a0a0a0a34\n" +".text\n"); +#ifdef __cplusplus +extern "C" { +#endif +extern const unsigned long long fatbinData[139]; +#ifdef __cplusplus +} +#endif +#ifdef __cplusplus +extern "C" { +#endif +static const __fatBinC_Wrapper_t __fatDeviceText __attribute__ ((aligned (8))) __attribute__ ((section (__CUDAFATBINSECTION)))= + { 0x466243b1, 1, fatbinData, 0 }; +#ifdef __cplusplus +} +#endif diff --git a/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/tmp/CMakeCUDACompilerId.module_id b/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/tmp/CMakeCUDACompilerId.module_id new file mode 100644 index 0000000000000000000000000000000000000000..5a5bc305978d3b5636725cca729253240903d4c8 --- /dev/null +++ b/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/tmp/CMakeCUDACompilerId.module_id @@ -0,0 +1 @@ +_fa924b2e_22_CMakeCUDACompilerId_cu_bd57c623 \ No newline at end of file diff --git a/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/tmp/CMakeCUDACompilerId.o b/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/tmp/CMakeCUDACompilerId.o new file mode 100644 index 0000000000000000000000000000000000000000..4c0f0bf8c36a28fdeb3028e28704ee12f347e3a9 Binary files /dev/null and b/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/tmp/CMakeCUDACompilerId.o differ diff --git a/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/tmp/CMakeCUDACompilerId.ptx b/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/tmp/CMakeCUDACompilerId.ptx new file mode 100644 index 0000000000000000000000000000000000000000..b55e351c97e919cf8a71854ffaaed1eb272f7c9a --- /dev/null +++ b/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/tmp/CMakeCUDACompilerId.ptx @@ -0,0 +1,14 @@ +// +// Generated by NVIDIA NVVM Compiler +// +// Compiler Build ID: CL-31833905 +// Cuda compilation tools, release 11.8, V11.8.89 +// Based on NVVM 7.0.1 +// + +.version 7.8 +.target sm_52 +.address_size 64 + + + diff --git a/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/tmp/CMakeCUDACompilerId.sm_52.cubin b/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/tmp/CMakeCUDACompilerId.sm_52.cubin new file mode 100644 index 0000000000000000000000000000000000000000..dc3c40cc31dfc693a9cf45baf4b5965bd85041c0 Binary files /dev/null and b/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/tmp/CMakeCUDACompilerId.sm_52.cubin differ diff --git a/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/tmp/a_dlink.fatbin b/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/tmp/a_dlink.fatbin new file mode 100644 index 0000000000000000000000000000000000000000..94942188e2797063679fdaa2ba1f4cb52df8dd8e Binary files /dev/null and b/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/tmp/a_dlink.fatbin differ diff --git a/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/tmp/a_dlink.fatbin.c b/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/tmp/a_dlink.fatbin.c new file mode 100644 index 0000000000000000000000000000000000000000..c683fe0079b857c7f7b9623bab54697920429d88 --- /dev/null +++ b/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/tmp/a_dlink.fatbin.c @@ -0,0 +1,61 @@ +#ifndef __SKIP_INTERNAL_FATBINARY_HEADERS +#include "fatbinary_section.h" +#endif +#define __CUDAFATBINSECTION ".nvFatBinSegment" +#define __CUDAFATBINDATASECTION ".nv_fatbin" +asm( +".section .nv_fatbin, \"a\"\n" +".align 8\n" +"fatbinData:\n" +".quad 0x00100001ba55ed50,0x0000000000000470,0x0000004001010002,0x0000000000000430\n" +".quad 0x0000000000000000,0x0000003400010007,0x0000000000000000,0x0000000000000011\n" +".quad 0x0000000000000000,0x0000000000000000,0x33010102464c457f,0x0000000000000007\n" +".quad 0x0000007600be0002,0x0000000000000000,0x00000000000003c0,0x0000000000000240\n" +".quad 0x0038004000340534,0x0001000600400002,0x7472747368732e00,0x747274732e006261\n" +".quad 0x746d79732e006261,0x746d79732e006261,0x78646e68735f6261,0x666e692e766e2e00\n" +".quad 0x61632e766e2e006f,0x0068706172676c6c,0x746f72702e766e2e,0x6e2e00657079746f\n" +".quad 0x63612e6c65722e76,0x732e00006e6f6974,0x0062617472747368,0x006261747274732e\n" +".quad 0x006261746d79732e,0x5f6261746d79732e,0x6e2e0078646e6873,0x2e006f666e692e76\n" +".quad 0x676c6c61632e766e,0x766e2e0068706172,0x79746f746f72702e,0x722e766e2e006570\n" +".quad 0x6f697463612e6c65,0x000000000000006e,0x0000000000000000,0x0000000000000000\n" +".quad 0x0000000000000000,0x0004000300000032,0x0000000000000000,0x0000000000000000\n" +".quad 0x000500030000004e,0x0000000000000000,0x0000000000000000,0xffffffff00000000\n" +".quad 0xfffffffe00000000,0xfffffffd00000000,0x000000000000004b,0x222f0a1008020200\n" +".quad 0x0000000008000000,0x0000000008080000,0x0000000008100000,0x0000000008180000\n" +".quad 0x0000000008200000,0x0000000008280000,0x0000000008300000,0x0000000008380000\n" +".quad 0x0000000008000001,0x0000000008080001,0x0000000008100001,0x0000000008180001\n" +".quad 0x0000000008200001,0x0000000008280001,0x0000000008300001,0x0000000008380001\n" +".quad 0x0000000008000002,0x0000000008080002,0x0000000008100002,0x0000000008180002\n" +".quad 0x0000000008200002,0x0000000008280002,0x0000000008300002,0x0000000008380002\n" +".quad 0x0000002c14000000,0x000000000c000003,0x0000000000000000,0x0000000000000000\n" +".quad 0x0000000000000000,0x0000000000000000,0x0000000000000000,0x0000000000000000\n" +".quad 0x0000000000000000,0x0000000000000000,0x0000000300000001,0x0000000000000000\n" +".quad 0x0000000000000000,0x0000000000000040,0x000000000000005d,0x0000000000000000\n" +".quad 0x0000000000000001,0x0000000000000000,0x000000030000000b,0x0000000000000000\n" +".quad 0x0000000000000000,0x000000000000009d,0x000000000000005d,0x0000000000000000\n" +".quad 0x0000000000000001,0x0000000000000000,0x0000000200000013,0x0000000000000000\n" +".quad 0x0000000000000000,0x0000000000000100,0x0000000000000048,0x0000000300000002\n" +".quad 0x0000000000000008,0x0000000000000018,0x7000000100000032,0x0000000000000000\n" +".quad 0x0000000000000000,0x0000000000000148,0x0000000000000018,0x0000000000000003\n" +".quad 0x0000000000000004,0x0000000000000008,0x7000000b0000004e,0x0000000000000000\n" +".quad 0x0000000000000000,0x0000000000000160,0x00000000000000e0,0x0000000000000000\n" +".quad 0x0000000000000008,0x0000000000000008,0x0000000500000006,0x00000000000003c0\n" +".quad 0x0000000000000000,0x0000000000000000,0x0000000000000070,0x0000000000000070\n" +".quad 0x0000000000000008,0x0000000500000001,0x00000000000003c0,0x0000000000000000\n" +".quad 0x0000000000000000,0x0000000000000070,0x0000000000000070,0x0000000000000008\n" +".text\n"); +#ifdef __cplusplus +extern "C" { +#endif +extern const unsigned long long fatbinData[144]; +#ifdef __cplusplus +} +#endif +#ifdef __cplusplus +extern "C" { +#endif +static const __fatBinC_Wrapper_t __fatDeviceText __attribute__ ((aligned (8))) __attribute__ ((section (__CUDAFATBINSECTION)))= + { 0x466243b1, 2, fatbinData, (void**)__cudaPrelinkedFatbins }; +#ifdef __cplusplus +} +#endif diff --git a/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/tmp/a_dlink.o b/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/tmp/a_dlink.o new file mode 100644 index 0000000000000000000000000000000000000000..340c2a08adc85a5592dd2dc5d3983253b1f89cd3 Binary files /dev/null and b/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/tmp/a_dlink.o differ diff --git a/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/tmp/a_dlink.reg.c b/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/tmp/a_dlink.reg.c new file mode 100644 index 0000000000000000000000000000000000000000..af69ecb283315f5d9e6537ba2a84b83fc2d08f46 --- /dev/null +++ b/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/tmp/a_dlink.reg.c @@ -0,0 +1 @@ +#define NUM_PRELINKED_OBJECTS 0 diff --git a/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/tmp/a_dlink.sm_52.cubin b/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/tmp/a_dlink.sm_52.cubin new file mode 100644 index 0000000000000000000000000000000000000000..231a0a4837c84119205d5aaa48897870bf3d8e16 Binary files /dev/null and b/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/tmp/a_dlink.sm_52.cubin differ diff --git a/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCXX/CMakeCXXCompilerId.cpp b/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCXX/CMakeCXXCompilerId.cpp new file mode 100644 index 0000000000000000000000000000000000000000..746b1672e6408e180134871066e63c54fb6e474d --- /dev/null +++ b/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCXX/CMakeCXXCompilerId.cpp @@ -0,0 +1,855 @@ +/* This source file must have a .cpp extension so that all C++ compilers + recognize the extension without flags. Borland does not know .cxx for + example. */ +#ifndef __cplusplus +# error "A C compiler has been selected for C++." +#endif + +#if !defined(__has_include) +/* If the compiler does not have __has_include, pretend the answer is + always no. */ +# define __has_include(x) 0 +#endif + + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__COMO__) +# define COMPILER_ID "Comeau" + /* __COMO_VERSION__ = VRR */ +# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100) +# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100) + +#elif defined(__INTEL_COMPILER) || defined(__ICC) +# define COMPILER_ID "Intel" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# if defined(__GNUC__) +# define SIMULATE_ID "GNU" +# endif + /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later, + except that a few beta releases use the old format with V=2021. */ +# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111 +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) +# if defined(__INTEL_COMPILER_UPDATE) +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# else +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +# endif +# else +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE) + /* The third version component from --version is an update index, + but no macro is provided for it. */ +# define COMPILER_VERSION_PATCH DEC(0) +# endif +# if defined(__INTEL_COMPILER_BUILD_DATE) + /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ +# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +# endif +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +# elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER) +# define COMPILER_ID "IntelLLVM" +#if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +#endif +#if defined(__GNUC__) +# define SIMULATE_ID "GNU" +#endif +/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and + * later. Look for 6 digit vs. 8 digit version number to decide encoding. + * VVVV is no smaller than the current year when a version is released. + */ +#if __INTEL_LLVM_COMPILER < 1000000L +# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10) +#else +# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000) +# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100) +#endif +#if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +#endif +#if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +#elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +#endif +#if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +#endif +#if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +#endif + +#elif defined(__PATHCC__) +# define COMPILER_ID "PathScale" +# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + +#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) +# define COMPILER_ID "Embarcadero" +# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_CC) +# define COMPILER_ID "SunPro" +# if __SUNPRO_CC >= 0x5100 + /* __SUNPRO_CC = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# endif + +#elif defined(__HP_aCC) +# define COMPILER_ID "HP" + /* __HP_aCC = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100) + +#elif defined(__DECCXX) +# define COMPILER_ID "Compaq" + /* __DECCXX_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000) + +#elif defined(__IBMCPP__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__open_xl__) && defined(__clang__) +# define COMPILER_ID "IBMClang" +# define COMPILER_VERSION_MAJOR DEC(__open_xl_version__) +# define COMPILER_VERSION_MINOR DEC(__open_xl_release__) +# define COMPILER_VERSION_PATCH DEC(__open_xl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__open_xl_ptf_fix_level__) + + +#elif defined(__ibmxl__) && defined(__clang__) +# define COMPILER_ID "XLClang" +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) + + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800 +# define COMPILER_ID "XL" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800 +# define COMPILER_ID "VisualAge" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__NVCOMPILER) +# define COMPILER_ID "NVHPC" +# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) +# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) +# if defined(__NVCOMPILER_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) +# endif + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__CLANG_FUJITSU) +# define COMPILER_ID "FujitsuClang" +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# define COMPILER_VERSION_INTERNAL_STR __clang_version__ + + +#elif defined(__FUJITSU) +# define COMPILER_ID "Fujitsu" +# if defined(__FCC_version__) +# define COMPILER_VERSION __FCC_version__ +# elif defined(__FCC_major__) +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# endif +# if defined(__fcc_version) +# define COMPILER_VERSION_INTERNAL DEC(__fcc_version) +# elif defined(__FCC_VERSION) +# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION) +# endif + + +#elif defined(__ghs__) +# define COMPILER_ID "GHS" +/* __GHS_VERSION_NUMBER = VVVVRP */ +# ifdef __GHS_VERSION_NUMBER +# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) +# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) +# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) +# endif + +#elif defined(__TASKING__) +# define COMPILER_ID "Tasking" + # define COMPILER_VERSION_MAJOR DEC(__VERSION__/1000) + # define COMPILER_VERSION_MINOR DEC(__VERSION__ % 100) +# define COMPILER_VERSION_INTERNAL DEC(__VERSION__) + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__ARMCC_VERSION) && !defined(__clang__) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) +# define COMPILER_ID "ARMClang" + # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000) +# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__LCC__) && (defined(__GNUC__) || defined(__GNUG__) || defined(__MCST__)) +# define COMPILER_ID "LCC" +# define COMPILER_VERSION_MAJOR DEC(__LCC__ / 100) +# define COMPILER_VERSION_MINOR DEC(__LCC__ % 100) +# if defined(__LCC_MINOR__) +# define COMPILER_VERSION_PATCH DEC(__LCC_MINOR__) +# endif +# if defined(__GNUC__) && defined(__GNUC_MINOR__) +# define SIMULATE_ID "GNU" +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +# if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif +# endif + +#elif defined(__GNUC__) || defined(__GNUG__) +# define COMPILER_ID "GNU" +# if defined(__GNUC__) +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# else +# define COMPILER_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(_ADI_COMPILER) +# define COMPILER_ID "ADSP" +#if defined(__VERSIONNUM__) + /* __VERSIONNUM__ = 0xVVRRPPTT */ +# define COMPILER_VERSION_MAJOR DEC(__VERSIONNUM__ >> 24 & 0xFF) +# define COMPILER_VERSION_MINOR DEC(__VERSIONNUM__ >> 16 & 0xFF) +# define COMPILER_VERSION_PATCH DEC(__VERSIONNUM__ >> 8 & 0xFF) +# define COMPILER_VERSION_TWEAK DEC(__VERSIONNUM__ & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) && defined(__ICCARM__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__)) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) +# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) +# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__MSYS__) +# define PLATFORM_ID "MSYS" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# elif defined(__VXWORKS__) +# define PLATFORM_ID "VxWorks" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#elif defined(__INTEGRITY) +# if defined(INT_178B) +# define PLATFORM_ID "Integrity178" + +# else /* regular Integrity */ +# define PLATFORM_ID "Integrity" +# endif + +# elif defined(_ADI_COMPILER) +# define PLATFORM_ID "ADSP" + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_ARM64EC) +# define ARCHITECTURE_ID "ARM64EC" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCRX__) +# define ARCHITECTURE_ID "RX" + +# elif defined(__ICCRH850__) +# define ARCHITECTURE_ID "RH850" + +# elif defined(__ICCRL78__) +# define ARCHITECTURE_ID "RL78" + +# elif defined(__ICCRISCV__) +# define ARCHITECTURE_ID "RISCV" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# elif defined(__ICC430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__ICCV850__) +# define ARCHITECTURE_ID "V850" + +# elif defined(__ICC8051__) +# define ARCHITECTURE_ID "8051" + +# elif defined(__ICCSTM8__) +# define ARCHITECTURE_ID "STM8" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__ghs__) +# if defined(__PPC64__) +# define ARCHITECTURE_ID "PPC64" + +# elif defined(__ppc__) +# define ARCHITECTURE_ID "PPC" + +# elif defined(__ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__x86_64__) +# define ARCHITECTURE_ID "x64" + +# elif defined(__i386__) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__TI_COMPILER_VERSION__) +# if defined(__TI_ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__MSP430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__TMS320C28XX__) +# define ARCHITECTURE_ID "TMS320C28x" + +# elif defined(__TMS320C6X__) || defined(_TMS320C6X) +# define ARCHITECTURE_ID "TMS320C6x" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +# elif defined(__ADSPSHARC__) +# define ARCHITECTURE_ID "SHARC" + +# elif defined(__ADSPBLACKFIN__) +# define ARCHITECTURE_ID "Blackfin" + +#elif defined(__TASKING__) + +# if defined(__CTC__) || defined(__CPTC__) +# define ARCHITECTURE_ID "TriCore" + +# elif defined(__CMCS__) +# define ARCHITECTURE_ID "MCS" + +# elif defined(__CARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__CARC__) +# define ARCHITECTURE_ID "ARC" + +# elif defined(__C51__) +# define ARCHITECTURE_ID "8051" + +# elif defined(__CPCP__) +# define ARCHITECTURE_ID "PCP" + +# else +# define ARCHITECTURE_ID "" +# endif + +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number. */ +#ifdef COMPILER_VERSION +char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]"; + +/* Construct a string literal encoding the version number components. */ +#elif defined(COMPILER_VERSION_MAJOR) +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#elif defined(COMPILER_VERSION_INTERNAL_STR) +char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]"; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + +#if defined(__INTEL_COMPILER) && defined(_MSVC_LANG) && _MSVC_LANG < 201403L +# if defined(__INTEL_CXX11_MODE__) +# if defined(__cpp_aggregate_nsdmi) +# define CXX_STD 201402L +# else +# define CXX_STD 201103L +# endif +# else +# define CXX_STD 199711L +# endif +#elif defined(_MSC_VER) && defined(_MSVC_LANG) +# define CXX_STD _MSVC_LANG +#else +# define CXX_STD __cplusplus +#endif + +const char* info_language_standard_default = "INFO" ":" "standard_default[" +#if CXX_STD > 202002L + "23" +#elif CXX_STD > 201703L + "20" +#elif CXX_STD >= 201703L + "17" +#elif CXX_STD >= 201402L + "14" +#elif CXX_STD >= 201103L + "11" +#else + "98" +#endif +"]"; + +const char* info_language_extensions_default = "INFO" ":" "extensions_default[" +#if (defined(__clang__) || defined(__GNUC__) || defined(__xlC__) || \ + defined(__TI_COMPILER_VERSION__)) && \ + !defined(__STRICT_ANSI__) + "ON" +#else + "OFF" +#endif +"]"; + +/*--------------------------------------------------------------------------*/ + +int main(int argc, char* argv[]) +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; + require += info_arch[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef COMPILER_VERSION_INTERNAL + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) + require += info_cray[argc]; +#endif + require += info_language_standard_default[argc]; + require += info_language_extensions_default[argc]; + (void)argv; + return require; +} diff --git a/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCXX/a.out b/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCXX/a.out new file mode 100644 index 0000000000000000000000000000000000000000..f186b2b0d4d4469c2d340e068a3ed41aec3e4473 Binary files /dev/null and b/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCXX/a.out differ diff --git a/build/testing/cmake/test_install/CMakeFiles/CMakeConfigureLog.yaml b/build/testing/cmake/test_install/CMakeFiles/CMakeConfigureLog.yaml new file mode 100644 index 0000000000000000000000000000000000000000..57cadb5261ef32c0d6d05344f112aa3193b230ce --- /dev/null +++ b/build/testing/cmake/test_install/CMakeFiles/CMakeConfigureLog.yaml @@ -0,0 +1,802 @@ + +--- +events: + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake-3.26/Modules/CMakeDetermineSystem.cmake:204 (message)" + - "CMakeLists.txt:8 (project)" + message: | + The system is: Linux - 5.15.0-67-generic - x86_64 + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake-3.26/Modules/CMakeDetermineCompilerId.cmake:17 (message)" + - "/usr/share/cmake-3.26/Modules/CMakeDetermineCompilerId.cmake:64 (__determine_compiler_id_test)" + - "/usr/share/cmake-3.26/Modules/CMakeDetermineCXXCompiler.cmake:126 (CMAKE_DETERMINE_COMPILER_ID)" + - "CMakeLists.txt:8 (project)" + message: | + Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded. + Compiler: /usr/bin/c++ + Build flags: + Id flags: + + The output was: + 0 + + + Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "a.out" + + The CXX compiler identification is GNU, found in: + /home/ubuntu/thrust/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCXX/a.out + + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake-3.26/Modules/CMakeDetermineCompilerId.cmake:1102 (message)" + - "/usr/share/cmake-3.26/Modules/CMakeDetermineCUDACompiler.cmake:75 (CMAKE_DETERMINE_COMPILER_ID_VENDOR)" + - "CMakeLists.txt:8 (project)" + message: | + Checking whether the CUDA compiler is NVIDIA using "" matched "nvcc: NVIDIA \\(R\\) Cuda compiler driver": + nvcc: NVIDIA (R) Cuda compiler driver + Copyright (c) 2005-2022 NVIDIA Corporation + Built on Wed_Sep_21_10:33:58_PDT_2022 + Cuda compilation tools, release 11.8, V11.8.89 + Build cuda_11.8.r11.8/compiler.31833905_0 + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake-3.26/Modules/CMakeDetermineCompilerId.cmake:17 (message)" + - "/usr/share/cmake-3.26/Modules/CMakeDetermineCompilerId.cmake:53 (__determine_compiler_id_test)" + - "/usr/share/cmake-3.26/Modules/CMakeDetermineCUDACompiler.cmake:307 (CMAKE_DETERMINE_COMPILER_ID)" + - "CMakeLists.txt:8 (project)" + message: | + Compiling the CUDA compiler identification source file "CMakeCUDACompilerId.cu" succeeded. + Compiler: /usr/bin/nvcc + Build flags: + Id flags: --keep;--keep-dir;tmp -v + + The output was: + 0 + #$ _NVVM_BRANCH_=nvvm + #$ _SPACE_= + #$ _CUDART_=cudart + #$ _HERE_=/usr/lib/nvidia-cuda-toolkit/bin + #$ _THERE_=/usr/lib/nvidia-cuda-toolkit/bin + #$ _TARGET_SIZE_= + #$ _TARGET_DIR_= + #$ _TARGET_SIZE_=64 + #$ NVVMIR_LIBRARY_DIR=/usr/lib/nvidia-cuda-toolkit/libdevice + #$ PATH=/usr/lib/nvidia-cuda-toolkit/bin:/home/ubuntu/.local/bin:/home/ubuntu/.local/bin:/home/ubuntu/.local/bin:/home/ubuntu/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin + #$ LIBRARIES= -L/usr/lib/x86_64-linux-gnu/stubs -L/usr/lib/x86_64-linux-gnu + #$ rm tmp/a_dlink.reg.c + #$ gcc -D__CUDA_ARCH__=520 -D__CUDA_ARCH_LIST__=520 -E -x c++ -DCUDA_DOUBLE_MATH_FUNCTIONS -D__CUDACC__ -D__NVCC__ -D__CUDACC_VER_MAJOR__=11 -D__CUDACC_VER_MINOR__=8 -D__CUDACC_VER_BUILD__=89 -D__CUDA_API_VER_MAJOR__=11 -D__CUDA_API_VER_MINOR__=8 -D__NVCC_DIAG_PRAGMA_SUPPORT__=1 -include "cuda_runtime.h" -m64 "CMakeCUDACompilerId.cu" -o "tmp/CMakeCUDACompilerId.cpp1.ii" + #$ cicc --c++14 --gnu_version=90400 --display_error_number --orig_src_file_name "CMakeCUDACompilerId.cu" --orig_src_path_name "/home/ubuntu/thrust/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/CMakeCUDACompilerId.cu" --allow_managed -arch compute_52 -m64 --no-version-ident -ftz=0 -prec_div=1 -prec_sqrt=1 -fmad=1 --include_file_name "CMakeCUDACompilerId.fatbin.c" -tused --gen_module_id_file --module_id_file_name "tmp/CMakeCUDACompilerId.module_id" --gen_c_file_name "tmp/CMakeCUDACompilerId.cudafe1.c" --stub_file_name "tmp/CMakeCUDACompilerId.cudafe1.stub.c" --gen_device_file_name "tmp/CMakeCUDACompilerId.cudafe1.gpu" "tmp/CMakeCUDACompilerId.cpp1.ii" -o "tmp/CMakeCUDACompilerId.ptx" + #$ ptxas -arch=sm_52 -m64 "tmp/CMakeCUDACompilerId.ptx" -o "tmp/CMakeCUDACompilerId.sm_52.cubin" + #$ fatbinary --create="tmp/CMakeCUDACompilerId.fatbin" -64 --cicc-cmdline="-ftz=0 -prec_div=1 -prec_sqrt=1 -fmad=1 " "--image3=kind=elf,sm=52,file=tmp/CMakeCUDACompilerId.sm_52.cubin" "--image3=kind=ptx,sm=52,file=tmp/CMakeCUDACompilerId.ptx" --embedded-fatbin="tmp/CMakeCUDACompilerId.fatbin.c" + #$ gcc -D__CUDA_ARCH_LIST__=520 -E -x c++ -D__CUDACC__ -D__NVCC__ -D__CUDACC_VER_MAJOR__=11 -D__CUDACC_VER_MINOR__=8 -D__CUDACC_VER_BUILD__=89 -D__CUDA_API_VER_MAJOR__=11 -D__CUDA_API_VER_MINOR__=8 -D__NVCC_DIAG_PRAGMA_SUPPORT__=1 -include "cuda_runtime.h" -m64 "CMakeCUDACompilerId.cu" -o "tmp/CMakeCUDACompilerId.cpp4.ii" + #$ cudafe++ --c++14 --gnu_version=90400 --display_error_number --orig_src_file_name "CMakeCUDACompilerId.cu" --orig_src_path_name "/home/ubuntu/thrust/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/CMakeCUDACompilerId.cu" --allow_managed --m64 --parse_templates --gen_c_file_name "tmp/CMakeCUDACompilerId.cudafe1.cpp" --stub_file_name "CMakeCUDACompilerId.cudafe1.stub.c" --module_id_file_name "tmp/CMakeCUDACompilerId.module_id" "tmp/CMakeCUDACompilerId.cpp4.ii" + #$ gcc -D__CUDA_ARCH__=520 -D__CUDA_ARCH_LIST__=520 -c -x c++ -DCUDA_DOUBLE_MATH_FUNCTIONS -m64 "tmp/CMakeCUDACompilerId.cudafe1.cpp" -o "tmp/CMakeCUDACompilerId.o" + #$ nvlink -m64 --arch=sm_52 --register-link-binaries="tmp/a_dlink.reg.c" -L/usr/lib/x86_64-linux-gnu/stubs -L/usr/lib/x86_64-linux-gnu -cpu-arch=X86_64 "tmp/CMakeCUDACompilerId.o" -lcudadevrt -o "tmp/a_dlink.sm_52.cubin" --host-ccbin "gcc" + #$ fatbinary --create="tmp/a_dlink.fatbin" -64 --cicc-cmdline="-ftz=0 -prec_div=1 -prec_sqrt=1 -fmad=1 " -link "--image3=kind=elf,sm=52,file=tmp/a_dlink.sm_52.cubin" --embedded-fatbin="tmp/a_dlink.fatbin.c" + #$ gcc -D__CUDA_ARCH_LIST__=520 -c -x c++ -DFATBINFILE="\\"tmp/a_dlink.fatbin.c\\"" -DREGISTERLINKBINARYFILE="\\"tmp/a_dlink.reg.c\\"" -I. -D__NV_EXTRA_INITIALIZATION= -D__NV_EXTRA_FINALIZATION= -D__CUDA_INCLUDE_COMPILER_INTERNAL_HEADERS__ -D__CUDACC_VER_MAJOR__=11 -D__CUDACC_VER_MINOR__=8 -D__CUDACC_VER_BUILD__=89 -D__CUDA_API_VER_MAJOR__=11 -D__CUDA_API_VER_MINOR__=8 -D__NVCC_DIAG_PRAGMA_SUPPORT__=1 -m64 "/usr/lib/nvidia-cuda-toolkit/bin/crt/link.stub" -o "tmp/a_dlink.o" + #$ g++ -D__CUDA_ARCH_LIST__=520 -m64 -Wl,--start-group "tmp/a_dlink.o" "tmp/CMakeCUDACompilerId.o" -L/usr/lib/x86_64-linux-gnu/stubs -L/usr/lib/x86_64-linux-gnu -lcudadevrt -lcudart_static -lrt -lpthread -ldl -Wl,--end-group -o "a.out" + + + Compilation of the CUDA compiler identification source "CMakeCUDACompilerId.cu" produced "a.out" + + The CUDA compiler identification is NVIDIA, found in: + /home/ubuntu/thrust/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/a.out + + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake-3.26/Modules/CMakeDetermineCUDACompiler.cmake:523 (message)" + - "CMakeLists.txt:8 (project)" + message: | + Parsed CUDA nvcc implicit link information: + found 'PATH=' string: [/usr/lib/nvidia-cuda-toolkit/bin:/home/ubuntu/.local/bin:/home/ubuntu/.local/bin:/home/ubuntu/.local/bin:/home/ubuntu/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin] + found 'LIBRARIES=' string: [-L/usr/lib/x86_64-linux-gnu/stubs -L/usr/lib/x86_64-linux-gnu] + considering line: [#$ rm tmp/a_dlink.reg.c] + considering line: [gcc -D__CUDA_ARCH__=520 -D__CUDA_ARCH_LIST__=520 -E -x c++ -DCUDA_DOUBLE_MATH_FUNCTIONS -D__CUDACC__ -D__NVCC__ -D__CUDACC_VER_MAJOR__=11 -D__CUDACC_VER_MINOR__=8 -D__CUDACC_VER_BUILD__=89 -D__CUDA_API_VER_MAJOR__=11 -D__CUDA_API_VER_MINOR__=8 -D__NVCC_DIAG_PRAGMA_SUPPORT__=1 -include "cuda_runtime.h" -m64 "CMakeCUDACompilerId.cu" -o "tmp/CMakeCUDACompilerId.cpp1.ii" ] + considering line: [cicc --c++14 --gnu_version=90400 --display_error_number --orig_src_file_name "CMakeCUDACompilerId.cu" --orig_src_path_name "/home/ubuntu/thrust/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/CMakeCUDACompilerId.cu" --allow_managed -arch compute_52 -m64 --no-version-ident -ftz=0 -prec_div=1 -prec_sqrt=1 -fmad=1 --include_file_name "CMakeCUDACompilerId.fatbin.c" -tused --gen_module_id_file --module_id_file_name "tmp/CMakeCUDACompilerId.module_id" --gen_c_file_name "tmp/CMakeCUDACompilerId.cudafe1.c" --stub_file_name "tmp/CMakeCUDACompilerId.cudafe1.stub.c" --gen_device_file_name "tmp/CMakeCUDACompilerId.cudafe1.gpu" "tmp/CMakeCUDACompilerId.cpp1.ii" -o "tmp/CMakeCUDACompilerId.ptx"] + considering line: [ptxas -arch=sm_52 -m64 "tmp/CMakeCUDACompilerId.ptx" -o "tmp/CMakeCUDACompilerId.sm_52.cubin" ] + considering line: [fatbinary --create="tmp/CMakeCUDACompilerId.fatbin" -64 --cicc-cmdline="-ftz=0 -prec_div=1 -prec_sqrt=1 -fmad=1 " "--image3=kind=elf,sm=52,file=tmp/CMakeCUDACompilerId.sm_52.cubin" "--image3=kind=ptx,sm=52,file=tmp/CMakeCUDACompilerId.ptx" --embedded-fatbin="tmp/CMakeCUDACompilerId.fatbin.c" ] + considering line: [gcc -D__CUDA_ARCH_LIST__=520 -E -x c++ -D__CUDACC__ -D__NVCC__ -D__CUDACC_VER_MAJOR__=11 -D__CUDACC_VER_MINOR__=8 -D__CUDACC_VER_BUILD__=89 -D__CUDA_API_VER_MAJOR__=11 -D__CUDA_API_VER_MINOR__=8 -D__NVCC_DIAG_PRAGMA_SUPPORT__=1 -include "cuda_runtime.h" -m64 "CMakeCUDACompilerId.cu" -o "tmp/CMakeCUDACompilerId.cpp4.ii" ] + considering line: [cudafe++ --c++14 --gnu_version=90400 --display_error_number --orig_src_file_name "CMakeCUDACompilerId.cu" --orig_src_path_name "/home/ubuntu/thrust/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/CMakeCUDACompilerId.cu" --allow_managed --m64 --parse_templates --gen_c_file_name "tmp/CMakeCUDACompilerId.cudafe1.cpp" --stub_file_name "CMakeCUDACompilerId.cudafe1.stub.c" --module_id_file_name "tmp/CMakeCUDACompilerId.module_id" "tmp/CMakeCUDACompilerId.cpp4.ii" ] + considering line: [gcc -D__CUDA_ARCH__=520 -D__CUDA_ARCH_LIST__=520 -c -x c++ -DCUDA_DOUBLE_MATH_FUNCTIONS -m64 "tmp/CMakeCUDACompilerId.cudafe1.cpp" -o "tmp/CMakeCUDACompilerId.o" ] + considering line: [nvlink -m64 --arch=sm_52 --register-link-binaries="tmp/a_dlink.reg.c" -L/usr/lib/x86_64-linux-gnu/stubs -L/usr/lib/x86_64-linux-gnu -cpu-arch=X86_64 "tmp/CMakeCUDACompilerId.o" -lcudadevrt -o "tmp/a_dlink.sm_52.cubin" --host-ccbin "gcc"] + ignoring nvlink line + considering line: [fatbinary --create="tmp/a_dlink.fatbin" -64 --cicc-cmdline="-ftz=0 -prec_div=1 -prec_sqrt=1 -fmad=1 " -link "--image3=kind=elf,sm=52,file=tmp/a_dlink.sm_52.cubin" --embedded-fatbin="tmp/a_dlink.fatbin.c" ] + considering line: [gcc -D__CUDA_ARCH_LIST__=520 -c -x c++ -DFATBINFILE="\\"tmp/a_dlink.fatbin.c\\"" -DREGISTERLINKBINARYFILE="\\"tmp/a_dlink.reg.c\\"" -I. -D__NV_EXTRA_INITIALIZATION= -D__NV_EXTRA_FINALIZATION= -D__CUDA_INCLUDE_COMPILER_INTERNAL_HEADERS__ -D__CUDACC_VER_MAJOR__=11 -D__CUDACC_VER_MINOR__=8 -D__CUDACC_VER_BUILD__=89 -D__CUDA_API_VER_MAJOR__=11 -D__CUDA_API_VER_MINOR__=8 -D__NVCC_DIAG_PRAGMA_SUPPORT__=1 -m64 "/usr/lib/nvidia-cuda-toolkit/bin/crt/link.stub" -o "tmp/a_dlink.o" ] + considering line: [g++ -D__CUDA_ARCH_LIST__=520 -m64 -Wl,--start-group "tmp/a_dlink.o" "tmp/CMakeCUDACompilerId.o" -L/usr/lib/x86_64-linux-gnu/stubs -L/usr/lib/x86_64-linux-gnu -lcudadevrt -lcudart_static -lrt -lpthread -ldl -Wl,--end-group -o "a.out" ] + extracted link line: [g++ -D__CUDA_ARCH_LIST__=520 -m64 -Wl,--start-group "tmp/a_dlink.o" "tmp/CMakeCUDACompilerId.o" -L/usr/lib/x86_64-linux-gnu/stubs -L/usr/lib/x86_64-linux-gnu -lcudadevrt -lcudart_static -lrt -lpthread -ldl -Wl,--end-group -o "a.out" ] + considering line: [] + extracted link launcher name: [g++] + found link launcher absolute path: [/usr/lib/nvidia-cuda-toolkit/bin/g++] + + link line regex: [^( *|.*[/\\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)] + link line: [cuda-fake-ld g++ -D__CUDA_ARCH_LIST__=520 -m64 -Wl,--start-group "tmp/a_dlink.o" "tmp/CMakeCUDACompilerId.o" -L/usr/lib/x86_64-linux-gnu/stubs -L/usr/lib/x86_64-linux-gnu -lcudadevrt -lcudart_static -lrt -lpthread -ldl -Wl,--end-group -o "a.out" ] + arg [cuda-fake-ld] ==> ignore + arg [g++] ==> ignore + arg [-D__CUDA_ARCH_LIST__=520] ==> ignore + arg [-m64] ==> ignore + arg [-Wl,--start-group] ==> ignore + arg [tmp/a_dlink.o] ==> ignore + arg [tmp/CMakeCUDACompilerId.o] ==> ignore + arg [-L/usr/lib/x86_64-linux-gnu/stubs] ==> dir [/usr/lib/x86_64-linux-gnu/stubs] + arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] + arg [-lcudadevrt] ==> lib [cudadevrt] + arg [-lcudart_static] ==> lib [cudart_static] + arg [-lrt] ==> lib [rt] + arg [-lpthread] ==> lib [pthread] + arg [-ldl] ==> lib [dl] + arg [-Wl,--end-group] ==> ignore + arg [-o] ==> ignore + arg [a.out] ==> ignore + collapse library dir [/usr/lib/x86_64-linux-gnu/stubs] ==> [/usr/lib/x86_64-linux-gnu/stubs] + collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + implicit libs: [cudadevrt;cudart_static;rt;pthread;dl] + implicit objs: [] + implicit dirs: [/usr/lib/x86_64-linux-gnu/stubs;/usr/lib/x86_64-linux-gnu] + implicit fwks: [] + + + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake-3.26/Modules/CMakeDetermineCUDACompiler.cmake:582 (message)" + - "CMakeLists.txt:8 (project)" + message: | + Failed to detect CUDA nvcc include information: + found 'PATH=' string: [/usr/lib/nvidia-cuda-toolkit/bin:/home/ubuntu/.local/bin:/home/ubuntu/.local/bin:/home/ubuntu/.local/bin:/home/ubuntu/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin] + found 'LIBRARIES=' string: [-L/usr/lib/x86_64-linux-gnu/stubs -L/usr/lib/x86_64-linux-gnu] + considering line: [#$ rm tmp/a_dlink.reg.c] + considering line: [gcc -D__CUDA_ARCH__=520 -D__CUDA_ARCH_LIST__=520 -E -x c++ -DCUDA_DOUBLE_MATH_FUNCTIONS -D__CUDACC__ -D__NVCC__ -D__CUDACC_VER_MAJOR__=11 -D__CUDACC_VER_MINOR__=8 -D__CUDACC_VER_BUILD__=89 -D__CUDA_API_VER_MAJOR__=11 -D__CUDA_API_VER_MINOR__=8 -D__NVCC_DIAG_PRAGMA_SUPPORT__=1 -include "cuda_runtime.h" -m64 "CMakeCUDACompilerId.cu" -o "tmp/CMakeCUDACompilerId.cpp1.ii" ] + considering line: [cicc --c++14 --gnu_version=90400 --display_error_number --orig_src_file_name "CMakeCUDACompilerId.cu" --orig_src_path_name "/home/ubuntu/thrust/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/CMakeCUDACompilerId.cu" --allow_managed -arch compute_52 -m64 --no-version-ident -ftz=0 -prec_div=1 -prec_sqrt=1 -fmad=1 --include_file_name "CMakeCUDACompilerId.fatbin.c" -tused --gen_module_id_file --module_id_file_name "tmp/CMakeCUDACompilerId.module_id" --gen_c_file_name "tmp/CMakeCUDACompilerId.cudafe1.c" --stub_file_name "tmp/CMakeCUDACompilerId.cudafe1.stub.c" --gen_device_file_name "tmp/CMakeCUDACompilerId.cudafe1.gpu" "tmp/CMakeCUDACompilerId.cpp1.ii" -o "tmp/CMakeCUDACompilerId.ptx"] + considering line: [ptxas -arch=sm_52 -m64 "tmp/CMakeCUDACompilerId.ptx" -o "tmp/CMakeCUDACompilerId.sm_52.cubin" ] + considering line: [fatbinary --create="tmp/CMakeCUDACompilerId.fatbin" -64 --cicc-cmdline="-ftz=0 -prec_div=1 -prec_sqrt=1 -fmad=1 " "--image3=kind=elf,sm=52,file=tmp/CMakeCUDACompilerId.sm_52.cubin" "--image3=kind=ptx,sm=52,file=tmp/CMakeCUDACompilerId.ptx" --embedded-fatbin="tmp/CMakeCUDACompilerId.fatbin.c" ] + considering line: [gcc -D__CUDA_ARCH_LIST__=520 -E -x c++ -D__CUDACC__ -D__NVCC__ -D__CUDACC_VER_MAJOR__=11 -D__CUDACC_VER_MINOR__=8 -D__CUDACC_VER_BUILD__=89 -D__CUDA_API_VER_MAJOR__=11 -D__CUDA_API_VER_MINOR__=8 -D__NVCC_DIAG_PRAGMA_SUPPORT__=1 -include "cuda_runtime.h" -m64 "CMakeCUDACompilerId.cu" -o "tmp/CMakeCUDACompilerId.cpp4.ii" ] + considering line: [cudafe++ --c++14 --gnu_version=90400 --display_error_number --orig_src_file_name "CMakeCUDACompilerId.cu" --orig_src_path_name "/home/ubuntu/thrust/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/CMakeCUDACompilerId.cu" --allow_managed --m64 --parse_templates --gen_c_file_name "tmp/CMakeCUDACompilerId.cudafe1.cpp" --stub_file_name "CMakeCUDACompilerId.cudafe1.stub.c" --module_id_file_name "tmp/CMakeCUDACompilerId.module_id" "tmp/CMakeCUDACompilerId.cpp4.ii" ] + considering line: [gcc -D__CUDA_ARCH__=520 -D__CUDA_ARCH_LIST__=520 -c -x c++ -DCUDA_DOUBLE_MATH_FUNCTIONS -m64 "tmp/CMakeCUDACompilerId.cudafe1.cpp" -o "tmp/CMakeCUDACompilerId.o" ] + considering line: [nvlink -m64 --arch=sm_52 --register-link-binaries="tmp/a_dlink.reg.c" -L/usr/lib/x86_64-linux-gnu/stubs -L/usr/lib/x86_64-linux-gnu -cpu-arch=X86_64 "tmp/CMakeCUDACompilerId.o" -lcudadevrt -o "tmp/a_dlink.sm_52.cubin" --host-ccbin "gcc"] + ignoring nvlink line + considering line: [fatbinary --create="tmp/a_dlink.fatbin" -64 --cicc-cmdline="-ftz=0 -prec_div=1 -prec_sqrt=1 -fmad=1 " -link "--image3=kind=elf,sm=52,file=tmp/a_dlink.sm_52.cubin" --embedded-fatbin="tmp/a_dlink.fatbin.c" ] + considering line: [gcc -D__CUDA_ARCH_LIST__=520 -c -x c++ -DFATBINFILE="\\"tmp/a_dlink.fatbin.c\\"" -DREGISTERLINKBINARYFILE="\\"tmp/a_dlink.reg.c\\"" -I. -D__NV_EXTRA_INITIALIZATION= -D__NV_EXTRA_FINALIZATION= -D__CUDA_INCLUDE_COMPILER_INTERNAL_HEADERS__ -D__CUDACC_VER_MAJOR__=11 -D__CUDACC_VER_MINOR__=8 -D__CUDACC_VER_BUILD__=89 -D__CUDA_API_VER_MAJOR__=11 -D__CUDA_API_VER_MINOR__=8 -D__NVCC_DIAG_PRAGMA_SUPPORT__=1 -m64 "/usr/lib/nvidia-cuda-toolkit/bin/crt/link.stub" -o "tmp/a_dlink.o" ] + considering line: [g++ -D__CUDA_ARCH_LIST__=520 -m64 -Wl,--start-group "tmp/a_dlink.o" "tmp/CMakeCUDACompilerId.o" -L/usr/lib/x86_64-linux-gnu/stubs -L/usr/lib/x86_64-linux-gnu -lcudadevrt -lcudart_static -lrt -lpthread -ldl -Wl,--end-group -o "a.out" ] + extracted link line: [g++ -D__CUDA_ARCH_LIST__=520 -m64 -Wl,--start-group "tmp/a_dlink.o" "tmp/CMakeCUDACompilerId.o" -L/usr/lib/x86_64-linux-gnu/stubs -L/usr/lib/x86_64-linux-gnu -lcudadevrt -lcudart_static -lrt -lpthread -ldl -Wl,--end-group -o "a.out" ] + considering line: [] + extracted link launcher name: [g++] + found link launcher absolute path: [/usr/lib/nvidia-cuda-toolkit/bin/g++] + no 'INCLUDES=' string found in nvcc output: + #$ _NVVM_BRANCH_=nvvm + #$ _SPACE_= + #$ _CUDART_=cudart + #$ _HERE_=/usr/lib/nvidia-cuda-toolkit/bin + #$ _THERE_=/usr/lib/nvidia-cuda-toolkit/bin + #$ _TARGET_SIZE_= + #$ _TARGET_DIR_= + #$ _TARGET_SIZE_=64 + #$ NVVMIR_LIBRARY_DIR=/usr/lib/nvidia-cuda-toolkit/libdevice + #$ PATH=/usr/lib/nvidia-cuda-toolkit/bin:/home/ubuntu/.local/bin:/home/ubuntu/.local/bin:/home/ubuntu/.local/bin:/home/ubuntu/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin + #$ LIBRARIES= -L/usr/lib/x86_64-linux-gnu/stubs -L/usr/lib/x86_64-linux-gnu + #$ rm tmp/a_dlink.reg.c + #$ gcc -D__CUDA_ARCH__=520 -D__CUDA_ARCH_LIST__=520 -E -x c++ -DCUDA_DOUBLE_MATH_FUNCTIONS -D__CUDACC__ -D__NVCC__ -D__CUDACC_VER_MAJOR__=11 -D__CUDACC_VER_MINOR__=8 -D__CUDACC_VER_BUILD__=89 -D__CUDA_API_VER_MAJOR__=11 -D__CUDA_API_VER_MINOR__=8 -D__NVCC_DIAG_PRAGMA_SUPPORT__=1 -include "cuda_runtime.h" -m64 "CMakeCUDACompilerId.cu" -o "tmp/CMakeCUDACompilerId.cpp1.ii" + #$ cicc --c++14 --gnu_version=90400 --display_error_number --orig_src_file_name "CMakeCUDACompilerId.cu" --orig_src_path_name "/home/ubuntu/thrust/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/CMakeCUDACompilerId.cu" --allow_managed -arch compute_52 -m64 --no-version-ident -ftz=0 -prec_div=1 -prec_sqrt=1 -fmad=1 --include_file_name "CMakeCUDACompilerId.fatbin.c" -tused --gen_module_id_file --module_id_file_name "tmp/CMakeCUDACompilerId.module_id" --gen_c_file_name "tmp/CMakeCUDACompilerId.cudafe1.c" --stub_file_name "tmp/CMakeCUDACompilerId.cudafe1.stub.c" --gen_device_file_name "tmp/CMakeCUDACompilerId.cudafe1.gpu" "tmp/CMakeCUDACompilerId.cpp1.ii" -o "tmp/CMakeCUDACompilerId.ptx" + #$ ptxas -arch=sm_52 -m64 "tmp/CMakeCUDACompilerId.ptx" -o "tmp/CMakeCUDACompilerId.sm_52.cubin" + #$ fatbinary --create="tmp/CMakeCUDACompilerId.fatbin" -64 --cicc-cmdline="-ftz=0 -prec_div=1 -prec_sqrt=1 -fmad=1 " "--image3=kind=elf,sm=52,file=tmp/CMakeCUDACompilerId.sm_52.cubin" "--image3=kind=ptx,sm=52,file=tmp/CMakeCUDACompilerId.ptx" --embedded-fatbin="tmp/CMakeCUDACompilerId.fatbin.c" + #$ gcc -D__CUDA_ARCH_LIST__=520 -E -x c++ -D__CUDACC__ -D__NVCC__ -D__CUDACC_VER_MAJOR__=11 -D__CUDACC_VER_MINOR__=8 -D__CUDACC_VER_BUILD__=89 -D__CUDA_API_VER_MAJOR__=11 -D__CUDA_API_VER_MINOR__=8 -D__NVCC_DIAG_PRAGMA_SUPPORT__=1 -include "cuda_runtime.h" -m64 "CMakeCUDACompilerId.cu" -o "tmp/CMakeCUDACompilerId.cpp4.ii" + #$ cudafe++ --c++14 --gnu_version=90400 --display_error_number --orig_src_file_name "CMakeCUDACompilerId.cu" --orig_src_path_name "/home/ubuntu/thrust/build/testing/cmake/test_install/CMakeFiles/3.26.4/CompilerIdCUDA/CMakeCUDACompilerId.cu" --allow_managed --m64 --parse_templates --gen_c_file_name "tmp/CMakeCUDACompilerId.cudafe1.cpp" --stub_file_name "CMakeCUDACompilerId.cudafe1.stub.c" --module_id_file_name "tmp/CMakeCUDACompilerId.module_id" "tmp/CMakeCUDACompilerId.cpp4.ii" + #$ gcc -D__CUDA_ARCH__=520 -D__CUDA_ARCH_LIST__=520 -c -x c++ -DCUDA_DOUBLE_MATH_FUNCTIONS -m64 "tmp/CMakeCUDACompilerId.cudafe1.cpp" -o "tmp/CMakeCUDACompilerId.o" + #$ nvlink -m64 --arch=sm_52 --register-link-binaries="tmp/a_dlink.reg.c" -L/usr/lib/x86_64-linux-gnu/stubs -L/usr/lib/x86_64-linux-gnu -cpu-arch=X86_64 "tmp/CMakeCUDACompilerId.o" -lcudadevrt -o "tmp/a_dlink.sm_52.cubin" --host-ccbin "gcc" + #$ fatbinary --create="tmp/a_dlink.fatbin" -64 --cicc-cmdline="-ftz=0 -prec_div=1 -prec_sqrt=1 -fmad=1 " -link "--image3=kind=elf,sm=52,file=tmp/a_dlink.sm_52.cubin" --embedded-fatbin="tmp/a_dlink.fatbin.c" + #$ gcc -D__CUDA_ARCH_LIST__=520 -c -x c++ -DFATBINFILE="\\"tmp/a_dlink.fatbin.c\\"" -DREGISTERLINKBINARYFILE="\\"tmp/a_dlink.reg.c\\"" -I. -D__NV_EXTRA_INITIALIZATION= -D__NV_EXTRA_FINALIZATION= -D__CUDA_INCLUDE_COMPILER_INTERNAL_HEADERS__ -D__CUDACC_VER_MAJOR__=11 -D__CUDACC_VER_MINOR__=8 -D__CUDACC_VER_BUILD__=89 -D__CUDA_API_VER_MAJOR__=11 -D__CUDA_API_VER_MINOR__=8 -D__NVCC_DIAG_PRAGMA_SUPPORT__=1 -m64 "/usr/lib/nvidia-cuda-toolkit/bin/crt/link.stub" -o "tmp/a_dlink.o" + #$ g++ -D__CUDA_ARCH_LIST__=520 -m64 -Wl,--start-group "tmp/a_dlink.o" "tmp/CMakeCUDACompilerId.o" -L/usr/lib/x86_64-linux-gnu/stubs -L/usr/lib/x86_64-linux-gnu -lcudadevrt -lcudart_static -lrt -lpthread -ldl -Wl,--end-group -o "a.out" + + + + - + kind: "try_compile-v1" + backtrace: + - "/usr/share/cmake-3.26/Modules/CMakeDetermineCompilerABI.cmake:57 (try_compile)" + - "/usr/share/cmake-3.26/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:8 (project)" + checks: + - "Detecting CXX compiler ABI info" + directories: + source: "/home/ubuntu/thrust/build/testing/cmake/test_install/CMakeFiles/CMakeScratch/TryCompile-Wb5P3i" + binary: "/home/ubuntu/thrust/build/testing/cmake/test_install/CMakeFiles/CMakeScratch/TryCompile-Wb5P3i" + cmakeVariables: + CMAKE_CXX_FLAGS: "" + CMAKE_CXX_FLAGS_DEBUG: "-g" + CMAKE_EXE_LINKER_FLAGS: "" + buildResult: + variable: "CMAKE_CXX_ABI_COMPILED" + cached: true + stdout: | + Change Dir: /home/ubuntu/thrust/build/testing/cmake/test_install/CMakeFiles/CMakeScratch/TryCompile-Wb5P3i + + Run Build Command(s):/usr/bin/cmake -E env VERBOSE=1 /usr/bin/make -f Makefile cmTC_2ec61/fast && /usr/bin/make -f CMakeFiles/cmTC_2ec61.dir/build.make CMakeFiles/cmTC_2ec61.dir/build + make[1]: Entering directory '/home/ubuntu/thrust/build/testing/cmake/test_install/CMakeFiles/CMakeScratch/TryCompile-Wb5P3i' + Building CXX object CMakeFiles/cmTC_2ec61.dir/CMakeCXXCompilerABI.cpp.o + /usr/bin/c++ -v -o CMakeFiles/cmTC_2ec61.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.26/Modules/CMakeCXXCompilerABI.cpp + Using built-in specs. + COLLECT_GCC=/usr/bin/c++ + OFFLOAD_TARGET_NAMES=nvptx-none:hsa + OFFLOAD_TARGET_DEFAULT=1 + Target: x86_64-linux-gnu + Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.4.0-1ubuntu1~20.04.1' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-Av3uEd/gcc-9-9.4.0/debian/tmp-nvptx/usr,hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu + Thread model: posix + gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1) + COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_2ec61.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' + /usr/lib/gcc/x86_64-linux-gnu/9/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /usr/share/cmake-3.26/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpbase CMakeCXXCompilerABI.cpp -mtune=generic -march=x86-64 -auxbase-strip CMakeFiles/cmTC_2ec61.dir/CMakeCXXCompilerABI.cpp.o -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccQkK4Zi.s + GNU C++14 (Ubuntu 9.4.0-1ubuntu1~20.04.1) version 9.4.0 (x86_64-linux-gnu) + compiled by GNU C version 9.4.0, GMP version 6.2.0, MPFR version 4.0.2, MPC version 1.1.0, isl version isl-0.22.1-GMP + + GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 + ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/9" + ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu" + ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/9/include-fixed" + ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/9/../../../../x86_64-linux-gnu/include" + #include "..." search starts here: + #include <...> search starts here: + /usr/include/c++/9 + /usr/include/x86_64-linux-gnu/c++/9 + /usr/include/c++/9/backward + /usr/lib/gcc/x86_64-linux-gnu/9/include + /usr/local/include + /usr/include/x86_64-linux-gnu + /usr/include + End of search list. + GNU C++14 (Ubuntu 9.4.0-1ubuntu1~20.04.1) version 9.4.0 (x86_64-linux-gnu) + compiled by GNU C version 9.4.0, GMP version 6.2.0, MPFR version 4.0.2, MPC version 1.1.0, isl version isl-0.22.1-GMP + + GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 + Compiler executable checksum: 65fe925b83d3956b533de4aaba7dace0 + COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_2ec61.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' + as -v --64 -o CMakeFiles/cmTC_2ec61.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccQkK4Zi.s + GNU assembler version 2.34 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.34 + COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/ + LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/ + COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_2ec61.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' + Linking CXX executable cmTC_2ec61 + /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_2ec61.dir/link.txt --verbose=1 + /usr/bin/c++ -v CMakeFiles/cmTC_2ec61.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_2ec61 + Using built-in specs. + COLLECT_GCC=/usr/bin/c++ + COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper + OFFLOAD_TARGET_NAMES=nvptx-none:hsa + OFFLOAD_TARGET_DEFAULT=1 + Target: x86_64-linux-gnu + Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.4.0-1ubuntu1~20.04.1' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-Av3uEd/gcc-9-9.4.0/debian/tmp-nvptx/usr,hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu + Thread model: posix + gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1) + COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/ + LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/ + COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_2ec61' '-shared-libgcc' '-mtune=generic' '-march=x86-64' + /usr/lib/gcc/x86_64-linux-gnu/9/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/9/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper -plugin-opt=-fresolution=/tmp/cc9fxmGO.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_2ec61 /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/9/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/9 -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/9/../../.. CMakeFiles/cmTC_2ec61.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/9/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o + COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_2ec61' '-shared-libgcc' '-mtune=generic' '-march=x86-64' + make[1]: Leaving directory '/home/ubuntu/thrust/build/testing/cmake/test_install/CMakeFiles/CMakeScratch/TryCompile-Wb5P3i' + + exitCode: 0 + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake-3.26/Modules/CMakeDetermineCompilerABI.cmake:127 (message)" + - "/usr/share/cmake-3.26/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:8 (project)" + message: | + Parsed CXX implicit include dir info: rv=done + found start of include info + found start of implicit include info + add: [/usr/include/c++/9] + add: [/usr/include/x86_64-linux-gnu/c++/9] + add: [/usr/include/c++/9/backward] + add: [/usr/lib/gcc/x86_64-linux-gnu/9/include] + add: [/usr/local/include] + add: [/usr/include/x86_64-linux-gnu] + add: [/usr/include] + end of search list found + collapse include dir [/usr/include/c++/9] ==> [/usr/include/c++/9] + collapse include dir [/usr/include/x86_64-linux-gnu/c++/9] ==> [/usr/include/x86_64-linux-gnu/c++/9] + collapse include dir [/usr/include/c++/9/backward] ==> [/usr/include/c++/9/backward] + collapse include dir [/usr/lib/gcc/x86_64-linux-gnu/9/include] ==> [/usr/lib/gcc/x86_64-linux-gnu/9/include] + collapse include dir [/usr/local/include] ==> [/usr/local/include] + collapse include dir [/usr/include/x86_64-linux-gnu] ==> [/usr/include/x86_64-linux-gnu] + collapse include dir [/usr/include] ==> [/usr/include] + implicit include dirs: [/usr/include/c++/9;/usr/include/x86_64-linux-gnu/c++/9;/usr/include/c++/9/backward;/usr/lib/gcc/x86_64-linux-gnu/9/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include] + + + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake-3.26/Modules/CMakeDetermineCompilerABI.cmake:152 (message)" + - "/usr/share/cmake-3.26/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:8 (project)" + message: | + Parsed CXX implicit link information: + link line regex: [^( *|.*[/\\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)] + ignore line: [Change Dir: /home/ubuntu/thrust/build/testing/cmake/test_install/CMakeFiles/CMakeScratch/TryCompile-Wb5P3i] + ignore line: [] + ignore line: [Run Build Command(s):/usr/bin/cmake -E env VERBOSE=1 /usr/bin/make -f Makefile cmTC_2ec61/fast && /usr/bin/make -f CMakeFiles/cmTC_2ec61.dir/build.make CMakeFiles/cmTC_2ec61.dir/build] + ignore line: [make[1]: Entering directory '/home/ubuntu/thrust/build/testing/cmake/test_install/CMakeFiles/CMakeScratch/TryCompile-Wb5P3i'] + ignore line: [Building CXX object CMakeFiles/cmTC_2ec61.dir/CMakeCXXCompilerABI.cpp.o] + ignore line: [/usr/bin/c++ -v -o CMakeFiles/cmTC_2ec61.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.26/Modules/CMakeCXXCompilerABI.cpp] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/c++] + ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:hsa] + ignore line: [OFFLOAD_TARGET_DEFAULT=1] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.4.0-1ubuntu1~20.04.1' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c ada c++ go brig d fortran objc obj-c++ gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-Av3uEd/gcc-9-9.4.0/debian/tmp-nvptx/usr hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu] + ignore line: [Thread model: posix] + ignore line: [gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1) ] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_2ec61.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64'] + ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/9/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /usr/share/cmake-3.26/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpbase CMakeCXXCompilerABI.cpp -mtune=generic -march=x86-64 -auxbase-strip CMakeFiles/cmTC_2ec61.dir/CMakeCXXCompilerABI.cpp.o -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccQkK4Zi.s] + ignore line: [GNU C++14 (Ubuntu 9.4.0-1ubuntu1~20.04.1) version 9.4.0 (x86_64-linux-gnu)] + ignore line: [ compiled by GNU C version 9.4.0 GMP version 6.2.0 MPFR version 4.0.2 MPC version 1.1.0 isl version isl-0.22.1-GMP] + ignore line: [] + ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072] + ignore line: [ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/9"] + ignore line: [ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/9/include-fixed"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/9/../../../../x86_64-linux-gnu/include"] + ignore line: [#include "..." search starts here:] + ignore line: [#include <...> search starts here:] + ignore line: [ /usr/include/c++/9] + ignore line: [ /usr/include/x86_64-linux-gnu/c++/9] + ignore line: [ /usr/include/c++/9/backward] + ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/9/include] + ignore line: [ /usr/local/include] + ignore line: [ /usr/include/x86_64-linux-gnu] + ignore line: [ /usr/include] + ignore line: [End of search list.] + ignore line: [GNU C++14 (Ubuntu 9.4.0-1ubuntu1~20.04.1) version 9.4.0 (x86_64-linux-gnu)] + ignore line: [ compiled by GNU C version 9.4.0 GMP version 6.2.0 MPFR version 4.0.2 MPC version 1.1.0 isl version isl-0.22.1-GMP] + ignore line: [] + ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072] + ignore line: [Compiler executable checksum: 65fe925b83d3956b533de4aaba7dace0] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_2ec61.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64'] + ignore line: [ as -v --64 -o CMakeFiles/cmTC_2ec61.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccQkK4Zi.s] + ignore line: [GNU assembler version 2.34 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.34] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_2ec61.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64'] + ignore line: [Linking CXX executable cmTC_2ec61] + ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_2ec61.dir/link.txt --verbose=1] + ignore line: [/usr/bin/c++ -v CMakeFiles/cmTC_2ec61.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_2ec61 ] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/c++] + ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper] + ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:hsa] + ignore line: [OFFLOAD_TARGET_DEFAULT=1] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.4.0-1ubuntu1~20.04.1' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c ada c++ go brig d fortran objc obj-c++ gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-Av3uEd/gcc-9-9.4.0/debian/tmp-nvptx/usr hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu] + ignore line: [Thread model: posix] + ignore line: [gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1) ] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_2ec61' '-shared-libgcc' '-mtune=generic' '-march=x86-64'] + link line: [ /usr/lib/gcc/x86_64-linux-gnu/9/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/9/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper -plugin-opt=-fresolution=/tmp/cc9fxmGO.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_2ec61 /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/9/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/9 -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/9/../../.. CMakeFiles/cmTC_2ec61.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/9/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/9/collect2] ==> ignore + arg [-plugin] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/9/liblto_plugin.so] ==> ignore + arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/cc9fxmGO.res] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [--build-id] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [elf_x86_64] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--as-needed] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/lib64/ld-linux-x86-64.so.2] ==> ignore + arg [-pie] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [-o] ==> ignore + arg [cmTC_2ec61] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crti.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crti.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/9/crtbeginS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/9/crtbeginS.o] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/9] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/9] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib] + arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu] + arg [-L/lib/../lib] ==> dir [/lib/../lib] + arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] + arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/9/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../..] + arg [CMakeFiles/cmTC_2ec61.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore + arg [-lstdc++] ==> lib [stdc++] + arg [-lm] ==> lib [m] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [-lc] ==> lib [c] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [/usr/lib/gcc/x86_64-linux-gnu/9/crtendS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/9/crtendS.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o] + collapse obj [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o] ==> [/usr/lib/x86_64-linux-gnu/Scrt1.o] + collapse obj [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crti.o] ==> [/usr/lib/x86_64-linux-gnu/crti.o] + collapse obj [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o] ==> [/usr/lib/x86_64-linux-gnu/crtn.o] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/9] ==> [/usr/lib/gcc/x86_64-linux-gnu/9] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib] ==> [/usr/lib] + collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu] + collapse library dir [/lib/../lib] ==> [/lib] + collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/../lib] ==> [/usr/lib] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../..] ==> [/usr/lib] + implicit libs: [stdc++;m;gcc_s;gcc;c;gcc_s;gcc] + implicit objs: [/usr/lib/x86_64-linux-gnu/Scrt1.o;/usr/lib/x86_64-linux-gnu/crti.o;/usr/lib/gcc/x86_64-linux-gnu/9/crtbeginS.o;/usr/lib/gcc/x86_64-linux-gnu/9/crtendS.o;/usr/lib/x86_64-linux-gnu/crtn.o] + implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/9;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib] + implicit fwks: [] + + + - + kind: "try_compile-v1" + backtrace: + - "/usr/share/cmake-3.26/Modules/CMakeDetermineCompilerABI.cmake:57 (try_compile)" + - "/usr/share/cmake-3.26/Modules/CMakeTestCUDACompiler.cmake:19 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:8 (project)" + checks: + - "Detecting CUDA compiler ABI info" + directories: + source: "/home/ubuntu/thrust/build/testing/cmake/test_install/CMakeFiles/CMakeScratch/TryCompile-x5TaJk" + binary: "/home/ubuntu/thrust/build/testing/cmake/test_install/CMakeFiles/CMakeScratch/TryCompile-x5TaJk" + cmakeVariables: + CMAKE_CUDA_FLAGS: "" + CMAKE_CUDA_FLAGS_DEBUG: "-g" + CMAKE_CUDA_RUNTIME_LIBRARY: "Static" + CMAKE_EXE_LINKER_FLAGS: "" + buildResult: + variable: "CMAKE_CUDA_ABI_COMPILED" + cached: true + stdout: | + Change Dir: /home/ubuntu/thrust/build/testing/cmake/test_install/CMakeFiles/CMakeScratch/TryCompile-x5TaJk + + Run Build Command(s):/usr/bin/cmake -E env VERBOSE=1 /usr/bin/make -f Makefile cmTC_dfc65/fast && /usr/bin/make -f CMakeFiles/cmTC_dfc65.dir/build.make CMakeFiles/cmTC_dfc65.dir/build + make[1]: Entering directory '/home/ubuntu/thrust/build/testing/cmake/test_install/CMakeFiles/CMakeScratch/TryCompile-x5TaJk' + Building CUDA object CMakeFiles/cmTC_dfc65.dir/CMakeCUDACompilerABI.cu.o + /usr/bin/nvcc -forward-unknown-to-host-compiler -Xcompiler=-v -MD -MT CMakeFiles/cmTC_dfc65.dir/CMakeCUDACompilerABI.cu.o -MF CMakeFiles/cmTC_dfc65.dir/CMakeCUDACompilerABI.cu.o.d -x cu -c /usr/share/cmake-3.26/Modules/CMakeCUDACompilerABI.cu -o CMakeFiles/cmTC_dfc65.dir/CMakeCUDACompilerABI.cu.o + Using built-in specs. + COLLECT_GCC=/usr/bin/gcc-9 + OFFLOAD_TARGET_NAMES=nvptx-none:hsa + OFFLOAD_TARGET_DEFAULT=1 + Target: x86_64-linux-gnu + Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.4.0-1ubuntu1~20.04.1' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-Av3uEd/gcc-9-9.4.0/debian/tmp-nvptx/usr,hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu + Thread model: posix + gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1) + COLLECT_GCC_OPTIONS='-D' '__CUDA_ARCH__=520' '-D' '__CUDA_ARCH_LIST__=520' '-E' '-D' 'CUDA_DOUBLE_MATH_FUNCTIONS' '-D' '__CUDACC__' '-D' '__NVCC__' '-v' '-D' '__CUDACC_VER_MAJOR__=11' '-D' '__CUDACC_VER_MINOR__=8' '-D' '__CUDACC_VER_BUILD__=89' '-D' '__CUDA_API_VER_MAJOR__=11' '-D' '__CUDA_API_VER_MINOR__=8' '-D' '__NVCC_DIAG_PRAGMA_SUPPORT__=1' '-include' 'cuda_runtime.h' '-m64' '-o' '/tmp/tmpxft_00094fbd_00000000-7_CMakeCUDACompilerABI.cpp1.ii' '-mtune=generic' '-march=x86-64' + /usr/lib/gcc/x86_64-linux-gnu/9/cc1plus -E -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE -D __CUDA_ARCH__=520 -D __CUDA_ARCH_LIST__=520 -D CUDA_DOUBLE_MATH_FUNCTIONS -D __CUDACC__ -D __NVCC__ -D __CUDACC_VER_MAJOR__=11 -D __CUDACC_VER_MINOR__=8 -D __CUDACC_VER_BUILD__=89 -D __CUDA_API_VER_MAJOR__=11 -D __CUDA_API_VER_MINOR__=8 -D __NVCC_DIAG_PRAGMA_SUPPORT__=1 -include cuda_runtime.h /usr/share/cmake-3.26/Modules/CMakeCUDACompilerABI.cu -o /tmp/tmpxft_00094fbd_00000000-7_CMakeCUDACompilerABI.cpp1.ii -m64 -mtune=generic -march=x86-64 -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection + ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/9" + ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu" + ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/9/include-fixed" + ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/9/../../../../x86_64-linux-gnu/include" + #include "..." search starts here: + #include <...> search starts here: + /usr/include/c++/9 + /usr/include/x86_64-linux-gnu/c++/9 + /usr/include/c++/9/backward + /usr/lib/gcc/x86_64-linux-gnu/9/include + /usr/local/include + /usr/include/x86_64-linux-gnu + /usr/include + End of search list. + COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/ + LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/ + COLLECT_GCC_OPTIONS='-D' '__CUDA_ARCH__=520' '-D' '__CUDA_ARCH_LIST__=520' '-E' '-D' 'CUDA_DOUBLE_MATH_FUNCTIONS' '-D' '__CUDACC__' '-D' '__NVCC__' '-v' '-D' '__CUDACC_VER_MAJOR__=11' '-D' '__CUDACC_VER_MINOR__=8' '-D' '__CUDACC_VER_BUILD__=89' '-D' '__CUDA_API_VER_MAJOR__=11' '-D' '__CUDA_API_VER_MINOR__=8' '-D' '__NVCC_DIAG_PRAGMA_SUPPORT__=1' '-include' 'cuda_runtime.h' '-m64' '-o' '/tmp/tmpxft_00094fbd_00000000-7_CMakeCUDACompilerABI.cpp1.ii' '-mtune=generic' '-march=x86-64' + Using built-in specs. + COLLECT_GCC=/usr/bin/gcc-9 + OFFLOAD_TARGET_NAMES=nvptx-none:hsa + OFFLOAD_TARGET_DEFAULT=1 + Target: x86_64-linux-gnu + Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.4.0-1ubuntu1~20.04.1' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-Av3uEd/gcc-9-9.4.0/debian/tmp-nvptx/usr,hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu + Thread model: posix + gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1) + COLLECT_GCC_OPTIONS='-D' '__CUDA_ARCH_LIST__=520' '-E' '-D' '__CUDACC__' '-D' '__NVCC__' '-v' '-D' '__CUDACC_VER_MAJOR__=11' '-D' '__CUDACC_VER_MINOR__=8' '-D' '__CUDACC_VER_BUILD__=89' '-D' '__CUDA_API_VER_MAJOR__=11' '-D' '__CUDA_API_VER_MINOR__=8' '-D' '__NVCC_DIAG_PRAGMA_SUPPORT__=1' '-include' 'cuda_runtime.h' '-m64' '-o' '/tmp/tmpxft_00094fbd_00000000-5_CMakeCUDACompilerABI.cpp4.ii' '-mtune=generic' '-march=x86-64' + /usr/lib/gcc/x86_64-linux-gnu/9/cc1plus -E -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE -D __CUDA_ARCH_LIST__=520 -D __CUDACC__ -D __NVCC__ -D __CUDACC_VER_MAJOR__=11 -D __CUDACC_VER_MINOR__=8 -D __CUDACC_VER_BUILD__=89 -D __CUDA_API_VER_MAJOR__=11 -D __CUDA_API_VER_MINOR__=8 -D __NVCC_DIAG_PRAGMA_SUPPORT__=1 -include cuda_runtime.h /usr/share/cmake-3.26/Modules/CMakeCUDACompilerABI.cu -o /tmp/tmpxft_00094fbd_00000000-5_CMakeCUDACompilerABI.cpp4.ii -m64 -mtune=generic -march=x86-64 -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection + ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/9" + ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu" + ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/9/include-fixed" + ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/9/../../../../x86_64-linux-gnu/include" + #include "..." search starts here: + #include <...> search starts here: + /usr/include/c++/9 + /usr/include/x86_64-linux-gnu/c++/9 + /usr/include/c++/9/backward + /usr/lib/gcc/x86_64-linux-gnu/9/include + /usr/local/include + /usr/include/x86_64-linux-gnu + /usr/include + End of search list. + COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/ + LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/ + COLLECT_GCC_OPTIONS='-D' '__CUDA_ARCH_LIST__=520' '-E' '-D' '__CUDACC__' '-D' '__NVCC__' '-v' '-D' '__CUDACC_VER_MAJOR__=11' '-D' '__CUDACC_VER_MINOR__=8' '-D' '__CUDACC_VER_BUILD__=89' '-D' '__CUDA_API_VER_MAJOR__=11' '-D' '__CUDA_API_VER_MINOR__=8' '-D' '__NVCC_DIAG_PRAGMA_SUPPORT__=1' '-include' 'cuda_runtime.h' '-m64' '-o' '/tmp/tmpxft_00094fbd_00000000-5_CMakeCUDACompilerABI.cpp4.ii' '-mtune=generic' '-march=x86-64' + Using built-in specs. + COLLECT_GCC=/usr/bin/gcc-9 + OFFLOAD_TARGET_NAMES=nvptx-none:hsa + OFFLOAD_TARGET_DEFAULT=1 + Target: x86_64-linux-gnu + Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.4.0-1ubuntu1~20.04.1' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-Av3uEd/gcc-9-9.4.0/debian/tmp-nvptx/usr,hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu + Thread model: posix + gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1) + COLLECT_GCC_OPTIONS='-D' '__CUDA_ARCH__=520' '-D' '__CUDA_ARCH_LIST__=520' '-c' '-D' 'CUDA_DOUBLE_MATH_FUNCTIONS' '-v' '-m64' '-o' 'CMakeFiles/cmTC_dfc65.dir/CMakeCUDACompilerABI.cu.o' '-mtune=generic' '-march=x86-64' + /usr/lib/gcc/x86_64-linux-gnu/9/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE -D __CUDA_ARCH__=520 -D __CUDA_ARCH_LIST__=520 -D CUDA_DOUBLE_MATH_FUNCTIONS /tmp/tmpxft_00094fbd_00000000-6_CMakeCUDACompilerABI.cudafe1.cpp -quiet -dumpbase tmpxft_00094fbd_00000000-6_CMakeCUDACompilerABI.cudafe1.cpp -m64 -mtune=generic -march=x86-64 -auxbase-strip CMakeFiles/cmTC_dfc65.dir/CMakeCUDACompilerABI.cu.o -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccbuoi5N.s + GNU C++14 (Ubuntu 9.4.0-1ubuntu1~20.04.1) version 9.4.0 (x86_64-linux-gnu) + compiled by GNU C version 9.4.0, GMP version 6.2.0, MPFR version 4.0.2, MPC version 1.1.0, isl version isl-0.22.1-GMP + + GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 + ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/9" + ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu" + ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/9/include-fixed" + ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/9/../../../../x86_64-linux-gnu/include" + #include "..." search starts here: + #include <...> search starts here: + /usr/include/c++/9 + /usr/include/x86_64-linux-gnu/c++/9 + /usr/include/c++/9/backward + /usr/lib/gcc/x86_64-linux-gnu/9/include + /usr/local/include + /usr/include/x86_64-linux-gnu + /usr/include + End of search list. + GNU C++14 (Ubuntu 9.4.0-1ubuntu1~20.04.1) version 9.4.0 (x86_64-linux-gnu) + compiled by GNU C version 9.4.0, GMP version 6.2.0, MPFR version 4.0.2, MPC version 1.1.0, isl version isl-0.22.1-GMP + + GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 + Compiler executable checksum: 65fe925b83d3956b533de4aaba7dace0 + COLLECT_GCC_OPTIONS='-D' '__CUDA_ARCH__=520' '-D' '__CUDA_ARCH_LIST__=520' '-c' '-D' 'CUDA_DOUBLE_MATH_FUNCTIONS' '-v' '-m64' '-o' 'CMakeFiles/cmTC_dfc65.dir/CMakeCUDACompilerABI.cu.o' '-mtune=generic' '-march=x86-64' + as -v --64 -o CMakeFiles/cmTC_dfc65.dir/CMakeCUDACompilerABI.cu.o /tmp/ccbuoi5N.s + GNU assembler version 2.34 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.34 + COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/ + LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/ + COLLECT_GCC_OPTIONS='-D' '__CUDA_ARCH__=520' '-D' '__CUDA_ARCH_LIST__=520' '-c' '-D' 'CUDA_DOUBLE_MATH_FUNCTIONS' '-v' '-m64' '-o' 'CMakeFiles/cmTC_dfc65.dir/CMakeCUDACompilerABI.cu.o' '-mtune=generic' '-march=x86-64' + Linking CUDA executable cmTC_dfc65 + /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_dfc65.dir/link.txt --verbose=1 + /usr/lib/nvidia-cuda-toolkit/bin/g++ -v CMakeFiles/cmTC_dfc65.dir/CMakeCUDACompilerABI.cu.o -o cmTC_dfc65 -lcudadevrt -lcudart_static -lrt -lpthread -ldl -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu" + Using built-in specs. + COLLECT_GCC=/usr/bin/g++-9 + COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper + OFFLOAD_TARGET_NAMES=nvptx-none:hsa + OFFLOAD_TARGET_DEFAULT=1 + Target: x86_64-linux-gnu + Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.4.0-1ubuntu1~20.04.1' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-Av3uEd/gcc-9-9.4.0/debian/tmp-nvptx/usr,hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu + Thread model: posix + gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1) + COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/ + LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/ + COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_dfc65' '-L/usr/lib/x86_64-linux-gnu/stubs' '-L/usr/lib/x86_64-linux-gnu' '-shared-libgcc' '-mtune=generic' '-march=x86-64' + /usr/lib/gcc/x86_64-linux-gnu/9/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/9/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper -plugin-opt=-fresolution=/tmp/ccH3ui1i.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_dfc65 /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/9/crtbeginS.o -L/usr/lib/x86_64-linux-gnu/stubs -L/usr/lib/x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/9 -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/9/../../.. CMakeFiles/cmTC_dfc65.dir/CMakeCUDACompilerABI.cu.o -lcudadevrt -lcudart_static -lrt -lpthread -ldl -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/9/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o + COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_dfc65' '-L/usr/lib/x86_64-linux-gnu/stubs' '-L/usr/lib/x86_64-linux-gnu' '-shared-libgcc' '-mtune=generic' '-march=x86-64' + make[1]: Leaving directory '/home/ubuntu/thrust/build/testing/cmake/test_install/CMakeFiles/CMakeScratch/TryCompile-x5TaJk' + + exitCode: 0 + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake-3.26/Modules/CMakeDetermineCompilerABI.cmake:127 (message)" + - "/usr/share/cmake-3.26/Modules/CMakeTestCUDACompiler.cmake:19 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:8 (project)" + message: | + Parsed CUDA implicit include dir info: rv=done + found start of include info + found start of implicit include info + add: [/usr/include/c++/9] + add: [/usr/include/x86_64-linux-gnu/c++/9] + add: [/usr/include/c++/9/backward] + add: [/usr/lib/gcc/x86_64-linux-gnu/9/include] + add: [/usr/local/include] + add: [/usr/include/x86_64-linux-gnu] + add: [/usr/include] + end of search list found + collapse include dir [/usr/include/c++/9] ==> [/usr/include/c++/9] + collapse include dir [/usr/include/x86_64-linux-gnu/c++/9] ==> [/usr/include/x86_64-linux-gnu/c++/9] + collapse include dir [/usr/include/c++/9/backward] ==> [/usr/include/c++/9/backward] + collapse include dir [/usr/lib/gcc/x86_64-linux-gnu/9/include] ==> [/usr/lib/gcc/x86_64-linux-gnu/9/include] + collapse include dir [/usr/local/include] ==> [/usr/local/include] + collapse include dir [/usr/include/x86_64-linux-gnu] ==> [/usr/include/x86_64-linux-gnu] + collapse include dir [/usr/include] ==> [/usr/include] + implicit include dirs: [/usr/include/c++/9;/usr/include/x86_64-linux-gnu/c++/9;/usr/include/c++/9/backward;/usr/lib/gcc/x86_64-linux-gnu/9/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include] + + + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake-3.26/Modules/CMakeDetermineCompilerABI.cmake:152 (message)" + - "/usr/share/cmake-3.26/Modules/CMakeTestCUDACompiler.cmake:19 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:8 (project)" + message: | + Parsed CUDA implicit link information: + link line regex: [^( *|.*[/\\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)] + ignore line: [Change Dir: /home/ubuntu/thrust/build/testing/cmake/test_install/CMakeFiles/CMakeScratch/TryCompile-x5TaJk] + ignore line: [] + ignore line: [Run Build Command(s):/usr/bin/cmake -E env VERBOSE=1 /usr/bin/make -f Makefile cmTC_dfc65/fast && /usr/bin/make -f CMakeFiles/cmTC_dfc65.dir/build.make CMakeFiles/cmTC_dfc65.dir/build] + ignore line: [make[1]: Entering directory '/home/ubuntu/thrust/build/testing/cmake/test_install/CMakeFiles/CMakeScratch/TryCompile-x5TaJk'] + ignore line: [Building CUDA object CMakeFiles/cmTC_dfc65.dir/CMakeCUDACompilerABI.cu.o] + ignore line: [/usr/bin/nvcc -forward-unknown-to-host-compiler -Xcompiler=-v -MD -MT CMakeFiles/cmTC_dfc65.dir/CMakeCUDACompilerABI.cu.o -MF CMakeFiles/cmTC_dfc65.dir/CMakeCUDACompilerABI.cu.o.d -x cu -c /usr/share/cmake-3.26/Modules/CMakeCUDACompilerABI.cu -o CMakeFiles/cmTC_dfc65.dir/CMakeCUDACompilerABI.cu.o] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/gcc-9] + ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:hsa] + ignore line: [OFFLOAD_TARGET_DEFAULT=1] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.4.0-1ubuntu1~20.04.1' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c ada c++ go brig d fortran objc obj-c++ gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-Av3uEd/gcc-9-9.4.0/debian/tmp-nvptx/usr hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu] + ignore line: [Thread model: posix] + ignore line: [gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1) ] + ignore line: [COLLECT_GCC_OPTIONS='-D' '__CUDA_ARCH__=520' '-D' '__CUDA_ARCH_LIST__=520' '-E' '-D' 'CUDA_DOUBLE_MATH_FUNCTIONS' '-D' '__CUDACC__' '-D' '__NVCC__' '-v' '-D' '__CUDACC_VER_MAJOR__=11' '-D' '__CUDACC_VER_MINOR__=8' '-D' '__CUDACC_VER_BUILD__=89' '-D' '__CUDA_API_VER_MAJOR__=11' '-D' '__CUDA_API_VER_MINOR__=8' '-D' '__NVCC_DIAG_PRAGMA_SUPPORT__=1' '-include' 'cuda_runtime.h' '-m64' '-o' '/tmp/tmpxft_00094fbd_00000000-7_CMakeCUDACompilerABI.cpp1.ii' '-mtune=generic' '-march=x86-64'] + ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/9/cc1plus -E -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE -D __CUDA_ARCH__=520 -D __CUDA_ARCH_LIST__=520 -D CUDA_DOUBLE_MATH_FUNCTIONS -D __CUDACC__ -D __NVCC__ -D __CUDACC_VER_MAJOR__=11 -D __CUDACC_VER_MINOR__=8 -D __CUDACC_VER_BUILD__=89 -D __CUDA_API_VER_MAJOR__=11 -D __CUDA_API_VER_MINOR__=8 -D __NVCC_DIAG_PRAGMA_SUPPORT__=1 -include cuda_runtime.h /usr/share/cmake-3.26/Modules/CMakeCUDACompilerABI.cu -o /tmp/tmpxft_00094fbd_00000000-7_CMakeCUDACompilerABI.cpp1.ii -m64 -mtune=generic -march=x86-64 -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection] + ignore line: [ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/9"] + ignore line: [ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/9/include-fixed"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/9/../../../../x86_64-linux-gnu/include"] + ignore line: [#include "..." search starts here:] + ignore line: [#include <...> search starts here:] + ignore line: [ /usr/include/c++/9] + ignore line: [ /usr/include/x86_64-linux-gnu/c++/9] + ignore line: [ /usr/include/c++/9/backward] + ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/9/include] + ignore line: [ /usr/local/include] + ignore line: [ /usr/include/x86_64-linux-gnu] + ignore line: [ /usr/include] + ignore line: [End of search list.] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-D' '__CUDA_ARCH__=520' '-D' '__CUDA_ARCH_LIST__=520' '-E' '-D' 'CUDA_DOUBLE_MATH_FUNCTIONS' '-D' '__CUDACC__' '-D' '__NVCC__' '-v' '-D' '__CUDACC_VER_MAJOR__=11' '-D' '__CUDACC_VER_MINOR__=8' '-D' '__CUDACC_VER_BUILD__=89' '-D' '__CUDA_API_VER_MAJOR__=11' '-D' '__CUDA_API_VER_MINOR__=8' '-D' '__NVCC_DIAG_PRAGMA_SUPPORT__=1' '-include' 'cuda_runtime.h' '-m64' '-o' '/tmp/tmpxft_00094fbd_00000000-7_CMakeCUDACompilerABI.cpp1.ii' '-mtune=generic' '-march=x86-64'] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/gcc-9] + ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:hsa] + ignore line: [OFFLOAD_TARGET_DEFAULT=1] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.4.0-1ubuntu1~20.04.1' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c ada c++ go brig d fortran objc obj-c++ gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-Av3uEd/gcc-9-9.4.0/debian/tmp-nvptx/usr hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu] + ignore line: [Thread model: posix] + ignore line: [gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1) ] + ignore line: [COLLECT_GCC_OPTIONS='-D' '__CUDA_ARCH_LIST__=520' '-E' '-D' '__CUDACC__' '-D' '__NVCC__' '-v' '-D' '__CUDACC_VER_MAJOR__=11' '-D' '__CUDACC_VER_MINOR__=8' '-D' '__CUDACC_VER_BUILD__=89' '-D' '__CUDA_API_VER_MAJOR__=11' '-D' '__CUDA_API_VER_MINOR__=8' '-D' '__NVCC_DIAG_PRAGMA_SUPPORT__=1' '-include' 'cuda_runtime.h' '-m64' '-o' '/tmp/tmpxft_00094fbd_00000000-5_CMakeCUDACompilerABI.cpp4.ii' '-mtune=generic' '-march=x86-64'] + ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/9/cc1plus -E -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE -D __CUDA_ARCH_LIST__=520 -D __CUDACC__ -D __NVCC__ -D __CUDACC_VER_MAJOR__=11 -D __CUDACC_VER_MINOR__=8 -D __CUDACC_VER_BUILD__=89 -D __CUDA_API_VER_MAJOR__=11 -D __CUDA_API_VER_MINOR__=8 -D __NVCC_DIAG_PRAGMA_SUPPORT__=1 -include cuda_runtime.h /usr/share/cmake-3.26/Modules/CMakeCUDACompilerABI.cu -o /tmp/tmpxft_00094fbd_00000000-5_CMakeCUDACompilerABI.cpp4.ii -m64 -mtune=generic -march=x86-64 -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection] + ignore line: [ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/9"] + ignore line: [ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/9/include-fixed"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/9/../../../../x86_64-linux-gnu/include"] + ignore line: [#include "..." search starts here:] + ignore line: [#include <...> search starts here:] + ignore line: [ /usr/include/c++/9] + ignore line: [ /usr/include/x86_64-linux-gnu/c++/9] + ignore line: [ /usr/include/c++/9/backward] + ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/9/include] + ignore line: [ /usr/local/include] + ignore line: [ /usr/include/x86_64-linux-gnu] + ignore line: [ /usr/include] + ignore line: [End of search list.] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-D' '__CUDA_ARCH_LIST__=520' '-E' '-D' '__CUDACC__' '-D' '__NVCC__' '-v' '-D' '__CUDACC_VER_MAJOR__=11' '-D' '__CUDACC_VER_MINOR__=8' '-D' '__CUDACC_VER_BUILD__=89' '-D' '__CUDA_API_VER_MAJOR__=11' '-D' '__CUDA_API_VER_MINOR__=8' '-D' '__NVCC_DIAG_PRAGMA_SUPPORT__=1' '-include' 'cuda_runtime.h' '-m64' '-o' '/tmp/tmpxft_00094fbd_00000000-5_CMakeCUDACompilerABI.cpp4.ii' '-mtune=generic' '-march=x86-64'] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/gcc-9] + ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:hsa] + ignore line: [OFFLOAD_TARGET_DEFAULT=1] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.4.0-1ubuntu1~20.04.1' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c ada c++ go brig d fortran objc obj-c++ gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-Av3uEd/gcc-9-9.4.0/debian/tmp-nvptx/usr hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu] + ignore line: [Thread model: posix] + ignore line: [gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1) ] + ignore line: [COLLECT_GCC_OPTIONS='-D' '__CUDA_ARCH__=520' '-D' '__CUDA_ARCH_LIST__=520' '-c' '-D' 'CUDA_DOUBLE_MATH_FUNCTIONS' '-v' '-m64' '-o' 'CMakeFiles/cmTC_dfc65.dir/CMakeCUDACompilerABI.cu.o' '-mtune=generic' '-march=x86-64'] + ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/9/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE -D __CUDA_ARCH__=520 -D __CUDA_ARCH_LIST__=520 -D CUDA_DOUBLE_MATH_FUNCTIONS /tmp/tmpxft_00094fbd_00000000-6_CMakeCUDACompilerABI.cudafe1.cpp -quiet -dumpbase tmpxft_00094fbd_00000000-6_CMakeCUDACompilerABI.cudafe1.cpp -m64 -mtune=generic -march=x86-64 -auxbase-strip CMakeFiles/cmTC_dfc65.dir/CMakeCUDACompilerABI.cu.o -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccbuoi5N.s] + ignore line: [GNU C++14 (Ubuntu 9.4.0-1ubuntu1~20.04.1) version 9.4.0 (x86_64-linux-gnu)] + ignore line: [ compiled by GNU C version 9.4.0 GMP version 6.2.0 MPFR version 4.0.2 MPC version 1.1.0 isl version isl-0.22.1-GMP] + ignore line: [] + ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072] + ignore line: [ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/9"] + ignore line: [ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/9/include-fixed"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/9/../../../../x86_64-linux-gnu/include"] + ignore line: [#include "..." search starts here:] + ignore line: [#include <...> search starts here:] + ignore line: [ /usr/include/c++/9] + ignore line: [ /usr/include/x86_64-linux-gnu/c++/9] + ignore line: [ /usr/include/c++/9/backward] + ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/9/include] + ignore line: [ /usr/local/include] + ignore line: [ /usr/include/x86_64-linux-gnu] + ignore line: [ /usr/include] + ignore line: [End of search list.] + ignore line: [GNU C++14 (Ubuntu 9.4.0-1ubuntu1~20.04.1) version 9.4.0 (x86_64-linux-gnu)] + ignore line: [ compiled by GNU C version 9.4.0 GMP version 6.2.0 MPFR version 4.0.2 MPC version 1.1.0 isl version isl-0.22.1-GMP] + ignore line: [] + ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072] + ignore line: [Compiler executable checksum: 65fe925b83d3956b533de4aaba7dace0] + ignore line: [COLLECT_GCC_OPTIONS='-D' '__CUDA_ARCH__=520' '-D' '__CUDA_ARCH_LIST__=520' '-c' '-D' 'CUDA_DOUBLE_MATH_FUNCTIONS' '-v' '-m64' '-o' 'CMakeFiles/cmTC_dfc65.dir/CMakeCUDACompilerABI.cu.o' '-mtune=generic' '-march=x86-64'] + ignore line: [ as -v --64 -o CMakeFiles/cmTC_dfc65.dir/CMakeCUDACompilerABI.cu.o /tmp/ccbuoi5N.s] + ignore line: [GNU assembler version 2.34 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.34] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-D' '__CUDA_ARCH__=520' '-D' '__CUDA_ARCH_LIST__=520' '-c' '-D' 'CUDA_DOUBLE_MATH_FUNCTIONS' '-v' '-m64' '-o' 'CMakeFiles/cmTC_dfc65.dir/CMakeCUDACompilerABI.cu.o' '-mtune=generic' '-march=x86-64'] + ignore line: [Linking CUDA executable cmTC_dfc65] + ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_dfc65.dir/link.txt --verbose=1] + ignore line: [/usr/lib/nvidia-cuda-toolkit/bin/g++ -v CMakeFiles/cmTC_dfc65.dir/CMakeCUDACompilerABI.cu.o -o cmTC_dfc65 -lcudadevrt -lcudart_static -lrt -lpthread -ldl -L"/usr/lib/x86_64-linux-gnu/stubs" -L"/usr/lib/x86_64-linux-gnu"] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/g++-9] + ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper] + ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:hsa] + ignore line: [OFFLOAD_TARGET_DEFAULT=1] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.4.0-1ubuntu1~20.04.1' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c ada c++ go brig d fortran objc obj-c++ gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-Av3uEd/gcc-9-9.4.0/debian/tmp-nvptx/usr hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu] + ignore line: [Thread model: posix] + ignore line: [gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1) ] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_dfc65' '-L/usr/lib/x86_64-linux-gnu/stubs' '-L/usr/lib/x86_64-linux-gnu' '-shared-libgcc' '-mtune=generic' '-march=x86-64'] + link line: [ /usr/lib/gcc/x86_64-linux-gnu/9/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/9/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper -plugin-opt=-fresolution=/tmp/ccH3ui1i.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_dfc65 /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/9/crtbeginS.o -L/usr/lib/x86_64-linux-gnu/stubs -L/usr/lib/x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/9 -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/9/../../.. CMakeFiles/cmTC_dfc65.dir/CMakeCUDACompilerABI.cu.o -lcudadevrt -lcudart_static -lrt -lpthread -ldl -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/9/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/9/collect2] ==> ignore + arg [-plugin] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/9/liblto_plugin.so] ==> ignore + arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/ccH3ui1i.res] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [--build-id] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [elf_x86_64] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--as-needed] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/lib64/ld-linux-x86-64.so.2] ==> ignore + arg [-pie] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [-o] ==> ignore + arg [cmTC_dfc65] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crti.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crti.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/9/crtbeginS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/9/crtbeginS.o] + arg [-L/usr/lib/x86_64-linux-gnu/stubs] ==> dir [/usr/lib/x86_64-linux-gnu/stubs] + arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/9] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/9] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib] + arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu] + arg [-L/lib/../lib] ==> dir [/lib/../lib] + arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] + arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/9/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../..] + arg [CMakeFiles/cmTC_dfc65.dir/CMakeCUDACompilerABI.cu.o] ==> ignore + arg [-lcudadevrt] ==> lib [cudadevrt] + arg [-lcudart_static] ==> lib [cudart_static] + arg [-lrt] ==> lib [rt] + arg [-lpthread] ==> lib [pthread] + arg [-ldl] ==> lib [dl] + arg [-lstdc++] ==> lib [stdc++] + arg [-lm] ==> lib [m] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [-lc] ==> lib [c] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [/usr/lib/gcc/x86_64-linux-gnu/9/crtendS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/9/crtendS.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o] + collapse obj [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o] ==> [/usr/lib/x86_64-linux-gnu/Scrt1.o] + collapse obj [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crti.o] ==> [/usr/lib/x86_64-linux-gnu/crti.o] + collapse obj [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o] ==> [/usr/lib/x86_64-linux-gnu/crtn.o] + collapse library dir [/usr/lib/x86_64-linux-gnu/stubs] ==> [/usr/lib/x86_64-linux-gnu/stubs] + collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/9] ==> [/usr/lib/gcc/x86_64-linux-gnu/9] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib] ==> [/usr/lib] + collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu] + collapse library dir [/lib/../lib] ==> [/lib] + collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/../lib] ==> [/usr/lib] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../..] ==> [/usr/lib] + implicit libs: [cudadevrt;cudart_static;rt;pthread;dl;stdc++;m;gcc_s;gcc;c;gcc_s;gcc] + implicit objs: [/usr/lib/x86_64-linux-gnu/Scrt1.o;/usr/lib/x86_64-linux-gnu/crti.o;/usr/lib/gcc/x86_64-linux-gnu/9/crtbeginS.o;/usr/lib/gcc/x86_64-linux-gnu/9/crtendS.o;/usr/lib/x86_64-linux-gnu/crtn.o] + implicit dirs: [/usr/lib/x86_64-linux-gnu/stubs;/usr/lib/x86_64-linux-gnu;/usr/lib/gcc/x86_64-linux-gnu/9;/usr/lib;/lib/x86_64-linux-gnu;/lib] + implicit fwks: [] + + +... diff --git a/build/testing/cmake/test_install/CMakeFiles/cmake.check_cache b/build/testing/cmake/test_install/CMakeFiles/cmake.check_cache new file mode 100644 index 0000000000000000000000000000000000000000..3dccd731726d7faa8b29d8d7dba3b981a53ca497 --- /dev/null +++ b/build/testing/cmake/test_install/CMakeFiles/cmake.check_cache @@ -0,0 +1 @@ +# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_adjacent_difference.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_adjacent_difference.cuh new file mode 100644 index 0000000000000000000000000000000000000000..b135fbbf53b727531059c08a44aa7644cab7816a --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_adjacent_difference.cuh @@ -0,0 +1,279 @@ +/****************************************************************************** + * Copyright (c) 2011-2021, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +#pragma once + +#include "../config.cuh" +#include "../util_type.cuh" +#include "../util_namespace.cuh" +#include "../block/block_load.cuh" +#include "../block/block_store.cuh" +#include "../block/block_adjacent_difference.cuh" + +#include + + +CUB_NAMESPACE_BEGIN + + +template < + int _BLOCK_THREADS, + int _ITEMS_PER_THREAD = 1, + cub::BlockLoadAlgorithm _LOAD_ALGORITHM = cub::BLOCK_LOAD_DIRECT, + cub::CacheLoadModifier _LOAD_MODIFIER = cub::LOAD_LDG, + cub::BlockStoreAlgorithm _STORE_ALGORITHM = cub::BLOCK_STORE_DIRECT> +struct AgentAdjacentDifferencePolicy +{ + static constexpr int BLOCK_THREADS = _BLOCK_THREADS; + static constexpr int ITEMS_PER_THREAD = _ITEMS_PER_THREAD; + static constexpr int ITEMS_PER_TILE = BLOCK_THREADS * ITEMS_PER_THREAD; + + static constexpr cub::BlockLoadAlgorithm LOAD_ALGORITHM = _LOAD_ALGORITHM; + static constexpr cub::CacheLoadModifier LOAD_MODIFIER = _LOAD_MODIFIER; + static constexpr cub::BlockStoreAlgorithm STORE_ALGORITHM = _STORE_ALGORITHM; +}; + +template +struct AgentDifference +{ + using LoadIt = typename THRUST_NS_QUALIFIER::cuda_cub::core::LoadIterator::type; + + using BlockLoad = typename cub::BlockLoadType::type; + using BlockStore = typename cub::BlockStoreType::type; + + using BlockAdjacentDifferenceT = + cub::BlockAdjacentDifference; + + union _TempStorage + { + typename BlockLoad::TempStorage load; + typename BlockStore::TempStorage store; + typename BlockAdjacentDifferenceT::TempStorage adjacent_difference; + }; + + /// Alias wrapper allowing storage to be unioned + struct TempStorage : Uninitialized<_TempStorage> {}; + + static constexpr int BLOCK_THREADS = Policy::BLOCK_THREADS; + static constexpr int ITEMS_PER_THREAD = Policy::ITEMS_PER_THREAD; + static constexpr int ITEMS_PER_TILE = Policy::ITEMS_PER_TILE; + static constexpr int SHARED_MEMORY_SIZE = static_cast(sizeof(TempStorage)); + + _TempStorage &temp_storage; + InputIteratorT input_it; + LoadIt load_it; + InputT *first_tile_previous; + OutputIteratorT result; + DifferenceOpT difference_op; + OffsetT num_items; + + __device__ __forceinline__ AgentDifference(TempStorage &temp_storage, + InputIteratorT input_it, + InputT *first_tile_previous, + OutputIteratorT result, + DifferenceOpT difference_op, + OffsetT num_items) + : temp_storage(temp_storage.Alias()) + , input_it(input_it) + , load_it( + THRUST_NS_QUALIFIER::cuda_cub::core::make_load_iterator(Policy(), + input_it)) + , first_tile_previous(first_tile_previous) + , result(result) + , difference_op(difference_op) + , num_items(num_items) + {} + + template + __device__ __forceinline__ void consume_tile_impl(int num_remaining, + int tile_idx, + OffsetT tile_base) + { + InputT input[ITEMS_PER_THREAD]; + OutputT output[ITEMS_PER_THREAD]; + + if (IS_LAST_TILE) + { + // Fill last elements with the first element + // because collectives are not suffix guarded + BlockLoad(temp_storage.load) + .Load(load_it + tile_base, input, num_remaining, *(load_it + tile_base)); + } + else + { + BlockLoad(temp_storage.load).Load(load_it + tile_base, input); + } + + CTA_SYNC(); + + if (ReadLeft) + { + if (IS_FIRST_TILE) + { + if (IS_LAST_TILE) + { + BlockAdjacentDifferenceT(temp_storage.adjacent_difference) + .SubtractLeftPartialTile(input, + output, + difference_op, + num_remaining); + } + else + { + BlockAdjacentDifferenceT(temp_storage.adjacent_difference) + .SubtractLeft(input, output, difference_op); + } + } + else + { + InputT tile_prev_input = MayAlias + ? first_tile_previous[tile_idx] + : *(input_it + tile_base - 1); + + if (IS_LAST_TILE) + { + BlockAdjacentDifferenceT(temp_storage.adjacent_difference) + .SubtractLeftPartialTile(input, + output, + difference_op, + num_remaining, + tile_prev_input); + } + else + { + BlockAdjacentDifferenceT(temp_storage.adjacent_difference) + .SubtractLeft(input, output, difference_op, tile_prev_input); + } + } + } + else + { + if (IS_LAST_TILE) + { + BlockAdjacentDifferenceT(temp_storage.adjacent_difference) + .SubtractRightPartialTile(input, output, difference_op, num_remaining); + } + else + { + InputT tile_next_input = MayAlias + ? first_tile_previous[tile_idx] + : *(input_it + tile_base + ITEMS_PER_TILE); + + BlockAdjacentDifferenceT(temp_storage.adjacent_difference) + .SubtractRight(input, output, difference_op, tile_next_input); + } + } + + CTA_SYNC(); + + if (IS_LAST_TILE) + { + BlockStore(temp_storage.store) + .Store(result + tile_base, output, num_remaining); + } + else + { + BlockStore(temp_storage.store).Store(result + tile_base, output); + } + } + + template + __device__ __forceinline__ void consume_tile(int num_remaining, + int tile_idx, + OffsetT tile_base) + { + if (tile_idx == 0) + { + consume_tile_impl(num_remaining, + tile_idx, + tile_base); + } + else + { + consume_tile_impl(num_remaining, + tile_idx, + tile_base); + } + } + + __device__ __forceinline__ void Process(int tile_idx, + OffsetT tile_base) + { + OffsetT num_remaining = num_items - tile_base; + + if (num_remaining > ITEMS_PER_TILE) // not a last tile + { + consume_tile(num_remaining, tile_idx, tile_base); + } + else + { + consume_tile(num_remaining, tile_idx, tile_base); + } + } +}; + +template +struct AgentDifferenceInit +{ + static constexpr int BLOCK_THREADS = 128; + + static __device__ __forceinline__ void Process(int tile_idx, + InputIteratorT first, + InputT *result, + OffsetT num_tiles, + int items_per_tile) + { + OffsetT tile_base = static_cast(tile_idx) * items_per_tile; + + if (tile_base > 0 && tile_idx < num_tiles) + { + if (ReadLeft) + { + result[tile_idx] = first[tile_base - 1]; + } + else + { + result[tile_idx - 1] = first[tile_base]; + } + } + } +}; + + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_batch_memcpy.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_batch_memcpy.cuh new file mode 100644 index 0000000000000000000000000000000000000000..1dd823c54c0d9b1582b99c2f28cc413726449d4b --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_batch_memcpy.cuh @@ -0,0 +1,1184 @@ +/****************************************************************************** + * Copyright (c) 2011-2022, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * cub::AgentBatchMemcpy implements device-wide copying of a batch of device-accessible + * source-buffers to device-accessible destination-buffers. + */ + +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include + +CUB_NAMESPACE_BEGIN + +namespace detail +{ +template +__forceinline__ __device__ void LoadVectorAndFunnelShiftR(uint32_t const *aligned_ptr, + uint32_t bit_shift, + uint4 &data_out) +{ + data_out = {aligned_ptr[0], aligned_ptr[1], aligned_ptr[2], aligned_ptr[3]}; + + if (!PTR_IS_FOUR_BYTE_ALIGNED) + { + uint32_t tail = aligned_ptr[4]; + data_out.x = __funnelshift_r(data_out.x, data_out.y, bit_shift); + data_out.y = __funnelshift_r(data_out.y, data_out.z, bit_shift); + data_out.z = __funnelshift_r(data_out.z, data_out.w, bit_shift); + data_out.w = __funnelshift_r(data_out.w, tail, bit_shift); + } +} + +template +__forceinline__ __device__ void LoadVectorAndFunnelShiftR(uint32_t const *aligned_ptr, + uint32_t bit_shift, + uint2 &data_out) +{ + data_out = {aligned_ptr[0], aligned_ptr[1]}; + + if (!PTR_IS_FOUR_BYTE_ALIGNED) + { + uint32_t tail = aligned_ptr[2]; + data_out.x = __funnelshift_r(data_out.x, data_out.y, bit_shift); + data_out.y = __funnelshift_r(data_out.y, tail, bit_shift); + } +} + +template +__forceinline__ __device__ void LoadVectorAndFunnelShiftR(uint32_t const *aligned_ptr, + uint32_t bit_shift, + uint32_t &data_out) +{ + data_out = aligned_ptr[0]; + + if (!PTR_IS_FOUR_BYTE_ALIGNED) + { + uint32_t tail = aligned_ptr[1]; + data_out = __funnelshift_r(data_out, tail, bit_shift); + } +} + +/** + * @brief Loads data from \p ptr into \p data_out without requiring \p ptr to be aligned. + * @note If \p ptr isn't aligned to four bytes, the bytes from the last four-byte aligned address up + * to \p ptr are loaded too (but dropped) and, hence, need to be device-accessible. Similarly, if + * \p ptr isn't aligned to four bytes, the bytes from `(ptr + sizeof(VectorT))` up to the following + * four-byte aligned address are loaded too (but dropped), and, hence, need to be device-accessible. + * + * @tparam VectorT The vector type used for vectorized stores (i.e., one of uint4, uint2, uint32_t) + * @param ptr The pointer from which the data is supposed to be loaded + * @param data_out The vector type that stores the data loaded from \p ptr + */ +template +__forceinline__ __device__ void LoadVector(const char *ptr, VectorT &data_out) +{ + const uint32_t offset = reinterpret_cast(ptr) % 4U; + const uint32_t *aligned_ptr = reinterpret_cast(ptr - offset); + constexpr uint32_t bits_per_byte = 8U; + const uint32_t bit_shift = offset * bits_per_byte; + + // If `ptr` is aligned to four bytes, we can perform a simple uint32_t-aliased load + if (offset == 0) + { + LoadVectorAndFunnelShiftR(aligned_ptr, bit_shift, data_out); + } + // Otherwise, we need to load extra bytes and perform funnel-shifting + else + { + LoadVectorAndFunnelShiftR(aligned_ptr, bit_shift, data_out); + } +} + +/** + * @brief Helper data structure to hold information on the byte range for which we can safely + * perform vectorized copies. + * + * @tparam VectorT The vector type used for vectorized stores (i.e., one of uint4, uint2, uint32_t) + */ +template +struct PointerRange +{ + VectorT *out_begin; + VectorT *out_end; + const char *in_begin; + const char *in_end; +}; + +/** + * @brief Both `out_start_aligned` and `out_end_aligned` are indices into `out_ptr`. + * `out_start_aligned` is the first VectorT-aligned memory location after `out_ptr + 3`. + * `out_end_aligned` is the last VectorT-aligned memory location before `out_end - 4`, where out_end + * corresponds to one past the last byte to be copied. Bytes between `[out_start_aligned, + * out_end_aligned)` will be copied using VectorT. `out_ptr + 3` and `out_end - 4` are used instead + * of `out_ptr` and `out_end` to avoid `LoadVector` reading beyond data boundaries. + * + * @tparam VectorT The vector type used for vectorized stores (i.e., one of uint4, uint2, uint32_t) + * @tparam ByteOffsetT Type used to index the bytes within the buffers + * @param in_begin Pointer to the beginning of the byte range that shall be copied + * @param out_begin Pointer to the beginning of the byte range that shall be copied + * @param num_bytes Number of bytes that shall be copied + * @return The byte range that can safely be copied using vectorized stores of type VectorT + */ +template +__device__ __forceinline__ PointerRange GetAlignedPtrs(const void *in_begin, + void *out_begin, + ByteOffsetT num_bytes) +{ + // Data type size used for vectorized stores + constexpr size_t out_datatype_size = sizeof(VectorT); + // Data type size used for type-aliased loads + constexpr size_t in_datatype_size = sizeof(uint32_t); + + // char-aliased ptrs to simplify pointer arithmetic + char *out_ptr = reinterpret_cast(out_begin); + const char *in_ptr = reinterpret_cast(in_begin); + + // Number of bytes between the first VectorT-aligned address at or before out_begin and out_begin + const uint32_t alignment_offset = reinterpret_cast(out_ptr) % out_datatype_size; + + // The first VectorT-aligned address before (or at) out_begin + char *out_chars_aligned = reinterpret_cast(out_ptr - alignment_offset); + + // The number of extra bytes preceding `in_ptr` that are loaded but dropped + uint32_t in_extra_bytes = reinterpret_cast(in_ptr) % in_datatype_size; + + // The offset required by `LoadVector`: + // If the input pointer is not aligned, we load data from the last aligned address preceding the + // pointer. That is, loading up to (in_datatype_size-1) bytes before `in_ptr` + uint32_t in_offset_req = in_extra_bytes; + + // Bytes after `out_chars_aligned` to the first VectorT-aligned address at or after `out_begin` + uint32_t out_start_aligned = + CUB_QUOTIENT_CEILING(in_offset_req + alignment_offset, out_datatype_size) * out_datatype_size; + + // Compute the beginning of the aligned ranges (output and input pointers) + VectorT *out_aligned_begin = reinterpret_cast(out_chars_aligned + out_start_aligned); + const char *in_aligned_begin = in_ptr + (reinterpret_cast(out_aligned_begin) - out_ptr); + + // If the aligned range is not aligned for the input pointer, we load up to (in_datatype_size-1) + // bytes after the last byte that is copied. That is, we always load four bytes up to the next + // aligned input address at a time. E.g., if the last byte loaded is one byte past the last + // aligned address we'll also load the three bytes after that byte. + uint32_t in_extra_bytes_from_aligned = + (reinterpret_cast(in_aligned_begin) % in_datatype_size); + uint32_t in_end_padding_req = (in_datatype_size - in_extra_bytes_from_aligned) % in_datatype_size; + + // Bytes after `out_chars_aligned` to the last VectorT-aligned + // address at (or before) `out_begin` + `num_bytes` + uint32_t out_end_aligned{}; + if (in_end_padding_req + alignment_offset > num_bytes) + { + out_end_aligned = out_start_aligned; + } + else + { + out_end_aligned = (num_bytes - in_end_padding_req + alignment_offset) / out_datatype_size * + out_datatype_size; + } + + VectorT *out_aligned_end = reinterpret_cast(out_chars_aligned + out_end_aligned); + const char *in_aligned_end = in_ptr + (reinterpret_cast(out_aligned_end) - out_ptr); + + return {out_aligned_begin, out_aligned_end, in_aligned_begin, in_aligned_end}; +} + +/** + * @brief Cooperatively copies \p num_bytes from \p src to \p dest using vectorized stores of type + * \p VectorT for addresses within [dest, dest + num_bytes) that are aligned to \p VectorT. A + * byte-wise copy is used for byte-ranges that are not aligned to \p VectorT. + * + * @tparam LOGICAL_WARP_SIZE The number of threads cooperaing to copy the data; all threads within + * [0, `LOGICAL_WARP_SIZE`) must invoke this method with the same arguments + * @tparam VectorT The vector type used for vectorized stores (i.e., one of uint4, uint2, uint32_t) + * @tparam ByteOffsetT Type used to index the bytes within the buffers + * @param thread_rank The thread rank within the group that cooperates to copy the data must be + * within [0, `LOGICAL_WARP_SIZE`) + * @param dest Pointer to the memory location to copy to + * @param num_bytes Number of bytes to copy + * @param src Pointer to the memory location to copy from + */ +template +__device__ __forceinline__ void +VectorizedCopy(int32_t thread_rank, void *dest, ByteOffsetT num_bytes, const void *src) +{ + char *out_ptr = reinterpret_cast(dest); + const char *in_ptr = reinterpret_cast(src); + + // Gets the byte range that can safely be copied using vectorized stores of type VectorT + auto aligned_range = GetAlignedPtrs(src, dest, num_bytes); + + // If byte range for which we can use vectorized copies is empty -> use byte-wise copies + if (aligned_range.out_end <= aligned_range.out_begin) + { + for (ByteOffsetT ichar = thread_rank; ichar < num_bytes; ichar += LOGICAL_WARP_SIZE) + { + out_ptr[ichar] = in_ptr[ichar]; + } + } + else + { + // Copy bytes in range `[dest, aligned_range.out_begin)` + out_ptr += thread_rank; + in_ptr += thread_rank; + while (out_ptr < reinterpret_cast(aligned_range.out_begin)) + { + *out_ptr = *in_ptr; + out_ptr += LOGICAL_WARP_SIZE; + in_ptr += LOGICAL_WARP_SIZE; + } + + // Copy bytes in range `[aligned_range.out_begin, aligned_range.out_end)` + VectorT *aligned_range_begin = aligned_range.out_begin + thread_rank; + const char *in_aligned_begin = aligned_range.in_begin + thread_rank * sizeof(VectorT); + while (aligned_range_begin < aligned_range.out_end) + { + VectorT data_in; + LoadVector(in_aligned_begin, data_in); + *aligned_range_begin = data_in; + in_aligned_begin += sizeof(VectorT) * LOGICAL_WARP_SIZE; + aligned_range_begin += LOGICAL_WARP_SIZE; + } + + // Copy bytes in range `[aligned_range.out_end, dest + num_bytes)`. + out_ptr = reinterpret_cast(aligned_range.out_end) + thread_rank; + in_ptr = aligned_range.in_end + thread_rank; + while (out_ptr < reinterpret_cast(dest) + num_bytes) + { + *out_ptr = *in_ptr; + out_ptr += LOGICAL_WARP_SIZE; + in_ptr += LOGICAL_WARP_SIZE; + } + } +} + +template ::type = 0> +__device__ __forceinline__ void copy_items(InputBufferT input_buffer, + OutputBufferT output_buffer, + OffsetT num_bytes, + OffsetT offset = 0) +{ + VectorizedCopy(threadIdx.x % LOGICAL_WARP_SIZE, + &reinterpret_cast(output_buffer)[offset], + num_bytes, + &reinterpret_cast(input_buffer)[offset]); +} + +template ::type = 0> +__device__ __forceinline__ void copy_items(InputBufferT input_buffer, + OutputBufferT output_buffer, + OffsetT num_items, + OffsetT offset = 0) +{ + output_buffer += offset; + input_buffer += offset; + for (OffsetT i = threadIdx.x % LOGICAL_WARP_SIZE; i < num_items; i += LOGICAL_WARP_SIZE) + { + *(output_buffer + i) = *(input_buffer + i); + } +} + +template ::type = 0> +__device__ __forceinline__ AliasT read_item(InputIt buffer_src, OffsetT offset) +{ + return *(reinterpret_cast(buffer_src) + offset); +} + +template ::type = 0> +__device__ __forceinline__ AliasT read_item(InputIt buffer_src, OffsetT offset) +{ + return *(buffer_src + offset); +} + +template ::type = 0> +__device__ __forceinline__ void write_item(OutputIt buffer_dst, OffsetT offset, AliasT value) +{ + *(reinterpret_cast(buffer_dst) + offset) = value; +} + +template ::type = 0> +__device__ __forceinline__ void write_item(OutputIt buffer_dst, OffsetT offset, AliasT value) +{ + *(buffer_dst + offset) = value; +} + +/** + * @brief A helper class that allows threads to maintain multiple counters, where the counter that + * shall be incremented can be addressed dynamically without incurring register spillage. + * + * @tparam NUM_ITEMS The number of counters to allocate + * @tparam MAX_ITEM_VALUE The maximum count that must be supported. + * @tparam PREFER_POW2_BITS Whether the number of bits to dedicate to each counter should be a + * power-of-two. If enabled, this allows replacing integer multiplication with a bit-shift in + * exchange for higher register pressure. + * @tparam BackingUnitT The data type that is used to provide the bits of all the counters that + * shall be allocated. + */ +template +class BitPackedCounter +{ +private: + /// The minimum number of bits required to represent all values from [0, MAX_ITEM_VALUE] + static constexpr uint32_t MIN_BITS_PER_ITEM = + (MAX_ITEM_VALUE == 0U) ? 1U : cub::Log2(MAX_ITEM_VALUE + 1U)>::VALUE; + + /// The number of bits allocated for each item. For pre-Volta, we prefer a power-of-2 here to + /// have the compiler replace costly integer multiplication with bit-shifting. + static constexpr uint32_t BITS_PER_ITEM = + PREFER_POW2_BITS ? (0x01ULL << (cub::Log2(MIN_BITS_PER_ITEM)>::VALUE)) + : MIN_BITS_PER_ITEM; + + /// The number of bits that each backing data type can store + static constexpr uint32_t NUM_BITS_PER_UNIT = sizeof(BackingUnitT) * 8; + + /// The number of items that each backing data type can store + static constexpr uint32_t ITEMS_PER_UNIT = NUM_BITS_PER_UNIT / BITS_PER_ITEM; + + /// The number of bits the backing data type is actually making use of + static constexpr uint32_t USED_BITS_PER_UNIT = ITEMS_PER_UNIT * BITS_PER_ITEM; + + /// The number of backing data types required to store the given number of items + static constexpr uint32_t NUM_TOTAL_UNITS = CUB_QUOTIENT_CEILING(NUM_ITEMS, ITEMS_PER_UNIT); + + /// This is the net number of bit-storage provided by each unit (remainder bits are unused) + static constexpr uint32_t UNIT_MASK = (USED_BITS_PER_UNIT >= (8U * sizeof(uint32_t))) + ? 0xFFFFFFFF + : (0x01U << USED_BITS_PER_UNIT) - 1; + /// This is the bit-mask for each item + static constexpr uint32_t ITEM_MASK = (BITS_PER_ITEM >= (8U * sizeof(uint32_t))) + ? 0xFFFFFFFF + : (0x01U << BITS_PER_ITEM) - 1; + + //------------------------------------------------------------------------------ + // ACCESSORS + //------------------------------------------------------------------------------ +public: + __device__ __forceinline__ uint32_t Get(uint32_t index) const + { + const uint32_t target_offset = index * BITS_PER_ITEM; + uint32_t val = 0; + +#pragma unroll + for (uint32_t i = 0; i < NUM_TOTAL_UNITS; ++i) + { + // In case the bit-offset of the counter at is larger than the bit range of the + // current unit, the bit_shift amount will be larger than the bits provided by this unit. As + // C++'s bit-shift has undefined behaviour if the bits being shifted exceed the operand width, + // we use the PTX instruction `shr` to make sure behaviour is well-defined. + // Negative bit-shift amounts wrap around in unsigned integer math and are ultimately clamped. + const uint32_t bit_shift = target_offset - i * USED_BITS_PER_UNIT; + val |= detail::LogicShiftRight(data[i], bit_shift) & ITEM_MASK; + } + return val; + } + + __device__ __forceinline__ void Add(uint32_t index, uint32_t value) + { + const uint32_t target_offset = index * BITS_PER_ITEM; + +#pragma unroll + for (uint32_t i = 0; i < NUM_TOTAL_UNITS; ++i) + { + // In case the bit-offset of the counter at is larger than the bit range of the + // current unit, the bit_shift amount will be larger than the bits provided by this unit. As + // C++'s bit-shift has undefined behaviour if the bits being shifted exceed the operand width, + // we use the PTX instruction `shl` to make sure behaviour is well-defined. + // Negative bit-shift amounts wrap around in unsigned integer math and are ultimately clamped. + const uint32_t bit_shift = target_offset - i * USED_BITS_PER_UNIT; + data[i] += detail::LogicShiftLeft(value, bit_shift) & UNIT_MASK; + } + } + + __device__ BitPackedCounter operator+(const BitPackedCounter &rhs) const + { + BitPackedCounter result; +#pragma unroll + for (uint32_t i = 0; i < NUM_TOTAL_UNITS; ++i) + { + result.data[i] = data[i] + rhs.data[i]; + } + return result; + } + + //------------------------------------------------------------------------------ + // MEMBER VARIABLES + //------------------------------------------------------------------------------ +private: + BackingUnitT data[NUM_TOTAL_UNITS] = {}; +}; + +/** + * Parameterizable tuning policy type for AgentBatchMemcpy + */ +template +struct AgentBatchMemcpyPolicy +{ + /// Threads per thread block + static constexpr uint32_t BLOCK_THREADS = _BLOCK_THREADS; + /// Items per thread (per tile of input) + static constexpr uint32_t BUFFERS_PER_THREAD = _BUFFERS_PER_THREAD; + /// The number of bytes that each thread will work on with each iteration of reading in bytes + /// from one or more + // source-buffers and writing them out to the respective destination-buffers. + static constexpr uint32_t TLEV_BYTES_PER_THREAD = _TLEV_BYTES_PER_THREAD; + /// Whether the BitPackedCounter should prefer allocating a power-of-2 number of bits per + /// counter + static constexpr uint32_t PREFER_POW2_BITS = _PREFER_POW2_BITS; + /// BLEV tile size granularity + static constexpr uint32_t BLOCK_LEVEL_TILE_SIZE = _BLOCK_LEVEL_TILE_SIZE; +}; + +template +class AgentBatchMemcpy +{ +private: + //--------------------------------------------------------------------- + // CONFIGS / CONSTANTS + //--------------------------------------------------------------------- + // Tuning policy-based configurations + static constexpr uint32_t BLOCK_THREADS = AgentMemcpySmallBuffersPolicyT::BLOCK_THREADS; + static constexpr uint32_t BUFFERS_PER_THREAD = AgentMemcpySmallBuffersPolicyT::BUFFERS_PER_THREAD; + static constexpr uint32_t TLEV_BYTES_PER_THREAD = + AgentMemcpySmallBuffersPolicyT::TLEV_BYTES_PER_THREAD; + static constexpr bool PREFER_POW2_BITS = AgentMemcpySmallBuffersPolicyT::PREFER_POW2_BITS; + static constexpr uint32_t BLOCK_LEVEL_TILE_SIZE = + AgentMemcpySmallBuffersPolicyT::BLOCK_LEVEL_TILE_SIZE; + + // Derived configs + static constexpr uint32_t BUFFERS_PER_BLOCK = BUFFERS_PER_THREAD * BLOCK_THREADS; + static constexpr uint32_t TLEV_BUFFERS_PER_THREAD = BUFFERS_PER_THREAD; + static constexpr uint32_t BLEV_BUFFERS_PER_THREAD = BUFFERS_PER_THREAD; + + static constexpr uint32_t WARP_LEVEL_THRESHOLD = 128; + static constexpr uint32_t BLOCK_LEVEL_THRESHOLD = 8 * 1024; + + static constexpr uint32_t BUFFER_STABLE_PARTITION = false; + + // Constants + enum : uint32_t + { + TLEV_SIZE_CLASS = 0, + WLEV_SIZE_CLASS, + BLEV_SIZE_CLASS, + NUM_SIZE_CLASSES, + }; + + //--------------------------------------------------------------------- + // TYPE DECLARATIONS + //--------------------------------------------------------------------- + /// Internal load/store type. For byte-wise memcpy, a single-byte type + using AliasT = typename ::cuda::std::conditional< + IsMemcpy, + std::iterator_traits, + std::iterator_traits>>::type::value_type; + + /// Types of the input and output buffers + using InputBufferT = cub::detail::value_t; + using OutputBufferT = cub::detail::value_t; + + /// Type that has to be sufficiently large to hold any of the buffers' sizes. + /// The BufferSizeIteratorT's value type must be convertible to this type. + using BufferSizeT = cub::detail::value_t; + + /// Type used to index into the tile of buffers that this thread block is assigned to. + using BlockBufferOffsetT = uint16_t; + + /// Internal type used to index into the bytes of and represent size of a TLEV buffer + using TLevBufferSizeT = uint16_t; + + /** + * @brief Helper struct to simplify BlockExchange within a single four-byte word + */ + struct ZippedTLevByteAssignment + { + // The buffer id within this tile + BlockBufferOffsetT tile_buffer_id; + + // Byte-offset within that buffer + TLevBufferSizeT buffer_byte_offset; + }; + + /** + * POD to keep track of pairs after having partitioned this tile's + * buffers by their size. + */ + struct BufferTuple + { + // Size is only valid (and relevant) for buffers that are use thread-level collaboration + TLevBufferSizeT size; + + // The buffer id relativ to this tile (i.e., the buffer id within this tile) + BlockBufferOffsetT buffer_id; + }; + + // Load buffers in a striped arrangement if we do not want to performa a stable partitioning into + // small, medium, and large buffers, otherwise load them in a blocked arrangement + using BufferLoadT = + BlockLoad(BLOCK_THREADS), + static_cast(BUFFERS_PER_THREAD), + BUFFER_STABLE_PARTITION ? BLOCK_LOAD_WARP_TRANSPOSE : BLOCK_LOAD_STRIPED>; + + // A vectorized counter that will count the number of buffers that fall into each of the + // size-classes. Where the size class representes the collaboration level that is required to + // process a buffer. The collaboration level being either: + //-> (1) TLEV (thread-level collaboration), requiring one or multiple threads but not a FULL warp + // to collaborate + //-> (2) WLEV (warp-level collaboration), requiring a full warp to collaborate on a buffer + //-> (3) BLEV (block-level collaboration), requiring one or multiple thread blocks to collaborate + // on a buffer */ + using VectorizedSizeClassCounterT = + BitPackedCounter; + + // Block-level scan used to compute the write offsets + using BlockSizeClassScanT = + cub::BlockScan(BLOCK_THREADS)>; + + // + using BlockBLevTileCountScanT = cub::BlockScan(BLOCK_THREADS)>; + + // Block-level run-length decode algorithm to evenly distribute work of all buffers requiring + // thread-level collaboration + using BlockRunLengthDecodeT = + cub::BlockRunLengthDecode(BLOCK_THREADS), + static_cast(TLEV_BUFFERS_PER_THREAD), + static_cast(TLEV_BYTES_PER_THREAD)>; + + using BlockExchangeTLevT = cub::BlockExchange(BLOCK_THREADS), + static_cast(TLEV_BYTES_PER_THREAD)>; + + using BLevBuffScanPrefixCallbackOpT = + TilePrefixCallbackOp; + using BLevBlockScanPrefixCallbackOpT = + TilePrefixCallbackOp; + + //----------------------------------------------------------------------------- + // SHARED MEMORY DECLARATIONS + //----------------------------------------------------------------------------- + struct _TempStorage + { + union + { + typename BufferLoadT::TempStorage load_storage; + + // Stage 1: histogram over the size classes in preparation for partitioning buffers by size + typename BlockSizeClassScanT::TempStorage size_scan_storage; + + // Stage 2: Communicate the number ofer buffers requiring block-level collaboration + typename BLevBuffScanPrefixCallbackOpT::TempStorage buffer_scan_callback; + + // Stage 3; batch memcpy buffers that require only thread-level collaboration + struct + { + BufferTuple buffers_by_size_class[BUFFERS_PER_BLOCK]; + + // Stage 3.1: Write buffers requiring block-level collaboration to queue + union + { + struct + { + typename BLevBlockScanPrefixCallbackOpT::TempStorage block_scan_callback; + typename BlockBLevTileCountScanT::TempStorage block_scan_storage; + } blev; + + // Stage 3.3: run-length decode & block exchange for tlev + // rld_state needs to be persistent across loop iterations (RunLengthDecode calls) and, + // hence, cannot alias block_exchange_storage + struct + { + typename BlockRunLengthDecodeT::TempStorage rld_state; + typename BlockExchangeTLevT::TempStorage block_exchange_storage; + } tlev; + }; + } staged; + }; + BufferOffsetT blev_buffer_offset; + }; + + //----------------------------------------------------------------------------- + // PUBLIC TYPE MEMBERS + //----------------------------------------------------------------------------- +public: + struct TempStorage : Uninitialized<_TempStorage> + {}; + + //----------------------------------------------------------------------------- + // PRIVATE MEMBER FUNCTIONS + //----------------------------------------------------------------------------- +private: + /// Shared storage reference + _TempStorage &temp_storage; + + /** + * @brief Loads this tile's buffers' sizes, without any guards (i.e., out-of-bounds checks) + */ + __device__ __forceinline__ void + LoadBufferSizesFullTile(BufferSizeIteratorT tile_buffer_sizes_it, + BufferSizeT (&buffer_sizes)[BUFFERS_PER_THREAD]) + { + BufferLoadT(temp_storage.load_storage).Load(tile_buffer_sizes_it, buffer_sizes); + } + + /** + * @brief Loads this tile's buffers' sizes, making sure to read at most \p num_valid items. + */ + __device__ __forceinline__ void + LoadBufferSizesPartialTile(BufferSizeIteratorT tile_buffer_sizes_it, + BufferSizeT (&buffer_sizes)[BUFFERS_PER_THREAD], + BufferOffsetT num_valid) + { + // Out-of-bounds buffer items are initialized to '0', so those buffers will simply be ignored + // later on + constexpr BufferSizeT OOB_DEFAULT_BUFFER_SIZE = 0U; + + BufferLoadT(temp_storage.load_storage) + .Load(tile_buffer_sizes_it, buffer_sizes, num_valid, OOB_DEFAULT_BUFFER_SIZE); + } + + /** + * @brief Computes the histogram over the number of buffers belonging to each of the three + * size-classes (TLEV, WLEV, BLEV). + */ + __device__ __forceinline__ VectorizedSizeClassCounterT + GetBufferSizeClassHistogram(const BufferSizeT (&buffer_sizes)[BUFFERS_PER_THREAD]) + { + VectorizedSizeClassCounterT vectorized_counters{}; +#pragma unroll + for (uint32_t i = 0; i < BUFFERS_PER_THREAD; i++) + { + // Whether to increment ANY of the buffer size classes at all + const uint32_t increment = buffer_sizes[i] > 0 ? 1U : 0U; + // Identify the buffer's size class + uint32_t buffer_size_class = 0; + buffer_size_class += buffer_sizes[i] > WARP_LEVEL_THRESHOLD ? 1U : 0U; + buffer_size_class += buffer_sizes[i] > BLOCK_LEVEL_THRESHOLD ? 1U : 0U; + + // Increment the count of the respective size class + vectorized_counters.Add(buffer_size_class, increment); + } + return vectorized_counters; + } + + /** + * @brief Scatters the buffers into the respective buffer's size-class partition. + */ + __device__ __forceinline__ void + PartitionBuffersBySize(const BufferSizeT (&buffer_sizes)[BUFFERS_PER_THREAD], + VectorizedSizeClassCounterT &vectorized_offsets, + BufferTuple (&buffers_by_size_class)[BUFFERS_PER_BLOCK]) + { + // If we intend to perform a stable partitioning, the thread's buffer are in a blocked + // arrangement, otherwise they are in a striped arrangement + BlockBufferOffsetT buffer_id = BUFFER_STABLE_PARTITION ? (BUFFERS_PER_THREAD * threadIdx.x) + : (threadIdx.x); + constexpr BlockBufferOffsetT BUFFER_STRIDE = BUFFER_STABLE_PARTITION + ? static_cast(1) + : static_cast(BLOCK_THREADS); + +#pragma unroll + for (uint32_t i = 0; i < BUFFERS_PER_THREAD; i++) + { + if (buffer_sizes[i] > 0) + { + uint32_t buffer_size_class = 0; + buffer_size_class += buffer_sizes[i] > WARP_LEVEL_THRESHOLD ? 1U : 0U; + buffer_size_class += buffer_sizes[i] > BLOCK_LEVEL_THRESHOLD ? 1U : 0U; + const uint32_t write_offset = vectorized_offsets.Get(buffer_size_class); + buffers_by_size_class[write_offset] = {static_cast(buffer_sizes[i]), + buffer_id}; + vectorized_offsets.Add(buffer_size_class, 1U); + } + buffer_id += BUFFER_STRIDE; + } + } + + /** + * @brief Read in all the buffers that require block-level collaboration and put them to a queue + * that will get picked up in a separate, subsequent kernel. + */ + __device__ __forceinline__ void EnqueueBLEVBuffers(BufferTuple *buffers_by_size_class, + InputBufferIt tile_buffer_srcs, + OutputBufferIt tile_buffer_dsts, + BufferSizeIteratorT tile_buffer_sizes, + BlockBufferOffsetT num_blev_buffers, + BufferOffsetT tile_buffer_offset, + BufferOffsetT tile_id) + { + BlockOffsetT block_offset[BLEV_BUFFERS_PER_THREAD]; + // Read in the BLEV buffer partition (i.e., the buffers that require block-level collaboration) + uint32_t blev_buffer_offset = threadIdx.x * BLEV_BUFFERS_PER_THREAD; +#pragma unroll + for (uint32_t i = 0; i < BLEV_BUFFERS_PER_THREAD; i++) + { + if (blev_buffer_offset < num_blev_buffers) + { + BlockBufferOffsetT tile_buffer_id = buffers_by_size_class[blev_buffer_offset].buffer_id; + block_offset[i] = CUB_QUOTIENT_CEILING(tile_buffer_sizes[tile_buffer_id], + BLOCK_LEVEL_TILE_SIZE); + } + else + { + // Out-of-bounds buffers are assigned a tile count of '0' + block_offset[i] = 0U; + } + blev_buffer_offset++; + } + + if (tile_id == 0) + { + BlockOffsetT block_aggregate; + BlockBLevTileCountScanT(temp_storage.staged.blev.block_scan_storage) + .ExclusiveSum(block_offset, block_offset, block_aggregate); + if (threadIdx.x == 0) + { + blev_block_scan_state.SetInclusive(0, block_aggregate); + } + } + else + { + BLevBlockScanPrefixCallbackOpT blev_tile_prefix_op( + blev_block_scan_state, + temp_storage.staged.blev.block_scan_callback, + Sum(), + tile_id); + BlockBLevTileCountScanT(temp_storage.staged.blev.block_scan_storage) + .ExclusiveSum(block_offset, block_offset, blev_tile_prefix_op); + } + CTA_SYNC(); + + // Read in the BLEV buffer partition (i.e., the buffers that require block-level collaboration) + blev_buffer_offset = threadIdx.x * BLEV_BUFFERS_PER_THREAD; +#pragma unroll + for (uint32_t i = 0; i < BLEV_BUFFERS_PER_THREAD; i++) + { + if (blev_buffer_offset < num_blev_buffers) + { + BlockBufferOffsetT tile_buffer_id = buffers_by_size_class[blev_buffer_offset].buffer_id; + blev_buffer_srcs[tile_buffer_offset + blev_buffer_offset] = + tile_buffer_srcs[tile_buffer_id]; + blev_buffer_dsts[tile_buffer_offset + blev_buffer_offset] = + tile_buffer_dsts[tile_buffer_id]; + blev_buffer_sizes[tile_buffer_offset + blev_buffer_offset] = + tile_buffer_sizes[tile_buffer_id]; + blev_buffer_tile_offsets[tile_buffer_offset + blev_buffer_offset] = block_offset[i]; + blev_buffer_offset++; + } + } + } + + /** + * @brief Read in all the buffers of this tile that require warp-level collaboration and copy + * their bytes to the corresponding destination buffer + */ + __device__ __forceinline__ void BatchMemcpyWLEVBuffers(BufferTuple *buffers_by_size_class, + InputBufferIt tile_buffer_srcs, + OutputBufferIt tile_buffer_dsts, + BufferSizeIteratorT tile_buffer_sizes, + BlockBufferOffsetT num_wlev_buffers) + { + const int32_t warp_id = threadIdx.x / CUB_PTX_WARP_THREADS; + constexpr uint32_t WARPS_PER_BLOCK = BLOCK_THREADS / CUB_PTX_WARP_THREADS; + + for (BlockBufferOffsetT buffer_offset = warp_id; buffer_offset < num_wlev_buffers; + buffer_offset += WARPS_PER_BLOCK) + { + const auto buffer_id = buffers_by_size_class[buffer_offset].buffer_id; + copy_items( + tile_buffer_srcs[buffer_id], + tile_buffer_dsts[buffer_id], + tile_buffer_sizes[buffer_id]); + } + } + + /** + * @brief Read in all the buffers of this tile that require thread-level collaboration and copy + * their bytes to the corresponding destination buffer + */ + __device__ __forceinline__ void BatchMemcpyTLEVBuffers(BufferTuple *buffers_by_size_class, + InputBufferIt tile_buffer_srcs, + OutputBufferIt tile_buffer_dsts, + BlockBufferOffsetT num_tlev_buffers) + { + // Read in the buffers' ids that require thread-level collaboration (where buffer id is the + // buffer within this tile) + BlockBufferOffsetT tlev_buffer_ids[TLEV_BUFFERS_PER_THREAD]; + TLevBufferSizeT tlev_buffer_sizes[TLEV_BUFFERS_PER_THREAD]; + // Currently we do not go over the TLEV buffers in multiple iterations, so we need to make sure + // we are able to be covered for the case that all our buffers are TLEV buffers + static_assert(TLEV_BUFFERS_PER_THREAD >= BUFFERS_PER_THREAD, + "Unsupported confiugraiton: The number of 'thread-level buffers' must be at " + "least as large as the number of overall buffers being processed by each " + "thread."); + + // Read in the TLEV buffer partition (i.e., the buffers that require thread-level collaboration) + uint32_t tlev_buffer_offset = threadIdx.x * TLEV_BUFFERS_PER_THREAD; + + // Pre-populate the buffer sizes to 0 (i.e. zero-padding towards the end) to ensure + // out-of-bounds TLEV buffers will not be considered +#pragma unroll + for (uint32_t i = 0; i < TLEV_BUFFERS_PER_THREAD; i++) + { + tlev_buffer_sizes[i] = 0; + } + + // Assign TLEV buffers in a blocked arrangement (each thread is assigned consecutive TLEV + // buffers) +#pragma unroll + for (uint32_t i = 0; i < TLEV_BUFFERS_PER_THREAD; i++) + { + if (tlev_buffer_offset < num_tlev_buffers) + { + tlev_buffer_ids[i] = buffers_by_size_class[tlev_buffer_offset].buffer_id; + tlev_buffer_sizes[i] = buffers_by_size_class[tlev_buffer_offset].size; + } + tlev_buffer_offset++; + } + + // Evenly distribute all the bytes that have to be copied from all the buffers that require + // thread-level collaboration using BlockRunLengthDecode + uint32_t num_total_tlev_bytes = 0U; + BlockRunLengthDecodeT block_run_length_decode(temp_storage.staged.tlev.rld_state, + tlev_buffer_ids, + tlev_buffer_sizes, + num_total_tlev_bytes); + + // Run-length decode the buffers' sizes into a window buffer of limited size. This is repeated + // until we were able to cover all the bytes of TLEV buffers + uint32_t decoded_window_offset = 0U; + while (decoded_window_offset < num_total_tlev_bytes) + { + BlockBufferOffsetT buffer_id[TLEV_BYTES_PER_THREAD]; + TLevBufferSizeT buffer_byte_offset[TLEV_BYTES_PER_THREAD]; + + // Now we have a balanced assignment: buffer_id[i] will hold the tile's buffer id and + // buffer_byte_offset[i] that buffer's byte that this thread supposed to copy + block_run_length_decode.RunLengthDecode(buffer_id, buffer_byte_offset, decoded_window_offset); + + // Zip from SoA to AoS + ZippedTLevByteAssignment zipped_byte_assignment[TLEV_BYTES_PER_THREAD]; +#pragma unroll + for (int32_t i = 0; i < TLEV_BYTES_PER_THREAD; i++) + { + zipped_byte_assignment[i] = {buffer_id[i], buffer_byte_offset[i]}; + } + + // Exchange from blocked to striped arrangement for coalesced memory reads and writes + BlockExchangeTLevT(temp_storage.staged.tlev.block_exchange_storage) + .BlockedToStriped(zipped_byte_assignment, zipped_byte_assignment); + + // Read in the bytes that this thread is assigned to + constexpr uint32_t WINDOW_SIZE = (TLEV_BYTES_PER_THREAD * BLOCK_THREADS); + const bool is_full_window = decoded_window_offset + WINDOW_SIZE < num_total_tlev_bytes; + if (is_full_window) + { + uint32_t absolute_tlev_byte_offset = decoded_window_offset + threadIdx.x; + AliasT src_byte[TLEV_BYTES_PER_THREAD]; +#pragma unroll + for (int32_t i = 0; i < TLEV_BYTES_PER_THREAD; i++) + { + src_byte[i] = read_item( + tile_buffer_srcs[zipped_byte_assignment[i].tile_buffer_id], + zipped_byte_assignment[i].buffer_byte_offset); + absolute_tlev_byte_offset += BLOCK_THREADS; + } +#pragma unroll + for (int32_t i = 0; i < TLEV_BYTES_PER_THREAD; i++) + { + write_item( + tile_buffer_dsts[zipped_byte_assignment[i].tile_buffer_id], + zipped_byte_assignment[i].buffer_byte_offset, + src_byte[i]); + } + } + else + { + uint32_t absolute_tlev_byte_offset = decoded_window_offset + threadIdx.x; +#pragma unroll + for (int32_t i = 0; i < TLEV_BYTES_PER_THREAD; i++) + { + if (absolute_tlev_byte_offset < num_total_tlev_bytes) + { + const AliasT src_byte = read_item( + tile_buffer_srcs[zipped_byte_assignment[i].tile_buffer_id], + zipped_byte_assignment[i].buffer_byte_offset); + write_item( + tile_buffer_dsts[zipped_byte_assignment[i].tile_buffer_id], + zipped_byte_assignment[i].buffer_byte_offset, + src_byte); + } + absolute_tlev_byte_offset += BLOCK_THREADS; + } + } + + decoded_window_offset += WINDOW_SIZE; + + // Ensure all threads finished collaborative BlockExchange so temporary storage can be reused + // with next iteration + CTA_SYNC(); + } + } + + //----------------------------------------------------------------------------- + // PUBLIC MEMBER FUNCTIONS + //----------------------------------------------------------------------------- +public: + __device__ __forceinline__ void ConsumeTile(BufferOffsetT tile_id) + { + // Offset into this tile's buffers + BufferOffsetT buffer_offset = tile_id * BUFFERS_PER_BLOCK; + + // Indicates whether all of this tiles items are within bounds + bool is_full_tile = buffer_offset + BUFFERS_PER_BLOCK < num_buffers; + + // Load the buffer sizes of this tile's buffers + BufferSizeIteratorT tile_buffer_sizes_it = buffer_sizes_it + buffer_offset; + BufferSizeT buffer_sizes[BUFFERS_PER_THREAD]; + if (is_full_tile) + { + LoadBufferSizesFullTile(tile_buffer_sizes_it, buffer_sizes); + } + else + { + LoadBufferSizesPartialTile(tile_buffer_sizes_it, buffer_sizes, num_buffers - buffer_offset); + } + + // Ensure we can repurpose the BlockLoad's temporary storage + CTA_SYNC(); + + // Count how many buffers fall into each size-class + VectorizedSizeClassCounterT size_class_histogram = GetBufferSizeClassHistogram(buffer_sizes); + + // Compute the prefix sum over the histogram + VectorizedSizeClassCounterT size_class_agg = {}; + BlockSizeClassScanT(temp_storage.size_scan_storage) + .ExclusiveSum(size_class_histogram, size_class_histogram, size_class_agg); + + // Ensure we can repurpose the scan's temporary storage for scattering the buffer ids + CTA_SYNC(); + + // Factor in the per-size-class counts / offsets + // That is, WLEV buffer offset has to be offset by the TLEV buffer count and BLEV buffer offset + // has to be offset by the TLEV+WLEV buffer count + uint32_t buffer_count = 0U; + for (uint32_t i = 0; i < NUM_SIZE_CLASSES; i++) + { + size_class_histogram.Add(i, buffer_count); + buffer_count += size_class_agg.Get(i); + } + + // Signal the number of BLEV buffers we're planning to write out + BufferOffsetT buffer_exclusive_prefix = 0; + if (tile_id == 0) + { + if (threadIdx.x == 0) + { + blev_buffer_scan_state.SetInclusive(tile_id, size_class_agg.Get(BLEV_SIZE_CLASS)); + } + buffer_exclusive_prefix = 0; + } + else + { + BLevBuffScanPrefixCallbackOpT blev_buffer_prefix_op(blev_buffer_scan_state, + temp_storage.buffer_scan_callback, + Sum(), + tile_id); + + // Signal our partial prefix and wait for the inclusive prefix of previous tiles + if (threadIdx.x < CUB_PTX_WARP_THREADS) + { + buffer_exclusive_prefix = blev_buffer_prefix_op(size_class_agg.Get(BLEV_SIZE_CLASS)); + } + } + if (threadIdx.x == 0) + { + temp_storage.blev_buffer_offset = buffer_exclusive_prefix; + } + + // Ensure the prefix callback has finished using its temporary storage and that it can be reused + // in the next stage + CTA_SYNC(); + + // Scatter the buffers into one of the three partitions (TLEV, WLEV, BLEV) depending on their + // size + PartitionBuffersBySize(buffer_sizes, + size_class_histogram, + temp_storage.staged.buffers_by_size_class); + + // Ensure all buffers have been partitioned by their size class AND + // ensure that blev_buffer_offset has been written to shared memory + CTA_SYNC(); + + // TODO: think about prefetching tile_buffer_{srcs,dsts} into shmem + InputBufferIt tile_buffer_srcs = input_buffer_it + buffer_offset; + OutputBufferIt tile_buffer_dsts = output_buffer_it + buffer_offset; + BufferSizeIteratorT tile_buffer_sizes = buffer_sizes_it + buffer_offset; + + // Copy block-level buffers + EnqueueBLEVBuffers( + &temp_storage.staged.buffers_by_size_class[size_class_agg.Get(TLEV_SIZE_CLASS) + + size_class_agg.Get(WLEV_SIZE_CLASS)], + tile_buffer_srcs, + tile_buffer_dsts, + tile_buffer_sizes, + size_class_agg.Get(BLEV_SIZE_CLASS), + temp_storage.blev_buffer_offset, + tile_id); + + // Ensure we can repurpose the temporary storage required by EnqueueBLEVBuffers + CTA_SYNC(); + + // Copy warp-level buffers + BatchMemcpyWLEVBuffers( + &temp_storage.staged.buffers_by_size_class[size_class_agg.Get(TLEV_SIZE_CLASS)], + tile_buffer_srcs, + tile_buffer_dsts, + tile_buffer_sizes, + size_class_agg.Get(WLEV_SIZE_CLASS)); + + // Perform batch memcpy for all the buffers that require thread-level collaboration + uint32_t num_tlev_buffers = size_class_agg.Get(TLEV_SIZE_CLASS); + BatchMemcpyTLEVBuffers(temp_storage.staged.buffers_by_size_class, + tile_buffer_srcs, + tile_buffer_dsts, + num_tlev_buffers); + } + + //----------------------------------------------------------------------------- + // CONSTRUCTOR + //----------------------------------------------------------------------------- + __device__ __forceinline__ AgentBatchMemcpy(TempStorage &temp_storage, + InputBufferIt input_buffer_it, + OutputBufferIt output_buffer_it, + BufferSizeIteratorT buffer_sizes_it, + BufferOffsetT num_buffers, + BlevBufferSrcsOutItT blev_buffer_srcs, + BlevBufferDstsOutItT blev_buffer_dsts, + BlevBufferSizesOutItT blev_buffer_sizes, + BlevBufferTileOffsetsOutItT blev_buffer_tile_offsets, + BLevBufferOffsetTileState blev_buffer_scan_state, + BLevBlockOffsetTileState blev_block_scan_state) + : temp_storage(temp_storage.Alias()) + , input_buffer_it(input_buffer_it) + , output_buffer_it(output_buffer_it) + , buffer_sizes_it(buffer_sizes_it) + , num_buffers(num_buffers) + , blev_buffer_srcs(blev_buffer_srcs) + , blev_buffer_dsts(blev_buffer_dsts) + , blev_buffer_sizes(blev_buffer_sizes) + , blev_buffer_tile_offsets(blev_buffer_tile_offsets) + , blev_buffer_scan_state(blev_buffer_scan_state) + , blev_block_scan_state(blev_block_scan_state) + {} + +private: + // Iterator providing the pointers to the source memory buffers + InputBufferIt input_buffer_it; + // Iterator providing the pointers to the destination memory buffers + OutputBufferIt output_buffer_it; + // Iterator providing the number of bytes to be copied for each pair of buffers + BufferSizeIteratorT buffer_sizes_it; + // The total number of buffer pairs + BufferOffsetT num_buffers; + // Output iterator to which the source pointers of the BLEV buffers are written + BlevBufferSrcsOutItT blev_buffer_srcs; + // Output iterator to which the destination pointers of the BLEV buffers are written + BlevBufferDstsOutItT blev_buffer_dsts; + // Output iterator to which the number of bytes to be copied of the BLEV buffers are written + BlevBufferSizesOutItT blev_buffer_sizes; + // Output iterator to which the mapping of tiles to BLEV buffers is written + BlevBufferTileOffsetsOutItT blev_buffer_tile_offsets; + // The single-pass prefix scan's tile state used for tracking the prefix sum over the number of + // BLEV buffers + BLevBufferOffsetTileState blev_buffer_scan_state; + // The single-pass prefix scan's tile state used for tracking the prefix sum over tiles of BLEV + // buffers + BLevBlockOffsetTileState blev_block_scan_state; +}; + +} // namespace detail + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_histogram.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_histogram.cuh new file mode 100644 index 0000000000000000000000000000000000000000..af4c0e347b01ef8665c15d035333256e6a4e9fcf --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_histogram.cuh @@ -0,0 +1,775 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * cub::AgentHistogram implements a stateful abstraction of CUDA thread blocks for participating in device-wide histogram . + */ + +#pragma once + +#include + +#include "../util_type.cuh" +#include "../block/block_load.cuh" +#include "../config.cuh" +#include "../grid/grid_queue.cuh" +#include "../iterator/cache_modified_input_iterator.cuh" + +CUB_NAMESPACE_BEGIN + + +/****************************************************************************** + * Tuning policy + ******************************************************************************/ + +/** + * + */ +enum BlockHistogramMemoryPreference +{ + GMEM, + SMEM, + BLEND +}; + + +/** + * Parameterizable tuning policy type for AgentHistogram + */ +template < + int _BLOCK_THREADS, ///< Threads per thread block + int _PIXELS_PER_THREAD, ///< Pixels per thread (per tile of input) + BlockLoadAlgorithm _LOAD_ALGORITHM, ///< The BlockLoad algorithm to use + CacheLoadModifier _LOAD_MODIFIER, ///< Cache load modifier for reading input elements + bool _RLE_COMPRESS, ///< Whether to perform localized RLE to compress samples before histogramming + BlockHistogramMemoryPreference _MEM_PREFERENCE, ///< Whether to prefer privatized shared-memory bins (versus privatized global-memory bins) + bool _WORK_STEALING> ///< Whether to dequeue tiles from a global work queue +struct AgentHistogramPolicy +{ + enum + { + BLOCK_THREADS = _BLOCK_THREADS, ///< Threads per thread block + PIXELS_PER_THREAD = _PIXELS_PER_THREAD, ///< Pixels per thread (per tile of input) + IS_RLE_COMPRESS = _RLE_COMPRESS, ///< Whether to perform localized RLE to compress samples before histogramming + MEM_PREFERENCE = _MEM_PREFERENCE, ///< Whether to prefer privatized shared-memory bins (versus privatized global-memory bins) + IS_WORK_STEALING = _WORK_STEALING, ///< Whether to dequeue tiles from a global work queue + }; + + static const BlockLoadAlgorithm LOAD_ALGORITHM = _LOAD_ALGORITHM; ///< The BlockLoad algorithm to use + static const CacheLoadModifier LOAD_MODIFIER = _LOAD_MODIFIER; ///< Cache load modifier for reading input elements +}; + + +/****************************************************************************** + * Thread block abstractions + ******************************************************************************/ + +/** + * \brief AgentHistogram implements a stateful abstraction of CUDA thread blocks for participating in device-wide histogram . + */ +template < + typename AgentHistogramPolicyT, ///< Parameterized AgentHistogramPolicy tuning policy type + int PRIVATIZED_SMEM_BINS, ///< Number of privatized shared-memory histogram bins of any channel. Zero indicates privatized counters to be maintained in device-accessible memory. + int NUM_CHANNELS, ///< Number of channels interleaved in the input data. Supports up to four channels. + int NUM_ACTIVE_CHANNELS, ///< Number of channels actively being histogrammed + typename SampleIteratorT, ///< Random-access input iterator type for reading samples + typename CounterT, ///< Integer type for counting sample occurrences per histogram bin + typename PrivatizedDecodeOpT, ///< The transform operator type for determining privatized counter indices from samples, one for each channel + typename OutputDecodeOpT, ///< The transform operator type for determining output bin-ids from privatized counter indices, one for each channel + typename OffsetT, ///< Signed integer type for global offsets + int LEGACY_PTX_ARCH = 0> ///< PTX compute capability (unused) +struct AgentHistogram +{ + //--------------------------------------------------------------------- + // Types and constants + //--------------------------------------------------------------------- + + /// The sample type of the input iterator + using SampleT = cub::detail::value_t; + + /// The pixel type of SampleT + using PixelT = typename CubVector::Type; + + /// The quad type of SampleT + using QuadT = typename CubVector::Type; + + /// Constants + enum + { + BLOCK_THREADS = AgentHistogramPolicyT::BLOCK_THREADS, + + PIXELS_PER_THREAD = AgentHistogramPolicyT::PIXELS_PER_THREAD, + SAMPLES_PER_THREAD = PIXELS_PER_THREAD * NUM_CHANNELS, + QUADS_PER_THREAD = SAMPLES_PER_THREAD / 4, + + TILE_PIXELS = PIXELS_PER_THREAD * BLOCK_THREADS, + TILE_SAMPLES = SAMPLES_PER_THREAD * BLOCK_THREADS, + + IS_RLE_COMPRESS = AgentHistogramPolicyT::IS_RLE_COMPRESS, + + MEM_PREFERENCE = (PRIVATIZED_SMEM_BINS > 0) ? + AgentHistogramPolicyT::MEM_PREFERENCE : + GMEM, + + IS_WORK_STEALING = AgentHistogramPolicyT::IS_WORK_STEALING, + }; + + /// Cache load modifier for reading input elements + static const CacheLoadModifier LOAD_MODIFIER = AgentHistogramPolicyT::LOAD_MODIFIER; + + + /// Input iterator wrapper type (for applying cache modifier) + // Wrap the native input pointer with CacheModifiedInputIterator + // or directly use the supplied input iterator type + using WrappedSampleIteratorT = cub::detail::conditional_t< + std::is_pointer::value, + CacheModifiedInputIterator, + SampleIteratorT>; + + /// Pixel input iterator type (for applying cache modifier) + typedef CacheModifiedInputIterator + WrappedPixelIteratorT; + + /// Qaud input iterator type (for applying cache modifier) + typedef CacheModifiedInputIterator + WrappedQuadIteratorT; + + /// Parameterized BlockLoad type for samples + typedef BlockLoad< + SampleT, + BLOCK_THREADS, + SAMPLES_PER_THREAD, + AgentHistogramPolicyT::LOAD_ALGORITHM> + BlockLoadSampleT; + + /// Parameterized BlockLoad type for pixels + typedef BlockLoad< + PixelT, + BLOCK_THREADS, + PIXELS_PER_THREAD, + AgentHistogramPolicyT::LOAD_ALGORITHM> + BlockLoadPixelT; + + /// Parameterized BlockLoad type for quads + typedef BlockLoad< + QuadT, + BLOCK_THREADS, + QUADS_PER_THREAD, + AgentHistogramPolicyT::LOAD_ALGORITHM> + BlockLoadQuadT; + + /// Shared memory type required by this thread block + struct _TempStorage + { + CounterT histograms[NUM_ACTIVE_CHANNELS][PRIVATIZED_SMEM_BINS + 1]; // Smem needed for block-privatized smem histogram (with 1 word of padding) + + int tile_idx; + + // Aliasable storage layout + union Aliasable + { + typename BlockLoadSampleT::TempStorage sample_load; // Smem needed for loading a tile of samples + typename BlockLoadPixelT::TempStorage pixel_load; // Smem needed for loading a tile of pixels + typename BlockLoadQuadT::TempStorage quad_load; // Smem needed for loading a tile of quads + + } aliasable; + }; + + + /// Temporary storage type (unionable) + struct TempStorage : Uninitialized<_TempStorage> {}; + + + //--------------------------------------------------------------------- + // Per-thread fields + //--------------------------------------------------------------------- + + /// Reference to temp_storage + _TempStorage &temp_storage; + + /// Sample input iterator (with cache modifier applied, if possible) + WrappedSampleIteratorT d_wrapped_samples; + + /// Native pointer for input samples (possibly NULL if unavailable) + SampleT* d_native_samples; + + /// The number of output bins for each channel + int (&num_output_bins)[NUM_ACTIVE_CHANNELS]; + + /// The number of privatized bins for each channel + int (&num_privatized_bins)[NUM_ACTIVE_CHANNELS]; + + /// Reference to gmem privatized histograms for each channel + CounterT* d_privatized_histograms[NUM_ACTIVE_CHANNELS]; + + /// Reference to final output histograms (gmem) + CounterT* (&d_output_histograms)[NUM_ACTIVE_CHANNELS]; + + /// The transform operator for determining output bin-ids from privatized counter indices, one for each channel + OutputDecodeOpT (&output_decode_op)[NUM_ACTIVE_CHANNELS]; + + /// The transform operator for determining privatized counter indices from samples, one for each channel + PrivatizedDecodeOpT (&privatized_decode_op)[NUM_ACTIVE_CHANNELS]; + + /// Whether to prefer privatized smem counters vs privatized global counters + bool prefer_smem; + + + //--------------------------------------------------------------------- + // Initialize privatized bin counters + //--------------------------------------------------------------------- + + // Initialize privatized bin counters + __device__ __forceinline__ void InitBinCounters(CounterT* privatized_histograms[NUM_ACTIVE_CHANNELS]) + { + // Initialize histogram bin counts to zeros + #pragma unroll + for (int CHANNEL = 0; CHANNEL < NUM_ACTIVE_CHANNELS; ++CHANNEL) + { + for (int privatized_bin = threadIdx.x; privatized_bin < num_privatized_bins[CHANNEL]; privatized_bin += BLOCK_THREADS) + { + privatized_histograms[CHANNEL][privatized_bin] = 0; + } + } + + // Barrier to make sure all threads are done updating counters + CTA_SYNC(); + } + + + // Initialize privatized bin counters. Specialized for privatized shared-memory counters + __device__ __forceinline__ void InitSmemBinCounters() + { + CounterT* privatized_histograms[NUM_ACTIVE_CHANNELS]; + + for (int CHANNEL = 0; CHANNEL < NUM_ACTIVE_CHANNELS; ++CHANNEL) + privatized_histograms[CHANNEL] = temp_storage.histograms[CHANNEL]; + + InitBinCounters(privatized_histograms); + } + + + // Initialize privatized bin counters. Specialized for privatized global-memory counters + __device__ __forceinline__ void InitGmemBinCounters() + { + InitBinCounters(d_privatized_histograms); + } + + + //--------------------------------------------------------------------- + // Update final output histograms + //--------------------------------------------------------------------- + + // Update final output histograms from privatized histograms + __device__ __forceinline__ void StoreOutput(CounterT* privatized_histograms[NUM_ACTIVE_CHANNELS]) + { + // Barrier to make sure all threads are done updating counters + CTA_SYNC(); + + // Apply privatized bin counts to output bin counts + #pragma unroll + for (int CHANNEL = 0; CHANNEL < NUM_ACTIVE_CHANNELS; ++CHANNEL) + { + int channel_bins = num_privatized_bins[CHANNEL]; + for (int privatized_bin = threadIdx.x; + privatized_bin < channel_bins; + privatized_bin += BLOCK_THREADS) + { + int output_bin = -1; + CounterT count = privatized_histograms[CHANNEL][privatized_bin]; + bool is_valid = count > 0; + + output_decode_op[CHANNEL].template BinSelect((SampleT) privatized_bin, output_bin, is_valid); + + if (output_bin >= 0) + { + atomicAdd(&d_output_histograms[CHANNEL][output_bin], count); + } + + } + } + } + + + // Update final output histograms from privatized histograms. Specialized for privatized shared-memory counters + __device__ __forceinline__ void StoreSmemOutput() + { + CounterT* privatized_histograms[NUM_ACTIVE_CHANNELS]; + for (int CHANNEL = 0; CHANNEL < NUM_ACTIVE_CHANNELS; ++CHANNEL) + privatized_histograms[CHANNEL] = temp_storage.histograms[CHANNEL]; + + StoreOutput(privatized_histograms); + } + + + // Update final output histograms from privatized histograms. Specialized for privatized global-memory counters + __device__ __forceinline__ void StoreGmemOutput() + { + StoreOutput(d_privatized_histograms); + } + + + //--------------------------------------------------------------------- + // Tile accumulation + //--------------------------------------------------------------------- + + // Accumulate pixels. Specialized for RLE compression. + __device__ __forceinline__ void AccumulatePixels( + SampleT samples[PIXELS_PER_THREAD][NUM_CHANNELS], + bool is_valid[PIXELS_PER_THREAD], + CounterT* privatized_histograms[NUM_ACTIVE_CHANNELS], + Int2Type is_rle_compress) + { + #pragma unroll + for (int CHANNEL = 0; CHANNEL < NUM_ACTIVE_CHANNELS; ++CHANNEL) + { + // Bin pixels + int bins[PIXELS_PER_THREAD]; + + #pragma unroll + for (int PIXEL = 0; PIXEL < PIXELS_PER_THREAD; ++PIXEL) + { + bins[PIXEL] = -1; + privatized_decode_op[CHANNEL].template BinSelect(samples[PIXEL][CHANNEL], bins[PIXEL], is_valid[PIXEL]); + } + + CounterT accumulator = 1; + + #pragma unroll + for (int PIXEL = 0; PIXEL < PIXELS_PER_THREAD - 1; ++PIXEL) + { + if (bins[PIXEL] != bins[PIXEL + 1]) + { + if (bins[PIXEL] >= 0) + atomicAdd(privatized_histograms[CHANNEL] + bins[PIXEL], accumulator); + + accumulator = 0; + } + accumulator++; + } + + // Last pixel + if (bins[PIXELS_PER_THREAD - 1] >= 0) + atomicAdd(privatized_histograms[CHANNEL] + bins[PIXELS_PER_THREAD - 1], accumulator); + } + } + + + // Accumulate pixels. Specialized for individual accumulation of each pixel. + __device__ __forceinline__ void AccumulatePixels( + SampleT samples[PIXELS_PER_THREAD][NUM_CHANNELS], + bool is_valid[PIXELS_PER_THREAD], + CounterT* privatized_histograms[NUM_ACTIVE_CHANNELS], + Int2Type is_rle_compress) + { + #pragma unroll + for (int PIXEL = 0; PIXEL < PIXELS_PER_THREAD; ++PIXEL) + { + #pragma unroll + for (int CHANNEL = 0; CHANNEL < NUM_ACTIVE_CHANNELS; ++CHANNEL) + { + int bin = -1; + privatized_decode_op[CHANNEL].template BinSelect(samples[PIXEL][CHANNEL], bin, is_valid[PIXEL]); + if (bin >= 0) + atomicAdd(privatized_histograms[CHANNEL] + bin, 1); + } + } + } + + + /** + * Accumulate pixel, specialized for smem privatized histogram + */ + __device__ __forceinline__ void AccumulateSmemPixels( + SampleT samples[PIXELS_PER_THREAD][NUM_CHANNELS], + bool is_valid[PIXELS_PER_THREAD]) + { + CounterT* privatized_histograms[NUM_ACTIVE_CHANNELS]; + + for (int CHANNEL = 0; CHANNEL < NUM_ACTIVE_CHANNELS; ++CHANNEL) + privatized_histograms[CHANNEL] = temp_storage.histograms[CHANNEL]; + + AccumulatePixels(samples, is_valid, privatized_histograms, Int2Type()); + } + + + /** + * Accumulate pixel, specialized for gmem privatized histogram + */ + __device__ __forceinline__ void AccumulateGmemPixels( + SampleT samples[PIXELS_PER_THREAD][NUM_CHANNELS], + bool is_valid[PIXELS_PER_THREAD]) + { + AccumulatePixels(samples, is_valid, d_privatized_histograms, Int2Type()); + } + + + + //--------------------------------------------------------------------- + // Tile loading + //--------------------------------------------------------------------- + + // Load full, aligned tile using pixel iterator (multi-channel) + template + __device__ __forceinline__ void LoadFullAlignedTile( + OffsetT block_offset, + int valid_samples, + SampleT (&samples)[PIXELS_PER_THREAD][NUM_CHANNELS], + Int2Type<_NUM_ACTIVE_CHANNELS> num_active_channels) + { + typedef PixelT AliasedPixels[PIXELS_PER_THREAD]; + + WrappedPixelIteratorT d_wrapped_pixels((PixelT*) (d_native_samples + block_offset)); + + // Load using a wrapped pixel iterator + BlockLoadPixelT(temp_storage.aliasable.pixel_load).Load( + d_wrapped_pixels, + reinterpret_cast(samples)); + } + + // Load full, aligned tile using quad iterator (single-channel) + __device__ __forceinline__ void LoadFullAlignedTile( + OffsetT block_offset, + int valid_samples, + SampleT (&samples)[PIXELS_PER_THREAD][NUM_CHANNELS], + Int2Type<1> num_active_channels) + { + typedef QuadT AliasedQuads[QUADS_PER_THREAD]; + + WrappedQuadIteratorT d_wrapped_quads((QuadT*) (d_native_samples + block_offset)); + + // Load using a wrapped quad iterator + BlockLoadQuadT(temp_storage.aliasable.quad_load).Load( + d_wrapped_quads, + reinterpret_cast(samples)); + } + + // Load full, aligned tile + __device__ __forceinline__ void LoadTile( + OffsetT block_offset, + int valid_samples, + SampleT (&samples)[PIXELS_PER_THREAD][NUM_CHANNELS], + Int2Type is_full_tile, + Int2Type is_aligned) + { + LoadFullAlignedTile(block_offset, valid_samples, samples, Int2Type()); + } + + // Load full, mis-aligned tile using sample iterator + __device__ __forceinline__ void LoadTile( + OffsetT block_offset, + int valid_samples, + SampleT (&samples)[PIXELS_PER_THREAD][NUM_CHANNELS], + Int2Type is_full_tile, + Int2Type is_aligned) + { + typedef SampleT AliasedSamples[SAMPLES_PER_THREAD]; + + // Load using sample iterator + BlockLoadSampleT(temp_storage.aliasable.sample_load).Load( + d_wrapped_samples + block_offset, + reinterpret_cast(samples)); + } + + // Load partially-full, aligned tile using the pixel iterator + __device__ __forceinline__ void LoadTile( + OffsetT block_offset, + int valid_samples, + SampleT (&samples)[PIXELS_PER_THREAD][NUM_CHANNELS], + Int2Type is_full_tile, + Int2Type is_aligned) + { + typedef PixelT AliasedPixels[PIXELS_PER_THREAD]; + + WrappedPixelIteratorT d_wrapped_pixels((PixelT*) (d_native_samples + block_offset)); + + int valid_pixels = valid_samples / NUM_CHANNELS; + + // Load using a wrapped pixel iterator + BlockLoadPixelT(temp_storage.aliasable.pixel_load).Load( + d_wrapped_pixels, + reinterpret_cast(samples), + valid_pixels); + } + + // Load partially-full, mis-aligned tile using sample iterator + __device__ __forceinline__ void LoadTile( + OffsetT block_offset, + int valid_samples, + SampleT (&samples)[PIXELS_PER_THREAD][NUM_CHANNELS], + Int2Type is_full_tile, + Int2Type is_aligned) + { + typedef SampleT AliasedSamples[SAMPLES_PER_THREAD]; + + BlockLoadSampleT(temp_storage.aliasable.sample_load).Load( + d_wrapped_samples + block_offset, + reinterpret_cast(samples), + valid_samples); + } + + + //--------------------------------------------------------------------- + // Tile processing + //--------------------------------------------------------------------- + + // Consume a tile of data samples + template < + bool IS_ALIGNED, // Whether the tile offset is aligned (quad-aligned for single-channel, pixel-aligned for multi-channel) + bool IS_FULL_TILE> // Whether the tile is full + __device__ __forceinline__ void ConsumeTile(OffsetT block_offset, int valid_samples) + { + SampleT samples[PIXELS_PER_THREAD][NUM_CHANNELS]; + bool is_valid[PIXELS_PER_THREAD]; + + // Load tile + LoadTile( + block_offset, + valid_samples, + samples, + Int2Type(), + Int2Type()); + + // Set valid flags + #pragma unroll + for (int PIXEL = 0; PIXEL < PIXELS_PER_THREAD; ++PIXEL) + is_valid[PIXEL] = IS_FULL_TILE || (((threadIdx.x * PIXELS_PER_THREAD + PIXEL) * NUM_CHANNELS) < valid_samples); + + // Accumulate samples + if (prefer_smem) + AccumulateSmemPixels(samples, is_valid); + else + AccumulateGmemPixels(samples, is_valid); + } + + + // Consume row tiles. Specialized for work-stealing from queue + template + __device__ __forceinline__ void ConsumeTiles( + OffsetT num_row_pixels, ///< The number of multi-channel pixels per row in the region of interest + OffsetT num_rows, ///< The number of rows in the region of interest + OffsetT row_stride_samples, ///< The number of samples between starts of consecutive rows in the region of interest + int tiles_per_row, ///< Number of image tiles per row + GridQueue tile_queue, + Int2Type is_work_stealing) + { + + int num_tiles = num_rows * tiles_per_row; + int tile_idx = (blockIdx.y * gridDim.x) + blockIdx.x; + OffsetT num_even_share_tiles = gridDim.x * gridDim.y; + + while (tile_idx < num_tiles) + { + int row = tile_idx / tiles_per_row; + int col = tile_idx - (row * tiles_per_row); + OffsetT row_offset = row * row_stride_samples; + OffsetT col_offset = (col * TILE_SAMPLES); + OffsetT tile_offset = row_offset + col_offset; + + if (col == tiles_per_row - 1) + { + // Consume a partially-full tile at the end of the row + OffsetT num_remaining = (num_row_pixels * NUM_CHANNELS) - col_offset; + ConsumeTile(tile_offset, num_remaining); + } + else + { + // Consume full tile + ConsumeTile(tile_offset, TILE_SAMPLES); + } + + CTA_SYNC(); + + // Get next tile + if (threadIdx.x == 0) + temp_storage.tile_idx = tile_queue.Drain(1) + num_even_share_tiles; + + CTA_SYNC(); + + tile_idx = temp_storage.tile_idx; + } + } + + + // Consume row tiles. Specialized for even-share (striped across thread blocks) + template + __device__ __forceinline__ void ConsumeTiles( + OffsetT num_row_pixels, ///< The number of multi-channel pixels per row in the region of interest + OffsetT num_rows, ///< The number of rows in the region of interest + OffsetT row_stride_samples, ///< The number of samples between starts of consecutive rows in the region of interest + int tiles_per_row, ///< Number of image tiles per row + GridQueue tile_queue, + Int2Type is_work_stealing) + { + for (int row = blockIdx.y; row < num_rows; row += gridDim.y) + { + OffsetT row_begin = row * row_stride_samples; + OffsetT row_end = row_begin + (num_row_pixels * NUM_CHANNELS); + OffsetT tile_offset = row_begin + (blockIdx.x * TILE_SAMPLES); + + while (tile_offset < row_end) + { + OffsetT num_remaining = row_end - tile_offset; + + if (num_remaining < TILE_SAMPLES) + { + // Consume partial tile + ConsumeTile(tile_offset, num_remaining); + break; + } + + // Consume full tile + ConsumeTile(tile_offset, TILE_SAMPLES); + tile_offset += gridDim.x * TILE_SAMPLES; + } + } + } + + + //--------------------------------------------------------------------- + // Parameter extraction + //--------------------------------------------------------------------- + + // Return a native pixel pointer (specialized for CacheModifiedInputIterator types) + template < + CacheLoadModifier _MODIFIER, + typename _ValueT, + typename _OffsetT> + __device__ __forceinline__ SampleT* NativePointer(CacheModifiedInputIterator<_MODIFIER, _ValueT, _OffsetT> itr) + { + return itr.ptr; + } + + // Return a native pixel pointer (specialized for other types) + template + __device__ __forceinline__ SampleT* NativePointer(IteratorT itr) + { + return NULL; + } + + + + //--------------------------------------------------------------------- + // Interface + //--------------------------------------------------------------------- + + + /** + * Constructor + */ + __device__ __forceinline__ AgentHistogram( + TempStorage &temp_storage, ///< Reference to temp_storage + SampleIteratorT d_samples, ///< Input data to reduce + int (&num_output_bins)[NUM_ACTIVE_CHANNELS], ///< The number bins per final output histogram + int (&num_privatized_bins)[NUM_ACTIVE_CHANNELS], ///< The number bins per privatized histogram + CounterT* (&d_output_histograms)[NUM_ACTIVE_CHANNELS], ///< Reference to final output histograms + CounterT* (&d_privatized_histograms)[NUM_ACTIVE_CHANNELS], ///< Reference to privatized histograms + OutputDecodeOpT (&output_decode_op)[NUM_ACTIVE_CHANNELS], ///< The transform operator for determining output bin-ids from privatized counter indices, one for each channel + PrivatizedDecodeOpT (&privatized_decode_op)[NUM_ACTIVE_CHANNELS]) ///< The transform operator for determining privatized counter indices from samples, one for each channel + : + temp_storage(temp_storage.Alias()), + d_wrapped_samples(d_samples), + d_native_samples(NativePointer(d_wrapped_samples)), + num_output_bins(num_output_bins), + num_privatized_bins(num_privatized_bins), + d_output_histograms(d_output_histograms), + output_decode_op(output_decode_op), + privatized_decode_op(privatized_decode_op), + prefer_smem((MEM_PREFERENCE == SMEM) ? + true : // prefer smem privatized histograms + (MEM_PREFERENCE == GMEM) ? + false : // prefer gmem privatized histograms + blockIdx.x & 1) // prefer blended privatized histograms + { + int blockId = (blockIdx.y * gridDim.x) + blockIdx.x; + + // Initialize the locations of this block's privatized histograms + for (int CHANNEL = 0; CHANNEL < NUM_ACTIVE_CHANNELS; ++CHANNEL) + this->d_privatized_histograms[CHANNEL] = d_privatized_histograms[CHANNEL] + (blockId * num_privatized_bins[CHANNEL]); + } + + + /** + * Consume image + */ + __device__ __forceinline__ void ConsumeTiles( + OffsetT num_row_pixels, ///< The number of multi-channel pixels per row in the region of interest + OffsetT num_rows, ///< The number of rows in the region of interest + OffsetT row_stride_samples, ///< The number of samples between starts of consecutive rows in the region of interest + int tiles_per_row, ///< Number of image tiles per row + GridQueue tile_queue) ///< Queue descriptor for assigning tiles of work to thread blocks + { + // Check whether all row starting offsets are quad-aligned (in single-channel) or pixel-aligned (in multi-channel) + int quad_mask = AlignBytes::ALIGN_BYTES - 1; + int pixel_mask = AlignBytes::ALIGN_BYTES - 1; + size_t row_bytes = sizeof(SampleT) * row_stride_samples; + + bool quad_aligned_rows = (NUM_CHANNELS == 1) && (SAMPLES_PER_THREAD % 4 == 0) && // Single channel + ((size_t(d_native_samples) & quad_mask) == 0) && // ptr is quad-aligned + ((num_rows == 1) || ((row_bytes & quad_mask) == 0)); // number of row-samples is a multiple of the alignment of the quad + + bool pixel_aligned_rows = (NUM_CHANNELS > 1) && // Multi channel + ((size_t(d_native_samples) & pixel_mask) == 0) && // ptr is pixel-aligned + ((row_bytes & pixel_mask) == 0); // number of row-samples is a multiple of the alignment of the pixel + + // Whether rows are aligned and can be vectorized + if ((d_native_samples != NULL) && (quad_aligned_rows || pixel_aligned_rows)) + ConsumeTiles(num_row_pixels, num_rows, row_stride_samples, tiles_per_row, tile_queue, Int2Type()); + else + ConsumeTiles(num_row_pixels, num_rows, row_stride_samples, tiles_per_row, tile_queue, Int2Type()); + } + + + /** + * Initialize privatized bin counters. Specialized for privatized shared-memory counters + */ + __device__ __forceinline__ void InitBinCounters() + { + if (prefer_smem) + InitSmemBinCounters(); + else + InitGmemBinCounters(); + } + + + /** + * Store privatized histogram to device-accessible memory. Specialized for privatized shared-memory counters + */ + __device__ __forceinline__ void StoreOutput() + { + if (prefer_smem) + StoreSmemOutput(); + else + StoreGmemOutput(); + } + + +}; + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_merge_sort.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_merge_sort.cuh new file mode 100644 index 0000000000000000000000000000000000000000..2e994dd97e125d1594751bdc51677da0c699001d --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_merge_sort.cuh @@ -0,0 +1,750 @@ +/****************************************************************************** + * Copyright (c) 2011-2021, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +#pragma once + +#include "../config.cuh" +#include "../util_type.cuh" +#include "../util_namespace.cuh" +#include "../block/block_load.cuh" +#include "../block/block_store.cuh" +#include "../block/block_merge_sort.cuh" + +#include + +CUB_NAMESPACE_BEGIN + + +template < + int _BLOCK_THREADS, + int _ITEMS_PER_THREAD = 1, + cub::BlockLoadAlgorithm _LOAD_ALGORITHM = cub::BLOCK_LOAD_DIRECT, + cub::CacheLoadModifier _LOAD_MODIFIER = cub::LOAD_LDG, + cub::BlockStoreAlgorithm _STORE_ALGORITHM = cub::BLOCK_STORE_DIRECT> +struct AgentMergeSortPolicy +{ + static constexpr int BLOCK_THREADS = _BLOCK_THREADS; + static constexpr int ITEMS_PER_THREAD = _ITEMS_PER_THREAD; + static constexpr int ITEMS_PER_TILE = BLOCK_THREADS * ITEMS_PER_THREAD; + + static constexpr cub::BlockLoadAlgorithm LOAD_ALGORITHM = _LOAD_ALGORITHM; + static constexpr cub::CacheLoadModifier LOAD_MODIFIER = _LOAD_MODIFIER; + static constexpr cub::BlockStoreAlgorithm STORE_ALGORITHM = _STORE_ALGORITHM; +}; + +/// \brief This agent is responsible for the initial in-tile sorting. +template +struct AgentBlockSort +{ + //--------------------------------------------------------------------- + // Types and constants + //--------------------------------------------------------------------- + + static constexpr bool KEYS_ONLY = std::is_same::value; + + using BlockMergeSortT = + BlockMergeSort; + + using KeysLoadIt = typename THRUST_NS_QUALIFIER::cuda_cub::core::LoadIterator::type; + using ItemsLoadIt = typename THRUST_NS_QUALIFIER::cuda_cub::core::LoadIterator::type; + + using BlockLoadKeys = typename cub::BlockLoadType::type; + using BlockLoadItems = typename cub::BlockLoadType::type; + + using BlockStoreKeysIt = typename cub::BlockStoreType::type; + using BlockStoreItemsIt = typename cub::BlockStoreType::type; + using BlockStoreKeysRaw = typename cub::BlockStoreType::type; + using BlockStoreItemsRaw = typename cub::BlockStoreType::type; + + union _TempStorage + { + typename BlockLoadKeys::TempStorage load_keys; + typename BlockLoadItems::TempStorage load_items; + typename BlockStoreKeysIt::TempStorage store_keys_it; + typename BlockStoreItemsIt::TempStorage store_items_it; + typename BlockStoreKeysRaw::TempStorage store_keys_raw; + typename BlockStoreItemsRaw::TempStorage store_items_raw; + typename BlockMergeSortT::TempStorage block_merge; + }; + + /// Alias wrapper allowing storage to be unioned + struct TempStorage : Uninitialized<_TempStorage> {}; + + static constexpr int BLOCK_THREADS = Policy::BLOCK_THREADS; + static constexpr int ITEMS_PER_THREAD = Policy::ITEMS_PER_THREAD; + static constexpr int ITEMS_PER_TILE = Policy::ITEMS_PER_TILE; + static constexpr int SHARED_MEMORY_SIZE = + static_cast(sizeof(TempStorage)); + + //--------------------------------------------------------------------- + // Per thread data + //--------------------------------------------------------------------- + + bool ping; + _TempStorage &storage; + KeysLoadIt keys_in; + ItemsLoadIt items_in; + OffsetT keys_count; + KeyIteratorT keys_out_it; + ValueIteratorT items_out_it; + KeyT *keys_out_raw; + ValueT *items_out_raw; + CompareOpT compare_op; + + __device__ __forceinline__ AgentBlockSort(bool ping_, + TempStorage &storage_, + KeysLoadIt keys_in_, + ItemsLoadIt items_in_, + OffsetT keys_count_, + KeyIteratorT keys_out_it_, + ValueIteratorT items_out_it_, + KeyT *keys_out_raw_, + ValueT *items_out_raw_, + CompareOpT compare_op_) + : ping(ping_) + , storage(storage_.Alias()) + , keys_in(keys_in_) + , items_in(items_in_) + , keys_count(keys_count_) + , keys_out_it(keys_out_it_) + , items_out_it(items_out_it_) + , keys_out_raw(keys_out_raw_) + , items_out_raw(items_out_raw_) + , compare_op(compare_op_) + { + } + + __device__ __forceinline__ void Process() + { + auto tile_idx = static_cast(blockIdx.x); + auto num_tiles = static_cast(gridDim.x); + auto tile_base = tile_idx * ITEMS_PER_TILE; + int items_in_tile = (cub::min)(keys_count - tile_base, int{ITEMS_PER_TILE}); + + if (tile_idx < num_tiles - 1) + { + consume_tile(tile_base, ITEMS_PER_TILE); + } + else + { + consume_tile(tile_base, items_in_tile); + } + } + + template + __device__ __forceinline__ void consume_tile(OffsetT tile_base, + int num_remaining) + { + ValueT items_local[ITEMS_PER_THREAD]; + if (!KEYS_ONLY) + { + if (IS_LAST_TILE) + { + BlockLoadItems(storage.load_items) + .Load(items_in + tile_base, + items_local, + num_remaining, + *(items_in + tile_base)); + } + else + { + BlockLoadItems(storage.load_items).Load(items_in + tile_base, items_local); + } + + CTA_SYNC(); + } + + KeyT keys_local[ITEMS_PER_THREAD]; + if (IS_LAST_TILE) + { + BlockLoadKeys(storage.load_keys) + .Load(keys_in + tile_base, + keys_local, + num_remaining, + *(keys_in + tile_base)); + } + else + { + BlockLoadKeys(storage.load_keys) + .Load(keys_in + tile_base, keys_local); + } + + CTA_SYNC(); + + if (IS_LAST_TILE) + { + BlockMergeSortT(storage.block_merge) + .Sort(keys_local, items_local, compare_op, num_remaining, keys_local[0]); + } + else + { + BlockMergeSortT(storage.block_merge).Sort(keys_local, items_local, compare_op); + } + + CTA_SYNC(); + + if (ping) + { + if (IS_LAST_TILE) + { + BlockStoreKeysIt(storage.store_keys_it) + .Store(keys_out_it + tile_base, keys_local, num_remaining); + } + else + { + BlockStoreKeysIt(storage.store_keys_it) + .Store(keys_out_it + tile_base, keys_local); + } + + if (!KEYS_ONLY) + { + CTA_SYNC(); + + if (IS_LAST_TILE) + { + BlockStoreItemsIt(storage.store_items_it) + .Store(items_out_it + tile_base, items_local, num_remaining); + } + else + { + BlockStoreItemsIt(storage.store_items_it) + .Store(items_out_it + tile_base, items_local); + } + } + } + else + { + if (IS_LAST_TILE) + { + BlockStoreKeysRaw(storage.store_keys_raw) + .Store(keys_out_raw + tile_base, keys_local, num_remaining); + } + else + { + BlockStoreKeysRaw(storage.store_keys_raw) + .Store(keys_out_raw + tile_base, keys_local); + } + + if (!KEYS_ONLY) + { + CTA_SYNC(); + + if (IS_LAST_TILE) + { + BlockStoreItemsRaw(storage.store_items_raw) + .Store(items_out_raw + tile_base, items_local, num_remaining); + } + else + { + BlockStoreItemsRaw(storage.store_items_raw) + .Store(items_out_raw + tile_base, items_local); + } + } + } + } +}; + +/** + * \brief This agent is responsible for partitioning a merge path into equal segments + * + * There are two sorted arrays to be merged into one array. If the first array + * is partitioned between parallel workers by slicing it into ranges of equal + * size, there could be a significant workload imbalance. The imbalance is + * caused by the fact that the distribution of elements from the second array + * is unknown beforehand. Instead, the MergePath is partitioned between workers. + * This approach guarantees an equal amount of work being assigned to each worker. + * + * This approach is outlined in the paper: + * Odeh et al, "Merge Path - Parallel Merging Made Simple" + * doi:10.1109/IPDPSW.2012.202 + */ +template < + typename KeyIteratorT, + typename OffsetT, + typename CompareOpT, + typename KeyT> +struct AgentPartition +{ + bool ping; + KeyIteratorT keys_ping; + KeyT *keys_pong; + OffsetT keys_count; + OffsetT partition_idx; + OffsetT *merge_partitions; + CompareOpT compare_op; + OffsetT target_merged_tiles_number; + int items_per_tile; + + __device__ __forceinline__ AgentPartition(bool ping, + KeyIteratorT keys_ping, + KeyT *keys_pong, + OffsetT keys_count, + OffsetT partition_idx, + OffsetT *merge_partitions, + CompareOpT compare_op, + OffsetT target_merged_tiles_number, + int items_per_tile) + : ping(ping) + , keys_ping(keys_ping) + , keys_pong(keys_pong) + , keys_count(keys_count) + , partition_idx(partition_idx) + , merge_partitions(merge_partitions) + , compare_op(compare_op) + , target_merged_tiles_number(target_merged_tiles_number) + , items_per_tile(items_per_tile) + {} + + __device__ __forceinline__ void Process() + { + OffsetT merged_tiles_number = target_merged_tiles_number / 2; + + // target_merged_tiles_number is a power of two. + OffsetT mask = target_merged_tiles_number - 1; + + // The first tile number in the tiles group being merged, equal to: + // target_merged_tiles_number * (partition_idx / target_merged_tiles_number) + OffsetT list = ~mask & partition_idx; + OffsetT start = items_per_tile * list; + OffsetT size = items_per_tile * merged_tiles_number; + + // Tile number within the tile group being merged, equal to: + // partition_idx / target_merged_tiles_number + OffsetT local_tile_idx = mask & partition_idx; + + OffsetT keys1_beg = (cub::min)(keys_count, start); + OffsetT keys1_end = (cub::min)(keys_count, start + size); + OffsetT keys2_beg = keys1_end; + OffsetT keys2_end = (cub::min)(keys_count, keys2_beg + size); + + OffsetT partition_at = (cub::min)(keys2_end - keys1_beg, + items_per_tile * local_tile_idx); + + OffsetT partition_diag = ping ? MergePath(keys_ping + keys1_beg, + keys_ping + keys2_beg, + keys1_end - keys1_beg, + keys2_end - keys2_beg, + partition_at, + compare_op) + : MergePath(keys_pong + keys1_beg, + keys_pong + keys2_beg, + keys1_end - keys1_beg, + keys2_end - keys2_beg, + partition_at, + compare_op); + + merge_partitions[partition_idx] = keys1_beg + partition_diag; + } +}; + +/// \brief The agent is responsible for merging N consecutive sorted arrays into N/2 sorted arrays. +template < + typename Policy, + typename KeyIteratorT, + typename ValueIteratorT, + typename OffsetT, + typename CompareOpT, + typename KeyT, + typename ValueT> +struct AgentMerge +{ + + //--------------------------------------------------------------------- + // Types and constants + //--------------------------------------------------------------------- + using KeysLoadPingIt = typename THRUST_NS_QUALIFIER::cuda_cub::core::LoadIterator::type; + using ItemsLoadPingIt = typename THRUST_NS_QUALIFIER::cuda_cub::core::LoadIterator::type; + using KeysLoadPongIt = typename THRUST_NS_QUALIFIER::cuda_cub::core::LoadIterator::type; + using ItemsLoadPongIt = typename THRUST_NS_QUALIFIER::cuda_cub::core::LoadIterator::type; + + using KeysOutputPongIt = KeyIteratorT; + using ItemsOutputPongIt = ValueIteratorT; + using KeysOutputPingIt = KeyT*; + using ItemsOutputPingIt = ValueT*; + + using BlockStoreKeysPong = typename BlockStoreType::type; + using BlockStoreItemsPong = typename BlockStoreType::type; + using BlockStoreKeysPing = typename BlockStoreType::type; + using BlockStoreItemsPing = typename BlockStoreType::type; + + /// Parameterized BlockReduce primitive + + union _TempStorage + { + typename BlockStoreKeysPing::TempStorage store_keys_ping; + typename BlockStoreItemsPing::TempStorage store_items_ping; + typename BlockStoreKeysPong::TempStorage store_keys_pong; + typename BlockStoreItemsPong::TempStorage store_items_pong; + + KeyT keys_shared[Policy::ITEMS_PER_TILE + 1]; + ValueT items_shared[Policy::ITEMS_PER_TILE + 1]; + }; + + /// Alias wrapper allowing storage to be unioned + struct TempStorage : Uninitialized<_TempStorage> {}; + + static constexpr bool KEYS_ONLY = std::is_same::value; + static constexpr int BLOCK_THREADS = Policy::BLOCK_THREADS; + static constexpr int ITEMS_PER_THREAD = Policy::ITEMS_PER_THREAD; + static constexpr int ITEMS_PER_TILE = Policy::ITEMS_PER_TILE; + static constexpr int SHARED_MEMORY_SIZE = + static_cast(sizeof(TempStorage)); + + //--------------------------------------------------------------------- + // Per thread data + //--------------------------------------------------------------------- + + bool ping; + _TempStorage& storage; + + KeysLoadPingIt keys_in_ping; + ItemsLoadPingIt items_in_ping; + KeysLoadPongIt keys_in_pong; + ItemsLoadPongIt items_in_pong; + + OffsetT keys_count; + + KeysOutputPongIt keys_out_pong; + ItemsOutputPongIt items_out_pong; + KeysOutputPingIt keys_out_ping; + ItemsOutputPingIt items_out_ping; + + CompareOpT compare_op; + OffsetT *merge_partitions; + OffsetT target_merged_tiles_number; + + //--------------------------------------------------------------------- + // Utility functions + //--------------------------------------------------------------------- + + /** + * \brief Concatenates up to ITEMS_PER_THREAD elements from input{1,2} into output array + * + * Reads data in a coalesced fashion [BLOCK_THREADS * item + tid] and + * stores the result in output[item]. + */ + template + __device__ __forceinline__ void + gmem_to_reg(T (&output)[ITEMS_PER_THREAD], + It1 input1, + It2 input2, + int count1, + int count2) + { + if (IS_FULL_TILE) + { +#pragma unroll + for (int item = 0; item < ITEMS_PER_THREAD; ++item) + { + int idx = BLOCK_THREADS * item + threadIdx.x; + output[item] = (idx < count1) ? input1[idx] : input2[idx - count1]; + } + } + else + { +#pragma unroll + for (int item = 0; item < ITEMS_PER_THREAD; ++item) + { + int idx = BLOCK_THREADS * item + threadIdx.x; + if (idx < count1 + count2) + { + output[item] = (idx < count1) ? input1[idx] : input2[idx - count1]; + } + } + } + } + + /// \brief Stores data in a coalesced fashion in[item] -> out[BLOCK_THREADS * item + tid] + template + __device__ __forceinline__ void + reg_to_shared(It output, + T (&input)[ITEMS_PER_THREAD]) + { +#pragma unroll + for (int item = 0; item < ITEMS_PER_THREAD; ++item) + { + int idx = BLOCK_THREADS * item + threadIdx.x; + output[idx] = input[item]; + } + } + + template + __device__ __forceinline__ void + consume_tile(int tid, OffsetT tile_idx, OffsetT tile_base, int count) + { + OffsetT partition_beg = merge_partitions[tile_idx + 0]; + OffsetT partition_end = merge_partitions[tile_idx + 1]; + + // target_merged_tiles_number is a power of two. + OffsetT merged_tiles_number = target_merged_tiles_number / 2; + + OffsetT mask = target_merged_tiles_number - 1; + + // The first tile number in the tiles group being merged, equal to: + // target_merged_tiles_number * (tile_idx / target_merged_tiles_number) + OffsetT list = ~mask & tile_idx; + OffsetT start = ITEMS_PER_TILE * list; + OffsetT size = ITEMS_PER_TILE * merged_tiles_number; + + OffsetT diag = ITEMS_PER_TILE * tile_idx - start; + + OffsetT keys1_beg = partition_beg; + OffsetT keys1_end = partition_end; + OffsetT keys2_beg = (cub::min)(keys_count, 2 * start + size + diag - partition_beg); + OffsetT keys2_end = (cub::min)(keys_count, 2 * start + size + diag + ITEMS_PER_TILE - partition_end); + + // Check if it's the last tile in the tile group being merged + if (mask == (mask & tile_idx)) + { + keys1_end = (cub::min)(keys_count, start + size); + keys2_end = (cub::min)(keys_count, start + size * 2); + } + + // number of keys per tile + // + int num_keys1 = static_cast(keys1_end - keys1_beg); + int num_keys2 = static_cast(keys2_end - keys2_beg); + + // load keys1 & keys2 + KeyT keys_local[ITEMS_PER_THREAD]; + if (ping) + { + gmem_to_reg(keys_local, + keys_in_ping + keys1_beg, + keys_in_ping + keys2_beg, + num_keys1, + num_keys2); + } + else + { + gmem_to_reg(keys_local, + keys_in_pong + keys1_beg, + keys_in_pong + keys2_beg, + num_keys1, + num_keys2); + } + reg_to_shared(&storage.keys_shared[0], keys_local); + + // preload items into registers already + // + ValueT items_local[ITEMS_PER_THREAD]; + if (!KEYS_ONLY) + { + if (ping) + { + gmem_to_reg(items_local, + items_in_ping + keys1_beg, + items_in_ping + keys2_beg, + num_keys1, + num_keys2); + } + else + { + gmem_to_reg(items_local, + items_in_pong + keys1_beg, + items_in_pong + keys2_beg, + num_keys1, + num_keys2); + } + } + + CTA_SYNC(); + + // use binary search in shared memory + // to find merge path for each of thread + // we can use int type here, because the number of + // items in shared memory is limited + // + int diag0_local = (cub::min)(num_keys1 + num_keys2, ITEMS_PER_THREAD * tid); + + int keys1_beg_local = MergePath(&storage.keys_shared[0], + &storage.keys_shared[num_keys1], + num_keys1, + num_keys2, + diag0_local, + compare_op); + int keys1_end_local = num_keys1; + int keys2_beg_local = diag0_local - keys1_beg_local; + int keys2_end_local = num_keys2; + + int num_keys1_local = keys1_end_local - keys1_beg_local; + int num_keys2_local = keys2_end_local - keys2_beg_local; + + // perform serial merge + // + int indices[ITEMS_PER_THREAD]; + + SerialMerge(&storage.keys_shared[0], + keys1_beg_local, + keys2_beg_local + num_keys1, + num_keys1_local, + num_keys2_local, + keys_local, + indices, + compare_op); + + CTA_SYNC(); + + // write keys + // + if (ping) + { + if (IS_FULL_TILE) + { + BlockStoreKeysPing(storage.store_keys_ping) + .Store(keys_out_ping + tile_base, keys_local); + } + else + { + BlockStoreKeysPing(storage.store_keys_ping) + .Store(keys_out_ping + tile_base, keys_local, num_keys1 + num_keys2); + } + } + else + { + if (IS_FULL_TILE) + { + BlockStoreKeysPong(storage.store_keys_pong) + .Store(keys_out_pong + tile_base, keys_local); + } + else + { + BlockStoreKeysPong(storage.store_keys_pong) + .Store(keys_out_pong + tile_base, keys_local, num_keys1 + num_keys2); + } + } + + // if items are provided, merge them + if (!KEYS_ONLY) + { + CTA_SYNC(); + + reg_to_shared(&storage.items_shared[0], items_local); + + CTA_SYNC(); + + // gather items from shared mem + // +#pragma unroll + for (int item = 0; item < ITEMS_PER_THREAD; ++item) + { + items_local[item] = storage.items_shared[indices[item]]; + } + + CTA_SYNC(); + + // write from reg to gmem + // + if (ping) + { + if (IS_FULL_TILE) + { + BlockStoreItemsPing(storage.store_items_ping) + .Store(items_out_ping + tile_base, items_local); + } + else + { + BlockStoreItemsPing(storage.store_items_ping) + .Store(items_out_ping + tile_base, items_local, count); + } + } + else + { + if (IS_FULL_TILE) + { + BlockStoreItemsPong(storage.store_items_pong) + .Store(items_out_pong + tile_base, items_local); + } + else + { + BlockStoreItemsPong(storage.store_items_pong) + .Store(items_out_pong + tile_base, items_local, count); + } + } + } + } + + __device__ __forceinline__ AgentMerge(bool ping_, + TempStorage &storage_, + KeysLoadPingIt keys_in_ping_, + ItemsLoadPingIt items_in_ping_, + KeysLoadPongIt keys_in_pong_, + ItemsLoadPongIt items_in_pong_, + OffsetT keys_count_, + KeysOutputPingIt keys_out_ping_, + ItemsOutputPingIt items_out_ping_, + KeysOutputPongIt keys_out_pong_, + ItemsOutputPongIt items_out_pong_, + CompareOpT compare_op_, + OffsetT *merge_partitions_, + OffsetT target_merged_tiles_number_) + : ping(ping_) + , storage(storage_.Alias()) + , keys_in_ping(keys_in_ping_) + , items_in_ping(items_in_ping_) + , keys_in_pong(keys_in_pong_) + , items_in_pong(items_in_pong_) + , keys_count(keys_count_) + , keys_out_pong(keys_out_pong_) + , items_out_pong(items_out_pong_) + , keys_out_ping(keys_out_ping_) + , items_out_ping(items_out_ping_) + , compare_op(compare_op_) + , merge_partitions(merge_partitions_) + , target_merged_tiles_number(target_merged_tiles_number_) + {} + + __device__ __forceinline__ void Process() + { + int tile_idx = static_cast(blockIdx.x); + int num_tiles = static_cast(gridDim.x); + OffsetT tile_base = OffsetT(tile_idx) * ITEMS_PER_TILE; + int tid = static_cast(threadIdx.x); + int items_in_tile = static_cast( + (cub::min)(static_cast(ITEMS_PER_TILE), keys_count - tile_base)); + + if (tile_idx < num_tiles - 1) + { + consume_tile(tid, tile_idx, tile_base, ITEMS_PER_TILE); + } + else + { + consume_tile(tid, tile_idx, tile_base, items_in_tile); + } + } +}; + + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_radix_sort_downsweep.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_radix_sort_downsweep.cuh new file mode 100644 index 0000000000000000000000000000000000000000..a6157a0974571d0f6ae8084209914122375e9c50 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_radix_sort_downsweep.cuh @@ -0,0 +1,775 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * AgentRadixSortDownsweep implements a stateful abstraction of CUDA thread + * blocks for participating in device-wide radix sort downsweep . + */ + + +#pragma once + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +CUB_NAMESPACE_BEGIN + + +/****************************************************************************** + * Tuning policy types + ******************************************************************************/ + +/** + * Parameterizable tuning policy type for AgentRadixSortDownsweep + */ +template < + int NOMINAL_BLOCK_THREADS_4B, ///< Threads per thread block + int NOMINAL_ITEMS_PER_THREAD_4B, ///< Items per thread (per tile of input) + typename ComputeT, ///< Dominant compute type + BlockLoadAlgorithm _LOAD_ALGORITHM, ///< The BlockLoad algorithm to use + CacheLoadModifier _LOAD_MODIFIER, ///< Cache load modifier for reading keys (and values) + RadixRankAlgorithm _RANK_ALGORITHM, ///< The radix ranking algorithm to use + BlockScanAlgorithm _SCAN_ALGORITHM, ///< The block scan algorithm to use + int _RADIX_BITS, ///< The number of radix bits, i.e., log2(bins) + typename ScalingType = RegBoundScaling > +struct AgentRadixSortDownsweepPolicy : + ScalingType +{ + enum + { + RADIX_BITS = _RADIX_BITS, ///< The number of radix bits, i.e., log2(bins) + }; + + static const BlockLoadAlgorithm LOAD_ALGORITHM = _LOAD_ALGORITHM; ///< The BlockLoad algorithm to use + static const CacheLoadModifier LOAD_MODIFIER = _LOAD_MODIFIER; ///< Cache load modifier for reading keys (and values) + static const RadixRankAlgorithm RANK_ALGORITHM = _RANK_ALGORITHM; ///< The radix ranking algorithm to use + static const BlockScanAlgorithm SCAN_ALGORITHM = _SCAN_ALGORITHM; ///< The BlockScan algorithm to use +}; + + +/****************************************************************************** + * Thread block abstractions + ******************************************************************************/ + + + + + +/** + * \brief AgentRadixSortDownsweep implements a stateful abstraction of CUDA thread blocks for participating in device-wide radix sort downsweep . + */ +template < + typename AgentRadixSortDownsweepPolicy, ///< Parameterized AgentRadixSortDownsweepPolicy tuning policy type + bool IS_DESCENDING, ///< Whether or not the sorted-order is high-to-low + typename KeyT, ///< KeyT type + typename ValueT, ///< ValueT type + typename OffsetT, ///< Signed integer type for global offsets + typename DecomposerT = detail::identity_decomposer_t> +struct AgentRadixSortDownsweep +{ + //--------------------------------------------------------------------- + // Type definitions and constants + //--------------------------------------------------------------------- + + using traits = detail::radix::traits_t; + using bit_ordered_type = typename traits::bit_ordered_type; + using bit_ordered_conversion = typename traits::bit_ordered_conversion_policy; + + static const BlockLoadAlgorithm LOAD_ALGORITHM = AgentRadixSortDownsweepPolicy::LOAD_ALGORITHM; + static const CacheLoadModifier LOAD_MODIFIER = AgentRadixSortDownsweepPolicy::LOAD_MODIFIER; + static const RadixRankAlgorithm RANK_ALGORITHM = AgentRadixSortDownsweepPolicy::RANK_ALGORITHM; + static const BlockScanAlgorithm SCAN_ALGORITHM = AgentRadixSortDownsweepPolicy::SCAN_ALGORITHM; + + enum + { + BLOCK_THREADS = AgentRadixSortDownsweepPolicy::BLOCK_THREADS, + ITEMS_PER_THREAD = AgentRadixSortDownsweepPolicy::ITEMS_PER_THREAD, + RADIX_BITS = AgentRadixSortDownsweepPolicy::RADIX_BITS, + TILE_ITEMS = BLOCK_THREADS * ITEMS_PER_THREAD, + + RADIX_DIGITS = 1 << RADIX_BITS, + KEYS_ONLY = std::is_same::value, + LOAD_WARP_STRIPED = RANK_ALGORITHM == RADIX_RANK_MATCH || + RANK_ALGORITHM == RADIX_RANK_MATCH_EARLY_COUNTS_ANY || + RANK_ALGORITHM == RADIX_RANK_MATCH_EARLY_COUNTS_ATOMIC_OR, + }; + + // Input iterator wrapper type (for applying cache modifier)s + using KeysItr = CacheModifiedInputIterator; + using ValuesItr = CacheModifiedInputIterator; + + // Radix ranking type to use + using BlockRadixRankT = + cub::detail::block_radix_rank_t< + RANK_ALGORITHM, BLOCK_THREADS, RADIX_BITS, IS_DESCENDING, SCAN_ALGORITHM>; + + // Digit extractor type + using fundamental_digit_extractor_t = BFEDigitExtractor; + using digit_extractor_t = + typename traits::template digit_extractor_t; + + enum + { + /// Number of bin-starting offsets tracked per thread + BINS_TRACKED_PER_THREAD = BlockRadixRankT::BINS_TRACKED_PER_THREAD + }; + + // BlockLoad type (keys) + using BlockLoadKeysT = + BlockLoad; + + // BlockLoad type (values) + using BlockLoadValuesT = + BlockLoad; + + // Value exchange array type + typedef ValueT ValueExchangeT[TILE_ITEMS]; + + /** + * Shared memory storage layout + */ + union __align__(16) _TempStorage + { + typename BlockLoadKeysT::TempStorage load_keys; + typename BlockLoadValuesT::TempStorage load_values; + typename BlockRadixRankT::TempStorage radix_rank; + + struct KeysAndOffsets + { + bit_ordered_type exchange_keys[TILE_ITEMS]; + OffsetT relative_bin_offsets[RADIX_DIGITS]; + } keys_and_offsets; + + Uninitialized exchange_values; + + OffsetT exclusive_digit_prefix[RADIX_DIGITS]; + }; + + + /// Alias wrapper allowing storage to be unioned + struct TempStorage : Uninitialized<_TempStorage> {}; + + + //--------------------------------------------------------------------- + // Thread fields + //--------------------------------------------------------------------- + + // Shared storage for this CTA + _TempStorage &temp_storage; + + // Input and output device pointers + KeysItr d_keys_in; + ValuesItr d_values_in; + bit_ordered_type *d_keys_out; + ValueT *d_values_out; + + // The global scatter base offset for each digit (valid in the first RADIX_DIGITS threads) + OffsetT bin_offset[BINS_TRACKED_PER_THREAD]; + + std::uint32_t current_bit; + std::uint32_t num_bits; + + // Whether to short-cirucit + int short_circuit; + + DecomposerT decomposer; + + //--------------------------------------------------------------------- + // Utility methods + //--------------------------------------------------------------------- + + __device__ __forceinline__ digit_extractor_t digit_extractor() + { + return traits::template digit_extractor(current_bit, + num_bits, + decomposer); + } + + /** + * Scatter ranked keys through shared memory, then to device-accessible memory + */ + template + __device__ __forceinline__ void ScatterKeys( + bit_ordered_type (&twiddled_keys)[ITEMS_PER_THREAD], + OffsetT (&relative_bin_offsets)[ITEMS_PER_THREAD], + int (&ranks)[ITEMS_PER_THREAD], + OffsetT valid_items) + { + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ++ITEM) + { + temp_storage.keys_and_offsets.exchange_keys[ranks[ITEM]] = twiddled_keys[ITEM]; + } + + CTA_SYNC(); + + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ++ITEM) + { + bit_ordered_type key = temp_storage.keys_and_offsets.exchange_keys[threadIdx.x + (ITEM * BLOCK_THREADS)]; + std::uint32_t digit = digit_extractor().Digit(key); + relative_bin_offsets[ITEM] = temp_storage.keys_and_offsets.relative_bin_offsets[digit]; + + key = bit_ordered_conversion::from_bit_ordered(decomposer, key); + + if (FULL_TILE || + (static_cast(threadIdx.x + (ITEM * BLOCK_THREADS)) < valid_items)) + { + d_keys_out[relative_bin_offsets[ITEM] + threadIdx.x + (ITEM * BLOCK_THREADS)] = key; + } + } + } + + + /** + * Scatter ranked values through shared memory, then to device-accessible memory + */ + template + __device__ __forceinline__ void ScatterValues( + ValueT (&values)[ITEMS_PER_THREAD], + OffsetT (&relative_bin_offsets)[ITEMS_PER_THREAD], + int (&ranks)[ITEMS_PER_THREAD], + OffsetT valid_items) + { + CTA_SYNC(); + + ValueExchangeT &exchange_values = temp_storage.exchange_values.Alias(); + + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ++ITEM) + { + exchange_values[ranks[ITEM]] = values[ITEM]; + } + + CTA_SYNC(); + + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ++ITEM) + { + ValueT value = exchange_values[threadIdx.x + (ITEM * BLOCK_THREADS)]; + + if (FULL_TILE || + (static_cast(threadIdx.x + (ITEM * BLOCK_THREADS)) < valid_items)) + { + d_values_out[relative_bin_offsets[ITEM] + threadIdx.x + (ITEM * BLOCK_THREADS)] = value; + } + } + } + + /** + * Load a tile of keys (specialized for full tile, block load) + */ + __device__ __forceinline__ void LoadKeys( + bit_ordered_type (&keys)[ITEMS_PER_THREAD], + OffsetT block_offset, + OffsetT valid_items, + bit_ordered_type oob_item, + Int2Type is_full_tile, + Int2Type warp_striped) + { + BlockLoadKeysT(temp_storage.load_keys).Load( + d_keys_in + block_offset, keys); + + CTA_SYNC(); + } + + + /** + * Load a tile of keys (specialized for partial tile, block load) + */ + __device__ __forceinline__ void LoadKeys( + bit_ordered_type (&keys)[ITEMS_PER_THREAD], + OffsetT block_offset, + OffsetT valid_items, + bit_ordered_type oob_item, + Int2Type is_full_tile, + Int2Type warp_striped) + { + // Register pressure work-around: moving valid_items through shfl prevents compiler + // from reusing guards/addressing from prior guarded loads + valid_items = ShuffleIndex(valid_items, 0, 0xffffffff); + + BlockLoadKeysT(temp_storage.load_keys).Load( + d_keys_in + block_offset, keys, valid_items, oob_item); + + CTA_SYNC(); + } + + + /** + * Load a tile of keys (specialized for full tile, warp-striped load) + */ + __device__ __forceinline__ void LoadKeys( + bit_ordered_type (&keys)[ITEMS_PER_THREAD], + OffsetT block_offset, + OffsetT valid_items, + bit_ordered_type oob_item, + Int2Type is_full_tile, + Int2Type warp_striped) + { + LoadDirectWarpStriped(threadIdx.x, d_keys_in + block_offset, keys); + } + + /** + * Load a tile of keys (specialized for partial tile, warp-striped load) + */ + __device__ __forceinline__ void LoadKeys( + bit_ordered_type (&keys)[ITEMS_PER_THREAD], + OffsetT block_offset, + OffsetT valid_items, + bit_ordered_type oob_item, + Int2Type is_full_tile, + Int2Type warp_striped) + { + // Register pressure work-around: moving valid_items through shfl prevents compiler + // from reusing guards/addressing from prior guarded loads + valid_items = ShuffleIndex(valid_items, 0, 0xffffffff); + + LoadDirectWarpStriped(threadIdx.x, d_keys_in + block_offset, keys, valid_items, oob_item); + } + + /** + * Load a tile of values (specialized for full tile, block load) + */ + __device__ __forceinline__ void LoadValues( + ValueT (&values)[ITEMS_PER_THREAD], + OffsetT block_offset, + OffsetT valid_items, + Int2Type is_full_tile, + Int2Type warp_striped) + { + BlockLoadValuesT(temp_storage.load_values).Load( + d_values_in + block_offset, values); + + CTA_SYNC(); + } + + + /** + * Load a tile of values (specialized for partial tile, block load) + */ + __device__ __forceinline__ void LoadValues( + ValueT (&values)[ITEMS_PER_THREAD], + OffsetT block_offset, + OffsetT valid_items, + Int2Type is_full_tile, + Int2Type warp_striped) + { + // Register pressure work-around: moving valid_items through shfl prevents compiler + // from reusing guards/addressing from prior guarded loads + valid_items = ShuffleIndex(valid_items, 0, 0xffffffff); + + BlockLoadValuesT(temp_storage.load_values).Load( + d_values_in + block_offset, values, valid_items); + + CTA_SYNC(); + } + + + /** + * Load a tile of items (specialized for full tile, warp-striped load) + */ + __device__ __forceinline__ void LoadValues( + ValueT (&values)[ITEMS_PER_THREAD], + OffsetT block_offset, + OffsetT valid_items, + Int2Type is_full_tile, + Int2Type warp_striped) + { + LoadDirectWarpStriped(threadIdx.x, d_values_in + block_offset, values); + } + + /** + * Load a tile of items (specialized for partial tile, warp-striped load) + */ + __device__ __forceinline__ void LoadValues( + ValueT (&values)[ITEMS_PER_THREAD], + OffsetT block_offset, + OffsetT valid_items, + Int2Type is_full_tile, + Int2Type warp_striped) + { + // Register pressure work-around: moving valid_items through shfl prevents compiler + // from reusing guards/addressing from prior guarded loads + valid_items = ShuffleIndex(valid_items, 0, 0xffffffff); + + LoadDirectWarpStriped(threadIdx.x, d_values_in + block_offset, values, valid_items); + } + + /** + * Truck along associated values + */ + template + __device__ __forceinline__ void GatherScatterValues( + OffsetT (&relative_bin_offsets)[ITEMS_PER_THREAD], + int (&ranks)[ITEMS_PER_THREAD], + OffsetT block_offset, + OffsetT valid_items, + Int2Type /*is_keys_only*/) + { + ValueT values[ITEMS_PER_THREAD]; + + CTA_SYNC(); + + LoadValues( + values, + block_offset, + valid_items, + Int2Type(), + Int2Type()); + + ScatterValues( + values, + relative_bin_offsets, + ranks, + valid_items); + } + + + /** + * Truck along associated values (specialized for key-only sorting) + */ + template + __device__ __forceinline__ void GatherScatterValues( + OffsetT (&/*relative_bin_offsets*/)[ITEMS_PER_THREAD], + int (&/*ranks*/)[ITEMS_PER_THREAD], + OffsetT /*block_offset*/, + OffsetT /*valid_items*/, + Int2Type /*is_keys_only*/) + {} + + + /** + * Process tile + */ + template + __device__ __forceinline__ void ProcessTile( + OffsetT block_offset, + const OffsetT &valid_items = TILE_ITEMS) + { + bit_ordered_type keys[ITEMS_PER_THREAD]; + int ranks[ITEMS_PER_THREAD]; + OffsetT relative_bin_offsets[ITEMS_PER_THREAD]; + + // Assign default (min/max) value to all keys + bit_ordered_type default_key = IS_DESCENDING + ? traits::min_raw_binary_key(decomposer) + : traits::max_raw_binary_key(decomposer); + + // Load tile of keys + LoadKeys( + keys, + block_offset, + valid_items, + default_key, + Int2Type(), + Int2Type()); + + #pragma unroll + for (int KEY = 0; KEY < ITEMS_PER_THREAD; KEY++) + { + keys[KEY] = bit_ordered_conversion::to_bit_ordered(decomposer, keys[KEY]); + } + + // Rank the twiddled keys + int exclusive_digit_prefix[BINS_TRACKED_PER_THREAD]; + BlockRadixRankT(temp_storage.radix_rank).RankKeys( + keys, + ranks, + digit_extractor(), + exclusive_digit_prefix); + + CTA_SYNC(); + + // Share exclusive digit prefix + #pragma unroll + for (int track = 0; track < BINS_TRACKED_PER_THREAD; ++track) + { + int bin_idx = (threadIdx.x * BINS_TRACKED_PER_THREAD) + track; + if ((BLOCK_THREADS == RADIX_DIGITS) || (bin_idx < RADIX_DIGITS)) + { + // Store exclusive prefix + temp_storage.exclusive_digit_prefix[bin_idx] = + exclusive_digit_prefix[track]; + } + } + + CTA_SYNC(); + + // Get inclusive digit prefix + int inclusive_digit_prefix[BINS_TRACKED_PER_THREAD]; + + #pragma unroll + for (int track = 0; track < BINS_TRACKED_PER_THREAD; ++track) + { + int bin_idx = (threadIdx.x * BINS_TRACKED_PER_THREAD) + track; + if ((BLOCK_THREADS == RADIX_DIGITS) || (bin_idx < RADIX_DIGITS)) + { + if (IS_DESCENDING) + { + // Get inclusive digit prefix from exclusive prefix (higher bins come first) + inclusive_digit_prefix[track] = (bin_idx == 0) ? + (BLOCK_THREADS * ITEMS_PER_THREAD) : + temp_storage.exclusive_digit_prefix[bin_idx - 1]; + } + else + { + // Get inclusive digit prefix from exclusive prefix (lower bins come first) + inclusive_digit_prefix[track] = (bin_idx == RADIX_DIGITS - 1) ? + (BLOCK_THREADS * ITEMS_PER_THREAD) : + temp_storage.exclusive_digit_prefix[bin_idx + 1]; + } + } + } + + CTA_SYNC(); + + // Update global scatter base offsets for each digit + #pragma unroll + for (int track = 0; track < BINS_TRACKED_PER_THREAD; ++track) + { + int bin_idx = (threadIdx.x * BINS_TRACKED_PER_THREAD) + track; + if ((BLOCK_THREADS == RADIX_DIGITS) || (bin_idx < RADIX_DIGITS)) + { + bin_offset[track] -= exclusive_digit_prefix[track]; + temp_storage.keys_and_offsets.relative_bin_offsets[bin_idx] = bin_offset[track]; + bin_offset[track] += inclusive_digit_prefix[track]; + } + } + + CTA_SYNC(); + + // Scatter keys + ScatterKeys(keys, relative_bin_offsets, ranks, valid_items); + + // Gather/scatter values + GatherScatterValues(relative_bin_offsets , ranks, block_offset, valid_items, Int2Type()); + } + + //--------------------------------------------------------------------- + // Copy shortcut + //--------------------------------------------------------------------- + + /** + * Copy tiles within the range of input + */ + template < + typename InputIteratorT, + typename T> + __device__ __forceinline__ void Copy( + InputIteratorT d_in, + T *d_out, + OffsetT block_offset, + OffsetT block_end) + { + // Simply copy the input + while (block_end - block_offset >= TILE_ITEMS) + { + T items[ITEMS_PER_THREAD]; + + LoadDirectStriped(threadIdx.x, d_in + block_offset, items); + CTA_SYNC(); + StoreDirectStriped(threadIdx.x, d_out + block_offset, items); + + block_offset += TILE_ITEMS; + } + + // Clean up last partial tile with guarded-I/O + if (block_offset < block_end) + { + OffsetT valid_items = block_end - block_offset; + + T items[ITEMS_PER_THREAD]; + + LoadDirectStriped(threadIdx.x, d_in + block_offset, items, valid_items); + CTA_SYNC(); + StoreDirectStriped(threadIdx.x, d_out + block_offset, items, valid_items); + } + } + + + /** + * Copy tiles within the range of input (specialized for NullType) + */ + template + __device__ __forceinline__ void Copy( + InputIteratorT /*d_in*/, + NullType * /*d_out*/, + OffsetT /*block_offset*/, + OffsetT /*block_end*/) + {} + + + //--------------------------------------------------------------------- + // Interface + //--------------------------------------------------------------------- + + /** + * Constructor + */ + __device__ __forceinline__ AgentRadixSortDownsweep( + TempStorage &temp_storage, + OffsetT (&bin_offset)[BINS_TRACKED_PER_THREAD], + OffsetT num_items, + const KeyT *d_keys_in, + KeyT *d_keys_out, + const ValueT *d_values_in, + ValueT *d_values_out, + int current_bit, + int num_bits, + DecomposerT decomposer = {}) + : + temp_storage(temp_storage.Alias()), + d_keys_in(reinterpret_cast(d_keys_in)), + d_values_in(d_values_in), + d_keys_out(reinterpret_cast(d_keys_out)), + d_values_out(d_values_out), + current_bit(current_bit), + num_bits(num_bits), + short_circuit(1), + decomposer(decomposer) + { + #pragma unroll + for (int track = 0; track < BINS_TRACKED_PER_THREAD; ++track) + { + this->bin_offset[track] = bin_offset[track]; + + int bin_idx = (threadIdx.x * BINS_TRACKED_PER_THREAD) + track; + if ((BLOCK_THREADS == RADIX_DIGITS) || (bin_idx < RADIX_DIGITS)) + { + // Short circuit if the histogram has only bin counts of only zeros or problem-size + short_circuit = short_circuit && ((bin_offset[track] == 0) || (bin_offset[track] == num_items)); + } + } + + short_circuit = CTA_SYNC_AND(short_circuit); + } + + + /** + * Constructor + */ + __device__ __forceinline__ AgentRadixSortDownsweep( + TempStorage &temp_storage, + OffsetT num_items, + OffsetT *d_spine, + const KeyT *d_keys_in, + KeyT *d_keys_out, + const ValueT *d_values_in, + ValueT *d_values_out, + int current_bit, + int num_bits, + DecomposerT decomposer = {}) + : + temp_storage(temp_storage.Alias()), + d_keys_in(reinterpret_cast(d_keys_in)), + d_values_in(d_values_in), + d_keys_out(reinterpret_cast(d_keys_out)), + d_values_out(d_values_out), + current_bit(current_bit), + num_bits(num_bits), + short_circuit(1), + decomposer(decomposer) + { + #pragma unroll + for (int track = 0; track < BINS_TRACKED_PER_THREAD; ++track) + { + int bin_idx = (threadIdx.x * BINS_TRACKED_PER_THREAD) + track; + + // Load digit bin offsets (each of the first RADIX_DIGITS threads will load an offset for that digit) + if ((BLOCK_THREADS == RADIX_DIGITS) || (bin_idx < RADIX_DIGITS)) + { + if (IS_DESCENDING) + bin_idx = RADIX_DIGITS - bin_idx - 1; + + // Short circuit if the first block's histogram has only bin counts of only zeros or problem-size + OffsetT first_block_bin_offset = d_spine[gridDim.x * bin_idx]; + short_circuit = short_circuit && ((first_block_bin_offset == 0) || (first_block_bin_offset == num_items)); + + // Load my block's bin offset for my bin + bin_offset[track] = d_spine[(gridDim.x * bin_idx) + blockIdx.x]; + } + } + + short_circuit = CTA_SYNC_AND(short_circuit); + } + + + /** + * Distribute keys from a segment of input tiles. + */ + __device__ __forceinline__ void ProcessRegion( + OffsetT block_offset, + OffsetT block_end) + { + if (short_circuit) + { + // Copy keys + Copy(d_keys_in, d_keys_out, block_offset, block_end); + + // Copy values + Copy(d_values_in, d_values_out, block_offset, block_end); + } + else + { + // Process full tiles of tile_items + #pragma unroll 1 + while (block_end - block_offset >= TILE_ITEMS) + { + ProcessTile(block_offset); + block_offset += TILE_ITEMS; + + CTA_SYNC(); + } + + // Clean up last partial tile with guarded-I/O + if (block_offset < block_end) + { + ProcessTile(block_offset, block_end - block_offset); + } + + } + } + +}; + + + +CUB_NAMESPACE_END + diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_radix_sort_histogram.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_radix_sort_histogram.cuh new file mode 100644 index 0000000000000000000000000000000000000000..43649fc481b7a16a42388ac15488a49d823e5e03 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_radix_sort_histogram.cuh @@ -0,0 +1,282 @@ +/****************************************************************************** + * Copyright (c) 2011-2020, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * agent_radix_sort_histogram.cuh implements a stateful abstraction of CUDA + * thread blocks for participating in the device histogram kernel used for + * one-sweep radix sorting. + */ + +#pragma once + +#include "../block/block_load.cuh" +#include "../block/radix_rank_sort_operations.cuh" +#include "../config.cuh" +#include "../thread/thread_reduce.cuh" +#include "../util_math.cuh" +#include "../util_type.cuh" + + +CUB_NAMESPACE_BEGIN + +template < + int _BLOCK_THREADS, + int _ITEMS_PER_THREAD, + int NOMINAL_4B_NUM_PARTS, + typename ComputeT, + int _RADIX_BITS> +struct AgentRadixSortHistogramPolicy +{ + enum + { + BLOCK_THREADS = _BLOCK_THREADS, + ITEMS_PER_THREAD = _ITEMS_PER_THREAD, + /** NUM_PARTS is the number of private histograms (parts) each histogram is split + * into. Each warp lane is assigned to a specific part based on the lane + * ID. However, lanes with the same ID in different warp use the same private + * histogram. This arrangement helps reduce the degree of conflicts in atomic + * operations. */ + NUM_PARTS = CUB_MAX(1, NOMINAL_4B_NUM_PARTS * 4 / CUB_MAX(sizeof(ComputeT), 4)), + RADIX_BITS = _RADIX_BITS, + }; +}; + +template < + int _BLOCK_THREADS, + int _RADIX_BITS> +struct AgentRadixSortExclusiveSumPolicy +{ + enum + { + BLOCK_THREADS = _BLOCK_THREADS, + RADIX_BITS = _RADIX_BITS, + }; +}; + +template < + typename AgentRadixSortHistogramPolicy, + bool IS_DESCENDING, + typename KeyT, + typename OffsetT, + typename DecomposerT = detail::identity_decomposer_t> +struct AgentRadixSortHistogram +{ + // constants + enum + { + ITEMS_PER_THREAD = AgentRadixSortHistogramPolicy::ITEMS_PER_THREAD, + BLOCK_THREADS = AgentRadixSortHistogramPolicy::BLOCK_THREADS, + TILE_ITEMS = BLOCK_THREADS * ITEMS_PER_THREAD, + RADIX_BITS = AgentRadixSortHistogramPolicy::RADIX_BITS, + RADIX_DIGITS = 1 << RADIX_BITS, + MAX_NUM_PASSES = (sizeof(KeyT) * 8 + RADIX_BITS - 1) / RADIX_BITS, + NUM_PARTS = AgentRadixSortHistogramPolicy::NUM_PARTS, + }; + + using traits = detail::radix::traits_t; + using bit_ordered_type = typename traits::bit_ordered_type; + using bit_ordered_conversion = typename traits::bit_ordered_conversion_policy; + + typedef RadixSortTwiddle Twiddle; + typedef std::uint32_t ShmemCounterT; + typedef ShmemCounterT ShmemAtomicCounterT; + + using fundamental_digit_extractor_t = ShiftDigitExtractor; + using digit_extractor_t = + typename traits::template digit_extractor_t; + + struct _TempStorage + { + ShmemAtomicCounterT bins[MAX_NUM_PASSES][RADIX_DIGITS][NUM_PARTS]; + }; + + struct TempStorage : Uninitialized<_TempStorage> {}; + + // thread fields + // shared memory storage + _TempStorage& s; + + // bins for the histogram + OffsetT* d_bins_out; + + // data to compute the histogram + const bit_ordered_type* d_keys_in; + + // number of data items + OffsetT num_items; + + // begin and end bits for sorting + int begin_bit, end_bit; + + // number of sorting passes + int num_passes; + + DecomposerT decomposer; + + __device__ __forceinline__ AgentRadixSortHistogram(TempStorage &temp_storage, + OffsetT *d_bins_out, + const KeyT *d_keys_in, + OffsetT num_items, + int begin_bit, + int end_bit, + DecomposerT decomposer = {}) + : s(temp_storage.Alias()) + , d_bins_out(d_bins_out) + , d_keys_in(reinterpret_cast(d_keys_in)) + , num_items(num_items) + , begin_bit(begin_bit) + , end_bit(end_bit) + , num_passes((end_bit - begin_bit + RADIX_BITS - 1) / RADIX_BITS) + , decomposer(decomposer) + {} + + __device__ __forceinline__ void Init() + { + // Initialize bins to 0. + #pragma unroll + for (int bin = threadIdx.x; bin < RADIX_DIGITS; bin += BLOCK_THREADS) + { + #pragma unroll + for (int pass = 0; pass < num_passes; ++pass) + { + #pragma unroll + for (int part = 0; part < NUM_PARTS; ++part) + { + s.bins[pass][bin][part] = 0; + } + } + } + CTA_SYNC(); + } + + __device__ __forceinline__ + void LoadTileKeys(OffsetT tile_offset, bit_ordered_type (&keys)[ITEMS_PER_THREAD]) + { + // tile_offset < num_items always, hence the line below works + bool full_tile = num_items - tile_offset >= TILE_ITEMS; + if (full_tile) + { + LoadDirectStriped( + threadIdx.x, d_keys_in + tile_offset, keys); + } + else + { + LoadDirectStriped( + threadIdx.x, d_keys_in + tile_offset, keys, + num_items - tile_offset, Twiddle::DefaultKey(decomposer)); + } + + #pragma unroll + for (int u = 0; u < ITEMS_PER_THREAD; ++u) + { + keys[u] = Twiddle::In(keys[u], decomposer); + } + } + + __device__ __forceinline__ + void AccumulateSharedHistograms(OffsetT tile_offset, bit_ordered_type (&keys)[ITEMS_PER_THREAD]) + { + int part = LaneId() % NUM_PARTS; + #pragma unroll + for (int current_bit = begin_bit, pass = 0; + current_bit < end_bit; current_bit += RADIX_BITS, ++pass) + { + int num_bits = CUB_MIN(RADIX_BITS, end_bit - current_bit); + #pragma unroll + for (int u = 0; u < ITEMS_PER_THREAD; ++u) + { + std::uint32_t bin = digit_extractor(current_bit, num_bits).Digit(keys[u]); + // Using cuda::atomic<> results in lower performance on GP100, + // so atomicAdd() is used instead. + atomicAdd(&s.bins[pass][bin][part], 1); + } + } + } + + __device__ __forceinline__ void AccumulateGlobalHistograms() + { + #pragma unroll + for (int bin = threadIdx.x; bin < RADIX_DIGITS; bin += BLOCK_THREADS) + { + #pragma unroll + for (int pass = 0; pass < num_passes; ++pass) + { + OffsetT count = internal::ThreadReduce(s.bins[pass][bin], Sum()); + if (count > 0) + { + // Using cuda::atomic<> here would also require using it in + // other kernels. However, other kernels of onesweep sorting + // (ExclusiveSum, Onesweep) don't need atomic + // access. Therefore, atomicAdd() is used, until + // cuda::atomic_ref<> becomes available. + atomicAdd(&d_bins_out[pass * RADIX_DIGITS + bin], count); + } + } + } + } + + __device__ __forceinline__ void Process() + { + // Within a portion, avoid overflowing (u)int32 counters. + // Between portions, accumulate results in global memory. + const OffsetT MAX_PORTION_SIZE = 1 << 30; + OffsetT num_portions = cub::DivideAndRoundUp(num_items, MAX_PORTION_SIZE); + for (OffsetT portion = 0; portion < num_portions; ++portion) + { + // Reset the counters. + Init(); + CTA_SYNC(); + + // Process the tiles. + OffsetT portion_offset = portion * MAX_PORTION_SIZE; + OffsetT portion_size = CUB_MIN(MAX_PORTION_SIZE, num_items - portion_offset); + for (OffsetT offset = blockIdx.x * TILE_ITEMS; offset < portion_size; + offset += TILE_ITEMS * gridDim.x) + { + OffsetT tile_offset = portion_offset + offset; + bit_ordered_type keys[ITEMS_PER_THREAD]; + LoadTileKeys(tile_offset, keys); + AccumulateSharedHistograms(tile_offset, keys); + } + CTA_SYNC(); + + // Accumulate the result in global memory. + AccumulateGlobalHistograms(); + CTA_SYNC(); + } + } + + __device__ __forceinline__ digit_extractor_t digit_extractor(int current_bit, int num_bits) + { + return traits::template digit_extractor(current_bit, + num_bits, + decomposer); + } +}; + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_radix_sort_onesweep.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_radix_sort_onesweep.cuh new file mode 100644 index 0000000000000000000000000000000000000000..1922936d66ee8237d5b2f33bd14ac1e4f62cf0fa --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_radix_sort_onesweep.cuh @@ -0,0 +1,690 @@ +/****************************************************************************** + * Copyright (c) 2011-2020, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * agent_radix_sort_onesweep.cuh implements a stateful abstraction of CUDA + * thread blocks for participating in the device one-sweep radix sort kernel. + */ + +#pragma once + +#include "../block/block_radix_rank.cuh" +#include "../block/radix_rank_sort_operations.cuh" +#include "../block/block_store.cuh" +#include "../config.cuh" +#include "../util_ptx.cuh" +#include "../util_type.cuh" + +CUB_NAMESPACE_BEGIN + +/** \brief cub::RadixSortStoreAlgorithm enumerates different algorithms to write + * partitioned elements (keys, values) stored in shared memory into global + * memory. Currently applies only to writing 4B keys in full tiles; in all other cases, + * RADIX_SORT_STORE_DIRECT is used. + */ +enum RadixSortStoreAlgorithm +{ + /** \brief Elements are statically distributed among block threads, which write them + * into the appropriate partition in global memory. This results in fewer instructions + * and more writes in flight at a given moment, but may generate more transactions. */ + RADIX_SORT_STORE_DIRECT, + /** \brief Elements are distributed among warps in a block distribution. Each warp + * goes through its elements and tries to write them while minimizing the number of + * memory transactions. This results in fewer memory transactions, but more + * instructions and less writes in flight at a given moment. */ + RADIX_SORT_STORE_ALIGNED +}; + +template < + int NOMINAL_BLOCK_THREADS_4B, + int NOMINAL_ITEMS_PER_THREAD_4B, + typename ComputeT, + /** \brief Number of private histograms to use in the ranker; + ignored if the ranking algorithm is not one of RADIX_RANK_MATCH_EARLY_COUNTS_* */ + int _RANK_NUM_PARTS, + /** \brief Ranking algorithm used in the onesweep kernel. Only algorithms that + support warp-strided key arrangement and count callbacks are supported. */ + RadixRankAlgorithm _RANK_ALGORITHM, + BlockScanAlgorithm _SCAN_ALGORITHM, + RadixSortStoreAlgorithm _STORE_ALGORITHM, + int _RADIX_BITS, + typename ScalingType = RegBoundScaling< + NOMINAL_BLOCK_THREADS_4B, NOMINAL_ITEMS_PER_THREAD_4B, ComputeT> > +struct AgentRadixSortOnesweepPolicy : ScalingType +{ + enum + { + RANK_NUM_PARTS = _RANK_NUM_PARTS, + RADIX_BITS = _RADIX_BITS, + }; + static const RadixRankAlgorithm RANK_ALGORITHM = _RANK_ALGORITHM; + static const BlockScanAlgorithm SCAN_ALGORITHM = _SCAN_ALGORITHM; + static const RadixSortStoreAlgorithm STORE_ALGORITHM = _STORE_ALGORITHM; +}; + +template < + typename AgentRadixSortOnesweepPolicy, + bool IS_DESCENDING, + typename KeyT, + typename ValueT, + typename OffsetT, + typename PortionOffsetT, + typename DecomposerT = detail::identity_decomposer_t> +struct AgentRadixSortOnesweep +{ + // constants + enum + { + ITEMS_PER_THREAD = AgentRadixSortOnesweepPolicy::ITEMS_PER_THREAD, + KEYS_ONLY = std::is_same::value, + BLOCK_THREADS = AgentRadixSortOnesweepPolicy::BLOCK_THREADS, + RANK_NUM_PARTS = AgentRadixSortOnesweepPolicy::RANK_NUM_PARTS, + TILE_ITEMS = BLOCK_THREADS * ITEMS_PER_THREAD, + RADIX_BITS = AgentRadixSortOnesweepPolicy::RADIX_BITS, + RADIX_DIGITS = 1 << RADIX_BITS, + BINS_PER_THREAD = (RADIX_DIGITS + BLOCK_THREADS - 1) / BLOCK_THREADS, + FULL_BINS = BINS_PER_THREAD * BLOCK_THREADS == RADIX_DIGITS, + WARP_THREADS = CUB_PTX_WARP_THREADS, + BLOCK_WARPS = BLOCK_THREADS / WARP_THREADS, + WARP_MASK = ~0, + LOOKBACK_PARTIAL_MASK = 1 << (PortionOffsetT(sizeof(PortionOffsetT)) * 8 - 2), + LOOKBACK_GLOBAL_MASK = 1 << (PortionOffsetT(sizeof(PortionOffsetT)) * 8 - 1), + LOOKBACK_KIND_MASK = LOOKBACK_PARTIAL_MASK | LOOKBACK_GLOBAL_MASK, + LOOKBACK_VALUE_MASK = ~LOOKBACK_KIND_MASK, + }; + + using traits = detail::radix::traits_t; + using bit_ordered_type = typename traits::bit_ordered_type; + using bit_ordered_conversion = typename traits::bit_ordered_conversion_policy; + + using fundamental_digit_extractor_t = ShiftDigitExtractor; + using digit_extractor_t = + typename traits::template digit_extractor_t; + + typedef PortionOffsetT AtomicOffsetT; + + static const RadixRankAlgorithm RANK_ALGORITHM = + AgentRadixSortOnesweepPolicy::RANK_ALGORITHM; + static const BlockScanAlgorithm SCAN_ALGORITHM = + AgentRadixSortOnesweepPolicy::SCAN_ALGORITHM; + static const RadixSortStoreAlgorithm STORE_ALGORITHM = + sizeof(bit_ordered_type) == sizeof(uint32_t) ? + AgentRadixSortOnesweepPolicy::STORE_ALGORITHM : + RADIX_SORT_STORE_DIRECT; + + typedef RadixSortTwiddle Twiddle; + + static_assert(RANK_ALGORITHM == RADIX_RANK_MATCH + || RANK_ALGORITHM == RADIX_RANK_MATCH_EARLY_COUNTS_ANY + || RANK_ALGORITHM == RADIX_RANK_MATCH_EARLY_COUNTS_ATOMIC_OR, + "for onesweep agent, the ranking algorithm must warp-strided key arrangement"); + + using BlockRadixRankT = cub::detail::conditional_t< + RANK_ALGORITHM == RADIX_RANK_MATCH_EARLY_COUNTS_ATOMIC_OR, + BlockRadixRankMatchEarlyCounts, + cub::detail::conditional_t< + RANK_ALGORITHM == RADIX_RANK_MATCH, + BlockRadixRankMatch, + BlockRadixRankMatchEarlyCounts>>; + + // temporary storage + struct TempStorage_ + { + union + { + bit_ordered_type keys_out[TILE_ITEMS]; + ValueT values_out[TILE_ITEMS]; + typename BlockRadixRankT::TempStorage rank_temp_storage; + }; + union + { + OffsetT global_offsets[RADIX_DIGITS]; + PortionOffsetT block_idx; + }; + }; + + using TempStorage = Uninitialized; + + // thread variables + TempStorage_& s; + + // kernel parameters + AtomicOffsetT* d_lookback; + AtomicOffsetT* d_ctrs; + OffsetT* d_bins_out; + const OffsetT* d_bins_in; + bit_ordered_type* d_keys_out; + const bit_ordered_type* d_keys_in; + ValueT* d_values_out; + const ValueT* d_values_in; + PortionOffsetT num_items; + int current_bit; + int num_bits; + + // other thread variables + int warp; + int lane; + DecomposerT decomposer; + PortionOffsetT block_idx; + bool full_block; + + __device__ __forceinline__ digit_extractor_t digit_extractor() + { + return traits::template digit_extractor(current_bit, + num_bits, + decomposer); + } + + // helper methods + __device__ __forceinline__ std::uint32_t Digit(bit_ordered_type key) + { + return digit_extractor().Digit(key); + } + + __device__ __forceinline__ int ThreadBin(int u) + { + return threadIdx.x * BINS_PER_THREAD + u; + } + + __device__ __forceinline__ void LookbackPartial(int (&bins)[BINS_PER_THREAD]) + { + #pragma unroll + for (int u = 0; u < BINS_PER_THREAD; ++u) + { + int bin = ThreadBin(u); + if (FULL_BINS || bin < RADIX_DIGITS) + { + // write the local sum into the bin + AtomicOffsetT& loc = d_lookback[block_idx * RADIX_DIGITS + bin]; + PortionOffsetT value = bins[u] | LOOKBACK_PARTIAL_MASK; + ThreadStore(&loc, value); + } + } + } + + struct CountsCallback + { + typedef AgentRadixSortOnesweep AgentT; + AgentT& agent; + int (&bins)[BINS_PER_THREAD]; + bit_ordered_type (&keys)[ITEMS_PER_THREAD]; + static const bool EMPTY = false; + __device__ __forceinline__ CountsCallback( + AgentT& agent, int (&bins)[BINS_PER_THREAD], bit_ordered_type (&keys)[ITEMS_PER_THREAD]) + : agent(agent), bins(bins), keys(keys) {} + __device__ __forceinline__ void operator()(int (&other_bins)[BINS_PER_THREAD]) + { + #pragma unroll + for (int u = 0; u < BINS_PER_THREAD; ++u) + { + bins[u] = other_bins[u]; + } + agent.LookbackPartial(bins); + + agent.TryShortCircuit(keys, bins); + } + }; + + __device__ __forceinline__ void LookbackGlobal(int (&bins)[BINS_PER_THREAD]) + { + #pragma unroll + for (int u = 0; u < BINS_PER_THREAD; ++u) + { + int bin = ThreadBin(u); + if (FULL_BINS || bin < RADIX_DIGITS) + { + PortionOffsetT inc_sum = bins[u]; + int want_mask = ~0; + // backtrack as long as necessary + for (PortionOffsetT block_jdx = block_idx - 1; block_jdx >= 0; --block_jdx) + { + // wait for some value to appear + PortionOffsetT value_j = 0; + AtomicOffsetT& loc_j = d_lookback[block_jdx * RADIX_DIGITS + bin]; + do { + __threadfence_block(); // prevent hoisting loads from loop + value_j = ThreadLoad(&loc_j); + } while (value_j == 0); + + inc_sum += value_j & LOOKBACK_VALUE_MASK; + want_mask = WARP_BALLOT((value_j & LOOKBACK_GLOBAL_MASK) == 0, want_mask); + if (value_j & LOOKBACK_GLOBAL_MASK) break; + } + AtomicOffsetT& loc_i = d_lookback[block_idx * RADIX_DIGITS + bin]; + PortionOffsetT value_i = inc_sum | LOOKBACK_GLOBAL_MASK; + ThreadStore(&loc_i, value_i); + s.global_offsets[bin] += inc_sum - bins[u]; + } + } + } + + __device__ __forceinline__ + void LoadKeys(OffsetT tile_offset, bit_ordered_type (&keys)[ITEMS_PER_THREAD]) + { + if (full_block) + { + LoadDirectWarpStriped(threadIdx.x, d_keys_in + tile_offset, keys); + } + else + { + LoadDirectWarpStriped(threadIdx.x, d_keys_in + tile_offset, keys, + num_items - tile_offset, Twiddle::DefaultKey(decomposer)); + } + + #pragma unroll + for (int u = 0; u < ITEMS_PER_THREAD; ++u) + { + keys[u] = Twiddle::In(keys[u], decomposer); + } + } + + __device__ __forceinline__ + void LoadValues(OffsetT tile_offset, ValueT (&values)[ITEMS_PER_THREAD]) + { + if (full_block) + { + LoadDirectWarpStriped(threadIdx.x, d_values_in + tile_offset, values); + } + else + { + int tile_items = num_items - tile_offset; + LoadDirectWarpStriped(threadIdx.x, d_values_in + tile_offset, values, + tile_items); + } + } + + /** Checks whether "short-circuiting" is possible. Short-circuiting happens + * if all TILE_ITEMS keys fall into the same bin, i.e. have the same digit + * value (note that it only happens for full tiles). If short-circuiting is + * performed, the part of the ranking algorithm after the CountsCallback, as + * well as the rest of the sorting (e.g. scattering keys and values to + * shared and global memory) are skipped; updates related to decoupled + * look-back are still performed. Instead, the keys assigned to the current + * thread block are written cooperatively into a contiguous location in + * d_keys_out corresponding to their digit. The values (if also sorting + * values) assigned to the current thread block are similarly copied from + * d_values_in to d_values_out. */ + __device__ __forceinline__ + void TryShortCircuit(bit_ordered_type (&keys)[ITEMS_PER_THREAD], int (&bins)[BINS_PER_THREAD]) + { + // check if any bin can be short-circuited + bool short_circuit = false; + #pragma unroll + for (int u = 0; u < BINS_PER_THREAD; ++u) + { + if (FULL_BINS || ThreadBin(u) < RADIX_DIGITS) + { + short_circuit = short_circuit || bins[u] == TILE_ITEMS; + } + } + short_circuit = CTA_SYNC_OR(short_circuit); + if (!short_circuit) return; + + ShortCircuitCopy(keys, bins); + } + + __device__ __forceinline__ + void ShortCircuitCopy(bit_ordered_type (&keys)[ITEMS_PER_THREAD], int (&bins)[BINS_PER_THREAD]) + { + // short-circuit handling; note that global look-back is still required + + // compute offsets + std::uint32_t common_bin = Digit(keys[0]); + int offsets[BINS_PER_THREAD]; + #pragma unroll + for (int u = 0; u < BINS_PER_THREAD; ++u) + { + int bin = ThreadBin(u); + offsets[u] = bin > common_bin ? TILE_ITEMS : 0; + } + + // global lookback + LoadBinsToOffsetsGlobal(offsets); + LookbackGlobal(bins); + UpdateBinsGlobal(bins, offsets); + CTA_SYNC(); + + // scatter the keys + OffsetT global_offset = s.global_offsets[common_bin]; + #pragma unroll + for (int u = 0; u < ITEMS_PER_THREAD; ++u) + { + keys[u] = Twiddle::Out(keys[u], decomposer); + } + if (full_block) + { + StoreDirectWarpStriped(threadIdx.x, d_keys_out + global_offset, keys); + } + else + { + int tile_items = num_items - block_idx * TILE_ITEMS; + StoreDirectWarpStriped(threadIdx.x, d_keys_out + global_offset, keys, + tile_items); + } + + if (!KEYS_ONLY) + { + // gather and scatter the values + ValueT values[ITEMS_PER_THREAD]; + LoadValues(block_idx * TILE_ITEMS, values); + if (full_block) + { + StoreDirectWarpStriped(threadIdx.x, d_values_out + global_offset, values); + } + else + { + int tile_items = num_items - block_idx * TILE_ITEMS; + StoreDirectWarpStriped(threadIdx.x, d_values_out + global_offset, values, + tile_items); + } + } + + // exit early + ThreadExit(); + } + + __device__ __forceinline__ + void ScatterKeysShared(bit_ordered_type (&keys)[ITEMS_PER_THREAD], int (&ranks)[ITEMS_PER_THREAD]) + { + // write to shared memory + #pragma unroll + for (int u = 0; u < ITEMS_PER_THREAD; ++u) + { + s.keys_out[ranks[u]] = keys[u]; + } + } + + __device__ __forceinline__ + void ScatterValuesShared(ValueT (&values)[ITEMS_PER_THREAD], int (&ranks)[ITEMS_PER_THREAD]) + { + // write to shared memory + #pragma unroll + for (int u = 0; u < ITEMS_PER_THREAD; ++u) + { + s.values_out[ranks[u]] = values[u]; + } + } + + __device__ __forceinline__ void LoadBinsToOffsetsGlobal(int (&offsets)[BINS_PER_THREAD]) + { + // global offset - global part + #pragma unroll + for (int u = 0; u < BINS_PER_THREAD; ++u) + { + int bin = ThreadBin(u); + if (FULL_BINS || bin < RADIX_DIGITS) + { + s.global_offsets[bin] = d_bins_in[bin] - offsets[u]; + } + } + } + + __device__ __forceinline__ void UpdateBinsGlobal(int (&bins)[BINS_PER_THREAD], + int (&offsets)[BINS_PER_THREAD]) + { + bool last_block = (block_idx + 1) * TILE_ITEMS >= num_items; + if (d_bins_out != NULL && last_block) + { + #pragma unroll + for (int u = 0; u < BINS_PER_THREAD; ++u) + { + int bin = ThreadBin(u); + if (FULL_BINS || bin < RADIX_DIGITS) + { + d_bins_out[bin] = s.global_offsets[bin] + offsets[u] + bins[u]; + } + } + } + } + + template + __device__ __forceinline__ void ScatterKeysGlobalDirect() + { + int tile_items = FULL_TILE ? TILE_ITEMS : num_items - block_idx * TILE_ITEMS; + #pragma unroll + for (int u = 0; u < ITEMS_PER_THREAD; ++u) + { + int idx = threadIdx.x + u * BLOCK_THREADS; + bit_ordered_type key = s.keys_out[idx]; + OffsetT global_idx = idx + s.global_offsets[Digit(key)]; + if (FULL_TILE || idx < tile_items) + { + d_keys_out[global_idx] = Twiddle::Out(key, decomposer); + } + WARP_SYNC(WARP_MASK); + } + } + + template + __device__ __forceinline__ void ScatterValuesGlobalDirect(int (&digits)[ITEMS_PER_THREAD]) + { + int tile_items = FULL_TILE ? TILE_ITEMS : num_items - block_idx * TILE_ITEMS; + #pragma unroll + for (int u = 0; u < ITEMS_PER_THREAD; ++u) + { + int idx = threadIdx.x + u * BLOCK_THREADS; + ValueT value = s.values_out[idx]; + OffsetT global_idx = idx + s.global_offsets[digits[u]]; + if (FULL_TILE || idx < tile_items) d_values_out[global_idx] = value; + WARP_SYNC(WARP_MASK); + } + } + + __device__ __forceinline__ void ScatterKeysGlobalAligned() + { + // this only works with full tiles + const int ITEMS_PER_WARP = TILE_ITEMS / BLOCK_WARPS; + const int ALIGN = 8; + const auto CACHE_MODIFIER = STORE_CG; + + int warp_start = warp * ITEMS_PER_WARP; + int warp_end = (warp + 1) * ITEMS_PER_WARP; + int warp_offset = warp_start; + while (warp_offset < warp_end - WARP_THREADS) + { + int idx = warp_offset + lane; + bit_ordered_type key = s.keys_out[idx]; + bit_ordered_type key_out = Twiddle::Out(key, decomposer); + OffsetT global_idx = idx + s.global_offsets[Digit(key)]; + int last_lane = WARP_THREADS - 1; + int num_writes = WARP_THREADS; + if (lane == last_lane) + { + num_writes -= int(global_idx + 1) % ALIGN; + } + num_writes = SHFL_IDX_SYNC(num_writes, last_lane, WARP_MASK); + if (lane < num_writes) + { + ThreadStore(&d_keys_out[global_idx], key_out); + } + warp_offset += num_writes; + } + { + int num_writes = warp_end - warp_offset; + if (lane < num_writes) + { + int idx = warp_offset + lane; + bit_ordered_type key = s.keys_out[idx]; + OffsetT global_idx = idx + s.global_offsets[Digit(key)]; + ThreadStore(&d_keys_out[global_idx], Twiddle::Out(key, decomposer)); + } + } + } + + __device__ __forceinline__ void ScatterKeysGlobal() + { + // write block data to global memory + if (full_block) + { + if (STORE_ALGORITHM == RADIX_SORT_STORE_ALIGNED) + { + ScatterKeysGlobalAligned(); + } + else + { + ScatterKeysGlobalDirect(); + } + } + else + { + ScatterKeysGlobalDirect(); + } + } + + __device__ __forceinline__ void ScatterValuesGlobal(int (&digits)[ITEMS_PER_THREAD]) + { + // write block data to global memory + if (full_block) + { + ScatterValuesGlobalDirect(digits); + } + else + { + ScatterValuesGlobalDirect(digits); + } + } + + __device__ __forceinline__ void ComputeKeyDigits(int (&digits)[ITEMS_PER_THREAD]) + { + #pragma unroll + for (int u = 0; u < ITEMS_PER_THREAD; ++u) + { + int idx = threadIdx.x + u * BLOCK_THREADS; + digits[u] = Digit(s.keys_out[idx]); + } + } + + __device__ __forceinline__ void GatherScatterValues( + int (&ranks)[ITEMS_PER_THREAD], Int2Type keys_only) + { + // compute digits corresponding to the keys + int digits[ITEMS_PER_THREAD]; + ComputeKeyDigits(digits); + + // load values + ValueT values[ITEMS_PER_THREAD]; + LoadValues(block_idx * TILE_ITEMS, values); + + // scatter values + CTA_SYNC(); + ScatterValuesShared(values, ranks); + + CTA_SYNC(); + ScatterValuesGlobal(digits); + } + + + __device__ __forceinline__ void GatherScatterValues( + int (&ranks)[ITEMS_PER_THREAD], Int2Type keys_only) {} + + __device__ __forceinline__ void Process() + { + // load keys + // if warp1 < warp2, all elements of warp1 occur before those of warp2 + // in the source array + bit_ordered_type keys[ITEMS_PER_THREAD]; + LoadKeys(block_idx * TILE_ITEMS, keys); + + // rank keys + int ranks[ITEMS_PER_THREAD]; + int exclusive_digit_prefix[BINS_PER_THREAD]; + int bins[BINS_PER_THREAD]; + BlockRadixRankT(s.rank_temp_storage).RankKeys( + keys, ranks, digit_extractor(), exclusive_digit_prefix, + CountsCallback(*this, bins, keys)); + + // scatter keys in shared memory + CTA_SYNC(); + ScatterKeysShared(keys, ranks); + + // compute global offsets + LoadBinsToOffsetsGlobal(exclusive_digit_prefix); + LookbackGlobal(bins); + UpdateBinsGlobal(bins, exclusive_digit_prefix); + + // scatter keys in global memory + CTA_SYNC(); + ScatterKeysGlobal(); + + // scatter values if necessary + GatherScatterValues(ranks, Int2Type()); + } + + __device__ __forceinline__ // + AgentRadixSortOnesweep(TempStorage &temp_storage, + AtomicOffsetT *d_lookback, + AtomicOffsetT *d_ctrs, + OffsetT *d_bins_out, + const OffsetT *d_bins_in, + KeyT *d_keys_out, + const KeyT *d_keys_in, + ValueT *d_values_out, + const ValueT *d_values_in, + PortionOffsetT num_items, + int current_bit, + int num_bits, + DecomposerT decomposer = {}) + : s(temp_storage.Alias()) + , d_lookback(d_lookback) + , d_ctrs(d_ctrs) + , d_bins_out(d_bins_out) + , d_bins_in(d_bins_in) + , d_keys_out(reinterpret_cast(d_keys_out)) + , d_keys_in(reinterpret_cast(d_keys_in)) + , d_values_out(d_values_out) + , d_values_in(d_values_in) + , num_items(num_items) + , current_bit(current_bit) + , num_bits(num_bits) + , warp(threadIdx.x / WARP_THREADS) + , lane(LaneId()) + , decomposer(decomposer) + { + // initialization + if (threadIdx.x == 0) + { + s.block_idx = atomicAdd(d_ctrs, 1); + } + CTA_SYNC(); + block_idx = s.block_idx; + full_block = (block_idx + 1) * TILE_ITEMS <= num_items; + } +}; + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_radix_sort_upsweep.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_radix_sort_upsweep.cuh new file mode 100644 index 0000000000000000000000000000000000000000..1918fb5f5ebc8e9d190052c58cbf838ad8e44af8 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_radix_sort_upsweep.cuh @@ -0,0 +1,531 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * AgentRadixSortUpsweep implements a stateful abstraction of CUDA thread blocks for participating in device-wide radix sort upsweep . + */ + +#pragma once + +#include "../thread/thread_reduce.cuh" +#include "../thread/thread_load.cuh" +#include "../warp/warp_reduce.cuh" +#include "../block/block_load.cuh" +#include "../block/radix_rank_sort_operations.cuh" +#include "../config.cuh" +#include "../util_type.cuh" +#include "../iterator/cache_modified_input_iterator.cuh" + +CUB_NAMESPACE_BEGIN + +/****************************************************************************** + * Tuning policy types + ******************************************************************************/ + +/** + * Parameterizable tuning policy type for AgentRadixSortUpsweep + */ +template < + int NOMINAL_BLOCK_THREADS_4B, ///< Threads per thread block + int NOMINAL_ITEMS_PER_THREAD_4B, ///< Items per thread (per tile of input) + typename ComputeT, ///< Dominant compute type + CacheLoadModifier _LOAD_MODIFIER, ///< Cache load modifier for reading keys + int _RADIX_BITS, ///< The number of radix bits, i.e., log2(bins) + typename ScalingType = RegBoundScaling > +struct AgentRadixSortUpsweepPolicy : + ScalingType +{ + enum + { + RADIX_BITS = _RADIX_BITS, ///< The number of radix bits, i.e., log2(bins) + }; + + static const CacheLoadModifier LOAD_MODIFIER = _LOAD_MODIFIER; ///< Cache load modifier for reading keys +}; + + +/****************************************************************************** + * Thread block abstractions + ******************************************************************************/ + +/** + * \brief AgentRadixSortUpsweep implements a stateful abstraction of CUDA thread blocks for participating in device-wide radix sort upsweep . + */ +template < + typename AgentRadixSortUpsweepPolicy, ///< Parameterized AgentRadixSortUpsweepPolicy tuning policy type + typename KeyT, ///< KeyT type + typename OffsetT, + typename DecomposerT = detail::identity_decomposer_t> ///< Signed integer type for global offsets +struct AgentRadixSortUpsweep +{ + + //--------------------------------------------------------------------- + // Type definitions and constants + //--------------------------------------------------------------------- + using traits = detail::radix::traits_t; + using bit_ordered_type = typename traits::bit_ordered_type; + using bit_ordered_conversion = typename traits::bit_ordered_conversion_policy; + + // Integer type for digit counters (to be packed into words of PackedCounters) + typedef unsigned char DigitCounter; + + // Integer type for packing DigitCounters into columns of shared memory banks + typedef unsigned int PackedCounter; + + static const CacheLoadModifier LOAD_MODIFIER = AgentRadixSortUpsweepPolicy::LOAD_MODIFIER; + + enum + { + RADIX_BITS = AgentRadixSortUpsweepPolicy::RADIX_BITS, + BLOCK_THREADS = AgentRadixSortUpsweepPolicy::BLOCK_THREADS, + KEYS_PER_THREAD = AgentRadixSortUpsweepPolicy::ITEMS_PER_THREAD, + + RADIX_DIGITS = 1 << RADIX_BITS, + + LOG_WARP_THREADS = CUB_PTX_LOG_WARP_THREADS, + WARP_THREADS = 1 << LOG_WARP_THREADS, + WARPS = (BLOCK_THREADS + WARP_THREADS - 1) / WARP_THREADS, + + TILE_ITEMS = BLOCK_THREADS * KEYS_PER_THREAD, + + BYTES_PER_COUNTER = sizeof(DigitCounter), + LOG_BYTES_PER_COUNTER = Log2::VALUE, + + PACKING_RATIO = sizeof(PackedCounter) / sizeof(DigitCounter), + LOG_PACKING_RATIO = Log2::VALUE, + + LOG_COUNTER_LANES = CUB_MAX(0, int(RADIX_BITS) - int(LOG_PACKING_RATIO)), + COUNTER_LANES = 1 << LOG_COUNTER_LANES, + + // To prevent counter overflow, we must periodically unpack and aggregate the + // digit counters back into registers. Each counter lane is assigned to a + // warp for aggregation. + + LANES_PER_WARP = CUB_MAX(1, (COUNTER_LANES + WARPS - 1) / WARPS), + + // Unroll tiles in batches without risk of counter overflow + UNROLL_COUNT = CUB_MIN(64, 255 / KEYS_PER_THREAD), + UNROLLED_ELEMENTS = UNROLL_COUNT * TILE_ITEMS, + }; + + + // Input iterator wrapper type (for applying cache modifier)s + typedef CacheModifiedInputIterator KeysItr; + + // Digit extractor type + using fundamental_digit_extractor_t = BFEDigitExtractor; + using digit_extractor_t = + typename traits::template digit_extractor_t; + + /** + * Shared memory storage layout + */ + union __align__(16) _TempStorage + { + DigitCounter thread_counters[COUNTER_LANES][BLOCK_THREADS][PACKING_RATIO]; + PackedCounter packed_thread_counters[COUNTER_LANES][BLOCK_THREADS]; + OffsetT block_counters[WARP_THREADS][RADIX_DIGITS]; + }; + + + /// Alias wrapper allowing storage to be unioned + struct TempStorage : Uninitialized<_TempStorage> {}; + + + //--------------------------------------------------------------------- + // Thread fields (aggregate state bundle) + //--------------------------------------------------------------------- + + // Shared storage for this CTA + _TempStorage &temp_storage; + + // Thread-local counters for periodically aggregating composite-counter lanes + OffsetT local_counts[LANES_PER_WARP][PACKING_RATIO]; + + // Input and output device pointers + KeysItr d_keys_in; + + // Target bits + int current_bit; + int num_bits; + DecomposerT decomposer; + + //--------------------------------------------------------------------- + // Helper structure for templated iteration + //--------------------------------------------------------------------- + + // Iterate + template + struct Iterate + { + // BucketKeys + static __device__ __forceinline__ void BucketKeys( + AgentRadixSortUpsweep &cta, + bit_ordered_type keys[KEYS_PER_THREAD]) + { + cta.Bucket(keys[COUNT]); + + // Next + Iterate::BucketKeys(cta, keys); + } + }; + + // Terminate + template + struct Iterate + { + // BucketKeys + static __device__ __forceinline__ void BucketKeys(AgentRadixSortUpsweep &/*cta*/, bit_ordered_type /*keys*/[KEYS_PER_THREAD]) {} + }; + + + //--------------------------------------------------------------------- + // Utility methods + //--------------------------------------------------------------------- + __device__ __forceinline__ digit_extractor_t digit_extractor() + { + return traits::template digit_extractor(current_bit, num_bits, decomposer); + } + + /** + * Decode a key and increment corresponding smem digit counter + */ + __device__ __forceinline__ void Bucket(bit_ordered_type key) + { + // Perform transform op + bit_ordered_type converted_key = bit_ordered_conversion::to_bit_ordered(decomposer, key); + + // Extract current digit bits + std::uint32_t digit = digit_extractor().Digit(converted_key); + + // Get sub-counter offset + std::uint32_t sub_counter = digit & (PACKING_RATIO - 1); + + // Get row offset + std::uint32_t row_offset = digit >> LOG_PACKING_RATIO; + + // Increment counter + temp_storage.thread_counters[row_offset][threadIdx.x][sub_counter]++; + } + + + /** + * Reset composite counters + */ + __device__ __forceinline__ void ResetDigitCounters() + { + #pragma unroll + for (int LANE = 0; LANE < COUNTER_LANES; LANE++) + { + temp_storage.packed_thread_counters[LANE][threadIdx.x] = 0; + } + } + + + /** + * Reset the unpacked counters in each thread + */ + __device__ __forceinline__ void ResetUnpackedCounters() + { + #pragma unroll + for (int LANE = 0; LANE < LANES_PER_WARP; LANE++) + { + #pragma unroll + for (int UNPACKED_COUNTER = 0; UNPACKED_COUNTER < PACKING_RATIO; UNPACKED_COUNTER++) + { + local_counts[LANE][UNPACKED_COUNTER] = 0; + } + } + } + + + /** + * Extracts and aggregates the digit counters for each counter lane + * owned by this warp + */ + __device__ __forceinline__ void UnpackDigitCounts() + { + unsigned int warp_id = threadIdx.x >> LOG_WARP_THREADS; + unsigned int warp_tid = LaneId(); + + #pragma unroll + for (int LANE = 0; LANE < LANES_PER_WARP; LANE++) + { + const int counter_lane = (LANE * WARPS) + warp_id; + if (counter_lane < COUNTER_LANES) + { + #pragma unroll + for (int PACKED_COUNTER = 0; PACKED_COUNTER < BLOCK_THREADS; PACKED_COUNTER += WARP_THREADS) + { + #pragma unroll + for (int UNPACKED_COUNTER = 0; UNPACKED_COUNTER < PACKING_RATIO; UNPACKED_COUNTER++) + { + OffsetT counter = temp_storage.thread_counters[counter_lane][warp_tid + PACKED_COUNTER][UNPACKED_COUNTER]; + local_counts[LANE][UNPACKED_COUNTER] += counter; + } + } + } + } + } + + + /** + * Processes a single, full tile + */ + __device__ __forceinline__ void ProcessFullTile(OffsetT block_offset) + { + // Tile of keys + bit_ordered_type keys[KEYS_PER_THREAD]; + + LoadDirectStriped(threadIdx.x, d_keys_in + block_offset, keys); + + // Prevent hoisting + CTA_SYNC(); + + // Bucket tile of keys + Iterate<0, KEYS_PER_THREAD>::BucketKeys(*this, keys); + } + + + /** + * Processes a single load (may have some threads masked off) + */ + __device__ __forceinline__ void ProcessPartialTile( + OffsetT block_offset, + const OffsetT &block_end) + { + // Process partial tile if necessary using single loads + for (OffsetT offset = threadIdx.x; offset < block_end - block_offset; offset += BLOCK_THREADS) + { + // Load and bucket key + bit_ordered_type key = d_keys_in[block_offset + offset]; + Bucket(key); + } + } + + + //--------------------------------------------------------------------- + // Interface + //--------------------------------------------------------------------- + + /** + * Constructor + */ + __device__ __forceinline__ AgentRadixSortUpsweep( + TempStorage &temp_storage, + const KeyT *d_keys_in, + int current_bit, + int num_bits, + DecomposerT decomposer = {}) + : + temp_storage(temp_storage.Alias()), + d_keys_in(reinterpret_cast(d_keys_in)), + current_bit(current_bit), + num_bits(num_bits), + decomposer(decomposer) + {} + + + /** + * Compute radix digit histograms from a segment of input tiles. + */ + __device__ __forceinline__ void ProcessRegion( + OffsetT block_offset, + const OffsetT &block_end) + { + // Reset digit counters in smem and unpacked counters in registers + ResetDigitCounters(); + ResetUnpackedCounters(); + + // Unroll batches of full tiles + while (block_end - block_offset >= UNROLLED_ELEMENTS) + { + for (int i = 0; i < UNROLL_COUNT; ++i) + { + ProcessFullTile(block_offset); + block_offset += TILE_ITEMS; + } + + CTA_SYNC(); + + // Aggregate back into local_count registers to prevent overflow + UnpackDigitCounts(); + + CTA_SYNC(); + + // Reset composite counters in lanes + ResetDigitCounters(); + } + + // Unroll single full tiles + while (block_end - block_offset >= TILE_ITEMS) + { + ProcessFullTile(block_offset); + block_offset += TILE_ITEMS; + } + + // Process partial tile if necessary + ProcessPartialTile( + block_offset, + block_end); + + CTA_SYNC(); + + // Aggregate back into local_count registers + UnpackDigitCounts(); + } + + + /** + * Extract counts (saving them to the external array) + */ + template + __device__ __forceinline__ void ExtractCounts( + OffsetT *counters, + int bin_stride = 1, + int bin_offset = 0) + { + unsigned int warp_id = threadIdx.x >> LOG_WARP_THREADS; + unsigned int warp_tid = LaneId(); + + // Place unpacked digit counters in shared memory + #pragma unroll + for (int LANE = 0; LANE < LANES_PER_WARP; LANE++) + { + int counter_lane = (LANE * WARPS) + warp_id; + if (counter_lane < COUNTER_LANES) + { + int digit_row = counter_lane << LOG_PACKING_RATIO; + + #pragma unroll + for (int UNPACKED_COUNTER = 0; UNPACKED_COUNTER < PACKING_RATIO; UNPACKED_COUNTER++) + { + int bin_idx = digit_row + UNPACKED_COUNTER; + + temp_storage.block_counters[warp_tid][bin_idx] = + local_counts[LANE][UNPACKED_COUNTER]; + } + } + } + + CTA_SYNC(); + + // Rake-reduce bin_count reductions + + // Whole blocks + #pragma unroll + for (int BIN_BASE = RADIX_DIGITS % BLOCK_THREADS; + (BIN_BASE + BLOCK_THREADS) <= RADIX_DIGITS; + BIN_BASE += BLOCK_THREADS) + { + int bin_idx = BIN_BASE + threadIdx.x; + + OffsetT bin_count = 0; + #pragma unroll + for (int i = 0; i < WARP_THREADS; ++i) + bin_count += temp_storage.block_counters[i][bin_idx]; + + if (IS_DESCENDING) + bin_idx = RADIX_DIGITS - bin_idx - 1; + + counters[(bin_stride * bin_idx) + bin_offset] = bin_count; + } + + // Remainder + if ((RADIX_DIGITS % BLOCK_THREADS != 0) && (threadIdx.x < RADIX_DIGITS)) + { + int bin_idx = threadIdx.x; + + OffsetT bin_count = 0; + #pragma unroll + for (int i = 0; i < WARP_THREADS; ++i) + bin_count += temp_storage.block_counters[i][bin_idx]; + + if (IS_DESCENDING) + bin_idx = RADIX_DIGITS - bin_idx - 1; + + counters[(bin_stride * bin_idx) + bin_offset] = bin_count; + } + } + + + /** + * Extract counts + */ + template + __device__ __forceinline__ void ExtractCounts( + OffsetT (&bin_count)[BINS_TRACKED_PER_THREAD]) ///< [out] The exclusive prefix sum for the digits [(threadIdx.x * BINS_TRACKED_PER_THREAD) ... (threadIdx.x * BINS_TRACKED_PER_THREAD) + BINS_TRACKED_PER_THREAD - 1] + { + unsigned int warp_id = threadIdx.x >> LOG_WARP_THREADS; + unsigned int warp_tid = LaneId(); + + // Place unpacked digit counters in shared memory + #pragma unroll + for (int LANE = 0; LANE < LANES_PER_WARP; LANE++) + { + int counter_lane = (LANE * WARPS) + warp_id; + if (counter_lane < COUNTER_LANES) + { + int digit_row = counter_lane << LOG_PACKING_RATIO; + + #pragma unroll + for (int UNPACKED_COUNTER = 0; UNPACKED_COUNTER < PACKING_RATIO; UNPACKED_COUNTER++) + { + int bin_idx = digit_row + UNPACKED_COUNTER; + + temp_storage.block_counters[warp_tid][bin_idx] = + local_counts[LANE][UNPACKED_COUNTER]; + } + } + } + + CTA_SYNC(); + + // Rake-reduce bin_count reductions + #pragma unroll + for (int track = 0; track < BINS_TRACKED_PER_THREAD; ++track) + { + int bin_idx = (threadIdx.x * BINS_TRACKED_PER_THREAD) + track; + + if ((BLOCK_THREADS == RADIX_DIGITS) || (bin_idx < RADIX_DIGITS)) + { + bin_count[track] = 0; + + #pragma unroll + for (int i = 0; i < WARP_THREADS; ++i) + bin_count[track] += temp_storage.block_counters[i][bin_idx]; + } + } + } + +}; + + +CUB_NAMESPACE_END + diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_reduce.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_reduce.cuh new file mode 100644 index 0000000000000000000000000000000000000000..4a29d707b3034e2e84bd880e748473543cfe90ec --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_reduce.cuh @@ -0,0 +1,475 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2022, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * @file cub::AgentReduce implements a stateful abstraction of CUDA thread + * blocks for participating in device-wide reduction. + */ + +#pragma once + +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +CUB_NAMESPACE_BEGIN + +/****************************************************************************** + * Tuning policy types + ******************************************************************************/ + +/** + * Parameterizable tuning policy type for AgentReduce + * @tparam NOMINAL_BLOCK_THREADS_4B Threads per thread block + * @tparam NOMINAL_ITEMS_PER_THREAD_4B Items per thread (per tile of input) + * @tparam ComputeT Dominant compute type + * @tparam _VECTOR_LOAD_LENGTH Number of items per vectorized load + * @tparam _BLOCK_ALGORITHM Cooperative block-wide reduction algorithm to use + * @tparam _LOAD_MODIFIER Cache load modifier for reading input elements + */ +template > +struct AgentReducePolicy : ScalingType +{ + /// Number of items per vectorized load + static constexpr int VECTOR_LOAD_LENGTH = _VECTOR_LOAD_LENGTH; + + /// Cooperative block-wide reduction algorithm to use + static constexpr BlockReduceAlgorithm BLOCK_ALGORITHM = _BLOCK_ALGORITHM; + + /// Cache load modifier for reading input elements + static constexpr CacheLoadModifier LOAD_MODIFIER = _LOAD_MODIFIER; +}; + +/****************************************************************************** + * Thread block abstractions + ******************************************************************************/ + +/** + * @brief AgentReduce implements a stateful abstraction of CUDA thread blocks + * for participating in device-wide reduction . + * + * Each thread reduces only the values it loads. If `FIRST_TILE`, this partial + * reduction is stored into `thread_aggregate`. Otherwise it is accumulated + * into `thread_aggregate`. + * + * @tparam AgentReducePolicy + * Parameterized AgentReducePolicy tuning policy type + * + * @tparam InputIteratorT + * Random-access iterator type for input + * + * @tparam OutputIteratorT + * Random-access iterator type for output + * + * @tparam OffsetT + * Signed integer type for global offsets + * + * @tparam ReductionOp + * Binary reduction operator type having member + * `auto operator()(T &&a, U &&b)` + * + * @tparam AccumT + * The type of intermediate accumulator (according to P2322R6) + */ +template +struct AgentReduce +{ + //--------------------------------------------------------------------- + // Types and constants + //--------------------------------------------------------------------- + + /// The input value type + using InputT = cub::detail::value_t; + + /// Vector type of InputT for data movement + using VectorT = + typename CubVector::Type; + + /// Input iterator wrapper type (for applying cache modifier) + // Wrap the native input pointer with CacheModifiedInputIterator + // or directly use the supplied input iterator type + using WrappedInputIteratorT = cub::detail::conditional_t< + std::is_pointer::value, + CacheModifiedInputIterator, + InputIteratorT>; + + /// Constants + static constexpr int BLOCK_THREADS = AgentReducePolicy::BLOCK_THREADS; + static constexpr int ITEMS_PER_THREAD = AgentReducePolicy::ITEMS_PER_THREAD; + static constexpr int TILE_ITEMS = BLOCK_THREADS * ITEMS_PER_THREAD; + static constexpr int VECTOR_LOAD_LENGTH = + CUB_MIN(ITEMS_PER_THREAD, AgentReducePolicy::VECTOR_LOAD_LENGTH); + + // Can vectorize according to the policy if the input iterator is a native + // pointer to a primitive type + static constexpr bool ATTEMPT_VECTORIZATION = (VECTOR_LOAD_LENGTH > 1) && + (ITEMS_PER_THREAD % VECTOR_LOAD_LENGTH == 0) && + (std::is_pointer::value) && + Traits::PRIMITIVE; + + static constexpr CacheLoadModifier LOAD_MODIFIER = + AgentReducePolicy::LOAD_MODIFIER; + + static constexpr BlockReduceAlgorithm BLOCK_ALGORITHM = + AgentReducePolicy::BLOCK_ALGORITHM; + + /// Parameterized BlockReduce primitive + using BlockReduceT = + BlockReduce; + + /// Shared memory type required by this thread block + struct _TempStorage + { + typename BlockReduceT::TempStorage reduce; + }; + + /// Alias wrapper allowing storage to be unioned + struct TempStorage : Uninitialized<_TempStorage> + {}; + + //--------------------------------------------------------------------- + // Per-thread fields + //--------------------------------------------------------------------- + + _TempStorage &temp_storage; ///< Reference to temp_storage + InputIteratorT d_in; ///< Input data to reduce + WrappedInputIteratorT d_wrapped_in; ///< Wrapped input data to reduce + ReductionOp reduction_op; ///< Binary reduction operator + + //--------------------------------------------------------------------- + // Utility + //--------------------------------------------------------------------- + + // Whether or not the input is aligned with the vector type (specialized for + // types we can vectorize) + template + static __device__ __forceinline__ bool + IsAligned(Iterator d_in, Int2Type /*can_vectorize*/) + { + return (size_t(d_in) & (sizeof(VectorT) - 1)) == 0; + } + + // Whether or not the input is aligned with the vector type (specialized for + // types we cannot vectorize) + template + static __device__ __forceinline__ bool + IsAligned(Iterator /*d_in*/, Int2Type /*can_vectorize*/) + { + return false; + } + + //--------------------------------------------------------------------- + // Constructor + //--------------------------------------------------------------------- + + /** + * @brief Constructor + * @param temp_storage Reference to temp_storage + * @param d_in Input data to reduce + * @param reduction_op Binary reduction operator + */ + __device__ __forceinline__ AgentReduce(TempStorage &temp_storage, + InputIteratorT d_in, + ReductionOp reduction_op) + : temp_storage(temp_storage.Alias()) + , d_in(d_in) + , d_wrapped_in(d_in) + , reduction_op(reduction_op) + {} + + //--------------------------------------------------------------------- + // Tile consumption + //--------------------------------------------------------------------- + + /** + * @brief Consume a full tile of input (non-vectorized) + * @param block_offset The offset the tile to consume + * @param valid_items The number of valid items in the tile + * @param is_full_tile Whether or not this is a full tile + * @param can_vectorize Whether or not we can vectorize loads + */ + template + __device__ __forceinline__ void ConsumeTile(AccumT &thread_aggregate, + OffsetT block_offset, + int /*valid_items*/, + Int2Type /*is_full_tile*/, + Int2Type /*can_vectorize*/) + { + AccumT items[ITEMS_PER_THREAD]; + + // Load items in striped fashion + LoadDirectStriped(threadIdx.x, + d_wrapped_in + block_offset, + items); + + // Reduce items within each thread stripe + thread_aggregate = + (IS_FIRST_TILE) + ? internal::ThreadReduce(items, reduction_op) + : internal::ThreadReduce(items, reduction_op, thread_aggregate); + } + + /** + * Consume a full tile of input (vectorized) + * @param block_offset The offset the tile to consume + * @param valid_items The number of valid items in the tile + * @param is_full_tile Whether or not this is a full tile + * @param can_vectorize Whether or not we can vectorize loads + */ + template + __device__ __forceinline__ void ConsumeTile(AccumT &thread_aggregate, + OffsetT block_offset, + int /*valid_items*/, + Int2Type /*is_full_tile*/, + Int2Type /*can_vectorize*/) + { + // Alias items as an array of VectorT and load it in striped fashion + enum + { + WORDS = ITEMS_PER_THREAD / VECTOR_LOAD_LENGTH + }; + + // Fabricate a vectorized input iterator + InputT *d_in_unqualified = const_cast(d_in) + block_offset + + (threadIdx.x * VECTOR_LOAD_LENGTH); + CacheModifiedInputIterator + d_vec_in(reinterpret_cast(d_in_unqualified)); + + // Load items as vector items + InputT input_items[ITEMS_PER_THREAD]; + VectorT *vec_items = reinterpret_cast(input_items); +#pragma unroll + for (int i = 0; i < WORDS; ++i) + { + vec_items[i] = d_vec_in[BLOCK_THREADS * i]; + } + + // Convert from input type to output type + AccumT items[ITEMS_PER_THREAD]; +#pragma unroll + for (int i = 0; i < ITEMS_PER_THREAD; ++i) + { + items[i] = input_items[i]; + } + + // Reduce items within each thread stripe + thread_aggregate = + (IS_FIRST_TILE) + ? internal::ThreadReduce(items, reduction_op) + : internal::ThreadReduce(items, reduction_op, thread_aggregate); + } + + /** + * Consume a partial tile of input + * @param block_offset The offset the tile to consume + * @param valid_items The number of valid items in the tile + * @param is_full_tile Whether or not this is a full tile + * @param can_vectorize Whether or not we can vectorize loads + */ + template + __device__ __forceinline__ void + ConsumeTile(AccumT &thread_aggregate, + OffsetT block_offset, + int valid_items, + Int2Type /*is_full_tile*/, + Int2Type /*can_vectorize*/) + { + // Partial tile + int thread_offset = threadIdx.x; + + // Read first item + if ((IS_FIRST_TILE) && (thread_offset < valid_items)) + { + thread_aggregate = d_wrapped_in[block_offset + thread_offset]; + thread_offset += BLOCK_THREADS; + } + + // Continue reading items (block-striped) + while (thread_offset < valid_items) + { + InputT item(d_wrapped_in[block_offset + thread_offset]); + + thread_aggregate = reduction_op(thread_aggregate, item); + thread_offset += BLOCK_THREADS; + } + } + + //--------------------------------------------------------------- + // Consume a contiguous segment of tiles + //--------------------------------------------------------------------- + + /** + * @brief Reduce a contiguous segment of input tiles + * @param even_share GridEvenShare descriptor + * @param can_vectorize Whether or not we can vectorize loads + */ + template + __device__ __forceinline__ AccumT + ConsumeRange(GridEvenShare &even_share, + Int2Type can_vectorize) + { + AccumT thread_aggregate{}; + + if (even_share.block_end - even_share.block_offset < TILE_ITEMS) + { + // First tile isn't full (not all threads have valid items) + int valid_items = even_share.block_end - even_share.block_offset; + ConsumeTile(thread_aggregate, + even_share.block_offset, + valid_items, + Int2Type(), + can_vectorize); + return BlockReduceT(temp_storage.reduce) + .Reduce(thread_aggregate, reduction_op, valid_items); + } + + // Extracting this into a function saves 8% of generated kernel size by allowing to reuse + // the block reduction below. This also workaround hang in nvcc. + ConsumeFullTileRange(thread_aggregate, even_share, can_vectorize); + + // Compute block-wide reduction (all threads have valid items) + return BlockReduceT(temp_storage.reduce) + .Reduce(thread_aggregate, reduction_op); + } + + /** + * @brief Reduce a contiguous segment of input tiles + * @param[in] block_offset Threadblock begin offset (inclusive) + * @param[in] block_end Threadblock end offset (exclusive) + */ + __device__ __forceinline__ AccumT ConsumeRange(OffsetT block_offset, + OffsetT block_end) + { + GridEvenShare even_share; + even_share.template BlockInit(block_offset, block_end); + + return (IsAligned(d_in + block_offset, Int2Type())) + ? ConsumeRange(even_share, + Int2Type < true && ATTEMPT_VECTORIZATION > ()) + : ConsumeRange(even_share, + Int2Type < false && ATTEMPT_VECTORIZATION > ()); + } + + /** + * Reduce a contiguous segment of input tiles + * @param[in] even_share GridEvenShare descriptor + */ + __device__ __forceinline__ AccumT + ConsumeTiles(GridEvenShare &even_share) + { + // Initialize GRID_MAPPING_STRIP_MINE even-share descriptor for this thread block + even_share.template BlockInit(); + + return (IsAligned(d_in, Int2Type())) + ? ConsumeRange(even_share, + Int2Type < true && ATTEMPT_VECTORIZATION > ()) + : ConsumeRange(even_share, + Int2Type < false && ATTEMPT_VECTORIZATION > ()); + } + +private: + /** + * @brief Reduce a contiguous segment of input tiles with more than `TILE_ITEMS` elements + * @param even_share GridEvenShare descriptor + * @param can_vectorize Whether or not we can vectorize loads + */ + template + __device__ __forceinline__ void + ConsumeFullTileRange(AccumT &thread_aggregate, + GridEvenShare &even_share, + Int2Type can_vectorize) + { + // At least one full block + ConsumeTile(thread_aggregate, + even_share.block_offset, + TILE_ITEMS, + Int2Type(), + can_vectorize); + + if (even_share.block_end - even_share.block_offset < even_share.block_stride) + { + // Exit early to handle offset overflow + return; + } + + even_share.block_offset += even_share.block_stride; + + // Consume subsequent full tiles of input, at least one full tile was processed, so + // `even_share.block_end >= TILE_ITEMS` + while (even_share.block_offset <= even_share.block_end - TILE_ITEMS) + { + ConsumeTile(thread_aggregate, + even_share.block_offset, + TILE_ITEMS, + Int2Type(), + can_vectorize); + + if (even_share.block_end - even_share.block_offset < even_share.block_stride) + { + // Exit early to handle offset overflow + return; + } + + even_share.block_offset += even_share.block_stride; + } + + // Consume a partially-full tile + if (even_share.block_offset < even_share.block_end) + { + int valid_items = even_share.block_end - even_share.block_offset; + ConsumeTile(thread_aggregate, + even_share.block_offset, + valid_items, + Int2Type(), + can_vectorize); + } + } +}; + +CUB_NAMESPACE_END + diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_reduce_by_key.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_reduce_by_key.cuh new file mode 100644 index 0000000000000000000000000000000000000000..6eb001b26834f6e7f2f6c06db7a16207c332e901 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_reduce_by_key.cuh @@ -0,0 +1,694 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2022, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * @file cub::AgentReduceByKey implements a stateful abstraction of CUDA thread + * blocks for participating in device-wide reduce-value-by-key. + */ + +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +CUB_NAMESPACE_BEGIN + +/****************************************************************************** + * Tuning policy types + ******************************************************************************/ + +/** + * @brief Parameterizable tuning policy type for AgentReduceByKey + * + * @tparam _BLOCK_THREADS + * Threads per thread block + * + * @tparam _ITEMS_PER_THREAD + * Items per thread (per tile of input) + * + * @tparam _LOAD_ALGORITHM + * The BlockLoad algorithm to use + * + * @tparam _LOAD_MODIFIER + * Cache load modifier for reading input elements + * + * @tparam _SCAN_ALGORITHM + * The BlockScan algorithm to use + * + * @tparam DelayConstructorT + * Implementation detail, do not specify directly, requirements on the + * content of this type are subject to breaking change. + */ +template > +struct AgentReduceByKeyPolicy +{ + ///< Threads per thread block + static constexpr int BLOCK_THREADS = _BLOCK_THREADS; + + ///< Items per thread (per tile of input) + static constexpr int ITEMS_PER_THREAD = _ITEMS_PER_THREAD; + + ///< The BlockLoad algorithm to use + static constexpr BlockLoadAlgorithm LOAD_ALGORITHM = _LOAD_ALGORITHM; + + ///< Cache load modifier for reading input elements + static constexpr CacheLoadModifier LOAD_MODIFIER = _LOAD_MODIFIER; + + ///< The BlockScan algorithm to use + static constexpr const BlockScanAlgorithm SCAN_ALGORITHM = _SCAN_ALGORITHM; + + struct detail + { + using delay_constructor_t = DelayConstructorT; + }; +}; + +/****************************************************************************** + * Thread block abstractions + ******************************************************************************/ + +/** + * @brief AgentReduceByKey implements a stateful abstraction of CUDA thread + * blocks for participating in device-wide reduce-value-by-key + * + * @tparam AgentReduceByKeyPolicyT + * Parameterized AgentReduceByKeyPolicy tuning policy type + * + * @tparam KeysInputIteratorT + * Random-access input iterator type for keys + * + * @tparam UniqueOutputIteratorT + * Random-access output iterator type for keys + * + * @tparam ValuesInputIteratorT + * Random-access input iterator type for values + * + * @tparam AggregatesOutputIteratorT + * Random-access output iterator type for values + * + * @tparam NumRunsOutputIteratorT + * Output iterator type for recording number of items selected + * + * @tparam EqualityOpT + * KeyT equality operator type + * + * @tparam ReductionOpT + * ValueT reduction operator type + * + * @tparam OffsetT + * Signed integer type for global offsets + */ +template +struct AgentReduceByKey +{ + //--------------------------------------------------------------------- + // Types and constants + //--------------------------------------------------------------------- + + // The input keys type + using KeyInputT = cub::detail::value_t; + + // The output keys type + using KeyOutputT = cub::detail::non_void_value_t; + + // The input values type + using ValueInputT = cub::detail::value_t; + + // Tuple type for scanning (pairs accumulated segment-value with + // segment-index) + using OffsetValuePairT = KeyValuePair; + + // Tuple type for pairing keys and values + using KeyValuePairT = KeyValuePair; + + // Tile status descriptor interface type + using ScanTileStateT = ReduceByKeyScanTileState; + + // Guarded inequality functor + template + struct GuardedInequalityWrapper + { + /// Wrapped equality operator + _EqualityOpT op; + + /// Items remaining + int num_remaining; + + /// Constructor + __host__ __device__ __forceinline__ GuardedInequalityWrapper(_EqualityOpT op, int num_remaining) + : op(op) + , num_remaining(num_remaining) + {} + + /// Boolean inequality operator, returns (a != b) + template + __host__ __device__ __forceinline__ bool operator()(const T &a, const T &b, int idx) const + { + if (idx < num_remaining) + { + return !op(a, b); // In bounds + } + + // Return true if first out-of-bounds item, false otherwise + return (idx == num_remaining); + } + }; + + // Constants + static constexpr int BLOCK_THREADS = AgentReduceByKeyPolicyT::BLOCK_THREADS; + static constexpr int ITEMS_PER_THREAD = AgentReduceByKeyPolicyT::ITEMS_PER_THREAD; + static constexpr int TILE_ITEMS = BLOCK_THREADS * ITEMS_PER_THREAD; + static constexpr int TWO_PHASE_SCATTER = (ITEMS_PER_THREAD > 1); + + // Whether or not the scan operation has a zero-valued identity value (true + // if we're performing addition on a primitive type) + static constexpr int HAS_IDENTITY_ZERO = (std::is_same::value) && + (Traits::PRIMITIVE); + + // Cache-modified Input iterator wrapper type (for applying cache modifier) + // for keys Wrap the native input pointer with + // CacheModifiedValuesInputIterator or directly use the supplied input + // iterator type + using WrappedKeysInputIteratorT = cub::detail::conditional_t< + std::is_pointer::value, + CacheModifiedInputIterator, + KeysInputIteratorT>; + + // Cache-modified Input iterator wrapper type (for applying cache modifier) + // for values Wrap the native input pointer with + // CacheModifiedValuesInputIterator or directly use the supplied input + // iterator type + using WrappedValuesInputIteratorT = cub::detail::conditional_t< + std::is_pointer::value, + CacheModifiedInputIterator, + ValuesInputIteratorT>; + + // Cache-modified Input iterator wrapper type (for applying cache modifier) + // for fixup values Wrap the native input pointer with + // CacheModifiedValuesInputIterator or directly use the supplied input + // iterator type + using WrappedFixupInputIteratorT = cub::detail::conditional_t< + std::is_pointer::value, + CacheModifiedInputIterator, + AggregatesOutputIteratorT>; + + // Reduce-value-by-segment scan operator + using ReduceBySegmentOpT = ReduceBySegmentOp; + + // Parameterized BlockLoad type for keys + using BlockLoadKeysT = + BlockLoad; + + // Parameterized BlockLoad type for values + using BlockLoadValuesT = + BlockLoad; + + // Parameterized BlockDiscontinuity type for keys + using BlockDiscontinuityKeys = BlockDiscontinuity; + + // Parameterized BlockScan type + using BlockScanT = + BlockScan; + + // Callback type for obtaining tile prefix during block scan + using DelayConstructorT = typename AgentReduceByKeyPolicyT::detail::delay_constructor_t; + using TilePrefixCallbackOpT = + TilePrefixCallbackOp; + + // Key and value exchange types + typedef KeyOutputT KeyExchangeT[TILE_ITEMS + 1]; + typedef AccumT ValueExchangeT[TILE_ITEMS + 1]; + + // Shared memory type for this thread block + union _TempStorage + { + struct ScanStorage + { + // Smem needed for tile scanning + typename BlockScanT::TempStorage scan; + + // Smem needed for cooperative prefix callback + typename TilePrefixCallbackOpT::TempStorage prefix; + + // Smem needed for discontinuity detection + typename BlockDiscontinuityKeys::TempStorage discontinuity; + } scan_storage; + + // Smem needed for loading keys + typename BlockLoadKeysT::TempStorage load_keys; + + // Smem needed for loading values + typename BlockLoadValuesT::TempStorage load_values; + + // Smem needed for compacting key value pairs(allows non POD items in this + // union) + Uninitialized raw_exchange; + }; + + // Alias wrapper allowing storage to be unioned + struct TempStorage : Uninitialized<_TempStorage> + {}; + + //--------------------------------------------------------------------- + // Per-thread fields + //--------------------------------------------------------------------- + + /// Reference to temp_storage + _TempStorage &temp_storage; + + /// Input keys + WrappedKeysInputIteratorT d_keys_in; + + /// Unique output keys + UniqueOutputIteratorT d_unique_out; + + /// Input values + WrappedValuesInputIteratorT d_values_in; + + /// Output value aggregates + AggregatesOutputIteratorT d_aggregates_out; + + /// Output pointer for total number of segments identified + NumRunsOutputIteratorT d_num_runs_out; + + /// KeyT equality operator + EqualityOpT equality_op; + + /// Reduction operator + ReductionOpT reduction_op; + + /// Reduce-by-segment scan operator + ReduceBySegmentOpT scan_op; + + //--------------------------------------------------------------------- + // Constructor + //--------------------------------------------------------------------- + + /** + * @param temp_storage + * Reference to temp_storage + * + * @param d_keys_in + * Input keys + * + * @param d_unique_out + * Unique output keys + * + * @param d_values_in + * Input values + * + * @param d_aggregates_out + * Output value aggregates + * + * @param d_num_runs_out + * Output pointer for total number of segments identified + * + * @param equality_op + * KeyT equality operator + * + * @param reduction_op + * ValueT reduction operator + */ + __device__ __forceinline__ AgentReduceByKey(TempStorage &temp_storage, + KeysInputIteratorT d_keys_in, + UniqueOutputIteratorT d_unique_out, + ValuesInputIteratorT d_values_in, + AggregatesOutputIteratorT d_aggregates_out, + NumRunsOutputIteratorT d_num_runs_out, + EqualityOpT equality_op, + ReductionOpT reduction_op) + : temp_storage(temp_storage.Alias()) + , d_keys_in(d_keys_in) + , d_unique_out(d_unique_out) + , d_values_in(d_values_in) + , d_aggregates_out(d_aggregates_out) + , d_num_runs_out(d_num_runs_out) + , equality_op(equality_op) + , reduction_op(reduction_op) + , scan_op(reduction_op) + {} + + //--------------------------------------------------------------------- + // Scatter utility methods + //--------------------------------------------------------------------- + + /** + * Directly scatter flagged items to output offsets + */ + __device__ __forceinline__ void ScatterDirect(KeyValuePairT (&scatter_items)[ITEMS_PER_THREAD], + OffsetT (&segment_flags)[ITEMS_PER_THREAD], + OffsetT (&segment_indices)[ITEMS_PER_THREAD]) + { +// Scatter flagged keys and values +#pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ++ITEM) + { + if (segment_flags[ITEM]) + { + d_unique_out[segment_indices[ITEM]] = scatter_items[ITEM].key; + d_aggregates_out[segment_indices[ITEM]] = scatter_items[ITEM].value; + } + } + } + + /** + * 2-phase scatter flagged items to output offsets + * + * The exclusive scan causes each head flag to be paired with the previous + * value aggregate: the scatter offsets must be decremented for value + * aggregates + */ + __device__ __forceinline__ void ScatterTwoPhase(KeyValuePairT (&scatter_items)[ITEMS_PER_THREAD], + OffsetT (&segment_flags)[ITEMS_PER_THREAD], + OffsetT (&segment_indices)[ITEMS_PER_THREAD], + OffsetT num_tile_segments, + OffsetT num_tile_segments_prefix) + { + CTA_SYNC(); + +// Compact and scatter pairs +#pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ++ITEM) + { + if (segment_flags[ITEM]) + { + temp_storage.raw_exchange.Alias()[segment_indices[ITEM] - num_tile_segments_prefix] = + scatter_items[ITEM]; + } + } + + CTA_SYNC(); + + for (int item = threadIdx.x; item < num_tile_segments; item += BLOCK_THREADS) + { + KeyValuePairT pair = temp_storage.raw_exchange.Alias()[item]; + d_unique_out[num_tile_segments_prefix + item] = pair.key; + d_aggregates_out[num_tile_segments_prefix + item] = pair.value; + } + } + + /** + * Scatter flagged items + */ + __device__ __forceinline__ void Scatter(KeyValuePairT (&scatter_items)[ITEMS_PER_THREAD], + OffsetT (&segment_flags)[ITEMS_PER_THREAD], + OffsetT (&segment_indices)[ITEMS_PER_THREAD], + OffsetT num_tile_segments, + OffsetT num_tile_segments_prefix) + { + // Do a one-phase scatter if (a) two-phase is disabled or (b) the average + // number of selected items per thread is less than one + if (TWO_PHASE_SCATTER && (num_tile_segments > BLOCK_THREADS)) + { + ScatterTwoPhase(scatter_items, + segment_flags, + segment_indices, + num_tile_segments, + num_tile_segments_prefix); + } + else + { + ScatterDirect(scatter_items, segment_flags, segment_indices); + } + } + + //--------------------------------------------------------------------- + // Cooperatively scan a device-wide sequence of tiles with other CTAs + //--------------------------------------------------------------------- + + /** + * @brief Process a tile of input (dynamic chained scan) + * + * @tparam IS_LAST_TILE + * Whether the current tile is the last tile + * + * @param num_remaining + * Number of global input items remaining (including this tile) + * + * @param tile_idx + * Tile index + * + * @param tile_offset + * Tile offset + * + * @param tile_state + * Global tile state descriptor + */ + template + __device__ __forceinline__ void + ConsumeTile(OffsetT num_remaining, int tile_idx, OffsetT tile_offset, ScanTileStateT &tile_state) + { + // Tile keys + KeyOutputT keys[ITEMS_PER_THREAD]; + + // Tile keys shuffled up + KeyOutputT prev_keys[ITEMS_PER_THREAD]; + + // Tile values + AccumT values[ITEMS_PER_THREAD]; + + // Segment head flags + OffsetT head_flags[ITEMS_PER_THREAD]; + + // Segment indices + OffsetT segment_indices[ITEMS_PER_THREAD]; + + // Zipped values and segment flags|indices + OffsetValuePairT scan_items[ITEMS_PER_THREAD]; + + // Zipped key value pairs for scattering + KeyValuePairT scatter_items[ITEMS_PER_THREAD]; + + // Load keys + if (IS_LAST_TILE) + { + BlockLoadKeysT(temp_storage.load_keys).Load(d_keys_in + tile_offset, keys, num_remaining); + } + else + { + BlockLoadKeysT(temp_storage.load_keys).Load(d_keys_in + tile_offset, keys); + } + + // Load tile predecessor key in first thread + KeyOutputT tile_predecessor; + if (threadIdx.x == 0) + { + // if (tile_idx == 0) + // first tile gets repeat of first item (thus first item will not + // be flagged as a head) + // else + // Subsequent tiles get last key from previous tile + tile_predecessor = (tile_idx == 0) ? keys[0] : d_keys_in[tile_offset - 1]; + } + + CTA_SYNC(); + + // Load values + if (IS_LAST_TILE) + { + BlockLoadValuesT(temp_storage.load_values) + .Load(d_values_in + tile_offset, values, num_remaining); + } + else + { + BlockLoadValuesT(temp_storage.load_values).Load(d_values_in + tile_offset, values); + } + + CTA_SYNC(); + + // Initialize head-flags and shuffle up the previous keys + if (IS_LAST_TILE) + { + // Use custom flag operator to additionally flag the first out-of-bounds + // item + GuardedInequalityWrapper flag_op(equality_op, num_remaining); + BlockDiscontinuityKeys(temp_storage.scan_storage.discontinuity) + .FlagHeads(head_flags, keys, prev_keys, flag_op, tile_predecessor); + } + else + { + InequalityWrapper flag_op(equality_op); + BlockDiscontinuityKeys(temp_storage.scan_storage.discontinuity) + .FlagHeads(head_flags, keys, prev_keys, flag_op, tile_predecessor); + } + + // Reset head-flag on the very first item to make sure we don't start a new run for data where + // (key[0] == key[0]) is false (e.g., when key[0] is NaN) + if (threadIdx.x == 0 && tile_idx == 0) + { + head_flags[0] = 0; + } + + // Zip values and head flags +#pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ++ITEM) + { + scan_items[ITEM].value = values[ITEM]; + scan_items[ITEM].key = head_flags[ITEM]; + } + + // Perform exclusive tile scan + // Inclusive block-wide scan aggregate + OffsetValuePairT block_aggregate; + + // Number of segments prior to this tile + OffsetT num_segments_prefix; + + // The tile prefix folded with block_aggregate + OffsetValuePairT total_aggregate; + + if (tile_idx == 0) + { + // Scan first tile + BlockScanT(temp_storage.scan_storage.scan) + .ExclusiveScan(scan_items, scan_items, scan_op, block_aggregate); + num_segments_prefix = 0; + total_aggregate = block_aggregate; + + // Update tile status if there are successor tiles + if ((!IS_LAST_TILE) && (threadIdx.x == 0)) + { + tile_state.SetInclusive(0, block_aggregate); + } + } + else + { + // Scan non-first tile + TilePrefixCallbackOpT prefix_op(tile_state, + temp_storage.scan_storage.prefix, + scan_op, + tile_idx); + BlockScanT(temp_storage.scan_storage.scan) + .ExclusiveScan(scan_items, scan_items, scan_op, prefix_op); + + block_aggregate = prefix_op.GetBlockAggregate(); + num_segments_prefix = prefix_op.GetExclusivePrefix().key; + total_aggregate = prefix_op.GetInclusivePrefix(); + } + +// Rezip scatter items and segment indices +#pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ++ITEM) + { + scatter_items[ITEM].key = prev_keys[ITEM]; + scatter_items[ITEM].value = scan_items[ITEM].value; + segment_indices[ITEM] = scan_items[ITEM].key; + } + + // At this point, each flagged segment head has: + // - The key for the previous segment + // - The reduced value from the previous segment + // - The segment index for the reduced value + + // Scatter flagged keys and values + OffsetT num_tile_segments = block_aggregate.key; + Scatter(scatter_items, head_flags, segment_indices, num_tile_segments, num_segments_prefix); + + // Last thread in last tile will output final count (and last pair, if + // necessary) + if ((IS_LAST_TILE) && (threadIdx.x == BLOCK_THREADS - 1)) + { + OffsetT num_segments = num_segments_prefix + num_tile_segments; + + // If the last tile is a whole tile, output the final_value + if (num_remaining == TILE_ITEMS) + { + d_unique_out[num_segments] = keys[ITEMS_PER_THREAD - 1]; + d_aggregates_out[num_segments] = total_aggregate.value; + num_segments++; + } + + // Output the total number of items selected + *d_num_runs_out = num_segments; + } + } + + /** + * @brief Scan tiles of items as part of a dynamic chained scan + * + * @param num_items + * Total number of input items + * + * @param tile_state + * Global tile state descriptor + * + * @param start_tile + * The starting tile for the current grid + */ + __device__ __forceinline__ void ConsumeRange(OffsetT num_items, + ScanTileStateT &tile_state, + int start_tile) + { + // Blocks are launched in increasing order, so just assign one tile per + // block + + // Current tile index + int tile_idx = start_tile + blockIdx.x; + + // Global offset for the current tile + OffsetT tile_offset = OffsetT(TILE_ITEMS) * tile_idx; + + // Remaining items (including this tile) + OffsetT num_remaining = num_items - tile_offset; + + if (num_remaining > TILE_ITEMS) + { + // Not last tile + ConsumeTile(num_remaining, tile_idx, tile_offset, tile_state); + } + else if (num_remaining > 0) + { + // Last tile + ConsumeTile(num_remaining, tile_idx, tile_offset, tile_state); + } + } +}; + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_rle.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_rle.cuh new file mode 100644 index 0000000000000000000000000000000000000000..6486d0b1209fe7d36abcb6104c8ea1ba13776301 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_rle.cuh @@ -0,0 +1,861 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * cub::AgentRle implements a stateful abstraction of CUDA thread blocks for participating in device-wide run-length-encode. + */ + +#pragma once + +#include + +#include "single_pass_scan_operators.cuh" +#include "../block/block_load.cuh" +#include "../block/block_store.cuh" +#include "../block/block_scan.cuh" +#include "../block/block_exchange.cuh" +#include "../block/block_discontinuity.cuh" +#include "../config.cuh" +#include "../grid/grid_queue.cuh" +#include "../iterator/cache_modified_input_iterator.cuh" +#include "../iterator/constant_input_iterator.cuh" + +CUB_NAMESPACE_BEGIN + + +/****************************************************************************** + * Tuning policy types + ******************************************************************************/ + +/** + * Parameterizable tuning policy type for AgentRle + * + * @tparam _BLOCK_THREADS + * Threads per thread block + * + * @tparam _ITEMS_PER_THREAD + * Items per thread (per tile of input) + * + * @tparam _LOAD_ALGORITHM + * The BlockLoad algorithm to use + * + * @tparam _LOAD_MODIFIER + * Cache load modifier for reading input elements + * + * @tparam _STORE_WARP_TIME_SLICING + * Whether or not only one warp's worth of shared memory should be allocated and time-sliced among + * block-warps during any store-related data transpositions + * (versus each warp having its own storage) + * + * @tparam _SCAN_ALGORITHM + * The BlockScan algorithm to use + * + * @tparam DelayConstructorT + * Implementation detail, do not specify directly, requirements on the + * content of this type are subject to breaking change. + */ +template > +struct AgentRlePolicy +{ + enum + { + BLOCK_THREADS = _BLOCK_THREADS, ///< Threads per thread block + ITEMS_PER_THREAD = _ITEMS_PER_THREAD, ///< Items per thread (per tile of input) + STORE_WARP_TIME_SLICING = _STORE_WARP_TIME_SLICING, ///< Whether or not only one warp's worth of shared memory should be allocated and time-sliced among block-warps during any store-related data transpositions (versus each warp having its own storage) + }; + + static const BlockLoadAlgorithm LOAD_ALGORITHM = _LOAD_ALGORITHM; ///< The BlockLoad algorithm to use + static const CacheLoadModifier LOAD_MODIFIER = _LOAD_MODIFIER; ///< Cache load modifier for reading input elements + static const BlockScanAlgorithm SCAN_ALGORITHM = _SCAN_ALGORITHM; ///< The BlockScan algorithm to use + + struct detail + { + using delay_constructor_t = DelayConstructorT; + }; +}; + + + + + +/****************************************************************************** + * Thread block abstractions + ******************************************************************************/ + +/** + * \brief AgentRle implements a stateful abstraction of CUDA thread blocks for participating in device-wide run-length-encode + */ +template < + typename AgentRlePolicyT, ///< Parameterized AgentRlePolicyT tuning policy type + typename InputIteratorT, ///< Random-access input iterator type for data + typename OffsetsOutputIteratorT, ///< Random-access output iterator type for offset values + typename LengthsOutputIteratorT, ///< Random-access output iterator type for length values + typename EqualityOpT, ///< T equality operator type + typename OffsetT> ///< Signed integer type for global offsets +struct AgentRle +{ + //--------------------------------------------------------------------- + // Types and constants + //--------------------------------------------------------------------- + + /// The input value type + using T = cub::detail::value_t; + + /// The lengths output value type + using LengthT = + cub::detail::non_void_value_t; + + /// Tuple type for scanning (pairs run-length and run-index) + using LengthOffsetPair = KeyValuePair; + + /// Tile status descriptor interface type + using ScanTileStateT = ReduceByKeyScanTileState; + + // Constants + enum + { + WARP_THREADS = CUB_WARP_THREADS(0), + BLOCK_THREADS = AgentRlePolicyT::BLOCK_THREADS, + ITEMS_PER_THREAD = AgentRlePolicyT::ITEMS_PER_THREAD, + WARP_ITEMS = WARP_THREADS * ITEMS_PER_THREAD, + TILE_ITEMS = BLOCK_THREADS * ITEMS_PER_THREAD, + WARPS = (BLOCK_THREADS + WARP_THREADS - 1) / WARP_THREADS, + + /// Whether or not to sync after loading data + SYNC_AFTER_LOAD = (AgentRlePolicyT::LOAD_ALGORITHM != BLOCK_LOAD_DIRECT), + + /// Whether or not only one warp's worth of shared memory should be allocated and time-sliced among block-warps during any store-related data transpositions (versus each warp having its own storage) + STORE_WARP_TIME_SLICING = AgentRlePolicyT::STORE_WARP_TIME_SLICING, + ACTIVE_EXCHANGE_WARPS = (STORE_WARP_TIME_SLICING) ? 1 : WARPS, + }; + + + /** + * Special operator that signals all out-of-bounds items are not equal to everything else, + * forcing both (1) the last item to be tail-flagged and (2) all oob items to be marked + * trivial. + */ + template + struct OobInequalityOp + { + OffsetT num_remaining; + EqualityOpT equality_op; + + __device__ __forceinline__ OobInequalityOp( + OffsetT num_remaining, + EqualityOpT equality_op) + : + num_remaining(num_remaining), + equality_op(equality_op) + {} + + template + __host__ __device__ __forceinline__ bool operator()(T first, T second, Index idx) + { + if (!LAST_TILE || (idx < num_remaining)) + return !equality_op(first, second); + else + return true; + } + }; + + + // Cache-modified Input iterator wrapper type (for applying cache modifier) for data + // Wrap the native input pointer with CacheModifiedVLengthnputIterator + // Directly use the supplied input iterator type + using WrappedInputIteratorT = cub::detail::conditional_t< + std::is_pointer::value, + CacheModifiedInputIterator, + InputIteratorT>; + + // Parameterized BlockLoad type for data + using BlockLoadT = BlockLoad; + + // Parameterized BlockDiscontinuity type for data + using BlockDiscontinuityT = BlockDiscontinuity ; + + // Parameterized WarpScan type + using WarpScanPairs = WarpScan; + + // Reduce-length-by-run scan operator + using ReduceBySegmentOpT = ReduceBySegmentOp; + + // Callback type for obtaining tile prefix during block scan + using DelayConstructorT = typename AgentRlePolicyT::detail::delay_constructor_t; + using TilePrefixCallbackOpT = + TilePrefixCallbackOp; + + // Warp exchange types + using WarpExchangePairs = WarpExchange; + + using WarpExchangePairsStorage = + cub::detail::conditional_t; + + using WarpExchangeOffsets = WarpExchange; + using WarpExchangeLengths = WarpExchange; + + typedef LengthOffsetPair WarpAggregates[WARPS]; + + // Shared memory type for this thread block + struct _TempStorage + { + // Aliasable storage layout + union Aliasable + { + struct ScanStorage + { + typename BlockDiscontinuityT::TempStorage discontinuity; // Smem needed for discontinuity detection + typename WarpScanPairs::TempStorage warp_scan[WARPS]; // Smem needed for warp-synchronous scans + Uninitialized warp_aggregates; // Smem needed for sharing warp-wide aggregates + typename TilePrefixCallbackOpT::TempStorage prefix; // Smem needed for cooperative prefix callback + } scan_storage; + + // Smem needed for input loading + typename BlockLoadT::TempStorage load; + + // Aliasable layout needed for two-phase scatter + union ScatterAliasable + { + unsigned long long align; + WarpExchangePairsStorage exchange_pairs[ACTIVE_EXCHANGE_WARPS]; + typename WarpExchangeOffsets::TempStorage exchange_offsets[ACTIVE_EXCHANGE_WARPS]; + typename WarpExchangeLengths::TempStorage exchange_lengths[ACTIVE_EXCHANGE_WARPS]; + + } scatter_aliasable; + + } aliasable; + + OffsetT tile_idx; // Shared tile index + LengthOffsetPair tile_inclusive; // Inclusive tile prefix + LengthOffsetPair tile_exclusive; // Exclusive tile prefix + }; + + // Alias wrapper allowing storage to be unioned + struct TempStorage : Uninitialized<_TempStorage> {}; + + + //--------------------------------------------------------------------- + // Per-thread fields + //--------------------------------------------------------------------- + + _TempStorage& temp_storage; ///< Reference to temp_storage + + WrappedInputIteratorT d_in; ///< Pointer to input sequence of data items + OffsetsOutputIteratorT d_offsets_out; ///< Input run offsets + LengthsOutputIteratorT d_lengths_out; ///< Output run lengths + + EqualityOpT equality_op; ///< T equality operator + ReduceBySegmentOpT scan_op; ///< Reduce-length-by-flag scan operator + OffsetT num_items; ///< Total number of input items + + + //--------------------------------------------------------------------- + // Constructor + //--------------------------------------------------------------------- + + // Constructor + __device__ __forceinline__ + AgentRle( + TempStorage &temp_storage, ///< [in] Reference to temp_storage + InputIteratorT d_in, ///< [in] Pointer to input sequence of data items + OffsetsOutputIteratorT d_offsets_out, ///< [out] Pointer to output sequence of run offsets + LengthsOutputIteratorT d_lengths_out, ///< [out] Pointer to output sequence of run lengths + EqualityOpT equality_op, ///< [in] T equality operator + OffsetT num_items) ///< [in] Total number of input items + : + temp_storage(temp_storage.Alias()), + d_in(d_in), + d_offsets_out(d_offsets_out), + d_lengths_out(d_lengths_out), + equality_op(equality_op), + scan_op(cub::Sum()), + num_items(num_items) + {} + + + //--------------------------------------------------------------------- + // Utility methods for initializing the selections + //--------------------------------------------------------------------- + + template + __device__ __forceinline__ void InitializeSelections( + OffsetT tile_offset, + OffsetT num_remaining, + T (&items)[ITEMS_PER_THREAD], + LengthOffsetPair (&lengths_and_num_runs)[ITEMS_PER_THREAD]) + { + bool head_flags[ITEMS_PER_THREAD]; + bool tail_flags[ITEMS_PER_THREAD]; + + OobInequalityOp inequality_op(num_remaining, equality_op); + + if (FIRST_TILE && LAST_TILE) + { + // First-and-last-tile always head-flags the first item and tail-flags the last item + + BlockDiscontinuityT(temp_storage.aliasable.scan_storage.discontinuity).FlagHeadsAndTails( + head_flags, tail_flags, items, inequality_op); + } + else if (FIRST_TILE) + { + // First-tile always head-flags the first item + + // Get the first item from the next tile + T tile_successor_item; + if (threadIdx.x == BLOCK_THREADS - 1) + tile_successor_item = d_in[tile_offset + TILE_ITEMS]; + + BlockDiscontinuityT(temp_storage.aliasable.scan_storage.discontinuity).FlagHeadsAndTails( + head_flags, tail_flags, tile_successor_item, items, inequality_op); + } + else if (LAST_TILE) + { + // Last-tile always flags the last item + + // Get the last item from the previous tile + T tile_predecessor_item; + if (threadIdx.x == 0) + tile_predecessor_item = d_in[tile_offset - 1]; + + BlockDiscontinuityT(temp_storage.aliasable.scan_storage.discontinuity).FlagHeadsAndTails( + head_flags, tile_predecessor_item, tail_flags, items, inequality_op); + } + else + { + // Get the first item from the next tile + T tile_successor_item; + if (threadIdx.x == BLOCK_THREADS - 1) + tile_successor_item = d_in[tile_offset + TILE_ITEMS]; + + // Get the last item from the previous tile + T tile_predecessor_item; + if (threadIdx.x == 0) + tile_predecessor_item = d_in[tile_offset - 1]; + + BlockDiscontinuityT(temp_storage.aliasable.scan_storage.discontinuity).FlagHeadsAndTails( + head_flags, tile_predecessor_item, tail_flags, tile_successor_item, items, inequality_op); + } + + // Zip counts and runs + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ++ITEM) + { + lengths_and_num_runs[ITEM].key = head_flags[ITEM] && (!tail_flags[ITEM]); + lengths_and_num_runs[ITEM].value = ((!head_flags[ITEM]) || (!tail_flags[ITEM])); + } + } + + //--------------------------------------------------------------------- + // Scan utility methods + //--------------------------------------------------------------------- + + /** + * Scan of allocations + */ + __device__ __forceinline__ void WarpScanAllocations( + LengthOffsetPair &tile_aggregate, + LengthOffsetPair &warp_aggregate, + LengthOffsetPair &warp_exclusive_in_tile, + LengthOffsetPair &thread_exclusive_in_warp, + LengthOffsetPair (&lengths_and_num_runs)[ITEMS_PER_THREAD]) + { + // Perform warpscans + unsigned int warp_id = ((WARPS == 1) ? 0 : threadIdx.x / WARP_THREADS); + int lane_id = LaneId(); + + LengthOffsetPair identity; + identity.key = 0; + identity.value = 0; + + LengthOffsetPair thread_inclusive; + LengthOffsetPair thread_aggregate = internal::ThreadReduce(lengths_and_num_runs, scan_op); + WarpScanPairs(temp_storage.aliasable.scan_storage.warp_scan[warp_id]).Scan( + thread_aggregate, + thread_inclusive, + thread_exclusive_in_warp, + identity, + scan_op); + + // Last lane in each warp shares its warp-aggregate + if (lane_id == WARP_THREADS - 1) + temp_storage.aliasable.scan_storage.warp_aggregates.Alias()[warp_id] = thread_inclusive; + + CTA_SYNC(); + + // Accumulate total selected and the warp-wide prefix + warp_exclusive_in_tile = identity; + warp_aggregate = temp_storage.aliasable.scan_storage.warp_aggregates.Alias()[warp_id]; + tile_aggregate = temp_storage.aliasable.scan_storage.warp_aggregates.Alias()[0]; + + #pragma unroll + for (int WARP = 1; WARP < WARPS; ++WARP) + { + if (warp_id == WARP) + warp_exclusive_in_tile = tile_aggregate; + + tile_aggregate = scan_op(tile_aggregate, temp_storage.aliasable.scan_storage.warp_aggregates.Alias()[WARP]); + } + } + + + //--------------------------------------------------------------------- + // Utility methods for scattering selections + //--------------------------------------------------------------------- + + /** + * Two-phase scatter, specialized for warp time-slicing + */ + template + __device__ __forceinline__ void ScatterTwoPhase( + OffsetT tile_num_runs_exclusive_in_global, + OffsetT warp_num_runs_aggregate, + OffsetT warp_num_runs_exclusive_in_tile, + OffsetT (&thread_num_runs_exclusive_in_warp)[ITEMS_PER_THREAD], + LengthOffsetPair (&lengths_and_offsets)[ITEMS_PER_THREAD], + Int2Type is_warp_time_slice) + { + unsigned int warp_id = ((WARPS == 1) ? 0 : threadIdx.x / WARP_THREADS); + int lane_id = LaneId(); + + // Locally compact items within the warp (first warp) + if (warp_id == 0) + { + WarpExchangePairs(temp_storage.aliasable.scatter_aliasable.exchange_pairs[0]).ScatterToStriped( + lengths_and_offsets, thread_num_runs_exclusive_in_warp); + } + + // Locally compact items within the warp (remaining warps) + #pragma unroll + for (int SLICE = 1; SLICE < WARPS; ++SLICE) + { + CTA_SYNC(); + + if (warp_id == SLICE) + { + WarpExchangePairs(temp_storage.aliasable.scatter_aliasable.exchange_pairs[0]).ScatterToStriped( + lengths_and_offsets, thread_num_runs_exclusive_in_warp); + } + } + + // Global scatter + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + { + if ((ITEM * WARP_THREADS) < warp_num_runs_aggregate - lane_id) + { + OffsetT item_offset = + tile_num_runs_exclusive_in_global + + warp_num_runs_exclusive_in_tile + + (ITEM * WARP_THREADS) + lane_id; + + // Scatter offset + d_offsets_out[item_offset] = lengths_and_offsets[ITEM].key; + + // Scatter length if not the first (global) length + if ((!FIRST_TILE) || (ITEM != 0) || (threadIdx.x > 0)) + { + d_lengths_out[item_offset - 1] = lengths_and_offsets[ITEM].value; + } + } + } + } + + + /** + * Two-phase scatter + */ + template + __device__ __forceinline__ void ScatterTwoPhase( + OffsetT tile_num_runs_exclusive_in_global, + OffsetT warp_num_runs_aggregate, + OffsetT warp_num_runs_exclusive_in_tile, + OffsetT (&thread_num_runs_exclusive_in_warp)[ITEMS_PER_THREAD], + LengthOffsetPair (&lengths_and_offsets)[ITEMS_PER_THREAD], + Int2Type is_warp_time_slice) + { + unsigned int warp_id = ((WARPS == 1) ? 0 : threadIdx.x / WARP_THREADS); + int lane_id = LaneId(); + + // Unzip + OffsetT run_offsets[ITEMS_PER_THREAD]; + LengthT run_lengths[ITEMS_PER_THREAD]; + + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + { + run_offsets[ITEM] = lengths_and_offsets[ITEM].key; + run_lengths[ITEM] = lengths_and_offsets[ITEM].value; + } + + WarpExchangeOffsets(temp_storage.aliasable.scatter_aliasable.exchange_offsets[warp_id]).ScatterToStriped( + run_offsets, thread_num_runs_exclusive_in_warp); + + WARP_SYNC(0xffffffff); + + WarpExchangeLengths(temp_storage.aliasable.scatter_aliasable.exchange_lengths[warp_id]).ScatterToStriped( + run_lengths, thread_num_runs_exclusive_in_warp); + + // Global scatter + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + { + if ((ITEM * WARP_THREADS) + lane_id < warp_num_runs_aggregate) + { + OffsetT item_offset = + tile_num_runs_exclusive_in_global + + warp_num_runs_exclusive_in_tile + + (ITEM * WARP_THREADS) + lane_id; + + // Scatter offset + d_offsets_out[item_offset] = run_offsets[ITEM]; + + // Scatter length if not the first (global) length + if ((!FIRST_TILE) || (ITEM != 0) || (threadIdx.x > 0)) + { + d_lengths_out[item_offset - 1] = run_lengths[ITEM]; + } + } + } + } + + + /** + * Direct scatter + */ + template + __device__ __forceinline__ void ScatterDirect( + OffsetT tile_num_runs_exclusive_in_global, + OffsetT warp_num_runs_aggregate, + OffsetT warp_num_runs_exclusive_in_tile, + OffsetT (&thread_num_runs_exclusive_in_warp)[ITEMS_PER_THREAD], + LengthOffsetPair (&lengths_and_offsets)[ITEMS_PER_THREAD]) + { + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ++ITEM) + { + if (thread_num_runs_exclusive_in_warp[ITEM] < warp_num_runs_aggregate) + { + OffsetT item_offset = + tile_num_runs_exclusive_in_global + + warp_num_runs_exclusive_in_tile + + thread_num_runs_exclusive_in_warp[ITEM]; + + // Scatter offset + d_offsets_out[item_offset] = lengths_and_offsets[ITEM].key; + + // Scatter length if not the first (global) length + if (item_offset >= 1) + { + d_lengths_out[item_offset - 1] = lengths_and_offsets[ITEM].value; + } + } + } + } + + + /** + * Scatter + */ + template + __device__ __forceinline__ void Scatter( + OffsetT tile_num_runs_aggregate, + OffsetT tile_num_runs_exclusive_in_global, + OffsetT warp_num_runs_aggregate, + OffsetT warp_num_runs_exclusive_in_tile, + OffsetT (&thread_num_runs_exclusive_in_warp)[ITEMS_PER_THREAD], + LengthOffsetPair (&lengths_and_offsets)[ITEMS_PER_THREAD]) + { + if ((ITEMS_PER_THREAD == 1) || (tile_num_runs_aggregate < BLOCK_THREADS)) + { + // Direct scatter if the warp has any items + if (warp_num_runs_aggregate) + { + ScatterDirect( + tile_num_runs_exclusive_in_global, + warp_num_runs_aggregate, + warp_num_runs_exclusive_in_tile, + thread_num_runs_exclusive_in_warp, + lengths_and_offsets); + } + } + else + { + // Scatter two phase + ScatterTwoPhase( + tile_num_runs_exclusive_in_global, + warp_num_runs_aggregate, + warp_num_runs_exclusive_in_tile, + thread_num_runs_exclusive_in_warp, + lengths_and_offsets, + Int2Type()); + } + } + + + + //--------------------------------------------------------------------- + // Cooperatively scan a device-wide sequence of tiles with other CTAs + //--------------------------------------------------------------------- + + /** + * Process a tile of input (dynamic chained scan) + */ + template < + bool LAST_TILE> + __device__ __forceinline__ LengthOffsetPair ConsumeTile( + OffsetT num_items, ///< Total number of global input items + OffsetT num_remaining, ///< Number of global input items remaining (including this tile) + int tile_idx, ///< Tile index + OffsetT tile_offset, ///< Tile offset + ScanTileStateT &tile_status) ///< Global list of tile status + { + if (tile_idx == 0) + { + // First tile + + // Load items + T items[ITEMS_PER_THREAD]; + if (LAST_TILE) + BlockLoadT(temp_storage.aliasable.load).Load(d_in + tile_offset, items, num_remaining, T()); + else + BlockLoadT(temp_storage.aliasable.load).Load(d_in + tile_offset, items); + + if (SYNC_AFTER_LOAD) + CTA_SYNC(); + + // Set flags + LengthOffsetPair lengths_and_num_runs[ITEMS_PER_THREAD]; + + InitializeSelections( + tile_offset, + num_remaining, + items, + lengths_and_num_runs); + + // Exclusive scan of lengths and runs + LengthOffsetPair tile_aggregate; + LengthOffsetPair warp_aggregate; + LengthOffsetPair warp_exclusive_in_tile; + LengthOffsetPair thread_exclusive_in_warp; + + WarpScanAllocations( + tile_aggregate, + warp_aggregate, + warp_exclusive_in_tile, + thread_exclusive_in_warp, + lengths_and_num_runs); + + // Update tile status if this is not the last tile + if (!LAST_TILE && (threadIdx.x == 0)) + tile_status.SetInclusive(0, tile_aggregate); + + // Update thread_exclusive_in_warp to fold in warp run-length + if (thread_exclusive_in_warp.key == 0) + thread_exclusive_in_warp.value += warp_exclusive_in_tile.value; + + LengthOffsetPair lengths_and_offsets[ITEMS_PER_THREAD]; + OffsetT thread_num_runs_exclusive_in_warp[ITEMS_PER_THREAD]; + LengthOffsetPair lengths_and_num_runs2[ITEMS_PER_THREAD]; + + // Downsweep scan through lengths_and_num_runs + internal::ThreadScanExclusive(lengths_and_num_runs, lengths_and_num_runs2, scan_op, thread_exclusive_in_warp); + + // Zip + + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + { + lengths_and_offsets[ITEM].value = lengths_and_num_runs2[ITEM].value; + lengths_and_offsets[ITEM].key = tile_offset + (threadIdx.x * ITEMS_PER_THREAD) + ITEM; + thread_num_runs_exclusive_in_warp[ITEM] = (lengths_and_num_runs[ITEM].key) ? + lengths_and_num_runs2[ITEM].key : // keep + WARP_THREADS * ITEMS_PER_THREAD; // discard + } + + OffsetT tile_num_runs_aggregate = tile_aggregate.key; + OffsetT tile_num_runs_exclusive_in_global = 0; + OffsetT warp_num_runs_aggregate = warp_aggregate.key; + OffsetT warp_num_runs_exclusive_in_tile = warp_exclusive_in_tile.key; + + // Scatter + Scatter( + tile_num_runs_aggregate, + tile_num_runs_exclusive_in_global, + warp_num_runs_aggregate, + warp_num_runs_exclusive_in_tile, + thread_num_runs_exclusive_in_warp, + lengths_and_offsets); + + // Return running total (inclusive of this tile) + return tile_aggregate; + } + else + { + // Not first tile + + // Load items + T items[ITEMS_PER_THREAD]; + if (LAST_TILE) + BlockLoadT(temp_storage.aliasable.load).Load(d_in + tile_offset, items, num_remaining, T()); + else + BlockLoadT(temp_storage.aliasable.load).Load(d_in + tile_offset, items); + + if (SYNC_AFTER_LOAD) + CTA_SYNC(); + + // Set flags + LengthOffsetPair lengths_and_num_runs[ITEMS_PER_THREAD]; + + InitializeSelections( + tile_offset, + num_remaining, + items, + lengths_and_num_runs); + + // Exclusive scan of lengths and runs + LengthOffsetPair tile_aggregate; + LengthOffsetPair warp_aggregate; + LengthOffsetPair warp_exclusive_in_tile; + LengthOffsetPair thread_exclusive_in_warp; + + WarpScanAllocations( + tile_aggregate, + warp_aggregate, + warp_exclusive_in_tile, + thread_exclusive_in_warp, + lengths_and_num_runs); + + // First warp computes tile prefix in lane 0 + TilePrefixCallbackOpT prefix_op(tile_status, temp_storage.aliasable.scan_storage.prefix, Sum(), tile_idx); + unsigned int warp_id = ((WARPS == 1) ? 0 : threadIdx.x / WARP_THREADS); + if (warp_id == 0) + { + prefix_op(tile_aggregate); + if (threadIdx.x == 0) + temp_storage.tile_exclusive = prefix_op.exclusive_prefix; + } + + CTA_SYNC(); + + LengthOffsetPair tile_exclusive_in_global = temp_storage.tile_exclusive; + + // Update thread_exclusive_in_warp to fold in warp and tile run-lengths + LengthOffsetPair thread_exclusive = scan_op(tile_exclusive_in_global, warp_exclusive_in_tile); + if (thread_exclusive_in_warp.key == 0) + thread_exclusive_in_warp.value += thread_exclusive.value; + + // Downsweep scan through lengths_and_num_runs + LengthOffsetPair lengths_and_num_runs2[ITEMS_PER_THREAD]; + LengthOffsetPair lengths_and_offsets[ITEMS_PER_THREAD]; + OffsetT thread_num_runs_exclusive_in_warp[ITEMS_PER_THREAD]; + + internal::ThreadScanExclusive(lengths_and_num_runs, lengths_and_num_runs2, scan_op, thread_exclusive_in_warp); + + // Zip + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + { + lengths_and_offsets[ITEM].value = lengths_and_num_runs2[ITEM].value; + lengths_and_offsets[ITEM].key = tile_offset + (threadIdx.x * ITEMS_PER_THREAD) + ITEM; + thread_num_runs_exclusive_in_warp[ITEM] = (lengths_and_num_runs[ITEM].key) ? + lengths_and_num_runs2[ITEM].key : // keep + WARP_THREADS * ITEMS_PER_THREAD; // discard + } + + OffsetT tile_num_runs_aggregate = tile_aggregate.key; + OffsetT tile_num_runs_exclusive_in_global = tile_exclusive_in_global.key; + OffsetT warp_num_runs_aggregate = warp_aggregate.key; + OffsetT warp_num_runs_exclusive_in_tile = warp_exclusive_in_tile.key; + + // Scatter + Scatter( + tile_num_runs_aggregate, + tile_num_runs_exclusive_in_global, + warp_num_runs_aggregate, + warp_num_runs_exclusive_in_tile, + thread_num_runs_exclusive_in_warp, + lengths_and_offsets); + + // Return running total (inclusive of this tile) + return prefix_op.inclusive_prefix; + } + } + + + /** + * Scan tiles of items as part of a dynamic chained scan + */ + template ///< Output iterator type for recording number of items selected + __device__ __forceinline__ void ConsumeRange( + int num_tiles, ///< Total number of input tiles + ScanTileStateT& tile_status, ///< Global list of tile status + NumRunsIteratorT d_num_runs_out) ///< Output pointer for total number of runs identified + { + // Blocks are launched in increasing order, so just assign one tile per block + int tile_idx = (blockIdx.x * gridDim.y) + blockIdx.y; // Current tile index + OffsetT tile_offset = tile_idx * TILE_ITEMS; // Global offset for the current tile + OffsetT num_remaining = num_items - tile_offset; // Remaining items (including this tile) + + if (tile_idx < num_tiles - 1) + { + // Not the last tile (full) + ConsumeTile(num_items, num_remaining, tile_idx, tile_offset, tile_status); + } + else if (num_remaining > 0) + { + // The last tile (possibly partially-full) + LengthOffsetPair running_total = ConsumeTile(num_items, num_remaining, tile_idx, tile_offset, tile_status); + + if (threadIdx.x == 0) + { + // Output the total number of items selected + *d_num_runs_out = running_total.key; + + // The inclusive prefix contains accumulated length reduction for the last run + if (running_total.key > 0) + d_lengths_out[running_total.key - 1] = running_total.value; + } + } + } +}; + + +CUB_NAMESPACE_END + diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_scan.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_scan.cuh new file mode 100644 index 0000000000000000000000000000000000000000..7a5eef11ae3014c2323fa75b5087afb16485e4fd --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_scan.cuh @@ -0,0 +1,587 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2022, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * @file cub::AgentScan implements a stateful abstraction of CUDA thread blocks + * for participating in device-wide prefix scan . + */ + +#pragma once + +#include + +#include +#include +#include +#include +#include +#include +#include + +CUB_NAMESPACE_BEGIN + +/****************************************************************************** + * Tuning policy types + ******************************************************************************/ + +/** + * @brief Parameterizable tuning policy type for AgentScan + * + * @tparam NOMINAL_BLOCK_THREADS_4B + * Threads per thread block + * + * @tparam NOMINAL_ITEMS_PER_THREAD_4B + * Items per thread (per tile of input) + * + * @tparam ComputeT + * Dominant compute type + * + * @tparam _LOAD_ALGORITHM + * The BlockLoad algorithm to use + * + * @tparam _LOAD_MODIFIER + * Cache load modifier for reading input elements + * + * @tparam _STORE_ALGORITHM + * The BlockStore algorithm to use + * + * @tparam _SCAN_ALGORITHM + * The BlockScan algorithm to use + * + * @tparam DelayConstructorT + * Implementation detail, do not specify directly, requirements on the + * content of this type are subject to breaking change. + */ +template , + typename DelayConstructorT = detail::default_delay_constructor_t> +struct AgentScanPolicy : ScalingType +{ + static const BlockLoadAlgorithm LOAD_ALGORITHM = _LOAD_ALGORITHM; + static const CacheLoadModifier LOAD_MODIFIER = _LOAD_MODIFIER; + static const BlockStoreAlgorithm STORE_ALGORITHM = _STORE_ALGORITHM; + static const BlockScanAlgorithm SCAN_ALGORITHM = _SCAN_ALGORITHM; + + struct detail + { + using delay_constructor_t = DelayConstructorT; + }; +}; + +/****************************************************************************** + * Thread block abstractions + ******************************************************************************/ + +/** + * @brief AgentScan implements a stateful abstraction of CUDA thread blocks for + * participating in device-wide prefix scan. + * @tparam AgentScanPolicyT + * Parameterized AgentScanPolicyT tuning policy type + * + * @tparam InputIteratorT + * Random-access input iterator type + * + * @tparam OutputIteratorT + * Random-access output iterator type + * + * @tparam ScanOpT + * Scan functor type + * + * @tparam InitValueT + * The init_value element for ScanOpT type (cub::NullType for inclusive scan) + * + * @tparam OffsetT + * Signed integer type for global offsets + * + */ +template +struct AgentScan +{ + //--------------------------------------------------------------------- + // Types and constants + //--------------------------------------------------------------------- + + // The input value type + using InputT = cub::detail::value_t; + + // Tile status descriptor interface type + using ScanTileStateT = ScanTileState; + + // Input iterator wrapper type (for applying cache modifier) + // Wrap the native input pointer with CacheModifiedInputIterator + // or directly use the supplied input iterator type + using WrappedInputIteratorT = cub::detail::conditional_t< + std::is_pointer::value, + CacheModifiedInputIterator, + InputIteratorT>; + + // Constants + enum + { + // Inclusive scan if no init_value type is provided + IS_INCLUSIVE = std::is_same::value, + BLOCK_THREADS = AgentScanPolicyT::BLOCK_THREADS, + ITEMS_PER_THREAD = AgentScanPolicyT::ITEMS_PER_THREAD, + TILE_ITEMS = BLOCK_THREADS * ITEMS_PER_THREAD, + }; + + // Parameterized BlockLoad type + typedef BlockLoad + BlockLoadT; + + // Parameterized BlockStore type + typedef BlockStore + BlockStoreT; + + // Parameterized BlockScan type + typedef BlockScan + BlockScanT; + + // Callback type for obtaining tile prefix during block scan + using DelayConstructorT = typename AgentScanPolicyT::detail::delay_constructor_t; + using TilePrefixCallbackOpT = + TilePrefixCallbackOp; + + // Stateful BlockScan prefix callback type for managing a running total while + // scanning consecutive tiles + typedef BlockScanRunningPrefixOp RunningPrefixCallbackOp; + + // Shared memory type for this thread block + union _TempStorage + { + // Smem needed for tile loading + typename BlockLoadT::TempStorage load; + + // Smem needed for tile storing + typename BlockStoreT::TempStorage store; + + struct ScanStorage + { + // Smem needed for cooperative prefix callback + typename TilePrefixCallbackOpT::TempStorage prefix; + + // Smem needed for tile scanning + typename BlockScanT::TempStorage scan; + } scan_storage; + }; + + // Alias wrapper allowing storage to be unioned + struct TempStorage : Uninitialized<_TempStorage> + {}; + + //--------------------------------------------------------------------- + // Per-thread fields + //--------------------------------------------------------------------- + + _TempStorage &temp_storage; ///< Reference to temp_storage + WrappedInputIteratorT d_in; ///< Input data + OutputIteratorT d_out; ///< Output data + ScanOpT scan_op; ///< Binary scan operator + InitValueT init_value; ///< The init_value element for ScanOpT + + //--------------------------------------------------------------------- + // Block scan utility methods + //--------------------------------------------------------------------- + + /** + * Exclusive scan specialization (first tile) + */ + __device__ __forceinline__ void ScanTile(AccumT (&items)[ITEMS_PER_THREAD], + AccumT init_value, + ScanOpT scan_op, + AccumT &block_aggregate, + Int2Type /*is_inclusive*/) + { + BlockScanT(temp_storage.scan_storage.scan) + .ExclusiveScan(items, items, init_value, scan_op, block_aggregate); + block_aggregate = scan_op(init_value, block_aggregate); + } + + /** + * Inclusive scan specialization (first tile) + */ + __device__ __forceinline__ void ScanTile(AccumT (&items)[ITEMS_PER_THREAD], + InitValueT /*init_value*/, + ScanOpT scan_op, + AccumT &block_aggregate, + Int2Type /*is_inclusive*/) + { + BlockScanT(temp_storage.scan_storage.scan) + .InclusiveScan(items, items, scan_op, block_aggregate); + } + + /** + * Exclusive scan specialization (subsequent tiles) + */ + template + __device__ __forceinline__ void ScanTile(AccumT (&items)[ITEMS_PER_THREAD], + ScanOpT scan_op, + PrefixCallback &prefix_op, + Int2Type /*is_inclusive*/) + { + BlockScanT(temp_storage.scan_storage.scan) + .ExclusiveScan(items, items, scan_op, prefix_op); + } + + /** + * Inclusive scan specialization (subsequent tiles) + */ + template + __device__ __forceinline__ void ScanTile(AccumT (&items)[ITEMS_PER_THREAD], + ScanOpT scan_op, + PrefixCallback &prefix_op, + Int2Type /*is_inclusive*/) + { + BlockScanT(temp_storage.scan_storage.scan) + .InclusiveScan(items, items, scan_op, prefix_op); + } + + //--------------------------------------------------------------------- + // Constructor + //--------------------------------------------------------------------- + + /** + * @param temp_storage + * Reference to temp_storage + * + * @param d_in + * Input data + * + * @param d_out + * Output data + * + * @param scan_op + * Binary scan operator + * + * @param init_value + * Initial value to seed the exclusive scan + */ + __device__ __forceinline__ AgentScan(TempStorage &temp_storage, + InputIteratorT d_in, + OutputIteratorT d_out, + ScanOpT scan_op, + InitValueT init_value) + : temp_storage(temp_storage.Alias()) + , d_in(d_in) + , d_out(d_out) + , scan_op(scan_op) + , init_value(init_value) + {} + + //--------------------------------------------------------------------- + // Cooperatively scan a device-wide sequence of tiles with other CTAs + //--------------------------------------------------------------------- + + /** + * Process a tile of input (dynamic chained scan) + * @tparam IS_LAST_TILE + * Whether the current tile is the last tile + * + * @param num_remaining + * Number of global input items remaining (including this tile) + * + * @param tile_idx + * Tile index + * + * @param tile_offset + * Tile offset + * + * @param tile_state + * Global tile state descriptor + */ + template + __device__ __forceinline__ void ConsumeTile(OffsetT num_remaining, + int tile_idx, + OffsetT tile_offset, + ScanTileStateT &tile_state) + { + // Load items + AccumT items[ITEMS_PER_THREAD]; + + if (IS_LAST_TILE) + { + // Fill last element with the first element because collectives are + // not suffix guarded. + BlockLoadT(temp_storage.load) + .Load(d_in + tile_offset, items, num_remaining, *(d_in + tile_offset)); + } + else + { + BlockLoadT(temp_storage.load).Load(d_in + tile_offset, items); + } + + CTA_SYNC(); + + // Perform tile scan + if (tile_idx == 0) + { + // Scan first tile + AccumT block_aggregate; + ScanTile(items, + init_value, + scan_op, + block_aggregate, + Int2Type()); + + if ((!IS_LAST_TILE) && (threadIdx.x == 0)) + { + tile_state.SetInclusive(0, block_aggregate); + } + } + else + { + // Scan non-first tile + TilePrefixCallbackOpT prefix_op(tile_state, + temp_storage.scan_storage.prefix, + scan_op, + tile_idx); + ScanTile(items, scan_op, prefix_op, Int2Type()); + } + + CTA_SYNC(); + + // Store items + if (IS_LAST_TILE) + { + BlockStoreT(temp_storage.store) + .Store(d_out + tile_offset, items, num_remaining); + } + else + { + BlockStoreT(temp_storage.store).Store(d_out + tile_offset, items); + } + } + + /** + * @brief Scan tiles of items as part of a dynamic chained scan + * + * @param num_items + * Total number of input items + * + * @param tile_state + * Global tile state descriptor + * + * @param start_tile + * The starting tile for the current grid + */ + __device__ __forceinline__ void ConsumeRange(OffsetT num_items, + ScanTileStateT &tile_state, + int start_tile) + { + // Blocks are launched in increasing order, so just assign one tile per + // block + + // Current tile index + int tile_idx = start_tile + blockIdx.x; + + // Global offset for the current tile + OffsetT tile_offset = OffsetT(TILE_ITEMS) * tile_idx; + + // Remaining items (including this tile) + OffsetT num_remaining = num_items - tile_offset; + + if (num_remaining > TILE_ITEMS) + { + // Not last tile + ConsumeTile(num_remaining, tile_idx, tile_offset, tile_state); + } + else if (num_remaining > 0) + { + // Last tile + ConsumeTile(num_remaining, tile_idx, tile_offset, tile_state); + } + } + + //--------------------------------------------------------------------------- + // Scan an sequence of consecutive tiles (independent of other thread blocks) + //--------------------------------------------------------------------------- + + /** + * @brief Process a tile of input + * + * @param tile_offset + * Tile offset + * + * @param prefix_op + * Running prefix operator + * + * @param valid_items + * Number of valid items in the tile + */ + template + __device__ __forceinline__ void ConsumeTile(OffsetT tile_offset, + RunningPrefixCallbackOp &prefix_op, + int valid_items = TILE_ITEMS) + { + // Load items + AccumT items[ITEMS_PER_THREAD]; + + if (IS_LAST_TILE) + { + // Fill last element with the first element because collectives are + // not suffix guarded. + BlockLoadT(temp_storage.load) + .Load(d_in + tile_offset, items, valid_items, *(d_in + tile_offset)); + } + else + { + BlockLoadT(temp_storage.load).Load(d_in + tile_offset, items); + } + + CTA_SYNC(); + + // Block scan + if (IS_FIRST_TILE) + { + AccumT block_aggregate; + ScanTile(items, + init_value, + scan_op, + block_aggregate, + Int2Type()); + prefix_op.running_total = block_aggregate; + } + else + { + ScanTile(items, scan_op, prefix_op, Int2Type()); + } + + CTA_SYNC(); + + // Store items + if (IS_LAST_TILE) + { + BlockStoreT(temp_storage.store) + .Store(d_out + tile_offset, items, valid_items); + } + else + { + BlockStoreT(temp_storage.store).Store(d_out + tile_offset, items); + } + } + + /** + * @brief Scan a consecutive share of input tiles + * + * @param[in] range_offset + * Threadblock begin offset (inclusive) + * + * @param[in] range_end + * Threadblock end offset (exclusive) + */ + __device__ __forceinline__ void ConsumeRange(OffsetT range_offset, + OffsetT range_end) + { + BlockScanRunningPrefixOp prefix_op(scan_op); + + if (range_offset + TILE_ITEMS <= range_end) + { + // Consume first tile of input (full) + ConsumeTile(range_offset, prefix_op); + range_offset += TILE_ITEMS; + + // Consume subsequent full tiles of input + while (range_offset + TILE_ITEMS <= range_end) + { + ConsumeTile(range_offset, prefix_op); + range_offset += TILE_ITEMS; + } + + // Consume a partially-full tile + if (range_offset < range_end) + { + int valid_items = range_end - range_offset; + ConsumeTile(range_offset, prefix_op, valid_items); + } + } + else + { + // Consume the first tile of input (partially-full) + int valid_items = range_end - range_offset; + ConsumeTile(range_offset, prefix_op, valid_items); + } + } + + /** + * @brief Scan a consecutive share of input tiles, seeded with the + * specified prefix value + * @param[in] range_offset + * Threadblock begin offset (inclusive) + * + * @param[in] range_end + * Threadblock end offset (exclusive) + * + * @param[in] prefix + * The prefix to apply to the scan segment + */ + __device__ __forceinline__ void ConsumeRange(OffsetT range_offset, + OffsetT range_end, + AccumT prefix) + { + BlockScanRunningPrefixOp prefix_op(prefix, scan_op); + + // Consume full tiles of input + while (range_offset + TILE_ITEMS <= range_end) + { + ConsumeTile(range_offset, prefix_op); + range_offset += TILE_ITEMS; + } + + // Consume a partially-full tile + if (range_offset < range_end) + { + int valid_items = range_end - range_offset; + ConsumeTile(range_offset, prefix_op, valid_items); + } + } +}; + +CUB_NAMESPACE_END + diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_scan_by_key.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_scan_by_key.cuh new file mode 100644 index 0000000000000000000000000000000000000000..dffe38f86489e55eb5330fb0cfdb5e06aa1f44aa --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_scan_by_key.cuh @@ -0,0 +1,515 @@ +/****************************************************************************** + * Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * @file AgentScanByKey implements a stateful abstraction of CUDA thread blocks + * for participating in device-wide prefix scan by key. + */ + +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +CUB_NAMESPACE_BEGIN + +/****************************************************************************** + * Tuning policy types + ******************************************************************************/ + +/** + * Parameterizable tuning policy type for AgentScanByKey + * + * @tparam DelayConstructorT + * Implementation detail, do not specify directly, requirements on the + * content of this type are subject to breaking change. + */ +template > +struct AgentScanByKeyPolicy +{ + static constexpr int BLOCK_THREADS = _BLOCK_THREADS; + static constexpr int ITEMS_PER_THREAD = _ITEMS_PER_THREAD; + + static constexpr BlockLoadAlgorithm LOAD_ALGORITHM = _LOAD_ALGORITHM; + static constexpr CacheLoadModifier LOAD_MODIFIER = _LOAD_MODIFIER; + static constexpr BlockScanAlgorithm SCAN_ALGORITHM = _SCAN_ALGORITHM; + static constexpr BlockStoreAlgorithm STORE_ALGORITHM = _STORE_ALGORITHM; + + struct detail + { + using delay_constructor_t = DelayConstructorT; + }; +}; + +/****************************************************************************** + * Thread block abstractions + ******************************************************************************/ + +/** + * @brief AgentScanByKey implements a stateful abstraction of CUDA thread + * blocks for participating in device-wide prefix scan by key. + * + * @tparam AgentScanByKeyPolicyT + * Parameterized AgentScanPolicyT tuning policy type + * + * @tparam KeysInputIteratorT + * Random-access input iterator type + * + * @tparam ValuesInputIteratorT + * Random-access input iterator type + * + * @tparam ValuesOutputIteratorT + * Random-access output iterator type + * + * @tparam EqualityOp + * Equality functor type + * + * @tparam ScanOpT + * Scan functor type + * + * @tparam InitValueT + * The init_value element for ScanOpT type (cub::NullType for inclusive scan) + * + * @tparam OffsetT + * Signed integer type for global offsets + * + */ +template +struct AgentScanByKey +{ + //--------------------------------------------------------------------- + // Types and constants + //--------------------------------------------------------------------- + + using KeyT = cub::detail::value_t; + using InputT = cub::detail::value_t; + using SizeValuePairT = KeyValuePair; + using KeyValuePairT = KeyValuePair; + using ReduceBySegmentOpT = ReduceBySegmentOp; + + using ScanTileStateT = ReduceByKeyScanTileState; + + // Constants + // Inclusive scan if no init_value type is provided + static constexpr int IS_INCLUSIVE = std::is_same::value; + static constexpr int BLOCK_THREADS = AgentScanByKeyPolicyT::BLOCK_THREADS; + static constexpr int ITEMS_PER_THREAD = + AgentScanByKeyPolicyT::ITEMS_PER_THREAD; + static constexpr int ITEMS_PER_TILE = BLOCK_THREADS * ITEMS_PER_THREAD; + + using WrappedKeysInputIteratorT = cub::detail::conditional_t< + std::is_pointer::value, + CacheModifiedInputIterator, + KeysInputIteratorT>; + + using WrappedValuesInputIteratorT = cub::detail::conditional_t< + std::is_pointer::value, + CacheModifiedInputIterator, + ValuesInputIteratorT>; + + using BlockLoadKeysT = BlockLoad; + + using BlockLoadValuesT = BlockLoad; + + using BlockStoreValuesT = BlockStore; + + using BlockDiscontinuityKeysT = BlockDiscontinuity; + + using DelayConstructorT = typename AgentScanByKeyPolicyT::detail::delay_constructor_t; + using TilePrefixCallbackT = + TilePrefixCallbackOp; + + using BlockScanT = BlockScan; + + union TempStorage_ + { + struct ScanStorage + { + typename BlockScanT::TempStorage scan; + typename TilePrefixCallbackT::TempStorage prefix; + typename BlockDiscontinuityKeysT::TempStorage discontinuity; + } scan_storage; + + typename BlockLoadKeysT::TempStorage load_keys; + typename BlockLoadValuesT::TempStorage load_values; + typename BlockStoreValuesT::TempStorage store_values; + }; + + struct TempStorage : cub::Uninitialized + {}; + + //--------------------------------------------------------------------- + // Per-thread fields + //--------------------------------------------------------------------- + + TempStorage_ &storage; + WrappedKeysInputIteratorT d_keys_in; + KeyT *d_keys_prev_in; + WrappedValuesInputIteratorT d_values_in; + ValuesOutputIteratorT d_values_out; + InequalityWrapper inequality_op; + ScanOpT scan_op; + ReduceBySegmentOpT pair_scan_op; + InitValueT init_value; + + //--------------------------------------------------------------------- + // Block scan utility methods (first tile) + //--------------------------------------------------------------------- + + // Exclusive scan specialization + __device__ __forceinline__ void + ScanTile(SizeValuePairT (&scan_items)[ITEMS_PER_THREAD], + SizeValuePairT &tile_aggregate, + Int2Type /* is_inclusive */) + { + BlockScanT(storage.scan_storage.scan) + .ExclusiveScan(scan_items, scan_items, pair_scan_op, tile_aggregate); + } + + // Inclusive scan specialization + __device__ __forceinline__ void + ScanTile(SizeValuePairT (&scan_items)[ITEMS_PER_THREAD], + SizeValuePairT &tile_aggregate, + Int2Type /* is_inclusive */) + { + BlockScanT(storage.scan_storage.scan) + .InclusiveScan(scan_items, scan_items, pair_scan_op, tile_aggregate); + } + + //--------------------------------------------------------------------- + // Block scan utility methods (subsequent tiles) + //--------------------------------------------------------------------- + + // Exclusive scan specialization (with prefix from predecessors) + __device__ __forceinline__ void + ScanTile(SizeValuePairT (&scan_items)[ITEMS_PER_THREAD], + SizeValuePairT &tile_aggregate, + TilePrefixCallbackT &prefix_op, + Int2Type /* is_incclusive */) + { + BlockScanT(storage.scan_storage.scan) + .ExclusiveScan(scan_items, scan_items, pair_scan_op, prefix_op); + tile_aggregate = prefix_op.GetBlockAggregate(); + } + + // Inclusive scan specialization (with prefix from predecessors) + __device__ __forceinline__ void + ScanTile(SizeValuePairT (&scan_items)[ITEMS_PER_THREAD], + SizeValuePairT &tile_aggregate, + TilePrefixCallbackT &prefix_op, + Int2Type /* is_inclusive */) + { + BlockScanT(storage.scan_storage.scan) + .InclusiveScan(scan_items, scan_items, pair_scan_op, prefix_op); + tile_aggregate = prefix_op.GetBlockAggregate(); + } + + //--------------------------------------------------------------------- + // Zip utility methods + //--------------------------------------------------------------------- + + template + __device__ __forceinline__ void + ZipValuesAndFlags(OffsetT num_remaining, + AccumT (&values)[ITEMS_PER_THREAD], + OffsetT (&segment_flags)[ITEMS_PER_THREAD], + SizeValuePairT (&scan_items)[ITEMS_PER_THREAD]) + { +// Zip values and segment_flags +#pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ++ITEM) + { + // Set segment_flags for first out-of-bounds item, zero for others + if (IS_LAST_TILE && + OffsetT(threadIdx.x * ITEMS_PER_THREAD) + ITEM == num_remaining) + { + segment_flags[ITEM] = 1; + } + + scan_items[ITEM].value = values[ITEM]; + scan_items[ITEM].key = segment_flags[ITEM]; + } + } + + __device__ __forceinline__ void + UnzipValues(AccumT (&values)[ITEMS_PER_THREAD], + SizeValuePairT (&scan_items)[ITEMS_PER_THREAD]) + { +// Zip values and segment_flags +#pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ++ITEM) + { + values[ITEM] = scan_items[ITEM].value; + } + } + + template ::value, + typename std::enable_if::type = 0> + __device__ __forceinline__ void + AddInitToScan(AccumT (&items)[ITEMS_PER_THREAD], + OffsetT (&flags)[ITEMS_PER_THREAD]) + { +#pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ++ITEM) + { + items[ITEM] = flags[ITEM] ? init_value : scan_op(init_value, items[ITEM]); + } + } + + template ::value, + typename std::enable_if::type = 0> + __device__ __forceinline__ void + AddInitToScan(AccumT (&/*items*/)[ITEMS_PER_THREAD], + OffsetT (&/*flags*/)[ITEMS_PER_THREAD]) + {} + + //--------------------------------------------------------------------- + // Cooperatively scan a device-wide sequence of tiles with other CTAs + //--------------------------------------------------------------------- + + // Process a tile of input (dynamic chained scan) + // + template + __device__ __forceinline__ void ConsumeTile(OffsetT /*num_items*/, + OffsetT num_remaining, + int tile_idx, + OffsetT tile_base, + ScanTileStateT &tile_state) + { + // Load items + KeyT keys[ITEMS_PER_THREAD]; + AccumT values[ITEMS_PER_THREAD]; + OffsetT segment_flags[ITEMS_PER_THREAD]; + SizeValuePairT scan_items[ITEMS_PER_THREAD]; + + if (IS_LAST_TILE) + { + // Fill last element with the first element + // because collectives are not suffix guarded + BlockLoadKeysT(storage.load_keys) + .Load(d_keys_in + tile_base, + keys, + num_remaining, + *(d_keys_in + tile_base)); + } + else + { + BlockLoadKeysT(storage.load_keys).Load(d_keys_in + tile_base, keys); + } + + CTA_SYNC(); + + if (IS_LAST_TILE) + { + // Fill last element with the first element + // because collectives are not suffix guarded + BlockLoadValuesT(storage.load_values) + .Load(d_values_in + tile_base, + values, + num_remaining, + *(d_values_in + tile_base)); + } + else + { + BlockLoadValuesT(storage.load_values) + .Load(d_values_in + tile_base, values); + } + + CTA_SYNC(); + + // first tile + if (tile_idx == 0) + { + BlockDiscontinuityKeysT(storage.scan_storage.discontinuity) + .FlagHeads(segment_flags, keys, inequality_op); + + // Zip values and segment_flags + ZipValuesAndFlags(num_remaining, + values, + segment_flags, + scan_items); + + // Exclusive scan of values and segment_flags + SizeValuePairT tile_aggregate; + ScanTile(scan_items, tile_aggregate, Int2Type()); + + if (threadIdx.x == 0) + { + if (!IS_LAST_TILE) + { + tile_state.SetInclusive(0, tile_aggregate); + } + + scan_items[0].key = 0; + } + } + else + { + KeyT tile_pred_key = (threadIdx.x == 0) ? d_keys_prev_in[tile_idx] + : KeyT(); + + BlockDiscontinuityKeysT(storage.scan_storage.discontinuity) + .FlagHeads(segment_flags, keys, inequality_op, tile_pred_key); + + // Zip values and segment_flags + ZipValuesAndFlags(num_remaining, + values, + segment_flags, + scan_items); + + SizeValuePairT tile_aggregate; + TilePrefixCallbackT prefix_op(tile_state, + storage.scan_storage.prefix, + pair_scan_op, + tile_idx); + ScanTile(scan_items, tile_aggregate, prefix_op, Int2Type()); + } + + CTA_SYNC(); + + UnzipValues(values, scan_items); + + AddInitToScan(values, segment_flags); + + // Store items + if (IS_LAST_TILE) + { + BlockStoreValuesT(storage.store_values) + .Store(d_values_out + tile_base, values, num_remaining); + } + else + { + BlockStoreValuesT(storage.store_values) + .Store(d_values_out + tile_base, values); + } + } + + //--------------------------------------------------------------------- + // Constructor + //--------------------------------------------------------------------- + + // Dequeue and scan tiles of items as part of a dynamic chained scan + // with Init functor + __device__ __forceinline__ AgentScanByKey(TempStorage &storage, + KeysInputIteratorT d_keys_in, + KeyT *d_keys_prev_in, + ValuesInputIteratorT d_values_in, + ValuesOutputIteratorT d_values_out, + EqualityOp equality_op, + ScanOpT scan_op, + InitValueT init_value) + : storage(storage.Alias()) + , d_keys_in(d_keys_in) + , d_keys_prev_in(d_keys_prev_in) + , d_values_in(d_values_in) + , d_values_out(d_values_out) + , inequality_op(equality_op) + , scan_op(scan_op) + , pair_scan_op(scan_op) + , init_value(init_value) + {} + + /** + * Scan tiles of items as part of a dynamic chained scan + * + * @param num_items + * Total number of input items + * + * @param tile_state + * Global tile state descriptor + * + * start_tile + * The starting tile for the current grid + */ + __device__ __forceinline__ void ConsumeRange(OffsetT num_items, + ScanTileStateT &tile_state, + int start_tile) + { + int tile_idx = blockIdx.x; + OffsetT tile_base = OffsetT(ITEMS_PER_TILE) * tile_idx; + OffsetT num_remaining = num_items - tile_base; + + if (num_remaining > ITEMS_PER_TILE) + { + // Not the last tile (full) + ConsumeTile(num_items, + num_remaining, + tile_idx, + tile_base, + tile_state); + } + else if (num_remaining > 0) + { + // The last tile (possibly partially-full) + ConsumeTile(num_items, + num_remaining, + tile_idx, + tile_base, + tile_state); + } + } +}; + +CUB_NAMESPACE_END + diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_segment_fixup.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_segment_fixup.cuh new file mode 100644 index 0000000000000000000000000000000000000000..bd2837ce06bb7aeef00e3ef8afd6ed36ce58a215 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_segment_fixup.cuh @@ -0,0 +1,372 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * cub::AgentSegmentFixup implements a stateful abstraction of CUDA thread blocks for participating in device-wide reduce-value-by-key. + */ + +#pragma once + +#include + +#include "single_pass_scan_operators.cuh" +#include "../block/block_load.cuh" +#include "../block/block_store.cuh" +#include "../block/block_scan.cuh" +#include "../block/block_discontinuity.cuh" +#include "../config.cuh" +#include "../iterator/cache_modified_input_iterator.cuh" +#include "../iterator/constant_input_iterator.cuh" + +CUB_NAMESPACE_BEGIN + + +/****************************************************************************** + * Tuning policy types + ******************************************************************************/ + +/** + * Parameterizable tuning policy type for AgentSegmentFixup + */ +template < + int _BLOCK_THREADS, ///< Threads per thread block + int _ITEMS_PER_THREAD, ///< Items per thread (per tile of input) + BlockLoadAlgorithm _LOAD_ALGORITHM, ///< The BlockLoad algorithm to use + CacheLoadModifier _LOAD_MODIFIER, ///< Cache load modifier for reading input elements + BlockScanAlgorithm _SCAN_ALGORITHM> ///< The BlockScan algorithm to use +struct AgentSegmentFixupPolicy +{ + enum + { + BLOCK_THREADS = _BLOCK_THREADS, ///< Threads per thread block + ITEMS_PER_THREAD = _ITEMS_PER_THREAD, ///< Items per thread (per tile of input) + }; + + static const BlockLoadAlgorithm LOAD_ALGORITHM = _LOAD_ALGORITHM; ///< The BlockLoad algorithm to use + static const CacheLoadModifier LOAD_MODIFIER = _LOAD_MODIFIER; ///< Cache load modifier for reading input elements + static const BlockScanAlgorithm SCAN_ALGORITHM = _SCAN_ALGORITHM; ///< The BlockScan algorithm to use +}; + + +/****************************************************************************** + * Thread block abstractions + ******************************************************************************/ + +/** + * \brief AgentSegmentFixup implements a stateful abstraction of CUDA thread blocks for participating in device-wide reduce-value-by-key + */ +template < + typename AgentSegmentFixupPolicyT, ///< Parameterized AgentSegmentFixupPolicy tuning policy type + typename PairsInputIteratorT, ///< Random-access input iterator type for keys + typename AggregatesOutputIteratorT, ///< Random-access output iterator type for values + typename EqualityOpT, ///< KeyT equality operator type + typename ReductionOpT, ///< ValueT reduction operator type + typename OffsetT> ///< Signed integer type for global offsets +struct AgentSegmentFixup +{ + //--------------------------------------------------------------------- + // Types and constants + //--------------------------------------------------------------------- + + // Data type of key-value input iterator + using KeyValuePairT = cub::detail::value_t; + + // Value type + using ValueT = typename KeyValuePairT::Value; + + // Tile status descriptor interface type + using ScanTileStateT = ReduceByKeyScanTileState; + + // Constants + enum + { + BLOCK_THREADS = AgentSegmentFixupPolicyT::BLOCK_THREADS, + ITEMS_PER_THREAD = AgentSegmentFixupPolicyT::ITEMS_PER_THREAD, + TILE_ITEMS = BLOCK_THREADS * ITEMS_PER_THREAD, + + // Whether or not do fixup using RLE + global atomics + USE_ATOMIC_FIXUP = (std::is_same::value || + std::is_same::value || + std::is_same::value || + std::is_same::value), + + // Whether or not the scan operation has a zero-valued identity value + // (true if we're performing addition on a primitive type) + HAS_IDENTITY_ZERO = (std::is_same::value) && + (Traits::PRIMITIVE), + }; + + // Cache-modified Input iterator wrapper type (for applying cache modifier) for keys + // Wrap the native input pointer with CacheModifiedValuesInputIterator + // or directly use the supplied input iterator type + using WrappedPairsInputIteratorT = cub::detail::conditional_t< + std::is_pointer::value, + CacheModifiedInputIterator, + PairsInputIteratorT>; + + // Cache-modified Input iterator wrapper type (for applying cache modifier) for fixup values + // Wrap the native input pointer with CacheModifiedValuesInputIterator + // or directly use the supplied input iterator type + using WrappedFixupInputIteratorT = cub::detail::conditional_t< + std::is_pointer::value, + CacheModifiedInputIterator, + AggregatesOutputIteratorT>; + + // Reduce-value-by-segment scan operator + using ReduceBySegmentOpT = ReduceByKeyOp; + + // Parameterized BlockLoad type for pairs + using BlockLoadPairs = BlockLoad; + + // Parameterized BlockScan type + using BlockScanT = BlockScan; + + // Callback type for obtaining tile prefix during block scan + using TilePrefixCallbackOpT = + TilePrefixCallbackOp; + + // Shared memory type for this thread block + union _TempStorage + { + struct ScanStorage + { + typename BlockScanT::TempStorage scan; // Smem needed for tile scanning + typename TilePrefixCallbackOpT::TempStorage prefix; // Smem needed for cooperative prefix callback + } scan_storage; + + // Smem needed for loading keys + typename BlockLoadPairs::TempStorage load_pairs; + }; + + // Alias wrapper allowing storage to be unioned + struct TempStorage : Uninitialized<_TempStorage> {}; + + + //--------------------------------------------------------------------- + // Per-thread fields + //--------------------------------------------------------------------- + + _TempStorage& temp_storage; ///< Reference to temp_storage + WrappedPairsInputIteratorT d_pairs_in; ///< Input keys + AggregatesOutputIteratorT d_aggregates_out; ///< Output value aggregates + WrappedFixupInputIteratorT d_fixup_in; ///< Fixup input values + InequalityWrapper inequality_op; ///< KeyT inequality operator + ReductionOpT reduction_op; ///< Reduction operator + ReduceBySegmentOpT scan_op; ///< Reduce-by-segment scan operator + + + //--------------------------------------------------------------------- + // Constructor + //--------------------------------------------------------------------- + + // Constructor + __device__ __forceinline__ + AgentSegmentFixup( + TempStorage& temp_storage, ///< Reference to temp_storage + PairsInputIteratorT d_pairs_in, ///< Input keys + AggregatesOutputIteratorT d_aggregates_out, ///< Output value aggregates + EqualityOpT equality_op, ///< KeyT equality operator + ReductionOpT reduction_op) ///< ValueT reduction operator + : + temp_storage(temp_storage.Alias()), + d_pairs_in(d_pairs_in), + d_aggregates_out(d_aggregates_out), + d_fixup_in(d_aggregates_out), + inequality_op(equality_op), + reduction_op(reduction_op), + scan_op(reduction_op) + {} + + + //--------------------------------------------------------------------- + // Cooperatively scan a device-wide sequence of tiles with other CTAs + //--------------------------------------------------------------------- + + + /** + * Process input tile. Specialized for atomic-fixup + */ + template + __device__ __forceinline__ void ConsumeTile( + OffsetT num_remaining, ///< Number of global input items remaining (including this tile) + int tile_idx, ///< Tile index + OffsetT tile_offset, ///< Tile offset + ScanTileStateT& tile_state, ///< Global tile state descriptor + Int2Type use_atomic_fixup) ///< Marker whether to use atomicAdd (instead of reduce-by-key) + { + KeyValuePairT pairs[ITEMS_PER_THREAD]; + + // Load pairs + KeyValuePairT oob_pair; + oob_pair.key = -1; + + if (IS_LAST_TILE) + BlockLoadPairs(temp_storage.load_pairs).Load(d_pairs_in + tile_offset, pairs, num_remaining, oob_pair); + else + BlockLoadPairs(temp_storage.load_pairs).Load(d_pairs_in + tile_offset, pairs); + + // RLE + #pragma unroll + for (int ITEM = 1; ITEM < ITEMS_PER_THREAD; ++ITEM) + { + ValueT* d_scatter = d_aggregates_out + pairs[ITEM - 1].key; + if (pairs[ITEM].key != pairs[ITEM - 1].key) + atomicAdd(d_scatter, pairs[ITEM - 1].value); + else + pairs[ITEM].value = reduction_op(pairs[ITEM - 1].value, pairs[ITEM].value); + } + + // Flush last item if valid + ValueT* d_scatter = d_aggregates_out + pairs[ITEMS_PER_THREAD - 1].key; + if ((!IS_LAST_TILE) || (pairs[ITEMS_PER_THREAD - 1].key >= 0)) + atomicAdd(d_scatter, pairs[ITEMS_PER_THREAD - 1].value); + } + + + /** + * Process input tile. Specialized for reduce-by-key fixup + */ + template + __device__ __forceinline__ void ConsumeTile( + OffsetT num_remaining, ///< Number of global input items remaining (including this tile) + int tile_idx, ///< Tile index + OffsetT tile_offset, ///< Tile offset + ScanTileStateT& tile_state, ///< Global tile state descriptor + Int2Type use_atomic_fixup) ///< Marker whether to use atomicAdd (instead of reduce-by-key) + { + KeyValuePairT pairs[ITEMS_PER_THREAD]; + KeyValuePairT scatter_pairs[ITEMS_PER_THREAD]; + + // Load pairs + KeyValuePairT oob_pair; + oob_pair.key = -1; + + if (IS_LAST_TILE) + BlockLoadPairs(temp_storage.load_pairs).Load(d_pairs_in + tile_offset, pairs, num_remaining, oob_pair); + else + BlockLoadPairs(temp_storage.load_pairs).Load(d_pairs_in + tile_offset, pairs); + + CTA_SYNC(); + + KeyValuePairT tile_aggregate; + if (tile_idx == 0) + { + // Exclusive scan of values and segment_flags + BlockScanT(temp_storage.scan_storage.scan).ExclusiveScan(pairs, scatter_pairs, scan_op, tile_aggregate); + + // Update tile status if this is not the last tile + if (threadIdx.x == 0) + { + // Set first segment id to not trigger a flush (invalid from exclusive scan) + scatter_pairs[0].key = pairs[0].key; + + if (!IS_LAST_TILE) + tile_state.SetInclusive(0, tile_aggregate); + + } + } + else + { + // Exclusive scan of values and segment_flags + TilePrefixCallbackOpT prefix_op(tile_state, temp_storage.scan_storage.prefix, scan_op, tile_idx); + BlockScanT(temp_storage.scan_storage.scan).ExclusiveScan(pairs, scatter_pairs, scan_op, prefix_op); + tile_aggregate = prefix_op.GetBlockAggregate(); + } + + // Scatter updated values + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ++ITEM) + { + if (scatter_pairs[ITEM].key != pairs[ITEM].key) + { + // Update the value at the key location + ValueT value = d_fixup_in[scatter_pairs[ITEM].key]; + value = reduction_op(value, scatter_pairs[ITEM].value); + + d_aggregates_out[scatter_pairs[ITEM].key] = value; + } + } + + // Finalize the last item + if (IS_LAST_TILE) + { + // Last thread will output final count and last item, if necessary + if (threadIdx.x == BLOCK_THREADS - 1) + { + // If the last tile is a whole tile, the inclusive prefix contains accumulated value reduction for the last segment + if (num_remaining == TILE_ITEMS) + { + // Update the value at the key location + OffsetT last_key = pairs[ITEMS_PER_THREAD - 1].key; + d_aggregates_out[last_key] = reduction_op(tile_aggregate.value, d_fixup_in[last_key]); + } + } + } + } + + + /** + * Scan tiles of items as part of a dynamic chained scan + */ + __device__ __forceinline__ void ConsumeRange( + OffsetT num_items, ///< Total number of input items + int num_tiles, ///< Total number of input tiles + ScanTileStateT& tile_state) ///< Global tile state descriptor + { + // Blocks are launched in increasing order, so just assign one tile per block + int tile_idx = (blockIdx.x * gridDim.y) + blockIdx.y; // Current tile index + OffsetT tile_offset = tile_idx * TILE_ITEMS; // Global offset for the current tile + OffsetT num_remaining = num_items - tile_offset; // Remaining items (including this tile) + + if (num_remaining > TILE_ITEMS) + { + // Not the last tile (full) + ConsumeTile(num_remaining, tile_idx, tile_offset, tile_state, Int2Type()); + } + else if (num_remaining > 0) + { + // The last tile (possibly partially-full) + ConsumeTile(num_remaining, tile_idx, tile_offset, tile_state, Int2Type()); + } + } + +}; + + +CUB_NAMESPACE_END + diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_segmented_radix_sort.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_segmented_radix_sort.cuh new file mode 100644 index 0000000000000000000000000000000000000000..a629771120e2f6b14d246efe82491761269acb97 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_segmented_radix_sort.cuh @@ -0,0 +1,297 @@ +/****************************************************************************** + * Copyright (c) 2011-2021, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +#pragma once + +#include +#include +#include +#include +#include +#include + + +CUB_NAMESPACE_BEGIN + + +/** + * This agent will be implementing the `DeviceSegmentedRadixSort` when the + * https://github.com/NVIDIA/cub/issues/383 is addressed. + * + * @tparam IS_DESCENDING + * Whether or not the sorted-order is high-to-low + * + * @tparam SegmentedPolicyT + * Chained tuning policy + * + * @tparam KeyT + * Key type + * + * @tparam ValueT + * Value type + * + * @tparam OffsetT + * Signed integer type for global offsets + */ +template +struct AgentSegmentedRadixSort +{ + OffsetT num_items; + + static constexpr int ITEMS_PER_THREAD = SegmentedPolicyT::ITEMS_PER_THREAD; + static constexpr int BLOCK_THREADS = SegmentedPolicyT::BLOCK_THREADS; + static constexpr int RADIX_BITS = SegmentedPolicyT::RADIX_BITS; + static constexpr int RADIX_DIGITS = 1 << RADIX_BITS; + static constexpr int KEYS_ONLY = std::is_same::value; + + using traits = detail::radix::traits_t; + using bit_ordered_type = typename traits::bit_ordered_type; + + // Huge segment handlers + using BlockUpsweepT = AgentRadixSortUpsweep; + using DigitScanT = BlockScan; + using BlockDownsweepT = + AgentRadixSortDownsweep; + + /// Number of bin-starting offsets tracked per thread + static constexpr int BINS_TRACKED_PER_THREAD = BlockDownsweepT::BINS_TRACKED_PER_THREAD; + + // Small segment handlers + using BlockRadixSortT = + BlockRadixSort; + + using BlockKeyLoadT = BlockLoad; + + using BlockValueLoadT = BlockLoad; + + union _TempStorage + { + // Huge segment handlers + typename BlockUpsweepT::TempStorage upsweep; + typename BlockDownsweepT::TempStorage downsweep; + + struct UnboundBlockSort + { + OffsetT reverse_counts_in[RADIX_DIGITS]; + OffsetT reverse_counts_out[RADIX_DIGITS]; + typename DigitScanT::TempStorage scan; + } unbound_sort; + + // Small segment handlers + typename BlockKeyLoadT::TempStorage keys_load; + typename BlockValueLoadT::TempStorage values_load; + typename BlockRadixSortT::TempStorage sort; + }; + + using TempStorage = Uninitialized<_TempStorage>; + _TempStorage &temp_storage; + + DecomposerT decomposer; + + __device__ __forceinline__ + AgentSegmentedRadixSort(OffsetT num_items, + TempStorage &temp_storage, + DecomposerT decomposer = {}) + : num_items(num_items) + , temp_storage(temp_storage.Alias()) + , decomposer(decomposer) + {} + + __device__ __forceinline__ void ProcessSinglePass(int begin_bit, + int end_bit, + const KeyT *d_keys_in, + const ValueT *d_values_in, + KeyT *d_keys_out, + ValueT *d_values_out) + { + KeyT thread_keys[ITEMS_PER_THREAD]; + ValueT thread_values[ITEMS_PER_THREAD]; + + // For FP64 the difference is: + // Lowest() -> -1.79769e+308 = 00...00b -> TwiddleIn -> -0 = 10...00b + // LOWEST -> -nan = 11...11b -> TwiddleIn -> 0 = 00...00b + + bit_ordered_type default_key_bits = IS_DESCENDING + ? traits::min_raw_binary_key(decomposer) + : traits::max_raw_binary_key(decomposer); + KeyT oob_default = reinterpret_cast(default_key_bits); + + if (!KEYS_ONLY) + { + BlockValueLoadT(temp_storage.values_load) + .Load(d_values_in, thread_values, num_items); + + CTA_SYNC(); + } + + { + BlockKeyLoadT(temp_storage.keys_load) + .Load(d_keys_in, thread_keys, num_items, oob_default); + + CTA_SYNC(); + } + + BlockRadixSortT(temp_storage.sort).SortBlockedToStriped( + thread_keys, + thread_values, + begin_bit, + end_bit, + Int2Type(), + Int2Type(), + decomposer); + + cub::StoreDirectStriped( + threadIdx.x, d_keys_out, thread_keys, num_items); + + if (!KEYS_ONLY) + { + cub::StoreDirectStriped( + threadIdx.x, d_values_out, thread_values, num_items); + } + } + + __device__ __forceinline__ void ProcessIterative(int current_bit, + int pass_bits, + const KeyT *d_keys_in, + const ValueT *d_values_in, + KeyT *d_keys_out, + ValueT *d_values_out) + { + // Upsweep + BlockUpsweepT upsweep(temp_storage.upsweep, + d_keys_in, + current_bit, + pass_bits, + decomposer); + upsweep.ProcessRegion(OffsetT{}, num_items); + + CTA_SYNC(); + + // The count of each digit value in this pass (valid in the first RADIX_DIGITS threads) + OffsetT bin_count[BINS_TRACKED_PER_THREAD]; + upsweep.ExtractCounts(bin_count); + + CTA_SYNC(); + + if (IS_DESCENDING) + { + // Reverse bin counts + #pragma unroll + for (int track = 0; track < BINS_TRACKED_PER_THREAD; ++track) + { + int bin_idx = (threadIdx.x * BINS_TRACKED_PER_THREAD) + track; + + if ((BLOCK_THREADS == RADIX_DIGITS) || (bin_idx < RADIX_DIGITS)) + { + temp_storage.unbound_sort.reverse_counts_in[bin_idx] = bin_count[track]; + } + } + + CTA_SYNC(); + + #pragma unroll + for (int track = 0; track < BINS_TRACKED_PER_THREAD; ++track) + { + int bin_idx = (threadIdx.x * BINS_TRACKED_PER_THREAD) + track; + + if ((BLOCK_THREADS == RADIX_DIGITS) || (bin_idx < RADIX_DIGITS)) + { + bin_count[track] = temp_storage.unbound_sort.reverse_counts_in[RADIX_DIGITS - bin_idx - 1]; + } + } + } + + // Scan + // The global scatter base offset for each digit value in this pass + // (valid in the first RADIX_DIGITS threads) + OffsetT bin_offset[BINS_TRACKED_PER_THREAD]; + DigitScanT(temp_storage.unbound_sort.scan).ExclusiveSum(bin_count, bin_offset); + + if (IS_DESCENDING) + { + // Reverse bin offsets + #pragma unroll + for (int track = 0; track < BINS_TRACKED_PER_THREAD; ++track) + { + int bin_idx = (threadIdx.x * BINS_TRACKED_PER_THREAD) + track; + + if ((BLOCK_THREADS == RADIX_DIGITS) || (bin_idx < RADIX_DIGITS)) + { + temp_storage.unbound_sort.reverse_counts_out[threadIdx.x] = bin_offset[track]; + } + } + + CTA_SYNC(); + + #pragma unroll + for (int track = 0; track < BINS_TRACKED_PER_THREAD; ++track) + { + int bin_idx = (threadIdx.x * BINS_TRACKED_PER_THREAD) + track; + + if ((BLOCK_THREADS == RADIX_DIGITS) || (bin_idx < RADIX_DIGITS)) + { + bin_offset[track] = temp_storage.unbound_sort.reverse_counts_out[RADIX_DIGITS - bin_idx - 1]; + } + } + } + + CTA_SYNC(); + + // Downsweep + BlockDownsweepT downsweep(temp_storage.downsweep, + bin_offset, + num_items, + d_keys_in, + d_keys_out, + d_values_in, + d_values_out, + current_bit, + pass_bits, + decomposer); + downsweep.ProcessRegion(OffsetT{}, num_items); + } +}; + + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_select_if.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_select_if.cuh new file mode 100644 index 0000000000000000000000000000000000000000..4347602c19b980dce9e516d06f692373c80dfe2c --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_select_if.cuh @@ -0,0 +1,712 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * cub::AgentSelectIf implements a stateful abstraction of CUDA thread blocks for participating in device-wide select. + */ + +#pragma once + +#include + +#include "single_pass_scan_operators.cuh" +#include "../block/block_load.cuh" +#include "../block/block_store.cuh" +#include "../block/block_scan.cuh" +#include "../block/block_exchange.cuh" +#include "../block/block_discontinuity.cuh" +#include "../config.cuh" +#include "../grid/grid_queue.cuh" +#include "../iterator/cache_modified_input_iterator.cuh" + +CUB_NAMESPACE_BEGIN + + +/****************************************************************************** + * Tuning policy types + ******************************************************************************/ + +/** + * Parameterizable tuning policy type for AgentSelectIf + * + * @tparam _BLOCK_THREADS + * Threads per thread block + * + * @tparam _ITEMS_PER_THREAD + * Items per thread (per tile of input) + * + * @tparam _LOAD_ALGORITHM + * The BlockLoad algorithm to use + * + * @tparam _LOAD_MODIFIER + * Cache load modifier for reading input elements + * + * @tparam _SCAN_ALGORITHM + * The BlockScan algorithm to use + * + * @tparam DelayConstructorT + * Implementation detail, do not specify directly, requirements on the + * content of this type are subject to breaking change. + */ +template > +struct AgentSelectIfPolicy +{ + enum + { + BLOCK_THREADS = _BLOCK_THREADS, ///< Threads per thread block + ITEMS_PER_THREAD = _ITEMS_PER_THREAD, ///< Items per thread (per tile of input) + }; + + static const BlockLoadAlgorithm LOAD_ALGORITHM = _LOAD_ALGORITHM; ///< The BlockLoad algorithm to use + static const CacheLoadModifier LOAD_MODIFIER = _LOAD_MODIFIER; ///< Cache load modifier for reading input elements + static const BlockScanAlgorithm SCAN_ALGORITHM = _SCAN_ALGORITHM; ///< The BlockScan algorithm to use + + struct detail + { + using delay_constructor_t = DelayConstructorT; + }; +}; + + + + +/****************************************************************************** + * Thread block abstractions + ******************************************************************************/ + + +/** + * \brief AgentSelectIf implements a stateful abstraction of CUDA thread blocks for participating in device-wide selection + * + * Performs functor-based selection if SelectOpT functor type != NullType + * Otherwise performs flag-based selection if FlagsInputIterator's value type != NullType + * Otherwise performs discontinuity selection (keep unique) + */ +template < + typename AgentSelectIfPolicyT, ///< Parameterized AgentSelectIfPolicy tuning policy type + typename InputIteratorT, ///< Random-access input iterator type for selection items + typename FlagsInputIteratorT, ///< Random-access input iterator type for selections (NullType* if a selection functor or discontinuity flagging is to be used for selection) + typename SelectedOutputIteratorT, ///< Random-access output iterator type for selection_flags items + typename SelectOpT, ///< Selection operator type (NullType if selections or discontinuity flagging is to be used for selection) + typename EqualityOpT, ///< Equality operator type (NullType if selection functor or selections is to be used for selection) + typename OffsetT, ///< Signed integer type for global offsets + bool KEEP_REJECTS> ///< Whether or not we push rejected items to the back of the output +struct AgentSelectIf +{ + //--------------------------------------------------------------------- + // Types and constants + //--------------------------------------------------------------------- + + // The input value type + using InputT = cub::detail::value_t; + + // The flag value type + using FlagT = cub::detail::value_t; + + // Tile status descriptor interface type + using ScanTileStateT = ScanTileState; + + // Constants + enum + { + USE_SELECT_OP, + USE_SELECT_FLAGS, + USE_DISCONTINUITY, + + BLOCK_THREADS = AgentSelectIfPolicyT::BLOCK_THREADS, + ITEMS_PER_THREAD = AgentSelectIfPolicyT::ITEMS_PER_THREAD, + TILE_ITEMS = BLOCK_THREADS * ITEMS_PER_THREAD, + TWO_PHASE_SCATTER = (ITEMS_PER_THREAD > 1), + + SELECT_METHOD = + (!std::is_same::value) ? USE_SELECT_OP + : (!std::is_same::value) ? USE_SELECT_FLAGS + : USE_DISCONTINUITY + }; + + // Cache-modified Input iterator wrapper type (for applying cache modifier) for items + // Wrap the native input pointer with CacheModifiedValuesInputIterator + // or directly use the supplied input iterator type + using WrappedInputIteratorT = cub::detail::conditional_t< + std::is_pointer::value, + CacheModifiedInputIterator, + InputIteratorT>; + + // Cache-modified Input iterator wrapper type (for applying cache modifier) for values + // Wrap the native input pointer with CacheModifiedValuesInputIterator + // or directly use the supplied input iterator type + using WrappedFlagsInputIteratorT = cub::detail::conditional_t< + std::is_pointer::value, + CacheModifiedInputIterator, + FlagsInputIteratorT>; + + // Parameterized BlockLoad type for input data + using BlockLoadT = BlockLoad; + + // Parameterized BlockLoad type for flags + using BlockLoadFlags = BlockLoad; + + // Parameterized BlockDiscontinuity type for items + using BlockDiscontinuityT = BlockDiscontinuity; + + // Parameterized BlockScan type + using BlockScanT = + BlockScan; + + + // Callback type for obtaining tile prefix during block scan + using DelayConstructorT = typename AgentSelectIfPolicyT::detail::delay_constructor_t; + using TilePrefixCallbackOpT = + TilePrefixCallbackOp; + + // Item exchange type + typedef InputT ItemExchangeT[TILE_ITEMS]; + + // Shared memory type for this thread block + union _TempStorage + { + struct ScanStorage + { + typename BlockScanT::TempStorage scan; // Smem needed for tile scanning + typename TilePrefixCallbackOpT::TempStorage prefix; // Smem needed for cooperative prefix callback + typename BlockDiscontinuityT::TempStorage discontinuity; // Smem needed for discontinuity detection + } scan_storage; + + // Smem needed for loading items + typename BlockLoadT::TempStorage load_items; + + // Smem needed for loading values + typename BlockLoadFlags::TempStorage load_flags; + + // Smem needed for compacting items (allows non POD items in this union) + Uninitialized raw_exchange; + }; + + // Alias wrapper allowing storage to be unioned + struct TempStorage : Uninitialized<_TempStorage> {}; + + + //--------------------------------------------------------------------- + // Per-thread fields + //--------------------------------------------------------------------- + + _TempStorage& temp_storage; ///< Reference to temp_storage + WrappedInputIteratorT d_in; ///< Input items + SelectedOutputIteratorT d_selected_out; ///< Unique output items + WrappedFlagsInputIteratorT d_flags_in; ///< Input selection flags (if applicable) + InequalityWrapper inequality_op; ///< T inequality operator + SelectOpT select_op; ///< Selection operator + OffsetT num_items; ///< Total number of input items + + + //--------------------------------------------------------------------- + // Constructor + //--------------------------------------------------------------------- + + // Constructor + __device__ __forceinline__ + AgentSelectIf( + TempStorage &temp_storage, ///< Reference to temp_storage + InputIteratorT d_in, ///< Input data + FlagsInputIteratorT d_flags_in, ///< Input selection flags (if applicable) + SelectedOutputIteratorT d_selected_out, ///< Output data + SelectOpT select_op, ///< Selection operator + EqualityOpT equality_op, ///< Equality operator + OffsetT num_items) ///< Total number of input items + : + temp_storage(temp_storage.Alias()), + d_in(d_in), + d_selected_out(d_selected_out), + d_flags_in(d_flags_in), + inequality_op(equality_op), + select_op(select_op), + num_items(num_items) + {} + + + //--------------------------------------------------------------------- + // Utility methods for initializing the selections + //--------------------------------------------------------------------- + + /** + * Initialize selections (specialized for selection operator) + */ + template + __device__ __forceinline__ void InitializeSelections( + OffsetT /*tile_offset*/, + OffsetT num_tile_items, + InputT (&items)[ITEMS_PER_THREAD], + OffsetT (&selection_flags)[ITEMS_PER_THREAD], + Int2Type /*select_method*/) + { + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ++ITEM) + { + // Out-of-bounds items are selection_flags + selection_flags[ITEM] = 1; + + if (!IS_LAST_TILE || (OffsetT(threadIdx.x * ITEMS_PER_THREAD) + ITEM < num_tile_items)) + selection_flags[ITEM] = select_op(items[ITEM]); + } + } + + + /** + * Initialize selections (specialized for valid flags) + */ + template + __device__ __forceinline__ void InitializeSelections( + OffsetT tile_offset, + OffsetT num_tile_items, + InputT (&/*items*/)[ITEMS_PER_THREAD], + OffsetT (&selection_flags)[ITEMS_PER_THREAD], + Int2Type /*select_method*/) + { + CTA_SYNC(); + + FlagT flags[ITEMS_PER_THREAD]; + + if (IS_LAST_TILE) + { + // Out-of-bounds items are selection_flags + BlockLoadFlags(temp_storage.load_flags).Load(d_flags_in + tile_offset, flags, num_tile_items, 1); + } + else + { + BlockLoadFlags(temp_storage.load_flags).Load(d_flags_in + tile_offset, flags); + } + + // Convert flag type to selection_flags type + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ++ITEM) + { + selection_flags[ITEM] = static_cast(flags[ITEM]); + } + } + + + /** + * Initialize selections (specialized for discontinuity detection) + */ + template + __device__ __forceinline__ void InitializeSelections( + OffsetT tile_offset, + OffsetT num_tile_items, + InputT (&items)[ITEMS_PER_THREAD], + OffsetT (&selection_flags)[ITEMS_PER_THREAD], + Int2Type /*select_method*/) + { + if (IS_FIRST_TILE) + { + CTA_SYNC(); + + // Set head selection_flags. First tile sets the first flag for the first item + BlockDiscontinuityT(temp_storage.scan_storage.discontinuity).FlagHeads(selection_flags, items, inequality_op); + } + else + { + InputT tile_predecessor; + if (threadIdx.x == 0) + tile_predecessor = d_in[tile_offset - 1]; + + CTA_SYNC(); + + BlockDiscontinuityT(temp_storage.scan_storage.discontinuity).FlagHeads(selection_flags, items, inequality_op, tile_predecessor); + } + + // Set selection flags for out-of-bounds items + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ++ITEM) + { + // Set selection_flags for out-of-bounds items + if ((IS_LAST_TILE) && (OffsetT(threadIdx.x * ITEMS_PER_THREAD) + ITEM >= num_tile_items)) + selection_flags[ITEM] = 1; + } + } + + + //--------------------------------------------------------------------- + // Scatter utility methods + //--------------------------------------------------------------------- + + /** + * Scatter flagged items to output offsets (specialized for direct scattering) + */ + template + __device__ __forceinline__ void ScatterDirect( + InputT (&items)[ITEMS_PER_THREAD], + OffsetT (&selection_flags)[ITEMS_PER_THREAD], + OffsetT (&selection_indices)[ITEMS_PER_THREAD], + OffsetT num_selections) + { + // Scatter flagged items + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ++ITEM) + { + if (selection_flags[ITEM]) + { + if ((!IS_LAST_TILE) || selection_indices[ITEM] < num_selections) + { + d_selected_out[selection_indices[ITEM]] = items[ITEM]; + } + } + } + } + + + /** + * Scatter flagged items to output offsets (specialized for two-phase scattering) + */ + template + __device__ __forceinline__ void ScatterTwoPhase( + InputT (&items)[ITEMS_PER_THREAD], + OffsetT (&selection_flags)[ITEMS_PER_THREAD], + OffsetT (&selection_indices)[ITEMS_PER_THREAD], + int /*num_tile_items*/, ///< Number of valid items in this tile + int num_tile_selections, ///< Number of selections in this tile + OffsetT num_selections_prefix, ///< Total number of selections prior to this tile + OffsetT /*num_rejected_prefix*/, ///< Total number of rejections prior to this tile + Int2Type /*is_keep_rejects*/) ///< Marker type indicating whether to keep rejected items in the second partition + { + CTA_SYNC(); + + // Compact and scatter items + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ++ITEM) + { + int local_scatter_offset = selection_indices[ITEM] - num_selections_prefix; + if (selection_flags[ITEM]) + { + temp_storage.raw_exchange.Alias()[local_scatter_offset] = items[ITEM]; + } + } + + CTA_SYNC(); + + for (int item = threadIdx.x; item < num_tile_selections; item += BLOCK_THREADS) + { + d_selected_out[num_selections_prefix + item] = temp_storage.raw_exchange.Alias()[item]; + } + } + + + /** + * Scatter flagged items to output offsets (specialized for two-phase scattering) + */ + template + __device__ __forceinline__ void ScatterTwoPhase( + InputT (&items)[ITEMS_PER_THREAD], + OffsetT (&selection_flags)[ITEMS_PER_THREAD], + OffsetT (&selection_indices)[ITEMS_PER_THREAD], + int num_tile_items, ///< Number of valid items in this tile + int num_tile_selections, ///< Number of selections in this tile + OffsetT num_selections_prefix, ///< Total number of selections prior to this tile + OffsetT num_rejected_prefix, ///< Total number of rejections prior to this tile + Int2Type /*is_keep_rejects*/) ///< Marker type indicating whether to keep rejected items in the second partition + { + CTA_SYNC(); + + int tile_num_rejections = num_tile_items - num_tile_selections; + + // Scatter items to shared memory (rejections first) + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ++ITEM) + { + int item_idx = (threadIdx.x * ITEMS_PER_THREAD) + ITEM; + int local_selection_idx = selection_indices[ITEM] - num_selections_prefix; + int local_rejection_idx = item_idx - local_selection_idx; + int local_scatter_offset = (selection_flags[ITEM]) ? + tile_num_rejections + local_selection_idx : + local_rejection_idx; + + temp_storage.raw_exchange.Alias()[local_scatter_offset] = items[ITEM]; + } + + CTA_SYNC(); + + // Gather items from shared memory and scatter to global + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ++ITEM) + { + int item_idx = (ITEM * BLOCK_THREADS) + threadIdx.x; + int rejection_idx = item_idx; + int selection_idx = item_idx - tile_num_rejections; + OffsetT scatter_offset = (item_idx < tile_num_rejections) ? + num_items - num_rejected_prefix - rejection_idx - 1 : + num_selections_prefix + selection_idx; + + InputT item = temp_storage.raw_exchange.Alias()[item_idx]; + + if (!IS_LAST_TILE || (item_idx < num_tile_items)) + { + d_selected_out[scatter_offset] = item; + } + } + } + + + /** + * Scatter flagged items + */ + template + __device__ __forceinline__ void Scatter( + InputT (&items)[ITEMS_PER_THREAD], + OffsetT (&selection_flags)[ITEMS_PER_THREAD], + OffsetT (&selection_indices)[ITEMS_PER_THREAD], + int num_tile_items, ///< Number of valid items in this tile + int num_tile_selections, ///< Number of selections in this tile + OffsetT num_selections_prefix, ///< Total number of selections prior to this tile + OffsetT num_rejected_prefix, ///< Total number of rejections prior to this tile + OffsetT num_selections) ///< Total number of selections including this tile + { + // Do a two-phase scatter if (a) keeping both partitions or (b) two-phase is enabled and the average number of selection_flags items per thread is greater than one + if (KEEP_REJECTS || (TWO_PHASE_SCATTER && (num_tile_selections > BLOCK_THREADS))) + { + ScatterTwoPhase( + items, + selection_flags, + selection_indices, + num_tile_items, + num_tile_selections, + num_selections_prefix, + num_rejected_prefix, + Int2Type()); + } + else + { + ScatterDirect( + items, + selection_flags, + selection_indices, + num_selections); + } + } + + //--------------------------------------------------------------------- + // Cooperatively scan a device-wide sequence of tiles with other CTAs + //--------------------------------------------------------------------- + + + /** + * Process first tile of input (dynamic chained scan). Returns the running count of selections (including this tile) + */ + template + __device__ __forceinline__ OffsetT ConsumeFirstTile( + int num_tile_items, ///< Number of input items comprising this tile + OffsetT tile_offset, ///< Tile offset + ScanTileStateT& tile_state) ///< Global tile state descriptor + { + InputT items[ITEMS_PER_THREAD]; + OffsetT selection_flags[ITEMS_PER_THREAD]; + OffsetT selection_indices[ITEMS_PER_THREAD]; + + // Load items + if (IS_LAST_TILE) + BlockLoadT(temp_storage.load_items).Load(d_in + tile_offset, items, num_tile_items); + else + BlockLoadT(temp_storage.load_items).Load(d_in + tile_offset, items); + + // Initialize selection_flags + InitializeSelections( + tile_offset, + num_tile_items, + items, + selection_flags, + Int2Type()); + + CTA_SYNC(); + + // Exclusive scan of selection_flags + OffsetT num_tile_selections; + BlockScanT(temp_storage.scan_storage.scan).ExclusiveSum(selection_flags, selection_indices, num_tile_selections); + + if (threadIdx.x == 0) + { + // Update tile status if this is not the last tile + if (!IS_LAST_TILE) + tile_state.SetInclusive(0, num_tile_selections); + } + + // Discount any out-of-bounds selections + if (IS_LAST_TILE) + num_tile_selections -= (TILE_ITEMS - num_tile_items); + + // Scatter flagged items + Scatter( + items, + selection_flags, + selection_indices, + num_tile_items, + num_tile_selections, + 0, + 0, + num_tile_selections); + + return num_tile_selections; + } + + + /** + * Process subsequent tile of input (dynamic chained scan). Returns the running count of selections (including this tile) + */ + template + __device__ __forceinline__ OffsetT ConsumeSubsequentTile( + int num_tile_items, ///< Number of input items comprising this tile + int tile_idx, ///< Tile index + OffsetT tile_offset, ///< Tile offset + ScanTileStateT& tile_state) ///< Global tile state descriptor + { + InputT items[ITEMS_PER_THREAD]; + OffsetT selection_flags[ITEMS_PER_THREAD]; + OffsetT selection_indices[ITEMS_PER_THREAD]; + + // Load items + if (IS_LAST_TILE) + BlockLoadT(temp_storage.load_items).Load(d_in + tile_offset, items, num_tile_items); + else + BlockLoadT(temp_storage.load_items).Load(d_in + tile_offset, items); + + // Initialize selection_flags + InitializeSelections( + tile_offset, + num_tile_items, + items, + selection_flags, + Int2Type()); + + CTA_SYNC(); + + // Exclusive scan of values and selection_flags + TilePrefixCallbackOpT prefix_op(tile_state, temp_storage.scan_storage.prefix, cub::Sum(), tile_idx); + BlockScanT(temp_storage.scan_storage.scan).ExclusiveSum(selection_flags, selection_indices, prefix_op); + + OffsetT num_tile_selections = prefix_op.GetBlockAggregate(); + OffsetT num_selections = prefix_op.GetInclusivePrefix(); + OffsetT num_selections_prefix = prefix_op.GetExclusivePrefix(); + OffsetT num_rejected_prefix = (tile_idx * TILE_ITEMS) - num_selections_prefix; + + // Discount any out-of-bounds selections + if (IS_LAST_TILE) + { + int num_discount = TILE_ITEMS - num_tile_items; + num_selections -= num_discount; + num_tile_selections -= num_discount; + } + + // Scatter flagged items + Scatter( + items, + selection_flags, + selection_indices, + num_tile_items, + num_tile_selections, + num_selections_prefix, + num_rejected_prefix, + num_selections); + + return num_selections; + } + + + /** + * Process a tile of input + */ + template + __device__ __forceinline__ OffsetT ConsumeTile( + int num_tile_items, ///< Number of input items comprising this tile + int tile_idx, ///< Tile index + OffsetT tile_offset, ///< Tile offset + ScanTileStateT& tile_state) ///< Global tile state descriptor + { + OffsetT num_selections; + if (tile_idx == 0) + { + num_selections = ConsumeFirstTile(num_tile_items, tile_offset, tile_state); + } + else + { + num_selections = ConsumeSubsequentTile(num_tile_items, tile_idx, tile_offset, tile_state); + } + + return num_selections; + } + + + /** + * Scan tiles of items as part of a dynamic chained scan + */ + template ///< Output iterator type for recording number of items selection_flags + __device__ __forceinline__ void ConsumeRange( + int num_tiles, ///< Total number of input tiles + ScanTileStateT& tile_state, ///< Global tile state descriptor + NumSelectedIteratorT d_num_selected_out) ///< Output total number selection_flags + { + // Blocks are launched in increasing order, so just assign one tile per block + int tile_idx = (blockIdx.x * gridDim.y) + blockIdx.y; // Current tile index + OffsetT tile_offset = tile_idx * TILE_ITEMS; // Global offset for the current tile + + if (tile_idx < num_tiles - 1) + { + // Not the last tile (full) + ConsumeTile(TILE_ITEMS, tile_idx, tile_offset, tile_state); + } + else + { + // The last tile (possibly partially-full) + OffsetT num_remaining = num_items - tile_offset; + OffsetT num_selections = ConsumeTile(num_remaining, tile_idx, tile_offset, tile_state); + + if (threadIdx.x == 0) + { + // Output the total number of items selection_flags + *d_num_selected_out = num_selections; + } + } + } + +}; + + + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_spmv_orig.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_spmv_orig.cuh new file mode 100644 index 0000000000000000000000000000000000000000..c89bc4a3cd1518e0f5bd0e54a899d847a3523149 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_spmv_orig.cuh @@ -0,0 +1,680 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * cub::AgentSpmv implements a stateful abstraction of CUDA thread blocks for participating in device-wide SpMV. + */ + +#pragma once + +#include + +#include "../util_type.cuh" +#include "../block/block_reduce.cuh" +#include "../block/block_scan.cuh" +#include "../block/block_exchange.cuh" +#include "../config.cuh" +#include "../thread/thread_search.cuh" +#include "../thread/thread_operators.cuh" +#include "../iterator/cache_modified_input_iterator.cuh" +#include "../iterator/counting_input_iterator.cuh" + +CUB_NAMESPACE_BEGIN + + +/****************************************************************************** + * Tuning policy + ******************************************************************************/ + +/** + * Parameterizable tuning policy type for AgentSpmv + */ +template < + int _BLOCK_THREADS, ///< Threads per thread block + int _ITEMS_PER_THREAD, ///< Items per thread (per tile of input) + CacheLoadModifier _ROW_OFFSETS_SEARCH_LOAD_MODIFIER, ///< Cache load modifier for reading CSR row-offsets during search + CacheLoadModifier _ROW_OFFSETS_LOAD_MODIFIER, ///< Cache load modifier for reading CSR row-offsets + CacheLoadModifier _COLUMN_INDICES_LOAD_MODIFIER, ///< Cache load modifier for reading CSR column-indices + CacheLoadModifier _VALUES_LOAD_MODIFIER, ///< Cache load modifier for reading CSR values + CacheLoadModifier _VECTOR_VALUES_LOAD_MODIFIER, ///< Cache load modifier for reading vector values + bool _DIRECT_LOAD_NONZEROS, ///< Whether to load nonzeros directly from global during sequential merging (vs. pre-staged through shared memory) + BlockScanAlgorithm _SCAN_ALGORITHM> ///< The BlockScan algorithm to use +struct AgentSpmvPolicy +{ + enum + { + BLOCK_THREADS = _BLOCK_THREADS, ///< Threads per thread block + ITEMS_PER_THREAD = _ITEMS_PER_THREAD, ///< Items per thread (per tile of input) + DIRECT_LOAD_NONZEROS = _DIRECT_LOAD_NONZEROS, ///< Whether to load nonzeros directly from global during sequential merging (pre-staged through shared memory) + }; + + static const CacheLoadModifier ROW_OFFSETS_SEARCH_LOAD_MODIFIER = _ROW_OFFSETS_SEARCH_LOAD_MODIFIER; ///< Cache load modifier for reading CSR row-offsets + static const CacheLoadModifier ROW_OFFSETS_LOAD_MODIFIER = _ROW_OFFSETS_LOAD_MODIFIER; ///< Cache load modifier for reading CSR row-offsets + static const CacheLoadModifier COLUMN_INDICES_LOAD_MODIFIER = _COLUMN_INDICES_LOAD_MODIFIER; ///< Cache load modifier for reading CSR column-indices + static const CacheLoadModifier VALUES_LOAD_MODIFIER = _VALUES_LOAD_MODIFIER; ///< Cache load modifier for reading CSR values + static const CacheLoadModifier VECTOR_VALUES_LOAD_MODIFIER = _VECTOR_VALUES_LOAD_MODIFIER; ///< Cache load modifier for reading vector values + static const BlockScanAlgorithm SCAN_ALGORITHM = _SCAN_ALGORITHM; ///< The BlockScan algorithm to use + +}; + + +/****************************************************************************** + * Thread block abstractions + ******************************************************************************/ + +template < + typename ValueT, ///< Matrix and vector value type + typename OffsetT> ///< Signed integer type for sequence offsets +struct SpmvParams +{ + const ValueT* d_values; ///< Pointer to the array of \p num_nonzeros values of the corresponding nonzero elements of matrix A. + const OffsetT* d_row_end_offsets; ///< Pointer to the array of \p m offsets demarcating the end of every row in \p d_column_indices and \p d_values + const OffsetT* d_column_indices; ///< Pointer to the array of \p num_nonzeros column-indices of the corresponding nonzero elements of matrix A. (Indices are zero-valued.) + const ValueT* d_vector_x; ///< Pointer to the array of \p num_cols values corresponding to the dense input vector x + ValueT* d_vector_y; ///< Pointer to the array of \p num_rows values corresponding to the dense output vector y + int num_rows; ///< Number of rows of matrix A. + int num_cols; ///< Number of columns of matrix A. + int num_nonzeros; ///< Number of nonzero elements of matrix A. + ValueT alpha; ///< Alpha multiplicand + ValueT beta; ///< Beta addend-multiplicand +}; + + +/** + * \brief AgentSpmv implements a stateful abstraction of CUDA thread blocks for participating in device-wide SpMV. + */ +template < + typename AgentSpmvPolicyT, ///< Parameterized AgentSpmvPolicy tuning policy type + typename ValueT, ///< Matrix and vector value type + typename OffsetT, ///< Signed integer type for sequence offsets + bool HAS_ALPHA, ///< Whether the input parameter \p alpha is 1 + bool HAS_BETA, ///< Whether the input parameter \p beta is 0 + int LEGACY_PTX_ARCH = 0> ///< PTX compute capability (unused) +struct AgentSpmv +{ + //--------------------------------------------------------------------- + // Types and constants + //--------------------------------------------------------------------- + + /// Constants + enum + { + BLOCK_THREADS = AgentSpmvPolicyT::BLOCK_THREADS, + ITEMS_PER_THREAD = AgentSpmvPolicyT::ITEMS_PER_THREAD, + TILE_ITEMS = BLOCK_THREADS * ITEMS_PER_THREAD, + }; + + /// 2D merge path coordinate type + typedef typename CubVector::Type CoordinateT; + + /// Input iterator wrapper types (for applying cache modifiers) + + typedef CacheModifiedInputIterator< + AgentSpmvPolicyT::ROW_OFFSETS_SEARCH_LOAD_MODIFIER, + OffsetT, + OffsetT> + RowOffsetsSearchIteratorT; + + typedef CacheModifiedInputIterator< + AgentSpmvPolicyT::ROW_OFFSETS_LOAD_MODIFIER, + OffsetT, + OffsetT> + RowOffsetsIteratorT; + + typedef CacheModifiedInputIterator< + AgentSpmvPolicyT::COLUMN_INDICES_LOAD_MODIFIER, + OffsetT, + OffsetT> + ColumnIndicesIteratorT; + + typedef CacheModifiedInputIterator< + AgentSpmvPolicyT::VALUES_LOAD_MODIFIER, + ValueT, + OffsetT> + ValueIteratorT; + + typedef CacheModifiedInputIterator< + AgentSpmvPolicyT::VECTOR_VALUES_LOAD_MODIFIER, + ValueT, + OffsetT> + VectorValueIteratorT; + + // Tuple type for scanning (pairs accumulated segment-value with segment-index) + typedef KeyValuePair KeyValuePairT; + + // Reduce-value-by-segment scan operator + typedef ReduceByKeyOp ReduceBySegmentOpT; + + // BlockReduce specialization + typedef BlockReduce< + ValueT, + BLOCK_THREADS, + BLOCK_REDUCE_WARP_REDUCTIONS> + BlockReduceT; + + // BlockScan specialization + typedef BlockScan< + KeyValuePairT, + BLOCK_THREADS, + AgentSpmvPolicyT::SCAN_ALGORITHM> + BlockScanT; + + // BlockScan specialization + typedef BlockScan< + ValueT, + BLOCK_THREADS, + AgentSpmvPolicyT::SCAN_ALGORITHM> + BlockPrefixSumT; + + // BlockExchange specialization + typedef BlockExchange< + ValueT, + BLOCK_THREADS, + ITEMS_PER_THREAD> + BlockExchangeT; + + /// Merge item type (either a non-zero value or a row-end offset) + union MergeItem + { + // Value type to pair with index type OffsetT + // (NullType if loading values directly during merge) + using MergeValueT = + cub::detail::conditional_t< + AgentSpmvPolicyT::DIRECT_LOAD_NONZEROS, NullType, ValueT>; + + OffsetT row_end_offset; + MergeValueT nonzero; + }; + + /// Shared memory type required by this thread block + struct _TempStorage + { + CoordinateT tile_coords[2]; + + union Aliasable + { + // Smem needed for tile of merge items + MergeItem merge_items[ITEMS_PER_THREAD + TILE_ITEMS + 1]; + + // Smem needed for block exchange + typename BlockExchangeT::TempStorage exchange; + + // Smem needed for block-wide reduction + typename BlockReduceT::TempStorage reduce; + + // Smem needed for tile scanning + typename BlockScanT::TempStorage scan; + + // Smem needed for tile prefix sum + typename BlockPrefixSumT::TempStorage prefix_sum; + + } aliasable; + }; + + /// Temporary storage type (unionable) + struct TempStorage : Uninitialized<_TempStorage> {}; + + + //--------------------------------------------------------------------- + // Per-thread fields + //--------------------------------------------------------------------- + + + _TempStorage& temp_storage; /// Reference to temp_storage + + SpmvParams& spmv_params; + + ValueIteratorT wd_values; ///< Wrapped pointer to the array of \p num_nonzeros values of the corresponding nonzero elements of matrix A. + RowOffsetsIteratorT wd_row_end_offsets; ///< Wrapped Pointer to the array of \p m offsets demarcating the end of every row in \p d_column_indices and \p d_values + ColumnIndicesIteratorT wd_column_indices; ///< Wrapped Pointer to the array of \p num_nonzeros column-indices of the corresponding nonzero elements of matrix A. (Indices are zero-valued.) + VectorValueIteratorT wd_vector_x; ///< Wrapped Pointer to the array of \p num_cols values corresponding to the dense input vector x + VectorValueIteratorT wd_vector_y; ///< Wrapped Pointer to the array of \p num_cols values corresponding to the dense input vector x + + + //--------------------------------------------------------------------- + // Interface + //--------------------------------------------------------------------- + + /** + * Constructor + */ + __device__ __forceinline__ AgentSpmv( + TempStorage& temp_storage, ///< Reference to temp_storage + SpmvParams& spmv_params) ///< SpMV input parameter bundle + : + temp_storage(temp_storage.Alias()), + spmv_params(spmv_params), + wd_values(spmv_params.d_values), + wd_row_end_offsets(spmv_params.d_row_end_offsets), + wd_column_indices(spmv_params.d_column_indices), + wd_vector_x(spmv_params.d_vector_x), + wd_vector_y(spmv_params.d_vector_y) + {} + + + + + /** + * Consume a merge tile, specialized for direct-load of nonzeros + */ + __device__ __forceinline__ KeyValuePairT ConsumeTile( + int tile_idx, + CoordinateT tile_start_coord, + CoordinateT tile_end_coord, + Int2Type is_direct_load) ///< Marker type indicating whether to load nonzeros directly during path-discovery or beforehand in batch + { + int tile_num_rows = tile_end_coord.x - tile_start_coord.x; + int tile_num_nonzeros = tile_end_coord.y - tile_start_coord.y; + OffsetT* s_tile_row_end_offsets = &temp_storage.aliasable.merge_items[0].row_end_offset; + + // Gather the row end-offsets for the merge tile into shared memory + for (int item = threadIdx.x; item < tile_num_rows + ITEMS_PER_THREAD; item += BLOCK_THREADS) + { + const OffsetT offset = + (cub::min)(static_cast(tile_start_coord.x + item), + static_cast(spmv_params.num_rows - 1)); + s_tile_row_end_offsets[item] = wd_row_end_offsets[offset]; + } + + CTA_SYNC(); + + // Search for the thread's starting coordinate within the merge tile + CountingInputIterator tile_nonzero_indices(tile_start_coord.y); + CoordinateT thread_start_coord; + + MergePathSearch( + OffsetT(threadIdx.x * ITEMS_PER_THREAD), // Diagonal + s_tile_row_end_offsets, // List A + tile_nonzero_indices, // List B + tile_num_rows, + tile_num_nonzeros, + thread_start_coord); + + CTA_SYNC(); // Perf-sync + + // Compute the thread's merge path segment + CoordinateT thread_current_coord = thread_start_coord; + KeyValuePairT scan_segment[ITEMS_PER_THREAD]; + + ValueT running_total = 0.0; + + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ++ITEM) + { + OffsetT nonzero_idx = CUB_MIN(tile_nonzero_indices[thread_current_coord.y], spmv_params.num_nonzeros - 1); + OffsetT column_idx = wd_column_indices[nonzero_idx]; + ValueT value = wd_values[nonzero_idx]; + + ValueT vector_value = wd_vector_x[column_idx]; + + ValueT nonzero = value * vector_value; + + OffsetT row_end_offset = s_tile_row_end_offsets[thread_current_coord.x]; + + if (tile_nonzero_indices[thread_current_coord.y] < row_end_offset) + { + // Move down (accumulate) + running_total += nonzero; + scan_segment[ITEM].value = running_total; + scan_segment[ITEM].key = tile_num_rows; + ++thread_current_coord.y; + } + else + { + // Move right (reset) + scan_segment[ITEM].value = running_total; + scan_segment[ITEM].key = thread_current_coord.x; + running_total = 0.0; + ++thread_current_coord.x; + } + } + + CTA_SYNC(); + + // Block-wide reduce-value-by-segment + KeyValuePairT tile_carry; + ReduceBySegmentOpT scan_op; + KeyValuePairT scan_item; + + scan_item.value = running_total; + scan_item.key = thread_current_coord.x; + + BlockScanT(temp_storage.aliasable.scan).ExclusiveScan(scan_item, scan_item, scan_op, tile_carry); + + if (tile_num_rows > 0) + { + if (threadIdx.x == 0) + scan_item.key = -1; + + // Direct scatter + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ++ITEM) + { + if (scan_segment[ITEM].key < tile_num_rows) + { + if (scan_item.key == scan_segment[ITEM].key) + scan_segment[ITEM].value = scan_item.value + scan_segment[ITEM].value; + + if (HAS_ALPHA) + { + scan_segment[ITEM].value *= spmv_params.alpha; + } + + if (HAS_BETA) + { + // Update the output vector element + ValueT addend = spmv_params.beta * wd_vector_y[tile_start_coord.x + scan_segment[ITEM].key]; + scan_segment[ITEM].value += addend; + } + + // Set the output vector element + spmv_params.d_vector_y[tile_start_coord.x + scan_segment[ITEM].key] = scan_segment[ITEM].value; + } + } + } + + // Return the tile's running carry-out + return tile_carry; + } + + + + /** + * Consume a merge tile, specialized for indirect load of nonzeros + */ + __device__ __forceinline__ KeyValuePairT ConsumeTile( + int tile_idx, + CoordinateT tile_start_coord, + CoordinateT tile_end_coord, + Int2Type is_direct_load) ///< Marker type indicating whether to load nonzeros directly during path-discovery or beforehand in batch + { + int tile_num_rows = tile_end_coord.x - tile_start_coord.x; + int tile_num_nonzeros = tile_end_coord.y - tile_start_coord.y; + +#if (CUB_PTX_ARCH >= 520) + + OffsetT* s_tile_row_end_offsets = &temp_storage.aliasable.merge_items[0].row_end_offset; + ValueT* s_tile_nonzeros = &temp_storage.aliasable.merge_items[tile_num_rows + ITEMS_PER_THREAD].nonzero; + + // Gather the nonzeros for the merge tile into shared memory + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ++ITEM) + { + int nonzero_idx = threadIdx.x + (ITEM * BLOCK_THREADS); + + ValueIteratorT a = wd_values + tile_start_coord.y + nonzero_idx; + ColumnIndicesIteratorT ci = wd_column_indices + tile_start_coord.y + nonzero_idx; + ValueT* s = s_tile_nonzeros + nonzero_idx; + + if (nonzero_idx < tile_num_nonzeros) + { + + OffsetT column_idx = *ci; + ValueT value = *a; + + ValueT vector_value = wd_vector_x[column_idx]; + + ValueT nonzero = value * vector_value; + + *s = nonzero; + } + } + + +#else + + OffsetT* s_tile_row_end_offsets = &temp_storage.aliasable.merge_items[0].row_end_offset; + ValueT* s_tile_nonzeros = &temp_storage.aliasable.merge_items[tile_num_rows + ITEMS_PER_THREAD].nonzero; + + // Gather the nonzeros for the merge tile into shared memory + if (tile_num_nonzeros > 0) + { + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ++ITEM) + { + int nonzero_idx = threadIdx.x + (ITEM * BLOCK_THREADS); + nonzero_idx = CUB_MIN(nonzero_idx, tile_num_nonzeros - 1); + + OffsetT column_idx = wd_column_indices[tile_start_coord.y + nonzero_idx]; + ValueT value = wd_values[tile_start_coord.y + nonzero_idx]; + + ValueT vector_value = wd_vector_x[column_idx]; + + ValueT nonzero = value * vector_value; + + s_tile_nonzeros[nonzero_idx] = nonzero; + } + } + +#endif + + // Gather the row end-offsets for the merge tile into shared memory + #pragma unroll 1 + for (int item = threadIdx.x; item < tile_num_rows + ITEMS_PER_THREAD; item += BLOCK_THREADS) + { + const OffsetT offset = + (cub::min)(static_cast(tile_start_coord.x + item), + static_cast(spmv_params.num_rows - 1)); + s_tile_row_end_offsets[item] = wd_row_end_offsets[offset]; + } + + CTA_SYNC(); + + // Search for the thread's starting coordinate within the merge tile + CountingInputIterator tile_nonzero_indices(tile_start_coord.y); + CoordinateT thread_start_coord; + + MergePathSearch( + OffsetT(threadIdx.x * ITEMS_PER_THREAD), // Diagonal + s_tile_row_end_offsets, // List A + tile_nonzero_indices, // List B + tile_num_rows, + tile_num_nonzeros, + thread_start_coord); + + CTA_SYNC(); // Perf-sync + + // Compute the thread's merge path segment + CoordinateT thread_current_coord = thread_start_coord; + KeyValuePairT scan_segment[ITEMS_PER_THREAD]; + ValueT running_total = 0.0; + + OffsetT row_end_offset = s_tile_row_end_offsets[thread_current_coord.x]; + ValueT nonzero = s_tile_nonzeros[thread_current_coord.y]; + + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ++ITEM) + { + if (tile_nonzero_indices[thread_current_coord.y] < row_end_offset) + { + // Move down (accumulate) + scan_segment[ITEM].value = nonzero; + running_total += nonzero; + ++thread_current_coord.y; + nonzero = s_tile_nonzeros[thread_current_coord.y]; + } + else + { + // Move right (reset) + scan_segment[ITEM].value = 0.0; + running_total = 0.0; + ++thread_current_coord.x; + row_end_offset = s_tile_row_end_offsets[thread_current_coord.x]; + } + + scan_segment[ITEM].key = thread_current_coord.x; + } + + CTA_SYNC(); + + // Block-wide reduce-value-by-segment + KeyValuePairT tile_carry; + ReduceBySegmentOpT scan_op; + KeyValuePairT scan_item; + + scan_item.value = running_total; + scan_item.key = thread_current_coord.x; + + BlockScanT(temp_storage.aliasable.scan).ExclusiveScan(scan_item, scan_item, scan_op, tile_carry); + + if (threadIdx.x == 0) + { + scan_item.key = thread_start_coord.x; + scan_item.value = 0.0; + } + + if (tile_num_rows > 0) + { + + CTA_SYNC(); + + // Scan downsweep and scatter + ValueT* s_partials = &temp_storage.aliasable.merge_items[0].nonzero; + + if (scan_item.key != scan_segment[0].key) + { + s_partials[scan_item.key] = scan_item.value; + } + else + { + scan_segment[0].value += scan_item.value; + } + + #pragma unroll + for (int ITEM = 1; ITEM < ITEMS_PER_THREAD; ++ITEM) + { + if (scan_segment[ITEM - 1].key != scan_segment[ITEM].key) + { + s_partials[scan_segment[ITEM - 1].key] = scan_segment[ITEM - 1].value; + } + else + { + scan_segment[ITEM].value += scan_segment[ITEM - 1].value; + } + } + + CTA_SYNC(); + + #pragma unroll 1 + for (int item = threadIdx.x; item < tile_num_rows; item += BLOCK_THREADS) + { + spmv_params.d_vector_y[tile_start_coord.x + item] = s_partials[item]; + } + } + + // Return the tile's running carry-out + return tile_carry; + } + + + /** + * Consume input tile + */ + __device__ __forceinline__ void ConsumeTile( + CoordinateT* d_tile_coordinates, ///< [in] Pointer to the temporary array of tile starting coordinates + KeyValuePairT* d_tile_carry_pairs, ///< [out] Pointer to the temporary array carry-out dot product row-ids, one per block + int num_merge_tiles) ///< [in] Number of merge tiles + { + int tile_idx = (blockIdx.x * gridDim.y) + blockIdx.y; // Current tile index + + if (tile_idx >= num_merge_tiles) + return; + + // Read our starting coordinates + if (threadIdx.x < 2) + { + if (d_tile_coordinates == NULL) + { + // Search our starting coordinates + OffsetT diagonal = (tile_idx + threadIdx.x) * TILE_ITEMS; + CoordinateT tile_coord; + CountingInputIterator nonzero_indices(0); + + // Search the merge path + MergePathSearch( + diagonal, + RowOffsetsSearchIteratorT(spmv_params.d_row_end_offsets), + nonzero_indices, + spmv_params.num_rows, + spmv_params.num_nonzeros, + tile_coord); + + temp_storage.tile_coords[threadIdx.x] = tile_coord; + } + else + { + temp_storage.tile_coords[threadIdx.x] = d_tile_coordinates[tile_idx + threadIdx.x]; + } + } + + CTA_SYNC(); + + CoordinateT tile_start_coord = temp_storage.tile_coords[0]; + CoordinateT tile_end_coord = temp_storage.tile_coords[1]; + + // Consume multi-segment tile + KeyValuePairT tile_carry = ConsumeTile( + tile_idx, + tile_start_coord, + tile_end_coord, + Int2Type()); + + // Output the tile's carry-out + if (threadIdx.x == 0) + { + if (HAS_ALPHA) + { + tile_carry.value *= spmv_params.alpha; + } + + tile_carry.key += tile_start_coord.x; + if (tile_carry.key >= spmv_params.num_rows) + { + // FIXME: This works around an invalid memory access in the + // fixup kernel. The underlying issue needs to be debugged and + // properly fixed, but this hack prevents writes to + // out-of-bounds addresses. It doesn't appear to have an effect + // on the validity of the results, since this only affects the + // carry-over from last tile in the input. + tile_carry.key = spmv_params.num_rows - 1; + tile_carry.value = ValueT{}; + }; + + d_tile_carry_pairs[tile_idx] = tile_carry; + } + } + + +}; + + + + +CUB_NAMESPACE_END + diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_sub_warp_merge_sort.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_sub_warp_merge_sort.cuh new file mode 100644 index 0000000000000000000000000000000000000000..757d519ca5cc18755faecc14ea8123fec75ed29f --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_sub_warp_merge_sort.cuh @@ -0,0 +1,360 @@ +/****************************************************************************** + * Copyright (c) 2011-2021, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +#pragma once + +#include +#include +#include +#include +#include +#include + +#include + +#include + + +CUB_NAMESPACE_BEGIN + + +template < + int WARP_THREADS_ARG, + int ITEMS_PER_THREAD_ARG, + cub::WarpLoadAlgorithm LOAD_ALGORITHM_ARG = cub::WARP_LOAD_DIRECT, + cub::CacheLoadModifier LOAD_MODIFIER_ARG = cub::LOAD_LDG, + cub::WarpStoreAlgorithm STORE_ALGORITHM_ARG = cub::WARP_STORE_DIRECT> +struct AgentSubWarpMergeSortPolicy +{ + static constexpr int WARP_THREADS = WARP_THREADS_ARG; + static constexpr int ITEMS_PER_THREAD = ITEMS_PER_THREAD_ARG; + static constexpr int ITEMS_PER_TILE = WARP_THREADS * ITEMS_PER_THREAD; + + static constexpr cub::WarpLoadAlgorithm LOAD_ALGORITHM = LOAD_ALGORITHM_ARG; + static constexpr cub::CacheLoadModifier LOAD_MODIFIER = LOAD_MODIFIER_ARG; + static constexpr cub::WarpStoreAlgorithm STORE_ALGORITHM = STORE_ALGORITHM_ARG; +}; + +template +struct AgentSmallAndMediumSegmentedSortPolicy +{ + static constexpr int BLOCK_THREADS = BLOCK_THREADS_ARG; + using SmallPolicyT = SmallPolicy; + using MediumPolicyT = MediumPolicy; + + constexpr static int SEGMENTS_PER_MEDIUM_BLOCK = BLOCK_THREADS / + MediumPolicyT::WARP_THREADS; + + constexpr static int SEGMENTS_PER_SMALL_BLOCK = BLOCK_THREADS / + SmallPolicyT::WARP_THREADS; +}; + + +/** + * @brief AgentSubWarpSort implements a sub-warp merge sort. + * + * This agent can work with any power of two number of threads, not exceeding + * 32. The number of threads is defined in the `PolicyT::WARP_THREADS`. Virtual + * warp of `PolicyT::WARP_THREADS` will efficiently load data using + * `PolicyT::LOAD_ALGORITHM`, sort it using `WarpMergeSort`, and store it back + * using `PolicyT::STORE_ALGORITHM`. + * + * @tparam IS_DESCENDING + * Whether or not the sorted-order is high-to-low + * + * @tparam PolicyT + * Chained tuning policy + * + * @tparam KeyT + * Key type + * + * @tparam ValueT + * Value type + * + * @tparam OffsetT + * Signed integer type for global offsets + */ +template +class AgentSubWarpSort +{ + using traits = detail::radix::traits_t; + using bit_ordered_type = typename traits::bit_ordered_type; + + struct BinaryOpT + { + template + __device__ bool operator()(T lhs, T rhs) + { + return this->impl(lhs, rhs); + } + +#if defined(__CUDA_FP16_TYPES_EXIST__) + __device__ bool operator()(__half lhs, __half rhs) + { + // Need to explicitly cast to float for SM <= 52. + NV_IF_TARGET(NV_PROVIDES_SM_53, + (return this->impl(lhs, rhs);), + (return this->impl(__half2float(lhs), __half2float(rhs));)); + } +#endif + + private: + template + __device__ bool impl(T lhs, T rhs) + { + if (IS_DESCENDING) + { + return lhs > rhs; + } + else + { + return lhs < rhs; + } + } + }; + +#if defined(__CUDA_FP16_TYPES_EXIST__) + __device__ static bool equal(__half lhs, __half rhs) + { + // Need to explicitly cast to float for SM <= 52. + NV_IF_TARGET(NV_PROVIDES_SM_53, + (return lhs == rhs;), + (return __half2float(lhs) == __half2float(rhs);)); + } +#endif + + template + __device__ static bool equal(T lhs, T rhs) + { + return lhs == rhs; + } + + __device__ static bool get_oob_default(Int2Type /* is bool */) + { + // Traits::MAX_KEY for `bool` is 0xFF which is different from `true` and makes + // comparison with oob unreliable. + return !IS_DESCENDING; + } + + __device__ static KeyT get_oob_default(Int2Type /* is bool */) + { + // For FP64 the difference is: + // Lowest() -> -1.79769e+308 = 00...00b -> TwiddleIn -> -0 = 10...00b + // LOWEST -> -nan = 11...11b -> TwiddleIn -> 0 = 00...00b + + // Segmented sort doesn't support custom types at the moment. + bit_ordered_type default_key_bits = IS_DESCENDING + ? traits::min_raw_binary_key(detail::identity_decomposer_t{}) + : traits::max_raw_binary_key(detail::identity_decomposer_t{}); + return reinterpret_cast(default_key_bits); + } + +public: + static constexpr bool KEYS_ONLY = std::is_same::value; + + using WarpMergeSortT = + WarpMergeSort; + + using KeysLoadItT = typename THRUST_NS_QUALIFIER::cuda_cub::core:: + LoadIterator::type; + using ItemsLoadItT = typename THRUST_NS_QUALIFIER::cuda_cub::core:: + LoadIterator::type; + + using WarpLoadKeysT = cub::WarpLoad; + using WarpLoadItemsT = cub::WarpLoad; + + using WarpStoreKeysT = cub::WarpStore; + using WarpStoreItemsT = cub::WarpStore; + + union _TempStorage + { + typename WarpLoadKeysT::TempStorage load_keys; + typename WarpLoadItemsT::TempStorage load_items; + typename WarpMergeSortT::TempStorage sort; + typename WarpStoreKeysT::TempStorage store_keys; + typename WarpStoreItemsT::TempStorage store_items; + }; + + /// Alias wrapper allowing storage to be unioned + struct TempStorage : Uninitialized<_TempStorage> {}; + + _TempStorage &storage; + + __device__ __forceinline__ + explicit AgentSubWarpSort(TempStorage &temp_storage) + : storage(temp_storage.Alias()) + { + } + + + __device__ __forceinline__ + void ProcessSegment(int segment_size, + KeysLoadItT keys_input, + KeyT *keys_output, + ItemsLoadItT values_input, + ValueT *values_output) + { + WarpMergeSortT warp_merge_sort(storage.sort); + + if (segment_size < 3) + { + ShortCircuit(warp_merge_sort.get_linear_tid(), + segment_size, + keys_input, + keys_output, + values_input, + values_output, + BinaryOpT{}); + } + else + { + KeyT keys[PolicyT::ITEMS_PER_THREAD]; + ValueT values[PolicyT::ITEMS_PER_THREAD]; + + KeyT oob_default = + AgentSubWarpSort::get_oob_default(Int2Type::value>{}); + + WarpLoadKeysT(storage.load_keys) + .Load(keys_input, keys, segment_size, oob_default); + WARP_SYNC(warp_merge_sort.get_member_mask()); + + if (!KEYS_ONLY) + { + WarpLoadItemsT(storage.load_items) + .Load(values_input, values, segment_size); + + WARP_SYNC(warp_merge_sort.get_member_mask()); + } + + warp_merge_sort.Sort(keys, values, BinaryOpT{}, segment_size, oob_default); + WARP_SYNC(warp_merge_sort.get_member_mask()); + + WarpStoreKeysT(storage.store_keys).Store(keys_output, keys, segment_size); + + if (!KEYS_ONLY) + { + WARP_SYNC(warp_merge_sort.get_member_mask()); + WarpStoreItemsT(storage.store_items) + .Store(values_output, values, segment_size); + } + } + } + +private: + /** + * This method implements a shortcut for sorting less than three items. + * Only the first thread of a virtual warp is used for soring. + */ + template + __device__ __forceinline__ void ShortCircuit(unsigned int linear_tid, + OffsetT segment_size, + KeysLoadItT keys_input, + KeyT *keys_output, + ItemsLoadItT values_input, + ValueT *values_output, + CompareOpT binary_op) + { + if (segment_size == 1) + { + if (linear_tid == 0) + { + if (keys_input.ptr != keys_output) + { + keys_output[0] = keys_input[0]; + } + + if (!KEYS_ONLY) + { + if (values_input.ptr != values_output) + { + values_output[0] = values_input[0]; + } + } + } + } + else if (segment_size == 2) + { + if (linear_tid == 0) + { + KeyT lhs = keys_input[0]; + KeyT rhs = keys_input[1]; + + if (equal(lhs, rhs) || binary_op(lhs, rhs)) + { + keys_output[0] = lhs; + keys_output[1] = rhs; + + if (!KEYS_ONLY) + { + if (values_output != values_input.ptr) + { + values_output[0] = values_input[0]; + values_output[1] = values_input[1]; + } + } + } + else + { + keys_output[0] = rhs; + keys_output[1] = lhs; + + if (!KEYS_ONLY) + { + // values_output might be an alias for values_input, so + // we have to use registers here + + const ValueT lhs_val = values_input[0]; + const ValueT rhs_val = values_input[1]; + + values_output[0] = rhs_val; + values_output[1] = lhs_val; + } + } + } + } + } +}; + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_three_way_partition.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_three_way_partition.cuh new file mode 100644 index 0000000000000000000000000000000000000000..c12eafd0dac972a908c1f3749f2b75fd79aabf0b --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_three_way_partition.cuh @@ -0,0 +1,614 @@ +/****************************************************************************** + * Copyright (c) 2011-2021, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +#pragma once + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + + +CUB_NAMESPACE_BEGIN + + +/****************************************************************************** + * Tuning policy types + ******************************************************************************/ + +template +struct AgentThreeWayPartitionPolicy +{ + constexpr static int BLOCK_THREADS = _BLOCK_THREADS; + constexpr static int ITEMS_PER_THREAD = _ITEMS_PER_THREAD; + constexpr static BlockLoadAlgorithm LOAD_ALGORITHM = _LOAD_ALGORITHM; + constexpr static CacheLoadModifier LOAD_MODIFIER = _LOAD_MODIFIER; + constexpr static BlockScanAlgorithm SCAN_ALGORITHM = _SCAN_ALGORITHM; +}; + + +/** + * \brief Implements a device-wide three-way partitioning + * + * Splits input data into three parts based on the selection functors. If the + * first functor selects an item, the algorithm places it in the first part. + * Otherwise, if the second functor selects an item, the algorithm places it in + * the second part. If both functors don't select an item, the algorithm places + * it into the unselected part. + */ +template +struct AgentThreeWayPartition +{ + //--------------------------------------------------------------------- + // Types and constants + //--------------------------------------------------------------------- + + // The input value type + using InputT = cub::detail::value_t; + + // Tile status descriptor interface type + using ScanTileStateT = cub::ScanTileState; + + // Constants + constexpr static int BLOCK_THREADS = PolicyT::BLOCK_THREADS; + constexpr static int ITEMS_PER_THREAD = PolicyT::ITEMS_PER_THREAD; + constexpr static int TILE_ITEMS = BLOCK_THREADS * ITEMS_PER_THREAD; + + using WrappedInputIteratorT = cub::detail::conditional_t< + std::is_pointer::value, + cub::CacheModifiedInputIterator, + InputIteratorT>; + + // Parameterized BlockLoad type for input data + using BlockLoadT = cub::BlockLoad; + + // Parameterized BlockScan type + using BlockScanT = + cub::BlockScan; + + // Callback type for obtaining tile prefix during block scan + using TilePrefixCallbackOpT = + cub::TilePrefixCallbackOp; + + // Item exchange type + using ItemExchangeT = InputT[TILE_ITEMS]; + + // Shared memory type for this thread block + union _TempStorage + { + struct ScanStorage + { + // Smem needed for tile scanning + typename BlockScanT::TempStorage scan; + + // Smem needed for cooperative prefix callback + typename TilePrefixCallbackOpT::TempStorage prefix; + } scan_storage; + + // Smem needed for loading items + typename BlockLoadT::TempStorage load_items; + + // Smem needed for compacting items (allows non POD items in this union) + cub::Uninitialized raw_exchange; + }; + + // Alias wrapper allowing storage to be unioned + struct TempStorage : cub::Uninitialized<_TempStorage> {}; + + + //--------------------------------------------------------------------- + // Per-thread fields + //--------------------------------------------------------------------- + + _TempStorage& temp_storage; ///< Reference to temp_storage + WrappedInputIteratorT d_in; ///< Input items + FirstOutputIteratorT d_first_part_out; + SecondOutputIteratorT d_second_part_out; + UnselectedOutputIteratorT d_unselected_out; + SelectFirstPartOp select_first_part_op; + SelectSecondPartOp select_second_part_op; + OffsetT num_items; ///< Total number of input items + + + //--------------------------------------------------------------------- + // Constructor + //--------------------------------------------------------------------- + + // Constructor + __device__ __forceinline__ + AgentThreeWayPartition(TempStorage &temp_storage, + InputIteratorT d_in, + FirstOutputIteratorT d_first_part_out, + SecondOutputIteratorT d_second_part_out, + UnselectedOutputIteratorT d_unselected_out, + SelectFirstPartOp select_first_part_op, + SelectSecondPartOp select_second_part_op, + OffsetT num_items) + : temp_storage(temp_storage.Alias()) + , d_in(d_in) + , d_first_part_out(d_first_part_out) + , d_second_part_out(d_second_part_out) + , d_unselected_out(d_unselected_out) + , select_first_part_op(select_first_part_op) + , select_second_part_op(select_second_part_op) + , num_items(num_items) + {} + + //--------------------------------------------------------------------- + // Utility methods for initializing the selections + //--------------------------------------------------------------------- + + template + __device__ __forceinline__ void + Initialize(OffsetT num_tile_items, + InputT (&items)[ITEMS_PER_THREAD], + OffsetT (&first_items_selection_flags)[ITEMS_PER_THREAD], + OffsetT (&second_items_selection_flags)[ITEMS_PER_THREAD]) + { + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ++ITEM) + { + // Out-of-bounds items are selection_flags + first_items_selection_flags[ITEM] = 1; + second_items_selection_flags[ITEM] = 1; + + if (!IS_LAST_TILE || + (OffsetT(threadIdx.x * ITEMS_PER_THREAD) + ITEM < num_tile_items)) + { + first_items_selection_flags[ITEM] = select_first_part_op(items[ITEM]); + second_items_selection_flags[ITEM] = + first_items_selection_flags[ITEM] + ? 0 + : select_second_part_op(items[ITEM]); + } + } + } + + template + __device__ __forceinline__ void Scatter( + InputT (&items)[ITEMS_PER_THREAD], + OffsetT (&first_items_selection_flags)[ITEMS_PER_THREAD], + OffsetT (&first_items_selection_indices)[ITEMS_PER_THREAD], + OffsetT (&second_items_selection_flags)[ITEMS_PER_THREAD], + OffsetT (&second_items_selection_indices)[ITEMS_PER_THREAD], + int num_tile_items, + int num_first_tile_selections, + int num_second_tile_selections, + OffsetT num_first_selections_prefix, + OffsetT num_second_selections_prefix, + OffsetT num_rejected_prefix) + { + CTA_SYNC(); + + int first_item_end = num_first_tile_selections; + int second_item_end = first_item_end + num_second_tile_selections; + + // Scatter items to shared memory (rejections first) + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ++ITEM) + { + int item_idx = (threadIdx.x * ITEMS_PER_THREAD) + ITEM; + + if (!IS_LAST_TILE || (item_idx < num_tile_items)) + { + int local_scatter_offset = 0; + + if (first_items_selection_flags[ITEM]) + { + local_scatter_offset = first_items_selection_indices[ITEM] + - num_first_selections_prefix; + } + else if (second_items_selection_flags[ITEM]) + { + local_scatter_offset = first_item_end + + second_items_selection_indices[ITEM] - + num_second_selections_prefix; + } + else + { + // Medium item + int local_selection_idx = + (first_items_selection_indices[ITEM] - num_first_selections_prefix) + + (second_items_selection_indices[ITEM] - num_second_selections_prefix); + local_scatter_offset = second_item_end + item_idx - local_selection_idx; + } + + temp_storage.raw_exchange.Alias()[local_scatter_offset] = items[ITEM]; + } + } + + CTA_SYNC(); + + // Gather items from shared memory and scatter to global + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ++ITEM) + { + int item_idx = (ITEM * BLOCK_THREADS) + threadIdx.x; + + if (!IS_LAST_TILE || (item_idx < num_tile_items)) + { + InputT item = temp_storage.raw_exchange.Alias()[item_idx]; + + if (item_idx < first_item_end) + { + d_first_part_out[num_first_selections_prefix + item_idx] = item; + } + else if (item_idx < second_item_end) + { + d_second_part_out[num_second_selections_prefix + item_idx - first_item_end] = item; + } + else + { + int rejection_idx = item_idx - second_item_end; + d_unselected_out[num_rejected_prefix + rejection_idx] = item; + } + } + } + } + + + //--------------------------------------------------------------------- + // Cooperatively scan a device-wide sequence of tiles with other CTAs + //--------------------------------------------------------------------- + + + /** + * Process first tile of input (dynamic chained scan). + * Returns the running count of selections (including this tile) + * + * @param num_tile_items Number of input items comprising this tile + * @param tile_offset Tile offset + * @param first_tile_state Global tile state descriptor + * @param second_tile_state Global tile state descriptor + */ + template + __device__ __forceinline__ void + ConsumeFirstTile(int num_tile_items, + OffsetT tile_offset, + ScanTileStateT &first_tile_state, + ScanTileStateT &second_tile_state, + OffsetT &first_items, + OffsetT &second_items) + { + InputT items[ITEMS_PER_THREAD]; + + OffsetT first_items_selection_flags[ITEMS_PER_THREAD]; + OffsetT first_items_selection_indices[ITEMS_PER_THREAD]; + + OffsetT second_items_selection_flags[ITEMS_PER_THREAD]; + OffsetT second_items_selection_indices[ITEMS_PER_THREAD]; + + // Load items + if (IS_LAST_TILE) + { + BlockLoadT(temp_storage.load_items) + .Load(d_in + tile_offset, items, num_tile_items); + } + else + { + BlockLoadT(temp_storage.load_items).Load(d_in + tile_offset, items); + } + + // Initialize selection_flags + Initialize( + num_tile_items, + items, + first_items_selection_flags, + second_items_selection_flags); + + CTA_SYNC(); + + // Exclusive scan of selection_flags + BlockScanT(temp_storage.scan_storage.scan) + .ExclusiveSum(first_items_selection_flags, + first_items_selection_indices, + first_items); + + if (threadIdx.x == 0) + { + // Update tile status if this is not the last tile + if (!IS_LAST_TILE) + { + first_tile_state.SetInclusive(0, first_items); + } + } + + CTA_SYNC(); + + // Exclusive scan of selection_flags + BlockScanT(temp_storage.scan_storage.scan) + .ExclusiveSum(second_items_selection_flags, + second_items_selection_indices, + second_items); + + if (threadIdx.x == 0) + { + // Update tile status if this is not the last tile + if (!IS_LAST_TILE) + { + second_tile_state.SetInclusive(0, second_items); + } + } + + // Discount any out-of-bounds selections + if (IS_LAST_TILE) + { + first_items -= (TILE_ITEMS - num_tile_items); + second_items -= (TILE_ITEMS - num_tile_items); + } + + // Scatter flagged items + Scatter( + items, + first_items_selection_flags, + first_items_selection_indices, + second_items_selection_flags, + second_items_selection_indices, + num_tile_items, + first_items, + second_items, + // all the prefixes equal to 0 because it's the first tile + 0, 0, 0); + } + + + /** + * Process subsequent tile of input (dynamic chained scan). + * Returns the running count of selections (including this tile) + * + * @param num_tile_items Number of input items comprising this tile + * @param tile_idx Tile index + * @param tile_offset Tile offset + * @param first_tile_state Global tile state descriptor + * @param second_tile_state Global tile state descriptor + */ + template + __device__ __forceinline__ void + ConsumeSubsequentTile(int num_tile_items, + int tile_idx, + OffsetT tile_offset, + ScanTileStateT &first_tile_state, + ScanTileStateT &second_tile_state, + OffsetT &num_first_items_selections, + OffsetT &num_second_items_selections) + { + InputT items[ITEMS_PER_THREAD]; + + OffsetT first_items_selection_flags[ITEMS_PER_THREAD]; + OffsetT first_items_selection_indices[ITEMS_PER_THREAD]; + + OffsetT second_items_selection_flags[ITEMS_PER_THREAD]; + OffsetT second_items_selection_indices[ITEMS_PER_THREAD]; + + // Load items + if (IS_LAST_TILE) + { + BlockLoadT(temp_storage.load_items).Load( + d_in + tile_offset, items, num_tile_items); + } + else + { + BlockLoadT(temp_storage.load_items).Load(d_in + tile_offset, items); + } + + // Initialize selection_flags + Initialize( + num_tile_items, + items, + first_items_selection_flags, + second_items_selection_flags); + + CTA_SYNC(); + + // Exclusive scan of values and selection_flags + TilePrefixCallbackOpT first_prefix_op(first_tile_state, + temp_storage.scan_storage.prefix, + cub::Sum(), + tile_idx); + + BlockScanT(temp_storage.scan_storage.scan) + .ExclusiveSum(first_items_selection_flags, + first_items_selection_indices, + first_prefix_op); + + num_first_items_selections = first_prefix_op.GetInclusivePrefix(); + OffsetT num_first_items_in_tile_selections = first_prefix_op.GetBlockAggregate(); + OffsetT num_first_items_selections_prefix = first_prefix_op.GetExclusivePrefix(); + + CTA_SYNC(); + + TilePrefixCallbackOpT second_prefix_op(second_tile_state, + temp_storage.scan_storage.prefix, + cub::Sum(), + tile_idx); + BlockScanT(temp_storage.scan_storage.scan) + .ExclusiveSum(second_items_selection_flags, + second_items_selection_indices, + second_prefix_op); + + num_second_items_selections = second_prefix_op.GetInclusivePrefix(); + OffsetT num_second_items_in_tile_selections = second_prefix_op.GetBlockAggregate(); + OffsetT num_second_items_selections_prefix = second_prefix_op.GetExclusivePrefix(); + + OffsetT num_rejected_prefix = (tile_idx * TILE_ITEMS) + - num_first_items_selections_prefix + - num_second_items_selections_prefix; + + // Discount any out-of-bounds selections. There are exactly + // TILE_ITEMS - num_tile_items elements like that because we + // marked them as selected in Initialize method. + if (IS_LAST_TILE) + { + const int num_discount = TILE_ITEMS - num_tile_items; + + num_first_items_selections -= num_discount; + num_first_items_in_tile_selections -= num_discount; + num_second_items_selections -= num_discount; + num_second_items_in_tile_selections -= num_discount; + } + + // Scatter flagged items + Scatter( + items, + first_items_selection_flags, + first_items_selection_indices, + second_items_selection_flags, + second_items_selection_indices, + num_tile_items, + num_first_items_in_tile_selections, + num_second_items_in_tile_selections, + num_first_items_selections_prefix, + num_second_items_selections_prefix, + num_rejected_prefix); + } + + + /** + * Process a tile of input + */ + template + __device__ __forceinline__ void ConsumeTile( + int num_tile_items, + int tile_idx, + OffsetT tile_offset, + ScanTileStateT& first_tile_state, + ScanTileStateT& second_tile_state, + OffsetT& first_items, + OffsetT& second_items) + { + if (tile_idx == 0) + { + ConsumeFirstTile(num_tile_items, + tile_offset, + first_tile_state, + second_tile_state, + first_items, + second_items); + } + else + { + ConsumeSubsequentTile(num_tile_items, + tile_idx, + tile_offset, + first_tile_state, + second_tile_state, + first_items, + second_items); + } + } + + + /** + * Scan tiles of items as part of a dynamic chained scan + * + * @tparam NumSelectedIteratorT + * Output iterator type for recording number of items selection_flags + * + * @param num_tiles + * Total number of input tiles + * + * @param first_tile_state + * Global tile state descriptor + * + * @param second_tile_state + * Global tile state descriptor + * + * @param d_num_selected_out + * Output total number selection_flags + */ + template + __device__ __forceinline__ void + ConsumeRange(int num_tiles, + ScanTileStateT &first_tile_state, + ScanTileStateT &second_tile_state, + NumSelectedIteratorT d_num_selected_out) + { + // Blocks are launched in increasing order, so just assign one tile per block + // Current tile index + int tile_idx = static_cast((blockIdx.x * gridDim.y) + blockIdx.y); + + // Global offset for the current tile + OffsetT tile_offset = tile_idx * TILE_ITEMS; + + OffsetT num_first_selections; + OffsetT num_second_selections; + + if (tile_idx < num_tiles - 1) + { + // Not the last tile (full) + ConsumeTile(TILE_ITEMS, + tile_idx, + tile_offset, + first_tile_state, + second_tile_state, + num_first_selections, + num_second_selections); + } + else + { + // The last tile (possibly partially-full) + OffsetT num_remaining = num_items - tile_offset; + + ConsumeTile(num_remaining, + tile_idx, + tile_offset, + first_tile_state, + second_tile_state, + num_first_selections, + num_second_selections); + + if (threadIdx.x == 0) + { + // Output the total number of items selection_flags + d_num_selected_out[0] = num_first_selections; + d_num_selected_out[1] = num_second_selections; + } + } + } + +}; + + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_unique_by_key.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_unique_by_key.cuh new file mode 100644 index 0000000000000000000000000000000000000000..54c87cd4125a4fe6bb2a6465ddac63637fe09e6f --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/agent/agent_unique_by_key.cuh @@ -0,0 +1,583 @@ +/****************************************************************************** + * Copyright (c) NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * cub::AgentUniqueByKey implements a stateful abstraction of CUDA thread blocks for participating in device-wide unique-by-key. + */ + +#pragma once + +#include +#include + +#include "../thread/thread_operators.cuh" +#include "../block/block_load.cuh" +#include "../block/block_scan.cuh" +#include "../agent/single_pass_scan_operators.cuh" +#include "../block/block_discontinuity.cuh" + +CUB_NAMESPACE_BEGIN + + +/****************************************************************************** + * Tuning policy types + ******************************************************************************/ + +/** + * Parameterizable tuning policy type for AgentUniqueByKey + * + * @tparam DelayConstructorT + * Implementation detail, do not specify directly, requirements on the + * content of this type are subject to breaking change. + */ +template > +struct AgentUniqueByKeyPolicy +{ + enum + { + BLOCK_THREADS = _BLOCK_THREADS, + ITEMS_PER_THREAD = _ITEMS_PER_THREAD, + }; + static const cub::BlockLoadAlgorithm LOAD_ALGORITHM = _LOAD_ALGORITHM; + static const cub::CacheLoadModifier LOAD_MODIFIER = _LOAD_MODIFIER; + static const cub::BlockScanAlgorithm SCAN_ALGORITHM = _SCAN_ALGORITHM; + + struct detail + { + using delay_constructor_t = DelayConstructorT; + }; +}; + + + + +/****************************************************************************** + * Thread block abstractions + ******************************************************************************/ + + +/** + * \brief AgentUniqueByKey implements a stateful abstraction of CUDA thread blocks for participating in device-wide unique-by-key + */ +template < + typename AgentUniqueByKeyPolicyT, ///< Parameterized AgentUniqueByKeyPolicy tuning policy type + typename KeyInputIteratorT, ///< Random-access input iterator type for keys + typename ValueInputIteratorT, ///< Random-access input iterator type for values + typename KeyOutputIteratorT, ///< Random-access output iterator type for keys + typename ValueOutputIteratorT, ///< Random-access output iterator type for values + typename EqualityOpT, ///< Equality operator type + typename OffsetT> ///< Signed integer type for global offsets +struct AgentUniqueByKey +{ + //--------------------------------------------------------------------- + // Types and constants + //--------------------------------------------------------------------- + + // The input key and value type + using KeyT = typename std::iterator_traits::value_type; + using ValueT = typename std::iterator_traits::value_type; + + // Tile status descriptor interface type + using ScanTileStateT = ScanTileState; + + // Constants + enum + { + BLOCK_THREADS = AgentUniqueByKeyPolicyT::BLOCK_THREADS, + ITEMS_PER_THREAD = AgentUniqueByKeyPolicyT::ITEMS_PER_THREAD, + ITEMS_PER_TILE = BLOCK_THREADS * ITEMS_PER_THREAD, + }; + + // Cache-modified Input iterator wrapper type (for applying cache modifier) for keys + using WrappedKeyInputIteratorT = typename std::conditional::value, + CacheModifiedInputIterator, // Wrap the native input pointer with CacheModifiedValuesInputIterator + KeyInputIteratorT>::type; // Directly use the supplied input iterator type + + // Cache-modified Input iterator wrapper type (for applying cache modifier) for values + using WrappedValueInputIteratorT = typename std::conditional::value, + CacheModifiedInputIterator, // Wrap the native input pointer with CacheModifiedValuesInputIterator + ValueInputIteratorT>::type; // Directly use the supplied input iterator type + + // Parameterized BlockLoad type for input data + using BlockLoadKeys = BlockLoad< + KeyT, + BLOCK_THREADS, + ITEMS_PER_THREAD, + AgentUniqueByKeyPolicyT::LOAD_ALGORITHM>; + + // Parameterized BlockLoad type for flags + using BlockLoadValues = BlockLoad< + ValueT, + BLOCK_THREADS, + ITEMS_PER_THREAD, + AgentUniqueByKeyPolicyT::LOAD_ALGORITHM>; + + // Parameterized BlockDiscontinuity type for items + using BlockDiscontinuityKeys = cub::BlockDiscontinuity; + + // Parameterized BlockScan type + using BlockScanT = cub::BlockScan; + + // Parameterized BlockDiscontinuity type for items + using DelayConstructorT = typename AgentUniqueByKeyPolicyT::detail::delay_constructor_t; + using TilePrefixCallback = + cub::TilePrefixCallbackOp; + + // Key exchange type + using KeyExchangeT = KeyT[ITEMS_PER_TILE]; + + // Value exchange type + using ValueExchangeT = ValueT[ITEMS_PER_TILE]; + + // Shared memory type for this thread block + union _TempStorage + { + struct ScanStorage + { + typename BlockScanT::TempStorage scan; + typename TilePrefixCallback::TempStorage prefix; + typename BlockDiscontinuityKeys::TempStorage discontinuity; + } scan_storage; + + // Smem needed for loading keys + typename BlockLoadKeys::TempStorage load_keys; + + // Smem needed for loading values + typename BlockLoadValues::TempStorage load_values; + + // Smem needed for compacting items (allows non POD items in this union) + Uninitialized shared_keys; + Uninitialized shared_values; + }; + + // Alias wrapper allowing storage to be unioned + struct TempStorage : Uninitialized<_TempStorage> {}; + + + //--------------------------------------------------------------------- + // Per-thread fields + //--------------------------------------------------------------------- + + _TempStorage& temp_storage; + WrappedKeyInputIteratorT d_keys_in; + WrappedValueInputIteratorT d_values_in; + KeyOutputIteratorT d_keys_out; + ValueOutputIteratorT d_values_out; + cub::InequalityWrapper inequality_op; + OffsetT num_items; + + + //--------------------------------------------------------------------- + // Constructor + //--------------------------------------------------------------------- + + // Constructor + __device__ __forceinline__ + AgentUniqueByKey( + TempStorage &temp_storage_, + WrappedKeyInputIteratorT d_keys_in_, + WrappedValueInputIteratorT d_values_in_, + KeyOutputIteratorT d_keys_out_, + ValueOutputIteratorT d_values_out_, + EqualityOpT equality_op_, + OffsetT num_items_) + : + temp_storage(temp_storage_.Alias()), + d_keys_in(d_keys_in_), + d_values_in(d_values_in_), + d_keys_out(d_keys_out_), + d_values_out(d_values_out_), + inequality_op(equality_op_), + num_items(num_items_) + {} + + + + //--------------------------------------------------------------------- + // Utility functions + //--------------------------------------------------------------------- + + struct KeyTagT {}; + struct ValueTagT {}; + + __device__ __forceinline__ + KeyExchangeT &GetShared(KeyTagT) + { + return temp_storage.shared_keys.Alias(); + } + __device__ __forceinline__ + ValueExchangeT &GetShared(ValueTagT) + { + return temp_storage.shared_values.Alias(); + } + + + //--------------------------------------------------------------------- + // Scatter utility methods + //--------------------------------------------------------------------- + template + __device__ __forceinline__ void Scatter( + Tag tag, + OutputIt items_out, + T (&items)[ITEMS_PER_THREAD], + OffsetT (&selection_flags)[ITEMS_PER_THREAD], + OffsetT (&selection_indices)[ITEMS_PER_THREAD], + int /*num_tile_items*/, + int num_tile_selections, + OffsetT num_selections_prefix, + OffsetT /*num_selections*/) + { + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ++ITEM) + { + int local_scatter_offset = selection_indices[ITEM] - + num_selections_prefix; + if (selection_flags[ITEM]) + { + GetShared(tag)[local_scatter_offset] = items[ITEM]; + } + } + + CTA_SYNC(); + + for (int item = threadIdx.x; + item < num_tile_selections; + item += BLOCK_THREADS) + { + items_out[num_selections_prefix + item] = GetShared(tag)[item]; + } + + CTA_SYNC(); + } + + + //--------------------------------------------------------------------- + // Cooperatively scan a device-wide sequence of tiles with other CTAs + //--------------------------------------------------------------------- + + + /** + * Process first tile of input (dynamic chained scan). Returns the running count of selections (including this tile) + */ + template + __device__ __forceinline__ OffsetT ConsumeFirstTile( + int num_tile_items, ///< Number of input items comprising this tile + OffsetT tile_offset, ///< Tile offset + ScanTileStateT& tile_state) ///< Global tile state descriptor + { + KeyT keys[ITEMS_PER_THREAD]; + OffsetT selection_flags[ITEMS_PER_THREAD]; + OffsetT selection_idx[ITEMS_PER_THREAD]; + + if (IS_LAST_TILE) + { + // Fill last elements with the first element + // because collectives are not suffix guarded + BlockLoadKeys(temp_storage.load_keys) + .Load(d_keys_in + tile_offset, + keys, + num_tile_items, + *(d_keys_in + tile_offset)); + } + else + { + BlockLoadKeys(temp_storage.load_keys).Load(d_keys_in + tile_offset, keys); + } + + + CTA_SYNC(); + + ValueT values[ITEMS_PER_THREAD]; + if (IS_LAST_TILE) + { + // Fill last elements with the first element + // because collectives are not suffix guarded + BlockLoadValues(temp_storage.load_values) + .Load(d_values_in + tile_offset, + values, + num_tile_items, + *(d_values_in + tile_offset)); + } + else + { + BlockLoadValues(temp_storage.load_values) + .Load(d_values_in + tile_offset, values); + } + + CTA_SYNC(); + + BlockDiscontinuityKeys(temp_storage.scan_storage.discontinuity) + .FlagHeads(selection_flags, keys, inequality_op); + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ++ITEM) + { + // Set selection_flags for out-of-bounds items + if ((IS_LAST_TILE) && (OffsetT(threadIdx.x * ITEMS_PER_THREAD) + ITEM >= num_tile_items)) + selection_flags[ITEM] = 1; + } + + CTA_SYNC(); + + + OffsetT num_tile_selections = 0; + OffsetT num_selections = 0; + OffsetT num_selections_prefix = 0; + + BlockScanT(temp_storage.scan_storage.scan) + .ExclusiveSum(selection_flags, + selection_idx, + num_tile_selections); + + if (threadIdx.x == 0) + { + // Update tile status if this is not the last tile + if (!IS_LAST_TILE) + tile_state.SetInclusive(0, num_tile_selections); + } + + // Do not count any out-of-bounds selections + if (IS_LAST_TILE) + { + int num_discount = ITEMS_PER_TILE - num_tile_items; + num_tile_selections -= num_discount; + } + num_selections = num_tile_selections; + + CTA_SYNC(); + + Scatter(KeyTagT(), + d_keys_out, + keys, + selection_flags, + selection_idx, + num_tile_items, + num_tile_selections, + num_selections_prefix, + num_selections); + + CTA_SYNC(); + + Scatter(ValueTagT(), + d_values_out, + values, + selection_flags, + selection_idx, + num_tile_items, + num_tile_selections, + num_selections_prefix, + num_selections); + + return num_selections; + } + + /** + * Process subsequent tile of input (dynamic chained scan). Returns the running count of selections (including this tile) + */ + template + __device__ __forceinline__ OffsetT ConsumeSubsequentTile( + int num_tile_items, ///< Number of input items comprising this tile + int tile_idx, ///< Tile index + OffsetT tile_offset, ///< Tile offset + ScanTileStateT& tile_state) ///< Global tile state descriptor + { + KeyT keys[ITEMS_PER_THREAD]; + OffsetT selection_flags[ITEMS_PER_THREAD]; + OffsetT selection_idx[ITEMS_PER_THREAD]; + + if (IS_LAST_TILE) + { + // Fill last elements with the first element + // because collectives are not suffix guarded + BlockLoadKeys(temp_storage.load_keys) + .Load(d_keys_in + tile_offset, + keys, + num_tile_items, + *(d_keys_in + tile_offset)); + } + else + { + BlockLoadKeys(temp_storage.load_keys).Load(d_keys_in + tile_offset, keys); + } + + + CTA_SYNC(); + + ValueT values[ITEMS_PER_THREAD]; + if (IS_LAST_TILE) + { + // Fill last elements with the first element + // because collectives are not suffix guarded + BlockLoadValues(temp_storage.load_values) + .Load(d_values_in + tile_offset, + values, + num_tile_items, + *(d_values_in + tile_offset)); + } + else + { + BlockLoadValues(temp_storage.load_values) + .Load(d_values_in + tile_offset, values); + } + + CTA_SYNC(); + + KeyT tile_predecessor = d_keys_in[tile_offset - 1]; + BlockDiscontinuityKeys(temp_storage.scan_storage.discontinuity) + .FlagHeads(selection_flags, keys, inequality_op, tile_predecessor); + + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ++ITEM) + { + // Set selection_flags for out-of-bounds items + if ((IS_LAST_TILE) && (OffsetT(threadIdx.x * ITEMS_PER_THREAD) + ITEM >= num_tile_items)) + selection_flags[ITEM] = 1; + } + + CTA_SYNC(); + + + OffsetT num_tile_selections = 0; + OffsetT num_selections = 0; + OffsetT num_selections_prefix = 0; + + TilePrefixCallback prefix_cb(tile_state, + temp_storage.scan_storage.prefix, + cub::Sum(), + tile_idx); + BlockScanT(temp_storage.scan_storage.scan) + .ExclusiveSum(selection_flags, + selection_idx, + prefix_cb); + + num_selections = prefix_cb.GetInclusivePrefix(); + num_tile_selections = prefix_cb.GetBlockAggregate(); + num_selections_prefix = prefix_cb.GetExclusivePrefix(); + + if (IS_LAST_TILE) + { + int num_discount = ITEMS_PER_TILE - num_tile_items; + num_tile_selections -= num_discount; + num_selections -= num_discount; + } + + CTA_SYNC(); + + Scatter(KeyTagT(), + d_keys_out, + keys, + selection_flags, + selection_idx, + num_tile_items, + num_tile_selections, + num_selections_prefix, + num_selections); + + CTA_SYNC(); + + Scatter(ValueTagT(), + d_values_out, + values, + selection_flags, + selection_idx, + num_tile_items, + num_tile_selections, + num_selections_prefix, + num_selections); + + return num_selections; + } + + + /** + * Process a tile of input + */ + template + __device__ __forceinline__ OffsetT ConsumeTile( + int num_tile_items, ///< Number of input items comprising this tile + int tile_idx, ///< Tile index + OffsetT tile_offset, ///< Tile offset + ScanTileStateT& tile_state) ///< Global tile state descriptor + { + OffsetT num_selections; + if (tile_idx == 0) + { + num_selections = ConsumeFirstTile(num_tile_items, tile_offset, tile_state); + } + else + { + num_selections = ConsumeSubsequentTile(num_tile_items, tile_idx, tile_offset, tile_state); + } + + return num_selections; + } + + /** + * Scan tiles of items as part of a dynamic chained scan + */ + template ///< Output iterator type for recording number of items selection_flags + __device__ __forceinline__ void ConsumeRange( + int num_tiles, ///< Total number of input tiles + ScanTileStateT& tile_state, ///< Global tile state descriptor + NumSelectedIteratorT d_num_selected_out) ///< Output total number selection_flags + { + // Blocks are launched in increasing order, so just assign one tile per block + int tile_idx = (blockIdx.x * gridDim.y) + blockIdx.y; // Current tile index + OffsetT tile_offset = tile_idx * ITEMS_PER_TILE; // Global offset for the current tile + + if (tile_idx < num_tiles - 1) + { + ConsumeTile(ITEMS_PER_TILE, + tile_idx, + tile_offset, + tile_state); + } + else + { + int num_remaining = static_cast(num_items - tile_offset); + OffsetT num_selections = ConsumeTile(num_remaining, + tile_idx, + tile_offset, + tile_state); + if (threadIdx.x == 0) + { + *d_num_selected_out = num_selections; + } + } + } +}; + + + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/agent/single_pass_scan_operators.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/agent/single_pass_scan_operators.cuh new file mode 100644 index 0000000000000000000000000000000000000000..351cea2dd288f5255fcca3de069472b6be79abaa --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/agent/single_pass_scan_operators.cuh @@ -0,0 +1,1217 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * Callback operator types for supplying BlockScan prefixes + */ + +#pragma once + +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +CUB_NAMESPACE_BEGIN + + +/****************************************************************************** + * Prefix functor type for maintaining a running prefix while scanning a + * region independent of other thread blocks + ******************************************************************************/ + +/** + * Stateful callback operator type for supplying BlockScan prefixes. + * Maintains a running prefix that can be applied to consecutive + * BlockScan operations. + */ +template < + typename T, ///< BlockScan value type + typename ScanOpT> ///< Wrapped scan operator type +struct BlockScanRunningPrefixOp +{ + ScanOpT op; ///< Wrapped scan operator + T running_total; ///< Running block-wide prefix + + /// Constructor + __device__ __forceinline__ BlockScanRunningPrefixOp(ScanOpT op) + : + op(op) + {} + + /// Constructor + __device__ __forceinline__ BlockScanRunningPrefixOp( + T starting_prefix, + ScanOpT op) + : + op(op), + running_total(starting_prefix) + {} + + /** + * Prefix callback operator. Returns the block-wide running_total in thread-0. + */ + __device__ __forceinline__ T operator()( + const T &block_aggregate) ///< The aggregate sum of the BlockScan inputs + { + T retval = running_total; + running_total = op(running_total, block_aggregate); + return retval; + } +}; + + +/****************************************************************************** + * Generic tile status interface types for block-cooperative scans + ******************************************************************************/ + +/** + * Enumerations of tile status + */ +enum ScanTileStatus +{ + SCAN_TILE_OOB, // Out-of-bounds (e.g., padding) + SCAN_TILE_INVALID = 99, // Not yet processed + SCAN_TILE_PARTIAL, // Tile aggregate is available + SCAN_TILE_INCLUSIVE, // Inclusive tile prefix is available +}; + +namespace detail +{ + +template +__device__ __forceinline__ void delay() +{ + NV_IF_TARGET(NV_PROVIDES_SM_70, + (if (Delay > 0) + { + if (gridDim.x < GridThreshold) + { + __threadfence_block(); + } + else + { + __nanosleep(Delay); + } + })); +} + +template +__device__ __forceinline__ void delay(int ns) +{ + NV_IF_TARGET(NV_PROVIDES_SM_70, + (if (ns > 0) + { + if (gridDim.x < GridThreshold) + { + __threadfence_block(); + } + else + { + __nanosleep(ns); + } + })); +} + +template +__device__ __forceinline__ void always_delay() +{ + NV_IF_TARGET(NV_PROVIDES_SM_70, (__nanosleep(Delay);)); +} + +__device__ __forceinline__ void always_delay(int ns) +{ + NV_IF_TARGET(NV_PROVIDES_SM_70, (__nanosleep(ns);), ((void)ns;)); +} + +template +__device__ __forceinline__ void delay_or_prevent_hoisting() +{ + NV_IF_TARGET(NV_PROVIDES_SM_70, + (delay();), + (__threadfence_block();)); +} + +template +__device__ __forceinline__ void delay_or_prevent_hoisting(int ns) +{ + NV_IF_TARGET(NV_PROVIDES_SM_70, + (delay(ns);), + ((void)ns; __threadfence_block();)); +} + +template +__device__ __forceinline__ void always_delay_or_prevent_hoisting() +{ + NV_IF_TARGET(NV_PROVIDES_SM_70, + (always_delay(Delay);), + (__threadfence_block();)); +} + +__device__ __forceinline__ void always_delay_or_prevent_hoisting(int ns) +{ + NV_IF_TARGET(NV_PROVIDES_SM_70, + (always_delay(ns);), + ((void)ns; __threadfence_block();)); +} + +template +struct no_delay_constructor_t +{ + struct delay_t + { + __device__ __forceinline__ void operator()() + { + NV_IF_TARGET(NV_PROVIDES_SM_70, + (), + (__threadfence_block();)); + } + }; + + __device__ __forceinline__ no_delay_constructor_t(unsigned int /* seed */) + { + delay(); + } + + __device__ __forceinline__ delay_t operator()() { return {}; } +}; + +template +struct reduce_by_key_delay_constructor_t +{ + struct delay_t + { + __device__ __forceinline__ void operator()() + { + NV_DISPATCH_TARGET( + NV_IS_EXACTLY_SM_80, (delay();), + NV_PROVIDES_SM_70, (delay< 0, GridThreshold>();), + NV_IS_DEVICE, (__threadfence_block();)); + } + }; + + __device__ __forceinline__ reduce_by_key_delay_constructor_t(unsigned int /* seed */) + { + delay(); + } + + __device__ __forceinline__ delay_t operator()() { return {}; } +}; + +template +struct fixed_delay_constructor_t +{ + struct delay_t + { + __device__ __forceinline__ void operator()() { delay_or_prevent_hoisting(); } + }; + + __device__ __forceinline__ fixed_delay_constructor_t(unsigned int /* seed */) + { + delay(); + } + + __device__ __forceinline__ delay_t operator()() { return {}; } +}; + +template +struct exponential_backoff_constructor_t +{ + struct delay_t + { + int delay; + + __device__ __forceinline__ void operator()() + { + always_delay_or_prevent_hoisting(delay); + delay <<= 1; + } + }; + + __device__ __forceinline__ exponential_backoff_constructor_t(unsigned int /* seed */) + { + always_delay(); + } + + __device__ __forceinline__ delay_t operator()() { return {InitialDelay}; } +}; + +template +struct exponential_backoff_jitter_constructor_t +{ + struct delay_t + { + static constexpr unsigned int a = 16807; + static constexpr unsigned int c = 0; + static constexpr unsigned int m = 1u << 31; + + unsigned int max_delay; + unsigned int &seed; + + __device__ __forceinline__ unsigned int next(unsigned int min, unsigned int max) + { + return (seed = (a * seed + c) % m) % (max + 1 - min) + min; + } + + __device__ __forceinline__ void operator()() + { + always_delay_or_prevent_hoisting(next(0, max_delay)); + max_delay <<= 1; + } + }; + + unsigned int seed; + + __device__ __forceinline__ exponential_backoff_jitter_constructor_t(unsigned int seed) + : seed(seed) + { + always_delay(); + } + + __device__ __forceinline__ delay_t operator()() { return {InitialDelay, seed}; } +}; + +template +struct exponential_backoff_jitter_window_constructor_t +{ + struct delay_t + { + static constexpr unsigned int a = 16807; + static constexpr unsigned int c = 0; + static constexpr unsigned int m = 1u << 31; + + unsigned int max_delay; + unsigned int &seed; + + __device__ __forceinline__ unsigned int next(unsigned int min, unsigned int max) + { + return (seed = (a * seed + c) % m) % (max + 1 - min) + min; + } + + __device__ __forceinline__ void operator()() + { + unsigned int next_max_delay = max_delay << 1; + always_delay_or_prevent_hoisting(next(max_delay, next_max_delay)); + max_delay = next_max_delay; + } + }; + + unsigned int seed; + __device__ __forceinline__ exponential_backoff_jitter_window_constructor_t(unsigned int seed) + : seed(seed) + { + always_delay(); + } + + __device__ __forceinline__ delay_t operator()() { return {InitialDelay, seed}; } +}; + +template +struct exponential_backon_jitter_window_constructor_t +{ + struct delay_t + { + static constexpr unsigned int a = 16807; + static constexpr unsigned int c = 0; + static constexpr unsigned int m = 1u << 31; + + unsigned int max_delay; + unsigned int &seed; + + __device__ __forceinline__ unsigned int next(unsigned int min, unsigned int max) + { + return (seed = (a * seed + c) % m) % (max + 1 - min) + min; + } + + __device__ __forceinline__ void operator()() + { + int prev_delay = max_delay >> 1; + always_delay_or_prevent_hoisting(next(prev_delay, max_delay)); + max_delay = prev_delay; + } + }; + + unsigned int seed; + unsigned int max_delay = InitialDelay; + + __device__ __forceinline__ exponential_backon_jitter_window_constructor_t(unsigned int seed) + : seed(seed) + { + always_delay(); + } + + __device__ __forceinline__ delay_t operator()() + { + max_delay >>= 1; + return {max_delay, seed}; + } +}; + +template +struct exponential_backon_jitter_constructor_t +{ + struct delay_t + { + static constexpr unsigned int a = 16807; + static constexpr unsigned int c = 0; + static constexpr unsigned int m = 1u << 31; + + unsigned int max_delay; + unsigned int &seed; + + __device__ __forceinline__ unsigned int next(unsigned int min, unsigned int max) + { + return (seed = (a * seed + c) % m) % (max + 1 - min) + min; + } + + __device__ __forceinline__ void operator()() + { + always_delay_or_prevent_hoisting(next(0, max_delay)); + max_delay >>= 1; + } + }; + + unsigned int seed; + unsigned int max_delay = InitialDelay; + + __device__ __forceinline__ exponential_backon_jitter_constructor_t(unsigned int seed) + : seed(seed) + { + always_delay(); + } + + __device__ __forceinline__ delay_t operator()() + { + max_delay >>= 1; + return {max_delay, seed}; + } +}; + +template +struct exponential_backon_constructor_t +{ + struct delay_t + { + unsigned int delay; + + __device__ __forceinline__ void operator()() + { + always_delay_or_prevent_hoisting(delay); + delay >>= 1; + } + }; + + unsigned int max_delay = InitialDelay; + + __device__ __forceinline__ exponential_backon_constructor_t(unsigned int /* seed */) + { + always_delay(); + } + + __device__ __forceinline__ delay_t operator()() + { + max_delay >>= 1; + return {max_delay}; + } +}; + +using default_no_delay_constructor_t = no_delay_constructor_t<450>; +using default_no_delay_t = default_no_delay_constructor_t::delay_t; + +template +using default_delay_constructor_t = cub::detail::conditional_t::PRIMITIVE, + fixed_delay_constructor_t<350, 450>, + default_no_delay_constructor_t>; + +template +using default_delay_t = typename default_delay_constructor_t::delay_t; + +template +using default_reduce_by_key_delay_constructor_t = + detail::conditional_t<(Traits::PRIMITIVE) && (sizeof(ValueT) + sizeof(KeyT) < 16), + reduce_by_key_delay_constructor_t<350, 450>, + default_delay_constructor_t>>; +} + +/** + * Tile status interface. + */ +template < + typename T, + bool SINGLE_WORD = Traits::PRIMITIVE> +struct ScanTileState; + + +/** + * Tile status interface specialized for scan status and value types + * that can be combined into one machine word that can be + * read/written coherently in a single access. + */ +template +struct ScanTileState +{ + // Status word type + using StatusWord = cub::detail::conditional_t< + sizeof(T) == 8, + unsigned long long, + cub::detail::conditional_t< + sizeof(T) == 4, + unsigned int, + cub::detail::conditional_t>>; + + // Unit word type + using TxnWord = cub::detail::conditional_t< + sizeof(T) == 8, + ulonglong2, + cub::detail::conditional_t< + sizeof(T) == 4, + uint2, + unsigned int>>; + + // Device word type + struct TileDescriptor + { + StatusWord status; + T value; + }; + + + // Constants + enum + { + TILE_STATUS_PADDING = CUB_PTX_WARP_THREADS, + }; + + + // Device storage + TxnWord *d_tile_descriptors; + + /// Constructor + __host__ __device__ __forceinline__ + ScanTileState() + : + d_tile_descriptors(NULL) + {} + + + /// Initializer + __host__ __device__ __forceinline__ + cudaError_t Init( + int /*num_tiles*/, ///< [in] Number of tiles + void *d_temp_storage, ///< [in] Device-accessible allocation of temporary storage. When NULL, the required allocation size is written to \p temp_storage_bytes and no work is done. + size_t /*temp_storage_bytes*/) ///< [in] Size in bytes of \t d_temp_storage allocation + { + d_tile_descriptors = reinterpret_cast(d_temp_storage); + return cudaSuccess; + } + + + /** + * Compute device memory needed for tile status + */ + __host__ __device__ __forceinline__ + static cudaError_t AllocationSize( + int num_tiles, ///< [in] Number of tiles + size_t &temp_storage_bytes) ///< [out] Size in bytes of \t d_temp_storage allocation + { + temp_storage_bytes = (num_tiles + TILE_STATUS_PADDING) * sizeof(TxnWord); // bytes needed for tile status descriptors + return cudaSuccess; + } + + + /** + * Initialize (from device) + */ + __device__ __forceinline__ void InitializeStatus(int num_tiles) + { + int tile_idx = (blockIdx.x * blockDim.x) + threadIdx.x; + + TxnWord val = TxnWord(); + TileDescriptor *descriptor = reinterpret_cast(&val); + + if (tile_idx < num_tiles) + { + // Not-yet-set + descriptor->status = StatusWord(SCAN_TILE_INVALID); + d_tile_descriptors[TILE_STATUS_PADDING + tile_idx] = val; + } + + if ((blockIdx.x == 0) && (threadIdx.x < TILE_STATUS_PADDING)) + { + // Padding + descriptor->status = StatusWord(SCAN_TILE_OOB); + d_tile_descriptors[threadIdx.x] = val; + } + } + + + /** + * Update the specified tile's inclusive value and corresponding status + */ + __device__ __forceinline__ void SetInclusive(int tile_idx, T tile_inclusive) + { + TileDescriptor tile_descriptor; + tile_descriptor.status = SCAN_TILE_INCLUSIVE; + tile_descriptor.value = tile_inclusive; + + TxnWord alias; + *reinterpret_cast(&alias) = tile_descriptor; + + detail::store_relaxed(d_tile_descriptors + TILE_STATUS_PADDING + tile_idx, alias); + } + + + /** + * Update the specified tile's partial value and corresponding status + */ + __device__ __forceinline__ void SetPartial(int tile_idx, T tile_partial) + { + TileDescriptor tile_descriptor; + tile_descriptor.status = SCAN_TILE_PARTIAL; + tile_descriptor.value = tile_partial; + + TxnWord alias; + *reinterpret_cast(&alias) = tile_descriptor; + + detail::store_relaxed(d_tile_descriptors + TILE_STATUS_PADDING + tile_idx, alias); + } + + /** + * Wait for the corresponding tile to become non-invalid + */ + template > + __device__ __forceinline__ void WaitForValid( + int tile_idx, + StatusWord &status, + T &value, + DelayT delay_or_prevent_hoisting = {}) + { + TileDescriptor tile_descriptor; + + { + TxnWord alias = detail::load_relaxed(d_tile_descriptors + TILE_STATUS_PADDING + tile_idx); + tile_descriptor = reinterpret_cast(alias); + } + + while (WARP_ANY((tile_descriptor.status == SCAN_TILE_INVALID), 0xffffffff)) + { + delay_or_prevent_hoisting(); + TxnWord alias = detail::load_relaxed(d_tile_descriptors + TILE_STATUS_PADDING + tile_idx); + tile_descriptor = reinterpret_cast(alias); + } + + status = tile_descriptor.status; + value = tile_descriptor.value; + } + + /** + * Loads and returns the tile's value. The returned value is undefined if either (a) the tile's status is invalid or + * (b) there is no memory fence between reading a non-invalid status and the call to LoadValid. + */ + __device__ __forceinline__ T LoadValid(int tile_idx) + { + TxnWord alias = d_tile_descriptors[TILE_STATUS_PADDING + tile_idx]; + TileDescriptor tile_descriptor = reinterpret_cast(alias); + return tile_descriptor.value; + } +}; + + + +/** + * Tile status interface specialized for scan status and value types that + * cannot be combined into one machine word. + */ +template +struct ScanTileState +{ + // Status word type + using StatusWord = unsigned int; + + // Constants + enum + { + TILE_STATUS_PADDING = CUB_PTX_WARP_THREADS, + }; + + // Device storage + StatusWord *d_tile_status; + T *d_tile_partial; + T *d_tile_inclusive; + + /// Constructor + __host__ __device__ __forceinline__ + ScanTileState() + : + d_tile_status(NULL), + d_tile_partial(NULL), + d_tile_inclusive(NULL) + {} + + + /// Initializer + __host__ __device__ __forceinline__ + cudaError_t Init( + int num_tiles, ///< [in] Number of tiles + void *d_temp_storage, ///< [in] Device-accessible allocation of temporary storage. When NULL, the required allocation size is written to \p temp_storage_bytes and no work is done. + size_t temp_storage_bytes) ///< [in] Size in bytes of \t d_temp_storage allocation + { + cudaError_t error = cudaSuccess; + do + { + void* allocations[3] = {}; + size_t allocation_sizes[3]; + + allocation_sizes[0] = (num_tiles + TILE_STATUS_PADDING) * sizeof(StatusWord); // bytes needed for tile status descriptors + allocation_sizes[1] = (num_tiles + TILE_STATUS_PADDING) * sizeof(Uninitialized); // bytes needed for partials + allocation_sizes[2] = (num_tiles + TILE_STATUS_PADDING) * sizeof(Uninitialized); // bytes needed for inclusives + + // Compute allocation pointers into the single storage blob + if (CubDebug(error = AliasTemporaries(d_temp_storage, temp_storage_bytes, allocations, allocation_sizes))) break; + + // Alias the offsets + d_tile_status = reinterpret_cast(allocations[0]); + d_tile_partial = reinterpret_cast(allocations[1]); + d_tile_inclusive = reinterpret_cast(allocations[2]); + } + while (0); + + return error; + } + + + /** + * Compute device memory needed for tile status + */ + __host__ __device__ __forceinline__ + static cudaError_t AllocationSize( + int num_tiles, ///< [in] Number of tiles + size_t &temp_storage_bytes) ///< [out] Size in bytes of \t d_temp_storage allocation + { + // Specify storage allocation requirements + size_t allocation_sizes[3]; + allocation_sizes[0] = (num_tiles + TILE_STATUS_PADDING) * sizeof(StatusWord); // bytes needed for tile status descriptors + allocation_sizes[1] = (num_tiles + TILE_STATUS_PADDING) * sizeof(Uninitialized); // bytes needed for partials + allocation_sizes[2] = (num_tiles + TILE_STATUS_PADDING) * sizeof(Uninitialized); // bytes needed for inclusives + + // Set the necessary size of the blob + void* allocations[3] = {}; + return CubDebug(AliasTemporaries(NULL, temp_storage_bytes, allocations, allocation_sizes)); + } + + + /** + * Initialize (from device) + */ + __device__ __forceinline__ void InitializeStatus(int num_tiles) + { + int tile_idx = (blockIdx.x * blockDim.x) + threadIdx.x; + if (tile_idx < num_tiles) + { + // Not-yet-set + d_tile_status[TILE_STATUS_PADDING + tile_idx] = StatusWord(SCAN_TILE_INVALID); + } + + if ((blockIdx.x == 0) && (threadIdx.x < TILE_STATUS_PADDING)) + { + // Padding + d_tile_status[threadIdx.x] = StatusWord(SCAN_TILE_OOB); + } + } + + + /** + * Update the specified tile's inclusive value and corresponding status + */ + __device__ __forceinline__ void SetInclusive(int tile_idx, T tile_inclusive) + { + // Update tile inclusive value + ThreadStore(d_tile_inclusive + TILE_STATUS_PADDING + tile_idx, tile_inclusive); + detail::store_release(d_tile_status + TILE_STATUS_PADDING + tile_idx, StatusWord(SCAN_TILE_INCLUSIVE)); + } + + + /** + * Update the specified tile's partial value and corresponding status + */ + __device__ __forceinline__ void SetPartial(int tile_idx, T tile_partial) + { + // Update tile partial value + ThreadStore(d_tile_partial + TILE_STATUS_PADDING + tile_idx, tile_partial); + detail::store_release(d_tile_status + TILE_STATUS_PADDING + tile_idx, StatusWord(SCAN_TILE_PARTIAL)); + } + + /** + * Wait for the corresponding tile to become non-invalid + */ + template + __device__ __forceinline__ void WaitForValid( + int tile_idx, + StatusWord &status, + T &value, + DelayT delay = {}) + { + do + { + delay(); + status = detail::load_relaxed(d_tile_status + TILE_STATUS_PADDING + tile_idx); + __threadfence(); + } while (WARP_ANY((status == SCAN_TILE_INVALID), 0xffffffff)); + + if (status == StatusWord(SCAN_TILE_PARTIAL)) + { + value = ThreadLoad(d_tile_partial + TILE_STATUS_PADDING + tile_idx); + } + else + { + value = ThreadLoad(d_tile_inclusive + TILE_STATUS_PADDING + tile_idx); + } + } + + /** + * Loads and returns the tile's value. The returned value is undefined if either (a) the tile's status is invalid or + * (b) there is no memory fence between reading a non-invalid status and the call to LoadValid. + */ + __device__ __forceinline__ T LoadValid(int tile_idx) + { + return d_tile_inclusive[TILE_STATUS_PADDING + tile_idx]; + } +}; + + +/****************************************************************************** + * ReduceByKey tile status interface types for block-cooperative scans + ******************************************************************************/ + +/** + * Tile status interface for reduction by key. + * + */ +template < + typename ValueT, + typename KeyT, + bool SINGLE_WORD = (Traits::PRIMITIVE) && (sizeof(ValueT) + sizeof(KeyT) < 16)> +struct ReduceByKeyScanTileState; + + +/** + * Tile status interface for reduction by key, specialized for scan status and value types that + * cannot be combined into one machine word. + */ +template < + typename ValueT, + typename KeyT> +struct ReduceByKeyScanTileState : + ScanTileState > +{ + typedef ScanTileState > SuperClass; + + /// Constructor + __host__ __device__ __forceinline__ + ReduceByKeyScanTileState() : SuperClass() {} +}; + + +/** + * Tile status interface for reduction by key, specialized for scan status and value types that + * can be combined into one machine word that can be read/written coherently in a single access. + */ +template < + typename ValueT, + typename KeyT> +struct ReduceByKeyScanTileState +{ + using KeyValuePairT = KeyValuePair; + + // Constants + enum + { + PAIR_SIZE = static_cast(sizeof(ValueT) + sizeof(KeyT)), + TXN_WORD_SIZE = 1 << Log2::VALUE, + STATUS_WORD_SIZE = TXN_WORD_SIZE - PAIR_SIZE, + + TILE_STATUS_PADDING = CUB_PTX_WARP_THREADS, + }; + + // Status word type + using StatusWord = cub::detail::conditional_t< + STATUS_WORD_SIZE == 8, + unsigned long long, + cub::detail::conditional_t< + STATUS_WORD_SIZE == 4, + unsigned int, + cub::detail::conditional_t>>; + + // Status word type + using TxnWord = cub::detail::conditional_t< + TXN_WORD_SIZE == 16, + ulonglong2, + cub::detail::conditional_t>; + + // Device word type (for when sizeof(ValueT) == sizeof(KeyT)) + struct TileDescriptorBigStatus + { + KeyT key; + ValueT value; + StatusWord status; + }; + + // Device word type (for when sizeof(ValueT) != sizeof(KeyT)) + struct TileDescriptorLittleStatus + { + ValueT value; + StatusWord status; + KeyT key; + }; + + // Device word type + using TileDescriptor = + cub::detail::conditional_t; + + // Device storage + TxnWord *d_tile_descriptors; + + + /// Constructor + __host__ __device__ __forceinline__ + ReduceByKeyScanTileState() + : + d_tile_descriptors(NULL) + {} + + + /// Initializer + __host__ __device__ __forceinline__ + cudaError_t Init( + int /*num_tiles*/, ///< [in] Number of tiles + void *d_temp_storage, ///< [in] Device-accessible allocation of temporary storage. When NULL, the required allocation size is written to \p temp_storage_bytes and no work is done. + size_t /*temp_storage_bytes*/) ///< [in] Size in bytes of \t d_temp_storage allocation + { + d_tile_descriptors = reinterpret_cast(d_temp_storage); + return cudaSuccess; + } + + + /** + * Compute device memory needed for tile status + */ + __host__ __device__ __forceinline__ + static cudaError_t AllocationSize( + int num_tiles, ///< [in] Number of tiles + size_t &temp_storage_bytes) ///< [out] Size in bytes of \t d_temp_storage allocation + { + temp_storage_bytes = (num_tiles + TILE_STATUS_PADDING) * sizeof(TxnWord); // bytes needed for tile status descriptors + return cudaSuccess; + } + + + /** + * Initialize (from device) + */ + __device__ __forceinline__ void InitializeStatus(int num_tiles) + { + int tile_idx = (blockIdx.x * blockDim.x) + threadIdx.x; + TxnWord val = TxnWord(); + TileDescriptor *descriptor = reinterpret_cast(&val); + + if (tile_idx < num_tiles) + { + // Not-yet-set + descriptor->status = StatusWord(SCAN_TILE_INVALID); + d_tile_descriptors[TILE_STATUS_PADDING + tile_idx] = val; + } + + if ((blockIdx.x == 0) && (threadIdx.x < TILE_STATUS_PADDING)) + { + // Padding + descriptor->status = StatusWord(SCAN_TILE_OOB); + d_tile_descriptors[threadIdx.x] = val; + } + } + + + /** + * Update the specified tile's inclusive value and corresponding status + */ + __device__ __forceinline__ void SetInclusive(int tile_idx, KeyValuePairT tile_inclusive) + { + TileDescriptor tile_descriptor; + tile_descriptor.status = SCAN_TILE_INCLUSIVE; + tile_descriptor.value = tile_inclusive.value; + tile_descriptor.key = tile_inclusive.key; + + TxnWord alias; + *reinterpret_cast(&alias) = tile_descriptor; + + detail::store_relaxed(d_tile_descriptors + TILE_STATUS_PADDING + tile_idx, alias); + } + + + /** + * Update the specified tile's partial value and corresponding status + */ + __device__ __forceinline__ void SetPartial(int tile_idx, KeyValuePairT tile_partial) + { + TileDescriptor tile_descriptor; + tile_descriptor.status = SCAN_TILE_PARTIAL; + tile_descriptor.value = tile_partial.value; + tile_descriptor.key = tile_partial.key; + + TxnWord alias; + *reinterpret_cast(&alias) = tile_descriptor; + + detail::store_relaxed(d_tile_descriptors + TILE_STATUS_PADDING + tile_idx, alias); + } + + /** + * Wait for the corresponding tile to become non-invalid + */ + template ::delay_t> + __device__ __forceinline__ void WaitForValid( + int tile_idx, + StatusWord &status, + KeyValuePairT &value, + DelayT delay_or_prevent_hoisting = {}) + { +// TxnWord alias = ThreadLoad(d_tile_descriptors + TILE_STATUS_PADDING + tile_idx); +// TileDescriptor tile_descriptor = reinterpret_cast(alias); +// +// while (tile_descriptor.status == SCAN_TILE_INVALID) +// { +// __threadfence_block(); // prevent hoisting loads from loop +// +// alias = ThreadLoad(d_tile_descriptors + TILE_STATUS_PADDING + tile_idx); +// tile_descriptor = reinterpret_cast(alias); +// } +// +// status = tile_descriptor.status; +// value.value = tile_descriptor.value; +// value.key = tile_descriptor.key; + + TileDescriptor tile_descriptor; + + do + { + delay_or_prevent_hoisting(); + TxnWord alias = detail::load_relaxed(d_tile_descriptors + TILE_STATUS_PADDING + tile_idx); + tile_descriptor = reinterpret_cast(alias); + + } while (WARP_ANY((tile_descriptor.status == SCAN_TILE_INVALID), 0xffffffff)); + + status = tile_descriptor.status; + value.value = tile_descriptor.value; + value.key = tile_descriptor.key; + } + +}; + + +/****************************************************************************** + * Prefix call-back operator for coupling local block scan within a + * block-cooperative scan + ******************************************************************************/ + +/** + * Stateful block-scan prefix functor. Provides the the running prefix for + * the current tile by using the call-back warp to wait on on + * aggregates/prefixes from predecessor tiles to become available. + * + * @tparam DelayConstructorT + * Implementation detail, do not specify directly, requirements on the + * content of this type are subject to breaking change. + */ +template < + typename T, + typename ScanOpT, + typename ScanTileStateT, + int LEGACY_PTX_ARCH = 0, + typename DelayConstructorT = detail::default_delay_constructor_t> +struct TilePrefixCallbackOp +{ + // Parameterized warp reduce + typedef WarpReduce WarpReduceT; + + // Temporary storage type + struct _TempStorage + { + typename WarpReduceT::TempStorage warp_reduce; + T exclusive_prefix; + T inclusive_prefix; + T block_aggregate; + }; + + // Alias wrapper allowing temporary storage to be unioned + struct TempStorage : Uninitialized<_TempStorage> {}; + + // Type of status word + typedef typename ScanTileStateT::StatusWord StatusWord; + + // Fields + _TempStorage& temp_storage; ///< Reference to a warp-reduction instance + ScanTileStateT& tile_status; ///< Interface to tile status + ScanOpT scan_op; ///< Binary scan operator + int tile_idx; ///< The current tile index + T exclusive_prefix; ///< Exclusive prefix for the tile + T inclusive_prefix; ///< Inclusive prefix for the tile + + // Constructs prefix functor for a given tile index. + // Precondition: thread blocks processing all of the predecessor tiles were scheduled. + __device__ __forceinline__ TilePrefixCallbackOp(ScanTileStateT &tile_status, + TempStorage &temp_storage, + ScanOpT scan_op, + int tile_idx) + : temp_storage(temp_storage.Alias()) + , tile_status(tile_status) + , scan_op(scan_op) + , tile_idx(tile_idx) + {} + + // Computes the tile index and constructs prefix functor with it. + // Precondition: thread block per tile assignment. + __device__ __forceinline__ TilePrefixCallbackOp(ScanTileStateT &tile_status, + TempStorage &temp_storage, + ScanOpT scan_op) + : TilePrefixCallbackOp(tile_status, temp_storage, scan_op, blockIdx.x) + {} + + // Block until all predecessors within the warp-wide window have non-invalid status + template > + __device__ __forceinline__ + void ProcessWindow( + int predecessor_idx, ///< Preceding tile index to inspect + StatusWord &predecessor_status, ///< [out] Preceding tile status + T &window_aggregate, ///< [out] Relevant partial reduction from this window of preceding tiles + DelayT delay = {}) + { + T value; + tile_status.WaitForValid(predecessor_idx, predecessor_status, value, delay); + + // Perform a segmented reduction to get the prefix for the current window. + // Use the swizzled scan operator because we are now scanning *down* towards thread0. + + int tail_flag = (predecessor_status == StatusWord(SCAN_TILE_INCLUSIVE)); + window_aggregate = WarpReduceT(temp_storage.warp_reduce).TailSegmentedReduce( + value, + tail_flag, + SwizzleScanOp(scan_op)); + } + + + // BlockScan prefix callback functor (called by the first warp) + __device__ __forceinline__ + T operator()(T block_aggregate) + { + // Update our status with our tile-aggregate + if (threadIdx.x == 0) + { + detail::uninitialized_copy(&temp_storage.block_aggregate, + block_aggregate); + + tile_status.SetPartial(tile_idx, block_aggregate); + } + + int predecessor_idx = tile_idx - threadIdx.x - 1; + StatusWord predecessor_status; + T window_aggregate; + + // Wait for the warp-wide window of predecessor tiles to become valid + DelayConstructorT construct_delay(tile_idx); + ProcessWindow(predecessor_idx, predecessor_status, window_aggregate, construct_delay()); + + // The exclusive tile prefix starts out as the current window aggregate + exclusive_prefix = window_aggregate; + + // Keep sliding the window back until we come across a tile whose inclusive prefix is known + while (WARP_ALL((predecessor_status != StatusWord(SCAN_TILE_INCLUSIVE)), 0xffffffff)) + { + predecessor_idx -= CUB_PTX_WARP_THREADS; + + // Update exclusive tile prefix with the window prefix + ProcessWindow(predecessor_idx, predecessor_status, window_aggregate, construct_delay()); + exclusive_prefix = scan_op(window_aggregate, exclusive_prefix); + } + + // Compute the inclusive tile prefix and update the status for this tile + if (threadIdx.x == 0) + { + inclusive_prefix = scan_op(exclusive_prefix, block_aggregate); + tile_status.SetInclusive(tile_idx, inclusive_prefix); + + detail::uninitialized_copy(&temp_storage.exclusive_prefix, + exclusive_prefix); + + detail::uninitialized_copy(&temp_storage.inclusive_prefix, + inclusive_prefix); + } + + // Return exclusive_prefix + return exclusive_prefix; + } + + // Get the exclusive prefix stored in temporary storage + __device__ __forceinline__ + T GetExclusivePrefix() + { + return temp_storage.exclusive_prefix; + } + + // Get the inclusive prefix stored in temporary storage + __device__ __forceinline__ + T GetInclusivePrefix() + { + return temp_storage.inclusive_prefix; + } + + // Get the block aggregate stored in temporary storage + __device__ __forceinline__ + T GetBlockAggregate() + { + return temp_storage.block_aggregate; + } + + __device__ __forceinline__ + int GetTileIdx() const + { + return tile_idx; + } +}; + + +CUB_NAMESPACE_END + diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/block/block_adjacent_difference.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/block/block_adjacent_difference.cuh new file mode 100644 index 0000000000000000000000000000000000000000..524ffbebfaab56cd7bb87a0abd7d667b9563ffa3 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/block/block_adjacent_difference.cuh @@ -0,0 +1,1453 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2021, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * @file + * The cub::BlockAdjacentDifference class provides + * [collective](index.html#sec0) methods for computing the differences + * of adjacent elements partitioned across a CUDA thread block. + */ + +#pragma once + +#include "../config.cuh" +#include "../util_type.cuh" +#include "../util_ptx.cuh" + +CUB_NAMESPACE_BEGIN + +/** + * @brief BlockAdjacentDifference provides + * [collective](index.html#sec0) methods for computing the + * differences of adjacent elements partitioned across a CUDA thread + * block. + * + * @ingroup BlockModule + * + * @par Overview + * - BlockAdjacentDifference calculates the differences of adjacent elements in + * the elements partitioned across a CUDA thread block. Because the binary + * operation could be noncommutative, there are two sets of methods. + * Methods named SubtractLeft subtract left element `i - 1` of input sequence + * from current element `i`. Methods named SubtractRight subtract current + * element `i` from the right one `i + 1`: + * @par + * @code + * int values[4]; // [1, 2, 3, 4] + * //... + * int subtract_left_result[4]; <-- [ 1, 1, 1, 1 ] + * int subtract_right_result[4]; <-- [ -1, -1, -1, 4 ] + * @endcode + * - For SubtractLeft, if the left element is out of bounds, the + * output value is assigned to `input[0]` without modification. + * - For SubtractRight, if the right element is out of bounds, the output value + * is assigned to the current input value without modification. + * - The following example under the examples/block folder illustrates usage of + * dynamically shared memory with BlockReduce and how to re-purpose + * the same memory region: + * example_block_reduce_dyn_smem.cu + * This example can be easily adapted to the storage required by + * BlockAdjacentDifference. + * + * @par Snippet + * The code snippet below illustrates how to use @p BlockAdjacentDifference to + * compute the left difference between adjacent elements. + * + * @par + * @code + * #include + * // or equivalently + * + * struct CustomDifference + * { + * template + * __device__ DataType operator()(DataType &lhs, DataType &rhs) + * { + * return lhs - rhs; + * } + * }; + * + * __global__ void ExampleKernel(...) + * { + * // Specialize BlockAdjacentDifference for a 1D block of + * // 128 threads of type int + * using BlockAdjacentDifferenceT = + * cub::BlockAdjacentDifference; + * + * // Allocate shared memory for BlockDiscontinuity + * __shared__ typename BlockAdjacentDifferenceT::TempStorage temp_storage; + * + * // Obtain a segment of consecutive items that are blocked across threads + * int thread_data[4]; + * ... + * + * // Collectively compute adjacent_difference + * int result[4]; + * + * BlockAdjacentDifferenceT(temp_storage).SubtractLeft( + * result, + * thread_data, + * CustomDifference()); + * + * @endcode + * @par + * Suppose the set of input `thread_data` across the block of threads is + * { [4,2,1,1], [1,1,1,1], [2,3,3,3], [3,4,1,4], ... }. + * The corresponding output `result` in those threads will be + * { [4,-2,-1,0], [0,0,0,0], [1,1,0,0], [0,1,-3,3], ... }. + * + */ +template +class BlockAdjacentDifference +{ +private: + + /*************************************************************************** + * Constants and type definitions + **************************************************************************/ + + /// Constants + + /// The thread block size in threads + static constexpr int BLOCK_THREADS = BLOCK_DIM_X * BLOCK_DIM_Y * BLOCK_DIM_Z; + + /// Shared memory storage layout type (last element from each thread's input) + struct _TempStorage + { + T first_items[BLOCK_THREADS]; + T last_items[BLOCK_THREADS]; + }; + + + /*************************************************************************** + * Utility methods + **************************************************************************/ + + /// Internal storage allocator + __device__ __forceinline__ _TempStorage& PrivateStorage() + { + __shared__ _TempStorage private_storage; + return private_storage; + } + + + /// Specialization for when FlagOp has third index param + template ::HAS_PARAM> + struct ApplyOp + { + // Apply flag operator + static __device__ __forceinline__ T FlagT(FlagOp flag_op, + const T &a, + const T &b, + int idx) + { + return flag_op(b, a, idx); + } + }; + + /// Specialization for when FlagOp does not have a third index param + template + struct ApplyOp + { + // Apply flag operator + static __device__ __forceinline__ T FlagT(FlagOp flag_op, + const T &a, + const T &b, + int /*idx*/) + { + return flag_op(b, a); + } + }; + + /// Templated unrolling of item comparison (inductive case) + struct Iterate + { + /** + * Head flags + * + * @param[out] flags Calling thread's discontinuity head_flags + * @param[in] input Calling thread's input items + * @param[out] preds Calling thread's predecessor items + * @param[in] flag_op Binary boolean flag predicate + */ + template + static __device__ __forceinline__ void + FlagHeads(int linear_tid, + FlagT (&flags)[ITEMS_PER_THREAD], + T (&input)[ITEMS_PER_THREAD], + T (&preds)[ITEMS_PER_THREAD], + FlagOp flag_op) + { + #pragma unroll + for (int i = 1; i < ITEMS_PER_THREAD; ++i) { + preds[i] = input[i - 1]; + flags[i] = ApplyOp::FlagT( + flag_op, + preds[i], + input[i], + (linear_tid * ITEMS_PER_THREAD) + i); + } + } + + /** + * Tail flags + * + * @param[out] flags Calling thread's discontinuity head_flags + * @param[in] input Calling thread's input items + * @param[in] flag_op Binary boolean flag predicate + */ + template + static __device__ __forceinline__ void + FlagTails(int linear_tid, + FlagT (&flags)[ITEMS_PER_THREAD], + T (&input)[ITEMS_PER_THREAD], + FlagOp flag_op) + { + #pragma unroll + for (int i = 0; i < ITEMS_PER_THREAD - 1; ++i) { + flags[i] = ApplyOp::FlagT( + flag_op, + input[i], + input[i + 1], + (linear_tid * ITEMS_PER_THREAD) + i + 1); + } + } + }; + + /*************************************************************************** + * Thread fields + **************************************************************************/ + + /// Shared storage reference + _TempStorage &temp_storage; + + /// Linear thread-id + unsigned int linear_tid; + + +public: + + /// \smemstorage{BlockDiscontinuity} + struct TempStorage : Uninitialized<_TempStorage> {}; + + + /***********************************************************************//** + * @name Collective constructors + **************************************************************************/ + //@{ + + /** + * @brief Collective constructor using a private static allocation of shared + * memory as temporary storage. + */ + __device__ __forceinline__ BlockAdjacentDifference() + : temp_storage(PrivateStorage()) + , linear_tid(RowMajorTid(BLOCK_DIM_X, BLOCK_DIM_Y, BLOCK_DIM_Z)) + {} + + /** + * @brief Collective constructor using the specified memory allocation as + * temporary storage. + * + * @param[in] temp_storage Reference to memory allocation having layout type TempStorage + */ + __device__ __forceinline__ BlockAdjacentDifference(TempStorage &temp_storage) + : temp_storage(temp_storage.Alias()) + , linear_tid(RowMajorTid(BLOCK_DIM_X, BLOCK_DIM_Y, BLOCK_DIM_Z)) + {} + + //@} end member group + /***********************************************************************//** + * @name Read left operations + **************************************************************************/ + //@{ + + /** + * @brief Subtracts the left element of each adjacent pair of elements + * partitioned across a CUDA thread block. + * + * @par + * - \rowmajor + * - \smemreuse + * + * @par Snippet + * The code snippet below illustrates how to use @p BlockAdjacentDifference + * to compute the left difference between adjacent elements. + * + * @par + * @code + * #include + * // or equivalently + * + * struct CustomDifference + * { + * template + * __device__ DataType operator()(DataType &lhs, DataType &rhs) + * { + * return lhs - rhs; + * } + * }; + * + * __global__ void ExampleKernel(...) + * { + * // Specialize BlockAdjacentDifference for a 1D block + * // of 128 threads of type int + * using BlockAdjacentDifferenceT = + * cub::BlockAdjacentDifference; + * + * // Allocate shared memory for BlockDiscontinuity + * __shared__ typename BlockAdjacentDifferenceT::TempStorage temp_storage; + * + * // Obtain a segment of consecutive items that are blocked across threads + * int thread_data[4]; + * ... + * + * // Collectively compute adjacent_difference + * BlockAdjacentDifferenceT(temp_storage).SubtractLeft( + * thread_data, + * thread_data, + * CustomDifference()); + * + * @endcode + * @par + * Suppose the set of input `thread_data` across the block of threads is + * `{ [4,2,1,1], [1,1,1,1], [2,3,3,3], [3,4,1,4], ... }`. + * The corresponding output `result` in those threads will be + * `{ [4,-2,-1,0], [0,0,0,0], [1,1,0,0], [0,1,-3,3], ... }`. + * + * @param[out] output + * Calling thread's adjacent difference result + * + * @param[in] input + * Calling thread's input items (may be aliased to @p output) + * + * @param[in] difference_op + * Binary difference operator + */ + template + __device__ __forceinline__ void + SubtractLeft(T (&input)[ITEMS_PER_THREAD], + OutputType (&output)[ITEMS_PER_THREAD], + DifferenceOpT difference_op) + { + // Share last item + temp_storage.last_items[linear_tid] = input[ITEMS_PER_THREAD - 1]; + + CTA_SYNC(); + + #pragma unroll + for (int item = ITEMS_PER_THREAD - 1; item > 0; item--) + { + output[item] = difference_op(input[item], input[item - 1]); + } + + if (linear_tid == 0) + { + output[0] = input[0]; + } + else + { + output[0] = difference_op(input[0], + temp_storage.last_items[linear_tid - 1]); + } + } + + /** + * @brief Subtracts the left element of each adjacent pair of elements + * partitioned across a CUDA thread block. + * + * @par + * - \rowmajor + * - \smemreuse + * + * @par Snippet + * The code snippet below illustrates how to use @p BlockAdjacentDifference + * to compute the left difference between adjacent elements. + * + * @par + * @code + * #include + * // or equivalently + * + * struct CustomDifference + * { + * template + * __device__ DataType operator()(DataType &lhs, DataType &rhs) + * { + * return lhs - rhs; + * } + * }; + * + * __global__ void ExampleKernel(...) + * { + * // Specialize BlockAdjacentDifference for a 1D block of + * // 128 threads of type int + * using BlockAdjacentDifferenceT = + * cub::BlockAdjacentDifference; + * + * // Allocate shared memory for BlockDiscontinuity + * __shared__ typename BlockAdjacentDifferenceT::TempStorage temp_storage; + * + * // Obtain a segment of consecutive items that are blocked across threads + * int thread_data[4]; + * ... + * + * // The last item in the previous tile: + * int tile_predecessor_item = ...; + * + * // Collectively compute adjacent_difference + * BlockAdjacentDifferenceT(temp_storage).SubtractLeft( + * thread_data, + * thread_data, + * CustomDifference(), + * tile_predecessor_item); + * + * @endcode + * @par + * Suppose the set of input `thread_data` across the block of threads is + * `{ [4,2,1,1], [1,1,1,1], [2,3,3,3], [3,4,1,4], ... }`. + * and that `tile_predecessor_item` is `3`. The corresponding output + * `result` in those threads will be + * `{ [1,-2,-1,0], [0,0,0,0], [1,1,0,0], [0,1,-3,3], ... }`. + * + * @param[out] output + * Calling thread's adjacent difference result + * + * @param[in] input + * Calling thread's input items (may be aliased to \p output) + * + * @param[in] difference_op + * Binary difference operator + * + * @param[in] tile_predecessor_item + * [thread0 only] item which is going to be + * subtracted from the first tile item (input0 from + * thread0). + */ + template + __device__ __forceinline__ void + SubtractLeft(T (&input)[ITEMS_PER_THREAD], + OutputT (&output)[ITEMS_PER_THREAD], + DifferenceOpT difference_op, + T tile_predecessor_item) + { + // Share last item + temp_storage.last_items[linear_tid] = input[ITEMS_PER_THREAD - 1]; + + CTA_SYNC(); + + #pragma unroll + for (int item = ITEMS_PER_THREAD - 1; item > 0; item--) + { + output[item] = difference_op(input[item], input[item - 1]); + } + + // Set flag for first thread-item + if (linear_tid == 0) + { + output[0] = difference_op(input[0], tile_predecessor_item); + } + else + { + output[0] = difference_op(input[0], + temp_storage.last_items[linear_tid - 1]); + } + } + + /** + * @brief Subtracts the left element of each adjacent pair of elements + * partitioned across a CUDA thread block. + * + * @par + * - \rowmajor + * - \smemreuse + * + * @par Snippet + * The code snippet below illustrates how to use @p BlockAdjacentDifference + * to compute the left difference between adjacent elements. + * + * @par + * @code + * #include + * // or equivalently + * + * struct CustomDifference + * { + * template + * __device__ DataType operator()(DataType &lhs, DataType &rhs) + * { + * return lhs - rhs; + * } + * }; + * + * __global__ void ExampleKernel(...) + * { + * // Specialize BlockAdjacentDifference for a 1D block of + * // 128 threads of type int + * using BlockAdjacentDifferenceT = + * cub::BlockAdjacentDifference; + * + * // Allocate shared memory for BlockDiscontinuity + * __shared__ typename BlockAdjacentDifferenceT::TempStorage temp_storage; + * + * // Obtain a segment of consecutive items that are blocked across threads + * int thread_data[4]; + * ... + * int valid_items = 9; + * + * // Collectively compute adjacent_difference + * BlockAdjacentDifferenceT(temp_storage).SubtractLeftPartialTile( + * thread_data, + * thread_data, + * CustomDifference(), + * valid_items); + * + * @endcode + * @par + * Suppose the set of input `thread_data` across the block of threads is + * `{ [4,2,1,1], [1,1,1,1], [2,3,3,3], [3,4,1,4], ... }`. + * The corresponding output `result` in those threads will be + * `{ [4,-2,-1,0], [0,0,0,0], [1,3,3,3], [3,4,1,4], ... }`. + * + * @param[out] output + * Calling thread's adjacent difference result + * + * @param[in] input + * Calling thread's input items (may be aliased to \p output) + * + * @param[in] difference_op + * Binary difference operator + * + * @param[in] valid_items + * Number of valid items in thread block + */ + template + __device__ __forceinline__ void + SubtractLeftPartialTile(T (&input)[ITEMS_PER_THREAD], + OutputType (&output)[ITEMS_PER_THREAD], + DifferenceOpT difference_op, + int valid_items) + { + // Share last item + temp_storage.last_items[linear_tid] = input[ITEMS_PER_THREAD - 1]; + + CTA_SYNC(); + + if ((linear_tid + 1) * ITEMS_PER_THREAD <= valid_items) + { + #pragma unroll + for (int item = ITEMS_PER_THREAD - 1; item > 0; item--) + { + output[item] = difference_op(input[item], input[item - 1]); + } + } + else + { + #pragma unroll + for (int item = ITEMS_PER_THREAD - 1; item > 0; item--) + { + const int idx = linear_tid * ITEMS_PER_THREAD + item; + + if (idx < valid_items) + { + output[item] = difference_op(input[item], input[item - 1]); + } + else + { + output[item] = input[item]; + } + } + } + + if (linear_tid == 0 || valid_items <= linear_tid * ITEMS_PER_THREAD) + { + output[0] = input[0]; + } + else + { + output[0] = difference_op(input[0], + temp_storage.last_items[linear_tid - 1]); + } + } + + /** + * @brief Subtracts the left element of each adjacent pair of elements + * partitioned across a CUDA thread block. + * + * @par + * - \rowmajor + * - \smemreuse + * + * @par Snippet + * The code snippet below illustrates how to use @p BlockAdjacentDifference + * to compute the left difference between adjacent elements. + * + * @par + * @code + * #include + * // or equivalently + * + * struct CustomDifference + * { + * template + * __device__ DataType operator()(DataType &lhs, DataType &rhs) + * { + * return lhs - rhs; + * } + * }; + * + * __global__ void ExampleKernel(...) + * { + * // Specialize BlockAdjacentDifference for a 1D block of + * // 128 threads of type int + * using BlockAdjacentDifferenceT = + * cub::BlockAdjacentDifference; + * + * // Allocate shared memory for BlockDiscontinuity + * __shared__ typename BlockAdjacentDifferenceT::TempStorage temp_storage; + * + * // Obtain a segment of consecutive items that are blocked across threads + * int thread_data[4]; + * ... + * int valid_items = 9; + * int tile_predecessor_item = 4; + * + * // Collectively compute adjacent_difference + * BlockAdjacentDifferenceT(temp_storage).SubtractLeftPartialTile( + * thread_data, + * thread_data, + * CustomDifference(), + * valid_items, + * tile_predecessor_item); + * + * @endcode + * @par + * Suppose the set of input `thread_data` across the block of threads is + * `{ [4,2,1,1], [1,1,1,1], [2,3,3,3], [3,4,1,4], ... }`. + * The corresponding output `result` in those threads will be + * `{ [0,-2,-1,0], [0,0,0,0], [1,3,3,3], [3,4,1,4], ... }`. + * + * @param[out] output + * Calling thread's adjacent difference result + * + * @param[in] input + * Calling thread's input items (may be aliased to \p output) + * + * @param[in] difference_op + * Binary difference operator + * + * @param[in] valid_items + * Number of valid items in thread block + * + * @param[in] tile_predecessor_item + * **[thread0 only]** item which is going to be + * subtracted from the first tile item (input0 from + * thread0). + */ + template + __device__ __forceinline__ void + SubtractLeftPartialTile(T (&input)[ITEMS_PER_THREAD], + OutputType (&output)[ITEMS_PER_THREAD], + DifferenceOpT difference_op, + int valid_items, + T tile_predecessor_item) + { + // Share last item + temp_storage.last_items[linear_tid] = input[ITEMS_PER_THREAD - 1]; + + CTA_SYNC(); + + if ((linear_tid + 1) * ITEMS_PER_THREAD <= valid_items) + { + #pragma unroll + for (int item = ITEMS_PER_THREAD - 1; item > 0; item--) + { + output[item] = difference_op(input[item], input[item - 1]); + } + } + else + { + #pragma unroll + for (int item = ITEMS_PER_THREAD - 1; item > 0; item--) + { + const int idx = linear_tid * ITEMS_PER_THREAD + item; + + if (idx < valid_items) + { + output[item] = difference_op(input[item], input[item - 1]); + } + else + { + output[item] = input[item]; + } + } + } + + if (valid_items <= linear_tid * ITEMS_PER_THREAD) + { + output[0] = input[0]; + } + else if (linear_tid == 0) + { + output[0] = difference_op(input[0], + tile_predecessor_item); + } + else + { + output[0] = difference_op(input[0], + temp_storage.last_items[linear_tid - 1]); + } + } + + //@} end member group + /******************************************************************//** + * @name Read right operations + *********************************************************************/ + //@{ + + /** + * @brief Subtracts the right element of each adjacent pair of elements + * partitioned across a CUDA thread block. + * + * @par + * - \rowmajor + * - \smemreuse + * + * @par Snippet + * The code snippet below illustrates how to use @p BlockAdjacentDifference + * to compute the right difference between adjacent elements. + * + * @par + * @code + * #include + * // or equivalently + * + * struct CustomDifference + * { + * template + * __device__ DataType operator()(DataType &lhs, DataType &rhs) + * { + * return lhs - rhs; + * } + * }; + * + * __global__ void ExampleKernel(...) + * { + * // Specialize BlockAdjacentDifference for a 1D block of + * // 128 threads of type int + * using BlockAdjacentDifferenceT = + * cub::BlockAdjacentDifference; + * + * // Allocate shared memory for BlockDiscontinuity + * __shared__ typename BlockAdjacentDifferenceT::TempStorage temp_storage; + * + * // Obtain a segment of consecutive items that are blocked across threads + * int thread_data[4]; + * ... + * + * // Collectively compute adjacent_difference + * BlockAdjacentDifferenceT(temp_storage).SubtractRight( + * thread_data, + * thread_data, + * CustomDifference()); + * + * @endcode + * @par + * Suppose the set of input `thread_data` across the block of threads is + * `{ ...3], [4,2,1,1], [1,1,1,1], [2,3,3,3], [3,4,1,4] }`. + * The corresponding output `result` in those threads will be + * `{ ..., [-1,2,1,0], [0,0,0,-1], [-1,0,0,0], [-1,3,-3,4] }`. + * + * @param[out] output + * Calling thread's adjacent difference result + * + * @param[in] input + * Calling thread's input items (may be aliased to \p output) + * + * @param[in] difference_op + * Binary difference operator + */ + template + __device__ __forceinline__ void + SubtractRight(T (&input)[ITEMS_PER_THREAD], + OutputT (&output)[ITEMS_PER_THREAD], + DifferenceOpT difference_op) + { + // Share first item + temp_storage.first_items[linear_tid] = input[0]; + + CTA_SYNC(); + + #pragma unroll + for (int item = 0; item < ITEMS_PER_THREAD - 1; item++) + { + output[item] = difference_op(input[item], input[item + 1]); + } + + if (linear_tid == BLOCK_THREADS - 1) + { + output[ITEMS_PER_THREAD - 1] = input[ITEMS_PER_THREAD - 1]; + } + else + { + output[ITEMS_PER_THREAD - 1] = + difference_op(input[ITEMS_PER_THREAD - 1], + temp_storage.first_items[linear_tid + 1]); + } + } + + /** + * @brief Subtracts the right element of each adjacent pair of elements + * partitioned across a CUDA thread block. + * + * @par + * - \rowmajor + * - \smemreuse + * + * @par Snippet + * The code snippet below illustrates how to use @p BlockAdjacentDifference + * to compute the right difference between adjacent elements. + * + * @par + * @code + * #include + * // or equivalently + * + * struct CustomDifference + * { + * template + * __device__ DataType operator()(DataType &lhs, DataType &rhs) + * { + * return lhs - rhs; + * } + * }; + * + * __global__ void ExampleKernel(...) + * { + * // Specialize BlockAdjacentDifference for a 1D block of + * // 128 threads of type int + * using BlockAdjacentDifferenceT = + * cub::BlockAdjacentDifference; + * + * // Allocate shared memory for BlockDiscontinuity + * __shared__ typename BlockAdjacentDifferenceT::TempStorage temp_storage; + * + * // Obtain a segment of consecutive items that are blocked across threads + * int thread_data[4]; + * ... + * + * // The first item in the nest tile: + * int tile_successor_item = ...; + * + * // Collectively compute adjacent_difference + * BlockAdjacentDifferenceT(temp_storage).SubtractRight( + * thread_data, + * thread_data, + * CustomDifference(), + * tile_successor_item); + * + * @endcode + * @par + * Suppose the set of input `thread_data` across the block of threads is + * `{ ...3], [4,2,1,1], [1,1,1,1], [2,3,3,3], [3,4,1,4] }`, + * and that `tile_successor_item` is `3`. The corresponding output `result` + * in those threads will be + * `{ ..., [-1,2,1,0], [0,0,0,-1], [-1,0,0,0], [-1,3,-3,1] }`. + * + * @param[out] output + * Calling thread's adjacent difference result + * + * @param[in] input + * Calling thread's input items (may be aliased to @p output) + * + * @param[in] difference_op + * Binary difference operator + * + * @param[in] tile_successor_item + * [threadBLOCK_THREADS-1 only] item + * which is going to be subtracted from the last tile item + * (inputITEMS_PER_THREAD-1 from + * threadBLOCK_THREADS-1). + */ + template + __device__ __forceinline__ void + SubtractRight(T (&input)[ITEMS_PER_THREAD], + OutputT (&output)[ITEMS_PER_THREAD], + DifferenceOpT difference_op, + T tile_successor_item) + { + // Share first item + temp_storage.first_items[linear_tid] = input[0]; + + CTA_SYNC(); + + // Set flag for last thread-item + T successor_item = (linear_tid == BLOCK_THREADS - 1) + ? tile_successor_item // Last thread + : temp_storage.first_items[linear_tid + 1]; + + #pragma unroll + for (int item = 0; item < ITEMS_PER_THREAD - 1; item++) + { + output[item] = difference_op(input[item], input[item + 1]); + } + + output[ITEMS_PER_THREAD - 1] = + difference_op(input[ITEMS_PER_THREAD - 1], successor_item); + } + + /** + * @brief Subtracts the right element of each adjacent pair in range of + * elements partitioned across a CUDA thread block. + * + * @par + * - \rowmajor + * - \smemreuse + * + * @par Snippet + * The code snippet below illustrates how to use @p BlockAdjacentDifference to + * compute the right difference between adjacent elements. + * + * @par + * @code + * #include + * // or equivalently + * + * struct CustomDifference + * { + * template + * __device__ DataType operator()(DataType &lhs, DataType &rhs) + * { + * return lhs - rhs; + * } + * }; + * + * __global__ void ExampleKernel(...) + * { + * // Specialize BlockAdjacentDifference for a 1D block of + * // 128 threads of type int + * using BlockAdjacentDifferenceT = + * cub::BlockAdjacentDifference; + * + * // Allocate shared memory for BlockDiscontinuity + * __shared__ typename BlockAdjacentDifferenceT::TempStorage temp_storage; + * + * // Obtain a segment of consecutive items that are blocked across threads + * int thread_data[4]; + * ... + * + * // Collectively compute adjacent_difference + * BlockAdjacentDifferenceT(temp_storage).SubtractRightPartialTile( + * thread_data, + * thread_data, + * CustomDifference(), + * valid_items); + * + * @endcode + * @par + * Suppose the set of input `thread_data` across the block of threads is + * `{ ...3], [4,2,1,1], [1,1,1,1], [2,3,3,3], [3,4,1,4] }`. + * and that `valid_items` is `507`. The corresponding output `result` in + * those threads will be + * `{ ..., [-1,2,1,0], [0,0,0,-1], [-1,0,3,3], [3,4,1,4] }`. + * + * @param[out] output + * Calling thread's adjacent difference result + * + * @param[in] input + * Calling thread's input items (may be aliased to @p output) + * + * @param[in] difference_op + * Binary difference operator + * + * @param[in] valid_items + * Number of valid items in thread block + */ + template + __device__ __forceinline__ void + SubtractRightPartialTile(T (&input)[ITEMS_PER_THREAD], + OutputT (&output)[ITEMS_PER_THREAD], + DifferenceOpT difference_op, + int valid_items) + { + // Share first item + temp_storage.first_items[linear_tid] = input[0]; + + CTA_SYNC(); + + if ((linear_tid + 1) * ITEMS_PER_THREAD < valid_items) + { + #pragma unroll + for (int item = 0; item < ITEMS_PER_THREAD - 1; item++) + { + output[item] = difference_op(input[item], input[item + 1]); + } + + output[ITEMS_PER_THREAD - 1] = + difference_op(input[ITEMS_PER_THREAD - 1], + temp_storage.first_items[linear_tid + 1]); + } + else + { + #pragma unroll + for (int item = 0; item < ITEMS_PER_THREAD; item++) + { + const int idx = linear_tid * ITEMS_PER_THREAD + item; + + // Right element of input[valid_items - 1] is out of bounds. + // According to the API it's copied into output array + // without modification. + if (idx < valid_items - 1) + { + output[item] = difference_op(input[item], input[item + 1]); + } + else + { + output[item] = input[item]; + } + } + } + } + + //@} end member group + /******************************************************************//** + * @name Head flag operations (deprecated) + *********************************************************************/ + //@{ + + #ifndef DOXYGEN_SHOULD_SKIP_THIS // Do not document + + /** + * \deprecated [Since 1.14.0] The cub::BlockAdjacentDifference::FlagHeads + * APIs are deprecated. Use cub::BlockAdjacentDifference::SubtractLeft instead. + */ + template < + int ITEMS_PER_THREAD, + typename FlagT, + typename FlagOp> + CUB_DEPRECATED __device__ __forceinline__ void FlagHeads( + FlagT (&output)[ITEMS_PER_THREAD], ///< [out] Calling thread's discontinuity head_flags + T (&input)[ITEMS_PER_THREAD], ///< [in] Calling thread's input items + T (&preds)[ITEMS_PER_THREAD], ///< [out] Calling thread's predecessor items + FlagOp flag_op) ///< [in] Binary boolean flag predicate + { + // Share last item + temp_storage.last_items[linear_tid] = input[ITEMS_PER_THREAD - 1]; + + CTA_SYNC(); + + if (linear_tid == 0) + { + // Set flag for first thread-item (preds[0] is undefined) + output[0] = 1; + } + else + { + preds[0] = temp_storage.last_items[linear_tid - 1]; + output[0] = ApplyOp::FlagT(flag_op, preds[0], input[0], linear_tid * ITEMS_PER_THREAD); + } + + // Set output for remaining items + Iterate::FlagHeads(linear_tid, output, input, preds, flag_op); + } + + /** + * \deprecated [Since 1.14.0] The cub::BlockAdjacentDifference::FlagHeads + * APIs are deprecated. Use cub::BlockAdjacentDifference::SubtractLeft instead. + */ + template + CUB_DEPRECATED __device__ __forceinline__ void FlagHeads( + FlagT (&output)[ITEMS_PER_THREAD], ///< [out] Calling thread's discontinuity result + T (&input)[ITEMS_PER_THREAD], ///< [in] Calling thread's input items + T (&preds)[ITEMS_PER_THREAD], ///< [out] Calling thread's predecessor items + FlagOp flag_op, ///< [in] Binary boolean flag predicate + T tile_predecessor_item) ///< [in] [thread0 only] Item with which to compare the first tile item (input0 from thread0). + { + // Share last item + temp_storage.last_items[linear_tid] = input[ITEMS_PER_THREAD - 1]; + + CTA_SYNC(); + + // Set flag for first thread-item + preds[0] = (linear_tid == 0) ? + tile_predecessor_item : // First thread + temp_storage.last_items[linear_tid - 1]; + + output[0] = ApplyOp::FlagT(flag_op, preds[0], input[0], linear_tid * ITEMS_PER_THREAD); + + // Set output for remaining items + Iterate::FlagHeads(linear_tid, output, input, preds, flag_op); + } + +#endif // DOXYGEN_SHOULD_SKIP_THIS + + /** + * \deprecated [Since 1.14.0] The cub::BlockAdjacentDifference::FlagHeads + * APIs are deprecated. Use cub::BlockAdjacentDifference::SubtractLeft instead. + */ + template + CUB_DEPRECATED __device__ __forceinline__ void + FlagHeads(FlagT (&output)[ITEMS_PER_THREAD], ///< [out] Calling thread's discontinuity result + T (&input)[ITEMS_PER_THREAD], ///< [in] Calling thread's input items + FlagOp flag_op) ///< [in] Binary boolean flag predicate + { + T preds[ITEMS_PER_THREAD]; + FlagHeads(output, input, preds, flag_op); + } + + /** + * \deprecated [Since 1.14.0] The cub::BlockAdjacentDifference::FlagHeads + * APIs are deprecated. Use cub::BlockAdjacentDifference::SubtractLeft instead. + */ + template + CUB_DEPRECATED __device__ __forceinline__ void + FlagHeads(FlagT (&output)[ITEMS_PER_THREAD], ///< [out] Calling thread's discontinuity result + T (&input)[ITEMS_PER_THREAD], ///< [in] Calling thread's input items + FlagOp flag_op, ///< [in] Binary boolean flag predicate + T tile_predecessor_item) ///< [in] [thread0 only] Item with which to compare the first tile item (input0 from thread0). + { + T preds[ITEMS_PER_THREAD]; + FlagHeads(output, input, preds, flag_op, tile_predecessor_item); + } + + + /** + * \deprecated [Since 1.14.0] The cub::BlockAdjacentDifference::FlagTails + * APIs are deprecated. Use cub::BlockAdjacentDifference::SubtractRight instead. + */ + template < + int ITEMS_PER_THREAD, + typename FlagT, + typename FlagOp> + CUB_DEPRECATED __device__ __forceinline__ void FlagTails( + FlagT (&output)[ITEMS_PER_THREAD], ///< [out] Calling thread's discontinuity result + T (&input)[ITEMS_PER_THREAD], ///< [in] Calling thread's input items + FlagOp flag_op) ///< [in] Binary boolean flag predicate + { + // Share first item + temp_storage.first_items[linear_tid] = input[0]; + + CTA_SYNC(); + + // Set flag for last thread-item + output[ITEMS_PER_THREAD - 1] = (linear_tid == BLOCK_THREADS - 1) ? + 1 : // Last thread + ApplyOp::FlagT( + flag_op, + input[ITEMS_PER_THREAD - 1], + temp_storage.first_items[linear_tid + 1], + (linear_tid * ITEMS_PER_THREAD) + ITEMS_PER_THREAD); + + // Set output for remaining items + Iterate::FlagTails(linear_tid, output, input, flag_op); + } + + + /** + * \deprecated [Since 1.14.0] The cub::BlockAdjacentDifference::FlagTails + * APIs are deprecated. Use cub::BlockAdjacentDifference::SubtractRight instead. + */ + template < + int ITEMS_PER_THREAD, + typename FlagT, + typename FlagOp> + CUB_DEPRECATED __device__ __forceinline__ void FlagTails( + FlagT (&output)[ITEMS_PER_THREAD], ///< [out] Calling thread's discontinuity result + T (&input)[ITEMS_PER_THREAD], ///< [in] Calling thread's input items + FlagOp flag_op, ///< [in] Binary boolean flag predicate + T tile_successor_item) ///< [in] [threadBLOCK_THREADS-1 only] Item with which to compare the last tile item (inputITEMS_PER_THREAD-1 from threadBLOCK_THREADS-1). + { + // Share first item + temp_storage.first_items[linear_tid] = input[0]; + + CTA_SYNC(); + + // Set flag for last thread-item + T successor_item = (linear_tid == BLOCK_THREADS - 1) ? + tile_successor_item : // Last thread + temp_storage.first_items[linear_tid + 1]; + + output[ITEMS_PER_THREAD - 1] = ApplyOp::FlagT( + flag_op, + input[ITEMS_PER_THREAD - 1], + successor_item, + (linear_tid * ITEMS_PER_THREAD) + ITEMS_PER_THREAD); + + // Set output for remaining items + Iterate::FlagTails(linear_tid, output, input, flag_op); + } + + + /** + * \deprecated [Since 1.14.0] The cub::BlockAdjacentDifference::FlagHeadsAndTails + * APIs are deprecated. Use cub::BlockAdjacentDifference::SubtractLeft or + * cub::BlockAdjacentDifference::SubtractRight instead. + */ + template < + int ITEMS_PER_THREAD, + typename FlagT, + typename FlagOp> + CUB_DEPRECATED __device__ __forceinline__ void FlagHeadsAndTails( + FlagT (&head_flags)[ITEMS_PER_THREAD], ///< [out] Calling thread's discontinuity head_flags + FlagT (&tail_flags)[ITEMS_PER_THREAD], ///< [out] Calling thread's discontinuity tail_flags + T (&input)[ITEMS_PER_THREAD], ///< [in] Calling thread's input items + FlagOp flag_op) ///< [in] Binary boolean flag predicate + { + // Share first and last items + temp_storage.first_items[linear_tid] = input[0]; + temp_storage.last_items[linear_tid] = input[ITEMS_PER_THREAD - 1]; + + CTA_SYNC(); + + T preds[ITEMS_PER_THREAD]; + + // Set flag for first thread-item + preds[0] = temp_storage.last_items[linear_tid - 1]; + if (linear_tid == 0) + { + head_flags[0] = 1; + } + else + { + head_flags[0] = ApplyOp::FlagT( + flag_op, + preds[0], + input[0], + linear_tid * ITEMS_PER_THREAD); + } + + + // Set flag for last thread-item + tail_flags[ITEMS_PER_THREAD - 1] = (linear_tid == BLOCK_THREADS - 1) ? + 1 : // Last thread + ApplyOp::FlagT( + flag_op, + input[ITEMS_PER_THREAD - 1], + temp_storage.first_items[linear_tid + 1], + (linear_tid * ITEMS_PER_THREAD) + ITEMS_PER_THREAD); + + // Set head_flags for remaining items + Iterate::FlagHeads(linear_tid, head_flags, input, preds, flag_op); + + // Set tail_flags for remaining items + Iterate::FlagTails(linear_tid, tail_flags, input, flag_op); + } + + + /** + * \deprecated [Since 1.14.0] The cub::BlockAdjacentDifference::FlagHeadsAndTails + * APIs are deprecated. Use cub::BlockAdjacentDifference::SubtractLeft or + * cub::BlockAdjacentDifference::SubtractRight instead. + */ + template < + int ITEMS_PER_THREAD, + typename FlagT, + typename FlagOp> + CUB_DEPRECATED __device__ __forceinline__ void FlagHeadsAndTails( + FlagT (&head_flags)[ITEMS_PER_THREAD], ///< [out] Calling thread's discontinuity head_flags + FlagT (&tail_flags)[ITEMS_PER_THREAD], ///< [out] Calling thread's discontinuity tail_flags + T tile_successor_item, ///< [in] [threadBLOCK_THREADS-1 only] Item with which to compare the last tile item (inputITEMS_PER_THREAD-1 from threadBLOCK_THREADS-1). + T (&input)[ITEMS_PER_THREAD], ///< [in] Calling thread's input items + FlagOp flag_op) ///< [in] Binary boolean flag predicate + { + // Share first and last items + temp_storage.first_items[linear_tid] = input[0]; + temp_storage.last_items[linear_tid] = input[ITEMS_PER_THREAD - 1]; + + CTA_SYNC(); + + T preds[ITEMS_PER_THREAD]; + + // Set flag for first thread-item + if (linear_tid == 0) + { + head_flags[0] = 1; + } + else + { + preds[0] = temp_storage.last_items[linear_tid - 1]; + head_flags[0] = ApplyOp::FlagT( + flag_op, + preds[0], + input[0], + linear_tid * ITEMS_PER_THREAD); + } + + // Set flag for last thread-item + T successor_item = (linear_tid == BLOCK_THREADS - 1) ? + tile_successor_item : // Last thread + temp_storage.first_items[linear_tid + 1]; + + tail_flags[ITEMS_PER_THREAD - 1] = ApplyOp::FlagT( + flag_op, + input[ITEMS_PER_THREAD - 1], + successor_item, + (linear_tid * ITEMS_PER_THREAD) + ITEMS_PER_THREAD); + + // Set head_flags for remaining items + Iterate::FlagHeads(linear_tid, head_flags, input, preds, flag_op); + + // Set tail_flags for remaining items + Iterate::FlagTails(linear_tid, tail_flags, input, flag_op); + } + + /** + * \deprecated [Since 1.14.0] The cub::BlockAdjacentDifference::FlagHeadsAndTails + * APIs are deprecated. Use cub::BlockAdjacentDifference::SubtractLeft or + * cub::BlockAdjacentDifference::SubtractRight instead. + */ + template < + int ITEMS_PER_THREAD, + typename FlagT, + typename FlagOp> + CUB_DEPRECATED __device__ __forceinline__ void FlagHeadsAndTails( + FlagT (&head_flags)[ITEMS_PER_THREAD], ///< [out] Calling thread's discontinuity head_flags + T tile_predecessor_item, ///< [in] [thread0 only] Item with which to compare the first tile item (input0 from thread0). + FlagT (&tail_flags)[ITEMS_PER_THREAD], ///< [out] Calling thread's discontinuity tail_flags + T (&input)[ITEMS_PER_THREAD], ///< [in] Calling thread's input items + FlagOp flag_op) ///< [in] Binary boolean flag predicate + { + // Share first and last items + temp_storage.first_items[linear_tid] = input[0]; + temp_storage.last_items[linear_tid] = input[ITEMS_PER_THREAD - 1]; + + CTA_SYNC(); + + T preds[ITEMS_PER_THREAD]; + + // Set flag for first thread-item + preds[0] = (linear_tid == 0) ? + tile_predecessor_item : // First thread + temp_storage.last_items[linear_tid - 1]; + + head_flags[0] = ApplyOp::FlagT( + flag_op, + preds[0], + input[0], + linear_tid * ITEMS_PER_THREAD); + + // Set flag for last thread-item + tail_flags[ITEMS_PER_THREAD - 1] = (linear_tid == BLOCK_THREADS - 1) ? + 1 : // Last thread + ApplyOp::FlagT( + flag_op, + input[ITEMS_PER_THREAD - 1], + temp_storage.first_items[linear_tid + 1], + (linear_tid * ITEMS_PER_THREAD) + ITEMS_PER_THREAD); + + // Set head_flags for remaining items + Iterate::FlagHeads(linear_tid, head_flags, input, preds, flag_op); + + // Set tail_flags for remaining items + Iterate::FlagTails(linear_tid, tail_flags, input, flag_op); + } + + + /** + * \deprecated [Since 1.14.0] The cub::BlockAdjacentDifference::FlagHeadsAndTails + * APIs are deprecated. Use cub::BlockAdjacentDifference::SubtractLeft or + * cub::BlockAdjacentDifference::SubtractRight instead. + */ + template < + int ITEMS_PER_THREAD, + typename FlagT, + typename FlagOp> + CUB_DEPRECATED __device__ __forceinline__ void FlagHeadsAndTails( + FlagT (&head_flags)[ITEMS_PER_THREAD], ///< [out] Calling thread's discontinuity head_flags + T tile_predecessor_item, ///< [in] [thread0 only] Item with which to compare the first tile item (input0 from thread0). + FlagT (&tail_flags)[ITEMS_PER_THREAD], ///< [out] Calling thread's discontinuity tail_flags + T tile_successor_item, ///< [in] [threadBLOCK_THREADS-1 only] Item with which to compare the last tile item (inputITEMS_PER_THREAD-1 from threadBLOCK_THREADS-1). + T (&input)[ITEMS_PER_THREAD], ///< [in] Calling thread's input items + FlagOp flag_op) ///< [in] Binary boolean flag predicate + { + // Share first and last items + temp_storage.first_items[linear_tid] = input[0]; + temp_storage.last_items[linear_tid] = input[ITEMS_PER_THREAD - 1]; + + CTA_SYNC(); + + T preds[ITEMS_PER_THREAD]; + + // Set flag for first thread-item + preds[0] = (linear_tid == 0) ? + tile_predecessor_item : // First thread + temp_storage.last_items[linear_tid - 1]; + + head_flags[0] = ApplyOp::FlagT( + flag_op, + preds[0], + input[0], + linear_tid * ITEMS_PER_THREAD); + + // Set flag for last thread-item + T successor_item = (linear_tid == BLOCK_THREADS - 1) ? + tile_successor_item : // Last thread + temp_storage.first_items[linear_tid + 1]; + + tail_flags[ITEMS_PER_THREAD - 1] = ApplyOp::FlagT( + flag_op, + input[ITEMS_PER_THREAD - 1], + successor_item, + (linear_tid * ITEMS_PER_THREAD) + ITEMS_PER_THREAD); + + // Set head_flags for remaining items + Iterate::FlagHeads(linear_tid, head_flags, input, preds, flag_op); + + // Set tail_flags for remaining items + Iterate::FlagTails(linear_tid, tail_flags, input, flag_op); + } + +}; + + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/block/block_discontinuity.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/block/block_discontinuity.cuh new file mode 100644 index 0000000000000000000000000000000000000000..a3bf17f319034c1b1754198cdb93856b8212d46d --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/block/block_discontinuity.cuh @@ -0,0 +1,1119 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * The cub::BlockDiscontinuity class provides [collective](index.html#sec0) methods for flagging discontinuities within an ordered set of items partitioned across a CUDA thread block. + */ + +#pragma once + +#include "../config.cuh" +#include "../util_type.cuh" +#include "../util_ptx.cuh" + +CUB_NAMESPACE_BEGIN + +/** + * \brief The BlockDiscontinuity class provides [collective](index.html#sec0) methods for flagging discontinuities within an ordered set of items partitioned across a CUDA thread block. ![](discont_logo.png) + * \ingroup BlockModule + * + * \tparam T The data type to be flagged. + * \tparam BLOCK_DIM_X The thread block length in threads along the X dimension + * \tparam BLOCK_DIM_Y [optional] The thread block length in threads along the Y dimension (default: 1) + * \tparam BLOCK_DIM_Z [optional] The thread block length in threads along the Z dimension (default: 1) + * \tparam LEGACY_PTX_ARCH [optional] Unused. + * + * \par Overview + * - A set of "head flags" (or "tail flags") is often used to indicate corresponding items + * that differ from their predecessors (or successors). For example, head flags are convenient + * for demarcating disjoint data segments as part of a segmented scan or reduction. + * - \blocked + * + * \par Performance Considerations + * - \granularity + * + * \par A Simple Example + * \blockcollective{BlockDiscontinuity} + * \par + * The code snippet below illustrates the head flagging of 512 integer items that + * are partitioned in a [blocked arrangement](index.html#sec5sec3) across 128 threads + * where each thread owns 4 consecutive items. + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(...) + * { + * // Specialize BlockDiscontinuity for a 1D block of 128 threads of type int + * typedef cub::BlockDiscontinuity BlockDiscontinuity; + * + * // Allocate shared memory for BlockDiscontinuity + * __shared__ typename BlockDiscontinuity::TempStorage temp_storage; + * + * // Obtain a segment of consecutive items that are blocked across threads + * int thread_data[4]; + * ... + * + * // Collectively compute head flags for discontinuities in the segment + * int head_flags[4]; + * BlockDiscontinuity(temp_storage).FlagHeads(head_flags, thread_data, cub::Inequality()); + * + * \endcode + * \par + * Suppose the set of input \p thread_data across the block of threads is + * { [0,0,1,1], [1,1,1,1], [2,3,3,3], [3,4,4,4], ... }. + * The corresponding output \p head_flags in those threads will be + * { [1,0,1,0], [0,0,0,0], [1,1,0,0], [0,1,0,0], ... }. + * + * \par Performance Considerations + * - Incurs zero bank conflicts for most types + * + * \par Re-using dynamically allocating shared memory + * The following example under the examples/block folder illustrates usage of + * dynamically shared memory with BlockReduce and how to re-purpose + * the same memory region: + * example_block_reduce_dyn_smem.cu + * + * This example can be easily adapted to the storage required by BlockDiscontinuity. + */ +template < + typename T, + int BLOCK_DIM_X, + int BLOCK_DIM_Y = 1, + int BLOCK_DIM_Z = 1, + int LEGACY_PTX_ARCH = 0> +class BlockDiscontinuity +{ +private: + + /****************************************************************************** + * Constants and type definitions + ******************************************************************************/ + + /// Constants + enum + { + /// The thread block size in threads + BLOCK_THREADS = BLOCK_DIM_X * BLOCK_DIM_Y * BLOCK_DIM_Z, + }; + + + /// Shared memory storage layout type (last element from each thread's input) + struct _TempStorage + { + T first_items[BLOCK_THREADS]; + T last_items[BLOCK_THREADS]; + }; + + + /****************************************************************************** + * Utility methods + ******************************************************************************/ + + /// Internal storage allocator + __device__ __forceinline__ _TempStorage& PrivateStorage() + { + __shared__ _TempStorage private_storage; + return private_storage; + } + + + /// Specialization for when FlagOp has third index param + template ::HAS_PARAM> + struct ApplyOp + { + // Apply flag operator + static __device__ __forceinline__ bool FlagT(FlagOp flag_op, const T &a, const T &b, int idx) + { + return flag_op(a, b, idx); + } + }; + + /// Specialization for when FlagOp does not have a third index param + template + struct ApplyOp + { + // Apply flag operator + static __device__ __forceinline__ bool FlagT(FlagOp flag_op, const T &a, const T &b, int /*idx*/) + { + return flag_op(a, b); + } + }; + + /// Templated unrolling of item comparison (inductive case) + struct Iterate + { + // Head flags + template < + int ITEMS_PER_THREAD, + typename FlagT, + typename FlagOp> + static __device__ __forceinline__ void FlagHeads( + int linear_tid, + FlagT (&flags)[ITEMS_PER_THREAD], ///< [out] Calling thread's discontinuity head_flags + T (&input)[ITEMS_PER_THREAD], ///< [in] Calling thread's input items + T (&preds)[ITEMS_PER_THREAD], ///< [out] Calling thread's predecessor items + FlagOp flag_op) ///< [in] Binary boolean flag predicate + { + #pragma unroll + for (int i = 1; i < ITEMS_PER_THREAD; ++i) { + preds[i] = input[i - 1]; + flags[i] = ApplyOp::FlagT( + flag_op, + preds[i], + input[i], + (linear_tid * ITEMS_PER_THREAD) + i); + } + } + + // Tail flags + template < + int ITEMS_PER_THREAD, + typename FlagT, + typename FlagOp> + static __device__ __forceinline__ void FlagTails( + int linear_tid, + FlagT (&flags)[ITEMS_PER_THREAD], ///< [out] Calling thread's discontinuity head_flags + T (&input)[ITEMS_PER_THREAD], ///< [in] Calling thread's input items + FlagOp flag_op) ///< [in] Binary boolean flag predicate + { + #pragma unroll + for (int i = 0; i < ITEMS_PER_THREAD - 1; ++i) { + flags[i] = ApplyOp::FlagT( + flag_op, + input[i], + input[i + 1], + (linear_tid * ITEMS_PER_THREAD) + i + 1); + } + } + + }; + + /****************************************************************************** + * Thread fields + ******************************************************************************/ + + /// Shared storage reference + _TempStorage &temp_storage; + + /// Linear thread-id + unsigned int linear_tid; + + +public: + + /// \smemstorage{BlockDiscontinuity} + struct TempStorage : Uninitialized<_TempStorage> {}; + + + /******************************************************************//** + * \name Collective constructors + *********************************************************************/ + //@{ + + /** + * \brief Collective constructor using a private static allocation of shared memory as temporary storage. + */ + __device__ __forceinline__ BlockDiscontinuity() + : + temp_storage(PrivateStorage()), + linear_tid(RowMajorTid(BLOCK_DIM_X, BLOCK_DIM_Y, BLOCK_DIM_Z)) + {} + + + /** + * \brief Collective constructor using the specified memory allocation as temporary storage. + */ + __device__ __forceinline__ BlockDiscontinuity( + TempStorage &temp_storage) ///< [in] Reference to memory allocation having layout type TempStorage + : + temp_storage(temp_storage.Alias()), + linear_tid(RowMajorTid(BLOCK_DIM_X, BLOCK_DIM_Y, BLOCK_DIM_Z)) + {} + + + //@} end member group + /******************************************************************//** + * \name Head flag operations + *********************************************************************/ + //@{ + + +#ifndef DOXYGEN_SHOULD_SKIP_THIS // Do not document + + template < + int ITEMS_PER_THREAD, + typename FlagT, + typename FlagOp> + __device__ __forceinline__ void FlagHeads( + FlagT (&head_flags)[ITEMS_PER_THREAD], ///< [out] Calling thread's discontinuity head_flags + T (&input)[ITEMS_PER_THREAD], ///< [in] Calling thread's input items + T (&preds)[ITEMS_PER_THREAD], ///< [out] Calling thread's predecessor items + FlagOp flag_op) ///< [in] Binary boolean flag predicate + { + // Share last item + temp_storage.last_items[linear_tid] = input[ITEMS_PER_THREAD - 1]; + + CTA_SYNC(); + + if (linear_tid == 0) + { + // Set flag for first thread-item (preds[0] is undefined) + head_flags[0] = 1; + } + else + { + preds[0] = temp_storage.last_items[linear_tid - 1]; + head_flags[0] = ApplyOp::FlagT(flag_op, preds[0], input[0], linear_tid * ITEMS_PER_THREAD); + } + + // Set head_flags for remaining items + Iterate::FlagHeads(linear_tid, head_flags, input, preds, flag_op); + } + + template < + int ITEMS_PER_THREAD, + typename FlagT, + typename FlagOp> + __device__ __forceinline__ void FlagHeads( + FlagT (&head_flags)[ITEMS_PER_THREAD], ///< [out] Calling thread's discontinuity head_flags + T (&input)[ITEMS_PER_THREAD], ///< [in] Calling thread's input items + T (&preds)[ITEMS_PER_THREAD], ///< [out] Calling thread's predecessor items + FlagOp flag_op, ///< [in] Binary boolean flag predicate + T tile_predecessor_item) ///< [in] [thread0 only] Item with which to compare the first tile item (input0 from thread0). + { + // Share last item + temp_storage.last_items[linear_tid] = input[ITEMS_PER_THREAD - 1]; + + CTA_SYNC(); + + // Set flag for first thread-item + preds[0] = (linear_tid == 0) ? + tile_predecessor_item : // First thread + temp_storage.last_items[linear_tid - 1]; + + head_flags[0] = ApplyOp::FlagT(flag_op, preds[0], input[0], linear_tid * ITEMS_PER_THREAD); + + // Set head_flags for remaining items + Iterate::FlagHeads(linear_tid, head_flags, input, preds, flag_op); + } + +#endif // DOXYGEN_SHOULD_SKIP_THIS + + + /** + * \brief Sets head flags indicating discontinuities between items partitioned across the thread block, for which the first item has no reference and is always flagged. + * + * \par + * - The flag head_flagsi is set for item + * inputi when + * flag_op(previous-item, inputi) + * returns \p true (where previous-item is either the preceding item + * in the same thread or the last item in the previous thread). + * - For thread0, item input0 is always flagged. + * - \blocked + * - \granularity + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates the head-flagging of 512 integer items that + * are partitioned in a [blocked arrangement](index.html#sec5sec3) across 128 threads + * where each thread owns 4 consecutive items. + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(...) + * { + * // Specialize BlockDiscontinuity for a 1D block of 128 threads of type int + * typedef cub::BlockDiscontinuity BlockDiscontinuity; + * + * // Allocate shared memory for BlockDiscontinuity + * __shared__ typename BlockDiscontinuity::TempStorage temp_storage; + * + * // Obtain a segment of consecutive items that are blocked across threads + * int thread_data[4]; + * ... + * + * // Collectively compute head flags for discontinuities in the segment + * int head_flags[4]; + * BlockDiscontinuity(temp_storage).FlagHeads(head_flags, thread_data, cub::Inequality()); + * + * \endcode + * \par + * Suppose the set of input \p thread_data across the block of threads is + * { [0,0,1,1], [1,1,1,1], [2,3,3,3], [3,4,4,4], ... }. + * The corresponding output \p head_flags in those threads will be + * { [1,0,1,0], [0,0,0,0], [1,1,0,0], [0,1,0,0], ... }. + * + * \tparam ITEMS_PER_THREAD [inferred] The number of consecutive items partitioned onto each thread. + * \tparam FlagT [inferred] The flag type (must be an integer type) + * \tparam FlagOp [inferred] Binary predicate functor type having member T operator()(const T &a, const T &b) or member T operator()(const T &a, const T &b, unsigned int b_index), and returning \p true if a discontinuity exists between \p a and \p b, otherwise \p false. \p b_index is the rank of b in the aggregate tile of data. + */ + template < + int ITEMS_PER_THREAD, + typename FlagT, + typename FlagOp> + __device__ __forceinline__ void FlagHeads( + FlagT (&head_flags)[ITEMS_PER_THREAD], ///< [out] Calling thread's discontinuity head_flags + T (&input)[ITEMS_PER_THREAD], ///< [in] Calling thread's input items + FlagOp flag_op) ///< [in] Binary boolean flag predicate + { + T preds[ITEMS_PER_THREAD]; + FlagHeads(head_flags, input, preds, flag_op); + } + + + /** + * \brief Sets head flags indicating discontinuities between items partitioned across the thread block. + * + * \par + * - The flag head_flagsi is set for item + * inputi when + * flag_op(previous-item, inputi) + * returns \p true (where previous-item is either the preceding item + * in the same thread or the last item in the previous thread). + * - For thread0, item input0 is compared + * against \p tile_predecessor_item. + * - \blocked + * - \granularity + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates the head-flagging of 512 integer items that + * are partitioned in a [blocked arrangement](index.html#sec5sec3) across 128 threads + * where each thread owns 4 consecutive items. + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(...) + * { + * // Specialize BlockDiscontinuity for a 1D block of 128 threads of type int + * typedef cub::BlockDiscontinuity BlockDiscontinuity; + * + * // Allocate shared memory for BlockDiscontinuity + * __shared__ typename BlockDiscontinuity::TempStorage temp_storage; + * + * // Obtain a segment of consecutive items that are blocked across threads + * int thread_data[4]; + * ... + * + * // Have thread0 obtain the predecessor item for the entire tile + * int tile_predecessor_item; + * if (threadIdx.x == 0) tile_predecessor_item == ... + * + * // Collectively compute head flags for discontinuities in the segment + * int head_flags[4]; + * BlockDiscontinuity(temp_storage).FlagHeads( + * head_flags, thread_data, cub::Inequality(), tile_predecessor_item); + * + * \endcode + * \par + * Suppose the set of input \p thread_data across the block of threads is + * { [0,0,1,1], [1,1,1,1], [2,3,3,3], [3,4,4,4], ... }, + * and that \p tile_predecessor_item is \p 0. The corresponding output \p head_flags in those threads will be + * { [0,0,1,0], [0,0,0,0], [1,1,0,0], [0,1,0,0], ... }. + * + * \tparam ITEMS_PER_THREAD [inferred] The number of consecutive items partitioned onto each thread. + * \tparam FlagT [inferred] The flag type (must be an integer type) + * \tparam FlagOp [inferred] Binary predicate functor type having member T operator()(const T &a, const T &b) or member T operator()(const T &a, const T &b, unsigned int b_index), and returning \p true if a discontinuity exists between \p a and \p b, otherwise \p false. \p b_index is the rank of b in the aggregate tile of data. + */ + template < + int ITEMS_PER_THREAD, + typename FlagT, + typename FlagOp> + __device__ __forceinline__ void FlagHeads( + FlagT (&head_flags)[ITEMS_PER_THREAD], ///< [out] Calling thread's discontinuity head_flags + T (&input)[ITEMS_PER_THREAD], ///< [in] Calling thread's input items + FlagOp flag_op, ///< [in] Binary boolean flag predicate + T tile_predecessor_item) ///< [in] [thread0 only] Item with which to compare the first tile item (input0 from thread0). + { + T preds[ITEMS_PER_THREAD]; + FlagHeads(head_flags, input, preds, flag_op, tile_predecessor_item); + } + + + + //@} end member group + /******************************************************************//** + * \name Tail flag operations + *********************************************************************/ + //@{ + + + /** + * \brief Sets tail flags indicating discontinuities between items partitioned across the thread block, for which the last item has no reference and is always flagged. + * + * \par + * - The flag tail_flagsi is set for item + * inputi when + * flag_op(inputi, next-item) + * returns \p true (where next-item is either the next item + * in the same thread or the first item in the next thread). + * - For threadBLOCK_THREADS-1, item + * inputITEMS_PER_THREAD-1 is always flagged. + * - \blocked + * - \granularity + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates the tail-flagging of 512 integer items that + * are partitioned in a [blocked arrangement](index.html#sec5sec3) across 128 threads + * where each thread owns 4 consecutive items. + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(...) + * { + * // Specialize BlockDiscontinuity for a 1D block of 128 threads of type int + * typedef cub::BlockDiscontinuity BlockDiscontinuity; + * + * // Allocate shared memory for BlockDiscontinuity + * __shared__ typename BlockDiscontinuity::TempStorage temp_storage; + * + * // Obtain a segment of consecutive items that are blocked across threads + * int thread_data[4]; + * ... + * + * // Collectively compute tail flags for discontinuities in the segment + * int tail_flags[4]; + * BlockDiscontinuity(temp_storage).FlagTails(tail_flags, thread_data, cub::Inequality()); + * + * \endcode + * \par + * Suppose the set of input \p thread_data across the block of threads is + * { [0,0,1,1], [1,1,1,1], [2,3,3,3], ..., [124,125,125,125] }. + * The corresponding output \p tail_flags in those threads will be + * { [0,1,0,0], [0,0,0,1], [1,0,0,...], ..., [1,0,0,1] }. + * + * \tparam ITEMS_PER_THREAD [inferred] The number of consecutive items partitioned onto each thread. + * \tparam FlagT [inferred] The flag type (must be an integer type) + * \tparam FlagOp [inferred] Binary predicate functor type having member T operator()(const T &a, const T &b) or member T operator()(const T &a, const T &b, unsigned int b_index), and returning \p true if a discontinuity exists between \p a and \p b, otherwise \p false. \p b_index is the rank of b in the aggregate tile of data. + */ + template < + int ITEMS_PER_THREAD, + typename FlagT, + typename FlagOp> + __device__ __forceinline__ void FlagTails( + FlagT (&tail_flags)[ITEMS_PER_THREAD], ///< [out] Calling thread's discontinuity tail_flags + T (&input)[ITEMS_PER_THREAD], ///< [in] Calling thread's input items + FlagOp flag_op) ///< [in] Binary boolean flag predicate + { + // Share first item + temp_storage.first_items[linear_tid] = input[0]; + + CTA_SYNC(); + + // Set flag for last thread-item + tail_flags[ITEMS_PER_THREAD - 1] = (linear_tid == BLOCK_THREADS - 1) ? + 1 : // Last thread + ApplyOp::FlagT( + flag_op, + input[ITEMS_PER_THREAD - 1], + temp_storage.first_items[linear_tid + 1], + (linear_tid * ITEMS_PER_THREAD) + ITEMS_PER_THREAD); + + // Set tail_flags for remaining items + Iterate::FlagTails(linear_tid, tail_flags, input, flag_op); + } + + + /** + * \brief Sets tail flags indicating discontinuities between items partitioned across the thread block. + * + * \par + * - The flag tail_flagsi is set for item + * inputi when + * flag_op(inputi, next-item) + * returns \p true (where next-item is either the next item + * in the same thread or the first item in the next thread). + * - For threadBLOCK_THREADS-1, item + * inputITEMS_PER_THREAD-1 is compared + * against \p tile_successor_item. + * - \blocked + * - \granularity + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates the tail-flagging of 512 integer items that + * are partitioned in a [blocked arrangement](index.html#sec5sec3) across 128 threads + * where each thread owns 4 consecutive items. + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(...) + * { + * // Specialize BlockDiscontinuity for a 1D block of 128 threads of type int + * typedef cub::BlockDiscontinuity BlockDiscontinuity; + * + * // Allocate shared memory for BlockDiscontinuity + * __shared__ typename BlockDiscontinuity::TempStorage temp_storage; + * + * // Obtain a segment of consecutive items that are blocked across threads + * int thread_data[4]; + * ... + * + * // Have thread127 obtain the successor item for the entire tile + * int tile_successor_item; + * if (threadIdx.x == 127) tile_successor_item == ... + * + * // Collectively compute tail flags for discontinuities in the segment + * int tail_flags[4]; + * BlockDiscontinuity(temp_storage).FlagTails( + * tail_flags, thread_data, cub::Inequality(), tile_successor_item); + * + * \endcode + * \par + * Suppose the set of input \p thread_data across the block of threads is + * { [0,0,1,1], [1,1,1,1], [2,3,3,3], ..., [124,125,125,125] } + * and that \p tile_successor_item is \p 125. The corresponding output \p tail_flags in those threads will be + * { [0,1,0,0], [0,0,0,1], [1,0,0,...], ..., [1,0,0,0] }. + * + * \tparam ITEMS_PER_THREAD [inferred] The number of consecutive items partitioned onto each thread. + * \tparam FlagT [inferred] The flag type (must be an integer type) + * \tparam FlagOp [inferred] Binary predicate functor type having member T operator()(const T &a, const T &b) or member T operator()(const T &a, const T &b, unsigned int b_index), and returning \p true if a discontinuity exists between \p a and \p b, otherwise \p false. \p b_index is the rank of b in the aggregate tile of data. + */ + template < + int ITEMS_PER_THREAD, + typename FlagT, + typename FlagOp> + __device__ __forceinline__ void FlagTails( + FlagT (&tail_flags)[ITEMS_PER_THREAD], ///< [out] Calling thread's discontinuity tail_flags + T (&input)[ITEMS_PER_THREAD], ///< [in] Calling thread's input items + FlagOp flag_op, ///< [in] Binary boolean flag predicate + T tile_successor_item) ///< [in] [threadBLOCK_THREADS-1 only] Item with which to compare the last tile item (inputITEMS_PER_THREAD-1 from threadBLOCK_THREADS-1). + { + // Share first item + temp_storage.first_items[linear_tid] = input[0]; + + CTA_SYNC(); + + // Set flag for last thread-item + T successor_item = (linear_tid == BLOCK_THREADS - 1) ? + tile_successor_item : // Last thread + temp_storage.first_items[linear_tid + 1]; + + tail_flags[ITEMS_PER_THREAD - 1] = ApplyOp::FlagT( + flag_op, + input[ITEMS_PER_THREAD - 1], + successor_item, + (linear_tid * ITEMS_PER_THREAD) + ITEMS_PER_THREAD); + + // Set tail_flags for remaining items + Iterate::FlagTails(linear_tid, tail_flags, input, flag_op); + } + + + //@} end member group + /******************************************************************//** + * \name Head & tail flag operations + *********************************************************************/ + //@{ + + + /** + * \brief Sets both head and tail flags indicating discontinuities between items partitioned across the thread block. + * + * \par + * - The flag head_flagsi is set for item + * inputi when + * flag_op(previous-item, inputi) + * returns \p true (where previous-item is either the preceding item + * in the same thread or the last item in the previous thread). + * - For thread0, item input0 is always flagged. + * - The flag tail_flagsi is set for item + * inputi when + * flag_op(inputi, next-item) + * returns \p true (where next-item is either the next item + * in the same thread or the first item in the next thread). + * - For threadBLOCK_THREADS-1, item + * inputITEMS_PER_THREAD-1 is always flagged. + * - \blocked + * - \granularity + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates the head- and tail-flagging of 512 integer items that + * are partitioned in a [blocked arrangement](index.html#sec5sec3) across 128 threads + * where each thread owns 4 consecutive items. + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(...) + * { + * // Specialize BlockDiscontinuity for a 1D block of 128 threads of type int + * typedef cub::BlockDiscontinuity BlockDiscontinuity; + * + * // Allocate shared memory for BlockDiscontinuity + * __shared__ typename BlockDiscontinuity::TempStorage temp_storage; + * + * // Obtain a segment of consecutive items that are blocked across threads + * int thread_data[4]; + * ... + * + * // Collectively compute head and flags for discontinuities in the segment + * int head_flags[4]; + * int tail_flags[4]; + * BlockDiscontinuity(temp_storage).FlagTails( + * head_flags, tail_flags, thread_data, cub::Inequality()); + * + * \endcode + * \par + * Suppose the set of input \p thread_data across the block of threads is + * { [0,0,1,1], [1,1,1,1], [2,3,3,3], ..., [124,125,125,125] } + * and that the tile_successor_item is \p 125. The corresponding output \p head_flags + * in those threads will be { [1,0,1,0], [0,0,0,0], [1,1,0,0], [0,1,0,0], ... }. + * and the corresponding output \p tail_flags in those threads will be + * { [0,1,0,0], [0,0,0,1], [1,0,0,...], ..., [1,0,0,1] }. + * + * \tparam ITEMS_PER_THREAD [inferred] The number of consecutive items partitioned onto each thread. + * \tparam FlagT [inferred] The flag type (must be an integer type) + * \tparam FlagOp [inferred] Binary predicate functor type having member T operator()(const T &a, const T &b) or member T operator()(const T &a, const T &b, unsigned int b_index), and returning \p true if a discontinuity exists between \p a and \p b, otherwise \p false. \p b_index is the rank of b in the aggregate tile of data. + */ + template < + int ITEMS_PER_THREAD, + typename FlagT, + typename FlagOp> + __device__ __forceinline__ void FlagHeadsAndTails( + FlagT (&head_flags)[ITEMS_PER_THREAD], ///< [out] Calling thread's discontinuity head_flags + FlagT (&tail_flags)[ITEMS_PER_THREAD], ///< [out] Calling thread's discontinuity tail_flags + T (&input)[ITEMS_PER_THREAD], ///< [in] Calling thread's input items + FlagOp flag_op) ///< [in] Binary boolean flag predicate + { + // Share first and last items + temp_storage.first_items[linear_tid] = input[0]; + temp_storage.last_items[linear_tid] = input[ITEMS_PER_THREAD - 1]; + + CTA_SYNC(); + + T preds[ITEMS_PER_THREAD]; + + // Set flag for first thread-item + if (linear_tid == 0) + { + head_flags[0] = 1; + } + else + { + preds[0] = temp_storage.last_items[linear_tid - 1]; + head_flags[0] = ApplyOp::FlagT( + flag_op, + preds[0], + input[0], + linear_tid * ITEMS_PER_THREAD); + } + + + // Set flag for last thread-item + tail_flags[ITEMS_PER_THREAD - 1] = (linear_tid == BLOCK_THREADS - 1) ? + 1 : // Last thread + ApplyOp::FlagT( + flag_op, + input[ITEMS_PER_THREAD - 1], + temp_storage.first_items[linear_tid + 1], + (linear_tid * ITEMS_PER_THREAD) + ITEMS_PER_THREAD); + + // Set head_flags for remaining items + Iterate::FlagHeads(linear_tid, head_flags, input, preds, flag_op); + + // Set tail_flags for remaining items + Iterate::FlagTails(linear_tid, tail_flags, input, flag_op); + } + + + /** + * \brief Sets both head and tail flags indicating discontinuities between items partitioned across the thread block. + * + * \par + * - The flag head_flagsi is set for item + * inputi when + * flag_op(previous-item, inputi) + * returns \p true (where previous-item is either the preceding item + * in the same thread or the last item in the previous thread). + * - For thread0, item input0 is always flagged. + * - The flag tail_flagsi is set for item + * inputi when + * flag_op(inputi, next-item) + * returns \p true (where next-item is either the next item + * in the same thread or the first item in the next thread). + * - For threadBLOCK_THREADS-1, item + * inputITEMS_PER_THREAD-1 is compared + * against \p tile_predecessor_item. + * - \blocked + * - \granularity + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates the head- and tail-flagging of 512 integer items that + * are partitioned in a [blocked arrangement](index.html#sec5sec3) across 128 threads + * where each thread owns 4 consecutive items. + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(...) + * { + * // Specialize BlockDiscontinuity for a 1D block of 128 threads of type int + * typedef cub::BlockDiscontinuity BlockDiscontinuity; + * + * // Allocate shared memory for BlockDiscontinuity + * __shared__ typename BlockDiscontinuity::TempStorage temp_storage; + * + * // Obtain a segment of consecutive items that are blocked across threads + * int thread_data[4]; + * ... + * + * // Have thread127 obtain the successor item for the entire tile + * int tile_successor_item; + * if (threadIdx.x == 127) tile_successor_item == ... + * + * // Collectively compute head and flags for discontinuities in the segment + * int head_flags[4]; + * int tail_flags[4]; + * BlockDiscontinuity(temp_storage).FlagTails( + * head_flags, tail_flags, tile_successor_item, thread_data, cub::Inequality()); + * + * \endcode + * \par + * Suppose the set of input \p thread_data across the block of threads is + * { [0,0,1,1], [1,1,1,1], [2,3,3,3], ..., [124,125,125,125] } + * and that the tile_successor_item is \p 125. The corresponding output \p head_flags + * in those threads will be { [1,0,1,0], [0,0,0,0], [1,1,0,0], [0,1,0,0], ... }. + * and the corresponding output \p tail_flags in those threads will be + * { [0,1,0,0], [0,0,0,1], [1,0,0,...], ..., [1,0,0,0] }. + * + * \tparam ITEMS_PER_THREAD [inferred] The number of consecutive items partitioned onto each thread. + * \tparam FlagT [inferred] The flag type (must be an integer type) + * \tparam FlagOp [inferred] Binary predicate functor type having member T operator()(const T &a, const T &b) or member T operator()(const T &a, const T &b, unsigned int b_index), and returning \p true if a discontinuity exists between \p a and \p b, otherwise \p false. \p b_index is the rank of b in the aggregate tile of data. + */ + template < + int ITEMS_PER_THREAD, + typename FlagT, + typename FlagOp> + __device__ __forceinline__ void FlagHeadsAndTails( + FlagT (&head_flags)[ITEMS_PER_THREAD], ///< [out] Calling thread's discontinuity head_flags + FlagT (&tail_flags)[ITEMS_PER_THREAD], ///< [out] Calling thread's discontinuity tail_flags + T tile_successor_item, ///< [in] [threadBLOCK_THREADS-1 only] Item with which to compare the last tile item (inputITEMS_PER_THREAD-1 from threadBLOCK_THREADS-1). + T (&input)[ITEMS_PER_THREAD], ///< [in] Calling thread's input items + FlagOp flag_op) ///< [in] Binary boolean flag predicate + { + // Share first and last items + temp_storage.first_items[linear_tid] = input[0]; + temp_storage.last_items[linear_tid] = input[ITEMS_PER_THREAD - 1]; + + CTA_SYNC(); + + T preds[ITEMS_PER_THREAD]; + + // Set flag for first thread-item + if (linear_tid == 0) + { + head_flags[0] = 1; + } + else + { + preds[0] = temp_storage.last_items[linear_tid - 1]; + head_flags[0] = ApplyOp::FlagT( + flag_op, + preds[0], + input[0], + linear_tid * ITEMS_PER_THREAD); + } + + // Set flag for last thread-item + T successor_item = (linear_tid == BLOCK_THREADS - 1) ? + tile_successor_item : // Last thread + temp_storage.first_items[linear_tid + 1]; + + tail_flags[ITEMS_PER_THREAD - 1] = ApplyOp::FlagT( + flag_op, + input[ITEMS_PER_THREAD - 1], + successor_item, + (linear_tid * ITEMS_PER_THREAD) + ITEMS_PER_THREAD); + + // Set head_flags for remaining items + Iterate::FlagHeads(linear_tid, head_flags, input, preds, flag_op); + + // Set tail_flags for remaining items + Iterate::FlagTails(linear_tid, tail_flags, input, flag_op); + } + + + /** + * \brief Sets both head and tail flags indicating discontinuities between items partitioned across the thread block. + * + * \par + * - The flag head_flagsi is set for item + * inputi when + * flag_op(previous-item, inputi) + * returns \p true (where previous-item is either the preceding item + * in the same thread or the last item in the previous thread). + * - For thread0, item input0 is compared + * against \p tile_predecessor_item. + * - The flag tail_flagsi is set for item + * inputi when + * flag_op(inputi, next-item) + * returns \p true (where next-item is either the next item + * in the same thread or the first item in the next thread). + * - For threadBLOCK_THREADS-1, item + * inputITEMS_PER_THREAD-1 is always flagged. + * - \blocked + * - \granularity + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates the head- and tail-flagging of 512 integer items that + * are partitioned in a [blocked arrangement](index.html#sec5sec3) across 128 threads + * where each thread owns 4 consecutive items. + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(...) + * { + * // Specialize BlockDiscontinuity for a 1D block of 128 threads of type int + * typedef cub::BlockDiscontinuity BlockDiscontinuity; + * + * // Allocate shared memory for BlockDiscontinuity + * __shared__ typename BlockDiscontinuity::TempStorage temp_storage; + * + * // Obtain a segment of consecutive items that are blocked across threads + * int thread_data[4]; + * ... + * + * // Have thread0 obtain the predecessor item for the entire tile + * int tile_predecessor_item; + * if (threadIdx.x == 0) tile_predecessor_item == ... + * + * // Have thread127 obtain the successor item for the entire tile + * int tile_successor_item; + * if (threadIdx.x == 127) tile_successor_item == ... + * + * // Collectively compute head and flags for discontinuities in the segment + * int head_flags[4]; + * int tail_flags[4]; + * BlockDiscontinuity(temp_storage).FlagTails( + * head_flags, tile_predecessor_item, tail_flags, tile_successor_item, + * thread_data, cub::Inequality()); + * + * \endcode + * \par + * Suppose the set of input \p thread_data across the block of threads is + * { [0,0,1,1], [1,1,1,1], [2,3,3,3], ..., [124,125,125,125] }, + * that the \p tile_predecessor_item is \p 0, and that the + * \p tile_successor_item is \p 125. The corresponding output \p head_flags + * in those threads will be { [0,0,1,0], [0,0,0,0], [1,1,0,0], [0,1,0,0], ... }. + * and the corresponding output \p tail_flags in those threads will be + * { [0,1,0,0], [0,0,0,1], [1,0,0,...], ..., [1,0,0,1] }. + * + * \tparam ITEMS_PER_THREAD [inferred] The number of consecutive items partitioned onto each thread. + * \tparam FlagT [inferred] The flag type (must be an integer type) + * \tparam FlagOp [inferred] Binary predicate functor type having member T operator()(const T &a, const T &b) or member T operator()(const T &a, const T &b, unsigned int b_index), and returning \p true if a discontinuity exists between \p a and \p b, otherwise \p false. \p b_index is the rank of b in the aggregate tile of data. + */ + template < + int ITEMS_PER_THREAD, + typename FlagT, + typename FlagOp> + __device__ __forceinline__ void FlagHeadsAndTails( + FlagT (&head_flags)[ITEMS_PER_THREAD], ///< [out] Calling thread's discontinuity head_flags + T tile_predecessor_item, ///< [in] [thread0 only] Item with which to compare the first tile item (input0 from thread0). + FlagT (&tail_flags)[ITEMS_PER_THREAD], ///< [out] Calling thread's discontinuity tail_flags + T (&input)[ITEMS_PER_THREAD], ///< [in] Calling thread's input items + FlagOp flag_op) ///< [in] Binary boolean flag predicate + { + // Share first and last items + temp_storage.first_items[linear_tid] = input[0]; + temp_storage.last_items[linear_tid] = input[ITEMS_PER_THREAD - 1]; + + CTA_SYNC(); + + T preds[ITEMS_PER_THREAD]; + + // Set flag for first thread-item + preds[0] = (linear_tid == 0) ? + tile_predecessor_item : // First thread + temp_storage.last_items[linear_tid - 1]; + + head_flags[0] = ApplyOp::FlagT( + flag_op, + preds[0], + input[0], + linear_tid * ITEMS_PER_THREAD); + + // Set flag for last thread-item + tail_flags[ITEMS_PER_THREAD - 1] = (linear_tid == BLOCK_THREADS - 1) ? + 1 : // Last thread + ApplyOp::FlagT( + flag_op, + input[ITEMS_PER_THREAD - 1], + temp_storage.first_items[linear_tid + 1], + (linear_tid * ITEMS_PER_THREAD) + ITEMS_PER_THREAD); + + // Set head_flags for remaining items + Iterate::FlagHeads(linear_tid, head_flags, input, preds, flag_op); + + // Set tail_flags for remaining items + Iterate::FlagTails(linear_tid, tail_flags, input, flag_op); + } + + + /** + * \brief Sets both head and tail flags indicating discontinuities between items partitioned across the thread block. + * + * \par + * - The flag head_flagsi is set for item + * inputi when + * flag_op(previous-item, inputi) + * returns \p true (where previous-item is either the preceding item + * in the same thread or the last item in the previous thread). + * - For thread0, item input0 is compared + * against \p tile_predecessor_item. + * - The flag tail_flagsi is set for item + * inputi when + * flag_op(inputi, next-item) + * returns \p true (where next-item is either the next item + * in the same thread or the first item in the next thread). + * - For threadBLOCK_THREADS-1, item + * inputITEMS_PER_THREAD-1 is compared + * against \p tile_successor_item. + * - \blocked + * - \granularity + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates the head- and tail-flagging of 512 integer items that + * are partitioned in a [blocked arrangement](index.html#sec5sec3) across 128 threads + * where each thread owns 4 consecutive items. + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(...) + * { + * // Specialize BlockDiscontinuity for a 1D block of 128 threads of type int + * typedef cub::BlockDiscontinuity BlockDiscontinuity; + * + * // Allocate shared memory for BlockDiscontinuity + * __shared__ typename BlockDiscontinuity::TempStorage temp_storage; + * + * // Obtain a segment of consecutive items that are blocked across threads + * int thread_data[4]; + * ... + * + * // Have thread0 obtain the predecessor item for the entire tile + * int tile_predecessor_item; + * if (threadIdx.x == 0) tile_predecessor_item == ... + * + * // Have thread127 obtain the successor item for the entire tile + * int tile_successor_item; + * if (threadIdx.x == 127) tile_successor_item == ... + * + * // Collectively compute head and flags for discontinuities in the segment + * int head_flags[4]; + * int tail_flags[4]; + * BlockDiscontinuity(temp_storage).FlagTails( + * head_flags, tile_predecessor_item, tail_flags, tile_successor_item, + * thread_data, cub::Inequality()); + * + * \endcode + * \par + * Suppose the set of input \p thread_data across the block of threads is + * { [0,0,1,1], [1,1,1,1], [2,3,3,3], ..., [124,125,125,125] }, + * that the \p tile_predecessor_item is \p 0, and that the + * \p tile_successor_item is \p 125. The corresponding output \p head_flags + * in those threads will be { [0,0,1,0], [0,0,0,0], [1,1,0,0], [0,1,0,0], ... }. + * and the corresponding output \p tail_flags in those threads will be + * { [0,1,0,0], [0,0,0,1], [1,0,0,...], ..., [1,0,0,0] }. + * + * \tparam ITEMS_PER_THREAD [inferred] The number of consecutive items partitioned onto each thread. + * \tparam FlagT [inferred] The flag type (must be an integer type) + * \tparam FlagOp [inferred] Binary predicate functor type having member T operator()(const T &a, const T &b) or member T operator()(const T &a, const T &b, unsigned int b_index), and returning \p true if a discontinuity exists between \p a and \p b, otherwise \p false. \p b_index is the rank of b in the aggregate tile of data. + */ + template < + int ITEMS_PER_THREAD, + typename FlagT, + typename FlagOp> + __device__ __forceinline__ void FlagHeadsAndTails( + FlagT (&head_flags)[ITEMS_PER_THREAD], ///< [out] Calling thread's discontinuity head_flags + T tile_predecessor_item, ///< [in] [thread0 only] Item with which to compare the first tile item (input0 from thread0). + FlagT (&tail_flags)[ITEMS_PER_THREAD], ///< [out] Calling thread's discontinuity tail_flags + T tile_successor_item, ///< [in] [threadBLOCK_THREADS-1 only] Item with which to compare the last tile item (inputITEMS_PER_THREAD-1 from threadBLOCK_THREADS-1). + T (&input)[ITEMS_PER_THREAD], ///< [in] Calling thread's input items + FlagOp flag_op) ///< [in] Binary boolean flag predicate + { + // Share first and last items + temp_storage.first_items[linear_tid] = input[0]; + temp_storage.last_items[linear_tid] = input[ITEMS_PER_THREAD - 1]; + + CTA_SYNC(); + + T preds[ITEMS_PER_THREAD]; + + // Set flag for first thread-item + preds[0] = (linear_tid == 0) ? + tile_predecessor_item : // First thread + temp_storage.last_items[linear_tid - 1]; + + head_flags[0] = ApplyOp::FlagT( + flag_op, + preds[0], + input[0], + linear_tid * ITEMS_PER_THREAD); + + // Set flag for last thread-item + T successor_item = (linear_tid == BLOCK_THREADS - 1) ? + tile_successor_item : // Last thread + temp_storage.first_items[linear_tid + 1]; + + tail_flags[ITEMS_PER_THREAD - 1] = ApplyOp::FlagT( + flag_op, + input[ITEMS_PER_THREAD - 1], + successor_item, + (linear_tid * ITEMS_PER_THREAD) + ITEMS_PER_THREAD); + + // Set head_flags for remaining items + Iterate::FlagHeads(linear_tid, head_flags, input, preds, flag_op); + + // Set tail_flags for remaining items + Iterate::FlagTails(linear_tid, tail_flags, input, flag_op); + } + + + + + //@} end member group + +}; + + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/block/block_exchange.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/block/block_exchange.cuh new file mode 100644 index 0000000000000000000000000000000000000000..5f4bc2e84a8373ceb49969f69a291841ff77293c --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/block/block_exchange.cuh @@ -0,0 +1,1144 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * The cub::BlockExchange class provides [collective](index.html#sec0) methods for rearranging data partitioned across a CUDA thread block. + */ + +#pragma once + +#include +#include +#include +#include +#include + +CUB_NAMESPACE_BEGIN + +/** + * \brief The BlockExchange class provides [collective](index.html#sec0) methods for rearranging data partitioned across a CUDA thread block. ![](transpose_logo.png) + * \ingroup BlockModule + * + * \tparam T The data type to be exchanged. + * \tparam BLOCK_DIM_X The thread block length in threads along the X dimension + * \tparam ITEMS_PER_THREAD The number of items partitioned onto each thread. + * \tparam WARP_TIME_SLICING [optional] When \p true, only use enough shared memory for a single warp's worth of tile data, time-slicing the block-wide exchange over multiple synchronized rounds. Yields a smaller memory footprint at the expense of decreased parallelism. (Default: false) + * \tparam BLOCK_DIM_Y [optional] The thread block length in threads along the Y dimension (default: 1) + * \tparam BLOCK_DIM_Z [optional] The thread block length in threads along the Z dimension (default: 1) + * \tparam LEGACY_PTX_ARCH [optional] Unused. + * + * \par Overview + * - It is commonplace for blocks of threads to rearrange data items between + * threads. For example, the device-accessible memory subsystem prefers access patterns + * where data items are "striped" across threads (where consecutive threads access consecutive items), + * yet most block-wide operations prefer a "blocked" partitioning of items across threads + * (where consecutive items belong to a single thread). + * - BlockExchange supports the following types of data exchanges: + * - Transposing between [blocked](index.html#sec5sec3) and [striped](index.html#sec5sec3) arrangements + * - Transposing between [blocked](index.html#sec5sec3) and [warp-striped](index.html#sec5sec3) arrangements + * - Scattering ranked items to a [blocked arrangement](index.html#sec5sec3) + * - Scattering ranked items to a [striped arrangement](index.html#sec5sec3) + * - \rowmajor + * + * \par A Simple Example + * \blockcollective{BlockExchange} + * \par + * The code snippet below illustrates the conversion from a "blocked" to a "striped" arrangement + * of 512 integer items partitioned across 128 threads where each thread owns 4 items. + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(int *d_data, ...) + * { + * // Specialize BlockExchange for a 1D block of 128 threads owning 4 integer items each + * typedef cub::BlockExchange BlockExchange; + * + * // Allocate shared memory for BlockExchange + * __shared__ typename BlockExchange::TempStorage temp_storage; + * + * // Load a tile of data striped across threads + * int thread_data[4]; + * cub::LoadDirectStriped<128>(threadIdx.x, d_data, thread_data); + * + * // Collectively exchange data into a blocked arrangement across threads + * BlockExchange(temp_storage).StripedToBlocked(thread_data); + * + * \endcode + * \par + * Suppose the set of striped input \p thread_data across the block of threads is + * { [0,128,256,384], [1,129,257,385], ..., [127,255,383,511] }. + * The corresponding output \p thread_data in those threads will be + * { [0,1,2,3], [4,5,6,7], [8,9,10,11], ..., [508,509,510,511] }. + * + * \par Performance Considerations + * - Proper device-specific padding ensures zero bank conflicts for most types. + * + * \par Re-using dynamically allocating shared memory + * The following example under the examples/block folder illustrates usage of + * dynamically shared memory with BlockReduce and how to re-purpose + * the same memory region: + * example_block_reduce_dyn_smem.cu + * + * This example can be easily adapted to the storage required by BlockExchange. + */ +template < + typename InputT, + int BLOCK_DIM_X, + int ITEMS_PER_THREAD, + bool WARP_TIME_SLICING = false, + int BLOCK_DIM_Y = 1, + int BLOCK_DIM_Z = 1, + int LEGACY_PTX_ARCH = 0> +class BlockExchange +{ +private: + + /****************************************************************************** + * Constants + ******************************************************************************/ + + /// Constants + enum + { + /// The thread block size in threads + BLOCK_THREADS = BLOCK_DIM_X * BLOCK_DIM_Y * BLOCK_DIM_Z, + + LOG_WARP_THREADS = CUB_LOG_WARP_THREADS(0), + WARP_THREADS = 1 << LOG_WARP_THREADS, + WARPS = (BLOCK_THREADS + WARP_THREADS - 1) / WARP_THREADS, + + LOG_SMEM_BANKS = CUB_LOG_SMEM_BANKS(0), + SMEM_BANKS = 1 << LOG_SMEM_BANKS, + + TILE_ITEMS = BLOCK_THREADS * ITEMS_PER_THREAD, + + TIME_SLICES = (WARP_TIME_SLICING) ? WARPS : 1, + + TIME_SLICED_THREADS = (WARP_TIME_SLICING) ? CUB_MIN(BLOCK_THREADS, WARP_THREADS) : BLOCK_THREADS, + TIME_SLICED_ITEMS = TIME_SLICED_THREADS * ITEMS_PER_THREAD, + + WARP_TIME_SLICED_THREADS = CUB_MIN(BLOCK_THREADS, WARP_THREADS), + WARP_TIME_SLICED_ITEMS = WARP_TIME_SLICED_THREADS * ITEMS_PER_THREAD, + + // Insert padding to avoid bank conflicts during raking when items per thread is a power of two and > 4 (otherwise we can typically use 128b loads) + INSERT_PADDING = (ITEMS_PER_THREAD > 4) && (PowerOfTwo::VALUE), + PADDING_ITEMS = (INSERT_PADDING) ? (TIME_SLICED_ITEMS >> LOG_SMEM_BANKS) : 0, + }; + + /****************************************************************************** + * Type definitions + ******************************************************************************/ + + /// Shared memory storage layout type + struct __align__(16) _TempStorage + { + InputT buff[TIME_SLICED_ITEMS + PADDING_ITEMS]; + }; + +public: + + /// \smemstorage{BlockExchange} + struct TempStorage : Uninitialized<_TempStorage> {}; + +private: + + + /****************************************************************************** + * Thread fields + ******************************************************************************/ + + /// Shared storage reference + _TempStorage &temp_storage; + + /// Linear thread-id + unsigned int linear_tid; + unsigned int lane_id; + unsigned int warp_id; + unsigned int warp_offset; + + + /****************************************************************************** + * Utility methods + ******************************************************************************/ + + /// Internal storage allocator + __device__ __forceinline__ _TempStorage& PrivateStorage() + { + __shared__ _TempStorage private_storage; + return private_storage; + } + + + /** + * Transposes data items from blocked arrangement to striped arrangement. Specialized for no timeslicing. + */ + template + __device__ __forceinline__ void BlockedToStriped( + InputT (&input_items)[ITEMS_PER_THREAD], ///< [in] Items to exchange, converting between blocked and striped arrangements. + OutputT (&output_items)[ITEMS_PER_THREAD], ///< [out] Items to exchange, converting between blocked and striped arrangements. + Int2Type /*time_slicing*/) + { + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + { + int item_offset = (linear_tid * ITEMS_PER_THREAD) + ITEM; + if (INSERT_PADDING) item_offset += item_offset >> LOG_SMEM_BANKS; + detail::uninitialized_copy(temp_storage.buff + item_offset, + input_items[ITEM]); + } + + CTA_SYNC(); + + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + { + int item_offset = int(ITEM * BLOCK_THREADS) + linear_tid; + if (INSERT_PADDING) item_offset += item_offset >> LOG_SMEM_BANKS; + output_items[ITEM] = temp_storage.buff[item_offset]; + } + } + + + /** + * Transposes data items from blocked arrangement to striped arrangement. Specialized for warp-timeslicing. + */ + template + __device__ __forceinline__ void BlockedToStriped( + InputT (&input_items)[ITEMS_PER_THREAD], ///< [in] Items to exchange, converting between blocked and striped arrangements. + OutputT (&output_items)[ITEMS_PER_THREAD], ///< [out] Items to exchange, converting between blocked and striped arrangements. + Int2Type /*time_slicing*/) + { + InputT temp_items[ITEMS_PER_THREAD]; + + #pragma unroll + for (int SLICE = 0; SLICE < TIME_SLICES; SLICE++) + { + const int SLICE_OFFSET = SLICE * TIME_SLICED_ITEMS; + const int SLICE_OOB = SLICE_OFFSET + TIME_SLICED_ITEMS; + + CTA_SYNC(); + + if (warp_id == SLICE) + { + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + { + int item_offset = (lane_id * ITEMS_PER_THREAD) + ITEM; + if (INSERT_PADDING) item_offset += item_offset >> LOG_SMEM_BANKS; + detail::uninitialized_copy(temp_storage.buff + item_offset, + input_items[ITEM]); + } + } + + CTA_SYNC(); + + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + { + // Read a strip of items + const int STRIP_OFFSET = ITEM * BLOCK_THREADS; + const int STRIP_OOB = STRIP_OFFSET + BLOCK_THREADS; + + if ((SLICE_OFFSET < STRIP_OOB) && (SLICE_OOB > STRIP_OFFSET)) + { + int item_offset = STRIP_OFFSET + linear_tid - SLICE_OFFSET; + if ((item_offset >= 0) && (item_offset < TIME_SLICED_ITEMS)) + { + if (INSERT_PADDING) item_offset += item_offset >> LOG_SMEM_BANKS; + temp_items[ITEM] = temp_storage.buff[item_offset]; + } + } + } + } + + // Copy + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + { + output_items[ITEM] = temp_items[ITEM]; + } + } + + + /** + * Transposes data items from blocked arrangement to warp-striped arrangement. Specialized for no timeslicing + */ + template + __device__ __forceinline__ void BlockedToWarpStriped( + InputT (&input_items)[ITEMS_PER_THREAD], ///< [in] Items to exchange, converting between blocked and striped arrangements. + OutputT (&output_items)[ITEMS_PER_THREAD], ///< [out] Items to exchange, converting between blocked and striped arrangements. + Int2Type /*time_slicing*/) + { + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + { + int item_offset = warp_offset + ITEM + (lane_id * ITEMS_PER_THREAD); + if (INSERT_PADDING) item_offset += item_offset >> LOG_SMEM_BANKS; + detail::uninitialized_copy(temp_storage.buff + item_offset, + input_items[ITEM]); + } + + WARP_SYNC(0xffffffff); + + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + { + int item_offset = warp_offset + (ITEM * WARP_TIME_SLICED_THREADS) + lane_id; + if (INSERT_PADDING) item_offset += item_offset >> LOG_SMEM_BANKS; + output_items[ITEM] = temp_storage.buff[item_offset]; + } + } + + /** + * Transposes data items from blocked arrangement to warp-striped arrangement. Specialized for warp-timeslicing + */ + template + __device__ __forceinline__ void BlockedToWarpStriped( + InputT (&input_items)[ITEMS_PER_THREAD], ///< [in] Items to exchange, converting between blocked and striped arrangements. + OutputT (&output_items)[ITEMS_PER_THREAD], ///< [out] Items to exchange, converting between blocked and striped arrangements. + Int2Type /*time_slicing*/) + { + if (warp_id == 0) + { + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + { + int item_offset = ITEM + (lane_id * ITEMS_PER_THREAD); + if (INSERT_PADDING) item_offset += item_offset >> LOG_SMEM_BANKS; + detail::uninitialized_copy(temp_storage.buff + item_offset, + input_items[ITEM]); + } + + WARP_SYNC(0xffffffff); + + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + { + int item_offset = (ITEM * WARP_TIME_SLICED_THREADS) + lane_id; + if (INSERT_PADDING) item_offset += item_offset >> LOG_SMEM_BANKS; + output_items[ITEM] = temp_storage.buff[item_offset]; + } + } + + #pragma unroll + for (unsigned int SLICE = 1; SLICE < TIME_SLICES; ++SLICE) + { + CTA_SYNC(); + + if (warp_id == SLICE) + { + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + { + int item_offset = ITEM + (lane_id * ITEMS_PER_THREAD); + if (INSERT_PADDING) item_offset += item_offset >> LOG_SMEM_BANKS; + detail::uninitialized_copy(temp_storage.buff + item_offset, + input_items[ITEM]); + } + + WARP_SYNC(0xffffffff); + + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + { + int item_offset = (ITEM * WARP_TIME_SLICED_THREADS) + lane_id; + if (INSERT_PADDING) item_offset += item_offset >> LOG_SMEM_BANKS; + output_items[ITEM] = temp_storage.buff[item_offset]; + } + } + } + } + + + /** + * Transposes data items from striped arrangement to blocked arrangement. Specialized for no timeslicing. + */ + template + __device__ __forceinline__ void StripedToBlocked( + InputT (&input_items)[ITEMS_PER_THREAD], ///< [in] Items to exchange, converting between blocked and striped arrangements. + OutputT (&output_items)[ITEMS_PER_THREAD], ///< [out] Items to exchange, converting between blocked and striped arrangements. + Int2Type /*time_slicing*/) + { + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + { + int item_offset = int(ITEM * BLOCK_THREADS) + linear_tid; + if (INSERT_PADDING) item_offset += item_offset >> LOG_SMEM_BANKS; + detail::uninitialized_copy(temp_storage.buff + item_offset, + input_items[ITEM]); + } + + CTA_SYNC(); + + // No timeslicing + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + { + int item_offset = (linear_tid * ITEMS_PER_THREAD) + ITEM; + if (INSERT_PADDING) item_offset += item_offset >> LOG_SMEM_BANKS; + output_items[ITEM] = temp_storage.buff[item_offset]; + } + } + + + /** + * Transposes data items from striped arrangement to blocked arrangement. Specialized for warp-timeslicing. + */ + template + __device__ __forceinline__ void StripedToBlocked( + InputT (&input_items)[ITEMS_PER_THREAD], ///< [in] Items to exchange, converting between blocked and striped arrangements. + OutputT (&output_items)[ITEMS_PER_THREAD], ///< [out] Items to exchange, converting between blocked and striped arrangements. + Int2Type /*time_slicing*/) + { + // Warp time-slicing + InputT temp_items[ITEMS_PER_THREAD]; + + #pragma unroll + for (int SLICE = 0; SLICE < TIME_SLICES; SLICE++) + { + const int SLICE_OFFSET = SLICE * TIME_SLICED_ITEMS; + const int SLICE_OOB = SLICE_OFFSET + TIME_SLICED_ITEMS; + + CTA_SYNC(); + + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + { + // Write a strip of items + const int STRIP_OFFSET = ITEM * BLOCK_THREADS; + const int STRIP_OOB = STRIP_OFFSET + BLOCK_THREADS; + + if ((SLICE_OFFSET < STRIP_OOB) && (SLICE_OOB > STRIP_OFFSET)) + { + int item_offset = STRIP_OFFSET + linear_tid - SLICE_OFFSET; + if ((item_offset >= 0) && (item_offset < TIME_SLICED_ITEMS)) + { + if (INSERT_PADDING) item_offset += item_offset >> LOG_SMEM_BANKS; + detail::uninitialized_copy(temp_storage.buff + + item_offset, + input_items[ITEM]); + } + } + } + + CTA_SYNC(); + + if (warp_id == SLICE) + { + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + { + int item_offset = (lane_id * ITEMS_PER_THREAD) + ITEM; + if (INSERT_PADDING) item_offset += item_offset >> LOG_SMEM_BANKS; + temp_items[ITEM] = temp_storage.buff[item_offset]; + } + } + } + + // Copy + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + { + output_items[ITEM] = temp_items[ITEM]; + } + } + + + /** + * Transposes data items from warp-striped arrangement to blocked arrangement. Specialized for no timeslicing + */ + template + __device__ __forceinline__ void WarpStripedToBlocked( + InputT (&input_items)[ITEMS_PER_THREAD], ///< [in] Items to exchange, converting between blocked and striped arrangements. + OutputT (&output_items)[ITEMS_PER_THREAD], ///< [out] Items to exchange, converting between blocked and striped arrangements. + Int2Type /*time_slicing*/) + { + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + { + int item_offset = warp_offset + (ITEM * WARP_TIME_SLICED_THREADS) + lane_id; + if (INSERT_PADDING) item_offset += item_offset >> LOG_SMEM_BANKS; + detail::uninitialized_copy(temp_storage.buff + item_offset, + input_items[ITEM]); + } + + WARP_SYNC(0xffffffff); + + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + { + int item_offset = warp_offset + ITEM + (lane_id * ITEMS_PER_THREAD); + if (INSERT_PADDING) item_offset += item_offset >> LOG_SMEM_BANKS; + detail::uninitialized_copy(output_items + ITEM, + temp_storage.buff[item_offset]); + } + } + + + /** + * Transposes data items from warp-striped arrangement to blocked arrangement. Specialized for warp-timeslicing + */ + template + __device__ __forceinline__ void WarpStripedToBlocked( + InputT (&input_items)[ITEMS_PER_THREAD], ///< [in] Items to exchange, converting between blocked and striped arrangements. + OutputT (&output_items)[ITEMS_PER_THREAD], ///< [out] Items to exchange, converting between blocked and striped arrangements. + Int2Type /*time_slicing*/) + { + #pragma unroll + for (unsigned int SLICE = 0; SLICE < TIME_SLICES; ++SLICE) + { + CTA_SYNC(); + + if (warp_id == SLICE) + { + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + { + int item_offset = (ITEM * WARP_TIME_SLICED_THREADS) + lane_id; + if (INSERT_PADDING) item_offset += item_offset >> LOG_SMEM_BANKS; + detail::uninitialized_copy(temp_storage.buff + item_offset, + input_items[ITEM]); + } + + WARP_SYNC(0xffffffff); + + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + { + int item_offset = ITEM + (lane_id * ITEMS_PER_THREAD); + if (INSERT_PADDING) item_offset += item_offset >> LOG_SMEM_BANKS; + output_items[ITEM] = temp_storage.buff[item_offset]; + } + } + } + } + + + /** + * Exchanges data items annotated by rank into blocked arrangement. Specialized for no timeslicing. + */ + template + __device__ __forceinline__ void ScatterToBlocked( + InputT (&input_items)[ITEMS_PER_THREAD], ///< [in] Items to exchange, converting between blocked and striped arrangements. + OutputT (&output_items)[ITEMS_PER_THREAD], ///< [out] Items to exchange, converting between blocked and striped arrangements. + OffsetT (&ranks)[ITEMS_PER_THREAD], ///< [in] Corresponding scatter ranks + Int2Type /*time_slicing*/) + { + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + { + int item_offset = ranks[ITEM]; + if (INSERT_PADDING) item_offset = SHR_ADD(item_offset, LOG_SMEM_BANKS, item_offset); + detail::uninitialized_copy(temp_storage.buff + item_offset, + input_items[ITEM]); + } + + CTA_SYNC(); + + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + { + int item_offset = (linear_tid * ITEMS_PER_THREAD) + ITEM; + if (INSERT_PADDING) item_offset = SHR_ADD(item_offset, LOG_SMEM_BANKS, item_offset); + output_items[ITEM] = temp_storage.buff[item_offset]; + } + } + + /** + * Exchanges data items annotated by rank into blocked arrangement. Specialized for warp-timeslicing. + */ + template + __device__ __forceinline__ void ScatterToBlocked( + InputT (&input_items)[ITEMS_PER_THREAD], ///< [in] Items to exchange, converting between blocked and striped arrangements. + OutputT (&output_items)[ITEMS_PER_THREAD], ///< [out] Items to exchange, converting between blocked and striped arrangements. + OffsetT ranks[ITEMS_PER_THREAD], ///< [in] Corresponding scatter ranks + Int2Type /*time_slicing*/) + { + InputT temp_items[ITEMS_PER_THREAD]; + + #pragma unroll + for (int SLICE = 0; SLICE < TIME_SLICES; SLICE++) + { + CTA_SYNC(); + + const int SLICE_OFFSET = TIME_SLICED_ITEMS * SLICE; + + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + { + int item_offset = ranks[ITEM] - SLICE_OFFSET; + if ((item_offset >= 0) && (item_offset < WARP_TIME_SLICED_ITEMS)) + { + if (INSERT_PADDING) item_offset = SHR_ADD(item_offset, LOG_SMEM_BANKS, item_offset); + detail::uninitialized_copy(temp_storage.buff + item_offset, + input_items[ITEM]); + } + } + + CTA_SYNC(); + + if (warp_id == SLICE) + { + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + { + int item_offset = (lane_id * ITEMS_PER_THREAD) + ITEM; + if (INSERT_PADDING) item_offset = SHR_ADD(item_offset, LOG_SMEM_BANKS, item_offset); + temp_items[ITEM] = temp_storage.buff[item_offset]; + } + } + } + + // Copy + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + { + output_items[ITEM] = temp_items[ITEM]; + } + } + + + /** + * Exchanges data items annotated by rank into striped arrangement. Specialized for no timeslicing. + */ + template + __device__ __forceinline__ void ScatterToStriped( + InputT (&input_items)[ITEMS_PER_THREAD], ///< [in] Items to exchange, converting between blocked and striped arrangements. + OutputT (&output_items)[ITEMS_PER_THREAD], ///< [out] Items to exchange, converting between blocked and striped arrangements. + OffsetT (&ranks)[ITEMS_PER_THREAD], ///< [in] Corresponding scatter ranks + Int2Type /*time_slicing*/) + { + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + { + int item_offset = ranks[ITEM]; + if (INSERT_PADDING) item_offset = SHR_ADD(item_offset, LOG_SMEM_BANKS, item_offset); + detail::uninitialized_copy(temp_storage.buff + item_offset, + input_items[ITEM]); + } + + CTA_SYNC(); + + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + { + int item_offset = int(ITEM * BLOCK_THREADS) + linear_tid; + if (INSERT_PADDING) item_offset = SHR_ADD(item_offset, LOG_SMEM_BANKS, item_offset); + output_items[ITEM] = temp_storage.buff[item_offset]; + } + } + + + /** + * Exchanges data items annotated by rank into striped arrangement. Specialized for warp-timeslicing. + */ + template + __device__ __forceinline__ void ScatterToStriped( + InputT (&input_items)[ITEMS_PER_THREAD], ///< [in] Items to exchange, converting between blocked and striped arrangements. + OutputT (&output_items)[ITEMS_PER_THREAD], ///< [out] Items to exchange, converting between blocked and striped arrangements. + OffsetT (&ranks)[ITEMS_PER_THREAD], ///< [in] Corresponding scatter ranks + Int2Type /*time_slicing*/) + { + InputT temp_items[ITEMS_PER_THREAD]; + + #pragma unroll + for (int SLICE = 0; SLICE < TIME_SLICES; SLICE++) + { + const int SLICE_OFFSET = SLICE * TIME_SLICED_ITEMS; + const int SLICE_OOB = SLICE_OFFSET + TIME_SLICED_ITEMS; + + CTA_SYNC(); + + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + { + int item_offset = ranks[ITEM] - SLICE_OFFSET; + if ((item_offset >= 0) && (item_offset < WARP_TIME_SLICED_ITEMS)) + { + if (INSERT_PADDING) item_offset = SHR_ADD(item_offset, LOG_SMEM_BANKS, item_offset); + detail::uninitialized_copy(temp_storage.buff + item_offset, + input_items[ITEM]); + } + } + + CTA_SYNC(); + + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + { + // Read a strip of items + const int STRIP_OFFSET = ITEM * BLOCK_THREADS; + const int STRIP_OOB = STRIP_OFFSET + BLOCK_THREADS; + + if ((SLICE_OFFSET < STRIP_OOB) && (SLICE_OOB > STRIP_OFFSET)) + { + int item_offset = STRIP_OFFSET + linear_tid - SLICE_OFFSET; + if ((item_offset >= 0) && (item_offset < TIME_SLICED_ITEMS)) + { + if (INSERT_PADDING) item_offset += item_offset >> LOG_SMEM_BANKS; + temp_items[ITEM] = temp_storage.buff[item_offset]; + } + } + } + } + + // Copy + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + { + output_items[ITEM] = temp_items[ITEM]; + } + } + + +public: + + /******************************************************************//** + * \name Collective constructors + *********************************************************************/ + //@{ + + /** + * \brief Collective constructor using a private static allocation of shared memory as temporary storage. + */ + __device__ __forceinline__ BlockExchange() + : + temp_storage(PrivateStorage()), + linear_tid(RowMajorTid(BLOCK_DIM_X, BLOCK_DIM_Y, BLOCK_DIM_Z)), + lane_id(LaneId()), + warp_id((WARPS == 1) ? 0 : linear_tid / WARP_THREADS), + warp_offset(warp_id * WARP_TIME_SLICED_ITEMS) + {} + + + /** + * \brief Collective constructor using the specified memory allocation as temporary storage. + */ + __device__ __forceinline__ BlockExchange( + TempStorage &temp_storage) ///< [in] Reference to memory allocation having layout type TempStorage + : + temp_storage(temp_storage.Alias()), + linear_tid(RowMajorTid(BLOCK_DIM_X, BLOCK_DIM_Y, BLOCK_DIM_Z)), + lane_id(LaneId()), + warp_id((WARPS == 1) ? 0 : linear_tid / WARP_THREADS), + warp_offset(warp_id * WARP_TIME_SLICED_ITEMS) + {} + + + //@} end member group + /******************************************************************//** + * \name Structured exchanges + *********************************************************************/ + //@{ + + /** + * \brief Transposes data items from striped arrangement to blocked arrangement. + * + * \par + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates the conversion from a "striped" to a "blocked" arrangement + * of 512 integer items partitioned across 128 threads where each thread owns 4 items. + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(int *d_data, ...) + * { + * // Specialize BlockExchange for a 1D block of 128 threads owning 4 integer items each + * typedef cub::BlockExchange BlockExchange; + * + * // Allocate shared memory for BlockExchange + * __shared__ typename BlockExchange::TempStorage temp_storage; + * + * // Load a tile of ordered data into a striped arrangement across block threads + * int thread_data[4]; + * cub::LoadDirectStriped<128>(threadIdx.x, d_data, thread_data); + * + * // Collectively exchange data into a blocked arrangement across threads + * BlockExchange(temp_storage).StripedToBlocked(thread_data, thread_data); + * + * \endcode + * \par + * Suppose the set of striped input \p thread_data across the block of threads is + * { [0,128,256,384], [1,129,257,385], ..., [127,255,383,511] } after loading from device-accessible memory. + * The corresponding output \p thread_data in those threads will be + * { [0,1,2,3], [4,5,6,7], [8,9,10,11], ..., [508,509,510,511] }. + * + */ + template + __device__ __forceinline__ void StripedToBlocked( + InputT (&input_items)[ITEMS_PER_THREAD], ///< [in] Items to exchange, converting between striped and blocked arrangements. + OutputT (&output_items)[ITEMS_PER_THREAD]) ///< [out] Items from exchange, converting between striped and blocked arrangements. + { + StripedToBlocked(input_items, output_items, Int2Type()); + } + + + /** + * \brief Transposes data items from blocked arrangement to striped arrangement. + * + * \par + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates the conversion from a "blocked" to a "striped" arrangement + * of 512 integer items partitioned across 128 threads where each thread owns 4 items. + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(int *d_data, ...) + * { + * // Specialize BlockExchange for a 1D block of 128 threads owning 4 integer items each + * typedef cub::BlockExchange BlockExchange; + * + * // Allocate shared memory for BlockExchange + * __shared__ typename BlockExchange::TempStorage temp_storage; + * + * // Obtain a segment of consecutive items that are blocked across threads + * int thread_data[4]; + * ... + * + * // Collectively exchange data into a striped arrangement across threads + * BlockExchange(temp_storage).BlockedToStriped(thread_data, thread_data); + * + * // Store data striped across block threads into an ordered tile + * cub::StoreDirectStriped(threadIdx.x, d_data, thread_data); + * + * \endcode + * \par + * Suppose the set of blocked input \p thread_data across the block of threads is + * { [0,1,2,3], [4,5,6,7], [8,9,10,11], ..., [508,509,510,511] }. + * The corresponding output \p thread_data in those threads will be + * { [0,128,256,384], [1,129,257,385], ..., [127,255,383,511] } in + * preparation for storing to device-accessible memory. + * + */ + template + __device__ __forceinline__ void BlockedToStriped( + InputT (&input_items)[ITEMS_PER_THREAD], ///< [in] Items to exchange, converting between striped and blocked arrangements. + OutputT (&output_items)[ITEMS_PER_THREAD]) ///< [out] Items from exchange, converting between striped and blocked arrangements. + { + BlockedToStriped(input_items, output_items, Int2Type()); + } + + + + /** + * \brief Transposes data items from warp-striped arrangement to blocked arrangement. + * + * \par + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates the conversion from a "warp-striped" to a "blocked" arrangement + * of 512 integer items partitioned across 128 threads where each thread owns 4 items. + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(int *d_data, ...) + * { + * // Specialize BlockExchange for a 1D block of 128 threads owning 4 integer items each + * typedef cub::BlockExchange BlockExchange; + * + * // Allocate shared memory for BlockExchange + * __shared__ typename BlockExchange::TempStorage temp_storage; + * + * // Load a tile of ordered data into a warp-striped arrangement across warp threads + * int thread_data[4]; + * cub::LoadSWarptriped(threadIdx.x, d_data, thread_data); + * + * // Collectively exchange data into a blocked arrangement across threads + * BlockExchange(temp_storage).WarpStripedToBlocked(thread_data); + * + * \endcode + * \par + * Suppose the set of warp-striped input \p thread_data across the block of threads is + * { [0,32,64,96], [1,33,65,97], [2,34,66,98], ..., [415,447,479,511] } + * after loading from device-accessible memory. (The first 128 items are striped across + * the first warp of 32 threads, the second 128 items are striped across the second warp, etc.) + * The corresponding output \p thread_data in those threads will be + * { [0,1,2,3], [4,5,6,7], [8,9,10,11], ..., [508,509,510,511] }. + * + */ + template + __device__ __forceinline__ void WarpStripedToBlocked( + InputT (&input_items)[ITEMS_PER_THREAD], ///< [in] Items to exchange, converting between striped and blocked arrangements. + OutputT (&output_items)[ITEMS_PER_THREAD]) ///< [out] Items from exchange, converting between striped and blocked arrangements. + { + WarpStripedToBlocked(input_items, output_items, Int2Type()); + } + + + + /** + * \brief Transposes data items from blocked arrangement to warp-striped arrangement. + * + * \par + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates the conversion from a "blocked" to a "warp-striped" arrangement + * of 512 integer items partitioned across 128 threads where each thread owns 4 items. + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(int *d_data, ...) + * { + * // Specialize BlockExchange for a 1D block of 128 threads owning 4 integer items each + * typedef cub::BlockExchange BlockExchange; + * + * // Allocate shared memory for BlockExchange + * __shared__ typename BlockExchange::TempStorage temp_storage; + * + * // Obtain a segment of consecutive items that are blocked across threads + * int thread_data[4]; + * ... + * + * // Collectively exchange data into a warp-striped arrangement across threads + * BlockExchange(temp_storage).BlockedToWarpStriped(thread_data, thread_data); + * + * // Store data striped across warp threads into an ordered tile + * cub::StoreDirectStriped(threadIdx.x, d_data, thread_data); + * + * \endcode + * \par + * Suppose the set of blocked input \p thread_data across the block of threads is + * { [0,1,2,3], [4,5,6,7], [8,9,10,11], ..., [508,509,510,511] }. + * The corresponding output \p thread_data in those threads will be + * { [0,32,64,96], [1,33,65,97], [2,34,66,98], ..., [415,447,479,511] } + * in preparation for storing to device-accessible memory. (The first 128 items are striped across + * the first warp of 32 threads, the second 128 items are striped across the second warp, etc.) + * + */ + template + __device__ __forceinline__ void BlockedToWarpStriped( + InputT (&input_items)[ITEMS_PER_THREAD], ///< [in] Items to exchange, converting between striped and blocked arrangements. + OutputT (&output_items)[ITEMS_PER_THREAD]) ///< [out] Items from exchange, converting between striped and blocked arrangements. + { + BlockedToWarpStriped(input_items, output_items, Int2Type()); + } + + + + //@} end member group + /******************************************************************//** + * \name Scatter exchanges + *********************************************************************/ + //@{ + + + /** + * \brief Exchanges data items annotated by rank into blocked arrangement. + * + * \par + * - \smemreuse + * + * \tparam OffsetT [inferred] Signed integer type for local offsets + */ + template + __device__ __forceinline__ void ScatterToBlocked( + InputT (&input_items)[ITEMS_PER_THREAD], ///< [in] Items to exchange, converting between striped and blocked arrangements. + OutputT (&output_items)[ITEMS_PER_THREAD], ///< [out] Items from exchange, converting between striped and blocked arrangements. + OffsetT (&ranks)[ITEMS_PER_THREAD]) ///< [in] Corresponding scatter ranks + { + ScatterToBlocked(input_items, output_items, ranks, Int2Type()); + } + + + + /** + * \brief Exchanges data items annotated by rank into striped arrangement. + * + * \par + * - \smemreuse + * + * \tparam OffsetT [inferred] Signed integer type for local offsets + */ + template + __device__ __forceinline__ void ScatterToStriped( + InputT (&input_items)[ITEMS_PER_THREAD], ///< [in] Items to exchange, converting between striped and blocked arrangements. + OutputT (&output_items)[ITEMS_PER_THREAD], ///< [out] Items from exchange, converting between striped and blocked arrangements. + OffsetT (&ranks)[ITEMS_PER_THREAD]) ///< [in] Corresponding scatter ranks + { + ScatterToStriped(input_items, output_items, ranks, Int2Type()); + } + + + + /** + * \brief Exchanges data items annotated by rank into striped arrangement. Items with rank -1 are not exchanged. + * + * \par + * - \smemreuse + * + * \tparam OffsetT [inferred] Signed integer type for local offsets + */ + template + __device__ __forceinline__ void ScatterToStripedGuarded( + InputT (&input_items)[ITEMS_PER_THREAD], ///< [in] Items to exchange, converting between striped and blocked arrangements. + OutputT (&output_items)[ITEMS_PER_THREAD], ///< [out] Items from exchange, converting between striped and blocked arrangements. + OffsetT (&ranks)[ITEMS_PER_THREAD]) ///< [in] Corresponding scatter ranks + { + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + { + int item_offset = ranks[ITEM]; + if (INSERT_PADDING) item_offset = SHR_ADD(item_offset, LOG_SMEM_BANKS, item_offset); + if (ranks[ITEM] >= 0) + temp_storage.buff[item_offset] = input_items[ITEM]; + } + + CTA_SYNC(); + + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + { + int item_offset = int(ITEM * BLOCK_THREADS) + linear_tid; + if (INSERT_PADDING) item_offset = SHR_ADD(item_offset, LOG_SMEM_BANKS, item_offset); + output_items[ITEM] = temp_storage.buff[item_offset]; + } + } + + + + + /** + * \brief Exchanges valid data items annotated by rank into striped arrangement. + * + * \par + * - \smemreuse + * + * \tparam OffsetT [inferred] Signed integer type for local offsets + * \tparam ValidFlag [inferred] FlagT type denoting which items are valid + */ + template + __device__ __forceinline__ void ScatterToStripedFlagged( + InputT (&input_items)[ITEMS_PER_THREAD], ///< [in] Items to exchange, converting between striped and blocked arrangements. + OutputT (&output_items)[ITEMS_PER_THREAD], ///< [out] Items from exchange, converting between striped and blocked arrangements. + OffsetT (&ranks)[ITEMS_PER_THREAD], ///< [in] Corresponding scatter ranks + ValidFlag (&is_valid)[ITEMS_PER_THREAD]) ///< [in] Corresponding flag denoting item validity + { + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + { + int item_offset = ranks[ITEM]; + if (INSERT_PADDING) item_offset = SHR_ADD(item_offset, LOG_SMEM_BANKS, item_offset); + if (is_valid[ITEM]) + temp_storage.buff[item_offset] = input_items[ITEM]; + } + + CTA_SYNC(); + + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + { + int item_offset = int(ITEM * BLOCK_THREADS) + linear_tid; + if (INSERT_PADDING) item_offset = SHR_ADD(item_offset, LOG_SMEM_BANKS, item_offset); + output_items[ITEM] = temp_storage.buff[item_offset]; + } + } + + + //@} end member group + + + +#ifndef DOXYGEN_SHOULD_SKIP_THIS // Do not document + + + __device__ __forceinline__ void StripedToBlocked( + InputT (&items)[ITEMS_PER_THREAD]) ///< [in-out] Items to exchange, converting between striped and blocked arrangements. + { + StripedToBlocked(items, items); + } + + __device__ __forceinline__ void BlockedToStriped( + InputT (&items)[ITEMS_PER_THREAD]) ///< [in-out] Items to exchange, converting between striped and blocked arrangements. + { + BlockedToStriped(items, items); + } + + __device__ __forceinline__ void WarpStripedToBlocked( + InputT (&items)[ITEMS_PER_THREAD]) ///< [in-out] Items to exchange, converting between striped and blocked arrangements. + { + WarpStripedToBlocked(items, items); + } + + __device__ __forceinline__ void BlockedToWarpStriped( + InputT (&items)[ITEMS_PER_THREAD]) ///< [in-out] Items to exchange, converting between striped and blocked arrangements. + { + BlockedToWarpStriped(items, items); + } + + template + __device__ __forceinline__ void ScatterToBlocked( + InputT (&items)[ITEMS_PER_THREAD], ///< [in-out] Items to exchange, converting between striped and blocked arrangements. + OffsetT (&ranks)[ITEMS_PER_THREAD]) ///< [in] Corresponding scatter ranks + { + ScatterToBlocked(items, items, ranks); + } + + template + __device__ __forceinline__ void ScatterToStriped( + InputT (&items)[ITEMS_PER_THREAD], ///< [in-out] Items to exchange, converting between striped and blocked arrangements. + OffsetT (&ranks)[ITEMS_PER_THREAD]) ///< [in] Corresponding scatter ranks + { + ScatterToStriped(items, items, ranks); + } + + template + __device__ __forceinline__ void ScatterToStripedGuarded( + InputT (&items)[ITEMS_PER_THREAD], ///< [in-out] Items to exchange, converting between striped and blocked arrangements. + OffsetT (&ranks)[ITEMS_PER_THREAD]) ///< [in] Corresponding scatter ranks + { + ScatterToStripedGuarded(items, items, ranks); + } + + template + __device__ __forceinline__ void ScatterToStripedFlagged( + InputT (&items)[ITEMS_PER_THREAD], ///< [in-out] Items to exchange, converting between striped and blocked arrangements. + OffsetT (&ranks)[ITEMS_PER_THREAD], ///< [in] Corresponding scatter ranks + ValidFlag (&is_valid)[ITEMS_PER_THREAD]) ///< [in] Corresponding flag denoting item validity + { + ScatterToStriped(items, items, ranks, is_valid); + } + +#endif // DOXYGEN_SHOULD_SKIP_THIS + + +}; + + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/block/block_histogram.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/block/block_histogram.cuh new file mode 100644 index 0000000000000000000000000000000000000000..b9ab759607d20404ca7abc660b74f2922573c26b --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/block/block_histogram.cuh @@ -0,0 +1,416 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * The cub::BlockHistogram class provides [collective](index.html#sec0) methods for constructing block-wide histograms from data samples partitioned across a CUDA thread block. + */ + +#pragma once + +#include "specializations/block_histogram_sort.cuh" +#include "specializations/block_histogram_atomic.cuh" +#include "../config.cuh" +#include "../util_ptx.cuh" + +CUB_NAMESPACE_BEGIN + + +/****************************************************************************** + * Algorithmic variants + ******************************************************************************/ + +/** + * \brief BlockHistogramAlgorithm enumerates alternative algorithms for the parallel construction of block-wide histograms. + */ +enum BlockHistogramAlgorithm +{ + + /** + * \par Overview + * Sorting followed by differentiation. Execution is comprised of two phases: + * -# Sort the data using efficient radix sort + * -# Look for "runs" of same-valued keys by detecting discontinuities; the run-lengths are histogram bin counts. + * + * \par Performance Considerations + * Delivers consistent throughput regardless of sample bin distribution. + */ + BLOCK_HISTO_SORT, + + + /** + * \par Overview + * Use atomic addition to update byte counts directly + * + * \par Performance Considerations + * Performance is strongly tied to the hardware implementation of atomic + * addition, and may be significantly degraded for non uniformly-random + * input distributions where many concurrent updates are likely to be + * made to the same bin counter. + */ + BLOCK_HISTO_ATOMIC, +}; + + + +/****************************************************************************** + * Block histogram + ******************************************************************************/ + + +/** + * \brief The BlockHistogram class provides [collective](index.html#sec0) methods for constructing block-wide histograms from data samples partitioned across a CUDA thread block. ![](histogram_logo.png) + * \ingroup BlockModule + * + * \tparam T The sample type being histogrammed (must be castable to an integer bin identifier) + * \tparam BLOCK_DIM_X The thread block length in threads along the X dimension + * \tparam ITEMS_PER_THREAD The number of items per thread + * \tparam BINS The number bins within the histogram + * \tparam ALGORITHM [optional] cub::BlockHistogramAlgorithm enumerator specifying the underlying algorithm to use (default: cub::BLOCK_HISTO_SORT) + * \tparam BLOCK_DIM_Y [optional] The thread block length in threads along the Y dimension (default: 1) + * \tparam BLOCK_DIM_Z [optional] The thread block length in threads along the Z dimension (default: 1) + * \tparam LEGACY_PTX_ARCH [optional] Unused. + * + * \par Overview + * - A histogram + * counts the number of observations that fall into each of the disjoint categories (known as bins). + * - The `T` type must be implicitly castable to an integer type. + * - BlockHistogram expects each integral `input[i]` value to satisfy + * `0 <= input[i] < BINS`. Values outside of this range result in undefined + * behavior. + * - BlockHistogram can be optionally specialized to use different algorithms: + * -# cub::BLOCK_HISTO_SORT. Sorting followed by differentiation. [More...](\ref cub::BlockHistogramAlgorithm) + * -# cub::BLOCK_HISTO_ATOMIC. Use atomic addition to update byte counts directly. [More...](\ref cub::BlockHistogramAlgorithm) + * + * \par Performance Considerations + * - \granularity + * + * \par A Simple Example + * \blockcollective{BlockHistogram} + * \par + * The code snippet below illustrates a 256-bin histogram of 512 integer samples that + * are partitioned across 128 threads where each thread owns 4 samples. + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(...) + * { + * // Specialize a 256-bin BlockHistogram type for a 1D block of 128 threads having 4 character samples each + * typedef cub::BlockHistogram BlockHistogram; + * + * // Allocate shared memory for BlockHistogram + * __shared__ typename BlockHistogram::TempStorage temp_storage; + * + * // Allocate shared memory for block-wide histogram bin counts + * __shared__ unsigned int smem_histogram[256]; + * + * // Obtain input samples per thread + * unsigned char data[4]; + * ... + * + * // Compute the block-wide histogram + * BlockHistogram(temp_storage).Histogram(data, smem_histogram); + * + * \endcode + * + * \par Performance and Usage Considerations + * - All input values must fall between [0, BINS), or behavior is undefined. + * - The histogram output can be constructed in shared or device-accessible memory + * - See cub::BlockHistogramAlgorithm for performance details regarding algorithmic alternatives + * + * \par Re-using dynamically allocating shared memory + * The following example under the examples/block folder illustrates usage of + * dynamically shared memory with BlockReduce and how to re-purpose + * the same memory region: + * example_block_reduce_dyn_smem.cu + * + * This example can be easily adapted to the storage required by BlockHistogram. + */ +template < + typename T, + int BLOCK_DIM_X, + int ITEMS_PER_THREAD, + int BINS, + BlockHistogramAlgorithm ALGORITHM = BLOCK_HISTO_SORT, + int BLOCK_DIM_Y = 1, + int BLOCK_DIM_Z = 1, + int LEGACY_PTX_ARCH = 0> +class BlockHistogram +{ +private: + + /****************************************************************************** + * Constants and type definitions + ******************************************************************************/ + + /// Constants + enum + { + /// The thread block size in threads + BLOCK_THREADS = BLOCK_DIM_X * BLOCK_DIM_Y * BLOCK_DIM_Z, + }; + + /// Internal specialization. + using InternalBlockHistogram = + cub::detail::conditional_t, + BlockHistogramAtomic>; + + /// Shared memory storage layout type for BlockHistogram + typedef typename InternalBlockHistogram::TempStorage _TempStorage; + + + /****************************************************************************** + * Thread fields + ******************************************************************************/ + + /// Shared storage reference + _TempStorage &temp_storage; + + /// Linear thread-id + unsigned int linear_tid; + + + /****************************************************************************** + * Utility methods + ******************************************************************************/ + + /// Internal storage allocator + __device__ __forceinline__ _TempStorage& PrivateStorage() + { + __shared__ _TempStorage private_storage; + return private_storage; + } + + +public: + + /// \smemstorage{BlockHistogram} + struct TempStorage : Uninitialized<_TempStorage> {}; + + + /******************************************************************//** + * \name Collective constructors + *********************************************************************/ + //@{ + + /** + * \brief Collective constructor using a private static allocation of shared memory as temporary storage. + */ + __device__ __forceinline__ BlockHistogram() + : + temp_storage(PrivateStorage()), + linear_tid(RowMajorTid(BLOCK_DIM_X, BLOCK_DIM_Y, BLOCK_DIM_Z)) + {} + + + /** + * \brief Collective constructor using the specified memory allocation as temporary storage. + */ + __device__ __forceinline__ BlockHistogram( + TempStorage &temp_storage) ///< [in] Reference to memory allocation having layout type TempStorage + : + temp_storage(temp_storage.Alias()), + linear_tid(RowMajorTid(BLOCK_DIM_X, BLOCK_DIM_Y, BLOCK_DIM_Z)) + {} + + + //@} end member group + /******************************************************************//** + * \name Histogram operations + *********************************************************************/ + //@{ + + + /** + * \brief Initialize the shared histogram counters to zero. + * + * \par Snippet + * The code snippet below illustrates a the initialization and update of a + * histogram of 512 integer samples that are partitioned across 128 threads + * where each thread owns 4 samples. + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(...) + * { + * // Specialize a 256-bin BlockHistogram type for a 1D block of 128 threads having 4 character samples each + * typedef cub::BlockHistogram BlockHistogram; + * + * // Allocate shared memory for BlockHistogram + * __shared__ typename BlockHistogram::TempStorage temp_storage; + * + * // Allocate shared memory for block-wide histogram bin counts + * __shared__ unsigned int smem_histogram[256]; + * + * // Obtain input samples per thread + * unsigned char thread_samples[4]; + * ... + * + * // Initialize the block-wide histogram + * BlockHistogram(temp_storage).InitHistogram(smem_histogram); + * + * // Update the block-wide histogram + * BlockHistogram(temp_storage).Composite(thread_samples, smem_histogram); + * + * \endcode + * + * \tparam CounterT [inferred] Histogram counter type + */ + template + __device__ __forceinline__ void InitHistogram(CounterT histogram[BINS]) + { + // Initialize histogram bin counts to zeros + int histo_offset = 0; + + #pragma unroll + for(; histo_offset + BLOCK_THREADS <= BINS; histo_offset += BLOCK_THREADS) + { + histogram[histo_offset + linear_tid] = 0; + } + // Finish up with guarded initialization if necessary + if ((BINS % BLOCK_THREADS != 0) && (histo_offset + linear_tid < BINS)) + { + histogram[histo_offset + linear_tid] = 0; + } + } + + + /** + * \brief Constructs a block-wide histogram in shared/device-accessible memory. Each thread contributes an array of input elements. + * + * \par + * - \granularity + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates a 256-bin histogram of 512 integer samples that + * are partitioned across 128 threads where each thread owns 4 samples. + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(...) + * { + * // Specialize a 256-bin BlockHistogram type for a 1D block of 128 threads having 4 character samples each + * typedef cub::BlockHistogram BlockHistogram; + * + * // Allocate shared memory for BlockHistogram + * __shared__ typename BlockHistogram::TempStorage temp_storage; + * + * // Allocate shared memory for block-wide histogram bin counts + * __shared__ unsigned int smem_histogram[256]; + * + * // Obtain input samples per thread + * unsigned char thread_samples[4]; + * ... + * + * // Compute the block-wide histogram + * BlockHistogram(temp_storage).Histogram(thread_samples, smem_histogram); + * + * \endcode + * + * \tparam CounterT [inferred] Histogram counter type + */ + template < + typename CounterT > + __device__ __forceinline__ void Histogram( + T (&items)[ITEMS_PER_THREAD], ///< [in] Calling thread's input values to histogram + CounterT histogram[BINS]) ///< [out] Reference to shared/device-accessible memory histogram + { + // Initialize histogram bin counts to zeros + InitHistogram(histogram); + + CTA_SYNC(); + + // Composite the histogram + InternalBlockHistogram(temp_storage).Composite(items, histogram); + } + + + + /** + * \brief Updates an existing block-wide histogram in shared/device-accessible memory. Each thread composites an array of input elements. + * + * \par + * - \granularity + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates a the initialization and update of a + * histogram of 512 integer samples that are partitioned across 128 threads + * where each thread owns 4 samples. + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(...) + * { + * // Specialize a 256-bin BlockHistogram type for a 1D block of 128 threads having 4 character samples each + * typedef cub::BlockHistogram BlockHistogram; + * + * // Allocate shared memory for BlockHistogram + * __shared__ typename BlockHistogram::TempStorage temp_storage; + * + * // Allocate shared memory for block-wide histogram bin counts + * __shared__ unsigned int smem_histogram[256]; + * + * // Obtain input samples per thread + * unsigned char thread_samples[4]; + * ... + * + * // Initialize the block-wide histogram + * BlockHistogram(temp_storage).InitHistogram(smem_histogram); + * + * // Update the block-wide histogram + * BlockHistogram(temp_storage).Composite(thread_samples, smem_histogram); + * + * \endcode + * + * \tparam CounterT [inferred] Histogram counter type + */ + template < + typename CounterT > + __device__ __forceinline__ void Composite( + T (&items)[ITEMS_PER_THREAD], ///< [in] Calling thread's input values to histogram + CounterT histogram[BINS]) ///< [out] Reference to shared/device-accessible memory histogram + { + InternalBlockHistogram(temp_storage).Composite(items, histogram); + } + +}; + +CUB_NAMESPACE_END + diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/block/block_load.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/block/block_load.cuh new file mode 100644 index 0000000000000000000000000000000000000000..b419ab6e726cdc4a77992a1b1fde3bc52a00d4a0 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/block/block_load.cuh @@ -0,0 +1,1306 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2016, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * Operations for reading linear tiles of data into the CUDA thread block. + */ + +#pragma once + +#include +#include + +#include "../block/block_exchange.cuh" +#include "../iterator/cache_modified_input_iterator.cuh" +#include "../config.cuh" +#include "../util_ptx.cuh" +#include "../util_type.cuh" + +CUB_NAMESPACE_BEGIN + +/** + * \addtogroup UtilIo + * @{ + */ + + +/******************************************************************//** + * \name Blocked arrangement I/O (direct) + *********************************************************************/ +//@{ + + +/** + * \brief Load a linear segment of items into a blocked arrangement across the thread block. + * + * \blocked + * + * \tparam T [inferred] The data type to load. + * \tparam ITEMS_PER_THREAD [inferred] The number of consecutive items partitioned onto each thread. + * \tparam InputIteratorT [inferred] The random-access iterator type for input \iterator. + */ +template < + typename InputT, + int ITEMS_PER_THREAD, + typename InputIteratorT> +__device__ __forceinline__ void LoadDirectBlocked( + int linear_tid, ///< [in] A suitable 1D thread-identifier for the calling thread (e.g., (threadIdx.y * blockDim.x) + linear_tid for 2D thread blocks) + InputIteratorT block_itr, ///< [in] The thread block's base input iterator for loading from + InputT (&items)[ITEMS_PER_THREAD]) ///< [out] Data to load +{ + // Load directly in thread-blocked order + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + { + items[ITEM] = block_itr[(linear_tid * ITEMS_PER_THREAD) + ITEM]; + } +} + + +/** + * \brief Load a linear segment of items into a blocked arrangement across the thread block, guarded by range. + * + * \blocked + * + * \tparam T [inferred] The data type to load. + * \tparam ITEMS_PER_THREAD [inferred] The number of consecutive items partitioned onto each thread. + * \tparam InputIteratorT [inferred] The random-access iterator type for input \iterator. + */ +template < + typename InputT, + int ITEMS_PER_THREAD, + typename InputIteratorT> +__device__ __forceinline__ void LoadDirectBlocked( + int linear_tid, ///< [in] A suitable 1D thread-identifier for the calling thread (e.g., (threadIdx.y * blockDim.x) + linear_tid for 2D thread blocks) + InputIteratorT block_itr, ///< [in] The thread block's base input iterator for loading from + InputT (&items)[ITEMS_PER_THREAD], ///< [out] Data to load + int valid_items) ///< [in] Number of valid items to load +{ + + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + { + if ((linear_tid * ITEMS_PER_THREAD) + ITEM < valid_items) + { + items[ITEM] = block_itr[(linear_tid * ITEMS_PER_THREAD) + ITEM]; + } + } +} + + +/** + * \brief Load a linear segment of items into a blocked arrangement across the thread block, guarded by range, with a fall-back assignment of out-of-bound elements.. + * + * \blocked + * + * \tparam T [inferred] The data type to load. + * \tparam ITEMS_PER_THREAD [inferred] The number of consecutive items partitioned onto each thread. + * \tparam InputIteratorT [inferred] The random-access iterator type for input \iterator. + */ +template < + typename InputT, + typename DefaultT, + int ITEMS_PER_THREAD, + typename InputIteratorT> +__device__ __forceinline__ void LoadDirectBlocked( + int linear_tid, ///< [in] A suitable 1D thread-identifier for the calling thread (e.g., (threadIdx.y * blockDim.x) + linear_tid for 2D thread blocks) + InputIteratorT block_itr, ///< [in] The thread block's base input iterator for loading from + InputT (&items)[ITEMS_PER_THREAD], ///< [out] Data to load + int valid_items, ///< [in] Number of valid items to load + DefaultT oob_default) ///< [in] Default value to assign out-of-bound items +{ + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + items[ITEM] = oob_default; + + LoadDirectBlocked(linear_tid, block_itr, items, valid_items); +} + + +#ifndef DOXYGEN_SHOULD_SKIP_THIS // Do not document + +/** + * Internal implementation for load vectorization + */ +template < + CacheLoadModifier MODIFIER, + typename T, + int ITEMS_PER_THREAD> +__device__ __forceinline__ void InternalLoadDirectBlockedVectorized( + int linear_tid, ///< [in] A suitable 1D thread-identifier for the calling thread (e.g., (threadIdx.y * blockDim.x) + linear_tid for 2D thread blocks) + T *block_ptr, ///< [in] Input pointer for loading from + T (&items)[ITEMS_PER_THREAD]) ///< [out] Data to load +{ + // Biggest memory access word that T is a whole multiple of + typedef typename UnitWord::DeviceWord DeviceWord; + + enum + { + TOTAL_WORDS = sizeof(items) / sizeof(DeviceWord), + + VECTOR_SIZE = (TOTAL_WORDS % 4 == 0) ? + 4 : + (TOTAL_WORDS % 2 == 0) ? + 2 : + 1, + + VECTORS_PER_THREAD = TOTAL_WORDS / VECTOR_SIZE, + }; + + // Vector type + typedef typename CubVector::Type Vector; + + // Vector items + Vector vec_items[VECTORS_PER_THREAD]; + + // Aliased input ptr + Vector* vec_ptr = reinterpret_cast(block_ptr) + (linear_tid * VECTORS_PER_THREAD); + + // Load directly in thread-blocked order + #pragma unroll + for (int ITEM = 0; ITEM < VECTORS_PER_THREAD; ITEM++) + { + vec_items[ITEM] = ThreadLoad(vec_ptr + ITEM); + } + + // Copy + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + { + items[ITEM] = *(reinterpret_cast(vec_items) + ITEM); + } +} + +#endif // DOXYGEN_SHOULD_SKIP_THIS + + +/** + * \brief Load a linear segment of items into a blocked arrangement across the thread block. + * + * \blocked + * + * The input offset (\p block_ptr + \p block_offset) must be quad-item aligned + * + * The following conditions will prevent vectorization and loading will fall back to cub::BLOCK_LOAD_DIRECT: + * - \p ITEMS_PER_THREAD is odd + * - The data type \p T is not a built-in primitive or CUDA vector type (e.g., \p short, \p int2, \p double, \p float2, etc.) + * + * \tparam T [inferred] The data type to load. + * \tparam ITEMS_PER_THREAD [inferred] The number of consecutive items partitioned onto each thread. + */ +template < + typename T, + int ITEMS_PER_THREAD> +__device__ __forceinline__ void LoadDirectBlockedVectorized( + int linear_tid, ///< [in] A suitable 1D thread-identifier for the calling thread (e.g., (threadIdx.y * blockDim.x) + linear_tid for 2D thread blocks) + T *block_ptr, ///< [in] Input pointer for loading from + T (&items)[ITEMS_PER_THREAD]) ///< [out] Data to load +{ + InternalLoadDirectBlockedVectorized(linear_tid, block_ptr, items); +} + + +//@} end member group +/******************************************************************//** + * \name Striped arrangement I/O (direct) + *********************************************************************/ +//@{ + + +/** + * \brief Load a linear segment of items into a striped arrangement across the thread block. + * + * \striped + * + * \tparam BLOCK_THREADS The thread block size in threads + * \tparam T [inferred] The data type to load. + * \tparam ITEMS_PER_THREAD [inferred] The number of consecutive items partitioned onto each thread. + * \tparam InputIteratorT [inferred] The random-access iterator type for input \iterator. + */ +template < + int BLOCK_THREADS, + typename InputT, + int ITEMS_PER_THREAD, + typename InputIteratorT> +__device__ __forceinline__ void LoadDirectStriped( + int linear_tid, ///< [in] A suitable 1D thread-identifier for the calling thread (e.g., (threadIdx.y * blockDim.x) + linear_tid for 2D thread blocks) + InputIteratorT block_itr, ///< [in] The thread block's base input iterator for loading from + InputT (&items)[ITEMS_PER_THREAD]) ///< [out] Data to load +{ + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + { + items[ITEM] = block_itr[linear_tid + ITEM * BLOCK_THREADS]; + } +} + + +/** + * \brief Load a linear segment of items into a striped arrangement across the thread block, guarded by range + * + * \striped + * + * \tparam BLOCK_THREADS The thread block size in threads + * \tparam T [inferred] The data type to load. + * \tparam ITEMS_PER_THREAD [inferred] The number of consecutive items partitioned onto each thread. + * \tparam InputIteratorT [inferred] The random-access iterator type for input \iterator. + */ +template < + int BLOCK_THREADS, + typename InputT, + int ITEMS_PER_THREAD, + typename InputIteratorT> +__device__ __forceinline__ void LoadDirectStriped( + int linear_tid, ///< [in] A suitable 1D thread-identifier for the calling thread (e.g., (threadIdx.y * blockDim.x) + linear_tid for 2D thread blocks) + InputIteratorT block_itr, ///< [in] The thread block's base input iterator for loading from + InputT (&items)[ITEMS_PER_THREAD], ///< [out] Data to load + int valid_items) ///< [in] Number of valid items to load +{ + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + { + if (linear_tid + (ITEM * BLOCK_THREADS) < valid_items) + { + items[ITEM] = block_itr[linear_tid + ITEM * BLOCK_THREADS]; + } + } +} + + +/** + * \brief Load a linear segment of items into a striped arrangement across the thread block, guarded by range, with a fall-back assignment of out-of-bound elements. + * + * \striped + * + * \tparam BLOCK_THREADS The thread block size in threads + * \tparam T [inferred] The data type to load. + * \tparam ITEMS_PER_THREAD [inferred] The number of consecutive items partitioned onto each thread. + * \tparam InputIteratorT [inferred] The random-access iterator type for input \iterator. + */ +template < + int BLOCK_THREADS, + typename InputT, + typename DefaultT, + int ITEMS_PER_THREAD, + typename InputIteratorT> +__device__ __forceinline__ void LoadDirectStriped( + int linear_tid, ///< [in] A suitable 1D thread-identifier for the calling thread (e.g., (threadIdx.y * blockDim.x) + linear_tid for 2D thread blocks) + InputIteratorT block_itr, ///< [in] The thread block's base input iterator for loading from + InputT (&items)[ITEMS_PER_THREAD], ///< [out] Data to load + int valid_items, ///< [in] Number of valid items to load + DefaultT oob_default) ///< [in] Default value to assign out-of-bound items +{ + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + items[ITEM] = oob_default; + + LoadDirectStriped(linear_tid, block_itr, items, valid_items); +} + + + +//@} end member group +/******************************************************************//** + * \name Warp-striped arrangement I/O (direct) + *********************************************************************/ +//@{ + + +/** + * \brief Load a linear segment of items into a warp-striped arrangement across the thread block. + * + * \warpstriped + * + * \par Usage Considerations + * The number of threads in the thread block must be a multiple of the architecture's warp size. + * + * \tparam T [inferred] The data type to load. + * \tparam ITEMS_PER_THREAD [inferred] The number of consecutive items partitioned onto each thread. + * \tparam InputIteratorT [inferred] The random-access iterator type for input \iterator. + */ +template < + typename InputT, + int ITEMS_PER_THREAD, + typename InputIteratorT> +__device__ __forceinline__ void LoadDirectWarpStriped( + int linear_tid, ///< [in] A suitable 1D thread-identifier for the calling thread (e.g., (threadIdx.y * blockDim.x) + linear_tid for 2D thread blocks) + InputIteratorT block_itr, ///< [in] The thread block's base input iterator for loading from + InputT (&items)[ITEMS_PER_THREAD]) ///< [out] Data to load +{ + int tid = linear_tid & (CUB_PTX_WARP_THREADS - 1); + int wid = linear_tid >> CUB_PTX_LOG_WARP_THREADS; + int warp_offset = wid * CUB_PTX_WARP_THREADS * ITEMS_PER_THREAD; + + // Load directly in warp-striped order + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + { + new(&items[ITEM]) InputT(block_itr[warp_offset + tid + (ITEM * CUB_PTX_WARP_THREADS)]); + } +} + + +/** + * \brief Load a linear segment of items into a warp-striped arrangement across the thread block, guarded by range + * + * \warpstriped + * + * \par Usage Considerations + * The number of threads in the thread block must be a multiple of the architecture's warp size. + * + * \tparam T [inferred] The data type to load. + * \tparam ITEMS_PER_THREAD [inferred] The number of consecutive items partitioned onto each thread. + * \tparam InputIteratorT [inferred] The random-access iterator type for input \iterator. + */ +template < + typename InputT, + int ITEMS_PER_THREAD, + typename InputIteratorT> +__device__ __forceinline__ void LoadDirectWarpStriped( + int linear_tid, ///< [in] A suitable 1D thread-identifier for the calling thread (e.g., (threadIdx.y * blockDim.x) + linear_tid for 2D thread blocks) + InputIteratorT block_itr, ///< [in] The thread block's base input iterator for loading from + InputT (&items)[ITEMS_PER_THREAD], ///< [out] Data to load + int valid_items) ///< [in] Number of valid items to load +{ + int tid = linear_tid & (CUB_PTX_WARP_THREADS - 1); + int wid = linear_tid >> CUB_PTX_LOG_WARP_THREADS; + int warp_offset = wid * CUB_PTX_WARP_THREADS * ITEMS_PER_THREAD; + + // Load directly in warp-striped order + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + { + if (warp_offset + tid + (ITEM * CUB_PTX_WARP_THREADS) < valid_items) + { + new(&items[ITEM]) InputT(block_itr[warp_offset + tid + (ITEM * CUB_PTX_WARP_THREADS)]); + } + } +} + + +/** + * \brief Load a linear segment of items into a warp-striped arrangement across the thread block, guarded by range, with a fall-back assignment of out-of-bound elements. + * + * \warpstriped + * + * \par Usage Considerations + * The number of threads in the thread block must be a multiple of the architecture's warp size. + * + * \tparam T [inferred] The data type to load. + * \tparam ITEMS_PER_THREAD [inferred] The number of consecutive items partitioned onto each thread. + * \tparam InputIteratorT [inferred] The random-access iterator type for input \iterator. + */ +template < + typename InputT, + typename DefaultT, + int ITEMS_PER_THREAD, + typename InputIteratorT> +__device__ __forceinline__ void LoadDirectWarpStriped( + int linear_tid, ///< [in] A suitable 1D thread-identifier for the calling thread (e.g., (threadIdx.y * blockDim.x) + linear_tid for 2D thread blocks) + InputIteratorT block_itr, ///< [in] The thread block's base input iterator for loading from + InputT (&items)[ITEMS_PER_THREAD], ///< [out] Data to load + int valid_items, ///< [in] Number of valid items to load + DefaultT oob_default) ///< [in] Default value to assign out-of-bound items +{ + // Load directly in warp-striped order + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + items[ITEM] = oob_default; + + LoadDirectWarpStriped(linear_tid, block_itr, items, valid_items); +} + + + +//@} end member group + +/** @} */ // end group UtilIo + + + +//----------------------------------------------------------------------------- +// Generic BlockLoad abstraction +//----------------------------------------------------------------------------- + +/** + * \brief cub::BlockLoadAlgorithm enumerates alternative algorithms for cub::BlockLoad to read a linear segment of data from memory into a blocked arrangement across a CUDA thread block. + */ +enum BlockLoadAlgorithm +{ + /** + * \par Overview + * + * A [blocked arrangement](index.html#sec5sec3) of data is read + * directly from memory. + * + * \par Performance Considerations + * The utilization of memory transactions (coalescing) decreases as the + * access stride between threads increases (i.e., the number items per thread). + */ + BLOCK_LOAD_DIRECT, + + /** + * \par Overview + * + * A [striped arrangement](index.html#sec5sec3) of data is read + * directly from memory. + * + * \par Performance Considerations + * The utilization of memory transactions (coalescing) doesn't depend on + * the number of items per thread. + */ + BLOCK_LOAD_STRIPED, + + /** + * \par Overview + * + * A [blocked arrangement](index.html#sec5sec3) of data is read + * from memory using CUDA's built-in vectorized loads as a coalescing optimization. + * For example, ld.global.v4.s32 instructions will be generated + * when \p T = \p int and \p ITEMS_PER_THREAD % 4 == 0. + * + * \par Performance Considerations + * - The utilization of memory transactions (coalescing) remains high until the the + * access stride between threads (i.e., the number items per thread) exceeds the + * maximum vector load width (typically 4 items or 64B, whichever is lower). + * - The following conditions will prevent vectorization and loading will fall + * back to cub::BLOCK_LOAD_DIRECT: + * - \p ITEMS_PER_THREAD is odd + * - The \p InputIteratorT is not a simple pointer type + * - The block input offset is not quadword-aligned + * - The data type \p T is not a built-in primitive or CUDA vector type + * (e.g., \p short, \p int2, \p double, \p float2, etc.) + */ + BLOCK_LOAD_VECTORIZE, + + /** + * \par Overview + * + * A [striped arrangement](index.html#sec5sec3) of data is read + * efficiently from memory and then locally transposed into a + * [blocked arrangement](index.html#sec5sec3). + * + * \par Performance Considerations + * - The utilization of memory transactions (coalescing) remains high regardless + * of items loaded per thread. + * - The local reordering incurs slightly longer latencies and throughput than the + * direct cub::BLOCK_LOAD_DIRECT and cub::BLOCK_LOAD_VECTORIZE alternatives. + */ + BLOCK_LOAD_TRANSPOSE, + + /** + * \par Overview + * + * A [warp-striped arrangement](index.html#sec5sec3) of data is + * read efficiently from memory and then locally transposed into a + * [blocked arrangement](index.html#sec5sec3). + * + * \par Usage Considerations + * - BLOCK_THREADS must be a multiple of WARP_THREADS + * + * \par Performance Considerations + * - The utilization of memory transactions (coalescing) remains high regardless + * of items loaded per thread. + * - The local reordering incurs slightly larger latencies than the + * direct cub::BLOCK_LOAD_DIRECT and cub::BLOCK_LOAD_VECTORIZE alternatives. + * - Provisions more shared storage, but incurs smaller latencies than the + * BLOCK_LOAD_WARP_TRANSPOSE_TIMESLICED alternative. + */ + BLOCK_LOAD_WARP_TRANSPOSE, + + /** + * \par Overview + * + * Like \p BLOCK_LOAD_WARP_TRANSPOSE, a [warp-striped arrangement](index.html#sec5sec3) + * of data is read directly from memory and then is locally transposed into a + * [blocked arrangement](index.html#sec5sec3). To reduce the shared memory + * requirement, only one warp's worth of shared memory is provisioned and is + * subsequently time-sliced among warps. + * + * \par Usage Considerations + * - BLOCK_THREADS must be a multiple of WARP_THREADS + * + * \par Performance Considerations + * - The utilization of memory transactions (coalescing) remains high regardless + * of items loaded per thread. + * - Provisions less shared memory temporary storage, but incurs larger + * latencies than the BLOCK_LOAD_WARP_TRANSPOSE alternative. + */ + BLOCK_LOAD_WARP_TRANSPOSE_TIMESLICED, +}; + + +/** + * \brief The BlockLoad class provides [collective](index.html#sec0) data movement methods for loading a linear segment of items from memory into a [blocked arrangement](index.html#sec5sec3) across a CUDA thread block. ![](block_load_logo.png) + * \ingroup BlockModule + * \ingroup UtilIo + * + * \tparam InputT The data type to read into (which must be convertible from the input iterator's value type). + * \tparam BLOCK_DIM_X The thread block length in threads along the X dimension + * \tparam ITEMS_PER_THREAD The number of consecutive items partitioned onto each thread. + * \tparam ALGORITHM [optional] cub::BlockLoadAlgorithm tuning policy. default: cub::BLOCK_LOAD_DIRECT. + * \tparam WARP_TIME_SLICING [optional] Whether or not only one warp's worth of shared memory should be allocated and time-sliced among block-warps during any load-related data transpositions (versus each warp having its own storage). (default: false) + * \tparam BLOCK_DIM_Y [optional] The thread block length in threads along the Y dimension (default: 1) + * \tparam BLOCK_DIM_Z [optional] The thread block length in threads along the Z dimension (default: 1) + * \tparam LEGACY_PTX_ARCH [optional] Unused. + * + * \par Overview + * - The BlockLoad class provides a single data movement abstraction that can be specialized + * to implement different cub::BlockLoadAlgorithm strategies. This facilitates different + * performance policies for different architectures, data types, granularity sizes, etc. + * - BlockLoad can be optionally specialized by different data movement strategies: + * -# cub::BLOCK_LOAD_DIRECT. A [blocked arrangement](index.html#sec5sec3) + * of data is read directly from memory. [More...](\ref cub::BlockLoadAlgorithm) +* -# cub::BLOCK_LOAD_STRIPED,. A [striped arrangement](index.html#sec5sec3) + * of data is read directly from memory. [More...](\ref cub::BlockLoadAlgorithm) + * -# cub::BLOCK_LOAD_VECTORIZE. A [blocked arrangement](index.html#sec5sec3) + * of data is read directly from memory using CUDA's built-in vectorized loads as a + * coalescing optimization. [More...](\ref cub::BlockLoadAlgorithm) + * -# cub::BLOCK_LOAD_TRANSPOSE. A [striped arrangement](index.html#sec5sec3) + * of data is read directly from memory and is then locally transposed into a + * [blocked arrangement](index.html#sec5sec3). [More...](\ref cub::BlockLoadAlgorithm) + * -# cub::BLOCK_LOAD_WARP_TRANSPOSE. A [warp-striped arrangement](index.html#sec5sec3) + * of data is read directly from memory and is then locally transposed into a + * [blocked arrangement](index.html#sec5sec3). [More...](\ref cub::BlockLoadAlgorithm) + * -# cub::BLOCK_LOAD_WARP_TRANSPOSE_TIMESLICED,. A [warp-striped arrangement](index.html#sec5sec3) + * of data is read directly from memory and is then locally transposed into a + * [blocked arrangement](index.html#sec5sec3) one warp at a time. [More...](\ref cub::BlockLoadAlgorithm) + * - \rowmajor + * + * \par A Simple Example + * \blockcollective{BlockLoad} + * \par + * The code snippet below illustrates the loading of a linear + * segment of 512 integers into a "blocked" arrangement across 128 threads where each + * thread owns 4 consecutive items. The load is specialized for \p BLOCK_LOAD_WARP_TRANSPOSE, + * meaning memory references are efficiently coalesced using a warp-striped access + * pattern (after which items are locally reordered among threads). + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(int *d_data, ...) + * { + * // Specialize BlockLoad for a 1D block of 128 threads owning 4 integer items each + * typedef cub::BlockLoad BlockLoad; + * + * // Allocate shared memory for BlockLoad + * __shared__ typename BlockLoad::TempStorage temp_storage; + * + * // Load a segment of consecutive items that are blocked across threads + * int thread_data[4]; + * BlockLoad(temp_storage).Load(d_data, thread_data); + * + * \endcode + * \par + * Suppose the input \p d_data is 0, 1, 2, 3, 4, 5, .... + * The set of \p thread_data across the block of threads in those threads will be + * { [0,1,2,3], [4,5,6,7], ..., [508,509,510,511] }. + * + * \par Re-using dynamically allocating shared memory + * The following example under the examples/block folder illustrates usage of + * dynamically shared memory with BlockReduce and how to re-purpose + * the same memory region: + * example_block_reduce_dyn_smem.cu + * + * This example can be easily adapted to the storage required by BlockLoad. + */ +template < + typename InputT, + int BLOCK_DIM_X, + int ITEMS_PER_THREAD, + BlockLoadAlgorithm ALGORITHM = BLOCK_LOAD_DIRECT, + int BLOCK_DIM_Y = 1, + int BLOCK_DIM_Z = 1, + int LEGACY_PTX_ARCH = 0> +class BlockLoad +{ +private: + + /****************************************************************************** + * Constants and typed definitions + ******************************************************************************/ + + /// Constants + enum + { + /// The thread block size in threads + BLOCK_THREADS = BLOCK_DIM_X * BLOCK_DIM_Y * BLOCK_DIM_Z, + }; + + + /****************************************************************************** + * Algorithmic variants + ******************************************************************************/ + + /// Load helper + template + struct LoadInternal; + + + /** + * BLOCK_LOAD_DIRECT specialization of load helper + */ + template + struct LoadInternal + { + /// Shared memory storage layout type + typedef NullType TempStorage; + + /// Linear thread-id + int linear_tid; + + /// Constructor + __device__ __forceinline__ LoadInternal( + TempStorage &/*temp_storage*/, + int linear_tid) + : + linear_tid(linear_tid) + {} + + /// Load a linear segment of items from memory + template + __device__ __forceinline__ void Load( + InputIteratorT block_itr, ///< [in] The thread block's base input iterator for loading from + InputT (&items)[ITEMS_PER_THREAD]) ///< [out] Data to load + { + LoadDirectBlocked(linear_tid, block_itr, items); + } + + /// Load a linear segment of items from memory, guarded by range + template + __device__ __forceinline__ void Load( + InputIteratorT block_itr, ///< [in] The thread block's base input iterator for loading from + InputT (&items)[ITEMS_PER_THREAD], ///< [out] Data to load + int valid_items) ///< [in] Number of valid items to load + { + LoadDirectBlocked(linear_tid, block_itr, items, valid_items); + } + + /// Load a linear segment of items from memory, guarded by range, with a fall-back assignment of out-of-bound elements + template + __device__ __forceinline__ void Load( + InputIteratorT block_itr, ///< [in] The thread block's base input iterator for loading from + InputT (&items)[ITEMS_PER_THREAD], ///< [out] Data to load + int valid_items, ///< [in] Number of valid items to load + DefaultT oob_default) ///< [in] Default value to assign out-of-bound items + { + LoadDirectBlocked(linear_tid, block_itr, items, valid_items, oob_default); + } + + }; + + + /** + * BLOCK_LOAD_STRIPED specialization of load helper + */ + template + struct LoadInternal + { + /// Shared memory storage layout type + typedef NullType TempStorage; + + /// Linear thread-id + int linear_tid; + + /// Constructor + __device__ __forceinline__ LoadInternal( + TempStorage &/*temp_storage*/, + int linear_tid) + : + linear_tid(linear_tid) + {} + + /// Load a linear segment of items from memory + template + __device__ __forceinline__ void Load( + InputIteratorT block_itr, ///< [in] The thread block's base input iterator for loading from + InputT (&items)[ITEMS_PER_THREAD]) ///< [out] Data to load + { + LoadDirectStriped(linear_tid, block_itr, items); + } + + /// Load a linear segment of items from memory, guarded by range + template + __device__ __forceinline__ void Load( + InputIteratorT block_itr, ///< [in] The thread block's base input iterator for loading from + InputT (&items)[ITEMS_PER_THREAD], ///< [out] Data to load + int valid_items) ///< [in] Number of valid items to load + { + LoadDirectStriped(linear_tid, block_itr, items, valid_items); + } + + /// Load a linear segment of items from memory, guarded by range, with a fall-back assignment of out-of-bound elements + template + __device__ __forceinline__ void Load( + InputIteratorT block_itr, ///< [in] The thread block's base input iterator for loading from + InputT (&items)[ITEMS_PER_THREAD], ///< [out] Data to load + int valid_items, ///< [in] Number of valid items to load + DefaultT oob_default) ///< [in] Default value to assign out-of-bound items + { + LoadDirectStriped(linear_tid, block_itr, items, valid_items, oob_default); + } + + }; + + + /** + * BLOCK_LOAD_VECTORIZE specialization of load helper + */ + template + struct LoadInternal + { + /// Shared memory storage layout type + typedef NullType TempStorage; + + /// Linear thread-id + int linear_tid; + + /// Constructor + __device__ __forceinline__ LoadInternal( + TempStorage &/*temp_storage*/, + int linear_tid) + : + linear_tid(linear_tid) + {} + + /// Load a linear segment of items from memory, specialized for native pointer types (attempts vectorization) + template + __device__ __forceinline__ void Load( + InputT *block_ptr, ///< [in] The thread block's base input iterator for loading from + InputT (&items)[ITEMS_PER_THREAD]) ///< [out] Data to load + { + InternalLoadDirectBlockedVectorized(linear_tid, block_ptr, items); + } + + /// Load a linear segment of items from memory, specialized for native pointer types (attempts vectorization) + template + __device__ __forceinline__ void Load( + const InputT *block_ptr, ///< [in] The thread block's base input iterator for loading from + InputT (&items)[ITEMS_PER_THREAD]) ///< [out] Data to load + { + InternalLoadDirectBlockedVectorized(linear_tid, block_ptr, items); + } + + /// Load a linear segment of items from memory, specialized for native pointer types (attempts vectorization) + template < + CacheLoadModifier MODIFIER, + typename ValueType, + typename OffsetT> + __device__ __forceinline__ void Load( + CacheModifiedInputIterator block_itr, ///< [in] The thread block's base input iterator for loading from + InputT (&items)[ITEMS_PER_THREAD]) ///< [out] Data to load + { + InternalLoadDirectBlockedVectorized(linear_tid, block_itr.ptr, items); + } + + /// Load a linear segment of items from memory, specialized for opaque input iterators (skips vectorization) + template + __device__ __forceinline__ void Load( + _InputIteratorT block_itr, ///< [in] The thread block's base input iterator for loading from + InputT (&items)[ITEMS_PER_THREAD]) ///< [out] Data to load + { + LoadDirectBlocked(linear_tid, block_itr, items); + } + + /// Load a linear segment of items from memory, guarded by range (skips vectorization) + template + __device__ __forceinline__ void Load( + InputIteratorT block_itr, ///< [in] The thread block's base input iterator for loading from + InputT (&items)[ITEMS_PER_THREAD], ///< [out] Data to load + int valid_items) ///< [in] Number of valid items to load + { + LoadDirectBlocked(linear_tid, block_itr, items, valid_items); + } + + /// Load a linear segment of items from memory, guarded by range, with a fall-back assignment of out-of-bound elements (skips vectorization) + template + __device__ __forceinline__ void Load( + InputIteratorT block_itr, ///< [in] The thread block's base input iterator for loading from + InputT (&items)[ITEMS_PER_THREAD], ///< [out] Data to load + int valid_items, ///< [in] Number of valid items to load + DefaultT oob_default) ///< [in] Default value to assign out-of-bound items + { + LoadDirectBlocked(linear_tid, block_itr, items, valid_items, oob_default); + } + + }; + + + /** + * BLOCK_LOAD_TRANSPOSE specialization of load helper + */ + template + struct LoadInternal + { + // BlockExchange utility type for keys + typedef BlockExchange BlockExchange; + + /// Shared memory storage layout type + struct _TempStorage : BlockExchange::TempStorage + {}; + + /// Alias wrapper allowing storage to be unioned + struct TempStorage : Uninitialized<_TempStorage> {}; + + /// Thread reference to shared storage + _TempStorage &temp_storage; + + /// Linear thread-id + int linear_tid; + + /// Constructor + __device__ __forceinline__ LoadInternal( + TempStorage &temp_storage, + int linear_tid) + : + temp_storage(temp_storage.Alias()), + linear_tid(linear_tid) + {} + + /// Load a linear segment of items from memory + template + __device__ __forceinline__ void Load( + InputIteratorT block_itr, ///< [in] The thread block's base input iterator for loading from + InputT (&items)[ITEMS_PER_THREAD]) ///< [out] Data to load{ + { + LoadDirectStriped(linear_tid, block_itr, items); + BlockExchange(temp_storage).StripedToBlocked(items, items); + } + + /// Load a linear segment of items from memory, guarded by range + template + __device__ __forceinline__ void Load( + InputIteratorT block_itr, ///< [in] The thread block's base input iterator for loading from + InputT (&items)[ITEMS_PER_THREAD], ///< [out] Data to load + int valid_items) ///< [in] Number of valid items to load + { + LoadDirectStriped(linear_tid, block_itr, items, valid_items); + BlockExchange(temp_storage).StripedToBlocked(items, items); + } + + /// Load a linear segment of items from memory, guarded by range, with a fall-back assignment of out-of-bound elements + template + __device__ __forceinline__ void Load( + InputIteratorT block_itr, ///< [in] The thread block's base input iterator for loading from + InputT (&items)[ITEMS_PER_THREAD], ///< [out] Data to load + int valid_items, ///< [in] Number of valid items to load + DefaultT oob_default) ///< [in] Default value to assign out-of-bound items + { + LoadDirectStriped(linear_tid, block_itr, items, valid_items, oob_default); + BlockExchange(temp_storage).StripedToBlocked(items, items); + } + + }; + + + /** + * BLOCK_LOAD_WARP_TRANSPOSE specialization of load helper + */ + template + struct LoadInternal + { + enum + { + WARP_THREADS = CUB_WARP_THREADS(0) + }; + + // Assert BLOCK_THREADS must be a multiple of WARP_THREADS + CUB_STATIC_ASSERT((int(BLOCK_THREADS) % int(WARP_THREADS) == 0), "BLOCK_THREADS must be a multiple of WARP_THREADS"); + + // BlockExchange utility type for keys + typedef BlockExchange BlockExchange; + + /// Shared memory storage layout type + struct _TempStorage : BlockExchange::TempStorage + {}; + + /// Alias wrapper allowing storage to be unioned + struct TempStorage : Uninitialized<_TempStorage> {}; + + /// Thread reference to shared storage + _TempStorage &temp_storage; + + /// Linear thread-id + int linear_tid; + + /// Constructor + __device__ __forceinline__ LoadInternal( + TempStorage &temp_storage, + int linear_tid) + : + temp_storage(temp_storage.Alias()), + linear_tid(linear_tid) + {} + + /// Load a linear segment of items from memory + template + __device__ __forceinline__ void Load( + InputIteratorT block_itr, ///< [in] The thread block's base input iterator for loading from + InputT (&items)[ITEMS_PER_THREAD]) ///< [out] Data to load{ + { + LoadDirectWarpStriped(linear_tid, block_itr, items); + BlockExchange(temp_storage).WarpStripedToBlocked(items, items); + } + + /// Load a linear segment of items from memory, guarded by range + template + __device__ __forceinline__ void Load( + InputIteratorT block_itr, ///< [in] The thread block's base input iterator for loading from + InputT (&items)[ITEMS_PER_THREAD], ///< [out] Data to load + int valid_items) ///< [in] Number of valid items to load + { + LoadDirectWarpStriped(linear_tid, block_itr, items, valid_items); + BlockExchange(temp_storage).WarpStripedToBlocked(items, items); + } + + + /// Load a linear segment of items from memory, guarded by range, with a fall-back assignment of out-of-bound elements + template + __device__ __forceinline__ void Load( + InputIteratorT block_itr, ///< [in] The thread block's base input iterator for loading from + InputT (&items)[ITEMS_PER_THREAD], ///< [out] Data to load + int valid_items, ///< [in] Number of valid items to load + DefaultT oob_default) ///< [in] Default value to assign out-of-bound items + { + LoadDirectWarpStriped(linear_tid, block_itr, items, valid_items, oob_default); + BlockExchange(temp_storage).WarpStripedToBlocked(items, items); + } + }; + + + /** + * BLOCK_LOAD_WARP_TRANSPOSE_TIMESLICED specialization of load helper + */ + template + struct LoadInternal + { + enum + { + WARP_THREADS = CUB_WARP_THREADS(0) + }; + + // Assert BLOCK_THREADS must be a multiple of WARP_THREADS + CUB_STATIC_ASSERT((int(BLOCK_THREADS) % int(WARP_THREADS) == 0), "BLOCK_THREADS must be a multiple of WARP_THREADS"); + + // BlockExchange utility type for keys + typedef BlockExchange BlockExchange; + + /// Shared memory storage layout type + struct _TempStorage : BlockExchange::TempStorage + {}; + + /// Alias wrapper allowing storage to be unioned + struct TempStorage : Uninitialized<_TempStorage> {}; + + /// Thread reference to shared storage + _TempStorage &temp_storage; + + /// Linear thread-id + int linear_tid; + + /// Constructor + __device__ __forceinline__ LoadInternal( + TempStorage &temp_storage, + int linear_tid) + : + temp_storage(temp_storage.Alias()), + linear_tid(linear_tid) + {} + + /// Load a linear segment of items from memory + template + __device__ __forceinline__ void Load( + InputIteratorT block_itr, ///< [in] The thread block's base input iterator for loading from + InputT (&items)[ITEMS_PER_THREAD]) ///< [out] Data to load{ + { + LoadDirectWarpStriped(linear_tid, block_itr, items); + BlockExchange(temp_storage).WarpStripedToBlocked(items, items); + } + + /// Load a linear segment of items from memory, guarded by range + template + __device__ __forceinline__ void Load( + InputIteratorT block_itr, ///< [in] The thread block's base input iterator for loading from + InputT (&items)[ITEMS_PER_THREAD], ///< [out] Data to load + int valid_items) ///< [in] Number of valid items to load + { + LoadDirectWarpStriped(linear_tid, block_itr, items, valid_items); + BlockExchange(temp_storage).WarpStripedToBlocked(items, items); + } + + + /// Load a linear segment of items from memory, guarded by range, with a fall-back assignment of out-of-bound elements + template + __device__ __forceinline__ void Load( + InputIteratorT block_itr, ///< [in] The thread block's base input iterator for loading from + InputT (&items)[ITEMS_PER_THREAD], ///< [out] Data to load + int valid_items, ///< [in] Number of valid items to load + DefaultT oob_default) ///< [in] Default value to assign out-of-bound items + { + LoadDirectWarpStriped(linear_tid, block_itr, items, valid_items, oob_default); + BlockExchange(temp_storage).WarpStripedToBlocked(items, items); + } + }; + + + /****************************************************************************** + * Type definitions + ******************************************************************************/ + + /// Internal load implementation to use + typedef LoadInternal InternalLoad; + + + /// Shared memory storage layout type + typedef typename InternalLoad::TempStorage _TempStorage; + + + /****************************************************************************** + * Utility methods + ******************************************************************************/ + + /// Internal storage allocator + __device__ __forceinline__ _TempStorage& PrivateStorage() + { + __shared__ _TempStorage private_storage; + return private_storage; + } + + + /****************************************************************************** + * Thread fields + ******************************************************************************/ + + /// Thread reference to shared storage + _TempStorage &temp_storage; + + /// Linear thread-id + int linear_tid; + +public: + + /// \smemstorage{BlockLoad} + struct TempStorage : Uninitialized<_TempStorage> {}; + + + /******************************************************************//** + * \name Collective constructors + *********************************************************************/ + //@{ + + /** + * \brief Collective constructor using a private static allocation of shared memory as temporary storage. + */ + __device__ __forceinline__ BlockLoad() + : + temp_storage(PrivateStorage()), + linear_tid(RowMajorTid(BLOCK_DIM_X, BLOCK_DIM_Y, BLOCK_DIM_Z)) + {} + + + /** + * \brief Collective constructor using the specified memory allocation as temporary storage. + */ + __device__ __forceinline__ BlockLoad( + TempStorage &temp_storage) ///< [in] Reference to memory allocation having layout type TempStorage + : + temp_storage(temp_storage.Alias()), + linear_tid(RowMajorTid(BLOCK_DIM_X, BLOCK_DIM_Y, BLOCK_DIM_Z)) + {} + + + + + //@} end member group + /******************************************************************//** + * \name Data movement + *********************************************************************/ + //@{ + + + /** + * \brief Load a linear segment of items from memory. + * + * \par + * - \blocked + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates the loading of a linear + * segment of 512 integers into a "blocked" arrangement across 128 threads where each + * thread owns 4 consecutive items. The load is specialized for \p BLOCK_LOAD_WARP_TRANSPOSE, + * meaning memory references are efficiently coalesced using a warp-striped access + * pattern (after which items are locally reordered among threads). + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(int *d_data, ...) + * { + * // Specialize BlockLoad for a 1D block of 128 threads owning 4 integer items each + * typedef cub::BlockLoad BlockLoad; + * + * // Allocate shared memory for BlockLoad + * __shared__ typename BlockLoad::TempStorage temp_storage; + * + * // Load a segment of consecutive items that are blocked across threads + * int thread_data[4]; + * BlockLoad(temp_storage).Load(d_data, thread_data); + * + * \endcode + * \par + * Suppose the input \p d_data is 0, 1, 2, 3, 4, 5, .... + * The set of \p thread_data across the block of threads in those threads will be + * { [0,1,2,3], [4,5,6,7], ..., [508,509,510,511] }. + * + */ + template + __device__ __forceinline__ void Load( + InputIteratorT block_itr, ///< [in] The thread block's base input iterator for loading from + InputT (&items)[ITEMS_PER_THREAD]) ///< [out] Data to load + { + InternalLoad(temp_storage, linear_tid).Load(block_itr, items); + } + + + /** + * \brief Load a linear segment of items from memory, guarded by range. + * + * \par + * - \blocked + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates the guarded loading of a linear + * segment of 512 integers into a "blocked" arrangement across 128 threads where each + * thread owns 4 consecutive items. The load is specialized for \p BLOCK_LOAD_WARP_TRANSPOSE, + * meaning memory references are efficiently coalesced using a warp-striped access + * pattern (after which items are locally reordered among threads). + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(int *d_data, int valid_items, ...) + * { + * // Specialize BlockLoad for a 1D block of 128 threads owning 4 integer items each + * typedef cub::BlockLoad BlockLoad; + * + * // Allocate shared memory for BlockLoad + * __shared__ typename BlockLoad::TempStorage temp_storage; + * + * // Load a segment of consecutive items that are blocked across threads + * int thread_data[4]; + * BlockLoad(temp_storage).Load(d_data, thread_data, valid_items); + * + * \endcode + * \par + * Suppose the input \p d_data is 0, 1, 2, 3, 4, 5, 6... and \p valid_items is \p 5. + * The set of \p thread_data across the block of threads in those threads will be + * { [0,1,2,3], [4,?,?,?], ..., [?,?,?,?] }, with only the first two threads + * being unmasked to load portions of valid data (and other items remaining unassigned). + * + */ + template + __device__ __forceinline__ void Load( + InputIteratorT block_itr, ///< [in] The thread block's base input iterator for loading from + InputT (&items)[ITEMS_PER_THREAD], ///< [out] Data to load + int valid_items) ///< [in] Number of valid items to load + { + InternalLoad(temp_storage, linear_tid).Load(block_itr, items, valid_items); + } + + + /** + * \brief Load a linear segment of items from memory, guarded by range, with a fall-back assignment of out-of-bound elements + * + * \par + * - \blocked + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates the guarded loading of a linear + * segment of 512 integers into a "blocked" arrangement across 128 threads where each + * thread owns 4 consecutive items. The load is specialized for \p BLOCK_LOAD_WARP_TRANSPOSE, + * meaning memory references are efficiently coalesced using a warp-striped access + * pattern (after which items are locally reordered among threads). + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(int *d_data, int valid_items, ...) + * { + * // Specialize BlockLoad for a 1D block of 128 threads owning 4 integer items each + * typedef cub::BlockLoad BlockLoad; + * + * // Allocate shared memory for BlockLoad + * __shared__ typename BlockLoad::TempStorage temp_storage; + * + * // Load a segment of consecutive items that are blocked across threads + * int thread_data[4]; + * BlockLoad(temp_storage).Load(d_data, thread_data, valid_items, -1); + * + * \endcode + * \par + * Suppose the input \p d_data is 0, 1, 2, 3, 4, 5, 6..., + * \p valid_items is \p 5, and the out-of-bounds default is \p -1. + * The set of \p thread_data across the block of threads in those threads will be + * { [0,1,2,3], [4,-1,-1,-1], ..., [-1,-1,-1,-1] }, with only the first two threads + * being unmasked to load portions of valid data (and other items are assigned \p -1) + * + */ + template + __device__ __forceinline__ void Load( + InputIteratorT block_itr, ///< [in] The thread block's base input iterator for loading from + InputT (&items)[ITEMS_PER_THREAD], ///< [out] Data to load + int valid_items, ///< [in] Number of valid items to load + DefaultT oob_default) ///< [in] Default value to assign out-of-bound items + { + InternalLoad(temp_storage, linear_tid).Load(block_itr, items, valid_items, oob_default); + } + + + //@} end member group + +}; + +template > +struct BlockLoadType +{ + using type = cub::BlockLoad; +}; + + +CUB_NAMESPACE_END + diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/block/block_merge_sort.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/block/block_merge_sort.cuh new file mode 100644 index 0000000000000000000000000000000000000000..dc07ef6c294352899b22ad5682dc82fe92d46b2b --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/block/block_merge_sort.cuh @@ -0,0 +1,804 @@ +/****************************************************************************** + * Copyright (c) 2011-2021, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +#pragma once + +#include +#include +#include +#include +#include + + +CUB_NAMESPACE_BEGIN + + +// Additional details of the Merge-Path Algorithm can be found in: +// S. Odeh, O. Green, Z. Mwassi, O. Shmueli, Y. Birk, " Merge Path - Parallel +// Merging Made Simple", Multithreaded Architectures and Applications (MTAAP) +// Workshop, IEEE 26th International Parallel & Distributed Processing +// Symposium (IPDPS), 2012 +template +__device__ __forceinline__ OffsetT MergePath(KeyIteratorT keys1, + KeyIteratorT keys2, + OffsetT keys1_count, + OffsetT keys2_count, + OffsetT diag, + BinaryPred binary_pred) +{ + OffsetT keys1_begin = diag < keys2_count ? 0 : diag - keys2_count; + OffsetT keys1_end = (cub::min)(diag, keys1_count); + + while (keys1_begin < keys1_end) + { + OffsetT mid = cub::MidPoint(keys1_begin, keys1_end); + KeyT key1 = keys1[mid]; + KeyT key2 = keys2[diag - 1 - mid]; + bool pred = binary_pred(key2, key1); + + if (pred) + { + keys1_end = mid; + } + else + { + keys1_begin = mid + 1; + } + } + return keys1_begin; +} + +template +__device__ __forceinline__ void SerialMerge(KeyT *keys_shared, + int keys1_beg, + int keys2_beg, + int keys1_count, + int keys2_count, + KeyT (&output)[ITEMS_PER_THREAD], + int (&indices)[ITEMS_PER_THREAD], + CompareOp compare_op) +{ + int keys1_end = keys1_beg + keys1_count; + int keys2_end = keys2_beg + keys2_count; + + KeyT key1 = keys_shared[keys1_beg]; + KeyT key2 = keys_shared[keys2_beg]; + +#pragma unroll + for (int item = 0; item < ITEMS_PER_THREAD; ++item) + { + bool p = (keys2_beg < keys2_end) && + ((keys1_beg >= keys1_end) + || compare_op(key2, key1)); + + output[item] = p ? key2 : key1; + indices[item] = p ? keys2_beg++ : keys1_beg++; + + if (p) + { + key2 = keys_shared[keys2_beg]; + } + else + { + key1 = keys_shared[keys1_beg]; + } + } +} + +/** + * @brief Generalized merge sort algorithm + * + * This class is used to reduce code duplication. Warp and Block merge sort + * differ only in how they compute thread index and how they synchronize + * threads. Since synchronization might require access to custom data + * (like member mask), CRTP is used. + * + * @par + * The code snippet below illustrates the way this class can be used. + * @par + * @code + * #include // or equivalently + * + * constexpr int BLOCK_THREADS = 256; + * constexpr int ITEMS_PER_THREAD = 9; + * + * class BlockMergeSort : public BlockMergeSortStrategy + * { + * using BlockMergeSortStrategyT = + * BlockMergeSortStrategy; + * public: + * __device__ __forceinline__ explicit BlockMergeSort( + * typename BlockMergeSortStrategyT::TempStorage &temp_storage) + * : BlockMergeSortStrategyT(temp_storage, threadIdx.x) + * {} + * + * __device__ __forceinline__ void SyncImplementation() const + * { + * __syncthreads(); + * } + * }; + * @endcode + * + * @tparam KeyT + * KeyT type + * + * @tparam ValueT + * ValueT type. cub::NullType indicates a keys-only sort + * + * @tparam SynchronizationPolicy + * Provides a way of synchronizing threads. Should be derived from + * `BlockMergeSortStrategy`. + */ +template +class BlockMergeSortStrategy +{ + static_assert(PowerOfTwo::VALUE, + "NUM_THREADS must be a power of two"); + +private: + + static constexpr int ITEMS_PER_TILE = ITEMS_PER_THREAD * NUM_THREADS; + + // Whether or not there are values to be trucked along with keys + static constexpr bool KEYS_ONLY = std::is_same::value; + + /// Shared memory type required by this thread block + union _TempStorage + { + KeyT keys_shared[ITEMS_PER_TILE + 1]; + ValueT items_shared[ITEMS_PER_TILE + 1]; + }; // union TempStorage + + /// Shared storage reference + _TempStorage &temp_storage; + + /// Internal storage allocator + __device__ __forceinline__ _TempStorage& PrivateStorage() + { + __shared__ _TempStorage private_storage; + return private_storage; + } + + const unsigned int linear_tid; + +public: + /// \smemstorage{BlockMergeSort} + struct TempStorage : Uninitialized<_TempStorage> {}; + + BlockMergeSortStrategy() = delete; + explicit __device__ __forceinline__ + BlockMergeSortStrategy(unsigned int linear_tid) + : temp_storage(PrivateStorage()) + , linear_tid(linear_tid) + {} + + __device__ __forceinline__ BlockMergeSortStrategy(TempStorage &temp_storage, + unsigned int linear_tid) + : temp_storage(temp_storage.Alias()) + , linear_tid(linear_tid) + {} + + __device__ __forceinline__ unsigned int get_linear_tid() const + { + return linear_tid; + } + + /** + * @brief Sorts items partitioned across a CUDA thread block using + * a merge sorting method. + * + * @par + * Sort is not guaranteed to be stable. That is, suppose that i and j are + * equivalent: neither one is less than the other. It is not guaranteed + * that the relative order of these two elements will be preserved by sort. + * + * @tparam CompareOp + * functor type having member `bool operator()(KeyT lhs, KeyT rhs)`. + * `CompareOp` is a model of [Strict Weak Ordering]. + * + * @param[in,out] keys + * Keys to sort + * + * @param[in] compare_op + * Comparison function object which returns true if the first argument is + * ordered before the second + * + * [Strict Weak Ordering]: https://en.cppreference.com/w/cpp/concepts/strict_weak_order + */ + template + __device__ __forceinline__ void Sort(KeyT (&keys)[ITEMS_PER_THREAD], + CompareOp compare_op) + { + ValueT items[ITEMS_PER_THREAD]; + Sort(keys, items, compare_op, ITEMS_PER_TILE, keys[0]); + } + + /** + * @brief Sorts items partitioned across a CUDA thread block using + * a merge sorting method. + * + * @par + * - Sort is not guaranteed to be stable. That is, suppose that `i` and `j` + * are equivalent: neither one is less than the other. It is not guaranteed + * that the relative order of these two elements will be preserved by sort. + * - The value of `oob_default` is assigned to all elements that are out of + * `valid_items` boundaries. It's expected that `oob_default` is ordered + * after any value in the `valid_items` boundaries. The algorithm always + * sorts a fixed amount of elements, which is equal to + * `ITEMS_PER_THREAD * BLOCK_THREADS`. If there is a value that is ordered + * after `oob_default`, it won't be placed within `valid_items` boundaries. + * + * @tparam CompareOp + * functor type having member `bool operator()(KeyT lhs, KeyT rhs)`. + * `CompareOp` is a model of [Strict Weak Ordering]. + * + * @param[in,out] keys + * Keys to sort + * + * @param[in] compare_op + * Comparison function object which returns true if the first argument is + * ordered before the second + * + * @param[in] valid_items + * Number of valid items to sort + * + * @param[in] oob_default + * Default value to assign out-of-bound items + * + * [Strict Weak Ordering]: https://en.cppreference.com/w/cpp/concepts/strict_weak_order + */ + template + __device__ __forceinline__ void Sort(KeyT (&keys)[ITEMS_PER_THREAD], + CompareOp compare_op, + int valid_items, + KeyT oob_default) + { + ValueT items[ITEMS_PER_THREAD]; + Sort(keys, items, compare_op, valid_items, oob_default); + } + + /** + * @brief Sorts items partitioned across a CUDA thread block using a merge sorting method. + * + * @par + * Sort is not guaranteed to be stable. That is, suppose that `i` and `j` are + * equivalent: neither one is less than the other. It is not guaranteed + * that the relative order of these two elements will be preserved by sort. + * + * @tparam CompareOp + * functor type having member `bool operator()(KeyT lhs, KeyT rhs)`. + * `CompareOp` is a model of [Strict Weak Ordering]. + * + * @param[in,out] keys + * Keys to sort + * + * @param[in,out] items + * Values to sort + * + * @param[in] compare_op + * Comparison function object which returns true if the first argument is + * ordered before the second + * + * [Strict Weak Ordering]: https://en.cppreference.com/w/cpp/concepts/strict_weak_order + */ + template + __device__ __forceinline__ void Sort(KeyT (&keys)[ITEMS_PER_THREAD], + ValueT (&items)[ITEMS_PER_THREAD], + CompareOp compare_op) + { + Sort(keys, items, compare_op, ITEMS_PER_TILE, keys[0]); + } + + /** + * @brief Sorts items partitioned across a CUDA thread block using + * a merge sorting method. + * + * @par + * - Sort is not guaranteed to be stable. That is, suppose that `i` and `j` + * are equivalent: neither one is less than the other. It is not guaranteed + * that the relative order of these two elements will be preserved by sort. + * - The value of `oob_default` is assigned to all elements that are out of + * `valid_items` boundaries. It's expected that `oob_default` is ordered + * after any value in the `valid_items` boundaries. The algorithm always + * sorts a fixed amount of elements, which is equal to + * `ITEMS_PER_THREAD * BLOCK_THREADS`. If there is a value that is ordered + * after `oob_default`, it won't be placed within `valid_items` boundaries. + * + * @tparam CompareOp + * functor type having member `bool operator()(KeyT lhs, KeyT rhs)` + * `CompareOp` is a model of [Strict Weak Ordering]. + * + * @tparam IS_LAST_TILE + * True if `valid_items` isn't equal to the `ITEMS_PER_TILE` + * + * @param[in,out] keys + * Keys to sort + * + * @param[in,out] items + * Values to sort + * + * @param[in] compare_op + * Comparison function object which returns true if the first argument is + * ordered before the second + * + * @param[in] valid_items + * Number of valid items to sort + * + * @param[in] oob_default + * Default value to assign out-of-bound items + * + * [Strict Weak Ordering]: https://en.cppreference.com/w/cpp/concepts/strict_weak_order + */ + template + __device__ __forceinline__ void Sort(KeyT (&keys)[ITEMS_PER_THREAD], + ValueT (&items)[ITEMS_PER_THREAD], + CompareOp compare_op, + int valid_items, + KeyT oob_default) + { + if (IS_LAST_TILE) + { + // if last tile, find valid max_key + // and fill the remaining keys with it + // + KeyT max_key = oob_default; + + #pragma unroll + for (int item = 1; item < ITEMS_PER_THREAD; ++item) + { + if (ITEMS_PER_THREAD * linear_tid + item < valid_items) + { + max_key = compare_op(max_key, keys[item]) ? keys[item] : max_key; + } + else + { + keys[item] = max_key; + } + } + } + + // if first element of thread is in input range, stable sort items + // + if (!IS_LAST_TILE || ITEMS_PER_THREAD * linear_tid < valid_items) + { + StableOddEvenSort(keys, items, compare_op); + } + + // each thread has sorted keys + // merge sort keys in shared memory + // + for (int target_merged_threads_number = 2; + target_merged_threads_number <= NUM_THREADS; + target_merged_threads_number *= 2) + { + int merged_threads_number = target_merged_threads_number / 2; + int mask = target_merged_threads_number - 1; + + Sync(); + + // store keys in shmem + // + #pragma unroll + for (int item = 0; item < ITEMS_PER_THREAD; ++item) + { + int idx = ITEMS_PER_THREAD * linear_tid + item; + temp_storage.keys_shared[idx] = keys[item]; + } + + Sync(); + + int indices[ITEMS_PER_THREAD]; + + int first_thread_idx_in_thread_group_being_merged = ~mask & linear_tid; + int start = ITEMS_PER_THREAD * first_thread_idx_in_thread_group_being_merged; + int size = ITEMS_PER_THREAD * merged_threads_number; + + int thread_idx_in_thread_group_being_merged = mask & linear_tid; + + int diag = + (cub::min)(valid_items, + ITEMS_PER_THREAD * thread_idx_in_thread_group_being_merged); + + int keys1_beg = (cub::min)(valid_items, start); + int keys1_end = (cub::min)(valid_items, keys1_beg + size); + int keys2_beg = keys1_end; + int keys2_end = (cub::min)(valid_items, keys2_beg + size); + + int keys1_count = keys1_end - keys1_beg; + int keys2_count = keys2_end - keys2_beg; + + int partition_diag = MergePath(&temp_storage.keys_shared[keys1_beg], + &temp_storage.keys_shared[keys2_beg], + keys1_count, + keys2_count, + diag, + compare_op); + + int keys1_beg_loc = keys1_beg + partition_diag; + int keys1_end_loc = keys1_end; + int keys2_beg_loc = keys2_beg + diag - partition_diag; + int keys2_end_loc = keys2_end; + int keys1_count_loc = keys1_end_loc - keys1_beg_loc; + int keys2_count_loc = keys2_end_loc - keys2_beg_loc; + SerialMerge(&temp_storage.keys_shared[0], + keys1_beg_loc, + keys2_beg_loc, + keys1_count_loc, + keys2_count_loc, + keys, + indices, + compare_op); + + if (!KEYS_ONLY) + { + Sync(); + + // store keys in shmem + // + #pragma unroll + for (int item = 0; item < ITEMS_PER_THREAD; ++item) + { + int idx = ITEMS_PER_THREAD * linear_tid + item; + temp_storage.items_shared[idx] = items[item]; + } + + Sync(); + + // gather items from shmem + // + #pragma unroll + for (int item = 0; item < ITEMS_PER_THREAD; ++item) + { + items[item] = temp_storage.items_shared[indices[item]]; + } + } + } + } // func block_merge_sort + + /** + * @brief Sorts items partitioned across a CUDA thread block using + * a merge sorting method. + * + * @par + * StableSort is stable: it preserves the relative ordering of equivalent + * elements. That is, if `x` and `y` are elements such that `x` precedes `y`, + * and if the two elements are equivalent (neither `x < y` nor `y < x`) then + * a postcondition of StableSort is that `x` still precedes `y`. + * + * @tparam CompareOp + * functor type having member `bool operator()(KeyT lhs, KeyT rhs)`. + * `CompareOp` is a model of [Strict Weak Ordering]. + * + * @param[in,out] keys + * Keys to sort + * + * @param[in] compare_op + * Comparison function object which returns true if the first argument is + * ordered before the second + * + * [Strict Weak Ordering]: https://en.cppreference.com/w/cpp/concepts/strict_weak_order + */ + template + __device__ __forceinline__ void StableSort(KeyT (&keys)[ITEMS_PER_THREAD], + CompareOp compare_op) + { + Sort(keys, compare_op); + } + + /** + * @brief Sorts items partitioned across a CUDA thread block using + * a merge sorting method. + * + * @par + * StableSort is stable: it preserves the relative ordering of equivalent + * elements. That is, if `x` and `y` are elements such that `x` precedes `y`, + * and if the two elements are equivalent (neither `x < y` nor `y < x`) then + * a postcondition of StableSort is that `x` still precedes `y`. + * + * @tparam CompareOp + * functor type having member `bool operator()(KeyT lhs, KeyT rhs)`. + * `CompareOp` is a model of [Strict Weak Ordering]. + * + * @param[in,out] keys + * Keys to sort + * + * @param[in,out] items + * Values to sort + * + * @param[in] compare_op + * Comparison function object which returns true if the first argument is + * ordered before the second + * + * [Strict Weak Ordering]: https://en.cppreference.com/w/cpp/concepts/strict_weak_order + */ + template + __device__ __forceinline__ void StableSort(KeyT (&keys)[ITEMS_PER_THREAD], + ValueT (&items)[ITEMS_PER_THREAD], + CompareOp compare_op) + { + Sort(keys, items, compare_op); + } + + /** + * @brief Sorts items partitioned across a CUDA thread block using + * a merge sorting method. + * + * @par + * - StableSort is stable: it preserves the relative ordering of equivalent + * elements. That is, if `x` and `y` are elements such that `x` precedes + * `y`, and if the two elements are equivalent (neither `x < y` nor `y < x`) + * then a postcondition of StableSort is that `x` still precedes `y`. + * - The value of `oob_default` is assigned to all elements that are out of + * `valid_items` boundaries. It's expected that `oob_default` is ordered + * after any value in the `valid_items` boundaries. The algorithm always + * sorts a fixed amount of elements, which is equal to + * `ITEMS_PER_THREAD * BLOCK_THREADS`. + * If there is a value that is ordered after `oob_default`, it won't be + * placed within `valid_items` boundaries. + * + * @tparam CompareOp + * functor type having member `bool operator()(KeyT lhs, KeyT rhs)`. + * `CompareOp` is a model of [Strict Weak Ordering]. + * + * @param[in,out] keys + * Keys to sort + * + * @param[in] compare_op + * Comparison function object which returns true if the first argument is + * ordered before the second + * + * @param[in] valid_items + * Number of valid items to sort + * + * @param[in] oob_default + * Default value to assign out-of-bound items + * + * [Strict Weak Ordering]: https://en.cppreference.com/w/cpp/concepts/strict_weak_order + */ + template + __device__ __forceinline__ void StableSort(KeyT (&keys)[ITEMS_PER_THREAD], + CompareOp compare_op, + int valid_items, + KeyT oob_default) + { + Sort(keys, compare_op, valid_items, oob_default); + } + + /** + * @brief Sorts items partitioned across a CUDA thread block using + * a merge sorting method. + * + * @par + * - StableSort is stable: it preserves the relative ordering of equivalent + * elements. That is, if `x` and `y` are elements such that `x` precedes + * `y`, and if the two elements are equivalent (neither `x < y` nor `y < x`) + * then a postcondition of StableSort is that `x` still precedes `y`. + * - The value of `oob_default` is assigned to all elements that are out of + * `valid_items` boundaries. It's expected that `oob_default` is ordered + * after any value in the `valid_items` boundaries. The algorithm always + * sorts a fixed amount of elements, which is equal to + * `ITEMS_PER_THREAD * BLOCK_THREADS`. If there is a value that is ordered + * after `oob_default`, it won't be placed within `valid_items` boundaries. + * + * @tparam CompareOp + * functor type having member `bool operator()(KeyT lhs, KeyT rhs)`. + * `CompareOp` is a model of [Strict Weak Ordering]. + * + * @tparam IS_LAST_TILE + * True if `valid_items` isn't equal to the `ITEMS_PER_TILE` + * + * @param[in,out] keys + * Keys to sort + * + * @param[in,out] items + * Values to sort + * + * @param[in] compare_op + * Comparison function object which returns true if the first argument is + * ordered before the second + * + * @param[in] valid_items + * Number of valid items to sort + * + * @param[in] oob_default + * Default value to assign out-of-bound items + * + * [Strict Weak Ordering]: https://en.cppreference.com/w/cpp/concepts/strict_weak_order + */ + template + __device__ __forceinline__ void StableSort(KeyT (&keys)[ITEMS_PER_THREAD], + ValueT (&items)[ITEMS_PER_THREAD], + CompareOp compare_op, + int valid_items, + KeyT oob_default) + { + Sort(keys, + items, + compare_op, + valid_items, + oob_default); + } + +private: + __device__ __forceinline__ void Sync() const + { + static_cast(this)->SyncImplementation(); + } +}; + + +/** + * @brief The BlockMergeSort class provides methods for sorting items + * partitioned across a CUDA thread block using a merge sorting method. + * @ingroup BlockModule + * + * @tparam KeyT + * KeyT type + * + * @tparam BLOCK_DIM_X + * The thread block length in threads along the X dimension + * + * @tparam ITEMS_PER_THREAD + * The number of items per thread + * + * @tparam ValueT + * **[optional]** ValueT type (default: `cub::NullType`, which indicates + * a keys-only sort) + * + * @tparam BLOCK_DIM_Y + * **[optional]** The thread block length in threads along the Y dimension + * (default: 1) + * + * @tparam BLOCK_DIM_Z + * **[optional]** The thread block length in threads along the Z dimension + * (default: 1) + * + * @par Overview + * BlockMergeSort arranges items into ascending order using a comparison + * functor with less-than semantics. Merge sort can handle arbitrary types + * and comparison functors, but is slower than BlockRadixSort when sorting + * arithmetic types into ascending/descending order. + * + * @par A Simple Example + * @blockcollective{BlockMergeSort} + * @par + * The code snippet below illustrates a sort of 512 integer keys that are + * partitioned across 128 threads * where each thread owns 4 consecutive items. + * @par + * @code + * #include // or equivalently + * + * struct CustomLess + * { + * template + * __device__ bool operator()(const DataType &lhs, const DataType &rhs) + * { + * return lhs < rhs; + * } + * }; + * + * __global__ void ExampleKernel(...) + * { + * // Specialize BlockMergeSort for a 1D block of 128 threads owning 4 integer items each + * typedef cub::BlockMergeSort BlockMergeSort; + * + * // Allocate shared memory for BlockMergeSort + * __shared__ typename BlockMergeSort::TempStorage temp_storage_shuffle; + * + * // Obtain a segment of consecutive items that are blocked across threads + * int thread_keys[4]; + * ... + * + * BlockMergeSort(temp_storage_shuffle).Sort(thread_keys, CustomLess()); + * ... + * } + * @endcode + * @par + * Suppose the set of input `thread_keys` across the block of threads is + * `{ [0,511,1,510], [2,509,3,508], [4,507,5,506], ..., [254,257,255,256] }`. + * The corresponding output `thread_keys` in those threads will be + * `{ [0,1,2,3], [4,5,6,7], [8,9,10,11], ..., [508,509,510,511] }`. + * + * @par Re-using dynamically allocating shared memory + * The following example under the examples/block folder illustrates usage of + * dynamically shared memory with BlockReduce and how to re-purpose + * the same memory region: + * example_block_reduce_dyn_smem.cu + * + * This example can be easily adapted to the storage required by BlockMergeSort. + */ +template +class BlockMergeSort + : public BlockMergeSortStrategy> +{ +private: + // The thread block size in threads + static constexpr int BLOCK_THREADS = BLOCK_DIM_X * BLOCK_DIM_Y * BLOCK_DIM_Z; + static constexpr int ITEMS_PER_TILE = ITEMS_PER_THREAD * BLOCK_THREADS; + + using BlockMergeSortStrategyT = + BlockMergeSortStrategy; + +public: + __device__ __forceinline__ BlockMergeSort() + : BlockMergeSortStrategyT( + RowMajorTid(BLOCK_DIM_X, BLOCK_DIM_Y, BLOCK_DIM_Z)) + {} + + __device__ __forceinline__ explicit BlockMergeSort( + typename BlockMergeSortStrategyT::TempStorage &temp_storage) + : BlockMergeSortStrategyT( + temp_storage, + RowMajorTid(BLOCK_DIM_X, BLOCK_DIM_Y, BLOCK_DIM_Z)) + {} + +private: + __device__ __forceinline__ void SyncImplementation() const + { + CTA_SYNC(); + } + + friend BlockMergeSortStrategyT; +}; + + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/block/block_radix_rank.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/block/block_radix_rank.cuh new file mode 100644 index 0000000000000000000000000000000000000000..a661e9d1f1f3b0993bbc61fa346f9d1c4fd48d45 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/block/block_radix_rank.cuh @@ -0,0 +1,1240 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * cub::BlockRadixRank provides operations for ranking unsigned integer types within a CUDA thread block + */ + +#pragma once + +#include + +#include "../thread/thread_reduce.cuh" +#include "../thread/thread_scan.cuh" +#include "../block/block_scan.cuh" +#include "../block/radix_rank_sort_operations.cuh" +#include "../config.cuh" +#include "../util_ptx.cuh" +#include "../util_type.cuh" + +#include + +CUB_NAMESPACE_BEGIN + + +/** + * \brief Radix ranking algorithm, the algorithm used to implement stable ranking of the + * keys from a single tile. Note that different ranking algorithms require different + * initial arrangements of keys to function properly. + */ +enum RadixRankAlgorithm +{ + /** Ranking using the BlockRadixRank algorithm with MEMOIZE_OUTER_SCAN == false. It + * uses thread-private histograms, and thus uses more shared memory. Requires blocked + * arrangement of keys. Does not support count callbacks. */ + RADIX_RANK_BASIC, + /** Ranking using the BlockRadixRank algorithm with MEMOIZE_OUTER_SCAN == + * true. Similar to RADIX_RANK BASIC, it requires blocked arrangement of + * keys and does not support count callbacks.*/ + RADIX_RANK_MEMOIZE, + /** Ranking using the BlockRadixRankMatch algorithm. It uses warp-private + * histograms and matching for ranking the keys in a single warp. Therefore, + * it uses less shared memory compared to RADIX_RANK_BASIC. It requires + * warp-striped key arrangement and supports count callbacks. */ + RADIX_RANK_MATCH, + /** Ranking using the BlockRadixRankMatchEarlyCounts algorithm with + * MATCH_ALGORITHM == WARP_MATCH_ANY. An alternative implementation of + * match-based ranking that computes bin counts early. Because of this, it + * works better with onesweep sorting, which requires bin counts for + * decoupled look-back. Assumes warp-striped key arrangement and supports + * count callbacks.*/ + RADIX_RANK_MATCH_EARLY_COUNTS_ANY, + /** Ranking using the BlockRadixRankEarlyCounts algorithm with + * MATCH_ALGORITHM == WARP_MATCH_ATOMIC_OR. It uses extra space in shared + * memory to generate warp match masks using atomicOr(). This is faster when + * there are few matches, but can lead to slowdowns if the number of + * matching keys among warp lanes is high. Assumes warp-striped key + * arrangement and supports count callbacks. */ + RADIX_RANK_MATCH_EARLY_COUNTS_ATOMIC_OR +}; + + +/** Empty callback implementation */ +template +struct BlockRadixRankEmptyCallback +{ + __device__ __forceinline__ void operator()(int (&bins)[BINS_PER_THREAD]) {} +}; + + +#ifndef DOXYGEN_SHOULD_SKIP_THIS // Do not document +namespace detail +{ + +template +struct warp_in_block_matcher_t +{ + static __device__ std::uint32_t match_any(std::uint32_t label, std::uint32_t warp_id) + { + if (warp_id == static_cast(PartialWarpId)) + { + return MatchAny(label); + } + + return MatchAny(label); + } +}; + +template +struct warp_in_block_matcher_t +{ + static __device__ std::uint32_t match_any(std::uint32_t label, std::uint32_t warp_id) + { + return MatchAny(label); + } +}; + +} // namespace detail +#endif // DOXYGEN_SHOULD_SKIP_THIS + + +/** + * \brief BlockRadixRank provides operations for ranking unsigned integer types within a CUDA thread block. + * \ingroup BlockModule + * + * \tparam BLOCK_DIM_X The thread block length in threads along the X dimension + * \tparam RADIX_BITS The number of radix bits per digit place + * \tparam IS_DESCENDING Whether or not the sorted-order is high-to-low + * \tparam MEMOIZE_OUTER_SCAN [optional] Whether or not to buffer outer raking scan partials to incur fewer shared memory reads at the expense of higher register pressure (default: true for architectures SM35 and newer, false otherwise). See BlockScanAlgorithm::BLOCK_SCAN_RAKING_MEMOIZE for more details. + * \tparam INNER_SCAN_ALGORITHM [optional] The cub::BlockScanAlgorithm algorithm to use (default: cub::BLOCK_SCAN_WARP_SCANS) + * \tparam SMEM_CONFIG [optional] Shared memory bank mode (default: \p cudaSharedMemBankSizeFourByte) + * \tparam BLOCK_DIM_Y [optional] The thread block length in threads along the Y dimension (default: 1) + * \tparam BLOCK_DIM_Z [optional] The thread block length in threads along the Z dimension (default: 1) + * \tparam LEGACY_PTX_ARCH [optional] Unused. + * + * \par Overview + * Blah... + * - Keys must be in a form suitable for radix ranking (i.e., unsigned bits). + * - \blocked + * + * \par Performance Considerations + * - \granularity + * + * \par + * \code + * #include + * + * __global__ void ExampleKernel(...) + * { + * constexpr int block_threads = 2; + * constexpr int radix_bits = 5; + * + * // Specialize BlockRadixRank for a 1D block of 2 threads + * using block_radix_rank = cub::BlockRadixRank; + * using storage_t = typename block_radix_rank::TempStorage; + * + * // Allocate shared memory for BlockRadixSort + * __shared__ storage_t temp_storage; + * + * // Obtain a segment of consecutive items that are blocked across threads + * int keys[2]; + * int ranks[2]; + * ... + * + * cub::BFEDigitExtractor extractor(0, radix_bits); + * block_radix_rank(temp_storage).RankKeys(keys, ranks, extractor); + * + * ... + * \endcode + * Suppose the set of input `keys` across the block of threads is `{ [16,10], [9,11] }`. + * The corresponding output `ranks` in those threads will be `{ [3,1], [0,2] }`. + * + * \par Re-using dynamically allocating shared memory + * The following example under the examples/block folder illustrates usage of + * dynamically shared memory with BlockReduce and how to re-purpose + * the same memory region: + * example_block_reduce_dyn_smem.cu + * + * This example can be easily adapted to the storage required by BlockRadixRank. + */ +template < + int BLOCK_DIM_X, + int RADIX_BITS, + bool IS_DESCENDING, + bool MEMOIZE_OUTER_SCAN = true, + BlockScanAlgorithm INNER_SCAN_ALGORITHM = BLOCK_SCAN_WARP_SCANS, + cudaSharedMemConfig SMEM_CONFIG = cudaSharedMemBankSizeFourByte, + int BLOCK_DIM_Y = 1, + int BLOCK_DIM_Z = 1, + int LEGACY_PTX_ARCH = 0> +class BlockRadixRank +{ +private: + + /****************************************************************************** + * Type definitions and constants + ******************************************************************************/ + + // Integer type for digit counters (to be packed into words of type PackedCounters) + using DigitCounter = unsigned short; + + // Integer type for packing DigitCounters into columns of shared memory banks + using PackedCounter = + cub::detail::conditional_t; + + static constexpr DigitCounter max_tile_size = ::cuda::std::numeric_limits::max(); + + enum + { + // The thread block size in threads + BLOCK_THREADS = BLOCK_DIM_X * BLOCK_DIM_Y * BLOCK_DIM_Z, + + RADIX_DIGITS = 1 << RADIX_BITS, + + LOG_WARP_THREADS = CUB_LOG_WARP_THREADS(0), + WARP_THREADS = 1 << LOG_WARP_THREADS, + WARPS = (BLOCK_THREADS + WARP_THREADS - 1) / WARP_THREADS, + + BYTES_PER_COUNTER = sizeof(DigitCounter), + LOG_BYTES_PER_COUNTER = Log2::VALUE, + + PACKING_RATIO = static_cast(sizeof(PackedCounter) / sizeof(DigitCounter)), + LOG_PACKING_RATIO = Log2::VALUE, + + LOG_COUNTER_LANES = CUB_MAX((int(RADIX_BITS) - int(LOG_PACKING_RATIO)), 0), // Always at least one lane + COUNTER_LANES = 1 << LOG_COUNTER_LANES, + + // The number of packed counters per thread (plus one for padding) + PADDED_COUNTER_LANES = COUNTER_LANES + 1, + RAKING_SEGMENT = PADDED_COUNTER_LANES, + }; + +public: + + enum + { + /// Number of bin-starting offsets tracked per thread + BINS_TRACKED_PER_THREAD = CUB_MAX(1, (RADIX_DIGITS + BLOCK_THREADS - 1) / BLOCK_THREADS), + }; + +private: + + + /// BlockScan type + typedef BlockScan< + PackedCounter, + BLOCK_DIM_X, + INNER_SCAN_ALGORITHM, + BLOCK_DIM_Y, + BLOCK_DIM_Z> + BlockScan; + + + /// Shared memory storage layout type for BlockRadixRank + struct __align__(16) _TempStorage + { + union Aliasable + { + DigitCounter digit_counters[PADDED_COUNTER_LANES][BLOCK_THREADS][PACKING_RATIO]; + PackedCounter raking_grid[BLOCK_THREADS][RAKING_SEGMENT]; + + } aliasable; + + // Storage for scanning local ranks + typename BlockScan::TempStorage block_scan; + }; + + + /****************************************************************************** + * Thread fields + ******************************************************************************/ + + /// Shared storage reference + _TempStorage &temp_storage; + + /// Linear thread-id + unsigned int linear_tid; + + /// Copy of raking segment, promoted to registers + PackedCounter cached_segment[RAKING_SEGMENT]; + + + /****************************************************************************** + * Utility methods + ******************************************************************************/ + + /** + * Internal storage allocator + */ + __device__ __forceinline__ _TempStorage& PrivateStorage() + { + __shared__ _TempStorage private_storage; + return private_storage; + } + + + /** + * Performs upsweep raking reduction, returning the aggregate + */ + __device__ __forceinline__ PackedCounter Upsweep() + { + PackedCounter *smem_raking_ptr = temp_storage.aliasable.raking_grid[linear_tid]; + PackedCounter *raking_ptr; + + if (MEMOIZE_OUTER_SCAN) + { + // Copy data into registers + #pragma unroll + for (int i = 0; i < RAKING_SEGMENT; i++) + { + cached_segment[i] = smem_raking_ptr[i]; + } + raking_ptr = cached_segment; + } + else + { + raking_ptr = smem_raking_ptr; + } + + return internal::ThreadReduce(raking_ptr, Sum()); + } + + + /// Performs exclusive downsweep raking scan + __device__ __forceinline__ void ExclusiveDownsweep( + PackedCounter raking_partial) + { + PackedCounter *smem_raking_ptr = temp_storage.aliasable.raking_grid[linear_tid]; + + PackedCounter *raking_ptr = (MEMOIZE_OUTER_SCAN) ? + cached_segment : + smem_raking_ptr; + + // Exclusive raking downsweep scan + internal::ThreadScanExclusive(raking_ptr, raking_ptr, Sum(), raking_partial); + + if (MEMOIZE_OUTER_SCAN) + { + // Copy data back to smem + #pragma unroll + for (int i = 0; i < RAKING_SEGMENT; i++) + { + smem_raking_ptr[i] = cached_segment[i]; + } + } + } + + + /** + * Reset shared memory digit counters + */ + __device__ __forceinline__ void ResetCounters() + { + // Reset shared memory digit counters + #pragma unroll + for (int LANE = 0; LANE < PADDED_COUNTER_LANES; LANE++) + { + *((PackedCounter*) temp_storage.aliasable.digit_counters[LANE][linear_tid]) = 0; + } + } + + + /** + * Block-scan prefix callback + */ + struct PrefixCallBack + { + __device__ __forceinline__ PackedCounter operator()(PackedCounter block_aggregate) + { + PackedCounter block_prefix = 0; + + // Propagate totals in packed fields + #pragma unroll + for (int PACKED = 1; PACKED < PACKING_RATIO; PACKED++) + { + block_prefix += block_aggregate << (sizeof(DigitCounter) * 8 * PACKED); + } + + return block_prefix; + } + }; + + + /** + * Scan shared memory digit counters. + */ + __device__ __forceinline__ void ScanCounters() + { + // Upsweep scan + PackedCounter raking_partial = Upsweep(); + + // Compute exclusive sum + PackedCounter exclusive_partial; + PrefixCallBack prefix_call_back; + BlockScan(temp_storage.block_scan).ExclusiveSum(raking_partial, exclusive_partial, prefix_call_back); + + // Downsweep scan with exclusive partial + ExclusiveDownsweep(exclusive_partial); + } + +public: + + /// \smemstorage{BlockScan} + struct TempStorage : Uninitialized<_TempStorage> {}; + + + /******************************************************************//** + * \name Collective constructors + *********************************************************************/ + //@{ + + /** + * \brief Collective constructor using a private static allocation of shared memory as temporary storage. + */ + __device__ __forceinline__ BlockRadixRank() + : + temp_storage(PrivateStorage()), + linear_tid(RowMajorTid(BLOCK_DIM_X, BLOCK_DIM_Y, BLOCK_DIM_Z)) + {} + + + /** + * \brief Collective constructor using the specified memory allocation as temporary storage. + */ + __device__ __forceinline__ BlockRadixRank( + TempStorage &temp_storage) ///< [in] Reference to memory allocation having layout type TempStorage + : + temp_storage(temp_storage.Alias()), + linear_tid(RowMajorTid(BLOCK_DIM_X, BLOCK_DIM_Y, BLOCK_DIM_Z)) + {} + + + //@} end member group + /******************************************************************//** + * \name Raking + *********************************************************************/ + //@{ + + /** + * \brief Rank keys. + */ + template < + typename UnsignedBits, + int KEYS_PER_THREAD, + typename DigitExtractorT> + __device__ __forceinline__ void RankKeys( + UnsignedBits (&keys)[KEYS_PER_THREAD], ///< [in] Keys for this tile + int (&ranks)[KEYS_PER_THREAD], ///< [out] For each key, the local rank within the tile + DigitExtractorT digit_extractor) ///< [in] The digit extractor + { + static_assert(BLOCK_THREADS * KEYS_PER_THREAD <= max_tile_size, + "DigitCounter type is too small to hold this number of keys"); + + DigitCounter thread_prefixes[KEYS_PER_THREAD]; // For each key, the count of previous keys in this tile having the same digit + DigitCounter* digit_counters[KEYS_PER_THREAD]; // For each key, the byte-offset of its corresponding digit counter in smem + + // Reset shared memory digit counters + ResetCounters(); + + #pragma unroll + for (int ITEM = 0; ITEM < KEYS_PER_THREAD; ++ITEM) + { + // Get digit + std::uint32_t digit = digit_extractor.Digit(keys[ITEM]); + + // Get sub-counter + std::uint32_t sub_counter = digit >> LOG_COUNTER_LANES; + + // Get counter lane + std::uint32_t counter_lane = digit & (COUNTER_LANES - 1); + + if (IS_DESCENDING) + { + sub_counter = PACKING_RATIO - 1 - sub_counter; + counter_lane = COUNTER_LANES - 1 - counter_lane; + } + + // Pointer to smem digit counter + digit_counters[ITEM] = &temp_storage.aliasable.digit_counters[counter_lane][linear_tid][sub_counter]; + + // Load thread-exclusive prefix + thread_prefixes[ITEM] = *digit_counters[ITEM]; + + // Store inclusive prefix + *digit_counters[ITEM] = thread_prefixes[ITEM] + 1; + } + + CTA_SYNC(); + + // Scan shared memory counters + ScanCounters(); + + CTA_SYNC(); + + // Extract the local ranks of each key + #pragma unroll + for (int ITEM = 0; ITEM < KEYS_PER_THREAD; ++ITEM) + { + // Add in thread block exclusive prefix + ranks[ITEM] = thread_prefixes[ITEM] + *digit_counters[ITEM]; + } + } + + + /** + * \brief Rank keys. For the lower \p RADIX_DIGITS threads, digit counts for each digit are provided for the corresponding thread. + */ + template < + typename UnsignedBits, + int KEYS_PER_THREAD, + typename DigitExtractorT> + __device__ __forceinline__ void RankKeys( + UnsignedBits (&keys)[KEYS_PER_THREAD], ///< [in] Keys for this tile + int (&ranks)[KEYS_PER_THREAD], ///< [out] For each key, the local rank within the tile (out parameter) + DigitExtractorT digit_extractor, ///< [in] The digit extractor + int (&exclusive_digit_prefix)[BINS_TRACKED_PER_THREAD]) ///< [out] The exclusive prefix sum for the digits [(threadIdx.x * BINS_TRACKED_PER_THREAD) ... (threadIdx.x * BINS_TRACKED_PER_THREAD) + BINS_TRACKED_PER_THREAD - 1] + { + static_assert(BLOCK_THREADS * KEYS_PER_THREAD <= max_tile_size, + "DigitCounter type is too small to hold this number of keys"); + + // Rank keys + RankKeys(keys, ranks, digit_extractor); + + // Get the inclusive and exclusive digit totals corresponding to the calling thread. + #pragma unroll + for (int track = 0; track < BINS_TRACKED_PER_THREAD; ++track) + { + int bin_idx = (linear_tid * BINS_TRACKED_PER_THREAD) + track; + + if ((BLOCK_THREADS == RADIX_DIGITS) || (bin_idx < RADIX_DIGITS)) + { + if (IS_DESCENDING) + bin_idx = RADIX_DIGITS - bin_idx - 1; + + // Obtain ex/inclusive digit counts. (Unfortunately these all reside in the + // first counter column, resulting in unavoidable bank conflicts.) + unsigned int counter_lane = (bin_idx & (COUNTER_LANES - 1)); + unsigned int sub_counter = bin_idx >> (LOG_COUNTER_LANES); + + exclusive_digit_prefix[track] = temp_storage.aliasable.digit_counters[counter_lane][0][sub_counter]; + } + } + } +}; + + + + + +/** + * Radix-rank using match.any + */ +template < + int BLOCK_DIM_X, + int RADIX_BITS, + bool IS_DESCENDING, + BlockScanAlgorithm INNER_SCAN_ALGORITHM = BLOCK_SCAN_WARP_SCANS, + int BLOCK_DIM_Y = 1, + int BLOCK_DIM_Z = 1, + int LEGACY_PTX_ARCH = 0> +class BlockRadixRankMatch +{ +private: + + /****************************************************************************** + * Type definitions and constants + ******************************************************************************/ + + typedef int32_t RankT; + typedef int32_t DigitCounterT; + + enum + { + // The thread block size in threads + BLOCK_THREADS = BLOCK_DIM_X * BLOCK_DIM_Y * BLOCK_DIM_Z, + + RADIX_DIGITS = 1 << RADIX_BITS, + + LOG_WARP_THREADS = CUB_LOG_WARP_THREADS(0), + WARP_THREADS = 1 << LOG_WARP_THREADS, + PARTIAL_WARP_THREADS = BLOCK_THREADS % WARP_THREADS, + WARPS = (BLOCK_THREADS + WARP_THREADS - 1) / WARP_THREADS, + + PADDED_WARPS = ((WARPS & 0x1) == 0) ? + WARPS + 1 : + WARPS, + + COUNTERS = PADDED_WARPS * RADIX_DIGITS, + RAKING_SEGMENT = (COUNTERS + BLOCK_THREADS - 1) / BLOCK_THREADS, + PADDED_RAKING_SEGMENT = ((RAKING_SEGMENT & 0x1) == 0) ? + RAKING_SEGMENT + 1 : + RAKING_SEGMENT, + }; + +public: + + enum + { + /// Number of bin-starting offsets tracked per thread + BINS_TRACKED_PER_THREAD = CUB_MAX(1, (RADIX_DIGITS + BLOCK_THREADS - 1) / BLOCK_THREADS), + }; + +private: + + /// BlockScan type + typedef BlockScan< + DigitCounterT, + BLOCK_THREADS, + INNER_SCAN_ALGORITHM, + BLOCK_DIM_Y, + BLOCK_DIM_Z> + BlockScanT; + + + /// Shared memory storage layout type for BlockRadixRank + struct __align__(16) _TempStorage + { + typename BlockScanT::TempStorage block_scan; + + union __align__(16) Aliasable + { + volatile DigitCounterT warp_digit_counters[RADIX_DIGITS][PADDED_WARPS]; + DigitCounterT raking_grid[BLOCK_THREADS][PADDED_RAKING_SEGMENT]; + + } aliasable; + }; + + + /****************************************************************************** + * Thread fields + ******************************************************************************/ + + /// Shared storage reference + _TempStorage &temp_storage; + + /// Linear thread-id + unsigned int linear_tid; + + + +public: + + /// \smemstorage{BlockScan} + struct TempStorage : Uninitialized<_TempStorage> {}; + + + /******************************************************************//** + * \name Collective constructors + *********************************************************************/ + //@{ + + + /** + * \brief Collective constructor using the specified memory allocation as temporary storage. + */ + __device__ __forceinline__ BlockRadixRankMatch( + TempStorage &temp_storage) ///< [in] Reference to memory allocation having layout type TempStorage + : + temp_storage(temp_storage.Alias()), + linear_tid(RowMajorTid(BLOCK_DIM_X, BLOCK_DIM_Y, BLOCK_DIM_Z)) + {} + + + //@} end member group + /******************************************************************//** + * \name Raking + *********************************************************************/ + //@{ + + /** \brief Computes the count of keys for each digit value, and calls the + * callback with the array of key counts. + + * @tparam CountsCallback The callback type. It should implement an instance + * overload of operator()(int (&bins)[BINS_TRACKED_PER_THREAD]), where bins + * is an array of key counts for each digit value distributed in block + * distribution among the threads of the thread block. Key counts can be + * used, to update other data structures in global or shared + * memory. Depending on the implementation of the ranking algoirhtm + * (see BlockRadixRankMatchEarlyCounts), key counts may become available + * early, therefore, they are returned through a callback rather than a + * separate output parameter of RankKeys(). + */ + template + __device__ __forceinline__ void CallBack(CountsCallback callback) + { + int bins[BINS_TRACKED_PER_THREAD]; + // Get count for each digit + #pragma unroll + for (int track = 0; track < BINS_TRACKED_PER_THREAD; ++track) + { + int bin_idx = (linear_tid * BINS_TRACKED_PER_THREAD) + track; + const int TILE_ITEMS = KEYS_PER_THREAD * BLOCK_THREADS; + + if ((BLOCK_THREADS == RADIX_DIGITS) || (bin_idx < RADIX_DIGITS)) + { + if (IS_DESCENDING) + { + bin_idx = RADIX_DIGITS - bin_idx - 1; + bins[track] = (bin_idx > 0 ? + temp_storage.aliasable.warp_digit_counters[bin_idx - 1][0] : TILE_ITEMS) - + temp_storage.aliasable.warp_digit_counters[bin_idx][0]; + } + else + { + bins[track] = (bin_idx < RADIX_DIGITS - 1 ? + temp_storage.aliasable.warp_digit_counters[bin_idx + 1][0] : TILE_ITEMS) - + temp_storage.aliasable.warp_digit_counters[bin_idx][0]; + } + } + } + callback(bins); + } + + /** + * \brief Rank keys. + */ + template < + typename UnsignedBits, + int KEYS_PER_THREAD, + typename DigitExtractorT, + typename CountsCallback> + __device__ __forceinline__ void RankKeys( + UnsignedBits (&keys)[KEYS_PER_THREAD], ///< [in] Keys for this tile + int (&ranks)[KEYS_PER_THREAD], ///< [out] For each key, the local rank within the tile + DigitExtractorT digit_extractor, ///< [in] The digit extractor + CountsCallback callback) + { + // Initialize shared digit counters + + #pragma unroll + for (int ITEM = 0; ITEM < PADDED_RAKING_SEGMENT; ++ITEM) + temp_storage.aliasable.raking_grid[linear_tid][ITEM] = 0; + + CTA_SYNC(); + + // Each warp will strip-mine its section of input, one strip at a time + + volatile DigitCounterT *digit_counters[KEYS_PER_THREAD]; + uint32_t warp_id = linear_tid >> LOG_WARP_THREADS; + uint32_t lane_mask_lt = LaneMaskLt(); + + #pragma unroll + for (int ITEM = 0; ITEM < KEYS_PER_THREAD; ++ITEM) + { + // My digit + std::uint32_t digit = digit_extractor.Digit(keys[ITEM]); + + if (IS_DESCENDING) + digit = RADIX_DIGITS - digit - 1; + + // Mask of peers who have same digit as me + uint32_t peer_mask = + detail::warp_in_block_matcher_t< + RADIX_BITS, + PARTIAL_WARP_THREADS, + WARPS - 1>::match_any(digit, warp_id); + + // Pointer to smem digit counter for this key + digit_counters[ITEM] = &temp_storage.aliasable.warp_digit_counters[digit][warp_id]; + + // Number of occurrences in previous strips + DigitCounterT warp_digit_prefix = *digit_counters[ITEM]; + + // Warp-sync + WARP_SYNC(0xFFFFFFFF); + + // Number of peers having same digit as me + int32_t digit_count = __popc(peer_mask); + + // Number of lower-ranked peers having same digit seen so far + int32_t peer_digit_prefix = __popc(peer_mask & lane_mask_lt); + + if (peer_digit_prefix == 0) + { + // First thread for each digit updates the shared warp counter + *digit_counters[ITEM] = DigitCounterT(warp_digit_prefix + digit_count); + } + + // Warp-sync + WARP_SYNC(0xFFFFFFFF); + + // Number of prior keys having same digit + ranks[ITEM] = warp_digit_prefix + DigitCounterT(peer_digit_prefix); + } + + CTA_SYNC(); + + // Scan warp counters + + DigitCounterT scan_counters[PADDED_RAKING_SEGMENT]; + + #pragma unroll + for (int ITEM = 0; ITEM < PADDED_RAKING_SEGMENT; ++ITEM) + scan_counters[ITEM] = temp_storage.aliasable.raking_grid[linear_tid][ITEM]; + + BlockScanT(temp_storage.block_scan).ExclusiveSum(scan_counters, scan_counters); + + #pragma unroll + for (int ITEM = 0; ITEM < PADDED_RAKING_SEGMENT; ++ITEM) + temp_storage.aliasable.raking_grid[linear_tid][ITEM] = scan_counters[ITEM]; + + CTA_SYNC(); + if (!std::is_same< + CountsCallback, + BlockRadixRankEmptyCallback>::value) + { + CallBack(callback); + } + + // Seed ranks with counter values from previous warps + #pragma unroll + for (int ITEM = 0; ITEM < KEYS_PER_THREAD; ++ITEM) + ranks[ITEM] += *digit_counters[ITEM]; + } + + template < + typename UnsignedBits, + int KEYS_PER_THREAD, + typename DigitExtractorT> + __device__ __forceinline__ void RankKeys( + UnsignedBits (&keys)[KEYS_PER_THREAD], int (&ranks)[KEYS_PER_THREAD], + DigitExtractorT digit_extractor) + { + RankKeys(keys, ranks, digit_extractor, + BlockRadixRankEmptyCallback()); + } + + /** + * \brief Rank keys. For the lower \p RADIX_DIGITS threads, digit counts for each digit are provided for the corresponding thread. + */ + template < + typename UnsignedBits, + int KEYS_PER_THREAD, + typename DigitExtractorT, + typename CountsCallback> + __device__ __forceinline__ void RankKeys( + UnsignedBits (&keys)[KEYS_PER_THREAD], ///< [in] Keys for this tile + int (&ranks)[KEYS_PER_THREAD], ///< [out] For each key, the local rank within the tile (out parameter) + DigitExtractorT digit_extractor, ///< [in] The digit extractor + int (&exclusive_digit_prefix)[BINS_TRACKED_PER_THREAD], ///< [out] The exclusive prefix sum for the digits [(threadIdx.x * BINS_TRACKED_PER_THREAD) ... (threadIdx.x * BINS_TRACKED_PER_THREAD) + BINS_TRACKED_PER_THREAD - 1] + CountsCallback callback) + { + RankKeys(keys, ranks, digit_extractor, callback); + + // Get exclusive count for each digit + #pragma unroll + for (int track = 0; track < BINS_TRACKED_PER_THREAD; ++track) + { + int bin_idx = (linear_tid * BINS_TRACKED_PER_THREAD) + track; + + if ((BLOCK_THREADS == RADIX_DIGITS) || (bin_idx < RADIX_DIGITS)) + { + if (IS_DESCENDING) + bin_idx = RADIX_DIGITS - bin_idx - 1; + + exclusive_digit_prefix[track] = temp_storage.aliasable.warp_digit_counters[bin_idx][0]; + } + } + } + + template < + typename UnsignedBits, + int KEYS_PER_THREAD, + typename DigitExtractorT> + __device__ __forceinline__ void RankKeys( + UnsignedBits (&keys)[KEYS_PER_THREAD], ///< [in] Keys for this tile + int (&ranks)[KEYS_PER_THREAD], ///< [out] For each key, the local rank within the tile (out parameter) + DigitExtractorT digit_extractor, + int (&exclusive_digit_prefix)[BINS_TRACKED_PER_THREAD]) ///< [out] The exclusive prefix sum for the digits [(threadIdx.x * BINS_TRACKED_PER_THREAD) ... (threadIdx.x * BINS_TRACKED_PER_THREAD) + BINS_TRACKED_PER_THREAD - 1] + { + RankKeys(keys, ranks, digit_extractor, exclusive_digit_prefix, + BlockRadixRankEmptyCallback()); + } +}; + +enum WarpMatchAlgorithm +{ + WARP_MATCH_ANY, + WARP_MATCH_ATOMIC_OR +}; + +/** + * Radix-rank using matching which computes the counts of keys for each digit + * value early, at the expense of doing more work. This may be useful e.g. for + * decoupled look-back, where it reduces the time other thread blocks need to + * wait for digit counts to become available. + */ +template +struct BlockRadixRankMatchEarlyCounts +{ + // constants + enum + { + BLOCK_THREADS = BLOCK_DIM_X, + RADIX_DIGITS = 1 << RADIX_BITS, + BINS_PER_THREAD = (RADIX_DIGITS + BLOCK_THREADS - 1) / BLOCK_THREADS, + BINS_TRACKED_PER_THREAD = BINS_PER_THREAD, + FULL_BINS = BINS_PER_THREAD * BLOCK_THREADS == RADIX_DIGITS, + WARP_THREADS = CUB_PTX_WARP_THREADS, + PARTIAL_WARP_THREADS = BLOCK_THREADS % WARP_THREADS, + BLOCK_WARPS = BLOCK_THREADS / WARP_THREADS, + PARTIAL_WARP_ID = BLOCK_WARPS - 1, + WARP_MASK = ~0, + NUM_MATCH_MASKS = MATCH_ALGORITHM == WARP_MATCH_ATOMIC_OR ? BLOCK_WARPS : 0, + // Guard against declaring zero-sized array: + MATCH_MASKS_ALLOC_SIZE = NUM_MATCH_MASKS < 1 ? 1 : NUM_MATCH_MASKS, + }; + + // types + typedef cub::BlockScan BlockScan; + + + + // temporary storage + struct TempStorage + { + union + { + int warp_offsets[BLOCK_WARPS][RADIX_DIGITS]; + int warp_histograms[BLOCK_WARPS][RADIX_DIGITS][NUM_PARTS]; + }; + + int match_masks[MATCH_MASKS_ALLOC_SIZE][RADIX_DIGITS]; + + typename BlockScan::TempStorage prefix_tmp; + }; + + TempStorage& temp_storage; + + // internal ranking implementation + template + struct BlockRadixRankMatchInternal + { + TempStorage& s; + DigitExtractorT digit_extractor; + CountsCallback callback; + int warp; + int lane; + + __device__ __forceinline__ std::uint32_t Digit(UnsignedBits key) + { + std::uint32_t digit = digit_extractor.Digit(key); + return IS_DESCENDING ? RADIX_DIGITS - 1 - digit : digit; + } + + __device__ __forceinline__ int ThreadBin(int u) + { + int bin = threadIdx.x * BINS_PER_THREAD + u; + return IS_DESCENDING ? RADIX_DIGITS - 1 - bin : bin; + } + + __device__ __forceinline__ + void ComputeHistogramsWarp(UnsignedBits (&keys)[KEYS_PER_THREAD]) + { + //int* warp_offsets = &s.warp_offsets[warp][0]; + int (&warp_histograms)[RADIX_DIGITS][NUM_PARTS] = s.warp_histograms[warp]; + // compute warp-private histograms + #pragma unroll + for (int bin = lane; bin < RADIX_DIGITS; bin += WARP_THREADS) + { + #pragma unroll + for (int part = 0; part < NUM_PARTS; ++part) + { + warp_histograms[bin][part] = 0; + } + } + if (MATCH_ALGORITHM == WARP_MATCH_ATOMIC_OR) + { + int* match_masks = &s.match_masks[warp][0]; + #pragma unroll + for (int bin = lane; bin < RADIX_DIGITS; bin += WARP_THREADS) + { + match_masks[bin] = 0; + } + } + WARP_SYNC(WARP_MASK); + + // compute private per-part histograms + int part = lane % NUM_PARTS; + #pragma unroll + for (int u = 0; u < KEYS_PER_THREAD; ++u) + { + atomicAdd(&warp_histograms[Digit(keys[u])][part], 1); + } + + // sum different parts; + // no extra work is necessary if NUM_PARTS == 1 + if (NUM_PARTS > 1) + { + WARP_SYNC(WARP_MASK); + // TODO: handle RADIX_DIGITS % WARP_THREADS != 0 if it becomes necessary + const int WARP_BINS_PER_THREAD = RADIX_DIGITS / WARP_THREADS; + int bins[WARP_BINS_PER_THREAD]; + #pragma unroll + for (int u = 0; u < WARP_BINS_PER_THREAD; ++u) + { + int bin = lane + u * WARP_THREADS; + bins[u] = internal::ThreadReduce(warp_histograms[bin], Sum()); + } + CTA_SYNC(); + + // store the resulting histogram in shared memory + int* warp_offsets = &s.warp_offsets[warp][0]; + #pragma unroll + for (int u = 0; u < WARP_BINS_PER_THREAD; ++u) + { + int bin = lane + u * WARP_THREADS; + warp_offsets[bin] = bins[u]; + } + } + } + + __device__ __forceinline__ + void ComputeOffsetsWarpUpsweep(int (&bins)[BINS_PER_THREAD]) + { + // sum up warp-private histograms + #pragma unroll + for (int u = 0; u < BINS_PER_THREAD; ++u) + { + bins[u] = 0; + int bin = ThreadBin(u); + if (FULL_BINS || (bin >= 0 && bin < RADIX_DIGITS)) + { + #pragma unroll + for (int j_warp = 0; j_warp < BLOCK_WARPS; ++j_warp) + { + int warp_offset = s.warp_offsets[j_warp][bin]; + s.warp_offsets[j_warp][bin] = bins[u]; + bins[u] += warp_offset; + } + } + } + } + + __device__ __forceinline__ + void ComputeOffsetsWarpDownsweep(int (&offsets)[BINS_PER_THREAD]) + { + #pragma unroll + for (int u = 0; u < BINS_PER_THREAD; ++u) + { + int bin = ThreadBin(u); + if (FULL_BINS || (bin >= 0 && bin < RADIX_DIGITS)) + { + int digit_offset = offsets[u]; + #pragma unroll + for (int j_warp = 0; j_warp < BLOCK_WARPS; ++j_warp) + { + s.warp_offsets[j_warp][bin] += digit_offset; + } + } + } + } + + __device__ __forceinline__ + void ComputeRanksItem( + UnsignedBits (&keys)[KEYS_PER_THREAD], int (&ranks)[KEYS_PER_THREAD], + Int2Type) + { + // compute key ranks + int lane_mask = 1 << lane; + int* warp_offsets = &s.warp_offsets[warp][0]; + int* match_masks = &s.match_masks[warp][0]; + #pragma unroll + for (int u = 0; u < KEYS_PER_THREAD; ++u) + { + std::uint32_t bin = Digit(keys[u]); + int* p_match_mask = &match_masks[bin]; + atomicOr(p_match_mask, lane_mask); + WARP_SYNC(WARP_MASK); + int bin_mask = *p_match_mask; + int leader = (WARP_THREADS - 1) - __clz(bin_mask); + int warp_offset = 0; + int popc = __popc(bin_mask & LaneMaskLe()); + if (lane == leader) + { + // atomic is a bit faster + warp_offset = atomicAdd(&warp_offsets[bin], popc); + } + warp_offset = SHFL_IDX_SYNC(warp_offset, leader, WARP_MASK); + if (lane == leader) *p_match_mask = 0; + WARP_SYNC(WARP_MASK); + ranks[u] = warp_offset + popc - 1; + } + } + + __device__ __forceinline__ + void ComputeRanksItem( + UnsignedBits (&keys)[KEYS_PER_THREAD], int (&ranks)[KEYS_PER_THREAD], + Int2Type) + { + // compute key ranks + int* warp_offsets = &s.warp_offsets[warp][0]; + #pragma unroll + for (int u = 0; u < KEYS_PER_THREAD; ++u) + { + std::uint32_t bin = Digit(keys[u]); + int bin_mask = detail::warp_in_block_matcher_t::match_any(bin, + warp); + int leader = (WARP_THREADS - 1) - __clz(bin_mask); + int warp_offset = 0; + int popc = __popc(bin_mask & LaneMaskLe()); + if (lane == leader) + { + // atomic is a bit faster + warp_offset = atomicAdd(&warp_offsets[bin], popc); + } + warp_offset = SHFL_IDX_SYNC(warp_offset, leader, WARP_MASK); + ranks[u] = warp_offset + popc - 1; + } + } + + __device__ __forceinline__ void RankKeys( + UnsignedBits (&keys)[KEYS_PER_THREAD], + int (&ranks)[KEYS_PER_THREAD], + int (&exclusive_digit_prefix)[BINS_PER_THREAD]) + { + ComputeHistogramsWarp(keys); + + CTA_SYNC(); + int bins[BINS_PER_THREAD]; + ComputeOffsetsWarpUpsweep(bins); + callback(bins); + + BlockScan(s.prefix_tmp).ExclusiveSum(bins, exclusive_digit_prefix); + + ComputeOffsetsWarpDownsweep(exclusive_digit_prefix); + CTA_SYNC(); + ComputeRanksItem(keys, ranks, Int2Type()); + } + + __device__ __forceinline__ BlockRadixRankMatchInternal + (TempStorage& temp_storage, DigitExtractorT digit_extractor, CountsCallback callback) + : s(temp_storage), digit_extractor(digit_extractor), + callback(callback), warp(threadIdx.x / WARP_THREADS), lane(LaneId()) + {} + }; + + __device__ __forceinline__ BlockRadixRankMatchEarlyCounts + (TempStorage& temp_storage) : temp_storage(temp_storage) {} + + /** + * \brief Rank keys. For the lower \p RADIX_DIGITS threads, digit counts for each digit are provided for the corresponding thread. + */ + template + __device__ __forceinline__ void RankKeys( + UnsignedBits (&keys)[KEYS_PER_THREAD], + int (&ranks)[KEYS_PER_THREAD], + DigitExtractorT digit_extractor, + int (&exclusive_digit_prefix)[BINS_PER_THREAD], + CountsCallback callback) + { + BlockRadixRankMatchInternal + internal(temp_storage, digit_extractor, callback); + internal.RankKeys(keys, ranks, exclusive_digit_prefix); + } + + template + __device__ __forceinline__ void RankKeys( + UnsignedBits (&keys)[KEYS_PER_THREAD], + int (&ranks)[KEYS_PER_THREAD], + DigitExtractorT digit_extractor, + int (&exclusive_digit_prefix)[BINS_PER_THREAD]) + { + typedef BlockRadixRankEmptyCallback CountsCallback; + BlockRadixRankMatchInternal + internal(temp_storage, digit_extractor, CountsCallback()); + internal.RankKeys(keys, ranks, exclusive_digit_prefix); + } + + template + __device__ __forceinline__ void RankKeys( + UnsignedBits (&keys)[KEYS_PER_THREAD], + int (&ranks)[KEYS_PER_THREAD], + DigitExtractorT digit_extractor) + { + int exclusive_digit_prefix[BINS_PER_THREAD]; + RankKeys(keys, ranks, digit_extractor, exclusive_digit_prefix); + } +}; + + +#ifndef DOXYGEN_SHOULD_SKIP_THIS // Do not document +namespace detail +{ + +// `BlockRadixRank` doesn't conform to the typical pattern, not exposing the algorithm +// template parameter. Other algorithms don't provide the same template parameters, not allowing +// multi-dimensional thread block specializations. +// +// TODO(senior-zero) for 3.0: +// - Put existing implementations into the detail namespace +// - Support multi-dimensional thread blocks in the rest of implementations +// - Repurpose BlockRadixRank as an entry name with the algorithm template parameter +template +using block_radix_rank_t = cub::detail::conditional_t< + RankAlgorithm == RADIX_RANK_BASIC, + BlockRadixRank, + cub::detail::conditional_t< + RankAlgorithm == RADIX_RANK_MEMOIZE, + BlockRadixRank, + cub::detail::conditional_t< + RankAlgorithm == RADIX_RANK_MATCH, + BlockRadixRankMatch, + cub::detail::conditional_t< + RankAlgorithm == RADIX_RANK_MATCH_EARLY_COUNTS_ANY, + BlockRadixRankMatchEarlyCounts, + BlockRadixRankMatchEarlyCounts>>>>; + +} // namespace detail +#endif // DOXYGEN_SHOULD_SKIP_THIS + + +CUB_NAMESPACE_END + + diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/block/block_radix_sort.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/block/block_radix_sort.cuh new file mode 100644 index 0000000000000000000000000000000000000000..e275d6f611e9f9e642e06c2af3cc45c41f6d24f3 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/block/block_radix_sort.cuh @@ -0,0 +1,2111 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * The cub::BlockRadixSort class provides [collective](index.html#sec0) methods for radix sorting of items partitioned across a CUDA thread block. + */ + + +#pragma once + +#include "block_exchange.cuh" +#include "block_radix_rank.cuh" +#include "radix_rank_sort_operations.cuh" +#include "../config.cuh" +#include "../util_ptx.cuh" +#include "../util_type.cuh" + +CUB_NAMESPACE_BEGIN + +//! @rst +//! BlockRadixSort class provides :ref:`collective ` methods for sorting +//! items partitioned across a CUDA thread block using a radix sorting method. +//! +//! .. image:: ../img/sorting_logo.png +//! :align: center +//! +//! Overview +//! -------------------------------------------------- +//! +//! The `radix sorting method `_ arranges +//! items into ascending order. It relies upon a positional representation for +//! keys, i.e., each key is comprised of an ordered sequence of symbols (e.g., digits, +//! characters, etc.) specified from least-significant to most-significant. For a +//! given input sequence of keys and a set of rules specifying a total ordering +//! of the symbolic alphabet, the radix sorting method produces a lexicographic +//! ordering of those keys. +//! +//! @rowmajor +//! +//! Supported Types +//! -------------------------------------------------- +//! +//! BlockRadixSort can sort all of the built-in C++ numeric primitive types +//! (``unsigned char``, ``int``, ``double``, etc.) as well as CUDA's ``__half`` +//! half-precision floating-point type. User-defined types are supported as long +//! as decomposer object is provided. +//! +//! Floating-Point Special Cases +//! -------------------------------------------------- +//! +//! - Positive and negative zeros are considered equivalent, and will be treated +//! as such in the output. +//! - No special handling is implemented for NaN values; these are sorted +//! according to their bit representations after any transformations. +//! +//! Bitwise Key Transformations +//! -------------------------------------------------- +//! +//! Although the direct radix sorting method can only be applied to unsigned +//! integral types, BlockRadixSort is able to sort signed and floating-point +//! types via simple bit-wise transformations that ensure lexicographic key +//! ordering. +//! +//! These transformations must be considered when restricting the +//! ``[begin_bit, end_bit)`` range, as the bitwise transformations will occur +//! before the bit-range truncation. +//! +//! Any transformations applied to the keys prior to sorting are reversed +//! while writing to the final output buffer. +//! +//! Type Specific Bitwise Transformations +//! -------------------------------------------------- +//! +//! To convert the input values into a radix-sortable bitwise representation, +//! the following transformations take place prior to sorting: +//! +//! * For unsigned integral values, the keys are used directly. +//! * For signed integral values, the sign bit is inverted. +//! * For positive floating point values, the sign bit is inverted. +//! * For negative floating point values, the full key is inverted. +//! +//! No Descending Sort Transformations +//! -------------------------------------------------- +//! +//! Unlike ``DeviceRadixSort``, ``BlockRadixSort`` does not invert the input key bits +//! when performing a descending sort. Instead, it has special logic to reverse +//! the order of the keys while sorting. +//! +//! Stability +//! -------------------------------------------------- +//! +//! BlockRadixSort is stable. For floating-point types -0.0 and +0.0 +//! are considered equal and appear in the result in the same order as they +//! appear in the input. +//! +//! +//! Performance Considerations +//! -------------------------------------------------- +//! +//! * @granularity +//! +//! A Simple Example +//! -------------------------------------------------- +//! +//! @blockcollective{BlockRadixSort} +//! +//! The code snippet below illustrates a sort of 512 integer keys that +//! are partitioned in a [blocked arrangement](index.html#sec5sec3) across 128 threads +//! where each thread owns 4 consecutive items. +//! +//! .. code-block:: c++ +//! +//! #include // or equivalently +//! +//! __global__ void ExampleKernel(...) +//! { +//! // Specialize BlockRadixSort for a 1D block of 128 threads owning 4 integer items each +//! typedef cub::BlockRadixSort BlockRadixSort; +//! +//! // Allocate shared memory for BlockRadixSort +//! __shared__ typename BlockRadixSort::TempStorage temp_storage; +//! +//! // Obtain a segment of consecutive items that are blocked across threads +//! int thread_keys[4]; +//! ... +//! +//! // Collectively sort the keys +//! BlockRadixSort(temp_storage).Sort(thread_keys); +//! +//! ... +//! +//! Suppose the set of input ``thread_keys`` across the block of threads is +//! ``{ [0,511,1,510], [2,509,3,508], [4,507,5,506], ..., [254,257,255,256] }``. +//! The corresponding output ``thread_keys`` in those threads will be +//! ``{ [0,1,2,3], [4,5,6,7], [8,9,10,11], ..., [508,509,510,511] }``. +//! +//! Re-using dynamically allocating shared memory +//! -------------------------------------------------- +//! +//! The following example under the examples/block folder illustrates usage of +//! dynamically shared memory with BlockReduce and how to re-purpose +//! the same memory region: +//! example_block_reduce_dyn_smem.cu +//! +//! This example can be easily adapted to the storage required by BlockRadixSort. +//! @endrst +//! +//! @ingroup BlockModule +//! +//! @tparam KeyT +//! KeyT type +//! +//! @tparam BLOCK_DIM_X +//! The thread block length in threads along the X dimension +//! +//! @tparam ITEMS_PER_THREAD +//! The number of items per thread +//! +//! @tparam ValueT +//! **[optional]** ValueT type (default: cub::NullType, which indicates a keys-only sort) +//! +//! @tparam RADIX_BITS +//! **[optional]** The number of radix bits per digit place (default: 4 bits) +//! +//! @tparam MEMOIZE_OUTER_SCAN +//! **[optional]** Whether or not to buffer outer raking scan partials to incur fewer shared memory +//! reads at the expense of higher register pressure (default: true for architectures SM35 and +//! newer, false otherwise). +//! +//! @tparam INNER_SCAN_ALGORITHM +//! **[optional]** The cub::BlockScanAlgorithm algorithm to use +//! (default: cub::BLOCK_SCAN_WARP_SCANS) +//! +//! @tparam SMEM_CONFIG +//! **[optional]*8 Shared memory bank mode (default: `cudaSharedMemBankSizeFourByte`) +//! +//! @tparam BLOCK_DIM_Y +//! **[optional]** The thread block length in threads along the Y dimension (default: 1) +//! +//! @tparam BLOCK_DIM_Z +//! **[optional]** The thread block length in threads along the Z dimension (default: 1) +//! +//! @tparam LEGACY_PTX_ARCH +//! **[optional]** Unused +template < + typename KeyT, + int BLOCK_DIM_X, + int ITEMS_PER_THREAD, + typename ValueT = NullType, + int RADIX_BITS = 4, + bool MEMOIZE_OUTER_SCAN = true, + BlockScanAlgorithm INNER_SCAN_ALGORITHM = BLOCK_SCAN_WARP_SCANS, + cudaSharedMemConfig SMEM_CONFIG = cudaSharedMemBankSizeFourByte, + int BLOCK_DIM_Y = 1, + int BLOCK_DIM_Z = 1, + int LEGACY_PTX_ARCH = 0> +class BlockRadixSort +{ +private: + + /****************************************************************************** + * Constants and type definitions + ******************************************************************************/ + + enum + { + // The thread block size in threads + BLOCK_THREADS = BLOCK_DIM_X * BLOCK_DIM_Y * BLOCK_DIM_Z, + + // Whether or not there are values to be trucked along with keys + KEYS_ONLY = std::is_same::value, + }; + + // KeyT traits and unsigned bits type + using traits = detail::radix::traits_t; + using bit_ordered_type = typename traits::bit_ordered_type; + using bit_ordered_conversion = typename traits::bit_ordered_conversion_policy; + + /// Ascending BlockRadixRank utility type + typedef BlockRadixRank< + BLOCK_DIM_X, + RADIX_BITS, + false, + MEMOIZE_OUTER_SCAN, + INNER_SCAN_ALGORITHM, + SMEM_CONFIG, + BLOCK_DIM_Y, + BLOCK_DIM_Z> + AscendingBlockRadixRank; + + /// Descending BlockRadixRank utility type + typedef BlockRadixRank< + BLOCK_DIM_X, + RADIX_BITS, + true, + MEMOIZE_OUTER_SCAN, + INNER_SCAN_ALGORITHM, + SMEM_CONFIG, + BLOCK_DIM_Y, + BLOCK_DIM_Z> + DescendingBlockRadixRank; + + /// Digit extractor type + using fundamental_digit_extractor_t = BFEDigitExtractor; + + /// BlockExchange utility type for keys + typedef BlockExchange BlockExchangeKeys; + + /// BlockExchange utility type for values + typedef BlockExchange BlockExchangeValues; + + /// Shared memory storage layout type + union _TempStorage + { + typename AscendingBlockRadixRank::TempStorage asending_ranking_storage; + typename DescendingBlockRadixRank::TempStorage descending_ranking_storage; + typename BlockExchangeKeys::TempStorage exchange_keys; + typename BlockExchangeValues::TempStorage exchange_values; + }; + + + /****************************************************************************** + * Thread fields + ******************************************************************************/ + + /// Shared storage reference + _TempStorage &temp_storage; + + /// Linear thread-id + unsigned int linear_tid; + + /****************************************************************************** + * Utility methods + ******************************************************************************/ + + /// Internal storage allocator + __device__ __forceinline__ _TempStorage& PrivateStorage() + { + __shared__ _TempStorage private_storage; + return private_storage; + } + + /// Rank keys (specialized for ascending sort) + template + __device__ __forceinline__ void RankKeys( + bit_ordered_type (&unsigned_keys)[ITEMS_PER_THREAD], + int (&ranks)[ITEMS_PER_THREAD], + DigitExtractorT digit_extractor, + Int2Type /*is_descending*/) + { + AscendingBlockRadixRank(temp_storage.asending_ranking_storage).RankKeys( + unsigned_keys, + ranks, + digit_extractor); + } + + /// Rank keys (specialized for descending sort) + template + __device__ __forceinline__ void RankKeys( + bit_ordered_type (&unsigned_keys)[ITEMS_PER_THREAD], + int (&ranks)[ITEMS_PER_THREAD], + DigitExtractorT digit_extractor, + Int2Type /*is_descending*/) + { + DescendingBlockRadixRank(temp_storage.descending_ranking_storage).RankKeys( + unsigned_keys, + ranks, + digit_extractor); + } + + /// ExchangeValues (specialized for key-value sort, to-blocked arrangement) + __device__ __forceinline__ void ExchangeValues( + ValueT (&values)[ITEMS_PER_THREAD], + int (&ranks)[ITEMS_PER_THREAD], + Int2Type /*is_keys_only*/, + Int2Type /*is_blocked*/) + { + CTA_SYNC(); + + // Exchange values through shared memory in blocked arrangement + BlockExchangeValues(temp_storage.exchange_values).ScatterToBlocked(values, ranks); + } + + /// ExchangeValues (specialized for key-value sort, to-striped arrangement) + __device__ __forceinline__ void ExchangeValues( + ValueT (&values)[ITEMS_PER_THREAD], + int (&ranks)[ITEMS_PER_THREAD], + Int2Type /*is_keys_only*/, + Int2Type /*is_blocked*/) + { + CTA_SYNC(); + + // Exchange values through shared memory in blocked arrangement + BlockExchangeValues(temp_storage.exchange_values).ScatterToStriped(values, ranks); + } + + /// ExchangeValues (specialized for keys-only sort) + template + __device__ __forceinline__ void ExchangeValues( + ValueT (&/*values*/)[ITEMS_PER_THREAD], + int (&/*ranks*/)[ITEMS_PER_THREAD], + Int2Type /*is_keys_only*/, + Int2Type /*is_blocked*/) + {} + + /// Sort blocked arrangement + template + __device__ __forceinline__ void SortBlocked( + KeyT (&keys)[ITEMS_PER_THREAD], ///< Keys to sort + ValueT (&values)[ITEMS_PER_THREAD], ///< Values to sort + int begin_bit, ///< The beginning (least-significant) bit index needed for key comparison + int end_bit, ///< The past-the-end (most-significant) bit index needed for key comparison + Int2Type is_descending, ///< Tag whether is a descending-order sort + Int2Type is_keys_only, ///< Tag whether is keys-only sort + DecomposerT decomposer = {}) + { + bit_ordered_type (&unsigned_keys)[ITEMS_PER_THREAD] = + reinterpret_cast(keys); + + #pragma unroll + for (int KEY = 0; KEY < ITEMS_PER_THREAD; KEY++) + { + unsigned_keys[KEY] = bit_ordered_conversion::to_bit_ordered(decomposer, unsigned_keys[KEY]); + } + + // Radix sorting passes + while (true) + { + int pass_bits = CUB_MIN(RADIX_BITS, end_bit - begin_bit); + auto digit_extractor = traits::template digit_extractor(begin_bit, pass_bits, decomposer); + + // Rank the blocked keys + int ranks[ITEMS_PER_THREAD]; + RankKeys(unsigned_keys, ranks, digit_extractor, is_descending); + begin_bit += RADIX_BITS; + + CTA_SYNC(); + + // Exchange keys through shared memory in blocked arrangement + BlockExchangeKeys(temp_storage.exchange_keys).ScatterToBlocked(keys, ranks); + + // Exchange values through shared memory in blocked arrangement + ExchangeValues(values, ranks, is_keys_only, Int2Type()); + + // Quit if done + if (begin_bit >= end_bit) break; + + CTA_SYNC(); + } + + // Untwiddle bits if necessary + #pragma unroll + for (int KEY = 0; KEY < ITEMS_PER_THREAD; KEY++) + { + unsigned_keys[KEY] = bit_ordered_conversion::from_bit_ordered(decomposer, unsigned_keys[KEY]); + } + } + +public: + +#ifndef DOXYGEN_SHOULD_SKIP_THIS // Do not document + + /// Sort blocked -> striped arrangement + template + __device__ __forceinline__ void SortBlockedToStriped( + KeyT (&keys)[ITEMS_PER_THREAD], ///< Keys to sort + ValueT (&values)[ITEMS_PER_THREAD], ///< Values to sort + int begin_bit, ///< The beginning (least-significant) bit index needed for key comparison + int end_bit, ///< The past-the-end (most-significant) bit index needed for key comparison + Int2Type is_descending, ///< Tag whether is a descending-order sort + Int2Type is_keys_only, ///< Tag whether is keys-only sort + DecomposerT decomposer = {}) + { + bit_ordered_type (&unsigned_keys)[ITEMS_PER_THREAD] = + reinterpret_cast(keys); + + #pragma unroll + for (int KEY = 0; KEY < ITEMS_PER_THREAD; KEY++) + { + unsigned_keys[KEY] = bit_ordered_conversion::to_bit_ordered(decomposer, unsigned_keys[KEY]); + } + + // Radix sorting passes + while (true) + { + int pass_bits = CUB_MIN(RADIX_BITS, end_bit - begin_bit); + auto digit_extractor = traits::template digit_extractor(begin_bit, pass_bits, decomposer); + + // Rank the blocked keys + int ranks[ITEMS_PER_THREAD]; + RankKeys(unsigned_keys, ranks, digit_extractor, is_descending); + begin_bit += RADIX_BITS; + + CTA_SYNC(); + + // Check if this is the last pass + if (begin_bit >= end_bit) + { + // Last pass exchanges keys through shared memory in striped arrangement + BlockExchangeKeys(temp_storage.exchange_keys).ScatterToStriped(keys, ranks); + + // Last pass exchanges through shared memory in striped arrangement + ExchangeValues(values, ranks, is_keys_only, Int2Type()); + + // Quit + break; + } + + // Exchange keys through shared memory in blocked arrangement + BlockExchangeKeys(temp_storage.exchange_keys).ScatterToBlocked(keys, ranks); + + // Exchange values through shared memory in blocked arrangement + ExchangeValues(values, ranks, is_keys_only, Int2Type()); + + CTA_SYNC(); + } + + // Untwiddle bits if necessary + #pragma unroll + for (int KEY = 0; KEY < ITEMS_PER_THREAD; KEY++) + { + unsigned_keys[KEY] = bit_ordered_conversion::from_bit_ordered(decomposer, unsigned_keys[KEY]); + } + } + +#endif // DOXYGEN_SHOULD_SKIP_THIS + + /// \smemstorage{BlockRadixSort} + struct TempStorage : Uninitialized<_TempStorage> {}; + + + /******************************************************************//** + * \name Collective constructors + *********************************************************************/ + //@{ + + /** + * \brief Collective constructor using a private static allocation of shared memory as temporary storage. + */ + __device__ __forceinline__ BlockRadixSort() + : + temp_storage(PrivateStorage()), + linear_tid(RowMajorTid(BLOCK_DIM_X, BLOCK_DIM_Y, BLOCK_DIM_Z)) + {} + + + /** + * \brief Collective constructor using the specified memory allocation as temporary storage. + */ + __device__ __forceinline__ BlockRadixSort( + TempStorage &temp_storage) ///< [in] Reference to memory allocation having layout type TempStorage + : + temp_storage(temp_storage.Alias()), + linear_tid(RowMajorTid(BLOCK_DIM_X, BLOCK_DIM_Y, BLOCK_DIM_Z)) + {} + + + //@} end member group + /******************************************************************//** + * \name Sorting (blocked arrangements) + *********************************************************************/ + //@{ + + /** + * \brief Performs an ascending block-wide radix sort over a [blocked arrangement](index.html#sec5sec3) of keys. + * + * \par + * - \granularity + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates a sort of 512 integer keys that + * are partitioned in a [blocked arrangement](index.html#sec5sec3) across 128 threads + * where each thread owns 4 consecutive keys. + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(...) + * { + * // Specialize BlockRadixSort for a 1D block of 128 threads owning 4 integer keys each + * typedef cub::BlockRadixSort BlockRadixSort; + * + * // Allocate shared memory for BlockRadixSort + * __shared__ typename BlockRadixSort::TempStorage temp_storage; + * + * // Obtain a segment of consecutive items that are blocked across threads + * int thread_keys[4]; + * ... + * + * // Collectively sort the keys + * BlockRadixSort(temp_storage).Sort(thread_keys); + * + * \endcode + * \par + * Suppose the set of input \p thread_keys across the block of threads is + * { [0,511,1,510], [2,509,3,508], [4,507,5,506], ..., [254,257,255,256] }. + * The corresponding output \p thread_keys in those threads will be + * { [0,1,2,3], [4,5,6,7], [8,9,10,11], ..., [508,509,510,511] }. + */ + __device__ __forceinline__ void Sort( + KeyT (&keys)[ITEMS_PER_THREAD], ///< [in-out] Keys to sort + int begin_bit = 0, ///< [in] [optional] The beginning (least-significant) bit index needed for key comparison + int end_bit = sizeof(KeyT) * 8) ///< [in] [optional] The past-the-end (most-significant) bit index needed for key comparison + { + NullType values[ITEMS_PER_THREAD]; + + SortBlocked(keys, values, begin_bit, end_bit, Int2Type(), Int2Type()); + } + + //! @rst + //! Performs an ascending block-wide radix sort over a + //! :ref:`blocked arrangement ` of keys. + //! + //! * @granularity + //! * @smemreuse + //! + //! Snippet + //! ========================================================================== + //! + //! Let's consider a user-defined ``custom_t`` type below. To sort an array of + //! ``custom_t`` objects, we have to tell CUB about relevant members of the + //! ``custom_t`` type. We do this by providing a decomposer that returns a + //! tuple of references to relevant members of the key. + //! + //! .. literalinclude:: ../../test/catch2_test_block_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin custom-type + //! :end-before: example-end custom-type + //! + //! The code snippet below illustrates a sort of 2 keys that + //! are partitioned in a :ref:`blocked arrangement ` across 2 threads + //! where each thread owns 1 key. + //! + //! .. literalinclude:: ../../test/catch2_test_block_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin keys-bits + //! :end-before: example-end keys-bits + //! + //! @endrst + //! + //! @tparam DecomposerT + //! **[inferred]** Type of a callable object responsible for decomposing a + //! ``KeyT`` into a tuple of references to its constituent arithmetic types: + //! ``::cuda::std::tuple operator()(KeyT &key)``. + //! The leftmost element of the tuple is considered the most significant. + //! The call operator must not modify members of the key. + //! + //! @param[in,out] keys + //! Keys to sort + //! + //! @param decomposer + //! Callable object responsible for decomposing a ``KeyT`` into a tuple of + //! references to its constituent arithmetic types. The leftmost element of + //! the tuple is considered the most significant. The call operator must not + //! modify members of the key. + //! + //! @param[in] begin_bit + //! The least-significant bit index (inclusive) needed for + //! key comparison + //! + //! @param[in] end_bit + //! The most-significant bit index (exclusive) needed for key + //! comparison (e.g., `(sizeof(float) + sizeof(long long int)) * 8`) + template + __device__ __forceinline__ // + typename ::cuda::std::enable_if< // + !::cuda::std::is_convertible::value>::type + Sort(KeyT (&keys)[ITEMS_PER_THREAD], DecomposerT decomposer, int begin_bit, int end_bit) + { + NullType values[ITEMS_PER_THREAD]; + + SortBlocked(keys, + values, + begin_bit, + end_bit, + Int2Type(), + Int2Type(), + decomposer); + } + + //! @rst + //! Performs an ascending block-wide radix sort over a + //! :ref:`blocked arrangement ` of keys. + //! + //! * @granularity + //! * @smemreuse + //! + //! Snippet + //! ========================================================================== + //! + //! Let's consider a user-defined ``custom_t`` type below. To sort an array of + //! ``custom_t`` objects, we have to tell CUB about relevant members of the + //! ``custom_t`` type. We do this by providing a decomposer that returns a + //! tuple of references to relevant members of the key. + //! + //! .. literalinclude:: ../../test/catch2_test_block_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin custom-type + //! :end-before: example-end custom-type + //! + //! The code snippet below illustrates a sort of 6 keys that + //! are partitioned in a :ref:`blocked arrangement ` across 2 threads + //! where each thread owns 3 consecutive keys. + //! + //! .. literalinclude:: ../../test/catch2_test_block_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin keys + //! :end-before: example-end keys + //! + //! @endrst + //! + //! @tparam DecomposerT + //! **[inferred]** Type of a callable object responsible for decomposing a + //! ``KeyT`` into a tuple of references to its constituent arithmetic types: + //! ``::cuda::std::tuple operator()(KeyT &key)``. + //! The leftmost element of the tuple is considered the most significant. + //! The call operator must not modify members of the key. + //! + //! @param[in,out] keys + //! Keys to sort + //! + //! @param decomposer + //! Callable object responsible for decomposing a ``KeyT`` into a tuple of + //! references to its constituent arithmetic types. The leftmost element of + //! the tuple is considered the most significant. The call operator must not + //! modify members of the key. + template + __device__ __forceinline__ // + typename ::cuda::std::enable_if< // + !::cuda::std::is_convertible::value>::type + Sort(KeyT (&keys)[ITEMS_PER_THREAD], DecomposerT decomposer) + { + Sort(keys, decomposer, 0, detail::radix::traits_t::default_end_bit(decomposer)); + } + + /** + * \brief Performs an ascending block-wide radix sort across a [blocked arrangement](index.html#sec5sec3) of keys and values. + * + * \par + * - BlockRadixSort can only accommodate one associated tile of values. To "truck along" + * more than one tile of values, simply perform a key-value sort of the keys paired + * with a temporary value array that enumerates the key indices. The reordered indices + * can then be used as a gather-vector for exchanging other associated tile data through + * shared memory. + * - \granularity + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates a sort of 512 integer keys and values that + * are partitioned in a [blocked arrangement](index.html#sec5sec3) across 128 threads + * where each thread owns 4 consecutive pairs. + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(...) + * { + * // Specialize BlockRadixSort for a 1D block of 128 threads owning 4 integer keys and values each + * typedef cub::BlockRadixSort BlockRadixSort; + * + * // Allocate shared memory for BlockRadixSort + * __shared__ typename BlockRadixSort::TempStorage temp_storage; + * + * // Obtain a segment of consecutive items that are blocked across threads + * int thread_keys[4]; + * int thread_values[4]; + * ... + * + * // Collectively sort the keys and values among block threads + * BlockRadixSort(temp_storage).Sort(thread_keys, thread_values); + * + * \endcode + * \par + * Suppose the set of input \p thread_keys across the block of threads is + * { [0,511,1,510], [2,509,3,508], [4,507,5,506], ..., [254,257,255,256] }. The + * corresponding output \p thread_keys in those threads will be + * { [0,1,2,3], [4,5,6,7], [8,9,10,11], ..., [508,509,510,511] }. + * + */ + __device__ __forceinline__ void Sort( + KeyT (&keys)[ITEMS_PER_THREAD], ///< [in-out] Keys to sort + ValueT (&values)[ITEMS_PER_THREAD], ///< [in-out] Values to sort + int begin_bit = 0, ///< [in] [optional] The beginning (least-significant) bit index needed for key comparison + int end_bit = sizeof(KeyT) * 8) ///< [in] [optional] The past-the-end (most-significant) bit index needed for key comparison + { + SortBlocked(keys, values, begin_bit, end_bit, Int2Type(), Int2Type()); + } + + //! @rst + //! Performs an ascending block-wide radix sort over a + //! :ref:`blocked arrangement ` of keys and values. + //! + //! * BlockRadixSort can only accommodate one associated tile of values. To "truck along" + //! more than one tile of values, simply perform a key-value sort of the keys paired + //! with a temporary value array that enumerates the key indices. The reordered indices + //! can then be used as a gather-vector for exchanging other associated tile data through + //! shared memory. + //! * @granularity + //! * @smemreuse + //! + //! Snippet + //! ========================================================================== + //! + //! Let's consider a user-defined ``custom_t`` type below. To sort an array of + //! ``custom_t`` objects, we have to tell CUB about relevant members of the + //! ``custom_t`` type. We do this by providing a decomposer that returns a + //! tuple of references to relevant members of the key. + //! + //! .. literalinclude:: ../../test/catch2_test_block_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin custom-type + //! :end-before: example-end custom-type + //! + //! The code snippet below illustrates a sort of 2 keys and values that + //! are partitioned in a :ref:`blocked arrangement ` across 2 threads + //! where each thread owns 1 pair. + //! + //! .. literalinclude:: ../../test/catch2_test_block_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin pairs-bits + //! :end-before: example-end pairs-bits + //! + //! @endrst + //! + //! @tparam DecomposerT + //! **[inferred]** Type of a callable object responsible for decomposing a + //! ``KeyT`` into a tuple of references to its constituent arithmetic types: + //! ``::cuda::std::tuple operator()(KeyT &key)``. + //! The leftmost element of the tuple is considered the most significant. + //! The call operator must not modify members of the key. + //! + //! @param[in,out] keys + //! Keys to sort + //! + //! @param[in,out] values + //! Values to sort + //! + //! @param decomposer + //! Callable object responsible for decomposing a ``KeyT`` into a tuple of + //! references to its constituent arithmetic types. The leftmost element of + //! the tuple is considered the most significant. The call operator must not + //! modify members of the key. + //! + //! @param[in] begin_bit + //! The least-significant bit index (inclusive) needed for + //! key comparison + //! + //! @param[in] end_bit + //! The most-significant bit index (exclusive) needed for key + //! comparison (e.g., `(sizeof(float) + sizeof(long long int)) * 8`) + template + __device__ __forceinline__ // + typename ::cuda::std::enable_if< // + !::cuda::std::is_convertible::value>::type + Sort(KeyT (&keys)[ITEMS_PER_THREAD], + ValueT (&values)[ITEMS_PER_THREAD], + DecomposerT decomposer, + int begin_bit, + int end_bit) + { + SortBlocked(keys, + values, + begin_bit, + end_bit, + Int2Type(), + Int2Type(), + decomposer); + } + + //! @rst + //! Performs an ascending block-wide radix sort over a + //! :ref:`blocked arrangement ` of keys and values. + //! + //! * BlockRadixSort can only accommodate one associated tile of values. To "truck along" + //! more than one tile of values, simply perform a key-value sort of the keys paired + //! with a temporary value array that enumerates the key indices. The reordered indices + //! can then be used as a gather-vector for exchanging other associated tile data through + //! shared memory. + //! * @granularity + //! * @smemreuse + //! + //! Snippet + //! ========================================================================== + //! + //! Let's consider a user-defined ``custom_t`` type below. To sort an array of + //! ``custom_t`` objects, we have to tell CUB about relevant members of the + //! ``custom_t`` type. We do this by providing a decomposer that returns a + //! tuple of references to relevant members of the key. + //! + //! .. literalinclude:: ../../test/catch2_test_block_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin custom-type + //! :end-before: example-end custom-type + //! + //! The code snippet below illustrates a sort of 6 keys and values that + //! are partitioned in a :ref:`blocked arrangement ` across 2 threads + //! where each thread owns 3 consecutive pairs. + //! + //! .. literalinclude:: ../../test/catch2_test_block_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin pairs + //! :end-before: example-end pairs + //! + //! @endrst + //! + //! @tparam DecomposerT + //! **[inferred]** Type of a callable object responsible for decomposing a + //! ``KeyT`` into a tuple of references to its constituent arithmetic types: + //! ``::cuda::std::tuple operator()(KeyT &key)``. + //! The leftmost element of the tuple is considered the most significant. + //! The call operator must not modify members of the key. + //! + //! @param[in,out] keys + //! Keys to sort + //! + //! @param[in,out] values + //! Values to sort + //! + //! @param decomposer + //! Callable object responsible for decomposing a ``KeyT`` into a tuple of + //! references to its constituent arithmetic types. The leftmost element of + //! the tuple is considered the most significant. The call operator must not + //! modify members of the key. + template + __device__ __forceinline__ // + typename ::cuda::std::enable_if< // + !::cuda::std::is_convertible::value>::type + Sort(KeyT (&keys)[ITEMS_PER_THREAD], + ValueT (&values)[ITEMS_PER_THREAD], + DecomposerT decomposer) + { + Sort(keys, + values, + decomposer, + 0, + detail::radix::traits_t::default_end_bit(decomposer)); + } + + /** + * \brief Performs a descending block-wide radix sort over a [blocked arrangement](index.html#sec5sec3) of keys. + * + * \par + * - \granularity + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates a sort of 512 integer keys that + * are partitioned in a [blocked arrangement](index.html#sec5sec3) across 128 threads + * where each thread owns 4 consecutive keys. + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(...) + * { + * // Specialize BlockRadixSort for a 1D block of 128 threads owning 4 integer keys each + * typedef cub::BlockRadixSort BlockRadixSort; + * + * // Allocate shared memory for BlockRadixSort + * __shared__ typename BlockRadixSort::TempStorage temp_storage; + * + * // Obtain a segment of consecutive items that are blocked across threads + * int thread_keys[4]; + * ... + * + * // Collectively sort the keys + * BlockRadixSort(temp_storage).Sort(thread_keys); + * + * \endcode + * \par + * Suppose the set of input \p thread_keys across the block of threads is + * { [0,511,1,510], [2,509,3,508], [4,507,5,506], ..., [254,257,255,256] }. + * The corresponding output \p thread_keys in those threads will be + * { [511,510,509,508], [11,10,9,8], [7,6,5,4], ..., [3,2,1,0] }. + */ + __device__ __forceinline__ void SortDescending( + KeyT (&keys)[ITEMS_PER_THREAD], ///< [in-out] Keys to sort + int begin_bit = 0, ///< [in] [optional] The beginning (least-significant) bit index needed for key comparison + int end_bit = sizeof(KeyT) * 8) ///< [in] [optional] The past-the-end (most-significant) bit index needed for key comparison + { + NullType values[ITEMS_PER_THREAD]; + + SortBlocked(keys, values, begin_bit, end_bit, Int2Type(), Int2Type()); + } + + //! @rst + //! Performs a descending block-wide radix sort over a + //! :ref:`blocked arrangement ` of keys. + //! + //! * @granularity + //! * @smemreuse + //! + //! Snippet + //! ========================================================================== + //! + //! Let's consider a user-defined ``custom_t`` type below. To sort an array of + //! ``custom_t`` objects, we have to tell CUB about relevant members of the + //! ``custom_t`` type. We do this by providing a decomposer that returns a + //! tuple of references to relevant members of the key. + //! + //! .. literalinclude:: ../../test/catch2_test_block_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin custom-type + //! :end-before: example-end custom-type + //! + //! The code snippet below illustrates a sort of 2 keys that + //! are partitioned in a :ref:`blocked arrangement ` across 2 threads + //! where each thread owns 1 key. + //! + //! .. literalinclude:: ../../test/catch2_test_block_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin keys-descending-bits + //! :end-before: example-end keys-descending-bits + //! + //! @endrst + //! + //! @tparam DecomposerT + //! **[inferred]** Type of a callable object responsible for decomposing a + //! ``KeyT`` into a tuple of references to its constituent arithmetic types: + //! ``::cuda::std::tuple operator()(KeyT &key)``. + //! The leftmost element of the tuple is considered the most significant. + //! The call operator must not modify members of the key. + //! + //! @param[in,out] keys + //! Keys to sort + //! + //! @param decomposer + //! Callable object responsible for decomposing a ``KeyT`` into a tuple of + //! references to its constituent arithmetic types. The leftmost element of + //! the tuple is considered the most significant. The call operator must not + //! modify members of the key. + //! + //! @param[in] begin_bit + //! The least-significant bit index (inclusive) needed for + //! key comparison + //! + //! @param[in] end_bit + //! The most-significant bit index (exclusive) needed for key + //! comparison (e.g., `(sizeof(float) + sizeof(long long int)) * 8`) + template + __device__ __forceinline__ // + typename ::cuda::std::enable_if< // + !::cuda::std::is_convertible::value>::type + SortDescending(KeyT (&keys)[ITEMS_PER_THREAD], + DecomposerT decomposer, + int begin_bit, + int end_bit) + { + NullType values[ITEMS_PER_THREAD]; + + SortBlocked(keys, + values, + begin_bit, + end_bit, + Int2Type(), + Int2Type(), + decomposer); + } + + //! @rst + //! Performs a descending block-wide radix sort over a + //! :ref:`blocked arrangement ` of keys. + //! + //! * @granularity + //! * @smemreuse + //! + //! Snippet + //! ========================================================================== + //! + //! Let's consider a user-defined ``custom_t`` type below. To sort an array of + //! ``custom_t`` objects, we have to tell CUB about relevant members of the + //! ``custom_t`` type. We do this by providing a decomposer that returns a + //! tuple of references to relevant members of the key. + //! + //! .. literalinclude:: ../../test/catch2_test_block_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin custom-type + //! :end-before: example-end custom-type + //! + //! The code snippet below illustrates a sort of 6 keys that + //! are partitioned in a :ref:`blocked arrangement ` across 2 threads + //! where each thread owns 3 consecutive keys. + //! + //! .. literalinclude:: ../../test/catch2_test_block_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin keys-descending + //! :end-before: example-end keys-descending + //! + //! @endrst + //! + //! @tparam DecomposerT + //! **[inferred]** Type of a callable object responsible for decomposing a + //! ``KeyT`` into a tuple of references to its constituent arithmetic types: + //! ``::cuda::std::tuple operator()(KeyT &key)``. + //! The leftmost element of the tuple is considered the most significant. + //! The call operator must not modify members of the key. + //! + //! @param[in,out] keys + //! Keys to sort + //! + //! @param decomposer + //! Callable object responsible for decomposing a ``KeyT`` into a tuple of + //! references to its constituent arithmetic types. The leftmost element of + //! the tuple is considered the most significant. The call operator must not + //! modify members of the key. + template + __device__ __forceinline__ // + typename ::cuda::std::enable_if< // + !::cuda::std::is_convertible::value>::type + SortDescending(KeyT (&keys)[ITEMS_PER_THREAD], DecomposerT decomposer) + { + NullType values[ITEMS_PER_THREAD]; + + SortBlocked(keys, + values, + 0, + detail::radix::traits_t::default_end_bit(decomposer), + Int2Type(), + Int2Type(), + decomposer); + } + + /** + * \brief Performs a descending block-wide radix sort across a [blocked arrangement](index.html#sec5sec3) of keys and values. + * + * \par + * - BlockRadixSort can only accommodate one associated tile of values. To "truck along" + * more than one tile of values, simply perform a key-value sort of the keys paired + * with a temporary value array that enumerates the key indices. The reordered indices + * can then be used as a gather-vector for exchanging other associated tile data through + * shared memory. + * - \granularity + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates a sort of 512 integer keys and values that + * are partitioned in a [blocked arrangement](index.html#sec5sec3) across 128 threads + * where each thread owns 4 consecutive pairs. + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(...) + * { + * // Specialize BlockRadixSort for a 1D block of 128 threads owning 4 integer keys and values each + * typedef cub::BlockRadixSort BlockRadixSort; + * + * // Allocate shared memory for BlockRadixSort + * __shared__ typename BlockRadixSort::TempStorage temp_storage; + * + * // Obtain a segment of consecutive items that are blocked across threads + * int thread_keys[4]; + * int thread_values[4]; + * ... + * + * // Collectively sort the keys and values among block threads + * BlockRadixSort(temp_storage).Sort(thread_keys, thread_values); + * + * \endcode + * \par + * Suppose the set of input \p thread_keys across the block of threads is + * { [0,511,1,510], [2,509,3,508], [4,507,5,506], ..., [254,257,255,256] }. The + * corresponding output \p thread_keys in those threads will be + * { [511,510,509,508], [11,10,9,8], [7,6,5,4], ..., [3,2,1,0] }. + * + */ + __device__ __forceinline__ void SortDescending( + KeyT (&keys)[ITEMS_PER_THREAD], ///< [in-out] Keys to sort + ValueT (&values)[ITEMS_PER_THREAD], ///< [in-out] Values to sort + int begin_bit = 0, ///< [in] [optional] The beginning (least-significant) bit index needed for key comparison + int end_bit = sizeof(KeyT) * 8) ///< [in] [optional] The past-the-end (most-significant) bit index needed for key comparison + { + SortBlocked(keys, values, begin_bit, end_bit, Int2Type(), Int2Type()); + } + + //! @rst + //! Performs a descending block-wide radix sort over a + //! :ref:`blocked arrangement ` of keys and values. + //! + //! * BlockRadixSort can only accommodate one associated tile of values. To "truck along" + //! more than one tile of values, simply perform a key-value sort of the keys paired + //! with a temporary value array that enumerates the key indices. The reordered indices + //! can then be used as a gather-vector for exchanging other associated tile data through + //! shared memory. + //! * @granularity + //! * @smemreuse + //! + //! Snippet + //! ========================================================================== + //! + //! Let's consider a user-defined ``custom_t`` type below. To sort an array of + //! ``custom_t`` objects, we have to tell CUB about relevant members of the + //! ``custom_t`` type. We do this by providing a decomposer that returns a + //! tuple of references to relevant members of the key. + //! + //! .. literalinclude:: ../../test/catch2_test_block_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin custom-type + //! :end-before: example-end custom-type + //! + //! The code snippet below illustrates a sort of 2 pairs that + //! are partitioned in a :ref:`blocked arrangement ` across 2 threads + //! where each thread owns 1 pair. + //! + //! .. literalinclude:: ../../test/catch2_test_block_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin pairs-descending-bits + //! :end-before: example-end pairs-descending-bits + //! + //! @endrst + //! + //! @tparam DecomposerT + //! **[inferred]** Type of a callable object responsible for decomposing a + //! ``KeyT`` into a tuple of references to its constituent arithmetic types: + //! ``::cuda::std::tuple operator()(KeyT &key)``. + //! The leftmost element of the tuple is considered the most significant. + //! The call operator must not modify members of the key. + //! + //! @param[in,out] keys + //! Keys to sort + //! + //! @param[in,out] values + //! Values to sort + //! + //! @param decomposer + //! Callable object responsible for decomposing a ``KeyT`` into a tuple of + //! references to its constituent arithmetic types. The leftmost element of + //! the tuple is considered the most significant. The call operator must not + //! modify members of the key. + //! + //! @param[in] begin_bit + //! The least-significant bit index (inclusive) needed for + //! key comparison + //! + //! @param[in] end_bit + //! The most-significant bit index (exclusive) needed for key + //! comparison (e.g., `(sizeof(float) + sizeof(long long int)) * 8`) + template + __device__ __forceinline__ // + typename ::cuda::std::enable_if< // + !::cuda::std::is_convertible::value>::type + SortDescending(KeyT (&keys)[ITEMS_PER_THREAD], + ValueT (&values)[ITEMS_PER_THREAD], + DecomposerT decomposer, + int begin_bit, + int end_bit) + { + SortBlocked(keys, + values, + begin_bit, + end_bit, + Int2Type(), + Int2Type(), + decomposer); + } + + //! @rst + //! Performs a descending block-wide radix sort over a + //! :ref:`blocked arrangement ` of keys and values. + //! + //! * BlockRadixSort can only accommodate one associated tile of values. To "truck along" + //! more than one tile of values, simply perform a key-value sort of the keys paired + //! with a temporary value array that enumerates the key indices. The reordered indices + //! can then be used as a gather-vector for exchanging other associated tile data through + //! shared memory. + //! * @granularity + //! * @smemreuse + //! + //! Snippet + //! ========================================================================== + //! + //! Let's consider a user-defined ``custom_t`` type below. To sort an array of + //! ``custom_t`` objects, we have to tell CUB about relevant members of the + //! ``custom_t`` type. We do this by providing a decomposer that returns a + //! tuple of references to relevant members of the key. + //! + //! .. literalinclude:: ../../test/catch2_test_block_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin custom-type + //! :end-before: example-end custom-type + //! + //! The code snippet below illustrates a sort of 6 keys and values that + //! are partitioned in a :ref:`blocked arrangement ` across 2 threads + //! where each thread owns 3 consecutive pairs. + //! + //! .. literalinclude:: ../../test/catch2_test_block_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin pairs-descending + //! :end-before: example-end pairs-descending + //! + //! @endrst + //! + //! @tparam DecomposerT + //! **[inferred]** Type of a callable object responsible for decomposing a + //! ``KeyT`` into a tuple of references to its constituent arithmetic types: + //! ``::cuda::std::tuple operator()(KeyT &key)``. + //! The leftmost element of the tuple is considered the most significant. + //! The call operator must not modify members of the key. + //! + //! @param[in,out] keys + //! Keys to sort + //! + //! @param[in,out] values + //! Values to sort + //! + //! @param decomposer + //! Callable object responsible for decomposing a ``KeyT`` into a tuple of + //! references to its constituent arithmetic types. The leftmost element of + //! the tuple is considered the most significant. The call operator must not + //! modify members of the key. + template + __device__ __forceinline__ // + typename ::cuda::std::enable_if< // + !::cuda::std::is_convertible::value>::type + SortDescending(KeyT (&keys)[ITEMS_PER_THREAD], + ValueT (&values)[ITEMS_PER_THREAD], + DecomposerT decomposer) + { + SortBlocked(keys, + values, + 0, + detail::radix::traits_t::default_end_bit(decomposer), + Int2Type(), + Int2Type(), + decomposer); + } + + //@} end member group + /******************************************************************//** + * \name Sorting (blocked arrangement -> striped arrangement) + *********************************************************************/ + //@{ + + + /** + * \brief Performs an ascending radix sort across a [blocked arrangement](index.html#sec5sec3) of keys, leaving them in a [striped arrangement](index.html#sec5sec3). + * + * \par + * - \granularity + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates a sort of 512 integer keys that + * are initially partitioned in a [blocked arrangement](index.html#sec5sec3) across 128 threads + * where each thread owns 4 consecutive keys. The final partitioning is striped. + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(...) + * { + * // Specialize BlockRadixSort for a 1D block of 128 threads owning 4 integer keys each + * typedef cub::BlockRadixSort BlockRadixSort; + * + * // Allocate shared memory for BlockRadixSort + * __shared__ typename BlockRadixSort::TempStorage temp_storage; + * + * // Obtain a segment of consecutive items that are blocked across threads + * int thread_keys[4]; + * ... + * + * // Collectively sort the keys + * BlockRadixSort(temp_storage).SortBlockedToStriped(thread_keys); + * + * \endcode + * \par + * Suppose the set of input \p thread_keys across the block of threads is + * { [0,511,1,510], [2,509,3,508], [4,507,5,506], ..., [254,257,255,256] }. The + * corresponding output \p thread_keys in those threads will be + * { [0,128,256,384], [1,129,257,385], [2,130,258,386], ..., [127,255,383,511] }. + * + */ + __device__ __forceinline__ void SortBlockedToStriped( + KeyT (&keys)[ITEMS_PER_THREAD], ///< [in-out] Keys to sort + int begin_bit = 0, ///< [in] [optional] The beginning (least-significant) bit index needed for key comparison + int end_bit = sizeof(KeyT) * 8) ///< [in] [optional] The past-the-end (most-significant) bit index needed for key comparison + { + NullType values[ITEMS_PER_THREAD]; + + SortBlockedToStriped(keys, values, begin_bit, end_bit, Int2Type(), Int2Type()); + } + + //! @rst + //! Performs an ascending block-wide radix sort over a + //! :ref:`blocked arrangement ` of keys, leaving them in a + //! :ref:`striped arrangement `. + //! + //! * @granularity + //! * @smemreuse + //! + //! Snippet + //! ========================================================================== + //! + //! Let's consider a user-defined ``custom_t`` type below. To sort an array of + //! ``custom_t`` objects, we have to tell CUB about relevant members of the + //! ``custom_t`` type. We do this by providing a decomposer that returns a + //! tuple of references to relevant members of the key. + //! + //! .. literalinclude:: ../../test/catch2_test_block_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin custom-type + //! :end-before: example-end custom-type + //! + //! The code snippet below illustrates a sort of 4 keys that + //! are partitioned in a :ref:`blocked arrangement ` across 2 threads + //! where each thread owns 2 consecutive keys. The final partitioning is striped. + //! + //! .. literalinclude:: ../../test/catch2_test_block_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin keys-striped-bits + //! :end-before: example-end keys-striped-bits + //! + //! @endrst + //! + //! @tparam DecomposerT + //! **[inferred]** Type of a callable object responsible for decomposing a + //! ``KeyT`` into a tuple of references to its constituent arithmetic types: + //! ``::cuda::std::tuple operator()(KeyT &key)``. + //! The leftmost element of the tuple is considered the most significant. + //! The call operator must not modify members of the key. + //! + //! @param[in,out] keys + //! Keys to sort + //! + //! @param decomposer + //! Callable object responsible for decomposing a ``KeyT`` into a tuple of + //! references to its constituent arithmetic types. The leftmost element of + //! the tuple is considered the most significant. The call operator must not + //! modify members of the key. + //! + //! @param[in] begin_bit + //! The least-significant bit index (inclusive) needed for + //! key comparison + //! + //! @param[in] end_bit + //! The most-significant bit index (exclusive) needed for key + //! comparison (e.g., `(sizeof(float) + sizeof(long long int)) * 8`) + template + __device__ __forceinline__ // + typename ::cuda::std::enable_if< // + !::cuda::std::is_convertible::value>::type + SortBlockedToStriped(KeyT (&keys)[ITEMS_PER_THREAD], + DecomposerT decomposer, + int begin_bit, + int end_bit) + { + NullType values[ITEMS_PER_THREAD]; + + SortBlockedToStriped(keys, + values, + begin_bit, + end_bit, + Int2Type(), + Int2Type(), + decomposer); + } + + //! @rst + //! Performs an ascending block-wide radix sort over a + //! :ref:`blocked arrangement ` of keys, leaving them in a + //! :ref:`striped arrangement `. + //! + //! * @granularity + //! * @smemreuse + //! + //! Snippet + //! ========================================================================== + //! + //! Let's consider a user-defined ``custom_t`` type below. To sort an array of + //! ``custom_t`` objects, we have to tell CUB about relevant members of the + //! ``custom_t`` type. We do this by providing a decomposer that returns a + //! tuple of references to relevant members of the key. + //! + //! .. literalinclude:: ../../test/catch2_test_block_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin custom-type + //! :end-before: example-end custom-type + //! + //! The code snippet below illustrates a sort of 6 keys that + //! are partitioned in a :ref:`blocked arrangement ` across 2 threads + //! where each thread owns 3 consecutive keys. The final partitioning is striped. + //! + //! .. literalinclude:: ../../test/catch2_test_block_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin keys-striped + //! :end-before: example-end keys-striped + //! + //! @endrst + //! + //! @tparam DecomposerT + //! **[inferred]** Type of a callable object responsible for decomposing a + //! ``KeyT`` into a tuple of references to its constituent arithmetic types: + //! ``::cuda::std::tuple operator()(KeyT &key)``. + //! The leftmost element of the tuple is considered the most significant. + //! The call operator must not modify members of the key. + //! + //! @param[in,out] keys + //! Keys to sort + //! + //! @param decomposer + //! Callable object responsible for decomposing a ``KeyT`` into a tuple of + //! references to its constituent arithmetic types. The leftmost element of + //! the tuple is considered the most significant. The call operator must not + //! modify members of the key. + template + __device__ __forceinline__ // + typename ::cuda::std::enable_if< // + !::cuda::std::is_convertible::value>::type + SortBlockedToStriped(KeyT (&keys)[ITEMS_PER_THREAD], DecomposerT decomposer) + { + NullType values[ITEMS_PER_THREAD]; + + SortBlockedToStriped(keys, + values, + 0, + detail::radix::traits_t::default_end_bit(decomposer), + Int2Type(), + Int2Type(), + decomposer); + } + + /** + * \brief Performs an ascending radix sort across a [blocked arrangement](index.html#sec5sec3) of keys and values, leaving them in a [striped arrangement](index.html#sec5sec3). + * + * \par + * - BlockRadixSort can only accommodate one associated tile of values. To "truck along" + * more than one tile of values, simply perform a key-value sort of the keys paired + * with a temporary value array that enumerates the key indices. The reordered indices + * can then be used as a gather-vector for exchanging other associated tile data through + * shared memory. + * - \granularity + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates a sort of 512 integer keys and values that + * are initially partitioned in a [blocked arrangement](index.html#sec5sec3) across 128 threads + * where each thread owns 4 consecutive pairs. The final partitioning is striped. + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(...) + * { + * // Specialize BlockRadixSort for a 1D block of 128 threads owning 4 integer keys and values each + * typedef cub::BlockRadixSort BlockRadixSort; + * + * // Allocate shared memory for BlockRadixSort + * __shared__ typename BlockRadixSort::TempStorage temp_storage; + * + * // Obtain a segment of consecutive items that are blocked across threads + * int thread_keys[4]; + * int thread_values[4]; + * ... + * + * // Collectively sort the keys and values among block threads + * BlockRadixSort(temp_storage).SortBlockedToStriped(thread_keys, thread_values); + * + * \endcode + * \par + * Suppose the set of input \p thread_keys across the block of threads is + * { [0,511,1,510], [2,509,3,508], [4,507,5,506], ..., [254,257,255,256] }. The + * corresponding output \p thread_keys in those threads will be + * { [0,128,256,384], [1,129,257,385], [2,130,258,386], ..., [127,255,383,511] }. + * + */ + __device__ __forceinline__ void SortBlockedToStriped( + KeyT (&keys)[ITEMS_PER_THREAD], ///< [in-out] Keys to sort + ValueT (&values)[ITEMS_PER_THREAD], ///< [in-out] Values to sort + int begin_bit = 0, ///< [in] [optional] The beginning (least-significant) bit index needed for key comparison + int end_bit = sizeof(KeyT) * 8) ///< [in] [optional] The past-the-end (most-significant) bit index needed for key comparison + { + SortBlockedToStriped(keys, values, begin_bit, end_bit, Int2Type(), Int2Type()); + } + + //! @rst + //! Performs an ascending block-wide radix sort over a + //! :ref:`blocked arrangement ` of keys and values, leaving them in a + //! :ref:`striped arrangement `. + //! + //! * @granularity + //! * @smemreuse + //! + //! Snippet + //! ========================================================================== + //! + //! Let's consider a user-defined ``custom_t`` type below. To sort an array of + //! ``custom_t`` objects, we have to tell CUB about relevant members of the + //! ``custom_t`` type. We do this by providing a decomposer that returns a + //! tuple of references to relevant members of the key. + //! + //! .. literalinclude:: ../../test/catch2_test_block_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin custom-type + //! :end-before: example-end custom-type + //! + //! The code snippet below illustrates a sort of 4 pairs that + //! are partitioned in a :ref:`blocked arrangement ` across 2 threads + //! where each thread owns 2 consecutive pairs. The final partitioning is striped. + //! + //! .. literalinclude:: ../../test/catch2_test_block_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin pairs-striped-bits + //! :end-before: example-end pairs-striped-bits + //! + //! @endrst + //! + //! @tparam DecomposerT + //! **[inferred]** Type of a callable object responsible for decomposing a + //! ``KeyT`` into a tuple of references to its constituent arithmetic types: + //! ``::cuda::std::tuple operator()(KeyT &key)``. + //! The leftmost element of the tuple is considered the most significant. + //! The call operator must not modify members of the key. + //! + //! @param[in,out] keys + //! Keys to sort + //! + //! @param[in,out] values + //! Values to sort + //! + //! @param decomposer + //! Callable object responsible for decomposing a ``KeyT`` into a tuple of + //! references to its constituent arithmetic types. The leftmost element of + //! the tuple is considered the most significant. The call operator must not + //! modify members of the key. + //! + //! @param[in] begin_bit + //! The least-significant bit index (inclusive) needed for + //! key comparison + //! + //! @param[in] end_bit + //! The most-significant bit index (exclusive) needed for key + //! comparison (e.g., `(sizeof(float) + sizeof(long long int)) * 8`) + template + __device__ __forceinline__ // + typename ::cuda::std::enable_if< // + !::cuda::std::is_convertible::value>::type + SortBlockedToStriped(KeyT (&keys)[ITEMS_PER_THREAD], + ValueT (&values)[ITEMS_PER_THREAD], + DecomposerT decomposer, + int begin_bit, + int end_bit) + { + SortBlockedToStriped(keys, + values, + begin_bit, + end_bit, + Int2Type(), + Int2Type(), + decomposer); + } + + //! @rst + //! Performs an ascending block-wide radix sort over a + //! :ref:`blocked arrangement ` of keys and values, leaving them in a + //! :ref:`striped arrangement `. + //! + //! * @granularity + //! * @smemreuse + //! + //! Snippet + //! ========================================================================== + //! + //! Let's consider a user-defined ``custom_t`` type below. To sort an array of + //! ``custom_t`` objects, we have to tell CUB about relevant members of the + //! ``custom_t`` type. We do this by providing a decomposer that returns a + //! tuple of references to relevant members of the key. + //! + //! .. literalinclude:: ../../test/catch2_test_block_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin custom-type + //! :end-before: example-end custom-type + //! + //! The code snippet below illustrates a sort of 6 pairs that + //! are partitioned in a :ref:`blocked arrangement ` across 2 threads + //! where each thread owns 3 consecutive pairs. The final partitioning is striped. + //! + //! .. literalinclude:: ../../test/catch2_test_block_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin pairs-striped + //! :end-before: example-end pairs-striped + //! + //! @endrst + //! + //! @tparam DecomposerT + //! **[inferred]** Type of a callable object responsible for decomposing a + //! ``KeyT`` into a tuple of references to its constituent arithmetic types: + //! ``::cuda::std::tuple operator()(KeyT &key)``. + //! The leftmost element of the tuple is considered the most significant. + //! The call operator must not modify members of the key. + //! + //! @param[in,out] keys + //! Keys to sort + //! + //! @param[in,out] values + //! Values to sort + //! + //! @param decomposer + //! Callable object responsible for decomposing a ``KeyT`` into a tuple of + //! references to its constituent arithmetic types. The leftmost element of + //! the tuple is considered the most significant. The call operator must not + //! modify members of the key. + template + __device__ __forceinline__ // + typename ::cuda::std::enable_if< // + !::cuda::std::is_convertible::value>::type + SortBlockedToStriped(KeyT (&keys)[ITEMS_PER_THREAD], + ValueT (&values)[ITEMS_PER_THREAD], + DecomposerT decomposer) + { + SortBlockedToStriped(keys, + values, + 0, + detail::radix::traits_t::default_end_bit(decomposer), + Int2Type(), + Int2Type(), + decomposer); + } + + /** + * \brief Performs a descending radix sort across a [blocked arrangement](index.html#sec5sec3) of keys, leaving them in a [striped arrangement](index.html#sec5sec3). + * + * \par + * - \granularity + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates a sort of 512 integer keys that + * are initially partitioned in a [blocked arrangement](index.html#sec5sec3) across 128 threads + * where each thread owns 4 consecutive keys. The final partitioning is striped. + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(...) + * { + * // Specialize BlockRadixSort for a 1D block of 128 threads owning 4 integer keys each + * typedef cub::BlockRadixSort BlockRadixSort; + * + * // Allocate shared memory for BlockRadixSort + * __shared__ typename BlockRadixSort::TempStorage temp_storage; + * + * // Obtain a segment of consecutive items that are blocked across threads + * int thread_keys[4]; + * ... + * + * // Collectively sort the keys + * BlockRadixSort(temp_storage).SortBlockedToStriped(thread_keys); + * + * \endcode + * \par + * Suppose the set of input \p thread_keys across the block of threads is + * { [0,511,1,510], [2,509,3,508], [4,507,5,506], ..., [254,257,255,256] }. The + * corresponding output \p thread_keys in those threads will be + * { [511,383,255,127], [386,258,130,2], [385,257,128,1], ..., [384,256,128,0] }. + * + */ + __device__ __forceinline__ void SortDescendingBlockedToStriped( + KeyT (&keys)[ITEMS_PER_THREAD], ///< [in-out] Keys to sort + int begin_bit = 0, ///< [in] [optional] The beginning (least-significant) bit index needed for key comparison + int end_bit = sizeof(KeyT) * 8) ///< [in] [optional] The past-the-end (most-significant) bit index needed for key comparison + { + NullType values[ITEMS_PER_THREAD]; + + SortBlockedToStriped(keys, values, begin_bit, end_bit, Int2Type(), Int2Type()); + } + + //! @rst + //! Performs a descending block-wide radix sort over a + //! :ref:`blocked arrangement ` of keys, leaving them in a + //! :ref:`striped arrangement `. + //! + //! * @granularity + //! * @smemreuse + //! + //! Snippet + //! ========================================================================== + //! + //! Let's consider a user-defined ``custom_t`` type below. To sort an array of + //! ``custom_t`` objects, we have to tell CUB about relevant members of the + //! ``custom_t`` type. We do this by providing a decomposer that returns a + //! tuple of references to relevant members of the key. + //! + //! .. literalinclude:: ../../test/catch2_test_block_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin custom-type + //! :end-before: example-end custom-type + //! + //! The code snippet below illustrates a sort of 4 keys that + //! are partitioned in a :ref:`blocked arrangement ` across 2 threads + //! where each thread owns 2 consecutive keys. The final partitioning is striped. + //! + //! .. literalinclude:: ../../test/catch2_test_block_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin keys-striped-descending-bits + //! :end-before: example-end keys-striped-descending-bits + //! + //! @endrst + //! + //! @tparam DecomposerT + //! **[inferred]** Type of a callable object responsible for decomposing a + //! ``KeyT`` into a tuple of references to its constituent arithmetic types: + //! ``::cuda::std::tuple operator()(KeyT &key)``. + //! The leftmost element of the tuple is considered the most significant. + //! The call operator must not modify members of the key. + //! + //! @param[in,out] keys + //! Keys to sort + //! + //! @param decomposer + //! Callable object responsible for decomposing a ``KeyT`` into a tuple of + //! references to its constituent arithmetic types. The leftmost element of + //! the tuple is considered the most significant. The call operator must not + //! modify members of the key. + //! + //! @param[in] begin_bit + //! The least-significant bit index (inclusive) needed for + //! key comparison + //! + //! @param[in] end_bit + //! The most-significant bit index (exclusive) needed for key + //! comparison (e.g., `(sizeof(float) + sizeof(long long int)) * 8`) + template + __device__ __forceinline__ // + typename ::cuda::std::enable_if< // + !::cuda::std::is_convertible::value>::type + SortDescendingBlockedToStriped(KeyT (&keys)[ITEMS_PER_THREAD], + DecomposerT decomposer, + int begin_bit, + int end_bit) + { + NullType values[ITEMS_PER_THREAD]; + + SortBlockedToStriped(keys, + values, + begin_bit, + end_bit, + Int2Type(), + Int2Type(), + decomposer); + } + + //! @rst + //! Performs a descending block-wide radix sort over a + //! :ref:`blocked arrangement ` of keys, leaving them in a + //! :ref:`striped arrangement `. + //! + //! * @granularity + //! * @smemreuse + //! + //! Snippet + //! ========================================================================== + //! + //! Let's consider a user-defined ``custom_t`` type below. To sort an array of + //! ``custom_t`` objects, we have to tell CUB about relevant members of the + //! ``custom_t`` type. We do this by providing a decomposer that returns a + //! tuple of references to relevant members of the key. + //! + //! .. literalinclude:: ../../test/catch2_test_block_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin custom-type + //! :end-before: example-end custom-type + //! + //! The code snippet below illustrates a sort of 6 keys that + //! are partitioned in a :ref:`blocked arrangement ` across 2 threads + //! where each thread owns 3 consecutive keys. The final partitioning is striped. + //! + //! .. literalinclude:: ../../test/catch2_test_block_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin keys-striped-descending + //! :end-before: example-end keys-striped-descending + //! + //! @endrst + //! + //! @tparam DecomposerT + //! **[inferred]** Type of a callable object responsible for decomposing a + //! ``KeyT`` into a tuple of references to its constituent arithmetic types: + //! ``::cuda::std::tuple operator()(KeyT &key)``. + //! The leftmost element of the tuple is considered the most significant. + //! The call operator must not modify members of the key. + //! + //! @param[in,out] keys + //! Keys to sort + //! + //! @param decomposer + //! Callable object responsible for decomposing a ``KeyT`` into a tuple of + //! references to its constituent arithmetic types. The leftmost element of + //! the tuple is considered the most significant. The call operator must not + //! modify members of the key. + template + __device__ __forceinline__ // + typename ::cuda::std::enable_if< // + !::cuda::std::is_convertible::value>::type + SortDescendingBlockedToStriped(KeyT (&keys)[ITEMS_PER_THREAD], DecomposerT decomposer) + { + NullType values[ITEMS_PER_THREAD]; + + SortBlockedToStriped(keys, + values, + 0, + detail::radix::traits_t::default_end_bit(decomposer), + Int2Type(), + Int2Type(), + decomposer); + } + + /** + * \brief Performs a descending radix sort across a [blocked arrangement](index.html#sec5sec3) of keys and values, leaving them in a [striped arrangement](index.html#sec5sec3). + * + * \par + * - BlockRadixSort can only accommodate one associated tile of values. To "truck along" + * more than one tile of values, simply perform a key-value sort of the keys paired + * with a temporary value array that enumerates the key indices. The reordered indices + * can then be used as a gather-vector for exchanging other associated tile data through + * shared memory. + * - \granularity + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates a sort of 512 integer keys and values that + * are initially partitioned in a [blocked arrangement](index.html#sec5sec3) across 128 threads + * where each thread owns 4 consecutive pairs. The final partitioning is striped. + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(...) + * { + * // Specialize BlockRadixSort for a 1D block of 128 threads owning 4 integer keys and values each + * typedef cub::BlockRadixSort BlockRadixSort; + * + * // Allocate shared memory for BlockRadixSort + * __shared__ typename BlockRadixSort::TempStorage temp_storage; + * + * // Obtain a segment of consecutive items that are blocked across threads + * int thread_keys[4]; + * int thread_values[4]; + * ... + * + * // Collectively sort the keys and values among block threads + * BlockRadixSort(temp_storage).SortBlockedToStriped(thread_keys, thread_values); + * + * \endcode + * \par + * Suppose the set of input \p thread_keys across the block of threads is + * { [0,511,1,510], [2,509,3,508], [4,507,5,506], ..., [254,257,255,256] }. The + * corresponding output \p thread_keys in those threads will be + * { [511,383,255,127], [386,258,130,2], [385,257,128,1], ..., [384,256,128,0] }. + * + */ + __device__ __forceinline__ void SortDescendingBlockedToStriped( + KeyT (&keys)[ITEMS_PER_THREAD], ///< [in-out] Keys to sort + ValueT (&values)[ITEMS_PER_THREAD], ///< [in-out] Values to sort + int begin_bit = 0, ///< [in] [optional] The beginning (least-significant) bit index needed for key comparison + int end_bit = sizeof(KeyT) * 8) ///< [in] [optional] The past-the-end (most-significant) bit index needed for key comparison + { + SortBlockedToStriped(keys, values, begin_bit, end_bit, Int2Type(), Int2Type()); + } + + //! @rst + //! Performs a descending block-wide radix sort over a + //! :ref:`blocked arrangement ` of keys and values, leaving them in a + //! :ref:`striped arrangement `. + //! + //! * @granularity + //! * @smemreuse + //! + //! Snippet + //! ========================================================================== + //! + //! Let's consider a user-defined ``custom_t`` type below. To sort an array of + //! ``custom_t`` objects, we have to tell CUB about relevant members of the + //! ``custom_t`` type. We do this by providing a decomposer that returns a + //! tuple of references to relevant members of the key. + //! + //! .. literalinclude:: ../../test/catch2_test_block_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin custom-type + //! :end-before: example-end custom-type + //! + //! The code snippet below illustrates a sort of 4 keys and values that + //! are partitioned in a :ref:`blocked arrangement ` across 2 threads + //! where each thread owns 2 consecutive pairs. The final partitioning is striped. + //! + //! .. literalinclude:: ../../test/catch2_test_block_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin pairs-striped-descending-bits + //! :end-before: example-end pairs-striped-descending-bits + //! + //! @endrst + //! + //! @tparam DecomposerT + //! **[inferred]** Type of a callable object responsible for decomposing a + //! ``KeyT`` into a tuple of references to its constituent arithmetic types: + //! ``::cuda::std::tuple operator()(KeyT &key)``. + //! The leftmost element of the tuple is considered the most significant. + //! The call operator must not modify members of the key. + //! + //! @param[in,out] keys + //! Keys to sort + //! + //! @param[in,out] values + //! Values to sort + //! + //! @param decomposer + //! Callable object responsible for decomposing a ``KeyT`` into a tuple of + //! references to its constituent arithmetic types. The leftmost element of + //! the tuple is considered the most significant. The call operator must not + //! modify members of the key. + //! + //! @param[in] begin_bit + //! The least-significant bit index (inclusive) needed for + //! key comparison + //! + //! @param[in] end_bit + //! The most-significant bit index (exclusive) needed for key + //! comparison (e.g., `(sizeof(float) + sizeof(long long int)) * 8`) + template + __device__ __forceinline__ // + typename ::cuda::std::enable_if< // + !::cuda::std::is_convertible::value>::type + SortDescendingBlockedToStriped(KeyT (&keys)[ITEMS_PER_THREAD], + ValueT (&values)[ITEMS_PER_THREAD], + DecomposerT decomposer, + int begin_bit, + int end_bit) + { + SortBlockedToStriped(keys, + values, + begin_bit, + end_bit, + Int2Type(), + Int2Type(), + decomposer); + } + + //! @rst + //! Performs a descending block-wide radix sort over a + //! :ref:`blocked arrangement ` of keys and values, leaving them in a + //! :ref:`striped arrangement `. + //! + //! * @granularity + //! * @smemreuse + //! + //! Snippet + //! ========================================================================== + //! + //! Let's consider a user-defined ``custom_t`` type below. To sort an array of + //! ``custom_t`` objects, we have to tell CUB about relevant members of the + //! ``custom_t`` type. We do this by providing a decomposer that returns a + //! tuple of references to relevant members of the key. + //! + //! .. literalinclude:: ../../test/catch2_test_block_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin custom-type + //! :end-before: example-end custom-type + //! + //! The code snippet below illustrates a sort of 6 keys and values that + //! are partitioned in a :ref:`blocked arrangement ` across 2 threads + //! where each thread owns 3 consecutive pairs. The final partitioning is striped. + //! + //! .. literalinclude:: ../../test/catch2_test_block_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin pairs-striped-descending + //! :end-before: example-end pairs-striped-descending + //! + //! @endrst + //! + //! @tparam DecomposerT + //! **[inferred]** Type of a callable object responsible for decomposing a + //! ``KeyT`` into a tuple of references to its constituent arithmetic types: + //! ``::cuda::std::tuple operator()(KeyT &key)``. + //! The leftmost element of the tuple is considered the most significant. + //! The call operator must not modify members of the key. + //! + //! @param[in,out] keys + //! Keys to sort + //! + //! @param[in,out] values + //! Values to sort + //! + //! @param decomposer + //! Callable object responsible for decomposing a ``KeyT`` into a tuple of + //! references to its constituent arithmetic types. The leftmost element of + //! the tuple is considered the most significant. The call operator must not + //! modify members of the key. + template + __device__ __forceinline__ // + typename ::cuda::std::enable_if< // + !::cuda::std::is_convertible::value>::type + SortDescendingBlockedToStriped(KeyT (&keys)[ITEMS_PER_THREAD], + ValueT (&values)[ITEMS_PER_THREAD], + DecomposerT decomposer) + { + SortBlockedToStriped(keys, + values, + 0, + detail::radix::traits_t::default_end_bit(decomposer), + Int2Type(), + Int2Type(), + decomposer); + } + + //@} end member group + +}; + +/** + * \example example_block_radix_sort.cu + */ + +CUB_NAMESPACE_END + diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/block/block_raking_layout.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/block/block_raking_layout.cuh new file mode 100644 index 0000000000000000000000000000000000000000..4d49f54f2c8a90071c38f9a011a9933792bb84ed --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/block/block_raking_layout.cuh @@ -0,0 +1,145 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * cub::BlockRakingLayout provides a conflict-free shared memory layout abstraction for warp-raking across thread block data. + */ + + +#pragma once + +#include "../config.cuh" +#include "../util_type.cuh" + +CUB_NAMESPACE_BEGIN + +/** + * \brief BlockRakingLayout provides a conflict-free shared memory layout abstraction for 1D raking across thread block data. ![](raking.png) + * \ingroup BlockModule + * + * \par Overview + * This type facilitates a shared memory usage pattern where a block of CUDA + * threads places elements into shared memory and then reduces the active + * parallelism to one "raking" warp of threads for serially aggregating consecutive + * sequences of shared items. Padding is inserted to eliminate bank conflicts + * (for most data types). + * + * \tparam T The data type to be exchanged. + * \tparam BLOCK_THREADS The thread block size in threads. + * \tparam LEGACY_PTX_ARCH [optional] Unused. + */ +template < + typename T, + int BLOCK_THREADS, + int LEGACY_PTX_ARCH = 0> +struct BlockRakingLayout +{ + //--------------------------------------------------------------------- + // Constants and type definitions + //--------------------------------------------------------------------- + + enum + { + /// The total number of elements that need to be cooperatively reduced + SHARED_ELEMENTS = BLOCK_THREADS, + + /// Maximum number of warp-synchronous raking threads + MAX_RAKING_THREADS = CUB_MIN(BLOCK_THREADS, CUB_WARP_THREADS(0)), + + /// Number of raking elements per warp-synchronous raking thread (rounded up) + SEGMENT_LENGTH = (SHARED_ELEMENTS + MAX_RAKING_THREADS - 1) / MAX_RAKING_THREADS, + + /// Never use a raking thread that will have no valid data (e.g., when BLOCK_THREADS is 62 and SEGMENT_LENGTH is 2, we should only use 31 raking threads) + RAKING_THREADS = (SHARED_ELEMENTS + SEGMENT_LENGTH - 1) / SEGMENT_LENGTH, + + /// Whether we will have bank conflicts (technically we should find out if the GCD is > 1) + HAS_CONFLICTS = (CUB_SMEM_BANKS(0) % SEGMENT_LENGTH == 0), + + /// Degree of bank conflicts (e.g., 4-way) + CONFLICT_DEGREE = (HAS_CONFLICTS) ? + (MAX_RAKING_THREADS * SEGMENT_LENGTH) / CUB_SMEM_BANKS(0) : + 1, + + /// Pad each segment length with one element if segment length is not relatively prime to warp size and can't be optimized as a vector load + USE_SEGMENT_PADDING = ((SEGMENT_LENGTH & 1) == 0) && (SEGMENT_LENGTH > 2), + + /// Total number of elements in the raking grid + GRID_ELEMENTS = RAKING_THREADS * (SEGMENT_LENGTH + USE_SEGMENT_PADDING), + + /// Whether or not we need bounds checking during raking (the number of reduction elements is not a multiple of the number of raking threads) + UNGUARDED = (SHARED_ELEMENTS % RAKING_THREADS == 0), + }; + + + /** + * \brief Shared memory storage type + */ + struct __align__(16) _TempStorage + { + T buff[BlockRakingLayout::GRID_ELEMENTS]; + }; + + /// Alias wrapper allowing storage to be unioned + struct TempStorage : Uninitialized<_TempStorage> {}; + + + /** + * \brief Returns the location for the calling thread to place data into the grid + */ + static __device__ __forceinline__ T* PlacementPtr( + TempStorage &temp_storage, + unsigned int linear_tid) + { + // Offset for partial + unsigned int offset = linear_tid; + + // Add in one padding element for every segment + if (USE_SEGMENT_PADDING > 0) + { + offset += offset / SEGMENT_LENGTH; + } + + // Incorporating a block of padding partials every shared memory segment + return temp_storage.Alias().buff + offset; + } + + + /** + * \brief Returns the location for the calling thread to begin sequential raking + */ + static __device__ __forceinline__ T* RakingPtr( + TempStorage &temp_storage, + unsigned int linear_tid) + { + return temp_storage.Alias().buff + (linear_tid * (SEGMENT_LENGTH + USE_SEGMENT_PADDING)); + } +}; + +CUB_NAMESPACE_END + diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/block/block_reduce.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/block/block_reduce.cuh new file mode 100644 index 0000000000000000000000000000000000000000..dcaf2ee0db037a49b9fc635553846e803aab6086 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/block/block_reduce.cuh @@ -0,0 +1,608 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * The cub::BlockReduce class provides [collective](index.html#sec0) methods for computing a parallel reduction of items partitioned across a CUDA thread block. + */ + +#pragma once + +#include "specializations/block_reduce_raking.cuh" +#include "specializations/block_reduce_raking_commutative_only.cuh" +#include "specializations/block_reduce_warp_reductions.cuh" +#include "../config.cuh" +#include "../util_ptx.cuh" +#include "../util_type.cuh" +#include "../thread/thread_operators.cuh" + +CUB_NAMESPACE_BEGIN + + + +/****************************************************************************** + * Algorithmic variants + ******************************************************************************/ + +/** + * BlockReduceAlgorithm enumerates alternative algorithms for parallel + * reduction across a CUDA thread block. + */ +enum BlockReduceAlgorithm +{ + + /** + * \par Overview + * An efficient "raking" reduction algorithm that only supports commutative + * reduction operators (true for most operations, e.g., addition). + * + * \par + * Execution is comprised of three phases: + * -# Upsweep sequential reduction in registers (if threads contribute more + * than one input each). Threads in warps other than the first warp place + * their partial reductions into shared memory. + * -# Upsweep sequential reduction in shared memory. Threads within the first + * warp continue to accumulate by raking across segments of shared partial reductions + * -# A warp-synchronous Kogge-Stone style reduction within the raking warp. + * + * \par + * \image html block_reduce.png + *
\p BLOCK_REDUCE_RAKING data flow for a hypothetical 16-thread thread block and 4-thread raking warp.
+ * + * \par Performance Considerations + * - This variant performs less communication than BLOCK_REDUCE_RAKING_NON_COMMUTATIVE + * and is preferable when the reduction operator is commutative. This variant + * applies fewer reduction operators than BLOCK_REDUCE_WARP_REDUCTIONS, and can provide higher overall + * throughput across the GPU when suitably occupied. However, turn-around latency may be + * higher than to BLOCK_REDUCE_WARP_REDUCTIONS and thus less-desirable + * when the GPU is under-occupied. + */ + BLOCK_REDUCE_RAKING_COMMUTATIVE_ONLY, + + + /** + * \par Overview + * An efficient "raking" reduction algorithm that supports commutative + * (e.g., addition) and non-commutative (e.g., string concatenation) reduction + * operators. \blocked. + * + * \par + * Execution is comprised of three phases: + * -# Upsweep sequential reduction in registers (if threads contribute more + * than one input each). Each thread then places the partial reduction + * of its item(s) into shared memory. + * -# Upsweep sequential reduction in shared memory. Threads within a + * single warp rake across segments of shared partial reductions. + * -# A warp-synchronous Kogge-Stone style reduction within the raking warp. + * + * \par + * \image html block_reduce.png + *
\p BLOCK_REDUCE_RAKING data flow for a hypothetical 16-thread thread block and 4-thread raking warp.
+ * + * \par Performance Considerations + * - This variant performs more communication than BLOCK_REDUCE_RAKING + * and is only preferable when the reduction operator is non-commutative. This variant + * applies fewer reduction operators than BLOCK_REDUCE_WARP_REDUCTIONS, and can provide higher overall + * throughput across the GPU when suitably occupied. However, turn-around latency may be + * higher than to BLOCK_REDUCE_WARP_REDUCTIONS and thus less-desirable + * when the GPU is under-occupied. + */ + BLOCK_REDUCE_RAKING, + + + /** + * \par Overview + * A quick "tiled warp-reductions" reduction algorithm that supports commutative + * (e.g., addition) and non-commutative (e.g., string concatenation) reduction + * operators. + * + * \par + * Execution is comprised of four phases: + * -# Upsweep sequential reduction in registers (if threads contribute more + * than one input each). Each thread then places the partial reduction + * of its item(s) into shared memory. + * -# Compute a shallow, but inefficient warp-synchronous Kogge-Stone style + * reduction within each warp. + * -# A propagation phase where the warp reduction outputs in each warp are + * updated with the aggregate from each preceding warp. + * + * \par + * \image html block_scan_warpscans.png + *
\p BLOCK_REDUCE_WARP_REDUCTIONS data flow for a hypothetical 16-thread thread block and 4-thread raking warp.
+ * + * \par Performance Considerations + * - This variant applies more reduction operators than BLOCK_REDUCE_RAKING + * or BLOCK_REDUCE_RAKING_NON_COMMUTATIVE, which may result in lower overall + * throughput across the GPU. However turn-around latency may be lower and + * thus useful when the GPU is under-occupied. + */ + BLOCK_REDUCE_WARP_REDUCTIONS, +}; + + +/****************************************************************************** + * Block reduce + ******************************************************************************/ + +/** + * \brief The BlockReduce class provides [collective](index.html#sec0) methods for computing a parallel reduction of items partitioned across a CUDA thread block. ![](reduce_logo.png) + * \ingroup BlockModule + * + * \tparam T Data type being reduced + * \tparam BLOCK_DIM_X The thread block length in threads along the X dimension + * \tparam ALGORITHM [optional] cub::BlockReduceAlgorithm enumerator specifying the underlying algorithm to use (default: cub::BLOCK_REDUCE_WARP_REDUCTIONS) + * \tparam BLOCK_DIM_Y [optional] The thread block length in threads along the Y dimension (default: 1) + * \tparam BLOCK_DIM_Z [optional] The thread block length in threads along the Z dimension (default: 1) + * \tparam LEGACY_PTX_ARCH [optional] Unused. + * + * \par Overview + * - A reduction (or fold) + * uses a binary combining operator to compute a single aggregate from a list of input elements. + * - \rowmajor + * - BlockReduce can be optionally specialized by algorithm to accommodate different latency/throughput workload profiles: + * -# cub::BLOCK_REDUCE_RAKING_COMMUTATIVE_ONLY. An efficient "raking" reduction algorithm that only supports commutative reduction operators. [More...](\ref cub::BlockReduceAlgorithm) + * -# cub::BLOCK_REDUCE_RAKING. An efficient "raking" reduction algorithm that supports commutative and non-commutative reduction operators. [More...](\ref cub::BlockReduceAlgorithm) + * -# cub::BLOCK_REDUCE_WARP_REDUCTIONS. A quick "tiled warp-reductions" reduction algorithm that supports commutative and non-commutative reduction operators. [More...](\ref cub::BlockReduceAlgorithm) + * + * \par Performance Considerations + * - \granularity + * - Very efficient (only one synchronization barrier). + * - Incurs zero bank conflicts for most types + * - Computation is slightly more efficient (i.e., having lower instruction overhead) for: + * - Summation (vs. generic reduction) + * - \p BLOCK_THREADS is a multiple of the architecture's warp size + * - Every thread has a valid input (i.e., full vs. partial-tiles) + * - See cub::BlockReduceAlgorithm for performance details regarding algorithmic alternatives + * + * \par A Simple Example + * \blockcollective{BlockReduce} + * \par + * The code snippet below illustrates a sum reduction of 512 integer items that + * are partitioned in a [blocked arrangement](index.html#sec5sec3) across 128 threads + * where each thread owns 4 consecutive items. + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(...) + * { + * // Specialize BlockReduce for a 1D block of 128 threads of type int + * typedef cub::BlockReduce BlockReduce; + * + * // Allocate shared memory for BlockReduce + * __shared__ typename BlockReduce::TempStorage temp_storage; + * + * // Obtain a segment of consecutive items that are blocked across threads + * int thread_data[4]; + * ... + * + * // Compute the block-wide sum for thread0 + * int aggregate = BlockReduce(temp_storage).Sum(thread_data); + * + * \endcode + * + * \par Re-using dynamically allocating shared memory + * The following example under the examples/block folder illustrates usage of + * dynamically shared memory with BlockReduce and how to re-purpose + * the same memory region: + * example_block_reduce_dyn_smem.cu + */ +template < + typename T, + int BLOCK_DIM_X, + BlockReduceAlgorithm ALGORITHM = BLOCK_REDUCE_WARP_REDUCTIONS, + int BLOCK_DIM_Y = 1, + int BLOCK_DIM_Z = 1, + int LEGACY_PTX_ARCH = 0> +class BlockReduce +{ +private: + + /****************************************************************************** + * Constants and type definitions + ******************************************************************************/ + + /// Constants + enum + { + /// The thread block size in threads + BLOCK_THREADS = BLOCK_DIM_X * BLOCK_DIM_Y * BLOCK_DIM_Z, + }; + + typedef BlockReduceWarpReductions WarpReductions; + typedef BlockReduceRakingCommutativeOnly RakingCommutativeOnly; + typedef BlockReduceRaking Raking; + + /// Internal specialization type + using InternalBlockReduce = cub::detail::conditional_t< + ALGORITHM == BLOCK_REDUCE_WARP_REDUCTIONS, + WarpReductions, + cub::detail::conditional_t>; // BlockReduceRaking + + /// Shared memory storage layout type for BlockReduce + typedef typename InternalBlockReduce::TempStorage _TempStorage; + + + /****************************************************************************** + * Utility methods + ******************************************************************************/ + + /// Internal storage allocator + __device__ __forceinline__ _TempStorage& PrivateStorage() + { + __shared__ _TempStorage private_storage; + return private_storage; + } + + + /****************************************************************************** + * Thread fields + ******************************************************************************/ + + /// Shared storage reference + _TempStorage &temp_storage; + + /// Linear thread-id + unsigned int linear_tid; + + +public: + + /// \smemstorage{BlockReduce} + struct TempStorage : Uninitialized<_TempStorage> {}; + + + /******************************************************************//** + * \name Collective constructors + *********************************************************************/ + //@{ + + /** + * \brief Collective constructor using a private static allocation of shared memory as temporary storage. + */ + __device__ __forceinline__ BlockReduce() + : + temp_storage(PrivateStorage()), + linear_tid(RowMajorTid(BLOCK_DIM_X, BLOCK_DIM_Y, BLOCK_DIM_Z)) + {} + + + /** + * \brief Collective constructor using the specified memory allocation as temporary storage. + */ + __device__ __forceinline__ BlockReduce( + TempStorage &temp_storage) ///< [in] Reference to memory allocation having layout type TempStorage + : + temp_storage(temp_storage.Alias()), + linear_tid(RowMajorTid(BLOCK_DIM_X, BLOCK_DIM_Y, BLOCK_DIM_Z)) + {} + + + //@} end member group + /******************************************************************//** + * \name Generic reductions + *********************************************************************/ + //@{ + + + /** + * \brief Computes a block-wide reduction for thread0 using the specified binary reduction functor. Each thread contributes one input element. + * + * \par + * - The return value is undefined in threads other than thread0. + * - \rowmajor + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates a max reduction of 128 integer items that + * are partitioned across 128 threads. + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(...) + * { + * // Specialize BlockReduce for a 1D block of 128 threads of type int + * typedef cub::BlockReduce BlockReduce; + * + * // Allocate shared memory for BlockReduce + * __shared__ typename BlockReduce::TempStorage temp_storage; + * + * // Each thread obtains an input item + * int thread_data; + * ... + * + * // Compute the block-wide max for thread0 + * int aggregate = BlockReduce(temp_storage).Reduce(thread_data, cub::Max()); + * + * \endcode + * + * \tparam ReductionOp [inferred] Binary reduction functor type having member T operator()(const T &a, const T &b) + */ + template + __device__ __forceinline__ T Reduce( + T input, ///< [in] Calling thread's input + ReductionOp reduction_op) ///< [in] Binary reduction functor + { + return InternalBlockReduce(temp_storage).template Reduce(input, BLOCK_THREADS, reduction_op); + } + + + /** + * \brief Computes a block-wide reduction for thread0 using the specified binary reduction functor. Each thread contributes an array of consecutive input elements. + * + * \par + * - The return value is undefined in threads other than thread0. + * - \granularity + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates a max reduction of 512 integer items that + * are partitioned in a [blocked arrangement](index.html#sec5sec3) across 128 threads + * where each thread owns 4 consecutive items. + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(...) + * { + * // Specialize BlockReduce for a 1D block of 128 threads of type int + * typedef cub::BlockReduce BlockReduce; + * + * // Allocate shared memory for BlockReduce + * __shared__ typename BlockReduce::TempStorage temp_storage; + * + * // Obtain a segment of consecutive items that are blocked across threads + * int thread_data[4]; + * ... + * + * // Compute the block-wide max for thread0 + * int aggregate = BlockReduce(temp_storage).Reduce(thread_data, cub::Max()); + * + * \endcode + * + * \tparam ITEMS_PER_THREAD [inferred] The number of consecutive items partitioned onto each thread. + * \tparam ReductionOp [inferred] Binary reduction functor type having member T operator()(const T &a, const T &b) + */ + template < + int ITEMS_PER_THREAD, + typename ReductionOp> + __device__ __forceinline__ T Reduce( + T (&inputs)[ITEMS_PER_THREAD], ///< [in] Calling thread's input segment + ReductionOp reduction_op) ///< [in] Binary reduction functor + { + // Reduce partials + T partial = internal::ThreadReduce(inputs, reduction_op); + return Reduce(partial, reduction_op); + } + + + /** + * \brief Computes a block-wide reduction for thread0 using the specified binary reduction functor. The first \p num_valid threads each contribute one input element. + * + * \par + * - The return value is undefined in threads other than thread0. + * - \rowmajor + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates a max reduction of a partially-full tile of integer items that + * are partitioned across 128 threads. + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(int num_valid, ...) + * { + * // Specialize BlockReduce for a 1D block of 128 threads of type int + * typedef cub::BlockReduce BlockReduce; + * + * // Allocate shared memory for BlockReduce + * __shared__ typename BlockReduce::TempStorage temp_storage; + * + * // Each thread obtains an input item + * int thread_data; + * if (threadIdx.x < num_valid) thread_data = ... + * + * // Compute the block-wide max for thread0 + * int aggregate = BlockReduce(temp_storage).Reduce(thread_data, cub::Max(), num_valid); + * + * \endcode + * + * \tparam ReductionOp [inferred] Binary reduction functor type having member T operator()(const T &a, const T &b) + */ + template + __device__ __forceinline__ T Reduce( + T input, ///< [in] Calling thread's input + ReductionOp reduction_op, ///< [in] Binary reduction functor + int num_valid) ///< [in] Number of threads containing valid elements (may be less than BLOCK_THREADS) + { + // Determine if we scan skip bounds checking + if (num_valid >= BLOCK_THREADS) + { + return InternalBlockReduce(temp_storage).template Reduce(input, num_valid, reduction_op); + } + else + { + return InternalBlockReduce(temp_storage).template Reduce(input, num_valid, reduction_op); + } + } + + + //@} end member group + /******************************************************************//** + * \name Summation reductions + *********************************************************************/ + //@{ + + + /** + * \brief Computes a block-wide reduction for thread0 using addition (+) as the reduction operator. Each thread contributes one input element. + * + * \par + * - The return value is undefined in threads other than thread0. + * - \rowmajor + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates a sum reduction of 128 integer items that + * are partitioned across 128 threads. + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(...) + * { + * // Specialize BlockReduce for a 1D block of 128 threads of type int + * typedef cub::BlockReduce BlockReduce; + * + * // Allocate shared memory for BlockReduce + * __shared__ typename BlockReduce::TempStorage temp_storage; + * + * // Each thread obtains an input item + * int thread_data; + * ... + * + * // Compute the block-wide sum for thread0 + * int aggregate = BlockReduce(temp_storage).Sum(thread_data); + * + * \endcode + * + */ + __device__ __forceinline__ T Sum( + T input) ///< [in] Calling thread's input + { + return InternalBlockReduce(temp_storage).template Sum(input, BLOCK_THREADS); + } + + /** + * \brief Computes a block-wide reduction for thread0 using addition (+) as the reduction operator. Each thread contributes an array of consecutive input elements. + * + * \par + * - The return value is undefined in threads other than thread0. + * - \granularity + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates a sum reduction of 512 integer items that + * are partitioned in a [blocked arrangement](index.html#sec5sec3) across 128 threads + * where each thread owns 4 consecutive items. + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(...) + * { + * // Specialize BlockReduce for a 1D block of 128 threads of type int + * typedef cub::BlockReduce BlockReduce; + * + * // Allocate shared memory for BlockReduce + * __shared__ typename BlockReduce::TempStorage temp_storage; + * + * // Obtain a segment of consecutive items that are blocked across threads + * int thread_data[4]; + * ... + * + * // Compute the block-wide sum for thread0 + * int aggregate = BlockReduce(temp_storage).Sum(thread_data); + * + * \endcode + * + * \tparam ITEMS_PER_THREAD [inferred] The number of consecutive items partitioned onto each thread. + */ + template + __device__ __forceinline__ T Sum( + T (&inputs)[ITEMS_PER_THREAD]) ///< [in] Calling thread's input segment + { + // Reduce partials + T partial = internal::ThreadReduce(inputs, cub::Sum()); + return Sum(partial); + } + + + /** + * \brief Computes a block-wide reduction for thread0 using addition (+) as the reduction operator. The first \p num_valid threads each contribute one input element. + * + * \par + * - The return value is undefined in threads other than thread0. + * - \rowmajor + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates a sum reduction of a partially-full tile of integer items that + * are partitioned across 128 threads. + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(int num_valid, ...) + * { + * // Specialize BlockReduce for a 1D block of 128 threads of type int + * typedef cub::BlockReduce BlockReduce; + * + * // Allocate shared memory for BlockReduce + * __shared__ typename BlockReduce::TempStorage temp_storage; + * + * // Each thread obtains an input item (up to num_items) + * int thread_data; + * if (threadIdx.x < num_valid) + * thread_data = ... + * + * // Compute the block-wide sum for thread0 + * int aggregate = BlockReduce(temp_storage).Sum(thread_data, num_valid); + * + * \endcode + * + */ + __device__ __forceinline__ T Sum( + T input, ///< [in] Calling thread's input + int num_valid) ///< [in] Number of threads containing valid elements (may be less than BLOCK_THREADS) + { + // Determine if we scan skip bounds checking + if (num_valid >= BLOCK_THREADS) + { + return InternalBlockReduce(temp_storage).template Sum(input, num_valid); + } + else + { + return InternalBlockReduce(temp_storage).template Sum(input, num_valid); + } + } + + + //@} end member group +}; + +/** + * \example example_block_reduce.cu + */ + +CUB_NAMESPACE_END + diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/block/block_run_length_decode.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/block/block_run_length_decode.cuh new file mode 100644 index 0000000000000000000000000000000000000000..41a3ab22b156dc57986889ac92196ce7157d3c20 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/block/block_run_length_decode.cuh @@ -0,0 +1,392 @@ +/****************************************************************************** + * Copyright (c) 2011-2021, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + *AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + *IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +#pragma once + +#include "../config.cuh" +#include "../thread/thread_search.cuh" +#include "../util_math.cuh" +#include "../util_namespace.cuh" +#include "../util_ptx.cuh" +#include "../util_type.cuh" +#include "block_scan.cuh" +#include +#include + +CUB_NAMESPACE_BEGIN + +/** + * \brief The BlockRunLengthDecode class supports decoding a run-length encoded array of items. That is, given + * the two arrays run_value[N] and run_lengths[N], run_value[i] is repeated run_lengths[i] many times in the output + * array. + * Due to the nature of the run-length decoding algorithm ("decompression"), the output size of the run-length decoded + * array is runtime-dependent and potentially without any upper bound. To address this, BlockRunLengthDecode allows + * retrieving a "window" from the run-length decoded array. The window's offset can be specified and BLOCK_THREADS * + * DECODED_ITEMS_PER_THREAD (i.e., referred to as window_size) decoded items from the specified window will be returned. + * + * \note: Trailing runs of length 0 are supported (i.e., they may only appear at the end of the run_lengths array). + * A run of length zero may not be followed by a run length that is not zero. + * + * \par + * \code + * __global__ void ExampleKernel(...) + * { + * // Specialising BlockRunLengthDecode to run-length decode items of type uint64_t + * using RunItemT = uint64_t; + * // Type large enough to index into the run-length decoded array + * using RunLengthT = uint32_t; + * + * // Specialising BlockRunLengthDecode for a 1D block of 128 threads + * constexpr int BLOCK_DIM_X = 128; + * // Specialising BlockRunLengthDecode to have each thread contribute 2 run-length encoded runs + * constexpr int RUNS_PER_THREAD = 2; + * // Specialising BlockRunLengthDecode to have each thread hold 4 run-length decoded items + * constexpr int DECODED_ITEMS_PER_THREAD = 4; + * + * // Specialize BlockRadixSort for a 1D block of 128 threads owning 4 integer items each + * using BlockRunLengthDecodeT = + * cub::BlockRunLengthDecode; + * + * // Allocate shared memory for BlockRunLengthDecode + * __shared__ typename BlockRunLengthDecodeT::TempStorage temp_storage; + * + * // The run-length encoded items and how often they shall be repeated in the run-length decoded output + * RunItemT run_values[RUNS_PER_THREAD]; + * RunLengthT run_lengths[RUNS_PER_THREAD]; + * ... + * + * // Initialize the BlockRunLengthDecode with the runs that we want to run-length decode + * uint32_t total_decoded_size = 0; + * BlockRunLengthDecodeT block_rld(temp_storage, run_values, run_lengths, total_decoded_size); + * + * // Run-length decode ("decompress") the runs into a window buffer of limited size. This is repeated until all runs + * // have been decoded. + * uint32_t decoded_window_offset = 0U; + * while (decoded_window_offset < total_decoded_size) + * { + * RunLengthT relative_offsets[DECODED_ITEMS_PER_THREAD]; + * RunItemT decoded_items[DECODED_ITEMS_PER_THREAD]; + * + * // The number of decoded items that are valid within this window (aka pass) of run-length decoding + * uint32_t num_valid_items = total_decoded_size - decoded_window_offset; + * block_rld.RunLengthDecode(decoded_items, relative_offsets, decoded_window_offset); + * + * decoded_window_offset += BLOCK_DIM_X * DECODED_ITEMS_PER_THREAD; + * + * ... + * } + * } + * \endcode + * \par + * Suppose the set of input \p run_values across the block of threads is + * { [0, 1], [2, 3], [4, 5], [6, 7], ..., [254, 255] } and + * \p run_lengths is { [1, 2], [3, 4], [5, 1], [2, 3], ..., [5, 1] }. + * The corresponding output \p decoded_items in those threads will be { [0, 1, 1, 2], [2, 2, 3, 3], [3, 3, 4, 4], + * [4, 4, 4, 5], ..., [169, 169, 170, 171] } and \p relative_offsets will be { [0, 0, 1, 0], [1, 2, 0, 1], [2, + * 3, 0, 1], [2, 3, 4, 0], ..., [3, 4, 0, 0] } during the first iteration of the while loop. + * + * \tparam ItemT The data type of the items being run-length decoded + * \tparam BLOCK_DIM_X The thread block length in threads along the X dimension + * \tparam RUNS_PER_THREAD The number of consecutive runs that each thread contributes + * \tparam DECODED_ITEMS_PER_THREAD The maximum number of decoded items that each thread holds + * \tparam DecodedOffsetT Type used to index into the block's decoded items (large enough to hold the sum over all the + * runs' lengths) + * \tparam BLOCK_DIM_Y The thread block length in threads along the Y dimension + * \tparam BLOCK_DIM_Z The thread block length in threads along the Z dimension + */ +template +class BlockRunLengthDecode +{ + //--------------------------------------------------------------------- + // CONFIGS & TYPE ALIASES + //--------------------------------------------------------------------- +private: + /// The thread block size in threads + static constexpr int BLOCK_THREADS = BLOCK_DIM_X * BLOCK_DIM_Y * BLOCK_DIM_Z; + + /// The number of runs that the block decodes (out-of-bounds items may be padded with run lengths of '0') + static constexpr int BLOCK_RUNS = BLOCK_THREADS * RUNS_PER_THREAD; + + /// BlockScan used to determine the beginning of each run (i.e., prefix sum over the runs' length) + using RunOffsetScanT = BlockScan; + + /// Type used to index into the block's runs + using RunOffsetT = uint32_t; + + /// Shared memory type required by this thread block + union _TempStorage + { + typename RunOffsetScanT::TempStorage offset_scan; + struct + { + ItemT run_values[BLOCK_RUNS]; + DecodedOffsetT run_offsets[BLOCK_RUNS]; + } runs; + }; // union TempStorage + + /// Internal storage allocator (used when the user does not provide pre-allocated shared memory) + __device__ __forceinline__ _TempStorage &PrivateStorage() + { + __shared__ _TempStorage private_storage; + return private_storage; + } + + /// Shared storage reference + _TempStorage &temp_storage; + + /// Linear thread-id + uint32_t linear_tid; + +public: + struct TempStorage : Uninitialized<_TempStorage> + {}; + + //--------------------------------------------------------------------- + // CONSTRUCTOR + //--------------------------------------------------------------------- + + /** + * \brief Constructor specialised for user-provided temporary storage, initializing using the runs' lengths. The + * algorithm's temporary storage may not be repurposed between the constructor call and subsequent + * RunLengthDecode calls. + */ + template + __device__ __forceinline__ BlockRunLengthDecode(TempStorage &temp_storage, + ItemT (&run_values)[RUNS_PER_THREAD], + RunLengthT (&run_lengths)[RUNS_PER_THREAD], + TotalDecodedSizeT &total_decoded_size) + : temp_storage(temp_storage.Alias()) + , linear_tid(RowMajorTid(BLOCK_DIM_X, BLOCK_DIM_Y, BLOCK_DIM_Z)) + { + InitWithRunLengths(run_values, run_lengths, total_decoded_size); + } + + /** + * \brief Constructor specialised for user-provided temporary storage, initializing using the runs' offsets. The + * algorithm's temporary storage may not be repurposed between the constructor call and subsequent + * RunLengthDecode calls. + */ + template + __device__ __forceinline__ BlockRunLengthDecode(TempStorage &temp_storage, + ItemT (&run_values)[RUNS_PER_THREAD], + UserRunOffsetT (&run_offsets)[RUNS_PER_THREAD]) + : temp_storage(temp_storage.Alias()) + , linear_tid(RowMajorTid(BLOCK_DIM_X, BLOCK_DIM_Y, BLOCK_DIM_Z)) + { + InitWithRunOffsets(run_values, run_offsets); + } + + /** + * \brief Constructor specialised for static temporary storage, initializing using the runs' lengths. + */ + template + __device__ __forceinline__ BlockRunLengthDecode(ItemT (&run_values)[RUNS_PER_THREAD], + RunLengthT (&run_lengths)[RUNS_PER_THREAD], + TotalDecodedSizeT &total_decoded_size) + : temp_storage(PrivateStorage()) + , linear_tid(RowMajorTid(BLOCK_DIM_X, BLOCK_DIM_Y, BLOCK_DIM_Z)) + { + InitWithRunLengths(run_values, run_lengths, total_decoded_size); + } + + /** + * \brief Constructor specialised for static temporary storage, initializing using the runs' offsets. + */ + template + __device__ __forceinline__ BlockRunLengthDecode(ItemT (&run_values)[RUNS_PER_THREAD], + UserRunOffsetT (&run_offsets)[RUNS_PER_THREAD]) + : temp_storage(PrivateStorage()) + , linear_tid(RowMajorTid(BLOCK_DIM_X, BLOCK_DIM_Y, BLOCK_DIM_Z)) + { + InitWithRunOffsets(run_values, run_offsets); + } + +private: + /** + * \brief Returns the offset of the first value within \p input which compares greater than \p val. This version takes + * \p MAX_NUM_ITEMS, an upper bound of the array size, which will be used to determine the number of binary search + * iterations at compile time. + */ + template + __device__ __forceinline__ OffsetT StaticUpperBound(InputIteratorT input, ///< [in] Input sequence + OffsetT num_items, ///< [in] Input sequence length + T val) ///< [in] Search key + { + OffsetT lower_bound = 0; + OffsetT upper_bound = num_items; +#pragma unroll + for (int i = 0; i <= Log2::VALUE; i++) + { + OffsetT mid = cub::MidPoint(lower_bound, upper_bound); + mid = (cub::min)(mid, num_items - 1); + + if (val < input[mid]) + { + upper_bound = mid; + } + else + { + lower_bound = mid + 1; + } + } + + return lower_bound; + } + + template + __device__ __forceinline__ void InitWithRunOffsets(ItemT (&run_values)[RUNS_PER_THREAD], + RunOffsetT (&run_offsets)[RUNS_PER_THREAD]) + { + // Keep the runs' items and the offsets of each run's beginning in the temporary storage + RunOffsetT thread_dst_offset = static_cast(linear_tid) * static_cast(RUNS_PER_THREAD); +#pragma unroll + for (int i = 0; i < RUNS_PER_THREAD; i++) + { + temp_storage.runs.run_values[thread_dst_offset] = run_values[i]; + temp_storage.runs.run_offsets[thread_dst_offset] = run_offsets[i]; + thread_dst_offset++; + } + + // Ensure run offsets and run values have been writen to shared memory + CTA_SYNC(); + } + + template + __device__ __forceinline__ void InitWithRunLengths(ItemT (&run_values)[RUNS_PER_THREAD], + RunLengthT (&run_lengths)[RUNS_PER_THREAD], + TotalDecodedSizeT &total_decoded_size) + { + // Compute the offset for the beginning of each run + DecodedOffsetT run_offsets[RUNS_PER_THREAD]; +#pragma unroll + for (int i = 0; i < RUNS_PER_THREAD; i++) + { + run_offsets[i] = static_cast(run_lengths[i]); + } + DecodedOffsetT decoded_size_aggregate; + RunOffsetScanT(this->temp_storage.offset_scan).ExclusiveSum(run_offsets, run_offsets, decoded_size_aggregate); + total_decoded_size = static_cast(decoded_size_aggregate); + + // Ensure the prefix scan's temporary storage can be reused (may be superfluous, but depends on scan implementation) + CTA_SYNC(); + + InitWithRunOffsets(run_values, run_offsets); + } + +public: + /** + * \brief Run-length decodes the runs previously passed via a call to Init(...) and returns the run-length decoded + * items in a blocked arrangement to \p decoded_items. If the number of run-length decoded items exceeds the + * run-length decode buffer (i.e., DECODED_ITEMS_PER_THREAD * BLOCK_THREADS), only the items that fit within + * the buffer are returned. Subsequent calls to RunLengthDecode adjusting \p from_decoded_offset can be + * used to retrieve the remaining run-length decoded items. Calling __syncthreads() between any two calls to + * RunLengthDecode is not required. + * \p item_offsets can be used to retrieve each run-length decoded item's relative index within its run. E.g., the + * run-length encoded array of `3, 1, 4` with the respective run lengths of `2, 1, 3` would yield the run-length + * decoded array of `3, 3, 1, 4, 4, 4` with the relative offsets of `0, 1, 0, 0, 1, 2`. + * \smemreuse + * + * \param[out] decoded_items The run-length decoded items to be returned in a blocked arrangement + * \param[out] item_offsets The run-length decoded items' relative offset within the run they belong to + * \param[in] from_decoded_offset If invoked with from_decoded_offset that is larger than total_decoded_size results + * in undefined behavior. + */ + template + __device__ __forceinline__ void RunLengthDecode(ItemT (&decoded_items)[DECODED_ITEMS_PER_THREAD], + RelativeOffsetT (&item_offsets)[DECODED_ITEMS_PER_THREAD], + DecodedOffsetT from_decoded_offset = 0) + { + // The (global) offset of the first item decoded by this thread + DecodedOffsetT thread_decoded_offset = from_decoded_offset + linear_tid * DECODED_ITEMS_PER_THREAD; + + // The run that the first decoded item of this thread belongs to + // If this thread's is already beyond the total decoded size, it will be assigned to the + // last run + RunOffsetT assigned_run = + StaticUpperBound(temp_storage.runs.run_offsets, BLOCK_RUNS, thread_decoded_offset) - + static_cast(1U); + + DecodedOffsetT assigned_run_begin = temp_storage.runs.run_offsets[assigned_run]; + + // If this thread is getting assigned the last run, we make sure it will not fetch any other run after this + DecodedOffsetT assigned_run_end = (assigned_run == BLOCK_RUNS - 1) + ? thread_decoded_offset + DECODED_ITEMS_PER_THREAD + : temp_storage.runs.run_offsets[assigned_run + 1]; + + ItemT val = temp_storage.runs.run_values[assigned_run]; + +#pragma unroll + for (DecodedOffsetT i = 0; i < DECODED_ITEMS_PER_THREAD; i++) + { + decoded_items[i] = val; + item_offsets[i] = thread_decoded_offset - assigned_run_begin; + if (thread_decoded_offset == assigned_run_end - 1) + { + // We make sure that a thread is not re-entering this conditional when being assigned to the last run already by + // extending the last run's length to all the thread's item + assigned_run++; + assigned_run_begin = temp_storage.runs.run_offsets[assigned_run]; + + // If this thread is getting assigned the last run, we make sure it will not fetch any other run after this + assigned_run_end = (assigned_run == BLOCK_RUNS - 1) ? thread_decoded_offset + DECODED_ITEMS_PER_THREAD + : temp_storage.runs.run_offsets[assigned_run + 1]; + val = temp_storage.runs.run_values[assigned_run]; + } + thread_decoded_offset++; + } + } + + /** + * \brief Run-length decodes the runs previously passed via a call to Init(...) and returns the run-length decoded + * items in a blocked arrangement to \p decoded_items. If the number of run-length decoded items exceeds the + * run-length decode buffer (i.e., DECODED_ITEMS_PER_THREAD * BLOCK_THREADS), only the items that fit within + * the buffer are returned. Subsequent calls to RunLengthDecode adjusting \p from_decoded_offset can be + * used to retrieve the remaining run-length decoded items. Calling __syncthreads() between any two calls to + * RunLengthDecode is not required. + * + * \param[out] decoded_items The run-length decoded items to be returned in a blocked arrangement + * \param[in] from_decoded_offset If invoked with from_decoded_offset that is larger than total_decoded_size results + * in undefined behavior. + */ + __device__ __forceinline__ void RunLengthDecode(ItemT (&decoded_items)[DECODED_ITEMS_PER_THREAD], + DecodedOffsetT from_decoded_offset = 0) + { + DecodedOffsetT item_offsets[DECODED_ITEMS_PER_THREAD]; + RunLengthDecode(decoded_items, item_offsets, from_decoded_offset); + } +}; + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/block/block_scan.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/block/block_scan.cuh new file mode 100644 index 0000000000000000000000000000000000000000..d1b6a66e984c5557fcf7a5d9e28d457a562cdca3 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/block/block_scan.cuh @@ -0,0 +1,2131 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * The cub::BlockScan class provides [collective](index.html#sec0) methods for computing a parallel prefix sum/scan of items partitioned across a CUDA thread block. + */ + +#pragma once + +#include "specializations/block_scan_raking.cuh" +#include "specializations/block_scan_warp_scans.cuh" +#include "../config.cuh" +#include "../util_type.cuh" +#include "../util_ptx.cuh" + +CUB_NAMESPACE_BEGIN + + +/****************************************************************************** + * Algorithmic variants + ******************************************************************************/ + +/** + * \brief BlockScanAlgorithm enumerates alternative algorithms for cub::BlockScan to compute a parallel prefix scan across a CUDA thread block. + */ +enum BlockScanAlgorithm +{ + + /** + * \par Overview + * An efficient "raking reduce-then-scan" prefix scan algorithm. Execution is comprised of five phases: + * -# Upsweep sequential reduction in registers (if threads contribute more than one input each). Each thread then places the partial reduction of its item(s) into shared memory. + * -# Upsweep sequential reduction in shared memory. Threads within a single warp rake across segments of shared partial reductions. + * -# A warp-synchronous Kogge-Stone style exclusive scan within the raking warp. + * -# Downsweep sequential exclusive scan in shared memory. Threads within a single warp rake across segments of shared partial reductions, seeded with the warp-scan output. + * -# Downsweep sequential scan in registers (if threads contribute more than one input), seeded with the raking scan output. + * + * \par + * \image html block_scan_raking.png + *
\p BLOCK_SCAN_RAKING data flow for a hypothetical 16-thread thread block and 4-thread raking warp.
+ * + * \par Performance Considerations + * - Although this variant may suffer longer turnaround latencies when the + * GPU is under-occupied, it can often provide higher overall throughput + * across the GPU when suitably occupied. + */ + BLOCK_SCAN_RAKING, + + + /** + * \par Overview + * Similar to cub::BLOCK_SCAN_RAKING, but with fewer shared memory reads at + * the expense of higher register pressure. Raking threads preserve their + * "upsweep" segment of values in registers while performing warp-synchronous + * scan, allowing the "downsweep" not to re-read them from shared memory. + */ + BLOCK_SCAN_RAKING_MEMOIZE, + + + /** + * \par Overview + * A quick "tiled warpscans" prefix scan algorithm. Execution is comprised of four phases: + * -# Upsweep sequential reduction in registers (if threads contribute more than one input each). Each thread then places the partial reduction of its item(s) into shared memory. + * -# Compute a shallow, but inefficient warp-synchronous Kogge-Stone style scan within each warp. + * -# A propagation phase where the warp scan outputs in each warp are updated with the aggregate from each preceding warp. + * -# Downsweep sequential scan in registers (if threads contribute more than one input), seeded with the raking scan output. + * + * \par + * \image html block_scan_warpscans.png + *
\p BLOCK_SCAN_WARP_SCANS data flow for a hypothetical 16-thread thread block and 4-thread raking warp.
+ * + * \par Performance Considerations + * - Although this variant may suffer lower overall throughput across the + * GPU because due to a heavy reliance on inefficient warpscans, it can + * often provide lower turnaround latencies when the GPU is under-occupied. + */ + BLOCK_SCAN_WARP_SCANS, +}; + + +/****************************************************************************** + * Block scan + ******************************************************************************/ + +/** + * \brief The BlockScan class provides [collective](index.html#sec0) methods for computing a parallel prefix sum/scan of items partitioned across a CUDA thread block. ![](block_scan_logo.png) + * \ingroup BlockModule + * + * \tparam T Data type being scanned + * \tparam BLOCK_DIM_X The thread block length in threads along the X dimension + * \tparam ALGORITHM [optional] cub::BlockScanAlgorithm enumerator specifying the underlying algorithm to use (default: cub::BLOCK_SCAN_RAKING) + * \tparam BLOCK_DIM_Y [optional] The thread block length in threads along the Y dimension (default: 1) + * \tparam BLOCK_DIM_Z [optional] The thread block length in threads along the Z dimension (default: 1) + * \tparam LEGACY_PTX_ARCH [optional] Unused. + * + * \par Overview + * - Given a list of input elements and a binary reduction operator, a [prefix scan](http://en.wikipedia.org/wiki/Prefix_sum) + * produces an output list where each element is computed to be the reduction + * of the elements occurring earlier in the input list. Prefix sum + * connotes a prefix scan with the addition operator. The term \em inclusive indicates + * that the ith output reduction incorporates the ith input. + * The term \em exclusive indicates the ith input is not incorporated into + * the ith output reduction. + * - \rowmajor + * - BlockScan can be optionally specialized by algorithm to accommodate different workload profiles: + * -# cub::BLOCK_SCAN_RAKING. An efficient (high throughput) "raking reduce-then-scan" prefix scan algorithm. [More...](\ref cub::BlockScanAlgorithm) + * -# cub::BLOCK_SCAN_RAKING_MEMOIZE. Similar to cub::BLOCK_SCAN_RAKING, but having higher throughput at the expense of additional register pressure for intermediate storage. [More...](\ref cub::BlockScanAlgorithm) + * -# cub::BLOCK_SCAN_WARP_SCANS. A quick (low latency) "tiled warpscans" prefix scan algorithm. [More...](\ref cub::BlockScanAlgorithm) + * + * \par Performance Considerations + * - \granularity + * - Uses special instructions when applicable (e.g., warp \p SHFL) + * - Uses synchronization-free communication between warp lanes when applicable + * - Invokes a minimal number of minimal block-wide synchronization barriers (only + * one or two depending on algorithm selection) + * - Incurs zero bank conflicts for most types + * - Computation is slightly more efficient (i.e., having lower instruction overhead) for: + * - Prefix sum variants (vs. generic scan) + * - \blocksize + * - See cub::BlockScanAlgorithm for performance details regarding algorithmic alternatives + * + * \par A Simple Example + * \blockcollective{BlockScan} + * \par + * The code snippet below illustrates an exclusive prefix sum of 512 integer items that + * are partitioned in a [blocked arrangement](index.html#sec5sec3) across 128 threads + * where each thread owns 4 consecutive items. + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(...) + * { + * // Specialize BlockScan for a 1D block of 128 threads of type int + * typedef cub::BlockScan BlockScan; + * + * // Allocate shared memory for BlockScan + * __shared__ typename BlockScan::TempStorage temp_storage; + * + * // Obtain a segment of consecutive items that are blocked across threads + * int thread_data[4]; + * ... + * + * // Collectively compute the block-wide exclusive prefix sum + * BlockScan(temp_storage).ExclusiveSum(thread_data, thread_data); + * + * \endcode + * \par + * Suppose the set of input \p thread_data across the block of threads is + * {[1,1,1,1], [1,1,1,1], ..., [1,1,1,1]}. + * The corresponding output \p thread_data in those threads will be + * {[0,1,2,3], [4,5,6,7], ..., [508,509,510,511]}. + * + * \par Re-using dynamically allocating shared memory + * The following example under the examples/block folder illustrates usage of + * dynamically shared memory with BlockReduce and how to re-purpose + * the same memory region: + * example_block_reduce_dyn_smem.cu + * + * This example can be easily adapted to the storage required by BlockScan. + */ +template < + typename T, + int BLOCK_DIM_X, + BlockScanAlgorithm ALGORITHM = BLOCK_SCAN_RAKING, + int BLOCK_DIM_Y = 1, + int BLOCK_DIM_Z = 1, + int LEGACY_PTX_ARCH = 0> +class BlockScan +{ +private: + + /****************************************************************************** + * Constants and type definitions + ******************************************************************************/ + + /// Constants + enum + { + /// The thread block size in threads + BLOCK_THREADS = BLOCK_DIM_X * BLOCK_DIM_Y * BLOCK_DIM_Z, + }; + + /** + * Ensure the template parameterization meets the requirements of the + * specified algorithm. Currently, the BLOCK_SCAN_WARP_SCANS policy + * cannot be used with thread block sizes not a multiple of the + * architectural warp size. + */ + static const BlockScanAlgorithm SAFE_ALGORITHM = + ((ALGORITHM == BLOCK_SCAN_WARP_SCANS) && (BLOCK_THREADS % CUB_WARP_THREADS(0) != 0)) ? + BLOCK_SCAN_RAKING : + ALGORITHM; + + typedef BlockScanWarpScans WarpScans; + typedef BlockScanRaking Raking; + + /// Define the delegate type for the desired algorithm + using InternalBlockScan = + cub::detail::conditional_t< + SAFE_ALGORITHM == BLOCK_SCAN_WARP_SCANS, WarpScans, Raking>; + + /// Shared memory storage layout type for BlockScan + typedef typename InternalBlockScan::TempStorage _TempStorage; + + + /****************************************************************************** + * Thread fields + ******************************************************************************/ + + /// Shared storage reference + _TempStorage &temp_storage; + + /// Linear thread-id + unsigned int linear_tid; + + + /****************************************************************************** + * Utility methods + ******************************************************************************/ + + /// Internal storage allocator + __device__ __forceinline__ _TempStorage& PrivateStorage() + { + __shared__ _TempStorage private_storage; + return private_storage; + } + + + /****************************************************************************** + * Public types + ******************************************************************************/ +public: + + /// \smemstorage{BlockScan} + struct TempStorage : Uninitialized<_TempStorage> {}; + + + /******************************************************************//** + * \name Collective constructors + *********************************************************************/ + //@{ + + /** + * \brief Collective constructor using a private static allocation of shared memory as temporary storage. + */ + __device__ __forceinline__ BlockScan() + : + temp_storage(PrivateStorage()), + linear_tid(RowMajorTid(BLOCK_DIM_X, BLOCK_DIM_Y, BLOCK_DIM_Z)) + {} + + + /** + * \brief Collective constructor using the specified memory allocation as temporary storage. + */ + __device__ __forceinline__ BlockScan( + TempStorage &temp_storage) ///< [in] Reference to memory allocation having layout type TempStorage + : + temp_storage(temp_storage.Alias()), + linear_tid(RowMajorTid(BLOCK_DIM_X, BLOCK_DIM_Y, BLOCK_DIM_Z)) + {} + + + + //@} end member group + /******************************************************************//** + * \name Exclusive prefix sum operations + *********************************************************************/ + //@{ + + + /** + * \brief Computes an exclusive block-wide prefix scan using addition (+) as the scan operator. Each thread contributes one input element. The value of 0 is applied as the initial value, and is assigned to \p output in thread0. + * + * \par + * - \identityzero + * - \rowmajor + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates an exclusive prefix sum of 128 integer items that + * are partitioned across 128 threads. + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(...) + * { + * // Specialize BlockScan for a 1D block of 128 threads of type int + * typedef cub::BlockScan BlockScan; + * + * // Allocate shared memory for BlockScan + * __shared__ typename BlockScan::TempStorage temp_storage; + * + * // Obtain input item for each thread + * int thread_data; + * ... + * + * // Collectively compute the block-wide exclusive prefix sum + * BlockScan(temp_storage).ExclusiveSum(thread_data, thread_data); + * + * \endcode + * \par + * Suppose the set of input \p thread_data across the block of threads is 1, 1, ..., 1. The + * corresponding output \p thread_data in those threads will be 0, 1, ..., 127. + * + */ + __device__ __forceinline__ void ExclusiveSum( + T input, ///< [in] Calling thread's input item + T &output) ///< [out] Calling thread's output item (may be aliased to \p input) + { + T initial_value{}; + + ExclusiveScan(input, output, initial_value, cub::Sum()); + } + + + /** + * \brief Computes an exclusive block-wide prefix scan using addition (+) as the scan operator. Each thread contributes one input element. The value of 0 is applied as the initial value, and is assigned to \p output in thread0. Also provides every thread with the block-wide \p block_aggregate of all inputs. + * + * \par + * - \identityzero + * - \rowmajor + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates an exclusive prefix sum of 128 integer items that + * are partitioned across 128 threads. + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(...) + * { + * // Specialize BlockScan for a 1D block of 128 threads of type int + * typedef cub::BlockScan BlockScan; + * + * // Allocate shared memory for BlockScan + * __shared__ typename BlockScan::TempStorage temp_storage; + * + * // Obtain input item for each thread + * int thread_data; + * ... + * + * // Collectively compute the block-wide exclusive prefix sum + * int block_aggregate; + * BlockScan(temp_storage).ExclusiveSum(thread_data, thread_data, block_aggregate); + * + * \endcode + * \par + * Suppose the set of input \p thread_data across the block of threads is 1, 1, ..., 1. The + * corresponding output \p thread_data in those threads will be 0, 1, ..., 127. + * Furthermore the value \p 128 will be stored in \p block_aggregate for all threads. + * + */ + __device__ __forceinline__ void ExclusiveSum( + T input, ///< [in] Calling thread's input item + T &output, ///< [out] Calling thread's output item (may be aliased to \p input) + T &block_aggregate) ///< [out] block-wide aggregate reduction of input items + { + T initial_value{}; + + ExclusiveScan(input, output, initial_value, cub::Sum(), block_aggregate); + } + + + /** + * \brief Computes an exclusive block-wide prefix scan using addition (+) as the scan operator. Each thread contributes one input element. Instead of using 0 as the block-wide prefix, the call-back functor \p block_prefix_callback_op is invoked by the first warp in the block, and the value returned by lane0 in that warp is used as the "seed" value that logically prefixes the thread block's scan inputs. Also provides every thread with the block-wide \p block_aggregate of all inputs. + * + * \par + * - \identityzero + * - The \p block_prefix_callback_op functor must implement a member function T operator()(T block_aggregate). + * The functor's input parameter \p block_aggregate is the same value also returned by the scan operation. + * The functor will be invoked by the first warp of threads in the block, however only the return value from + * lane0 is applied as the block-wide prefix. Can be stateful. + * - \rowmajor + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates a single thread block that progressively + * computes an exclusive prefix sum over multiple "tiles" of input using a + * prefix functor to maintain a running total between block-wide scans. Each tile consists + * of 128 integer items that are partitioned across 128 threads. + * \par + * \code + * #include // or equivalently + * + * // A stateful callback functor that maintains a running prefix to be applied + * // during consecutive scan operations. + * struct BlockPrefixCallbackOp + * { + * // Running prefix + * int running_total; + * + * // Constructor + * __device__ BlockPrefixCallbackOp(int running_total) : running_total(running_total) {} + * + * // Callback operator to be entered by the first warp of threads in the block. + * // Thread-0 is responsible for returning a value for seeding the block-wide scan. + * __device__ int operator()(int block_aggregate) + * { + * int old_prefix = running_total; + * running_total += block_aggregate; + * return old_prefix; + * } + * }; + * + * __global__ void ExampleKernel(int *d_data, int num_items, ...) + * { + * // Specialize BlockScan for a 1D block of 128 threads + * typedef cub::BlockScan BlockScan; + * + * // Allocate shared memory for BlockScan + * __shared__ typename BlockScan::TempStorage temp_storage; + * + * // Initialize running total + * BlockPrefixCallbackOp prefix_op(0); + * + * // Have the block iterate over segments of items + * for (int block_offset = 0; block_offset < num_items; block_offset += 128) + * { + * // Load a segment of consecutive items that are blocked across threads + * int thread_data = d_data[block_offset]; + * + * // Collectively compute the block-wide exclusive prefix sum + * BlockScan(temp_storage).ExclusiveSum( + * thread_data, thread_data, prefix_op); + * CTA_SYNC(); + * + * // Store scanned items to output segment + * d_data[block_offset] = thread_data; + * } + * \endcode + * \par + * Suppose the input \p d_data is 1, 1, 1, 1, 1, 1, 1, 1, .... + * The corresponding output for the first segment will be 0, 1, ..., 127. + * The output for the second segment will be 128, 129, ..., 255. + * + * \tparam BlockPrefixCallbackOp [inferred] Call-back functor type having member T operator()(T block_aggregate) + */ + template + __device__ __forceinline__ void ExclusiveSum( + T input, ///< [in] Calling thread's input item + T &output, ///< [out] Calling thread's output item (may be aliased to \p input) + BlockPrefixCallbackOp &block_prefix_callback_op) ///< [in-out] [warp0 only] Call-back functor for specifying a block-wide prefix to be applied to the logical input sequence. + { + ExclusiveScan(input, output, cub::Sum(), block_prefix_callback_op); + } + + + //@} end member group + /******************************************************************//** + * \name Exclusive prefix sum operations (multiple data per thread) + *********************************************************************/ + //@{ + + + /** + * \brief Computes an exclusive block-wide prefix scan using addition (+) as the scan operator. Each thread contributes an array of consecutive input elements. The value of 0 is applied as the initial value, and is assigned to \p output[0] in thread0. + * + * \par + * - \identityzero + * - \blocked + * - \granularity + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates an exclusive prefix sum of 512 integer items that + * are partitioned in a [blocked arrangement](index.html#sec5sec3) across 128 threads + * where each thread owns 4 consecutive items. + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(...) + * { + * // Specialize BlockScan for a 1D block of 128 threads of type int + * typedef cub::BlockScan BlockScan; + * + * // Allocate shared memory for BlockScan + * __shared__ typename BlockScan::TempStorage temp_storage; + * + * // Obtain a segment of consecutive items that are blocked across threads + * int thread_data[4]; + * ... + * + * // Collectively compute the block-wide exclusive prefix sum + * BlockScan(temp_storage).ExclusiveSum(thread_data, thread_data); + * + * \endcode + * \par + * Suppose the set of input \p thread_data across the block of threads is { [1,1,1,1], [1,1,1,1], ..., [1,1,1,1] }. The + * corresponding output \p thread_data in those threads will be { [0,1,2,3], [4,5,6,7], ..., [508,509,510,511] }. + * + * \tparam ITEMS_PER_THREAD [inferred] The number of consecutive items partitioned onto each thread. + */ + template + __device__ __forceinline__ void ExclusiveSum( + T (&input)[ITEMS_PER_THREAD], ///< [in] Calling thread's input items + T (&output)[ITEMS_PER_THREAD]) ///< [out] Calling thread's output items (may be aliased to \p input) + { + T initial_value{}; + + ExclusiveScan(input, output, initial_value, cub::Sum()); + } + + + /** + * \brief Computes an exclusive block-wide prefix scan using addition (+) as the scan operator. Each thread contributes an array of consecutive input elements. The value of 0 is applied as the initial value, and is assigned to \p output[0] in thread0. Also provides every thread with the block-wide \p block_aggregate of all inputs. + * + * \par + * - \identityzero + * - \blocked + * - \granularity + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates an exclusive prefix sum of 512 integer items that + * are partitioned in a [blocked arrangement](index.html#sec5sec3) across 128 threads + * where each thread owns 4 consecutive items. + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(...) + * { + * // Specialize BlockScan for a 1D block of 128 threads of type int + * typedef cub::BlockScan BlockScan; + * + * // Allocate shared memory for BlockScan + * __shared__ typename BlockScan::TempStorage temp_storage; + * + * // Obtain a segment of consecutive items that are blocked across threads + * int thread_data[4]; + * ... + * + * // Collectively compute the block-wide exclusive prefix sum + * int block_aggregate; + * BlockScan(temp_storage).ExclusiveSum(thread_data, thread_data, block_aggregate); + * + * \endcode + * \par + * Suppose the set of input \p thread_data across the block of threads is { [1,1,1,1], [1,1,1,1], ..., [1,1,1,1] }. The + * corresponding output \p thread_data in those threads will be { [0,1,2,3], [4,5,6,7], ..., [508,509,510,511] }. + * Furthermore the value \p 512 will be stored in \p block_aggregate for all threads. + * + * \tparam ITEMS_PER_THREAD [inferred] The number of consecutive items partitioned onto each thread. + */ + template + __device__ __forceinline__ void ExclusiveSum( + T (&input)[ITEMS_PER_THREAD], ///< [in] Calling thread's input items + T (&output)[ITEMS_PER_THREAD], ///< [out] Calling thread's output items (may be aliased to \p input) + T &block_aggregate) ///< [out] block-wide aggregate reduction of input items + { + // Reduce consecutive thread items in registers + T initial_value{}; + + ExclusiveScan(input, output, initial_value, cub::Sum(), block_aggregate); + } + + + /** + * \brief Computes an exclusive block-wide prefix scan using addition (+) as the scan operator. Each thread contributes an array of consecutive input elements. Instead of using 0 as the block-wide prefix, the call-back functor \p block_prefix_callback_op is invoked by the first warp in the block, and the value returned by lane0 in that warp is used as the "seed" value that logically prefixes the thread block's scan inputs. Also provides every thread with the block-wide \p block_aggregate of all inputs. + * + * \par + * - \identityzero + * - The \p block_prefix_callback_op functor must implement a member function T operator()(T block_aggregate). + * The functor's input parameter \p block_aggregate is the same value also returned by the scan operation. + * The functor will be invoked by the first warp of threads in the block, however only the return value from + * lane0 is applied as the block-wide prefix. Can be stateful. + * - \blocked + * - \granularity + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates a single thread block that progressively + * computes an exclusive prefix sum over multiple "tiles" of input using a + * prefix functor to maintain a running total between block-wide scans. Each tile consists + * of 512 integer items that are partitioned in a [blocked arrangement](index.html#sec5sec3) + * across 128 threads where each thread owns 4 consecutive items. + * \par + * \code + * #include // or equivalently + * + * // A stateful callback functor that maintains a running prefix to be applied + * // during consecutive scan operations. + * struct BlockPrefixCallbackOp + * { + * // Running prefix + * int running_total; + * + * // Constructor + * __device__ BlockPrefixCallbackOp(int running_total) : running_total(running_total) {} + * + * // Callback operator to be entered by the first warp of threads in the block. + * // Thread-0 is responsible for returning a value for seeding the block-wide scan. + * __device__ int operator()(int block_aggregate) + * { + * int old_prefix = running_total; + * running_total += block_aggregate; + * return old_prefix; + * } + * }; + * + * __global__ void ExampleKernel(int *d_data, int num_items, ...) + * { + * // Specialize BlockLoad, BlockStore, and BlockScan for a 1D block of 128 threads, 4 ints per thread + * typedef cub::BlockLoad BlockLoad; + * typedef cub::BlockStore BlockStore; + * typedef cub::BlockScan BlockScan; + * + * // Allocate aliased shared memory for BlockLoad, BlockStore, and BlockScan + * __shared__ union { + * typename BlockLoad::TempStorage load; + * typename BlockScan::TempStorage scan; + * typename BlockStore::TempStorage store; + * } temp_storage; + * + * // Initialize running total + * BlockPrefixCallbackOp prefix_op(0); + * + * // Have the block iterate over segments of items + * for (int block_offset = 0; block_offset < num_items; block_offset += 128 * 4) + * { + * // Load a segment of consecutive items that are blocked across threads + * int thread_data[4]; + * BlockLoad(temp_storage.load).Load(d_data + block_offset, thread_data); + * CTA_SYNC(); + * + * // Collectively compute the block-wide exclusive prefix sum + * int block_aggregate; + * BlockScan(temp_storage.scan).ExclusiveSum( + * thread_data, thread_data, prefix_op); + * CTA_SYNC(); + * + * // Store scanned items to output segment + * BlockStore(temp_storage.store).Store(d_data + block_offset, thread_data); + * CTA_SYNC(); + * } + * \endcode + * \par + * Suppose the input \p d_data is 1, 1, 1, 1, 1, 1, 1, 1, .... + * The corresponding output for the first segment will be 0, 1, 2, 3, ..., 510, 511. + * The output for the second segment will be 512, 513, 514, 515, ..., 1022, 1023. + * + * \tparam ITEMS_PER_THREAD [inferred] The number of consecutive items partitioned onto each thread. + * \tparam BlockPrefixCallbackOp [inferred] Call-back functor type having member T operator()(T block_aggregate) + */ + template < + int ITEMS_PER_THREAD, + typename BlockPrefixCallbackOp> + __device__ __forceinline__ void ExclusiveSum( + T (&input)[ITEMS_PER_THREAD], ///< [in] Calling thread's input items + T (&output)[ITEMS_PER_THREAD], ///< [out] Calling thread's output items (may be aliased to \p input) + BlockPrefixCallbackOp &block_prefix_callback_op) ///< [in-out] [warp0 only] Call-back functor for specifying a block-wide prefix to be applied to the logical input sequence. + { + ExclusiveScan(input, output, cub::Sum(), block_prefix_callback_op); + } + + + + //@} end member group // Exclusive prefix sums + /******************************************************************//** + * \name Exclusive prefix scan operations + *********************************************************************/ + //@{ + + + /** + * \brief Computes an exclusive block-wide prefix scan using the specified binary \p scan_op functor. Each thread contributes one input element. + * + * \par + * - Supports non-commutative scan operators. + * - \rowmajor + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates an exclusive prefix max scan of 128 integer items that + * are partitioned across 128 threads. + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(...) + * { + * // Specialize BlockScan for a 1D block of 128 threads of type int + * typedef cub::BlockScan BlockScan; + * + * // Allocate shared memory for BlockScan + * __shared__ typename BlockScan::TempStorage temp_storage; + * + * // Obtain input item for each thread + * int thread_data; + * ... + * + * // Collectively compute the block-wide exclusive prefix max scan + * BlockScan(temp_storage).ExclusiveScan(thread_data, thread_data, INT_MIN, cub::Max()); + * + * \endcode + * \par + * Suppose the set of input \p thread_data across the block of threads is 0, -1, 2, -3, ..., 126, -127. The + * corresponding output \p thread_data in those threads will be INT_MIN, 0, 0, 2, ..., 124, 126. + * + * \tparam ScanOp [inferred] Binary scan functor type having member T operator()(const T &a, const T &b) + */ + template + __device__ __forceinline__ void ExclusiveScan( + T input, ///< [in] Calling thread's input item + T &output, ///< [out] Calling thread's output item (may be aliased to \p input) + T initial_value, ///< [in] Initial value to seed the exclusive scan (and is assigned to \p output[0] in thread0) + ScanOp scan_op) ///< [in] Binary scan functor + { + InternalBlockScan(temp_storage).ExclusiveScan(input, output, initial_value, scan_op); + } + + + /** + * \brief Computes an exclusive block-wide prefix scan using the specified binary \p scan_op functor. Each thread contributes one input element. Also provides every thread with the block-wide \p block_aggregate of all inputs. + * + * \par + * - Supports non-commutative scan operators. + * - \rowmajor + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates an exclusive prefix max scan of 128 integer items that + * are partitioned across 128 threads. + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(...) + * { + * // Specialize BlockScan for a 1D block of 128 threads of type int + * typedef cub::BlockScan BlockScan; + * + * // Allocate shared memory for BlockScan + * __shared__ typename BlockScan::TempStorage temp_storage; + * + * // Obtain input item for each thread + * int thread_data; + * ... + * + * // Collectively compute the block-wide exclusive prefix max scan + * int block_aggregate; + * BlockScan(temp_storage).ExclusiveScan(thread_data, thread_data, INT_MIN, cub::Max(), block_aggregate); + * + * \endcode + * \par + * Suppose the set of input \p thread_data across the block of threads is 0, -1, 2, -3, ..., 126, -127. The + * corresponding output \p thread_data in those threads will be INT_MIN, 0, 0, 2, ..., 124, 126. + * Furthermore the value \p 126 will be stored in \p block_aggregate for all threads. + * + * \tparam ScanOp [inferred] Binary scan functor type having member T operator()(const T &a, const T &b) + */ + template + __device__ __forceinline__ void ExclusiveScan( + T input, ///< [in] Calling thread's input items + T &output, ///< [out] Calling thread's output items (may be aliased to \p input) + T initial_value, ///< [in] Initial value to seed the exclusive scan (and is assigned to \p output[0] in thread0) + ScanOp scan_op, ///< [in] Binary scan functor + T &block_aggregate) ///< [out] block-wide aggregate reduction of input items + { + InternalBlockScan(temp_storage).ExclusiveScan(input, output, initial_value, scan_op, block_aggregate); + } + + + /** + * \brief Computes an exclusive block-wide prefix scan using the specified binary \p scan_op functor. Each thread contributes one input element. the call-back functor \p block_prefix_callback_op is invoked by the first warp in the block, and the value returned by lane0 in that warp is used as the "seed" value that logically prefixes the thread block's scan inputs. Also provides every thread with the block-wide \p block_aggregate of all inputs. + * + * \par + * - The \p block_prefix_callback_op functor must implement a member function T operator()(T block_aggregate). + * The functor's input parameter \p block_aggregate is the same value also returned by the scan operation. + * The functor will be invoked by the first warp of threads in the block, however only the return value from + * lane0 is applied as the block-wide prefix. Can be stateful. + * - Supports non-commutative scan operators. + * - \rowmajor + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates a single thread block that progressively + * computes an exclusive prefix max scan over multiple "tiles" of input using a + * prefix functor to maintain a running total between block-wide scans. Each tile consists + * of 128 integer items that are partitioned across 128 threads. + * \par + * \code + * #include // or equivalently + * + * // A stateful callback functor that maintains a running prefix to be applied + * // during consecutive scan operations. + * struct BlockPrefixCallbackOp + * { + * // Running prefix + * int running_total; + * + * // Constructor + * __device__ BlockPrefixCallbackOp(int running_total) : running_total(running_total) {} + * + * // Callback operator to be entered by the first warp of threads in the block. + * // Thread-0 is responsible for returning a value for seeding the block-wide scan. + * __device__ int operator()(int block_aggregate) + * { + * int old_prefix = running_total; + * running_total = (block_aggregate > old_prefix) ? block_aggregate : old_prefix; + * return old_prefix; + * } + * }; + * + * __global__ void ExampleKernel(int *d_data, int num_items, ...) + * { + * // Specialize BlockScan for a 1D block of 128 threads + * typedef cub::BlockScan BlockScan; + * + * // Allocate shared memory for BlockScan + * __shared__ typename BlockScan::TempStorage temp_storage; + * + * // Initialize running total + * BlockPrefixCallbackOp prefix_op(INT_MIN); + * + * // Have the block iterate over segments of items + * for (int block_offset = 0; block_offset < num_items; block_offset += 128) + * { + * // Load a segment of consecutive items that are blocked across threads + * int thread_data = d_data[block_offset]; + * + * // Collectively compute the block-wide exclusive prefix max scan + * BlockScan(temp_storage).ExclusiveScan( + * thread_data, thread_data, INT_MIN, cub::Max(), prefix_op); + * CTA_SYNC(); + * + * // Store scanned items to output segment + * d_data[block_offset] = thread_data; + * } + * \endcode + * \par + * Suppose the input \p d_data is 0, -1, 2, -3, 4, -5, .... + * The corresponding output for the first segment will be INT_MIN, 0, 0, 2, ..., 124, 126. + * The output for the second segment will be 126, 128, 128, 130, ..., 252, 254. + * + * \tparam ScanOp [inferred] Binary scan functor type having member T operator()(const T &a, const T &b) + * \tparam BlockPrefixCallbackOp [inferred] Call-back functor type having member T operator()(T block_aggregate) + */ + template < + typename ScanOp, + typename BlockPrefixCallbackOp> + __device__ __forceinline__ void ExclusiveScan( + T input, ///< [in] Calling thread's input item + T &output, ///< [out] Calling thread's output item (may be aliased to \p input) + ScanOp scan_op, ///< [in] Binary scan functor + BlockPrefixCallbackOp &block_prefix_callback_op) ///< [in-out] [warp0 only] Call-back functor for specifying a block-wide prefix to be applied to the logical input sequence. + { + InternalBlockScan(temp_storage).ExclusiveScan(input, output, scan_op, block_prefix_callback_op); + } + + + //@} end member group // Inclusive prefix sums + /******************************************************************//** + * \name Exclusive prefix scan operations (multiple data per thread) + *********************************************************************/ + //@{ + + + /** + * \brief Computes an exclusive block-wide prefix scan using the specified binary \p scan_op functor. Each thread contributes an array of consecutive input elements. + * + * \par + * - Supports non-commutative scan operators. + * - \blocked + * - \granularity + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates an exclusive prefix max scan of 512 integer items that + * are partitioned in a [blocked arrangement](index.html#sec5sec3) across 128 threads + * where each thread owns 4 consecutive items. + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(...) + * { + * // Specialize BlockScan for a 1D block of 128 threads of type int + * typedef cub::BlockScan BlockScan; + * + * // Allocate shared memory for BlockScan + * __shared__ typename BlockScan::TempStorage temp_storage; + * + * // Obtain a segment of consecutive items that are blocked across threads + * int thread_data[4]; + * ... + * + * // Collectively compute the block-wide exclusive prefix max scan + * BlockScan(temp_storage).ExclusiveScan(thread_data, thread_data, INT_MIN, cub::Max()); + * + * \endcode + * \par + * Suppose the set of input \p thread_data across the block of threads is + * { [0,-1,2,-3], [4,-5,6,-7], ..., [508,-509,510,-511] }. + * The corresponding output \p thread_data in those threads will be + * { [INT_MIN,0,0,2], [2,4,4,6], ..., [506,508,508,510] }. + * + * \tparam ITEMS_PER_THREAD [inferred] The number of consecutive items partitioned onto each thread. + * \tparam ScanOp [inferred] Binary scan functor type having member T operator()(const T &a, const T &b) + */ + template < + int ITEMS_PER_THREAD, + typename ScanOp> + __device__ __forceinline__ void ExclusiveScan( + T (&input)[ITEMS_PER_THREAD], ///< [in] Calling thread's input items + T (&output)[ITEMS_PER_THREAD], ///< [out] Calling thread's output items (may be aliased to \p input) + T initial_value, ///< [in] Initial value to seed the exclusive scan (and is assigned to \p output[0] in thread0) + ScanOp scan_op) ///< [in] Binary scan functor + { + // Reduce consecutive thread items in registers + T thread_prefix = internal::ThreadReduce(input, scan_op); + + // Exclusive thread block-scan + ExclusiveScan(thread_prefix, thread_prefix, initial_value, scan_op); + + // Exclusive scan in registers with prefix as seed + internal::ThreadScanExclusive(input, output, scan_op, thread_prefix); + } + + + /** + * \brief Computes an exclusive block-wide prefix scan using the specified binary \p scan_op functor. Each thread contributes an array of consecutive input elements. Also provides every thread with the block-wide \p block_aggregate of all inputs. + * + * \par + * - Supports non-commutative scan operators. + * - \blocked + * - \granularity + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates an exclusive prefix max scan of 512 integer items that + * are partitioned in a [blocked arrangement](index.html#sec5sec3) across 128 threads + * where each thread owns 4 consecutive items. + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(...) + * { + * // Specialize BlockScan for a 1D block of 128 threads of type int + * typedef cub::BlockScan BlockScan; + * + * // Allocate shared memory for BlockScan + * __shared__ typename BlockScan::TempStorage temp_storage; + * + * // Obtain a segment of consecutive items that are blocked across threads + * int thread_data[4]; + * ... + * + * // Collectively compute the block-wide exclusive prefix max scan + * int block_aggregate; + * BlockScan(temp_storage).ExclusiveScan(thread_data, thread_data, INT_MIN, cub::Max(), block_aggregate); + * + * \endcode + * \par + * Suppose the set of input \p thread_data across the block of threads is { [0,-1,2,-3], [4,-5,6,-7], ..., [508,-509,510,-511] }. The + * corresponding output \p thread_data in those threads will be { [INT_MIN,0,0,2], [2,4,4,6], ..., [506,508,508,510] }. + * Furthermore the value \p 510 will be stored in \p block_aggregate for all threads. + * + * \tparam ITEMS_PER_THREAD [inferred] The number of consecutive items partitioned onto each thread. + * \tparam ScanOp [inferred] Binary scan functor type having member T operator()(const T &a, const T &b) + */ + template < + int ITEMS_PER_THREAD, + typename ScanOp> + __device__ __forceinline__ void ExclusiveScan( + T (&input)[ITEMS_PER_THREAD], ///< [in] Calling thread's input items + T (&output)[ITEMS_PER_THREAD], ///< [out] Calling thread's output items (may be aliased to \p input) + T initial_value, ///< [in] Initial value to seed the exclusive scan (and is assigned to \p output[0] in thread0) + ScanOp scan_op, ///< [in] Binary scan functor + T &block_aggregate) ///< [out] block-wide aggregate reduction of input items + { + // Reduce consecutive thread items in registers + T thread_prefix = internal::ThreadReduce(input, scan_op); + + // Exclusive thread block-scan + ExclusiveScan(thread_prefix, thread_prefix, initial_value, scan_op, block_aggregate); + + // Exclusive scan in registers with prefix as seed + internal::ThreadScanExclusive(input, output, scan_op, thread_prefix); + } + + + /** + * \brief Computes an exclusive block-wide prefix scan using the specified binary \p scan_op functor. Each thread contributes an array of consecutive input elements. the call-back functor \p block_prefix_callback_op is invoked by the first warp in the block, and the value returned by lane0 in that warp is used as the "seed" value that logically prefixes the thread block's scan inputs. Also provides every thread with the block-wide \p block_aggregate of all inputs. + * + * \par + * - The \p block_prefix_callback_op functor must implement a member function T operator()(T block_aggregate). + * The functor's input parameter \p block_aggregate is the same value also returned by the scan operation. + * The functor will be invoked by the first warp of threads in the block, however only the return value from + * lane0 is applied as the block-wide prefix. Can be stateful. + * - Supports non-commutative scan operators. + * - \blocked + * - \granularity + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates a single thread block that progressively + * computes an exclusive prefix max scan over multiple "tiles" of input using a + * prefix functor to maintain a running total between block-wide scans. Each tile consists + * of 128 integer items that are partitioned across 128 threads. + * \par + * \code + * #include // or equivalently + * + * // A stateful callback functor that maintains a running prefix to be applied + * // during consecutive scan operations. + * struct BlockPrefixCallbackOp + * { + * // Running prefix + * int running_total; + * + * // Constructor + * __device__ BlockPrefixCallbackOp(int running_total) : running_total(running_total) {} + * + * // Callback operator to be entered by the first warp of threads in the block. + * // Thread-0 is responsible for returning a value for seeding the block-wide scan. + * __device__ int operator()(int block_aggregate) + * { + * int old_prefix = running_total; + * running_total = (block_aggregate > old_prefix) ? block_aggregate : old_prefix; + * return old_prefix; + * } + * }; + * + * __global__ void ExampleKernel(int *d_data, int num_items, ...) + * { + * // Specialize BlockLoad, BlockStore, and BlockScan for a 1D block of 128 threads, 4 ints per thread + * typedef cub::BlockLoad BlockLoad; + * typedef cub::BlockStore BlockStore; + * typedef cub::BlockScan BlockScan; + * + * // Allocate aliased shared memory for BlockLoad, BlockStore, and BlockScan + * __shared__ union { + * typename BlockLoad::TempStorage load; + * typename BlockScan::TempStorage scan; + * typename BlockStore::TempStorage store; + * } temp_storage; + * + * // Initialize running total + * BlockPrefixCallbackOp prefix_op(0); + * + * // Have the block iterate over segments of items + * for (int block_offset = 0; block_offset < num_items; block_offset += 128 * 4) + * { + * // Load a segment of consecutive items that are blocked across threads + * int thread_data[4]; + * BlockLoad(temp_storage.load).Load(d_data + block_offset, thread_data); + * CTA_SYNC(); + * + * // Collectively compute the block-wide exclusive prefix max scan + * BlockScan(temp_storage.scan).ExclusiveScan( + * thread_data, thread_data, INT_MIN, cub::Max(), prefix_op); + * CTA_SYNC(); + * + * // Store scanned items to output segment + * BlockStore(temp_storage.store).Store(d_data + block_offset, thread_data); + * CTA_SYNC(); + * } + * \endcode + * \par + * Suppose the input \p d_data is 0, -1, 2, -3, 4, -5, .... + * The corresponding output for the first segment will be INT_MIN, 0, 0, 2, 2, 4, ..., 508, 510. + * The output for the second segment will be 510, 512, 512, 514, 514, 516, ..., 1020, 1022. + * + * \tparam ITEMS_PER_THREAD [inferred] The number of consecutive items partitioned onto each thread. + * \tparam ScanOp [inferred] Binary scan functor type having member T operator()(const T &a, const T &b) + * \tparam BlockPrefixCallbackOp [inferred] Call-back functor type having member T operator()(T block_aggregate) + */ + template < + int ITEMS_PER_THREAD, + typename ScanOp, + typename BlockPrefixCallbackOp> + __device__ __forceinline__ void ExclusiveScan( + T (&input)[ITEMS_PER_THREAD], ///< [in] Calling thread's input items + T (&output)[ITEMS_PER_THREAD], ///< [out] Calling thread's output items (may be aliased to \p input) + ScanOp scan_op, ///< [in] Binary scan functor + BlockPrefixCallbackOp &block_prefix_callback_op) ///< [in-out] [warp0 only] Call-back functor for specifying a block-wide prefix to be applied to the logical input sequence. + { + // Reduce consecutive thread items in registers + T thread_prefix = internal::ThreadReduce(input, scan_op); + + // Exclusive thread block-scan + ExclusiveScan(thread_prefix, thread_prefix, scan_op, block_prefix_callback_op); + + // Exclusive scan in registers with prefix as seed + internal::ThreadScanExclusive(input, output, scan_op, thread_prefix); + } + + + //@} end member group +#ifndef DOXYGEN_SHOULD_SKIP_THIS // Do not document no-initial-value scans + + /******************************************************************//** + * \name Exclusive prefix scan operations (no initial value, single datum per thread) + *********************************************************************/ + //@{ + + + /** + * \brief Computes an exclusive block-wide prefix scan using the specified binary \p scan_op functor. Each thread contributes one input element. With no initial value, the output computed for thread0 is undefined. + * + * \par + * - Supports non-commutative scan operators. + * - \rowmajor + * - \smemreuse + * + * \tparam ScanOp [inferred] Binary scan functor type having member T operator()(const T &a, const T &b) + */ + template + __device__ __forceinline__ void ExclusiveScan( + T input, ///< [in] Calling thread's input item + T &output, ///< [out] Calling thread's output item (may be aliased to \p input) + ScanOp scan_op) ///< [in] Binary scan functor + { + InternalBlockScan(temp_storage).ExclusiveScan(input, output, scan_op); + } + + + /** + * \brief Computes an exclusive block-wide prefix scan using the specified binary \p scan_op functor. Each thread contributes one input element. Also provides every thread with the block-wide \p block_aggregate of all inputs. With no initial value, the output computed for thread0 is undefined. + * + * \par + * - Supports non-commutative scan operators. + * - \rowmajor + * - \smemreuse + * + * \tparam ScanOp [inferred] Binary scan functor type having member T operator()(const T &a, const T &b) + */ + template + __device__ __forceinline__ void ExclusiveScan( + T input, ///< [in] Calling thread's input item + T &output, ///< [out] Calling thread's output item (may be aliased to \p input) + ScanOp scan_op, ///< [in] Binary scan functor + T &block_aggregate) ///< [out] block-wide aggregate reduction of input items + { + InternalBlockScan(temp_storage).ExclusiveScan(input, output, scan_op, block_aggregate); + } + + //@} end member group + /******************************************************************//** + * \name Exclusive prefix scan operations (no initial value, multiple data per thread) + *********************************************************************/ + //@{ + + + /** + * \brief Computes an exclusive block-wide prefix scan using the specified binary \p scan_op functor. Each thread contributes an array of consecutive input elements. With no initial value, the output computed for thread0 is undefined. + * + * \par + * - Supports non-commutative scan operators. + * - \blocked + * - \granularity + * - \smemreuse + * + * \tparam ITEMS_PER_THREAD [inferred] The number of consecutive items partitioned onto each thread. + * \tparam ScanOp [inferred] Binary scan functor type having member T operator()(const T &a, const T &b) + */ + template < + int ITEMS_PER_THREAD, + typename ScanOp> + __device__ __forceinline__ void ExclusiveScan( + T (&input)[ITEMS_PER_THREAD], ///< [in] Calling thread's input items + T (&output)[ITEMS_PER_THREAD], ///< [out] Calling thread's output items (may be aliased to \p input) + ScanOp scan_op) ///< [in] Binary scan functor + { + // Reduce consecutive thread items in registers + T thread_partial = internal::ThreadReduce(input, scan_op); + + // Exclusive thread block-scan + ExclusiveScan(thread_partial, thread_partial, scan_op); + + // Exclusive scan in registers with prefix + internal::ThreadScanExclusive(input, output, scan_op, thread_partial, (linear_tid != 0)); + } + + + /** + * \brief Computes an exclusive block-wide prefix scan using the specified binary \p scan_op functor. Each thread contributes an array of consecutive input elements. Also provides every thread with the block-wide \p block_aggregate of all inputs. With no initial value, the output computed for thread0 is undefined. + * + * \par + * - Supports non-commutative scan operators. + * - \blocked + * - \granularity + * - \smemreuse + * + * \tparam ITEMS_PER_THREAD [inferred] The number of consecutive items partitioned onto each thread. + * \tparam ScanOp [inferred] Binary scan functor type having member T operator()(const T &a, const T &b) + */ + template < + int ITEMS_PER_THREAD, + typename ScanOp> + __device__ __forceinline__ void ExclusiveScan( + T (&input)[ITEMS_PER_THREAD], ///< [in] Calling thread's input items + T (&output)[ITEMS_PER_THREAD], ///< [out] Calling thread's output items (may be aliased to \p input) + ScanOp scan_op, ///< [in] Binary scan functor + T &block_aggregate) ///< [out] block-wide aggregate reduction of input items + { + // Reduce consecutive thread items in registers + T thread_partial = internal::ThreadReduce(input, scan_op); + + // Exclusive thread block-scan + ExclusiveScan(thread_partial, thread_partial, scan_op, block_aggregate); + + // Exclusive scan in registers with prefix + internal::ThreadScanExclusive(input, output, scan_op, thread_partial, (linear_tid != 0)); + } + + + //@} end member group +#endif // DOXYGEN_SHOULD_SKIP_THIS // Do not document no-initial-value scans + + /******************************************************************//** + * \name Inclusive prefix sum operations + *********************************************************************/ + //@{ + + + /** + * \brief Computes an inclusive block-wide prefix scan using addition (+) as the scan operator. Each thread contributes one input element. + * + * \par + * - \rowmajor + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates an inclusive prefix sum of 128 integer items that + * are partitioned across 128 threads. + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(...) + * { + * // Specialize BlockScan for a 1D block of 128 threads of type int + * typedef cub::BlockScan BlockScan; + * + * // Allocate shared memory for BlockScan + * __shared__ typename BlockScan::TempStorage temp_storage; + * + * // Obtain input item for each thread + * int thread_data; + * ... + * + * // Collectively compute the block-wide inclusive prefix sum + * BlockScan(temp_storage).InclusiveSum(thread_data, thread_data); + * + * \endcode + * \par + * Suppose the set of input \p thread_data across the block of threads is 1, 1, ..., 1. The + * corresponding output \p thread_data in those threads will be 1, 2, ..., 128. + * + */ + __device__ __forceinline__ void InclusiveSum( + T input, ///< [in] Calling thread's input item + T &output) ///< [out] Calling thread's output item (may be aliased to \p input) + { + InclusiveScan(input, output, cub::Sum()); + } + + + /** + * \brief Computes an inclusive block-wide prefix scan using addition (+) as the scan operator. Each thread contributes one input element. Also provides every thread with the block-wide \p block_aggregate of all inputs. + * + * \par + * - \rowmajor + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates an inclusive prefix sum of 128 integer items that + * are partitioned across 128 threads. + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(...) + * { + * // Specialize BlockScan for a 1D block of 128 threads of type int + * typedef cub::BlockScan BlockScan; + * + * // Allocate shared memory for BlockScan + * __shared__ typename BlockScan::TempStorage temp_storage; + * + * // Obtain input item for each thread + * int thread_data; + * ... + * + * // Collectively compute the block-wide inclusive prefix sum + * int block_aggregate; + * BlockScan(temp_storage).InclusiveSum(thread_data, thread_data, block_aggregate); + * + * \endcode + * \par + * Suppose the set of input \p thread_data across the block of threads is 1, 1, ..., 1. The + * corresponding output \p thread_data in those threads will be 1, 2, ..., 128. + * Furthermore the value \p 128 will be stored in \p block_aggregate for all threads. + * + */ + __device__ __forceinline__ void InclusiveSum( + T input, ///< [in] Calling thread's input item + T &output, ///< [out] Calling thread's output item (may be aliased to \p input) + T &block_aggregate) ///< [out] block-wide aggregate reduction of input items + { + InclusiveScan(input, output, cub::Sum(), block_aggregate); + } + + + + /** + * \brief Computes an inclusive block-wide prefix scan using addition (+) as the scan operator. Each thread contributes one input element. Instead of using 0 as the block-wide prefix, the call-back functor \p block_prefix_callback_op is invoked by the first warp in the block, and the value returned by lane0 in that warp is used as the "seed" value that logically prefixes the thread block's scan inputs. Also provides every thread with the block-wide \p block_aggregate of all inputs. + * + * \par + * - The \p block_prefix_callback_op functor must implement a member function T operator()(T block_aggregate). + * The functor's input parameter \p block_aggregate is the same value also returned by the scan operation. + * The functor will be invoked by the first warp of threads in the block, however only the return value from + * lane0 is applied as the block-wide prefix. Can be stateful. + * - \rowmajor + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates a single thread block that progressively + * computes an inclusive prefix sum over multiple "tiles" of input using a + * prefix functor to maintain a running total between block-wide scans. Each tile consists + * of 128 integer items that are partitioned across 128 threads. + * \par + * \code + * #include // or equivalently + * + * // A stateful callback functor that maintains a running prefix to be applied + * // during consecutive scan operations. + * struct BlockPrefixCallbackOp + * { + * // Running prefix + * int running_total; + * + * // Constructor + * __device__ BlockPrefixCallbackOp(int running_total) : running_total(running_total) {} + * + * // Callback operator to be entered by the first warp of threads in the block. + * // Thread-0 is responsible for returning a value for seeding the block-wide scan. + * __device__ int operator()(int block_aggregate) + * { + * int old_prefix = running_total; + * running_total += block_aggregate; + * return old_prefix; + * } + * }; + * + * __global__ void ExampleKernel(int *d_data, int num_items, ...) + * { + * // Specialize BlockScan for a 1D block of 128 threads + * typedef cub::BlockScan BlockScan; + * + * // Allocate shared memory for BlockScan + * __shared__ typename BlockScan::TempStorage temp_storage; + * + * // Initialize running total + * BlockPrefixCallbackOp prefix_op(0); + * + * // Have the block iterate over segments of items + * for (int block_offset = 0; block_offset < num_items; block_offset += 128) + * { + * // Load a segment of consecutive items that are blocked across threads + * int thread_data = d_data[block_offset]; + * + * // Collectively compute the block-wide inclusive prefix sum + * BlockScan(temp_storage).InclusiveSum( + * thread_data, thread_data, prefix_op); + * CTA_SYNC(); + * + * // Store scanned items to output segment + * d_data[block_offset] = thread_data; + * } + * \endcode + * \par + * Suppose the input \p d_data is 1, 1, 1, 1, 1, 1, 1, 1, .... + * The corresponding output for the first segment will be 1, 2, ..., 128. + * The output for the second segment will be 129, 130, ..., 256. + * + * \tparam BlockPrefixCallbackOp [inferred] Call-back functor type having member T operator()(T block_aggregate) + */ + template + __device__ __forceinline__ void InclusiveSum( + T input, ///< [in] Calling thread's input item + T &output, ///< [out] Calling thread's output item (may be aliased to \p input) + BlockPrefixCallbackOp &block_prefix_callback_op) ///< [in-out] [warp0 only] Call-back functor for specifying a block-wide prefix to be applied to the logical input sequence. + { + InclusiveScan(input, output, cub::Sum(), block_prefix_callback_op); + } + + + //@} end member group + /******************************************************************//** + * \name Inclusive prefix sum operations (multiple data per thread) + *********************************************************************/ + //@{ + + + /** + * \brief Computes an inclusive block-wide prefix scan using addition (+) as the scan operator. Each thread contributes an array of consecutive input elements. + * + * \par + * - \blocked + * - \granularity + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates an inclusive prefix sum of 512 integer items that + * are partitioned in a [blocked arrangement](index.html#sec5sec3) across 128 threads + * where each thread owns 4 consecutive items. + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(...) + * { + * // Specialize BlockScan for a 1D block of 128 threads of type int + * typedef cub::BlockScan BlockScan; + * + * // Allocate shared memory for BlockScan + * __shared__ typename BlockScan::TempStorage temp_storage; + * + * // Obtain a segment of consecutive items that are blocked across threads + * int thread_data[4]; + * ... + * + * // Collectively compute the block-wide inclusive prefix sum + * BlockScan(temp_storage).InclusiveSum(thread_data, thread_data); + * + * \endcode + * \par + * Suppose the set of input \p thread_data across the block of threads is { [1,1,1,1], [1,1,1,1], ..., [1,1,1,1] }. The + * corresponding output \p thread_data in those threads will be { [1,2,3,4], [5,6,7,8], ..., [509,510,511,512] }. + * + * \tparam ITEMS_PER_THREAD [inferred] The number of consecutive items partitioned onto each thread. + */ + template + __device__ __forceinline__ void InclusiveSum( + T (&input)[ITEMS_PER_THREAD], ///< [in] Calling thread's input items + T (&output)[ITEMS_PER_THREAD]) ///< [out] Calling thread's output items (may be aliased to \p input) + { + if (ITEMS_PER_THREAD == 1) + { + InclusiveSum(input[0], output[0]); + } + else + { + // Reduce consecutive thread items in registers + Sum scan_op; + T thread_prefix = internal::ThreadReduce(input, scan_op); + + // Exclusive thread block-scan + ExclusiveSum(thread_prefix, thread_prefix); + + // Inclusive scan in registers with prefix as seed + internal::ThreadScanInclusive(input, output, scan_op, thread_prefix, (linear_tid != 0)); + } + } + + + /** + * \brief Computes an inclusive block-wide prefix scan using addition (+) as the scan operator. Each thread contributes an array of consecutive input elements. Also provides every thread with the block-wide \p block_aggregate of all inputs. + * + * \par + * - \blocked + * - \granularity + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates an inclusive prefix sum of 512 integer items that + * are partitioned in a [blocked arrangement](index.html#sec5sec3) across 128 threads + * where each thread owns 4 consecutive items. + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(...) + * { + * // Specialize BlockScan for a 1D block of 128 threads of type int + * typedef cub::BlockScan BlockScan; + * + * // Allocate shared memory for BlockScan + * __shared__ typename BlockScan::TempStorage temp_storage; + * + * // Obtain a segment of consecutive items that are blocked across threads + * int thread_data[4]; + * ... + * + * // Collectively compute the block-wide inclusive prefix sum + * int block_aggregate; + * BlockScan(temp_storage).InclusiveSum(thread_data, thread_data, block_aggregate); + * + * \endcode + * \par + * Suppose the set of input \p thread_data across the block of threads is + * { [1,1,1,1], [1,1,1,1], ..., [1,1,1,1] }. The + * corresponding output \p thread_data in those threads will be + * { [1,2,3,4], [5,6,7,8], ..., [509,510,511,512] }. + * Furthermore the value \p 512 will be stored in \p block_aggregate for all threads. + * + * \tparam ITEMS_PER_THREAD [inferred] The number of consecutive items partitioned onto each thread. + * \tparam ScanOp [inferred] Binary scan functor type having member T operator()(const T &a, const T &b) + */ + template + __device__ __forceinline__ void InclusiveSum( + T (&input)[ITEMS_PER_THREAD], ///< [in] Calling thread's input items + T (&output)[ITEMS_PER_THREAD], ///< [out] Calling thread's output items (may be aliased to \p input) + T &block_aggregate) ///< [out] block-wide aggregate reduction of input items + { + if (ITEMS_PER_THREAD == 1) + { + InclusiveSum(input[0], output[0], block_aggregate); + } + else + { + // Reduce consecutive thread items in registers + Sum scan_op; + T thread_prefix = internal::ThreadReduce(input, scan_op); + + // Exclusive thread block-scan + ExclusiveSum(thread_prefix, thread_prefix, block_aggregate); + + // Inclusive scan in registers with prefix as seed + internal::ThreadScanInclusive(input, output, scan_op, thread_prefix, (linear_tid != 0)); + } + } + + + /** + * \brief Computes an inclusive block-wide prefix scan using addition (+) as the scan operator. Each thread contributes an array of consecutive input elements. Instead of using 0 as the block-wide prefix, the call-back functor \p block_prefix_callback_op is invoked by the first warp in the block, and the value returned by lane0 in that warp is used as the "seed" value that logically prefixes the thread block's scan inputs. Also provides every thread with the block-wide \p block_aggregate of all inputs. + * + * \par + * - The \p block_prefix_callback_op functor must implement a member function T operator()(T block_aggregate). + * The functor's input parameter \p block_aggregate is the same value also returned by the scan operation. + * The functor will be invoked by the first warp of threads in the block, however only the return value from + * lane0 is applied as the block-wide prefix. Can be stateful. + * - \blocked + * - \granularity + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates a single thread block that progressively + * computes an inclusive prefix sum over multiple "tiles" of input using a + * prefix functor to maintain a running total between block-wide scans. Each tile consists + * of 512 integer items that are partitioned in a [blocked arrangement](index.html#sec5sec3) + * across 128 threads where each thread owns 4 consecutive items. + * \par + * \code + * #include // or equivalently + * + * // A stateful callback functor that maintains a running prefix to be applied + * // during consecutive scan operations. + * struct BlockPrefixCallbackOp + * { + * // Running prefix + * int running_total; + * + * // Constructor + * __device__ BlockPrefixCallbackOp(int running_total) : running_total(running_total) {} + * + * // Callback operator to be entered by the first warp of threads in the block. + * // Thread-0 is responsible for returning a value for seeding the block-wide scan. + * __device__ int operator()(int block_aggregate) + * { + * int old_prefix = running_total; + * running_total += block_aggregate; + * return old_prefix; + * } + * }; + * + * __global__ void ExampleKernel(int *d_data, int num_items, ...) + * { + * // Specialize BlockLoad, BlockStore, and BlockScan for a 1D block of 128 threads, 4 ints per thread + * typedef cub::BlockLoad BlockLoad; + * typedef cub::BlockStore BlockStore; + * typedef cub::BlockScan BlockScan; + * + * // Allocate aliased shared memory for BlockLoad, BlockStore, and BlockScan + * __shared__ union { + * typename BlockLoad::TempStorage load; + * typename BlockScan::TempStorage scan; + * typename BlockStore::TempStorage store; + * } temp_storage; + * + * // Initialize running total + * BlockPrefixCallbackOp prefix_op(0); + * + * // Have the block iterate over segments of items + * for (int block_offset = 0; block_offset < num_items; block_offset += 128 * 4) + * { + * // Load a segment of consecutive items that are blocked across threads + * int thread_data[4]; + * BlockLoad(temp_storage.load).Load(d_data + block_offset, thread_data); + * CTA_SYNC(); + * + * // Collectively compute the block-wide inclusive prefix sum + * BlockScan(temp_storage.scan).IncluisveSum( + * thread_data, thread_data, prefix_op); + * CTA_SYNC(); + * + * // Store scanned items to output segment + * BlockStore(temp_storage.store).Store(d_data + block_offset, thread_data); + * CTA_SYNC(); + * } + * \endcode + * \par + * Suppose the input \p d_data is 1, 1, 1, 1, 1, 1, 1, 1, .... + * The corresponding output for the first segment will be 1, 2, 3, 4, ..., 511, 512. + * The output for the second segment will be 513, 514, 515, 516, ..., 1023, 1024. + * + * \tparam ITEMS_PER_THREAD [inferred] The number of consecutive items partitioned onto each thread. + * \tparam BlockPrefixCallbackOp [inferred] Call-back functor type having member T operator()(T block_aggregate) + */ + template < + int ITEMS_PER_THREAD, + typename BlockPrefixCallbackOp> + __device__ __forceinline__ void InclusiveSum( + T (&input)[ITEMS_PER_THREAD], ///< [in] Calling thread's input items + T (&output)[ITEMS_PER_THREAD], ///< [out] Calling thread's output items (may be aliased to \p input) + BlockPrefixCallbackOp &block_prefix_callback_op) ///< [in-out] [warp0 only] Call-back functor for specifying a block-wide prefix to be applied to the logical input sequence. + { + if (ITEMS_PER_THREAD == 1) + { + InclusiveSum(input[0], output[0], block_prefix_callback_op); + } + else + { + // Reduce consecutive thread items in registers + Sum scan_op; + T thread_prefix = internal::ThreadReduce(input, scan_op); + + // Exclusive thread block-scan + ExclusiveSum(thread_prefix, thread_prefix, block_prefix_callback_op); + + // Inclusive scan in registers with prefix as seed + internal::ThreadScanInclusive(input, output, scan_op, thread_prefix); + } + } + + + //@} end member group + /******************************************************************//** + * \name Inclusive prefix scan operations + *********************************************************************/ + //@{ + + + /** + * \brief Computes an inclusive block-wide prefix scan using the specified binary \p scan_op functor. Each thread contributes one input element. + * + * \par + * - Supports non-commutative scan operators. + * - \rowmajor + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates an inclusive prefix max scan of 128 integer items that + * are partitioned across 128 threads. + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(...) + * { + * // Specialize BlockScan for a 1D block of 128 threads of type int + * typedef cub::BlockScan BlockScan; + * + * // Allocate shared memory for BlockScan + * __shared__ typename BlockScan::TempStorage temp_storage; + * + * // Obtain input item for each thread + * int thread_data; + * ... + * + * // Collectively compute the block-wide inclusive prefix max scan + * BlockScan(temp_storage).InclusiveScan(thread_data, thread_data, cub::Max()); + * + * \endcode + * \par + * Suppose the set of input \p thread_data across the block of threads is 0, -1, 2, -3, ..., 126, -127. The + * corresponding output \p thread_data in those threads will be 0, 0, 2, 2, ..., 126, 126. + * + * \tparam ScanOp [inferred] Binary scan functor type having member T operator()(const T &a, const T &b) + */ + template + __device__ __forceinline__ void InclusiveScan( + T input, ///< [in] Calling thread's input item + T &output, ///< [out] Calling thread's output item (may be aliased to \p input) + ScanOp scan_op) ///< [in] Binary scan functor + { + InternalBlockScan(temp_storage).InclusiveScan(input, output, scan_op); + } + + + /** + * \brief Computes an inclusive block-wide prefix scan using the specified binary \p scan_op functor. Each thread contributes one input element. Also provides every thread with the block-wide \p block_aggregate of all inputs. + * + * \par + * - Supports non-commutative scan operators. + * - \rowmajor + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates an inclusive prefix max scan of 128 integer items that + * are partitioned across 128 threads. + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(...) + * { + * // Specialize BlockScan for a 1D block of 128 threads of type int + * typedef cub::BlockScan BlockScan; + * + * // Allocate shared memory for BlockScan + * __shared__ typename BlockScan::TempStorage temp_storage; + * + * // Obtain input item for each thread + * int thread_data; + * ... + * + * // Collectively compute the block-wide inclusive prefix max scan + * int block_aggregate; + * BlockScan(temp_storage).InclusiveScan(thread_data, thread_data, cub::Max(), block_aggregate); + * + * \endcode + * \par + * Suppose the set of input \p thread_data across the block of threads is 0, -1, 2, -3, ..., 126, -127. The + * corresponding output \p thread_data in those threads will be 0, 0, 2, 2, ..., 126, 126. + * Furthermore the value \p 126 will be stored in \p block_aggregate for all threads. + * + * \tparam ScanOp [inferred] Binary scan functor type having member T operator()(const T &a, const T &b) + */ + template + __device__ __forceinline__ void InclusiveScan( + T input, ///< [in] Calling thread's input item + T &output, ///< [out] Calling thread's output item (may be aliased to \p input) + ScanOp scan_op, ///< [in] Binary scan functor + T &block_aggregate) ///< [out] block-wide aggregate reduction of input items + { + InternalBlockScan(temp_storage).InclusiveScan(input, output, scan_op, block_aggregate); + } + + + /** + * \brief Computes an inclusive block-wide prefix scan using the specified binary \p scan_op functor. Each thread contributes one input element. the call-back functor \p block_prefix_callback_op is invoked by the first warp in the block, and the value returned by lane0 in that warp is used as the "seed" value that logically prefixes the thread block's scan inputs. Also provides every thread with the block-wide \p block_aggregate of all inputs. + * + * \par + * - The \p block_prefix_callback_op functor must implement a member function T operator()(T block_aggregate). + * The functor's input parameter \p block_aggregate is the same value also returned by the scan operation. + * The functor will be invoked by the first warp of threads in the block, however only the return value from + * lane0 is applied as the block-wide prefix. Can be stateful. + * - Supports non-commutative scan operators. + * - \rowmajor + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates a single thread block that progressively + * computes an inclusive prefix max scan over multiple "tiles" of input using a + * prefix functor to maintain a running total between block-wide scans. Each tile consists + * of 128 integer items that are partitioned across 128 threads. + * \par + * \code + * #include // or equivalently + * + * // A stateful callback functor that maintains a running prefix to be applied + * // during consecutive scan operations. + * struct BlockPrefixCallbackOp + * { + * // Running prefix + * int running_total; + * + * // Constructor + * __device__ BlockPrefixCallbackOp(int running_total) : running_total(running_total) {} + * + * // Callback operator to be entered by the first warp of threads in the block. + * // Thread-0 is responsible for returning a value for seeding the block-wide scan. + * __device__ int operator()(int block_aggregate) + * { + * int old_prefix = running_total; + * running_total = (block_aggregate > old_prefix) ? block_aggregate : old_prefix; + * return old_prefix; + * } + * }; + * + * __global__ void ExampleKernel(int *d_data, int num_items, ...) + * { + * // Specialize BlockScan for a 1D block of 128 threads + * typedef cub::BlockScan BlockScan; + * + * // Allocate shared memory for BlockScan + * __shared__ typename BlockScan::TempStorage temp_storage; + * + * // Initialize running total + * BlockPrefixCallbackOp prefix_op(INT_MIN); + * + * // Have the block iterate over segments of items + * for (int block_offset = 0; block_offset < num_items; block_offset += 128) + * { + * // Load a segment of consecutive items that are blocked across threads + * int thread_data = d_data[block_offset]; + * + * // Collectively compute the block-wide inclusive prefix max scan + * BlockScan(temp_storage).InclusiveScan( + * thread_data, thread_data, cub::Max(), prefix_op); + * CTA_SYNC(); + * + * // Store scanned items to output segment + * d_data[block_offset] = thread_data; + * } + * \endcode + * \par + * Suppose the input \p d_data is 0, -1, 2, -3, 4, -5, .... + * The corresponding output for the first segment will be 0, 0, 2, 2, ..., 126, 126. + * The output for the second segment will be 128, 128, 130, 130, ..., 254, 254. + * + * \tparam ScanOp [inferred] Binary scan functor type having member T operator()(const T &a, const T &b) + * \tparam BlockPrefixCallbackOp [inferred] Call-back functor type having member T operator()(T block_aggregate) + */ + template < + typename ScanOp, + typename BlockPrefixCallbackOp> + __device__ __forceinline__ void InclusiveScan( + T input, ///< [in] Calling thread's input item + T &output, ///< [out] Calling thread's output item (may be aliased to \p input) + ScanOp scan_op, ///< [in] Binary scan functor + BlockPrefixCallbackOp &block_prefix_callback_op) ///< [in-out] [warp0 only] Call-back functor for specifying a block-wide prefix to be applied to the logical input sequence. + { + InternalBlockScan(temp_storage).InclusiveScan(input, output, scan_op, block_prefix_callback_op); + } + + + //@} end member group + /******************************************************************//** + * \name Inclusive prefix scan operations (multiple data per thread) + *********************************************************************/ + //@{ + + + /** + * \brief Computes an inclusive block-wide prefix scan using the specified binary \p scan_op functor. Each thread contributes an array of consecutive input elements. + * + * \par + * - Supports non-commutative scan operators. + * - \blocked + * - \granularity + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates an inclusive prefix max scan of 512 integer items that + * are partitioned in a [blocked arrangement](index.html#sec5sec3) across 128 threads + * where each thread owns 4 consecutive items. + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(...) + * { + * // Specialize BlockScan for a 1D block of 128 threads of type int + * typedef cub::BlockScan BlockScan; + * + * // Allocate shared memory for BlockScan + * __shared__ typename BlockScan::TempStorage temp_storage; + * + * // Obtain a segment of consecutive items that are blocked across threads + * int thread_data[4]; + * ... + * + * // Collectively compute the block-wide inclusive prefix max scan + * BlockScan(temp_storage).InclusiveScan(thread_data, thread_data, cub::Max()); + * + * \endcode + * \par + * Suppose the set of input \p thread_data across the block of threads is { [0,-1,2,-3], [4,-5,6,-7], ..., [508,-509,510,-511] }. The + * corresponding output \p thread_data in those threads will be { [0,0,2,2], [4,4,6,6], ..., [508,508,510,510] }. + * + * \tparam ITEMS_PER_THREAD [inferred] The number of consecutive items partitioned onto each thread. + * \tparam ScanOp [inferred] Binary scan functor type having member T operator()(const T &a, const T &b) + */ + template < + int ITEMS_PER_THREAD, + typename ScanOp> + __device__ __forceinline__ void InclusiveScan( + T (&input)[ITEMS_PER_THREAD], ///< [in] Calling thread's input items + T (&output)[ITEMS_PER_THREAD], ///< [out] Calling thread's output items (may be aliased to \p input) + ScanOp scan_op) ///< [in] Binary scan functor + { + if (ITEMS_PER_THREAD == 1) + { + InclusiveScan(input[0], output[0], scan_op); + } + else + { + // Reduce consecutive thread items in registers + T thread_prefix = internal::ThreadReduce(input, scan_op); + + // Exclusive thread block-scan + ExclusiveScan(thread_prefix, thread_prefix, scan_op); + + // Inclusive scan in registers with prefix as seed (first thread does not seed) + internal::ThreadScanInclusive(input, output, scan_op, thread_prefix, (linear_tid != 0)); + } + } + + + /** + * \brief Computes an inclusive block-wide prefix scan using the specified binary \p scan_op functor. Each thread contributes an array of consecutive input elements. Also provides every thread with the block-wide \p block_aggregate of all inputs. + * + * \par + * - Supports non-commutative scan operators. + * - \blocked + * - \granularity + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates an inclusive prefix max scan of 512 integer items that + * are partitioned in a [blocked arrangement](index.html#sec5sec3) across 128 threads + * where each thread owns 4 consecutive items. + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(...) + * { + * // Specialize BlockScan for a 1D block of 128 threads of type int + * typedef cub::BlockScan BlockScan; + * + * // Allocate shared memory for BlockScan + * __shared__ typename BlockScan::TempStorage temp_storage; + * + * // Obtain a segment of consecutive items that are blocked across threads + * int thread_data[4]; + * ... + * + * // Collectively compute the block-wide inclusive prefix max scan + * int block_aggregate; + * BlockScan(temp_storage).InclusiveScan(thread_data, thread_data, cub::Max(), block_aggregate); + * + * \endcode + * \par + * Suppose the set of input \p thread_data across the block of threads is + * { [0,-1,2,-3], [4,-5,6,-7], ..., [508,-509,510,-511] }. + * The corresponding output \p thread_data in those threads will be + * { [0,0,2,2], [4,4,6,6], ..., [508,508,510,510] }. + * Furthermore the value \p 510 will be stored in \p block_aggregate for all threads. + * + * \tparam ITEMS_PER_THREAD [inferred] The number of consecutive items partitioned onto each thread. + * \tparam ScanOp [inferred] Binary scan functor type having member T operator()(const T &a, const T &b) + */ + template < + int ITEMS_PER_THREAD, + typename ScanOp> + __device__ __forceinline__ void InclusiveScan( + T (&input)[ITEMS_PER_THREAD], ///< [in] Calling thread's input items + T (&output)[ITEMS_PER_THREAD], ///< [out] Calling thread's output items (may be aliased to \p input) + ScanOp scan_op, ///< [in] Binary scan functor + T &block_aggregate) ///< [out] block-wide aggregate reduction of input items + { + if (ITEMS_PER_THREAD == 1) + { + InclusiveScan(input[0], output[0], scan_op, block_aggregate); + } + else + { + // Reduce consecutive thread items in registers + T thread_prefix = internal::ThreadReduce(input, scan_op); + + // Exclusive thread block-scan (with no initial value) + ExclusiveScan(thread_prefix, thread_prefix, scan_op, block_aggregate); + + // Inclusive scan in registers with prefix as seed (first thread does not seed) + internal::ThreadScanInclusive(input, output, scan_op, thread_prefix, (linear_tid != 0)); + } + } + + + /** + * \brief Computes an inclusive block-wide prefix scan using the specified binary \p scan_op functor. Each thread contributes an array of consecutive input elements. the call-back functor \p block_prefix_callback_op is invoked by the first warp in the block, and the value returned by lane0 in that warp is used as the "seed" value that logically prefixes the thread block's scan inputs. Also provides every thread with the block-wide \p block_aggregate of all inputs. + * + * \par + * - The \p block_prefix_callback_op functor must implement a member function T operator()(T block_aggregate). + * The functor's input parameter \p block_aggregate is the same value also returned by the scan operation. + * The functor will be invoked by the first warp of threads in the block, however only the return value from + * lane0 is applied as the block-wide prefix. Can be stateful. + * - Supports non-commutative scan operators. + * - \blocked + * - \granularity + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates a single thread block that progressively + * computes an inclusive prefix max scan over multiple "tiles" of input using a + * prefix functor to maintain a running total between block-wide scans. Each tile consists + * of 128 integer items that are partitioned across 128 threads. + * \par + * \code + * #include // or equivalently + * + * // A stateful callback functor that maintains a running prefix to be applied + * // during consecutive scan operations. + * struct BlockPrefixCallbackOp + * { + * // Running prefix + * int running_total; + * + * // Constructor + * __device__ BlockPrefixCallbackOp(int running_total) : running_total(running_total) {} + * + * // Callback operator to be entered by the first warp of threads in the block. + * // Thread-0 is responsible for returning a value for seeding the block-wide scan. + * __device__ int operator()(int block_aggregate) + * { + * int old_prefix = running_total; + * running_total = (block_aggregate > old_prefix) ? block_aggregate : old_prefix; + * return old_prefix; + * } + * }; + * + * __global__ void ExampleKernel(int *d_data, int num_items, ...) + * { + * // Specialize BlockLoad, BlockStore, and BlockScan for a 1D block of 128 threads, 4 ints per thread + * typedef cub::BlockLoad BlockLoad; + * typedef cub::BlockStore BlockStore; + * typedef cub::BlockScan BlockScan; + * + * // Allocate aliased shared memory for BlockLoad, BlockStore, and BlockScan + * __shared__ union { + * typename BlockLoad::TempStorage load; + * typename BlockScan::TempStorage scan; + * typename BlockStore::TempStorage store; + * } temp_storage; + * + * // Initialize running total + * BlockPrefixCallbackOp prefix_op(0); + * + * // Have the block iterate over segments of items + * for (int block_offset = 0; block_offset < num_items; block_offset += 128 * 4) + * { + * // Load a segment of consecutive items that are blocked across threads + * int thread_data[4]; + * BlockLoad(temp_storage.load).Load(d_data + block_offset, thread_data); + * CTA_SYNC(); + * + * // Collectively compute the block-wide inclusive prefix max scan + * BlockScan(temp_storage.scan).InclusiveScan( + * thread_data, thread_data, cub::Max(), prefix_op); + * CTA_SYNC(); + * + * // Store scanned items to output segment + * BlockStore(temp_storage.store).Store(d_data + block_offset, thread_data); + * CTA_SYNC(); + * } + * \endcode + * \par + * Suppose the input \p d_data is 0, -1, 2, -3, 4, -5, .... + * The corresponding output for the first segment will be 0, 0, 2, 2, 4, 4, ..., 510, 510. + * The output for the second segment will be 512, 512, 514, 514, 516, 516, ..., 1022, 1022. + * + * \tparam ITEMS_PER_THREAD [inferred] The number of consecutive items partitioned onto each thread. + * \tparam ScanOp [inferred] Binary scan functor type having member T operator()(const T &a, const T &b) + * \tparam BlockPrefixCallbackOp [inferred] Call-back functor type having member T operator()(T block_aggregate) + */ + template < + int ITEMS_PER_THREAD, + typename ScanOp, + typename BlockPrefixCallbackOp> + __device__ __forceinline__ void InclusiveScan( + T (&input)[ITEMS_PER_THREAD], ///< [in] Calling thread's input items + T (&output)[ITEMS_PER_THREAD], ///< [out] Calling thread's output items (may be aliased to \p input) + ScanOp scan_op, ///< [in] Binary scan functor + BlockPrefixCallbackOp &block_prefix_callback_op) ///< [in-out] [warp0 only] Call-back functor for specifying a block-wide prefix to be applied to the logical input sequence. + { + if (ITEMS_PER_THREAD == 1) + { + InclusiveScan(input[0], output[0], scan_op, block_prefix_callback_op); + } + else + { + // Reduce consecutive thread items in registers + T thread_prefix = internal::ThreadReduce(input, scan_op); + + // Exclusive thread block-scan + ExclusiveScan(thread_prefix, thread_prefix, scan_op, block_prefix_callback_op); + + // Inclusive scan in registers with prefix as seed + internal::ThreadScanInclusive(input, output, scan_op, thread_prefix); + } + } + + //@} end member group + + +}; + +/** + * \example example_block_scan.cu + */ + +CUB_NAMESPACE_END + diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/block/block_shuffle.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/block/block_shuffle.cuh new file mode 100644 index 0000000000000000000000000000000000000000..58938301c1115758600f176ecb3ea097150a58ee --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/block/block_shuffle.cuh @@ -0,0 +1,296 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * The cub::BlockShuffle class provides [collective](index.html#sec0) methods for shuffling data partitioned across a CUDA thread block. + */ + +#pragma once + +#include "../config.cuh" +#include "../util_ptx.cuh" +#include "../util_type.cuh" + +CUB_NAMESPACE_BEGIN + +/** + * \brief The BlockShuffle class provides [collective](index.html#sec0) methods for shuffling data partitioned across a CUDA thread block. + * \ingroup BlockModule + * + * \tparam T The data type to be exchanged. + * \tparam BLOCK_DIM_X The thread block length in threads along the X dimension + * \tparam BLOCK_DIM_Y [optional] The thread block length in threads along the Y dimension (default: 1) + * \tparam BLOCK_DIM_Z [optional] The thread block length in threads along the Z dimension (default: 1) + * \tparam LEGACY_PTX_ARCH [optional] Unused. + * + * \par Overview + * It is commonplace for blocks of threads to rearrange data items between + * threads. The BlockShuffle abstraction allows threads to efficiently shift items + * either (a) up to their successor or (b) down to their predecessor. + * + */ +template < + typename T, + int BLOCK_DIM_X, + int BLOCK_DIM_Y = 1, + int BLOCK_DIM_Z = 1, + int LEGACY_PTX_ARCH = 0> +class BlockShuffle +{ +private: + + /****************************************************************************** + * Constants + ******************************************************************************/ + + enum + { + BLOCK_THREADS = BLOCK_DIM_X * BLOCK_DIM_Y * BLOCK_DIM_Z, + + LOG_WARP_THREADS = CUB_LOG_WARP_THREADS(0), + WARP_THREADS = 1 << LOG_WARP_THREADS, + WARPS = (BLOCK_THREADS + WARP_THREADS - 1) / WARP_THREADS, + }; + + /****************************************************************************** + * Type definitions + ******************************************************************************/ + + /// Shared memory storage layout type (last element from each thread's input) + typedef T _TempStorage[BLOCK_THREADS]; + + +public: + + /// \smemstorage{BlockShuffle} + struct TempStorage : Uninitialized<_TempStorage> {}; + +private: + + + /****************************************************************************** + * Thread fields + ******************************************************************************/ + + /// Shared storage reference + _TempStorage &temp_storage; + + /// Linear thread-id + unsigned int linear_tid; + + + /****************************************************************************** + * Utility methods + ******************************************************************************/ + + /// Internal storage allocator + __device__ __forceinline__ _TempStorage& PrivateStorage() + { + __shared__ _TempStorage private_storage; + return private_storage; + } + + +public: + + /******************************************************************//** + * \name Collective constructors + *********************************************************************/ + //@{ + + /** + * \brief Collective constructor using a private static allocation of shared memory as temporary storage. + */ + __device__ __forceinline__ BlockShuffle() + : + temp_storage(PrivateStorage()), + linear_tid(RowMajorTid(BLOCK_DIM_X, BLOCK_DIM_Y, BLOCK_DIM_Z)) + {} + + + /** + * \brief Collective constructor using the specified memory allocation as temporary storage. + */ + __device__ __forceinline__ BlockShuffle( + TempStorage &temp_storage) ///< [in] Reference to memory allocation having layout type TempStorage + : + temp_storage(temp_storage.Alias()), + linear_tid(RowMajorTid(BLOCK_DIM_X, BLOCK_DIM_Y, BLOCK_DIM_Z)) + {} + + + //@} end member group + /******************************************************************//** + * \name Shuffle movement + *********************************************************************/ + //@{ + + + /** + * \brief Each threadi obtains the \p input provided by threadi+distance. The offset \p distance may be negative. + * + * \par + * - \smemreuse + */ + __device__ __forceinline__ void Offset( + T input, ///< [in] The input item from the calling thread (threadi) + T& output, ///< [out] The \p input item from the successor (or predecessor) thread threadi+distance (may be aliased to \p input). This value is only updated for for threadi when 0 <= (i + \p distance) < BLOCK_THREADS-1 + int distance = 1) ///< [in] Offset distance (may be negative) + { + temp_storage[linear_tid] = input; + + CTA_SYNC(); + + const int offset_tid = static_cast(linear_tid) + distance; + if ((offset_tid >= 0) && (offset_tid < BLOCK_THREADS)) + { + output = temp_storage[static_cast(offset_tid)]; + } + } + + + /** + * \brief Each threadi obtains the \p input provided by threadi+distance. + * + * \par + * - \smemreuse + */ + __device__ __forceinline__ void Rotate( + T input, ///< [in] The calling thread's input item + T& output, ///< [out] The \p input item from thread thread(i+distance>)%BLOCK_THREADS (may be aliased to \p input). This value is not updated for threadBLOCK_THREADS-1 + unsigned int distance = 1) ///< [in] Offset distance (0 < \p distance < BLOCK_THREADS) + { + temp_storage[linear_tid] = input; + + CTA_SYNC(); + + unsigned int offset = linear_tid + distance; + if (offset >= BLOCK_THREADS) + offset -= BLOCK_THREADS; + + output = temp_storage[offset]; + } + + + /** + * \brief The thread block rotates its [blocked arrangement](index.html#sec5sec3) of \p input items, shifting it up by one item + * + * \par + * - \blocked + * - \granularity + * - \smemreuse + */ + template + __device__ __forceinline__ void Up( + T (&input)[ITEMS_PER_THREAD], ///< [in] The calling thread's input items + T (&prev)[ITEMS_PER_THREAD]) ///< [out] The corresponding predecessor items (may be aliased to \p input). The item \p prev[0] is not updated for thread0. + { + temp_storage[linear_tid] = input[ITEMS_PER_THREAD - 1]; + + CTA_SYNC(); + + #pragma unroll + for (int ITEM = ITEMS_PER_THREAD - 1; ITEM > 0; --ITEM) + prev[ITEM] = input[ITEM - 1]; + + if (linear_tid > 0) + prev[0] = temp_storage[linear_tid - 1]; + } + + + /** + * \brief The thread block rotates its [blocked arrangement](index.html#sec5sec3) of \p input items, shifting it up by one item. All threads receive the \p input provided by threadBLOCK_THREADS-1. + * + * \par + * - \blocked + * - \granularity + * - \smemreuse + */ + template + __device__ __forceinline__ void Up( + T (&input)[ITEMS_PER_THREAD], ///< [in] The calling thread's input items + T (&prev)[ITEMS_PER_THREAD], ///< [out] The corresponding predecessor items (may be aliased to \p input). The item \p prev[0] is not updated for thread0. + T &block_suffix) ///< [out] The item \p input[ITEMS_PER_THREAD-1] from threadBLOCK_THREADS-1, provided to all threads + { + Up(input, prev); + block_suffix = temp_storage[BLOCK_THREADS - 1]; + } + + + /** + * \brief The thread block rotates its [blocked arrangement](index.html#sec5sec3) of \p input items, shifting it down by one item + * + * \par + * - \blocked + * - \granularity + * - \smemreuse + */ + template + __device__ __forceinline__ void Down( + T (&input)[ITEMS_PER_THREAD], ///< [in] The calling thread's input items + T (&prev)[ITEMS_PER_THREAD]) ///< [out] The corresponding predecessor items (may be aliased to \p input). The value \p prev[0] is not updated for threadBLOCK_THREADS-1. + { + temp_storage[linear_tid] = input[0]; + + CTA_SYNC(); + + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD - 1; ITEM++) + prev[ITEM] = input[ITEM + 1]; + + if (linear_tid < BLOCK_THREADS - 1) + prev[ITEMS_PER_THREAD - 1] = temp_storage[linear_tid + 1]; + } + + + /** + * \brief The thread block rotates its [blocked arrangement](index.html#sec5sec3) of input items, shifting it down by one item. All threads receive \p input[0] provided by thread0. + * + * \par + * - \blocked + * - \granularity + * - \smemreuse + */ + template + __device__ __forceinline__ void Down( + T (&input)[ITEMS_PER_THREAD], ///< [in] The calling thread's input items + T (&prev)[ITEMS_PER_THREAD], ///< [out] The corresponding predecessor items (may be aliased to \p input). The value \p prev[0] is not updated for threadBLOCK_THREADS-1. + T &block_prefix) ///< [out] The item \p input[0] from thread0, provided to all threads + { + Down(input, prev); + block_prefix = temp_storage[0]; + } + + //@} end member group + + +}; + +CUB_NAMESPACE_END + diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/block/block_store.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/block/block_store.cuh new file mode 100644 index 0000000000000000000000000000000000000000..2cb6bee4337ca19e67a53060cfc02b586403d815 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/block/block_store.cuh @@ -0,0 +1,1070 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * Operations for writing linear segments of data from the CUDA thread block + */ + +#pragma once + +#include +#include + +#include "block_exchange.cuh" +#include "../config.cuh" +#include "../util_ptx.cuh" +#include "../util_type.cuh" + +CUB_NAMESPACE_BEGIN + +/** + * \addtogroup UtilIo + * @{ + */ + + +/******************************************************************//** + * \name Blocked arrangement I/O (direct) + *********************************************************************/ +//@{ + +/** + * \brief Store a blocked arrangement of items across a thread block into a linear segment of items. + * + * \blocked + * + * \tparam T [inferred] The data type to store. + * \tparam ITEMS_PER_THREAD [inferred] The number of consecutive items partitioned onto each thread. + * \tparam OutputIteratorT [inferred] The random-access iterator type for output \iterator. + */ +template < + typename T, + int ITEMS_PER_THREAD, + typename OutputIteratorT> +__device__ __forceinline__ void StoreDirectBlocked( + int linear_tid, ///< [in] A suitable 1D thread-identifier for the calling thread (e.g., (threadIdx.y * blockDim.x) + linear_tid for 2D thread blocks) + OutputIteratorT block_itr, ///< [in] The thread block's base output iterator for storing to + T (&items)[ITEMS_PER_THREAD]) ///< [in] Data to store +{ + OutputIteratorT thread_itr = block_itr + (linear_tid * ITEMS_PER_THREAD); + + // Store directly in thread-blocked order + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + { + thread_itr[ITEM] = items[ITEM]; + } +} + + +/** + * \brief Store a blocked arrangement of items across a thread block into a linear segment of items, guarded by range + * + * \blocked + * + * \tparam T [inferred] The data type to store. + * \tparam ITEMS_PER_THREAD [inferred] The number of consecutive items partitioned onto each thread. + * \tparam OutputIteratorT [inferred] The random-access iterator type for output \iterator. + */ +template < + typename T, + int ITEMS_PER_THREAD, + typename OutputIteratorT> +__device__ __forceinline__ void StoreDirectBlocked( + int linear_tid, ///< [in] A suitable 1D thread-identifier for the calling thread (e.g., (threadIdx.y * blockDim.x) + linear_tid for 2D thread blocks) + OutputIteratorT block_itr, ///< [in] The thread block's base output iterator for storing to + T (&items)[ITEMS_PER_THREAD], ///< [in] Data to store + int valid_items) ///< [in] Number of valid items to write +{ + OutputIteratorT thread_itr = block_itr + (linear_tid * ITEMS_PER_THREAD); + + // Store directly in thread-blocked order + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + { + if (ITEM + (linear_tid * ITEMS_PER_THREAD) < valid_items) + { + thread_itr[ITEM] = items[ITEM]; + } + } +} + + +/** + * \brief Store a blocked arrangement of items across a thread block into a linear segment of items. + * + * \blocked + * + * The output offset (\p block_ptr + \p block_offset) must be quad-item aligned, + * which is the default starting offset returned by \p cudaMalloc() + * + * \par + * The following conditions will prevent vectorization and storing will fall back to cub::BLOCK_STORE_DIRECT: + * - \p ITEMS_PER_THREAD is odd + * - The data type \p T is not a built-in primitive or CUDA vector type (e.g., \p short, \p int2, \p double, \p float2, etc.) + * + * \tparam T [inferred] The data type to store. + * \tparam ITEMS_PER_THREAD [inferred] The number of consecutive items partitioned onto each thread. + * + */ +template < + typename T, + int ITEMS_PER_THREAD> +__device__ __forceinline__ void StoreDirectBlockedVectorized( + int linear_tid, ///< [in] A suitable 1D thread-identifier for the calling thread (e.g., (threadIdx.y * blockDim.x) + linear_tid for 2D thread blocks) + T *block_ptr, ///< [in] Input pointer for storing from + T (&items)[ITEMS_PER_THREAD]) ///< [in] Data to store +{ + enum + { + // Maximum CUDA vector size is 4 elements + MAX_VEC_SIZE = CUB_MIN(4, ITEMS_PER_THREAD), + + // Vector size must be a power of two and an even divisor of the items per thread + VEC_SIZE = ((((MAX_VEC_SIZE - 1) & MAX_VEC_SIZE) == 0) && ((ITEMS_PER_THREAD % MAX_VEC_SIZE) == 0)) ? + MAX_VEC_SIZE : + 1, + + VECTORS_PER_THREAD = ITEMS_PER_THREAD / VEC_SIZE, + }; + + // Vector type + typedef typename CubVector::Type Vector; + + // Alias global pointer + Vector *block_ptr_vectors = reinterpret_cast(const_cast(block_ptr)); + + // Alias pointers (use "raw" array here which should get optimized away to prevent conservative PTXAS lmem spilling) + Vector raw_vector[VECTORS_PER_THREAD]; + T *raw_items = reinterpret_cast(raw_vector); + + // Copy + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + { + raw_items[ITEM] = items[ITEM]; + } + + // Direct-store using vector types + StoreDirectBlocked(linear_tid, block_ptr_vectors, raw_vector); +} + + + +//@} end member group +/******************************************************************//** + * \name Striped arrangement I/O (direct) + *********************************************************************/ +//@{ + + +/** + * \brief Store a striped arrangement of data across the thread block into a linear segment of items. + * + * \striped + * + * \tparam BLOCK_THREADS The thread block size in threads + * \tparam T [inferred] The data type to store. + * \tparam ITEMS_PER_THREAD [inferred] The number of consecutive items partitioned onto each thread. + * \tparam OutputIteratorT [inferred] The random-access iterator type for output \iterator. + */ +template < + int BLOCK_THREADS, + typename T, + int ITEMS_PER_THREAD, + typename OutputIteratorT> +__device__ __forceinline__ void StoreDirectStriped( + int linear_tid, ///< [in] A suitable 1D thread-identifier for the calling thread (e.g., (threadIdx.y * blockDim.x) + linear_tid for 2D thread blocks) + OutputIteratorT block_itr, ///< [in] The thread block's base output iterator for storing to + T (&items)[ITEMS_PER_THREAD]) ///< [in] Data to store +{ + OutputIteratorT thread_itr = block_itr + linear_tid; + + // Store directly in striped order + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + { + thread_itr[(ITEM * BLOCK_THREADS)] = items[ITEM]; + } +} + + +/** + * \brief Store a striped arrangement of data across the thread block into a linear segment of items, guarded by range + * + * \striped + * + * \tparam BLOCK_THREADS The thread block size in threads + * \tparam T [inferred] The data type to store. + * \tparam ITEMS_PER_THREAD [inferred] The number of consecutive items partitioned onto each thread. + * \tparam OutputIteratorT [inferred] The random-access iterator type for output \iterator. + */ +template < + int BLOCK_THREADS, + typename T, + int ITEMS_PER_THREAD, + typename OutputIteratorT> +__device__ __forceinline__ void StoreDirectStriped( + int linear_tid, ///< [in] A suitable 1D thread-identifier for the calling thread (e.g., (threadIdx.y * blockDim.x) + linear_tid for 2D thread blocks) + OutputIteratorT block_itr, ///< [in] The thread block's base output iterator for storing to + T (&items)[ITEMS_PER_THREAD], ///< [in] Data to store + int valid_items) ///< [in] Number of valid items to write +{ + OutputIteratorT thread_itr = block_itr + linear_tid; + + // Store directly in striped order + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + { + if ((ITEM * BLOCK_THREADS) + linear_tid < valid_items) + { + thread_itr[(ITEM * BLOCK_THREADS)] = items[ITEM]; + } + } +} + + + +//@} end member group +/******************************************************************//** + * \name Warp-striped arrangement I/O (direct) + *********************************************************************/ +//@{ + + +/** + * \brief Store a warp-striped arrangement of data across the thread block into a linear segment of items. + * + * \warpstriped + * + * \par Usage Considerations + * The number of threads in the thread block must be a multiple of the architecture's warp size. + * + * \tparam T [inferred] The data type to store. + * \tparam ITEMS_PER_THREAD [inferred] The number of consecutive items partitioned onto each thread. + * \tparam OutputIteratorT [inferred] The random-access iterator type for output \iterator. + */ +template < + typename T, + int ITEMS_PER_THREAD, + typename OutputIteratorT> +__device__ __forceinline__ void StoreDirectWarpStriped( + int linear_tid, ///< [in] A suitable 1D thread-identifier for the calling thread (e.g., (threadIdx.y * blockDim.x) + linear_tid for 2D thread blocks) + OutputIteratorT block_itr, ///< [in] The thread block's base output iterator for storing to + T (&items)[ITEMS_PER_THREAD]) ///< [out] Data to load +{ + int tid = linear_tid & (CUB_PTX_WARP_THREADS - 1); + int wid = linear_tid >> CUB_PTX_LOG_WARP_THREADS; + int warp_offset = wid * CUB_PTX_WARP_THREADS * ITEMS_PER_THREAD; + + OutputIteratorT thread_itr = block_itr + warp_offset + tid; + + // Store directly in warp-striped order + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + { + thread_itr[(ITEM * CUB_PTX_WARP_THREADS)] = items[ITEM]; + } +} + + +/** + * \brief Store a warp-striped arrangement of data across the thread block into a linear segment of items, guarded by range + * + * \warpstriped + * + * \par Usage Considerations + * The number of threads in the thread block must be a multiple of the architecture's warp size. + * + * \tparam T [inferred] The data type to store. + * \tparam ITEMS_PER_THREAD [inferred] The number of consecutive items partitioned onto each thread. + * \tparam OutputIteratorT [inferred] The random-access iterator type for output \iterator. + */ +template < + typename T, + int ITEMS_PER_THREAD, + typename OutputIteratorT> +__device__ __forceinline__ void StoreDirectWarpStriped( + int linear_tid, ///< [in] A suitable 1D thread-identifier for the calling thread (e.g., (threadIdx.y * blockDim.x) + linear_tid for 2D thread blocks) + OutputIteratorT block_itr, ///< [in] The thread block's base output iterator for storing to + T (&items)[ITEMS_PER_THREAD], ///< [in] Data to store + int valid_items) ///< [in] Number of valid items to write +{ + int tid = linear_tid & (CUB_PTX_WARP_THREADS - 1); + int wid = linear_tid >> CUB_PTX_LOG_WARP_THREADS; + int warp_offset = wid * CUB_PTX_WARP_THREADS * ITEMS_PER_THREAD; + + OutputIteratorT thread_itr = block_itr + warp_offset + tid; + + // Store directly in warp-striped order + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + { + if (warp_offset + tid + (ITEM * CUB_PTX_WARP_THREADS) < valid_items) + { + thread_itr[(ITEM * CUB_PTX_WARP_THREADS)] = items[ITEM]; + } + } +} + + +//@} end member group + + +/** @} */ // end group UtilIo + + +//----------------------------------------------------------------------------- +// Generic BlockStore abstraction +//----------------------------------------------------------------------------- + +/** + * \brief cub::BlockStoreAlgorithm enumerates alternative algorithms for cub::BlockStore to write a blocked arrangement of items across a CUDA thread block to a linear segment of memory. + */ +enum BlockStoreAlgorithm +{ + /** + * \par Overview + * + * A [blocked arrangement](index.html#sec5sec3) of data is written + * directly to memory. + * + * \par Performance Considerations + * - The utilization of memory transactions (coalescing) decreases as the + * access stride between threads increases (i.e., the number items per thread). + */ + BLOCK_STORE_DIRECT, + + /** + * \par Overview + * A [striped arrangement](index.html#sec5sec3) of data is written + * directly to memory. + * + * \par Performance Considerations + * The utilization of memory transactions (coalescing) remains high regardless + * of items written per thread. + */ + BLOCK_STORE_STRIPED, + + /** + * \par Overview + * + * A [blocked arrangement](index.html#sec5sec3) of data is written directly + * to memory using CUDA's built-in vectorized stores as a coalescing optimization. + * For example, st.global.v4.s32 instructions will be generated + * when \p T = \p int and \p ITEMS_PER_THREAD % 4 == 0. + * + * \par Performance Considerations + * - The utilization of memory transactions (coalescing) remains high until the the + * access stride between threads (i.e., the number items per thread) exceeds the + * maximum vector store width (typically 4 items or 64B, whichever is lower). + * - The following conditions will prevent vectorization and writing will fall back to cub::BLOCK_STORE_DIRECT: + * - \p ITEMS_PER_THREAD is odd + * - The \p OutputIteratorT is not a simple pointer type + * - The block output offset is not quadword-aligned + * - The data type \p T is not a built-in primitive or CUDA vector type (e.g., \p short, \p int2, \p double, \p float2, etc.) + */ + BLOCK_STORE_VECTORIZE, + + /** + * \par Overview + * A [blocked arrangement](index.html#sec5sec3) is locally + * transposed and then efficiently written to memory as a [striped arrangement](index.html#sec5sec3). + * + * \par Performance Considerations + * - The utilization of memory transactions (coalescing) remains high regardless + * of items written per thread. + * - The local reordering incurs slightly longer latencies and throughput than the + * direct cub::BLOCK_STORE_DIRECT and cub::BLOCK_STORE_VECTORIZE alternatives. + */ + BLOCK_STORE_TRANSPOSE, + + /** + * \par Overview + * A [blocked arrangement](index.html#sec5sec3) is locally + * transposed and then efficiently written to memory as a + * [warp-striped arrangement](index.html#sec5sec3) + * + * \par Usage Considerations + * - BLOCK_THREADS must be a multiple of WARP_THREADS + * + * \par Performance Considerations + * - The utilization of memory transactions (coalescing) remains high regardless + * of items written per thread. + * - The local reordering incurs slightly longer latencies and throughput than the + * direct cub::BLOCK_STORE_DIRECT and cub::BLOCK_STORE_VECTORIZE alternatives. + */ + BLOCK_STORE_WARP_TRANSPOSE, + + /** + * \par Overview + * A [blocked arrangement](index.html#sec5sec3) is locally + * transposed and then efficiently written to memory as a + * [warp-striped arrangement](index.html#sec5sec3) + * To reduce the shared memory requirement, only one warp's worth of shared + * memory is provisioned and is subsequently time-sliced among warps. + * + * \par Usage Considerations + * - BLOCK_THREADS must be a multiple of WARP_THREADS + * + * \par Performance Considerations + * - The utilization of memory transactions (coalescing) remains high regardless + * of items written per thread. + * - Provisions less shared memory temporary storage, but incurs larger + * latencies than the BLOCK_STORE_WARP_TRANSPOSE alternative. + */ + BLOCK_STORE_WARP_TRANSPOSE_TIMESLICED, +}; + + +/** + * \brief The BlockStore class provides [collective](index.html#sec0) data movement methods for writing a [blocked arrangement](index.html#sec5sec3) of items partitioned across a CUDA thread block to a linear segment of memory. ![](block_store_logo.png) + * \ingroup BlockModule + * \ingroup UtilIo + * + * \tparam T The type of data to be written. + * \tparam BLOCK_DIM_X The thread block length in threads along the X dimension + * \tparam ITEMS_PER_THREAD The number of consecutive items partitioned onto each thread. + * \tparam ALGORITHM [optional] cub::BlockStoreAlgorithm tuning policy enumeration. default: cub::BLOCK_STORE_DIRECT. + * \tparam BLOCK_DIM_Y [optional] The thread block length in threads along the Y dimension (default: 1) + * \tparam BLOCK_DIM_Z [optional] The thread block length in threads along the Z dimension (default: 1) + * \tparam LEGACY_PTX_ARCH [optional] Unused. + * + * \par Overview + * - The BlockStore class provides a single data movement abstraction that can be specialized + * to implement different cub::BlockStoreAlgorithm strategies. This facilitates different + * performance policies for different architectures, data types, granularity sizes, etc. + * - BlockStore can be optionally specialized by different data movement strategies: + * -# cub::BLOCK_STORE_DIRECT. A [blocked arrangement](index.html#sec5sec3) of data is written + * directly to memory. [More...](\ref cub::BlockStoreAlgorithm) + * -# cub::BLOCK_STORE_STRIPED. A [striped arrangement](index.html#sec5sec3) + * of data is written directly to memory. [More...](\ref cub::BlockStoreAlgorithm) + * -# cub::BLOCK_STORE_VECTORIZE. A [blocked arrangement](index.html#sec5sec3) + * of data is written directly to memory using CUDA's built-in vectorized stores as a + * coalescing optimization. [More...](\ref cub::BlockStoreAlgorithm) + * -# cub::BLOCK_STORE_TRANSPOSE. A [blocked arrangement](index.html#sec5sec3) + * is locally transposed into a [striped arrangement](index.html#sec5sec3) which is + * then written to memory. [More...](\ref cub::BlockStoreAlgorithm) + * -# cub::BLOCK_STORE_WARP_TRANSPOSE. A [blocked arrangement](index.html#sec5sec3) + * is locally transposed into a [warp-striped arrangement](index.html#sec5sec3) which is + * then written to memory. [More...](\ref cub::BlockStoreAlgorithm) + * -# cub::BLOCK_STORE_WARP_TRANSPOSE_TIMESLICED. A [blocked arrangement](index.html#sec5sec3) + * is locally transposed into a [warp-striped arrangement](index.html#sec5sec3) which is + * then written to memory. To reduce the shared memory requireent, only one warp's worth of shared + * memory is provisioned and is subsequently time-sliced among warps. [More...](\ref cub::BlockStoreAlgorithm) + * - \rowmajor + * + * \par A Simple Example + * \blockcollective{BlockStore} + * \par + * The code snippet below illustrates the storing of a "blocked" arrangement + * of 512 integers across 128 threads (where each thread owns 4 consecutive items) + * into a linear segment of memory. The store is specialized for \p BLOCK_STORE_WARP_TRANSPOSE, + * meaning items are locally reordered among threads so that memory references will be + * efficiently coalesced using a warp-striped access pattern. + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(int *d_data, ...) + * { + * // Specialize BlockStore for a 1D block of 128 threads owning 4 integer items each + * typedef cub::BlockStore BlockStore; + * + * // Allocate shared memory for BlockStore + * __shared__ typename BlockStore::TempStorage temp_storage; + * + * // Obtain a segment of consecutive items that are blocked across threads + * int thread_data[4]; + * ... + * + * // Store items to linear memory + * BlockStore(temp_storage).Store(d_data, thread_data); + * + * \endcode + * \par + * Suppose the set of \p thread_data across the block of threads is + * { [0,1,2,3], [4,5,6,7], ..., [508,509,510,511] }. + * The output \p d_data will be 0, 1, 2, 3, 4, 5, .... + * + * \par Re-using dynamically allocating shared memory + * The following example under the examples/block folder illustrates usage of + * dynamically shared memory with BlockReduce and how to re-purpose + * the same memory region: + * example_block_reduce_dyn_smem.cu + * + * This example can be easily adapted to the storage required by BlockStore. + */ +template < + typename T, + int BLOCK_DIM_X, + int ITEMS_PER_THREAD, + BlockStoreAlgorithm ALGORITHM = BLOCK_STORE_DIRECT, + int BLOCK_DIM_Y = 1, + int BLOCK_DIM_Z = 1, + int LEGACY_PTX_ARCH = 0> +class BlockStore +{ +private: + /****************************************************************************** + * Constants and typed definitions + ******************************************************************************/ + + /// Constants + enum + { + /// The thread block size in threads + BLOCK_THREADS = BLOCK_DIM_X * BLOCK_DIM_Y * BLOCK_DIM_Z, + }; + + + /****************************************************************************** + * Algorithmic variants + ******************************************************************************/ + + /// Store helper + template + struct StoreInternal; + + + /** + * BLOCK_STORE_DIRECT specialization of store helper + */ + template + struct StoreInternal + { + /// Shared memory storage layout type + typedef NullType TempStorage; + + /// Linear thread-id + int linear_tid; + + /// Constructor + __device__ __forceinline__ StoreInternal( + TempStorage &/*temp_storage*/, + int linear_tid) + : + linear_tid(linear_tid) + {} + + /// Store items into a linear segment of memory + template + __device__ __forceinline__ void Store( + OutputIteratorT block_itr, ///< [in] The thread block's base output iterator for storing to + T (&items)[ITEMS_PER_THREAD]) ///< [in] Data to store + { + StoreDirectBlocked(linear_tid, block_itr, items); + } + + /// Store items into a linear segment of memory, guarded by range + template + __device__ __forceinline__ void Store( + OutputIteratorT block_itr, ///< [in] The thread block's base output iterator for storing to + T (&items)[ITEMS_PER_THREAD], ///< [in] Data to store + int valid_items) ///< [in] Number of valid items to write + { + StoreDirectBlocked(linear_tid, block_itr, items, valid_items); + } + }; + + + /** + * BLOCK_STORE_STRIPED specialization of store helper + */ + template + struct StoreInternal + { + /// Shared memory storage layout type + typedef NullType TempStorage; + + /// Linear thread-id + int linear_tid; + + /// Constructor + __device__ __forceinline__ StoreInternal( + TempStorage &/*temp_storage*/, + int linear_tid) + : + linear_tid(linear_tid) + {} + + /// Store items into a linear segment of memory + template + __device__ __forceinline__ void Store( + OutputIteratorT block_itr, ///< [in] The thread block's base output iterator for storing to + T (&items)[ITEMS_PER_THREAD]) ///< [in] Data to store + { + StoreDirectStriped(linear_tid, block_itr, items); + } + + /// Store items into a linear segment of memory, guarded by range + template + __device__ __forceinline__ void Store( + OutputIteratorT block_itr, ///< [in] The thread block's base output iterator for storing to + T (&items)[ITEMS_PER_THREAD], ///< [in] Data to store + int valid_items) ///< [in] Number of valid items to write + { + StoreDirectStriped(linear_tid, block_itr, items, valid_items); + } + }; + + + /** + * BLOCK_STORE_VECTORIZE specialization of store helper + */ + template + struct StoreInternal + { + /// Shared memory storage layout type + typedef NullType TempStorage; + + /// Linear thread-id + int linear_tid; + + /// Constructor + __device__ __forceinline__ StoreInternal( + TempStorage &/*temp_storage*/, + int linear_tid) + : + linear_tid(linear_tid) + {} + + /// Store items into a linear segment of memory, specialized for native pointer types (attempts vectorization) + __device__ __forceinline__ void Store( + T *block_ptr, ///< [in] The thread block's base output iterator for storing to + T (&items)[ITEMS_PER_THREAD]) ///< [in] Data to store + { + StoreDirectBlockedVectorized(linear_tid, block_ptr, items); + } + + /// Store items into a linear segment of memory, specialized for opaque input iterators (skips vectorization) + template + __device__ __forceinline__ void Store( + OutputIteratorT block_itr, ///< [in] The thread block's base output iterator for storing to + T (&items)[ITEMS_PER_THREAD]) ///< [in] Data to store + { + StoreDirectBlocked(linear_tid, block_itr, items); + } + + /// Store items into a linear segment of memory, guarded by range + template + __device__ __forceinline__ void Store( + OutputIteratorT block_itr, ///< [in] The thread block's base output iterator for storing to + T (&items)[ITEMS_PER_THREAD], ///< [in] Data to store + int valid_items) ///< [in] Number of valid items to write + { + StoreDirectBlocked(linear_tid, block_itr, items, valid_items); + } + }; + + + /** + * BLOCK_STORE_TRANSPOSE specialization of store helper + */ + template + struct StoreInternal + { + // BlockExchange utility type for keys + typedef BlockExchange BlockExchange; + + /// Shared memory storage layout type + struct _TempStorage : BlockExchange::TempStorage + { + /// Temporary storage for partially-full block guard + volatile int valid_items; + }; + + /// Alias wrapper allowing storage to be unioned + struct TempStorage : Uninitialized<_TempStorage> {}; + + /// Thread reference to shared storage + _TempStorage &temp_storage; + + /// Linear thread-id + int linear_tid; + + /// Constructor + __device__ __forceinline__ StoreInternal( + TempStorage &temp_storage, + int linear_tid) + : + temp_storage(temp_storage.Alias()), + linear_tid(linear_tid) + {} + + /// Store items into a linear segment of memory + template + __device__ __forceinline__ void Store( + OutputIteratorT block_itr, ///< [in] The thread block's base output iterator for storing to + T (&items)[ITEMS_PER_THREAD]) ///< [in] Data to store + { + BlockExchange(temp_storage).BlockedToStriped(items); + StoreDirectStriped(linear_tid, block_itr, items); + } + + /// Store items into a linear segment of memory, guarded by range + template + __device__ __forceinline__ void Store( + OutputIteratorT block_itr, ///< [in] The thread block's base output iterator for storing to + T (&items)[ITEMS_PER_THREAD], ///< [in] Data to store + int valid_items) ///< [in] Number of valid items to write + { + BlockExchange(temp_storage).BlockedToStriped(items); + if (linear_tid == 0) + temp_storage.valid_items = valid_items; // Move through volatile smem as a workaround to prevent RF spilling on subsequent loads + CTA_SYNC(); + StoreDirectStriped(linear_tid, block_itr, items, temp_storage.valid_items); + } + }; + + + /** + * BLOCK_STORE_WARP_TRANSPOSE specialization of store helper + */ + template + struct StoreInternal + { + enum + { + WARP_THREADS = CUB_WARP_THREADS(0) + }; + + // Assert BLOCK_THREADS must be a multiple of WARP_THREADS + CUB_STATIC_ASSERT((int(BLOCK_THREADS) % int(WARP_THREADS) == 0), "BLOCK_THREADS must be a multiple of WARP_THREADS"); + + // BlockExchange utility type for keys + typedef BlockExchange BlockExchange; + + /// Shared memory storage layout type + struct _TempStorage : BlockExchange::TempStorage + { + /// Temporary storage for partially-full block guard + volatile int valid_items; + }; + + /// Alias wrapper allowing storage to be unioned + struct TempStorage : Uninitialized<_TempStorage> {}; + + /// Thread reference to shared storage + _TempStorage &temp_storage; + + /// Linear thread-id + int linear_tid; + + /// Constructor + __device__ __forceinline__ StoreInternal( + TempStorage &temp_storage, + int linear_tid) + : + temp_storage(temp_storage.Alias()), + linear_tid(linear_tid) + {} + + /// Store items into a linear segment of memory + template + __device__ __forceinline__ void Store( + OutputIteratorT block_itr, ///< [in] The thread block's base output iterator for storing to + T (&items)[ITEMS_PER_THREAD]) ///< [in] Data to store + { + BlockExchange(temp_storage).BlockedToWarpStriped(items); + StoreDirectWarpStriped(linear_tid, block_itr, items); + } + + /// Store items into a linear segment of memory, guarded by range + template + __device__ __forceinline__ void Store( + OutputIteratorT block_itr, ///< [in] The thread block's base output iterator for storing to + T (&items)[ITEMS_PER_THREAD], ///< [in] Data to store + int valid_items) ///< [in] Number of valid items to write + { + BlockExchange(temp_storage).BlockedToWarpStriped(items); + if (linear_tid == 0) + temp_storage.valid_items = valid_items; // Move through volatile smem as a workaround to prevent RF spilling on subsequent loads + CTA_SYNC(); + StoreDirectWarpStriped(linear_tid, block_itr, items, temp_storage.valid_items); + } + }; + + + /** + * BLOCK_STORE_WARP_TRANSPOSE_TIMESLICED specialization of store helper + */ + template + struct StoreInternal + { + enum + { + WARP_THREADS = CUB_WARP_THREADS(0) + }; + + // Assert BLOCK_THREADS must be a multiple of WARP_THREADS + CUB_STATIC_ASSERT((int(BLOCK_THREADS) % int(WARP_THREADS) == 0), "BLOCK_THREADS must be a multiple of WARP_THREADS"); + + // BlockExchange utility type for keys + typedef BlockExchange BlockExchange; + + /// Shared memory storage layout type + struct _TempStorage : BlockExchange::TempStorage + { + /// Temporary storage for partially-full block guard + volatile int valid_items; + }; + + /// Alias wrapper allowing storage to be unioned + struct TempStorage : Uninitialized<_TempStorage> {}; + + /// Thread reference to shared storage + _TempStorage &temp_storage; + + /// Linear thread-id + int linear_tid; + + /// Constructor + __device__ __forceinline__ StoreInternal( + TempStorage &temp_storage, + int linear_tid) + : + temp_storage(temp_storage.Alias()), + linear_tid(linear_tid) + {} + + /// Store items into a linear segment of memory + template + __device__ __forceinline__ void Store( + OutputIteratorT block_itr, ///< [in] The thread block's base output iterator for storing to + T (&items)[ITEMS_PER_THREAD]) ///< [in] Data to store + { + BlockExchange(temp_storage).BlockedToWarpStriped(items); + StoreDirectWarpStriped(linear_tid, block_itr, items); + } + + /// Store items into a linear segment of memory, guarded by range + template + __device__ __forceinline__ void Store( + OutputIteratorT block_itr, ///< [in] The thread block's base output iterator for storing to + T (&items)[ITEMS_PER_THREAD], ///< [in] Data to store + int valid_items) ///< [in] Number of valid items to write + { + BlockExchange(temp_storage).BlockedToWarpStriped(items); + if (linear_tid == 0) + temp_storage.valid_items = valid_items; // Move through volatile smem as a workaround to prevent RF spilling on subsequent loads + CTA_SYNC(); + StoreDirectWarpStriped(linear_tid, block_itr, items, temp_storage.valid_items); + } + }; + + + /****************************************************************************** + * Type definitions + ******************************************************************************/ + + /// Internal load implementation to use + typedef StoreInternal InternalStore; + + + /// Shared memory storage layout type + typedef typename InternalStore::TempStorage _TempStorage; + + + /****************************************************************************** + * Utility methods + ******************************************************************************/ + + /// Internal storage allocator + __device__ __forceinline__ _TempStorage& PrivateStorage() + { + __shared__ _TempStorage private_storage; + return private_storage; + } + + + /****************************************************************************** + * Thread fields + ******************************************************************************/ + + /// Thread reference to shared storage + _TempStorage &temp_storage; + + /// Linear thread-id + int linear_tid; + +public: + + + /// \smemstorage{BlockStore} + struct TempStorage : Uninitialized<_TempStorage> {}; + + + /******************************************************************//** + * \name Collective constructors + *********************************************************************/ + //@{ + + /** + * \brief Collective constructor using a private static allocation of shared memory as temporary storage. + */ + __device__ __forceinline__ BlockStore() + : + temp_storage(PrivateStorage()), + linear_tid(RowMajorTid(BLOCK_DIM_X, BLOCK_DIM_Y, BLOCK_DIM_Z)) + {} + + + /** + * \brief Collective constructor using the specified memory allocation as temporary storage. + */ + __device__ __forceinline__ BlockStore( + TempStorage &temp_storage) ///< [in] Reference to memory allocation having layout type TempStorage + : + temp_storage(temp_storage.Alias()), + linear_tid(RowMajorTid(BLOCK_DIM_X, BLOCK_DIM_Y, BLOCK_DIM_Z)) + {} + + + //@} end member group + /******************************************************************//** + * \name Data movement + *********************************************************************/ + //@{ + + + /** + * \brief Store items into a linear segment of memory. + * + * \par + * - \blocked + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates the storing of a "blocked" arrangement + * of 512 integers across 128 threads (where each thread owns 4 consecutive items) + * into a linear segment of memory. The store is specialized for \p BLOCK_STORE_WARP_TRANSPOSE, + * meaning items are locally reordered among threads so that memory references will be + * efficiently coalesced using a warp-striped access pattern. + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(int *d_data, ...) + * { + * // Specialize BlockStore for a 1D block of 128 threads owning 4 integer items each + * typedef cub::BlockStore BlockStore; + * + * // Allocate shared memory for BlockStore + * __shared__ typename BlockStore::TempStorage temp_storage; + * + * // Obtain a segment of consecutive items that are blocked across threads + * int thread_data[4]; + * ... + * + * // Store items to linear memory + * int thread_data[4]; + * BlockStore(temp_storage).Store(d_data, thread_data); + * + * \endcode + * \par + * Suppose the set of \p thread_data across the block of threads is + * { [0,1,2,3], [4,5,6,7], ..., [508,509,510,511] }. + * The output \p d_data will be 0, 1, 2, 3, 4, 5, .... + * + */ + template + __device__ __forceinline__ void Store( + OutputIteratorT block_itr, ///< [out] The thread block's base output iterator for storing to + T (&items)[ITEMS_PER_THREAD]) ///< [in] Data to store + { + InternalStore(temp_storage, linear_tid).Store(block_itr, items); + } + + /** + * \brief Store items into a linear segment of memory, guarded by range. + * + * \par + * - \blocked + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates the guarded storing of a "blocked" arrangement + * of 512 integers across 128 threads (where each thread owns 4 consecutive items) + * into a linear segment of memory. The store is specialized for \p BLOCK_STORE_WARP_TRANSPOSE, + * meaning items are locally reordered among threads so that memory references will be + * efficiently coalesced using a warp-striped access pattern. + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(int *d_data, int valid_items, ...) + * { + * // Specialize BlockStore for a 1D block of 128 threads owning 4 integer items each + * typedef cub::BlockStore BlockStore; + * + * // Allocate shared memory for BlockStore + * __shared__ typename BlockStore::TempStorage temp_storage; + * + * // Obtain a segment of consecutive items that are blocked across threads + * int thread_data[4]; + * ... + * + * // Store items to linear memory + * int thread_data[4]; + * BlockStore(temp_storage).Store(d_data, thread_data, valid_items); + * + * \endcode + * \par + * Suppose the set of \p thread_data across the block of threads is + * { [0,1,2,3], [4,5,6,7], ..., [508,509,510,511] } and \p valid_items is \p 5. + * The output \p d_data will be 0, 1, 2, 3, 4, ?, ?, ?, ..., with + * only the first two threads being unmasked to store portions of valid data. + * + */ + template + __device__ __forceinline__ void Store( + OutputIteratorT block_itr, ///< [out] The thread block's base output iterator for storing to + T (&items)[ITEMS_PER_THREAD], ///< [in] Data to store + int valid_items) ///< [in] Number of valid items to write + { + InternalStore(temp_storage, linear_tid).Store(block_itr, items, valid_items); + } + + //@} end member group +}; + +template > +struct BlockStoreType +{ + using type = cub::BlockStore; +}; + +CUB_NAMESPACE_END + diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/block/radix_rank_sort_operations.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/block/radix_rank_sort_operations.cuh new file mode 100644 index 0000000000000000000000000000000000000000..c69eedb498afc040fd7386debba5661270bca6e7 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/block/radix_rank_sort_operations.cuh @@ -0,0 +1,625 @@ +/****************************************************************************** + * Copyright (c) 2011-2020, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * radix_rank_sort_operations.cuh contains common abstractions, definitions and + * operations used for radix sorting and ranking. + */ + +#pragma once + +#include + +#include +#include + +#include + +#include "../config.cuh" +#include "../util_ptx.cuh" +#include "../util_type.cuh" +#include "cub/detail/cpp_compatibility.cuh" +#include "cub/detail/type_traits.cuh" + + +CUB_NAMESPACE_BEGIN + +/** \brief Base struct for digit extractor. Contains common code to provide + special handling for floating-point -0.0. + + \note This handles correctly both the case when the keys are + bitwise-complemented after twiddling for descending sort (in onesweep) as + well as when the keys are not bit-negated, but the implementation handles + descending sort separately (in other implementations in CUB). Twiddling + alone maps -0.0f to 0x7fffffff and +0.0f to 0x80000000 for float, which are + subsequent bit patterns and bitwise complements of each other. For onesweep, + both -0.0f and +0.0f are mapped to the bit pattern of +0.0f (0x80000000) for + ascending sort, and to the pattern of -0.0f (0x7fffffff) for descending + sort. For all other sorting implementations in CUB, both are always mapped + to +0.0f. Since bit patterns for both -0.0f and +0.0f are next to each other + and only one of them is used, the sorting works correctly. For double, the + same applies, but with 64-bit patterns. +*/ +template +struct BaseDigitExtractor +{ + typedef Traits TraitsT; + typedef typename TraitsT::UnsignedBits UnsignedBits; + + enum + { + FLOAT_KEY = TraitsT::CATEGORY == FLOATING_POINT, + }; + + static __host__ __device__ __forceinline__ UnsignedBits ProcessFloatMinusZero(UnsignedBits key) + { + CUB_IF_CONSTEXPR(!FLOAT_KEY) { + return key; + } else { + UnsignedBits TWIDDLED_MINUS_ZERO_BITS = + TraitsT::TwiddleIn(UnsignedBits(1) << UnsignedBits(8 * sizeof(UnsignedBits) - 1)); + UnsignedBits TWIDDLED_ZERO_BITS = TraitsT::TwiddleIn(0); + return key == TWIDDLED_MINUS_ZERO_BITS ? TWIDDLED_ZERO_BITS : key; + } + } +}; + +/** \brief A wrapper type to extract digits. Uses the BFE intrinsic to extract a + * key from a digit. */ +template +struct BFEDigitExtractor : BaseDigitExtractor +{ + using typename BaseDigitExtractor::UnsignedBits; + + std::uint32_t bit_start; + std::uint32_t num_bits; + + explicit __device__ __forceinline__ BFEDigitExtractor( + std::uint32_t bit_start = 0, + std::uint32_t num_bits = 0) + : bit_start(bit_start) + , num_bits(num_bits) + { } + + __device__ __forceinline__ std::uint32_t Digit(UnsignedBits key) const + { + return BFE(this->ProcessFloatMinusZero(key), bit_start, num_bits); + } +}; + +/** \brief A wrapper type to extract digits. Uses a combination of shift and + * bitwise and to extract digits. */ +template +struct ShiftDigitExtractor : BaseDigitExtractor +{ + using typename BaseDigitExtractor::UnsignedBits; + + std::uint32_t bit_start; + std::uint32_t mask; + + explicit __device__ __forceinline__ ShiftDigitExtractor( + std::uint32_t bit_start = 0, std::uint32_t num_bits = 0) + : bit_start(bit_start) + , mask((1 << num_bits) - 1) + { } + + __device__ __forceinline__ std::uint32_t Digit(UnsignedBits key) const + { + return std::uint32_t(this->ProcessFloatMinusZero(key) >> UnsignedBits(bit_start)) & mask; + } +}; + + +#ifndef DOXYGEN_SHOULD_SKIP_THIS // Do not document +namespace detail +{ + +template +struct logic_helper_t; + +template +struct true_t +{ + static constexpr bool value = true; +}; + +template +using all_t = // + ::cuda::std::is_same< // + logic_helper_t, // + logic_helper_t::value...>>; + +struct identity_decomposer_t +{ + template + __host__ __device__ T& operator()(T &key) const + { + return key; + } +}; + +template +__host__ __device__ void +for_each_member_impl_helper(F f, const ::cuda::std::tuple& tpl, THRUST_NS_QUALIFIER::index_sequence) +{ + auto sink = { (f(::cuda::std::get(tpl)), 0)... }; + (void)sink; +} + +template +__host__ __device__ void +for_each_member_impl(F f, const ::cuda::std::tuple& tpl) +{ + static_assert(sizeof...(Ts), "Empty aggregates are not supported"); + + // Most radix operations are indifferent to the order of operations. + // Conversely, the digit extractor traverses fields from the least significant + // to the most significant to imitate bitset printing where higher bits are on + // the left. It also maps to intuition, where something coming first is more + // important. Therefore, we traverse fields on the opposite order. + for_each_member_impl_helper(f, tpl, THRUST_NS_QUALIFIER::make_reversed_index_sequence{}); +} + +template +__host__ __device__ void for_each_member(F f, DecomposerT decomposer, T& aggregate) +{ + for_each_member_impl(f, decomposer(aggregate)); +} + +namespace radix +{ + +template +using void_t = void; + +template +struct is_fundamental_type +{ + static constexpr bool value = false; +}; + +template +struct is_fundamental_type::UnsignedBits>> +{ + static constexpr bool value = true; +}; + +template +struct is_tuple_of_references_to_fundamental_types_t : ::cuda::std::false_type +{}; + +template +struct is_tuple_of_references_to_fundamental_types_t< // + ::cuda::std::tuple, // + typename ::cuda::std::enable_if< // + all_t::value...>::value // + >::type> // + : ::cuda::std::true_type +{}; + +template +using decomposer_check_t = + is_tuple_of_references_to_fundamental_types_t>; + +template +struct bit_ordered_conversion_policy_t +{ + using bit_ordered_type = typename Traits::UnsignedBits; + + static __host__ __device__ bit_ordered_type to_bit_ordered(detail::identity_decomposer_t, + bit_ordered_type val) + { + return Traits::TwiddleIn(val); + } + + static __host__ __device__ bit_ordered_type from_bit_ordered(detail::identity_decomposer_t, + bit_ordered_type val) + { + return Traits::TwiddleOut(val); + } +}; + +template +struct bit_ordered_inversion_policy_t +{ + using bit_ordered_type = typename Traits::UnsignedBits; + + static __host__ __device__ bit_ordered_type inverse(detail::identity_decomposer_t, + bit_ordered_type val) + { + return ~val; + } +}; + +template ::value> +struct traits_t +{ + using bit_ordered_type = typename Traits::UnsignedBits; + using bit_ordered_conversion_policy = bit_ordered_conversion_policy_t; + using bit_ordered_inversion_policy = bit_ordered_inversion_policy_t; + + template + using digit_extractor_t = FundamentalExtractorT; + + static __host__ __device__ bit_ordered_type min_raw_binary_key(detail::identity_decomposer_t) + { + return Traits::LOWEST_KEY; + } + + static __host__ __device__ bit_ordered_type max_raw_binary_key(detail::identity_decomposer_t) + { + return Traits::MAX_KEY; + } + + static __host__ __device__ int default_end_bit(detail::identity_decomposer_t) + { + return sizeof(T) * 8; + } + + template + static __host__ + __device__ digit_extractor_t + digit_extractor(int begin_bit, int num_bits, detail::identity_decomposer_t) + { + return FundamentalExtractorT(begin_bit, num_bits); + } +}; + +template +struct min_raw_binary_key_f +{ + DecomposerT decomposer; + + template + __host__ __device__ void operator()(T &field) + { + using traits = traits_t::type>; + using bit_ordered_type = typename traits::bit_ordered_type; + reinterpret_cast(field) = + traits::min_raw_binary_key(detail::identity_decomposer_t{}); + } +}; + +template +__host__ __device__ void min_raw_binary_key(DecomposerT decomposer, T &aggregate) +{ + detail::for_each_member(min_raw_binary_key_f{decomposer}, decomposer, aggregate); +} + +template +struct max_raw_binary_key_f +{ + DecomposerT decomposer; + + template + __host__ __device__ void operator()(T &field) + { + using traits = traits_t::type>; + using bit_ordered_type = typename traits::bit_ordered_type; + reinterpret_cast(field) = + traits::max_raw_binary_key(detail::identity_decomposer_t{}); + } +}; + +template +__host__ __device__ void max_raw_binary_key(DecomposerT decomposer, T &aggregate) +{ + detail::for_each_member(max_raw_binary_key_f{decomposer}, decomposer, aggregate); +} + +template +struct to_bit_ordered_f +{ + DecomposerT decomposer; + + template + __host__ __device__ void operator()(T &field) + { + using traits = traits_t::type>; + using bit_ordered_type = typename traits::bit_ordered_type; + using bit_ordered_conversion = typename traits::bit_ordered_conversion_policy; + + auto &ordered_field = reinterpret_cast(field); + ordered_field = bit_ordered_conversion::to_bit_ordered(detail::identity_decomposer_t{}, + ordered_field); + } +}; + +template +__host__ __device__ void to_bit_ordered(DecomposerT decomposer, T &aggregate) +{ + detail::for_each_member(to_bit_ordered_f{decomposer}, decomposer, aggregate); +} + +template +struct from_bit_ordered_f +{ + DecomposerT decomposer; + + template + __host__ __device__ void operator()(T &field) + { + using traits = traits_t::type>; + using bit_ordered_type = typename traits::bit_ordered_type; + using bit_ordered_conversion = typename traits::bit_ordered_conversion_policy; + + auto &ordered_field = reinterpret_cast(field); + ordered_field = bit_ordered_conversion::from_bit_ordered(detail::identity_decomposer_t{}, + ordered_field); + } +}; + +template +__host__ __device__ void from_bit_ordered(DecomposerT decomposer, T &aggregate) +{ + detail::for_each_member(from_bit_ordered_f{decomposer}, decomposer, aggregate); +} + +template +struct inverse_f +{ + DecomposerT decomposer; + + template + __host__ __device__ void operator()(T &field) + { + using traits = traits_t::type>; + using bit_ordered_type = typename traits::bit_ordered_type; + + auto &ordered_field = reinterpret_cast(field); + ordered_field = ~ordered_field; + } +}; + +template +__host__ __device__ void inverse(DecomposerT decomposer, T &aggregate) +{ + detail::for_each_member(inverse_f{decomposer}, decomposer, aggregate); +} + +template +struct default_end_bit_f +{ + int &result; + DecomposerT decomposer; + + template + __host__ __device__ void operator()(T &field) + { + result += sizeof(field) * 8; + } +}; + +template +__host__ __device__ int default_end_bit(DecomposerT decomposer, T &aggregate) +{ + int result{}; + detail::for_each_member(default_end_bit_f{result, decomposer}, + decomposer, + aggregate); + return result; +} + +struct digit_f +{ + std::uint32_t &dst; + std::uint32_t &dst_bit_start; + std::uint32_t &src_bit_start; + std::uint32_t &num_bits; + + template + __host__ __device__ void operator()(T &src) + { + const std::uint32_t src_size = sizeof(T) * 8; + + if (src_bit_start >= src_size) + { + src_bit_start -= src_size; + } + else + { + using traits = traits_t::type>; + using bit_ordered_type = typename traits::bit_ordered_type; + + const std::uint32_t bits_to_copy = min(src_size - src_bit_start, num_bits); + + if (bits_to_copy) + { + bit_ordered_type ordered_src = BaseDigitExtractor::ProcessFloatMinusZero( + reinterpret_cast(src)); + + const std::uint32_t mask = (1 << bits_to_copy) - 1; + dst = dst | (((ordered_src >> src_bit_start) & mask) << dst_bit_start); + + num_bits -= bits_to_copy; + dst_bit_start += bits_to_copy; + } + src_bit_start = 0; + } + } +}; + +template +__host__ __device__ void digit(DecomposerT decomposer, + std::uint32_t &dst, + T &src, + std::uint32_t &dst_bit_start, + std::uint32_t &src_bit_start, + std::uint32_t &num_bits) +{ + detail::for_each_member(digit_f{dst, dst_bit_start, src_bit_start, num_bits}, decomposer, src); +} + +template +struct custom_digit_extractor_t +{ + DecomposerT decomposer; + std::uint32_t bit_start; + std::uint32_t num_bits; + + __host__ __device__ __forceinline__ custom_digit_extractor_t(DecomposerT decomposer, + std::uint32_t bit_start, + std::uint32_t num_bits) + : decomposer(decomposer) + , bit_start(bit_start) + , num_bits(num_bits) + {} + + template + __host__ __device__ __forceinline__ std::uint32_t Digit(T &key) const + { + std::uint32_t result{}; + std::uint32_t dst_bit_start{}; + std::uint32_t src_bit_start = bit_start; + std::uint32_t bits_remaining{num_bits}; + digit(decomposer, result, key, dst_bit_start, src_bit_start, bits_remaining); + return result; + } +}; + +struct custom_bit_conversion_policy_t +{ + template + static __host__ __device__ T to_bit_ordered(DecomposerT decomposer, T val) + { + detail::radix::to_bit_ordered(decomposer, val); + return val; + } + + template + static __host__ __device__ T from_bit_ordered(DecomposerT decomposer, T val) + { + detail::radix::from_bit_ordered(decomposer, val); + return val; + } +}; + +struct custom_bit_inversion_policy_t +{ + template + static __host__ __device__ T inverse(DecomposerT decomposer, T val) + { + detail::radix::inverse(decomposer, val); + return val; + } +}; + +template +struct traits_t +{ + using bit_ordered_type = T; + using bit_ordered_conversion_policy = custom_bit_conversion_policy_t; + using bit_ordered_inversion_policy = custom_bit_inversion_policy_t; + + template + using digit_extractor_t = custom_digit_extractor_t; + + template + static __host__ __device__ bit_ordered_type min_raw_binary_key(DecomposerT decomposer) + { + T val{}; + detail::radix::min_raw_binary_key(decomposer, val); + return val; + } + + template + static __host__ __device__ bit_ordered_type max_raw_binary_key(DecomposerT decomposer) + { + T val{}; + detail::radix::max_raw_binary_key(decomposer, val); + return val; + } + + template + static __host__ __device__ int default_end_bit(DecomposerT decomposer) + { + T aggregate{}; + return detail::radix::default_end_bit(decomposer, aggregate); + } + + template + static __host__ __device__ digit_extractor_t + digit_extractor(int begin_bit, int num_bits, DecomposerT decomposer) + { + return custom_digit_extractor_t(decomposer, begin_bit, num_bits); + } +}; + +} // namespace radix + +} // namespace detail +#endif // DOXYGEN_SHOULD_SKIP_THIS + +//! Twiddling keys for radix sort +template +struct RadixSortTwiddle +{ +private: + using traits = detail::radix::traits_t; + using bit_ordered_type = typename traits::bit_ordered_type; + using bit_ordered_conversion_policy = typename traits::bit_ordered_conversion_policy; + using bit_ordered_inversion_policy = typename traits::bit_ordered_inversion_policy; + +public: + template + static __host__ __device__ __forceinline__ // + bit_ordered_type + In(bit_ordered_type key, DecomposerT decomposer = {}) + { + key = bit_ordered_conversion_policy::to_bit_ordered(decomposer, key); + CUB_IF_CONSTEXPR(IS_DESCENDING) + { + key = bit_ordered_inversion_policy::inverse(decomposer, key); + } + return key; + } + + template + static __host__ __device__ __forceinline__ // + bit_ordered_type + Out(bit_ordered_type key, DecomposerT decomposer = {}) + { + CUB_IF_CONSTEXPR(IS_DESCENDING) + { + key = bit_ordered_inversion_policy::inverse(decomposer, key); + } + key = bit_ordered_conversion_policy::from_bit_ordered(decomposer, key); + return key; + } + + template + static __host__ __device__ __forceinline__ // + bit_ordered_type + DefaultKey(DecomposerT decomposer = {}) + { + return IS_DESCENDING ? traits::min_raw_binary_key(decomposer) + : traits::max_raw_binary_key(decomposer); + } +}; + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/block/specializations/block_histogram_atomic.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/block/specializations/block_histogram_atomic.cuh new file mode 100644 index 0000000000000000000000000000000000000000..93299fa7192b6081c6ab0de16d7e42014969b991 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/block/specializations/block_histogram_atomic.cuh @@ -0,0 +1,77 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * The cub::BlockHistogramAtomic class provides atomic-based methods for constructing block-wide histograms from data samples partitioned across a CUDA thread block. + */ + +#pragma once + +#include "../../config.cuh" + +CUB_NAMESPACE_BEGIN + + +/** + * \brief The BlockHistogramAtomic class provides atomic-based methods for constructing block-wide histograms from data samples partitioned across a CUDA thread block. + */ +template +struct BlockHistogramAtomic +{ + /// Shared memory storage layout type + struct TempStorage {}; + + + /// Constructor + __device__ __forceinline__ BlockHistogramAtomic( + TempStorage &temp_storage) + {} + + + /// Composite data onto an existing histogram + template < + typename T, + typename CounterT, + int ITEMS_PER_THREAD> + __device__ __forceinline__ void Composite( + T (&items)[ITEMS_PER_THREAD], ///< [in] Calling thread's input values to histogram + CounterT histogram[BINS]) ///< [out] Reference to shared/device-accessible memory histogram + { + // Update histogram + #pragma unroll + for (int i = 0; i < ITEMS_PER_THREAD; ++i) + { + atomicAdd(histogram + items[i], 1); + } + } + +}; + +CUB_NAMESPACE_END + diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/block/specializations/block_histogram_sort.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/block/specializations/block_histogram_sort.cuh new file mode 100644 index 0000000000000000000000000000000000000000..79659ae106d9b0b8e5991345da27ae9956cc167e --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/block/specializations/block_histogram_sort.cuh @@ -0,0 +1,219 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * The cub::BlockHistogramSort class provides sorting-based methods for constructing block-wide histograms from data samples partitioned across a CUDA thread block. + */ + +#pragma once + +#include "../../block/block_radix_sort.cuh" +#include "../../block/block_discontinuity.cuh" +#include "../../config.cuh" +#include "../../util_ptx.cuh" + +CUB_NAMESPACE_BEGIN + + + +/** + * \brief The BlockHistogramSort class provides sorting-based methods for constructing block-wide histograms from data samples partitioned across a CUDA thread block. + */ +template < + typename T, ///< Sample type + int BLOCK_DIM_X, ///< The thread block length in threads along the X dimension + int ITEMS_PER_THREAD, ///< The number of samples per thread + int BINS, ///< The number of bins into which histogram samples may fall + int BLOCK_DIM_Y, ///< The thread block length in threads along the Y dimension + int BLOCK_DIM_Z, ///< The thread block length in threads along the Z dimension + int LEGACY_PTX_ARCH = 0> ///< The PTX compute capability for which to to specialize this collective (unused) +struct BlockHistogramSort +{ + /// Constants + enum + { + /// The thread block size in threads + BLOCK_THREADS = BLOCK_DIM_X * BLOCK_DIM_Y * BLOCK_DIM_Z, + }; + + // Parameterize BlockRadixSort type for our thread block + typedef BlockRadixSort< + T, + BLOCK_DIM_X, + ITEMS_PER_THREAD, + NullType, + 4, + true, + BLOCK_SCAN_WARP_SCANS, + cudaSharedMemBankSizeFourByte, + BLOCK_DIM_Y, + BLOCK_DIM_Z> + BlockRadixSortT; + + // Parameterize BlockDiscontinuity type for our thread block + typedef BlockDiscontinuity< + T, + BLOCK_DIM_X, + BLOCK_DIM_Y, + BLOCK_DIM_Z> + BlockDiscontinuityT; + + /// Shared memory + union _TempStorage + { + // Storage for sorting bin values + typename BlockRadixSortT::TempStorage sort; + + struct Discontinuities + { + // Storage for detecting discontinuities in the tile of sorted bin values + typename BlockDiscontinuityT::TempStorage flag; + + // Storage for noting begin/end offsets of bin runs in the tile of sorted bin values + unsigned int run_begin[BINS]; + unsigned int run_end[BINS]; + } discontinuities; + }; + + + /// Alias wrapper allowing storage to be unioned + struct TempStorage : Uninitialized<_TempStorage> {}; + + + // Thread fields + _TempStorage &temp_storage; + unsigned int linear_tid; + + + /// Constructor + __device__ __forceinline__ BlockHistogramSort( + TempStorage &temp_storage) + : + temp_storage(temp_storage.Alias()), + linear_tid(RowMajorTid(BLOCK_DIM_X, BLOCK_DIM_Y, BLOCK_DIM_Z)) + {} + + + // Discontinuity functor + struct DiscontinuityOp + { + // Reference to temp_storage + _TempStorage &temp_storage; + + // Constructor + __device__ __forceinline__ DiscontinuityOp(_TempStorage &temp_storage) : + temp_storage(temp_storage) + {} + + // Discontinuity predicate + __device__ __forceinline__ bool operator()(const T &a, const T &b, int b_index) + { + if (a != b) + { + // Note the begin/end offsets in shared storage + temp_storage.discontinuities.run_begin[b] = b_index; + temp_storage.discontinuities.run_end[a] = b_index; + + return true; + } + else + { + return false; + } + } + }; + + + // Composite data onto an existing histogram + template < + typename CounterT > + __device__ __forceinline__ void Composite( + T (&items)[ITEMS_PER_THREAD], ///< [in] Calling thread's input values to histogram + CounterT histogram[BINS]) ///< [out] Reference to shared/device-accessible memory histogram + { + enum { TILE_SIZE = BLOCK_THREADS * ITEMS_PER_THREAD }; + + // Sort bytes in blocked arrangement + BlockRadixSortT(temp_storage.sort).Sort(items); + + CTA_SYNC(); + + // Initialize the shared memory's run_begin and run_end for each bin + int histo_offset = 0; + + #pragma unroll + for(; histo_offset + BLOCK_THREADS <= BINS; histo_offset += BLOCK_THREADS) + { + temp_storage.discontinuities.run_begin[histo_offset + linear_tid] = TILE_SIZE; + temp_storage.discontinuities.run_end[histo_offset + linear_tid] = TILE_SIZE; + } + // Finish up with guarded initialization if necessary + if ((BINS % BLOCK_THREADS != 0) && (histo_offset + linear_tid < BINS)) + { + temp_storage.discontinuities.run_begin[histo_offset + linear_tid] = TILE_SIZE; + temp_storage.discontinuities.run_end[histo_offset + linear_tid] = TILE_SIZE; + } + + CTA_SYNC(); + + int flags[ITEMS_PER_THREAD]; // unused + + // Compute head flags to demarcate contiguous runs of the same bin in the sorted tile + DiscontinuityOp flag_op(temp_storage); + BlockDiscontinuityT(temp_storage.discontinuities.flag).FlagHeads(flags, items, flag_op); + + // Update begin for first item + if (linear_tid == 0) temp_storage.discontinuities.run_begin[items[0]] = 0; + + CTA_SYNC(); + + // Composite into histogram + histo_offset = 0; + + #pragma unroll + for(; histo_offset + BLOCK_THREADS <= BINS; histo_offset += BLOCK_THREADS) + { + int thread_offset = histo_offset + linear_tid; + CounterT count = temp_storage.discontinuities.run_end[thread_offset] - temp_storage.discontinuities.run_begin[thread_offset]; + histogram[thread_offset] += count; + } + + // Finish up with guarded composition if necessary + if ((BINS % BLOCK_THREADS != 0) && (histo_offset + linear_tid < BINS)) + { + int thread_offset = histo_offset + linear_tid; + CounterT count = temp_storage.discontinuities.run_end[thread_offset] - temp_storage.discontinuities.run_begin[thread_offset]; + histogram[thread_offset] += count; + } + } + +}; + +CUB_NAMESPACE_END + diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/block/specializations/block_reduce_raking.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/block/specializations/block_reduce_raking.cuh new file mode 100644 index 0000000000000000000000000000000000000000..1bd38a241cc613eb699cecfd1b28e32a08aeb888 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/block/specializations/block_reduce_raking.cuh @@ -0,0 +1,221 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * cub::BlockReduceRaking provides raking-based methods of parallel reduction across a CUDA thread block. Supports non-commutative reduction operators. + */ + +#pragma once + +#include "../../block/block_raking_layout.cuh" +#include "../../warp/warp_reduce.cuh" +#include "../../thread/thread_reduce.cuh" +#include "../../config.cuh" +#include "../../util_ptx.cuh" + +CUB_NAMESPACE_BEGIN + + +/** + * \brief BlockReduceRaking provides raking-based methods of parallel reduction across a CUDA thread block. Supports non-commutative reduction operators. + * + * Supports non-commutative binary reduction operators. Unlike commutative + * reduction operators (e.g., addition), the application of a non-commutative + * reduction operator (e.g, string concatenation) across a sequence of inputs must + * honor the relative ordering of items and partial reductions when applying the + * reduction operator. + * + * Compared to the implementation of BlockReduceRakingCommutativeOnly (which + * does not support non-commutative operators), this implementation requires a + * few extra rounds of inter-thread communication. + */ +template < + typename T, ///< Data type being reduced + int BLOCK_DIM_X, ///< The thread block length in threads along the X dimension + int BLOCK_DIM_Y, ///< The thread block length in threads along the Y dimension + int BLOCK_DIM_Z, ///< The thread block length in threads along the Z dimension + int LEGACY_PTX_ARCH = 0> ///< The PTX compute capability for which to to specialize this collective +struct BlockReduceRaking +{ + /// Constants + enum + { + /// The thread block size in threads + BLOCK_THREADS = BLOCK_DIM_X * BLOCK_DIM_Y * BLOCK_DIM_Z, + }; + + /// Layout type for padded thread block raking grid + typedef BlockRakingLayout BlockRakingLayout; + + /// WarpReduce utility type + typedef typename WarpReduce::InternalWarpReduce WarpReduce; + + /// Constants + enum + { + /// Number of raking threads + RAKING_THREADS = BlockRakingLayout::RAKING_THREADS, + + /// Number of raking elements per warp synchronous raking thread + SEGMENT_LENGTH = BlockRakingLayout::SEGMENT_LENGTH, + + /// Cooperative work can be entirely warp synchronous + WARP_SYNCHRONOUS = (int(RAKING_THREADS) == int(BLOCK_THREADS)), + + /// Whether or not warp-synchronous reduction should be unguarded (i.e., the warp-reduction elements is a power of two + WARP_SYNCHRONOUS_UNGUARDED = PowerOfTwo::VALUE, + + /// Whether or not accesses into smem are unguarded + RAKING_UNGUARDED = BlockRakingLayout::UNGUARDED, + + }; + + + /// Shared memory storage layout type + union _TempStorage + { + typename WarpReduce::TempStorage warp_storage; ///< Storage for warp-synchronous reduction + typename BlockRakingLayout::TempStorage raking_grid; ///< Padded thread block raking grid + }; + + + /// Alias wrapper allowing storage to be unioned + struct TempStorage : Uninitialized<_TempStorage> {}; + + + // Thread fields + _TempStorage &temp_storage; + unsigned int linear_tid; + + + /// Constructor + __device__ __forceinline__ BlockReduceRaking( + TempStorage &temp_storage) + : + temp_storage(temp_storage.Alias()), + linear_tid(RowMajorTid(BLOCK_DIM_X, BLOCK_DIM_Y, BLOCK_DIM_Z)) + {} + + + template + __device__ __forceinline__ T RakingReduction( + ReductionOp reduction_op, ///< [in] Binary scan operator + T *raking_segment, + T partial, ///< [in] [lane0 only] Warp-wide aggregate reduction of input items + int num_valid, ///< [in] Number of valid elements (may be less than BLOCK_THREADS) + Int2Type /*iteration*/) + { + // Update partial if addend is in range + if ((IS_FULL_TILE && RAKING_UNGUARDED) || ((linear_tid * SEGMENT_LENGTH) + ITERATION < num_valid)) + { + T addend = raking_segment[ITERATION]; + partial = reduction_op(partial, addend); + } + return RakingReduction(reduction_op, raking_segment, partial, num_valid, Int2Type()); + } + + template + __device__ __forceinline__ T RakingReduction( + ReductionOp /*reduction_op*/, ///< [in] Binary scan operator + T * /*raking_segment*/, + T partial, ///< [in] [lane0 only] Warp-wide aggregate reduction of input items + int /*num_valid*/, ///< [in] Number of valid elements (may be less than BLOCK_THREADS) + Int2Type /*iteration*/) + { + return partial; + } + + + + /// Computes a thread block-wide reduction using the specified reduction operator. The first num_valid threads each contribute one reduction partial. The return value is only valid for thread0. + template < + bool IS_FULL_TILE, + typename ReductionOp> + __device__ __forceinline__ T Reduce( + T partial, ///< [in] Calling thread's input partial reductions + int num_valid, ///< [in] Number of valid elements (may be less than BLOCK_THREADS) + ReductionOp reduction_op) ///< [in] Binary reduction operator + { + if (WARP_SYNCHRONOUS) + { + // Short-circuit directly to warp synchronous reduction (unguarded if active threads is a power-of-two) + partial = WarpReduce(temp_storage.warp_storage).template Reduce( + partial, + num_valid, + reduction_op); + } + else + { + // Place partial into shared memory grid. + *BlockRakingLayout::PlacementPtr(temp_storage.raking_grid, linear_tid) = partial; + + CTA_SYNC(); + + // Reduce parallelism to one warp + if (linear_tid < RAKING_THREADS) + { + // Raking reduction in grid + T *raking_segment = BlockRakingLayout::RakingPtr(temp_storage.raking_grid, linear_tid); + partial = raking_segment[0]; + + partial = RakingReduction(reduction_op, raking_segment, partial, num_valid, Int2Type<1>()); + + int valid_raking_threads = (IS_FULL_TILE) ? + RAKING_THREADS : + (num_valid + SEGMENT_LENGTH - 1) / SEGMENT_LENGTH; + + partial = WarpReduce(temp_storage.warp_storage).template Reduce( + partial, + valid_raking_threads, + reduction_op); + + } + } + + return partial; + } + + + /// Computes a thread block-wide reduction using addition (+) as the reduction operator. The first num_valid threads each contribute one reduction partial. The return value is only valid for thread0. + template + __device__ __forceinline__ T Sum( + T partial, ///< [in] Calling thread's input partial reductions + int num_valid) ///< [in] Number of valid elements (may be less than BLOCK_THREADS) + { + cub::Sum reduction_op; + + return Reduce(partial, num_valid, reduction_op); + } + + + +}; + +CUB_NAMESPACE_END + diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/block/specializations/block_reduce_raking_commutative_only.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/block/specializations/block_reduce_raking_commutative_only.cuh new file mode 100644 index 0000000000000000000000000000000000000000..529a17092303b070633c64716ac3b5894d8bc11a --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/block/specializations/block_reduce_raking_commutative_only.cuh @@ -0,0 +1,195 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * cub::BlockReduceRakingCommutativeOnly provides raking-based methods of parallel reduction across a CUDA thread block. Does not support non-commutative reduction operators. + */ + +#pragma once + +#include "block_reduce_raking.cuh" +#include "../../warp/warp_reduce.cuh" +#include "../../thread/thread_reduce.cuh" +#include "../../config.cuh" +#include "../../util_ptx.cuh" + +CUB_NAMESPACE_BEGIN + + +/** + * \brief BlockReduceRakingCommutativeOnly provides raking-based methods of parallel reduction across a CUDA thread block. Does not support non-commutative reduction operators. Does not support block sizes that are not a multiple of the warp size. + */ +template < + typename T, ///< Data type being reduced + int BLOCK_DIM_X, ///< The thread block length in threads along the X dimension + int BLOCK_DIM_Y, ///< The thread block length in threads along the Y dimension + int BLOCK_DIM_Z, ///< The thread block length in threads along the Z dimension + int LEGACY_PTX_ARCH = 0> ///< The PTX compute capability for which to to specialize this collective +struct BlockReduceRakingCommutativeOnly +{ + /// Constants + enum + { + /// The thread block size in threads + BLOCK_THREADS = BLOCK_DIM_X * BLOCK_DIM_Y * BLOCK_DIM_Z, + }; + + // The fall-back implementation to use when BLOCK_THREADS is not a multiple of the warp size or not all threads have valid values + typedef BlockReduceRaking FallBack; + + /// Constants + enum + { + /// Number of warp threads + WARP_THREADS = CUB_WARP_THREADS(0), + + /// Whether or not to use fall-back + USE_FALLBACK = ((BLOCK_THREADS % WARP_THREADS != 0) || (BLOCK_THREADS <= WARP_THREADS)), + + /// Number of raking threads + RAKING_THREADS = WARP_THREADS, + + /// Number of threads actually sharing items with the raking threads + SHARING_THREADS = CUB_MAX(1, BLOCK_THREADS - RAKING_THREADS), + + /// Number of raking elements per warp synchronous raking thread + SEGMENT_LENGTH = SHARING_THREADS / WARP_THREADS, + }; + + /// WarpReduce utility type + typedef WarpReduce WarpReduce; + + /// Layout type for padded thread block raking grid + typedef BlockRakingLayout BlockRakingLayout; + + /// Shared memory storage layout type + union _TempStorage + { + struct DefaultStorage + { + typename WarpReduce::TempStorage warp_storage; ///< Storage for warp-synchronous reduction + typename BlockRakingLayout::TempStorage raking_grid; ///< Padded thread block raking grid + } default_storage; + + typename FallBack::TempStorage fallback_storage; ///< Fall-back storage for non-commutative block scan + }; + + + /// Alias wrapper allowing storage to be unioned + struct TempStorage : Uninitialized<_TempStorage> {}; + + + // Thread fields + _TempStorage &temp_storage; + unsigned int linear_tid; + + + /// Constructor + __device__ __forceinline__ BlockReduceRakingCommutativeOnly( + TempStorage &temp_storage) + : + temp_storage(temp_storage.Alias()), + linear_tid(RowMajorTid(BLOCK_DIM_X, BLOCK_DIM_Y, BLOCK_DIM_Z)) + {} + + + /// Computes a thread block-wide reduction using addition (+) as the reduction operator. The first num_valid threads each contribute one reduction partial. The return value is only valid for thread0. + template + __device__ __forceinline__ T Sum( + T partial, ///< [in] Calling thread's input partial reductions + int num_valid) ///< [in] Number of valid elements (may be less than BLOCK_THREADS) + { + if (USE_FALLBACK || !FULL_TILE) + { + return FallBack(temp_storage.fallback_storage).template Sum(partial, num_valid); + } + else + { + // Place partial into shared memory grid + if (linear_tid >= RAKING_THREADS) + *BlockRakingLayout::PlacementPtr(temp_storage.default_storage.raking_grid, linear_tid - RAKING_THREADS) = partial; + + CTA_SYNC(); + + // Reduce parallelism to one warp + if (linear_tid < RAKING_THREADS) + { + // Raking reduction in grid + T *raking_segment = BlockRakingLayout::RakingPtr(temp_storage.default_storage.raking_grid, linear_tid); + partial = internal::ThreadReduce(raking_segment, cub::Sum(), partial); + + // Warpscan + partial = WarpReduce(temp_storage.default_storage.warp_storage).Sum(partial); + } + } + + return partial; + } + + + /// Computes a thread block-wide reduction using the specified reduction operator. The first num_valid threads each contribute one reduction partial. The return value is only valid for thread0. + template < + bool FULL_TILE, + typename ReductionOp> + __device__ __forceinline__ T Reduce( + T partial, ///< [in] Calling thread's input partial reductions + int num_valid, ///< [in] Number of valid elements (may be less than BLOCK_THREADS) + ReductionOp reduction_op) ///< [in] Binary reduction operator + { + if (USE_FALLBACK || !FULL_TILE) + { + return FallBack(temp_storage.fallback_storage).template Reduce(partial, num_valid, reduction_op); + } + else + { + // Place partial into shared memory grid + if (linear_tid >= RAKING_THREADS) + *BlockRakingLayout::PlacementPtr(temp_storage.default_storage.raking_grid, linear_tid - RAKING_THREADS) = partial; + + CTA_SYNC(); + + // Reduce parallelism to one warp + if (linear_tid < RAKING_THREADS) + { + // Raking reduction in grid + T *raking_segment = BlockRakingLayout::RakingPtr(temp_storage.default_storage.raking_grid, linear_tid); + partial = internal::ThreadReduce(raking_segment, reduction_op, partial); + + // Warpscan + partial = WarpReduce(temp_storage.default_storage.warp_storage).Reduce(partial, reduction_op); + } + } + + return partial; + } + +}; + +CUB_NAMESPACE_END + diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/block/specializations/block_reduce_warp_reductions.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/block/specializations/block_reduce_warp_reductions.cuh new file mode 100644 index 0000000000000000000000000000000000000000..1a1b6a8f51f9068a24b408fc400b064f3991d053 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/block/specializations/block_reduce_warp_reductions.cuh @@ -0,0 +1,214 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * cub::BlockReduceWarpReductions provides variants of warp-reduction-based parallel reduction across a CUDA thread block. Supports non-commutative reduction operators. + */ + +#pragma once + +#include +#include +#include +#include + +CUB_NAMESPACE_BEGIN + + +/** + * \brief BlockReduceWarpReductions provides variants of warp-reduction-based parallel reduction across a CUDA thread block. Supports non-commutative reduction operators. + */ +template < + typename T, ///< Data type being reduced + int BLOCK_DIM_X, ///< The thread block length in threads along the X dimension + int BLOCK_DIM_Y, ///< The thread block length in threads along the Y dimension + int BLOCK_DIM_Z, ///< The thread block length in threads along the Z dimension + int LEGACY_PTX_ARCH = 0> ///< The PTX compute capability for which to to specialize this collective +struct BlockReduceWarpReductions +{ + /// Constants + enum + { + /// The thread block size in threads + BLOCK_THREADS = BLOCK_DIM_X * BLOCK_DIM_Y * BLOCK_DIM_Z, + + /// Number of warp threads + WARP_THREADS = CUB_WARP_THREADS(0), + + /// Number of active warps + WARPS = (BLOCK_THREADS + WARP_THREADS - 1) / WARP_THREADS, + + /// The logical warp size for warp reductions + LOGICAL_WARP_SIZE = CUB_MIN(BLOCK_THREADS, WARP_THREADS), + + /// Whether or not the logical warp size evenly divides the thread block size + EVEN_WARP_MULTIPLE = (BLOCK_THREADS % LOGICAL_WARP_SIZE == 0) + }; + + + /// WarpReduce utility type + typedef typename WarpReduce::InternalWarpReduce WarpReduce; + + + /// Shared memory storage layout type + struct _TempStorage + { + typename WarpReduce::TempStorage warp_reduce[WARPS]; ///< Buffer for warp-synchronous scan + T warp_aggregates[WARPS]; ///< Shared totals from each warp-synchronous scan + T block_prefix; ///< Shared prefix for the entire thread block + }; + + /// Alias wrapper allowing storage to be unioned + struct TempStorage : Uninitialized<_TempStorage> {}; + + + // Thread fields + _TempStorage &temp_storage; + int linear_tid; + int warp_id; + int lane_id; + + + /// Constructor + __device__ __forceinline__ BlockReduceWarpReductions( + TempStorage &temp_storage) + : + temp_storage(temp_storage.Alias()), + linear_tid(RowMajorTid(BLOCK_DIM_X, BLOCK_DIM_Y, BLOCK_DIM_Z)), + warp_id((WARPS == 1) ? 0 : linear_tid / WARP_THREADS), + lane_id(LaneId()) + {} + + + template + __device__ __forceinline__ T ApplyWarpAggregates( + ReductionOp reduction_op, ///< [in] Binary scan operator + T warp_aggregate, ///< [in] [lane0 only] Warp-wide aggregate reduction of input items + int num_valid, ///< [in] Number of valid elements (may be less than BLOCK_THREADS) + Int2Type /*successor_warp*/) + { + if (FULL_TILE || (SUCCESSOR_WARP * LOGICAL_WARP_SIZE < num_valid)) + { + T addend = temp_storage.warp_aggregates[SUCCESSOR_WARP]; + warp_aggregate = reduction_op(warp_aggregate, addend); + } + return ApplyWarpAggregates(reduction_op, warp_aggregate, num_valid, Int2Type()); + } + + template + __device__ __forceinline__ T ApplyWarpAggregates( + ReductionOp /*reduction_op*/, ///< [in] Binary scan operator + T warp_aggregate, ///< [in] [lane0 only] Warp-wide aggregate reduction of input items + int /*num_valid*/, ///< [in] Number of valid elements (may be less than BLOCK_THREADS) + Int2Type /*successor_warp*/) + { + return warp_aggregate; + } + + + /// Returns block-wide aggregate in thread0. + template < + bool FULL_TILE, + typename ReductionOp> + __device__ __forceinline__ T ApplyWarpAggregates( + ReductionOp reduction_op, ///< [in] Binary scan operator + T warp_aggregate, ///< [in] [lane0 only] Warp-wide aggregate reduction of input items + int num_valid) ///< [in] Number of valid elements (may be less than BLOCK_THREADS) + { + // Share lane aggregates + if (lane_id == 0) + { + detail::uninitialized_copy(temp_storage.warp_aggregates + warp_id, + warp_aggregate); + } + + CTA_SYNC(); + + // Update total aggregate in warp 0, lane 0 + if (linear_tid == 0) + { + warp_aggregate = ApplyWarpAggregates(reduction_op, warp_aggregate, num_valid, Int2Type<1>()); + } + + return warp_aggregate; + } + + + /// Computes a thread block-wide reduction using addition (+) as the reduction operator. The first num_valid threads each contribute one reduction partial. The return value is only valid for thread0. + template + __device__ __forceinline__ T Sum( + T input, ///< [in] Calling thread's input partial reductions + int num_valid) ///< [in] Number of valid elements (may be less than BLOCK_THREADS) + { + cub::Sum reduction_op; + int warp_offset = (warp_id * LOGICAL_WARP_SIZE); + int warp_num_valid = ((FULL_TILE && EVEN_WARP_MULTIPLE) || (warp_offset + LOGICAL_WARP_SIZE <= num_valid)) ? + LOGICAL_WARP_SIZE : + num_valid - warp_offset; + + // Warp reduction in every warp + T warp_aggregate = WarpReduce(temp_storage.warp_reduce[warp_id]).template Reduce<(FULL_TILE && EVEN_WARP_MULTIPLE)>( + input, + warp_num_valid, + cub::Sum()); + + // Update outputs and block_aggregate with warp-wide aggregates from lane-0s + return ApplyWarpAggregates(reduction_op, warp_aggregate, num_valid); + } + + + /// Computes a thread block-wide reduction using the specified reduction operator. The first num_valid threads each contribute one reduction partial. The return value is only valid for thread0. + template < + bool FULL_TILE, + typename ReductionOp> + __device__ __forceinline__ T Reduce( + T input, ///< [in] Calling thread's input partial reductions + int num_valid, ///< [in] Number of valid elements (may be less than BLOCK_THREADS) + ReductionOp reduction_op) ///< [in] Binary reduction operator + { + int warp_offset = warp_id * LOGICAL_WARP_SIZE; + int warp_num_valid = ((FULL_TILE && EVEN_WARP_MULTIPLE) || (warp_offset + LOGICAL_WARP_SIZE <= num_valid)) ? + LOGICAL_WARP_SIZE : + num_valid - warp_offset; + + // Warp reduction in every warp + T warp_aggregate = WarpReduce(temp_storage.warp_reduce[warp_id]).template Reduce<(FULL_TILE && EVEN_WARP_MULTIPLE)>( + input, + warp_num_valid, + reduction_op); + + // Update outputs and block_aggregate with warp-wide aggregates from lane-0s + return ApplyWarpAggregates(reduction_op, warp_aggregate, num_valid); + } + +}; + + +CUB_NAMESPACE_END + diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/block/specializations/block_scan_raking.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/block/specializations/block_scan_raking.cuh new file mode 100644 index 0000000000000000000000000000000000000000..4891dad141d1bc44323844b8946183c56969300e --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/block/specializations/block_scan_raking.cuh @@ -0,0 +1,662 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + + +/** + * \file + * cub::BlockScanRaking provides variants of raking-based parallel prefix scan across a CUDA thread block. + */ + +#pragma once + +#include + +#include +#include +#include +#include +#include +#include + +CUB_NAMESPACE_BEGIN + + +/** + * \brief BlockScanRaking provides variants of raking-based parallel prefix scan across a CUDA thread block. + */ +template < + typename T, ///< Data type being scanned + int BLOCK_DIM_X, ///< The thread block length in threads along the X dimension + int BLOCK_DIM_Y, ///< The thread block length in threads along the Y dimension + int BLOCK_DIM_Z, ///< The thread block length in threads along the Z dimension + bool MEMOIZE, ///< Whether or not to buffer outer raking scan partials to incur fewer shared memory reads at the expense of higher register pressure + int LEGACY_PTX_ARCH = 0> ///< The PTX compute capability for which to to specialize this collective +struct BlockScanRaking +{ + //--------------------------------------------------------------------- + // Types and constants + //--------------------------------------------------------------------- + + /// Constants + enum + { + /// The thread block size in threads + BLOCK_THREADS = BLOCK_DIM_X * BLOCK_DIM_Y * BLOCK_DIM_Z, + }; + + /// Layout type for padded thread block raking grid + typedef BlockRakingLayout BlockRakingLayout; + + /// Constants + enum + { + /// Number of raking threads + RAKING_THREADS = BlockRakingLayout::RAKING_THREADS, + + /// Number of raking elements per warp synchronous raking thread + SEGMENT_LENGTH = BlockRakingLayout::SEGMENT_LENGTH, + + /// Cooperative work can be entirely warp synchronous + WARP_SYNCHRONOUS = (int(BLOCK_THREADS) == int(RAKING_THREADS)), + }; + + /// WarpScan utility type + typedef WarpScan WarpScan; + + /// Shared memory storage layout type + struct _TempStorage + { + typename WarpScan::TempStorage warp_scan; ///< Buffer for warp-synchronous scan + typename BlockRakingLayout::TempStorage raking_grid; ///< Padded thread block raking grid + T block_aggregate; ///< Block aggregate + }; + + + /// Alias wrapper allowing storage to be unioned + struct TempStorage : Uninitialized<_TempStorage> {}; + + + //--------------------------------------------------------------------- + // Per-thread fields + //--------------------------------------------------------------------- + + // Thread fields + _TempStorage &temp_storage; + unsigned int linear_tid; + T cached_segment[SEGMENT_LENGTH]; + + + //--------------------------------------------------------------------- + // Utility methods + //--------------------------------------------------------------------- + + /// Templated reduction + template + __device__ __forceinline__ T GuardedReduce( + T* raking_ptr, ///< [in] Input array + ScanOp scan_op, ///< [in] Binary reduction operator + T raking_partial, ///< [in] Prefix to seed reduction with + Int2Type /*iteration*/) + { + if ((BlockRakingLayout::UNGUARDED) || (((linear_tid * SEGMENT_LENGTH) + ITERATION) < BLOCK_THREADS)) + { + T addend = raking_ptr[ITERATION]; + raking_partial = scan_op(raking_partial, addend); + } + + return GuardedReduce(raking_ptr, scan_op, raking_partial, Int2Type()); + } + + + /// Templated reduction (base case) + template + __device__ __forceinline__ T GuardedReduce( + T* /*raking_ptr*/, ///< [in] Input array + ScanOp /*scan_op*/, ///< [in] Binary reduction operator + T raking_partial, ///< [in] Prefix to seed reduction with + Int2Type /*iteration*/) + { + return raking_partial; + } + + + /// Templated copy + template + __device__ __forceinline__ void CopySegment( + T* out, ///< [out] Out array + T* in, ///< [in] Input array + Int2Type /*iteration*/) + { + out[ITERATION] = in[ITERATION]; + CopySegment(out, in, Int2Type()); + } + + + /// Templated copy (base case) + __device__ __forceinline__ void CopySegment( + T* /*out*/, ///< [out] Out array + T* /*in*/, ///< [in] Input array + Int2Type /*iteration*/) + {} + + + /// Performs upsweep raking reduction, returning the aggregate + template + __device__ __forceinline__ T Upsweep( + ScanOp scan_op) + { + T *smem_raking_ptr = BlockRakingLayout::RakingPtr(temp_storage.raking_grid, linear_tid); + + // Read data into registers + CopySegment(cached_segment, smem_raking_ptr, Int2Type<0>()); + + T raking_partial = cached_segment[0]; + + return GuardedReduce(cached_segment, scan_op, raking_partial, Int2Type<1>()); + } + + + /// Performs exclusive downsweep raking scan + template + __device__ __forceinline__ void ExclusiveDownsweep( + ScanOp scan_op, + T raking_partial, + bool apply_prefix = true) + { + T *smem_raking_ptr = BlockRakingLayout::RakingPtr(temp_storage.raking_grid, linear_tid); + + // Read data back into registers + if (!MEMOIZE) + { + CopySegment(cached_segment, smem_raking_ptr, Int2Type<0>()); + } + + internal::ThreadScanExclusive(cached_segment, cached_segment, scan_op, raking_partial, apply_prefix); + + // Write data back to smem + CopySegment(smem_raking_ptr, cached_segment, Int2Type<0>()); + } + + + /// Performs inclusive downsweep raking scan + template + __device__ __forceinline__ void InclusiveDownsweep( + ScanOp scan_op, + T raking_partial, + bool apply_prefix = true) + { + T *smem_raking_ptr = BlockRakingLayout::RakingPtr(temp_storage.raking_grid, linear_tid); + + // Read data back into registers + if (!MEMOIZE) + { + CopySegment(cached_segment, smem_raking_ptr, Int2Type<0>()); + } + + internal::ThreadScanInclusive(cached_segment, cached_segment, scan_op, raking_partial, apply_prefix); + + // Write data back to smem + CopySegment(smem_raking_ptr, cached_segment, Int2Type<0>()); + } + + + //--------------------------------------------------------------------- + // Constructors + //--------------------------------------------------------------------- + + /// Constructor + __device__ __forceinline__ BlockScanRaking( + TempStorage &temp_storage) + : + temp_storage(temp_storage.Alias()), + linear_tid(RowMajorTid(BLOCK_DIM_X, BLOCK_DIM_Y, BLOCK_DIM_Z)) + {} + + + //--------------------------------------------------------------------- + // Exclusive scans + //--------------------------------------------------------------------- + + /// Computes an exclusive thread block-wide prefix scan using the specified binary \p scan_op functor. Each thread contributes one input element. With no initial value, the output computed for thread0 is undefined. + template + __device__ __forceinline__ void ExclusiveScan( + T input, ///< [in] Calling thread's input item + T &exclusive_output, ///< [out] Calling thread's output item (may be aliased to \p input) + ScanOp scan_op) ///< [in] Binary scan operator + { + if (WARP_SYNCHRONOUS) + { + // Short-circuit directly to warp-synchronous scan + WarpScan(temp_storage.warp_scan).ExclusiveScan(input, exclusive_output, scan_op); + } + else + { + // Place thread partial into shared memory raking grid + T *placement_ptr = BlockRakingLayout::PlacementPtr(temp_storage.raking_grid, linear_tid); + detail::uninitialized_copy(placement_ptr, input); + + CTA_SYNC(); + + // Reduce parallelism down to just raking threads + if (linear_tid < RAKING_THREADS) + { + // Raking upsweep reduction across shared partials + T upsweep_partial = Upsweep(scan_op); + + // Warp-synchronous scan + T exclusive_partial; + WarpScan(temp_storage.warp_scan).ExclusiveScan(upsweep_partial, exclusive_partial, scan_op); + + // Exclusive raking downsweep scan + ExclusiveDownsweep(scan_op, exclusive_partial, (linear_tid != 0)); + } + + CTA_SYNC(); + + // Grab thread prefix from shared memory + exclusive_output = *placement_ptr; + } + } + + /// Computes an exclusive thread block-wide prefix scan using the specified binary \p scan_op functor. Each thread contributes one input element. + template + __device__ __forceinline__ void ExclusiveScan( + T input, ///< [in] Calling thread's input items + T &output, ///< [out] Calling thread's output items (may be aliased to \p input) + const T &initial_value, ///< [in] Initial value to seed the exclusive scan + ScanOp scan_op) ///< [in] Binary scan operator + { + if (WARP_SYNCHRONOUS) + { + // Short-circuit directly to warp-synchronous scan + WarpScan(temp_storage.warp_scan).ExclusiveScan(input, output, initial_value, scan_op); + } + else + { + // Place thread partial into shared memory raking grid + T *placement_ptr = BlockRakingLayout::PlacementPtr(temp_storage.raking_grid, linear_tid); + detail::uninitialized_copy(placement_ptr, input); + + CTA_SYNC(); + + // Reduce parallelism down to just raking threads + if (linear_tid < RAKING_THREADS) + { + // Raking upsweep reduction across shared partials + T upsweep_partial = Upsweep(scan_op); + + // Exclusive Warp-synchronous scan + T exclusive_partial; + WarpScan(temp_storage.warp_scan).ExclusiveScan(upsweep_partial, exclusive_partial, initial_value, scan_op); + + // Exclusive raking downsweep scan + ExclusiveDownsweep(scan_op, exclusive_partial); + } + + CTA_SYNC(); + + // Grab exclusive partial from shared memory + output = *placement_ptr; + } + } + + + /// Computes an exclusive thread block-wide prefix scan using the specified binary \p scan_op functor. Each thread contributes one input element. Also provides every thread with the block-wide \p block_aggregate of all inputs. With no initial value, the output computed for thread0 is undefined. + template + __device__ __forceinline__ void ExclusiveScan( + T input, ///< [in] Calling thread's input item + T &output, ///< [out] Calling thread's output item (may be aliased to \p input) + ScanOp scan_op, ///< [in] Binary scan operator + T &block_aggregate) ///< [out] Threadblock-wide aggregate reduction of input items + { + if (WARP_SYNCHRONOUS) + { + // Short-circuit directly to warp-synchronous scan + WarpScan(temp_storage.warp_scan).ExclusiveScan(input, output, scan_op, block_aggregate); + } + else + { + // Place thread partial into shared memory raking grid + T *placement_ptr = BlockRakingLayout::PlacementPtr(temp_storage.raking_grid, linear_tid); + detail::uninitialized_copy(placement_ptr, input); + + CTA_SYNC(); + + // Reduce parallelism down to just raking threads + if (linear_tid < RAKING_THREADS) + { + // Raking upsweep reduction across shared partials + T upsweep_partial= Upsweep(scan_op); + + // Warp-synchronous scan + T inclusive_partial; + T exclusive_partial; + WarpScan(temp_storage.warp_scan).Scan(upsweep_partial, inclusive_partial, exclusive_partial, scan_op); + + // Exclusive raking downsweep scan + ExclusiveDownsweep(scan_op, exclusive_partial, (linear_tid != 0)); + + // Broadcast aggregate to all threads + if (linear_tid == RAKING_THREADS - 1) + temp_storage.block_aggregate = inclusive_partial; + } + + CTA_SYNC(); + + // Grab thread prefix from shared memory + output = *placement_ptr; + + // Retrieve block aggregate + block_aggregate = temp_storage.block_aggregate; + } + } + + + /// Computes an exclusive thread block-wide prefix scan using the specified binary \p scan_op functor. Each thread contributes one input element. Also provides every thread with the block-wide \p block_aggregate of all inputs. + template + __device__ __forceinline__ void ExclusiveScan( + T input, ///< [in] Calling thread's input items + T &output, ///< [out] Calling thread's output items (may be aliased to \p input) + const T &initial_value, ///< [in] Initial value to seed the exclusive scan + ScanOp scan_op, ///< [in] Binary scan operator + T &block_aggregate) ///< [out] Threadblock-wide aggregate reduction of input items + { + if (WARP_SYNCHRONOUS) + { + // Short-circuit directly to warp-synchronous scan + WarpScan(temp_storage.warp_scan).ExclusiveScan(input, output, initial_value, scan_op, block_aggregate); + } + else + { + // Place thread partial into shared memory raking grid + T *placement_ptr = BlockRakingLayout::PlacementPtr(temp_storage.raking_grid, linear_tid); + detail::uninitialized_copy(placement_ptr, input); + + CTA_SYNC(); + + // Reduce parallelism down to just raking threads + if (linear_tid < RAKING_THREADS) + { + // Raking upsweep reduction across shared partials + T upsweep_partial = Upsweep(scan_op); + + // Warp-synchronous scan + T exclusive_partial; + WarpScan(temp_storage.warp_scan).ExclusiveScan(upsweep_partial, exclusive_partial, initial_value, scan_op, block_aggregate); + + // Exclusive raking downsweep scan + ExclusiveDownsweep(scan_op, exclusive_partial); + + // Broadcast aggregate to other threads + if (linear_tid == 0) + temp_storage.block_aggregate = block_aggregate; + } + + CTA_SYNC(); + + // Grab exclusive partial from shared memory + output = *placement_ptr; + + // Retrieve block aggregate + block_aggregate = temp_storage.block_aggregate; + } + } + + + /// Computes an exclusive thread block-wide prefix scan using the specified binary \p scan_op functor. Each thread contributes one input element. the call-back functor \p block_prefix_callback_op is invoked by the first warp in the block, and the value returned by lane0 in that warp is used as the "seed" value that logically prefixes the thread block's scan inputs. Also provides every thread with the block-wide \p block_aggregate of all inputs. + template < + typename ScanOp, + typename BlockPrefixCallbackOp> + __device__ __forceinline__ void ExclusiveScan( + T input, ///< [in] Calling thread's input item + T &output, ///< [out] Calling thread's output item (may be aliased to \p input) + ScanOp scan_op, ///< [in] Binary scan operator + BlockPrefixCallbackOp &block_prefix_callback_op) ///< [in-out] [warp0 only] Call-back functor for specifying a thread block-wide prefix to be applied to all inputs. + { + if (WARP_SYNCHRONOUS) + { + // Short-circuit directly to warp-synchronous scan + T block_aggregate; + WarpScan warp_scan(temp_storage.warp_scan); + warp_scan.ExclusiveScan(input, output, scan_op, block_aggregate); + + // Obtain warp-wide prefix in lane0, then broadcast to other lanes + T block_prefix = block_prefix_callback_op(block_aggregate); + block_prefix = warp_scan.Broadcast(block_prefix, 0); + + output = scan_op(block_prefix, output); + if (linear_tid == 0) + output = block_prefix; + } + else + { + // Place thread partial into shared memory raking grid + T *placement_ptr = BlockRakingLayout::PlacementPtr(temp_storage.raking_grid, linear_tid); + detail::uninitialized_copy(placement_ptr, input); + + CTA_SYNC(); + + // Reduce parallelism down to just raking threads + if (linear_tid < RAKING_THREADS) + { + WarpScan warp_scan(temp_storage.warp_scan); + + // Raking upsweep reduction across shared partials + T upsweep_partial = Upsweep(scan_op); + + // Warp-synchronous scan + T exclusive_partial, block_aggregate; + warp_scan.ExclusiveScan(upsweep_partial, exclusive_partial, scan_op, block_aggregate); + + // Obtain block-wide prefix in lane0, then broadcast to other lanes + T block_prefix = block_prefix_callback_op(block_aggregate); + block_prefix = warp_scan.Broadcast(block_prefix, 0); + + // Update prefix with warpscan exclusive partial + T downsweep_prefix = scan_op(block_prefix, exclusive_partial); + if (linear_tid == 0) + downsweep_prefix = block_prefix; + + // Exclusive raking downsweep scan + ExclusiveDownsweep(scan_op, downsweep_prefix); + } + + CTA_SYNC(); + + // Grab thread prefix from shared memory + output = *placement_ptr; + } + } + + + //--------------------------------------------------------------------- + // Inclusive scans + //--------------------------------------------------------------------- + + /// Computes an inclusive thread block-wide prefix scan using the specified binary \p scan_op functor. Each thread contributes one input element. + template + __device__ __forceinline__ void InclusiveScan( + T input, ///< [in] Calling thread's input item + T &output, ///< [out] Calling thread's output item (may be aliased to \p input) + ScanOp scan_op) ///< [in] Binary scan operator + { + if (WARP_SYNCHRONOUS) + { + // Short-circuit directly to warp-synchronous scan + WarpScan(temp_storage.warp_scan).InclusiveScan(input, output, scan_op); + } + else + { + // Place thread partial into shared memory raking grid + T *placement_ptr = BlockRakingLayout::PlacementPtr(temp_storage.raking_grid, linear_tid); + detail::uninitialized_copy(placement_ptr, input); + + CTA_SYNC(); + + // Reduce parallelism down to just raking threads + if (linear_tid < RAKING_THREADS) + { + // Raking upsweep reduction across shared partials + T upsweep_partial = Upsweep(scan_op); + + // Exclusive Warp-synchronous scan + T exclusive_partial; + WarpScan(temp_storage.warp_scan).ExclusiveScan(upsweep_partial, exclusive_partial, scan_op); + + // Inclusive raking downsweep scan + InclusiveDownsweep(scan_op, exclusive_partial, (linear_tid != 0)); + } + + CTA_SYNC(); + + // Grab thread prefix from shared memory + output = *placement_ptr; + } + } + + + /// Computes an inclusive thread block-wide prefix scan using the specified binary \p scan_op functor. Each thread contributes one input element. Also provides every thread with the block-wide \p block_aggregate of all inputs. + template + __device__ __forceinline__ void InclusiveScan( + T input, ///< [in] Calling thread's input item + T &output, ///< [out] Calling thread's output item (may be aliased to \p input) + ScanOp scan_op, ///< [in] Binary scan operator + T &block_aggregate) ///< [out] Threadblock-wide aggregate reduction of input items + { + if (WARP_SYNCHRONOUS) + { + // Short-circuit directly to warp-synchronous scan + WarpScan(temp_storage.warp_scan).InclusiveScan(input, output, scan_op, block_aggregate); + } + else + { + // Place thread partial into shared memory raking grid + T *placement_ptr = BlockRakingLayout::PlacementPtr(temp_storage.raking_grid, linear_tid); + detail::uninitialized_copy(placement_ptr, input); + + CTA_SYNC(); + + // Reduce parallelism down to just raking threads + if (linear_tid < RAKING_THREADS) + { + // Raking upsweep reduction across shared partials + T upsweep_partial = Upsweep(scan_op); + + // Warp-synchronous scan + T inclusive_partial; + T exclusive_partial; + WarpScan(temp_storage.warp_scan).Scan(upsweep_partial, inclusive_partial, exclusive_partial, scan_op); + + // Inclusive raking downsweep scan + InclusiveDownsweep(scan_op, exclusive_partial, (linear_tid != 0)); + + // Broadcast aggregate to all threads + if (linear_tid == RAKING_THREADS - 1) + temp_storage.block_aggregate = inclusive_partial; + } + + CTA_SYNC(); + + // Grab thread prefix from shared memory + output = *placement_ptr; + + // Retrieve block aggregate + block_aggregate = temp_storage.block_aggregate; + } + } + + + /// Computes an inclusive thread block-wide prefix scan using the specified binary \p scan_op functor. Each thread contributes one input element. the call-back functor \p block_prefix_callback_op is invoked by the first warp in the block, and the value returned by lane0 in that warp is used as the "seed" value that logically prefixes the thread block's scan inputs. Also provides every thread with the block-wide \p block_aggregate of all inputs. + template < + typename ScanOp, + typename BlockPrefixCallbackOp> + __device__ __forceinline__ void InclusiveScan( + T input, ///< [in] Calling thread's input item + T &output, ///< [out] Calling thread's output item (may be aliased to \p input) + ScanOp scan_op, ///< [in] Binary scan operator + BlockPrefixCallbackOp &block_prefix_callback_op) ///< [in-out] [warp0 only] Call-back functor for specifying a thread block-wide prefix to be applied to all inputs. + { + if (WARP_SYNCHRONOUS) + { + // Short-circuit directly to warp-synchronous scan + T block_aggregate; + WarpScan warp_scan(temp_storage.warp_scan); + warp_scan.InclusiveScan(input, output, scan_op, block_aggregate); + + // Obtain warp-wide prefix in lane0, then broadcast to other lanes + T block_prefix = block_prefix_callback_op(block_aggregate); + block_prefix = warp_scan.Broadcast(block_prefix, 0); + + // Update prefix with exclusive warpscan partial + output = scan_op(block_prefix, output); + } + else + { + // Place thread partial into shared memory raking grid + T *placement_ptr = BlockRakingLayout::PlacementPtr(temp_storage.raking_grid, linear_tid); + detail::uninitialized_copy(placement_ptr, input); + + CTA_SYNC(); + + // Reduce parallelism down to just raking threads + if (linear_tid < RAKING_THREADS) + { + WarpScan warp_scan(temp_storage.warp_scan); + + // Raking upsweep reduction across shared partials + T upsweep_partial = Upsweep(scan_op); + + // Warp-synchronous scan + T exclusive_partial, block_aggregate; + warp_scan.ExclusiveScan(upsweep_partial, exclusive_partial, scan_op, block_aggregate); + + // Obtain block-wide prefix in lane0, then broadcast to other lanes + T block_prefix = block_prefix_callback_op(block_aggregate); + block_prefix = warp_scan.Broadcast(block_prefix, 0); + + // Update prefix with warpscan exclusive partial + T downsweep_prefix = scan_op(block_prefix, exclusive_partial); + if (linear_tid == 0) + downsweep_prefix = block_prefix; + + // Inclusive raking downsweep scan + InclusiveDownsweep(scan_op, downsweep_prefix); + } + + CTA_SYNC(); + + // Grab thread prefix from shared memory + output = *placement_ptr; + } + } + +}; + + +CUB_NAMESPACE_END + diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/block/specializations/block_scan_warp_scans.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/block/specializations/block_scan_warp_scans.cuh new file mode 100644 index 0000000000000000000000000000000000000000..f76131a78569066c5f60970fa742d26f007a64a8 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/block/specializations/block_scan_warp_scans.cuh @@ -0,0 +1,393 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * cub::BlockScanWarpscans provides warpscan-based variants of parallel prefix scan across a CUDA thread block. + */ + +#pragma once + +#include +#include +#include +#include + +CUB_NAMESPACE_BEGIN + +/** + * \brief BlockScanWarpScans provides warpscan-based variants of parallel prefix scan across a CUDA thread block. + */ +template < + typename T, + int BLOCK_DIM_X, ///< The thread block length in threads along the X dimension + int BLOCK_DIM_Y, ///< The thread block length in threads along the Y dimension + int BLOCK_DIM_Z, ///< The thread block length in threads along the Z dimension + int LEGACY_PTX_ARCH = 0> ///< The PTX compute capability for which to to specialize this collective +struct BlockScanWarpScans +{ + //--------------------------------------------------------------------- + // Types and constants + //--------------------------------------------------------------------- + + /// Constants + enum + { + /// Number of warp threads + WARP_THREADS = CUB_WARP_THREADS(0), + + /// The thread block size in threads + BLOCK_THREADS = BLOCK_DIM_X * BLOCK_DIM_Y * BLOCK_DIM_Z, + + /// Number of active warps + WARPS = (BLOCK_THREADS + WARP_THREADS - 1) / WARP_THREADS, + }; + + /// WarpScan utility type + typedef WarpScan WarpScanT; + + /// WarpScan utility type + typedef WarpScan WarpAggregateScan; + + /// Shared memory storage layout type + + struct __align__(32) _TempStorage + { + T warp_aggregates[WARPS]; + typename WarpScanT::TempStorage warp_scan[WARPS]; ///< Buffer for warp-synchronous scans + T block_prefix; ///< Shared prefix for the entire thread block + }; + + + /// Alias wrapper allowing storage to be unioned + struct TempStorage : Uninitialized<_TempStorage> {}; + + + //--------------------------------------------------------------------- + // Per-thread fields + //--------------------------------------------------------------------- + + // Thread fields + _TempStorage &temp_storage; + unsigned int linear_tid; + unsigned int warp_id; + unsigned int lane_id; + + + //--------------------------------------------------------------------- + // Constructors + //--------------------------------------------------------------------- + + /// Constructor + __device__ __forceinline__ BlockScanWarpScans( + TempStorage &temp_storage) + : + temp_storage(temp_storage.Alias()), + linear_tid(RowMajorTid(BLOCK_DIM_X, BLOCK_DIM_Y, BLOCK_DIM_Z)), + warp_id((WARPS == 1) ? 0 : linear_tid / WARP_THREADS), + lane_id(LaneId()) + {} + + + //--------------------------------------------------------------------- + // Utility methods + //--------------------------------------------------------------------- + + template + __device__ __forceinline__ void ApplyWarpAggregates( + T &warp_prefix, ///< [out] The calling thread's partial reduction + ScanOp scan_op, ///< [in] Binary scan operator + T &block_aggregate, ///< [out] Threadblock-wide aggregate reduction of input items + Int2Type /*addend_warp*/) + { + if (warp_id == WARP) + warp_prefix = block_aggregate; + + T addend = temp_storage.warp_aggregates[WARP]; + block_aggregate = scan_op(block_aggregate, addend); + + ApplyWarpAggregates(warp_prefix, scan_op, block_aggregate, Int2Type()); + } + + template + __device__ __forceinline__ void ApplyWarpAggregates( + T &/*warp_prefix*/, ///< [out] The calling thread's partial reduction + ScanOp /*scan_op*/, ///< [in] Binary scan operator + T &/*block_aggregate*/, ///< [out] Threadblock-wide aggregate reduction of input items + Int2Type /*addend_warp*/) + {} + + + /// Use the warp-wide aggregates to compute the calling warp's prefix. Also returns block-wide aggregate in all threads. + template + __device__ __forceinline__ T ComputeWarpPrefix( + ScanOp scan_op, ///< [in] Binary scan operator + T warp_aggregate, ///< [in] [laneWARP_THREADS - 1 only] Warp-wide aggregate reduction of input items + T &block_aggregate) ///< [out] Threadblock-wide aggregate reduction of input items + { + // Last lane in each warp shares its warp-aggregate + if (lane_id == WARP_THREADS - 1) + { + detail::uninitialized_copy(temp_storage.warp_aggregates + warp_id, + warp_aggregate); + } + + CTA_SYNC(); + + // Accumulate block aggregates and save the one that is our warp's prefix + T warp_prefix; + block_aggregate = temp_storage.warp_aggregates[0]; + + // Use template unrolling (since the PTX backend can't handle unrolling it for SM1x) + ApplyWarpAggregates(warp_prefix, scan_op, block_aggregate, Int2Type<1>()); +/* + #pragma unroll + for (int WARP = 1; WARP < WARPS; ++WARP) + { + if (warp_id == WARP) + warp_prefix = block_aggregate; + + T addend = temp_storage.warp_aggregates[WARP]; + block_aggregate = scan_op(block_aggregate, addend); + } +*/ + + return warp_prefix; + } + + + /// Use the warp-wide aggregates and initial-value to compute the calling warp's prefix. Also returns block-wide aggregate in all threads. + template + __device__ __forceinline__ T ComputeWarpPrefix( + ScanOp scan_op, ///< [in] Binary scan operator + T warp_aggregate, ///< [in] [laneWARP_THREADS - 1 only] Warp-wide aggregate reduction of input items + T &block_aggregate, ///< [out] Threadblock-wide aggregate reduction of input items + const T &initial_value) ///< [in] Initial value to seed the exclusive scan + { + T warp_prefix = ComputeWarpPrefix(scan_op, warp_aggregate, block_aggregate); + + warp_prefix = scan_op(initial_value, warp_prefix); + + if (warp_id == 0) + warp_prefix = initial_value; + + return warp_prefix; + } + + //--------------------------------------------------------------------- + // Exclusive scans + //--------------------------------------------------------------------- + + /// Computes an exclusive thread block-wide prefix scan using the specified binary \p scan_op functor. Each thread contributes one input element. With no initial value, the output computed for thread0 is undefined. + template + __device__ __forceinline__ void ExclusiveScan( + T input, ///< [in] Calling thread's input item + T &exclusive_output, ///< [out] Calling thread's output item (may be aliased to \p input) + ScanOp scan_op) ///< [in] Binary scan operator + { + // Compute block-wide exclusive scan. The exclusive output from tid0 is invalid. + T block_aggregate; + ExclusiveScan(input, exclusive_output, scan_op, block_aggregate); + } + + + /// Computes an exclusive thread block-wide prefix scan using the specified binary \p scan_op functor. Each thread contributes one input element. + template + __device__ __forceinline__ void ExclusiveScan( + T input, ///< [in] Calling thread's input items + T &exclusive_output, ///< [out] Calling thread's output items (may be aliased to \p input) + const T &initial_value, ///< [in] Initial value to seed the exclusive scan + ScanOp scan_op) ///< [in] Binary scan operator + { + T block_aggregate; + ExclusiveScan(input, exclusive_output, initial_value, scan_op, block_aggregate); + } + + + /// Computes an exclusive thread block-wide prefix scan using the specified binary \p scan_op functor. Each thread contributes one input element. Also provides every thread with the block-wide \p block_aggregate of all inputs. With no initial value, the output computed for thread0 is undefined. + template + __device__ __forceinline__ void ExclusiveScan( + T input, ///< [in] Calling thread's input item + T &exclusive_output, ///< [out] Calling thread's output item (may be aliased to \p input) + ScanOp scan_op, ///< [in] Binary scan operator + T &block_aggregate) ///< [out] Threadblock-wide aggregate reduction of input items + { + // Compute warp scan in each warp. The exclusive output from each lane0 is invalid. + T inclusive_output; + WarpScanT(temp_storage.warp_scan[warp_id]).Scan(input, inclusive_output, exclusive_output, scan_op); + + // Compute the warp-wide prefix and block-wide aggregate for each warp. Warp prefix for warp0 is invalid. + T warp_prefix = ComputeWarpPrefix(scan_op, inclusive_output, block_aggregate); + + // Apply warp prefix to our lane's partial + if (warp_id != 0) + { + exclusive_output = scan_op(warp_prefix, exclusive_output); + if (lane_id == 0) + exclusive_output = warp_prefix; + } + } + + + /// Computes an exclusive thread block-wide prefix scan using the specified binary \p scan_op functor. Each thread contributes one input element. Also provides every thread with the block-wide \p block_aggregate of all inputs. + template + __device__ __forceinline__ void ExclusiveScan( + T input, ///< [in] Calling thread's input items + T &exclusive_output, ///< [out] Calling thread's output items (may be aliased to \p input) + const T &initial_value, ///< [in] Initial value to seed the exclusive scan + ScanOp scan_op, ///< [in] Binary scan operator + T &block_aggregate) ///< [out] Threadblock-wide aggregate reduction of input items + { + // Compute warp scan in each warp. The exclusive output from each lane0 is invalid. + T inclusive_output; + WarpScanT(temp_storage.warp_scan[warp_id]).Scan(input, inclusive_output, exclusive_output, scan_op); + + // Compute the warp-wide prefix and block-wide aggregate for each warp + T warp_prefix = ComputeWarpPrefix(scan_op, inclusive_output, block_aggregate, initial_value); + + // Apply warp prefix to our lane's partial + exclusive_output = scan_op(warp_prefix, exclusive_output); + if (lane_id == 0) + exclusive_output = warp_prefix; + } + + + /// Computes an exclusive thread block-wide prefix scan using the specified binary \p scan_op functor. Each thread contributes one input element. the call-back functor \p block_prefix_callback_op is invoked by the first warp in the block, and the value returned by lane0 in that warp is used as the "seed" value that logically prefixes the thread block's scan inputs. Also provides every thread with the block-wide \p block_aggregate of all inputs. + template < + typename ScanOp, + typename BlockPrefixCallbackOp> + __device__ __forceinline__ void ExclusiveScan( + T input, ///< [in] Calling thread's input item + T &exclusive_output, ///< [out] Calling thread's output item (may be aliased to \p input) + ScanOp scan_op, ///< [in] Binary scan operator + BlockPrefixCallbackOp &block_prefix_callback_op) ///< [in-out] [warp0 only] Call-back functor for specifying a thread block-wide prefix to be applied to all inputs. + { + // Compute block-wide exclusive scan. The exclusive output from tid0 is invalid. + T block_aggregate; + ExclusiveScan(input, exclusive_output, scan_op, block_aggregate); + + // Use the first warp to determine the thread block prefix, returning the result in lane0 + if (warp_id == 0) + { + T block_prefix = block_prefix_callback_op(block_aggregate); + if (lane_id == 0) + { + // Share the prefix with all threads + detail::uninitialized_copy(&temp_storage.block_prefix, + block_prefix); + + exclusive_output = block_prefix; // The block prefix is the exclusive output for tid0 + } + } + + CTA_SYNC(); + + // Incorporate thread block prefix into outputs + T block_prefix = temp_storage.block_prefix; + if (linear_tid > 0) + { + exclusive_output = scan_op(block_prefix, exclusive_output); + } + } + + + //--------------------------------------------------------------------- + // Inclusive scans + //--------------------------------------------------------------------- + + /// Computes an inclusive thread block-wide prefix scan using the specified binary \p scan_op functor. Each thread contributes one input element. + template + __device__ __forceinline__ void InclusiveScan( + T input, ///< [in] Calling thread's input item + T &inclusive_output, ///< [out] Calling thread's output item (may be aliased to \p input) + ScanOp scan_op) ///< [in] Binary scan operator + { + T block_aggregate; + InclusiveScan(input, inclusive_output, scan_op, block_aggregate); + } + + + /// Computes an inclusive thread block-wide prefix scan using the specified binary \p scan_op functor. Each thread contributes one input element. Also provides every thread with the block-wide \p block_aggregate of all inputs. + template + __device__ __forceinline__ void InclusiveScan( + T input, ///< [in] Calling thread's input item + T &inclusive_output, ///< [out] Calling thread's output item (may be aliased to \p input) + ScanOp scan_op, ///< [in] Binary scan operator + T &block_aggregate) ///< [out] Threadblock-wide aggregate reduction of input items + { + WarpScanT(temp_storage.warp_scan[warp_id]).InclusiveScan(input, inclusive_output, scan_op); + + // Compute the warp-wide prefix and block-wide aggregate for each warp. Warp prefix for warp0 is invalid. + T warp_prefix = ComputeWarpPrefix(scan_op, inclusive_output, block_aggregate); + + // Apply warp prefix to our lane's partial + if (warp_id != 0) + { + inclusive_output = scan_op(warp_prefix, inclusive_output); + } + } + + + /// Computes an inclusive thread block-wide prefix scan using the specified binary \p scan_op functor. Each thread contributes one input element. the call-back functor \p block_prefix_callback_op is invoked by the first warp in the block, and the value returned by lane0 in that warp is used as the "seed" value that logically prefixes the thread block's scan inputs. Also provides every thread with the block-wide \p block_aggregate of all inputs. + template < + typename ScanOp, + typename BlockPrefixCallbackOp> + __device__ __forceinline__ void InclusiveScan( + T input, ///< [in] Calling thread's input item + T &exclusive_output, ///< [out] Calling thread's output item (may be aliased to \p input) + ScanOp scan_op, ///< [in] Binary scan operator + BlockPrefixCallbackOp &block_prefix_callback_op) ///< [in-out] [warp0 only] Call-back functor for specifying a thread block-wide prefix to be applied to all inputs. + { + T block_aggregate; + InclusiveScan(input, exclusive_output, scan_op, block_aggregate); + + // Use the first warp to determine the thread block prefix, returning the result in lane0 + if (warp_id == 0) + { + T block_prefix = block_prefix_callback_op(block_aggregate); + if (lane_id == 0) + { + // Share the prefix with all threads + detail::uninitialized_copy(&temp_storage.block_prefix, + block_prefix); + } + } + + CTA_SYNC(); + + // Incorporate thread block prefix into outputs + T block_prefix = temp_storage.block_prefix; + exclusive_output = scan_op(block_prefix, exclusive_output); + } + + +}; + + +CUB_NAMESPACE_END + diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/config.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/config.cuh new file mode 100644 index 0000000000000000000000000000000000000000..b909bbf723708e59a121b5525c628f6715e24c86 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/config.cuh @@ -0,0 +1,40 @@ +/****************************************************************************** + * Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * Static configuration header for the CUB project. + */ + +#pragma once + +#include "util_arch.cuh" +#include "util_compiler.cuh" +#include "util_cpp_dialect.cuh" +#include "util_deprecated.cuh" +#include "util_macro.cuh" +#include "util_namespace.cuh" diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/cub.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/cub.cuh new file mode 100644 index 0000000000000000000000000000000000000000..18dc2c0034d5ff7bd21a827fc582ce216d06d2c2 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/cub.cuh @@ -0,0 +1,109 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * CUB umbrella include file + */ + +#pragma once + +// Static configuration +#include "config.cuh" + +// Block +#include "block/block_adjacent_difference.cuh" +#include "block/block_discontinuity.cuh" +#include "block/block_exchange.cuh" +#include "block/block_histogram.cuh" +#include "block/block_load.cuh" +#include "block/block_merge_sort.cuh" +#include "block/block_radix_rank.cuh" +#include "block/block_radix_sort.cuh" +#include "block/block_reduce.cuh" +#include "block/block_scan.cuh" +#include "block/block_store.cuh" +//#include "block/block_shift.cuh" + +// Device +#include "device/device_adjacent_difference.cuh" +#include "device/device_copy.cuh" +#include "device/device_histogram.cuh" +#include "device/device_memcpy.cuh" +#include "device/device_merge_sort.cuh" +#include "device/device_partition.cuh" +#include "device/device_radix_sort.cuh" +#include "device/device_reduce.cuh" +#include "device/device_run_length_encode.cuh" +#include "device/device_scan.cuh" +#include "device/device_segmented_radix_sort.cuh" +#include "device/device_segmented_reduce.cuh" +#include "device/device_segmented_sort.cuh" +#include "device/device_select.cuh" +#include "device/device_spmv.cuh" + +// Grid +//#include "grid/grid_barrier.cuh" +#include "grid/grid_even_share.cuh" +#include "grid/grid_mapping.cuh" +#include "grid/grid_queue.cuh" + +// Thread +#include "thread/thread_load.cuh" +#include "thread/thread_operators.cuh" +#include "thread/thread_reduce.cuh" +#include "thread/thread_scan.cuh" +#include "thread/thread_store.cuh" + +// Warp +#include "warp/warp_exchange.cuh" +#include "warp/warp_load.cuh" +#include "warp/warp_merge_sort.cuh" +#include "warp/warp_reduce.cuh" +#include "warp/warp_scan.cuh" +#include "warp/warp_store.cuh" + +// Iterator +#include "iterator/arg_index_input_iterator.cuh" +#include "iterator/cache_modified_input_iterator.cuh" +#include "iterator/cache_modified_output_iterator.cuh" +#include "iterator/constant_input_iterator.cuh" +#include "iterator/counting_input_iterator.cuh" +#include "iterator/discard_output_iterator.cuh" +#include "iterator/tex_obj_input_iterator.cuh" +#include "iterator/tex_ref_input_iterator.cuh" +#include "iterator/transform_input_iterator.cuh" + +// Util +#include "util_allocator.cuh" +#include "util_arch.cuh" +#include "util_debug.cuh" +#include "util_device.cuh" +#include "util_macro.cuh" +#include "util_ptx.cuh" +#include "util_type.cuh" diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/detail/choose_offset.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/detail/choose_offset.cuh new file mode 100644 index 0000000000000000000000000000000000000000..ed703e26c9db9eeb611883b6be851e0c2da13dc2 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/detail/choose_offset.cuh @@ -0,0 +1,62 @@ +/****************************************************************************** + * Copyright (c) 2011-2022, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +#pragma once + +#include + +#include +#include + +CUB_NAMESPACE_BEGIN + +namespace detail +{ + +/** + * ChooseOffsetT checks NumItemsT, the type of the num_items parameter, and + * selects the offset type based on it. + */ +template +struct ChooseOffsetT +{ + // NumItemsT must be an integral type (but not bool). + static_assert( + std::is_integral::value && + !std::is_same::type, bool>::value, + "NumItemsT must be an integral type, but not bool"); + + // Unsigned integer type for global offsets. + using Type = typename std::conditional::type; +}; + +} // namespace detail + +CUB_NAMESPACE_END + diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/detail/cpp_compatibility.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/detail/cpp_compatibility.cuh new file mode 100644 index 0000000000000000000000000000000000000000..c4fbe649692e003118c41d34077665c305a01d68 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/detail/cpp_compatibility.cuh @@ -0,0 +1,28 @@ +/* +* Copyright 2022 NVIDIA Corporation +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + + +#pragma once + +#include + +#if CUB_CPP_DIALECT >= 2017 && __cpp_if_constexpr +# define CUB_IF_CONSTEXPR if constexpr +# define CUB_ELSE_IF_CONSTEXPR else if constexpr +#else +# define CUB_IF_CONSTEXPR if +# define CUB_ELSE_IF_CONSTEXPR else if +#endif diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/detail/detect_cuda_runtime.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/detail/detect_cuda_runtime.cuh new file mode 100644 index 0000000000000000000000000000000000000000..a2af93b7189bcff8de763a2fee12c68ecd096640 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/detail/detect_cuda_runtime.cuh @@ -0,0 +1,116 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2021, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * Utilities for CUDA dynamic parallelism. + */ + +#pragma once + +#include + +#include + +CUB_NAMESPACE_BEGIN +namespace detail +{ + +#ifdef DOXYGEN_SHOULD_SKIP_THIS // Only parse this during doxygen passes: + +/** + * \def CUB_DISABLE_CDP + * + * If defined, support for device-side usage of CUB is disabled. + */ +#define CUB_DISABLE_CDP + +/** + * \def CUB_RDC_ENABLED + * + * Defined if RDC is enabled and CUB_DISABLE_CDP is not defined. + */ +#define CUB_RDC_ENABLED + +/** + * \def CUB_RUNTIME_FUNCTION + * + * Execution space for functions that can use the CUDA runtime API (`__host__` + * when RDC is off, `__host__ __device__` when RDC is on). + */ +#define CUB_RUNTIME_FUNCTION + +/** + * \def CUB_RUNTIME_ENABLED + * + * Whether or not the active compiler pass is allowed to invoke device kernels + * or methods from the CUDA runtime API. + * + * This macro should not be used in CUB, as it depends on `__CUDA_ARCH__` + * and is not compatible with `NV_IF_TARGET`. It is provided for legacy + * purposes only. + * + * Replace any usages with `CUB_RDC_ENABLED` and `NV_IF_TARGET`. + */ +#define CUB_RUNTIME_ENABLED + +#else // Non-doxygen pass: + +#ifndef CUB_RUNTIME_FUNCTION + +#if defined(__CUDACC_RDC__) && !defined(CUB_DISABLE_CDP) + +#define CUB_RDC_ENABLED +#define CUB_RUNTIME_FUNCTION __host__ __device__ + +#else // RDC disabled: + +#define CUB_RUNTIME_FUNCTION __host__ + +#endif // RDC enabled + +#if !defined(__CUDA_ARCH__) || defined(__CUDACC_RDC__) +// Legacy only -- do not use in new code. +#define CUB_RUNTIME_ENABLED +#endif + +#endif // CUB_RUNTIME_FUNCTION predefined + +#ifdef CUB_RDC_ENABLED +// Detect available version of CDP: +#if __CUDACC_VER_MAJOR__ < 12 || defined(CUDA_FORCE_CDP1_IF_SUPPORTED) +#define CUB_DETAIL_CDPv1 +#else +#define CUB_DETAIL_CDPv2 +#endif +#endif + +#endif // Do not document + +} // namespace detail +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/detail/device_double_buffer.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/detail/device_double_buffer.cuh new file mode 100644 index 0000000000000000000000000000000000000000..c427dcb438ba3d1f808b8bcb0a80671f13fe8720 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/detail/device_double_buffer.cuh @@ -0,0 +1,90 @@ +/* + * Copyright 2021 NVIDIA Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma once + +#include + + +CUB_NAMESPACE_BEGIN + +namespace detail +{ + + +/** + * @brief It's a double-buffer storage wrapper for multi-pass stream + * transformations that require more than one storage array for + * streaming intermediate results back and forth. + * + * Many multi-pass computations require a pair of "ping-pong" storage buffers + * (e.g., one for reading from and the other for writing to, and then + * vice-versa for the subsequent pass). This structure wraps a set of device + * buffers. + * + * Unlike `cub::DoubleBuffer` this class doesn't provide a "selector" member + * to track which buffer is "current". The main reason for this class existence + * is the performance difference. Since `cub::DoubleBuffer` relies on the + * runtime variable to index pointers arrays, they are placed in the local + * memory instead of registers. Local memory accesses significantly affect + * performance. On the contrary, this class swaps pointer, so all operations + * can be performed in registers. + */ +template +class device_double_buffer +{ + /// Pair of device buffer pointers + T *m_current_buffer {}; + T *m_alternate_buffer {}; + +public: + /** + * @param d_current + * The currently valid buffer + * + * @param d_alternate + * Alternate storage buffer of the same size as @p d_current + */ + __host__ __device__ __forceinline__ device_double_buffer(T *current, + T *alternate) + : m_current_buffer(current) + , m_alternate_buffer(alternate) + {} + + /// \brief Return pointer to the currently valid buffer + __host__ __device__ __forceinline__ T *current() const + { + return m_current_buffer; + } + + /// \brief Return pointer to the currently invalid buffer + __host__ __device__ __forceinline__ T *alternate() const + { + return m_alternate_buffer; + } + + __host__ __device__ void swap() + { + T *tmp = m_current_buffer; + m_current_buffer = m_alternate_buffer; + m_alternate_buffer = tmp; + } +}; + + +} // namespace detail + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/detail/device_synchronize.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/detail/device_synchronize.cuh new file mode 100644 index 0000000000000000000000000000000000000000..9da0a361aff13ef689c2d6cd693b748353f8128b --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/detail/device_synchronize.cuh @@ -0,0 +1,71 @@ +/* + * Copyright 2021 NVIDIA Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma once + +#include +#include +#include +#include + +#include + +#include + +CUB_NAMESPACE_BEGIN + +namespace detail +{ + +/** + * Call `cudaDeviceSynchronize()` using the proper API for the current CUB and + * CUDA configuration. + */ +CUB_EXEC_CHECK_DISABLE +CUB_RUNTIME_FUNCTION inline cudaError_t device_synchronize() +{ + cudaError_t result = cudaErrorNotSupported; + + // Device-side sync is only available under CDPv1: +#if defined(CUB_DETAIL_CDPv1) + +#if ((__CUDACC_VER_MAJOR__ > 11) || \ + ((__CUDACC_VER_MAJOR__ == 11) && (__CUDACC_VER_MINOR__ >= 6))) + // CUDA >= 11.6 +#define CUB_TMP_DEVICE_SYNC_IMPL \ + result = __cudaDeviceSynchronizeDeprecationAvoidance(); +#else // CUDA < 11.6: +#define CUB_TMP_DEVICE_SYNC_IMPL result = cudaDeviceSynchronize(); +#endif + +#else // CDPv2 or no CDP: + +#define CUB_TMP_DEVICE_SYNC_IMPL /* unavailable */ + +#endif // CDP version + + NV_IF_TARGET(NV_IS_HOST, + (result = cudaDeviceSynchronize();), + (CUB_TMP_DEVICE_SYNC_IMPL)); + +#undef CUB_TMP_DEVICE_SYNC_IMPL + + return result; +} + +} // namespace detail + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/detail/exec_check_disable.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/detail/exec_check_disable.cuh new file mode 100644 index 0000000000000000000000000000000000000000..c5f4b4572c7b2d79e4c2917ea2fc546c5ca8f3be --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/detail/exec_check_disable.cuh @@ -0,0 +1,41 @@ +/* +* Copyright 2021 NVIDIA Corporation +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +#pragma once + +#include + +/** + * @def CUB_EXEC_CHECK_DISABLE + * Wrapper around `#pragma nv_exec_check_disable`. + */ + +// #pragma nv_exec_check_disable is only recognized by NVCC. +#if defined(__CUDACC__) && \ + !defined(_NVHPC_CUDA) && \ + !(defined(__CUDA__) && defined(__clang__)) + +#if CUB_HOST_COMPILER == CUB_HOST_COMPILER_MSVC +#define CUB_EXEC_CHECK_DISABLE __pragma("nv_exec_check_disable") +#else // // !MSVC +#define CUB_EXEC_CHECK_DISABLE _Pragma("nv_exec_check_disable") +#endif // MSVC + +#else // !NVCC + +#define CUB_EXEC_CHECK_DISABLE + +#endif // NVCC diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/detail/strong_load.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/detail/strong_load.cuh new file mode 100644 index 0000000000000000000000000000000000000000..12e6672b9eb0752a5f1a24fec91b2819e706fb2f --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/detail/strong_load.cuh @@ -0,0 +1,182 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2022, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * @file Utilities for strong memory operations. + */ + +#pragma once + +#include +#include +#include + +#include + +CUB_NAMESPACE_BEGIN + +#ifndef DOXYGEN_SHOULD_SKIP_THIS // Do not document + +namespace detail +{ + +static __device__ __forceinline__ uint4 load_relaxed(uint4 const *ptr) +{ + uint4 retval; + NV_IF_TARGET(NV_PROVIDES_SM_70, + (asm volatile("ld.relaxed.gpu.v4.u32 {%0, %1, %2, %3}, [%4];" + : "=r"(retval.x), "=r"(retval.y), "=r"(retval.z), "=r"(retval.w) + : _CUB_ASM_PTR_(ptr) + : "memory");), + (asm volatile("ld.cg.v4.u32 {%0, %1, %2, %3}, [%4];" + : "=r"(retval.x), "=r"(retval.y), "=r"(retval.z), "=r"(retval.w) + : _CUB_ASM_PTR_(ptr) + : "memory");)); + return retval; +} + +static __device__ __forceinline__ ulonglong2 load_relaxed(ulonglong2 const *ptr) +{ + ulonglong2 retval; + NV_IF_TARGET(NV_PROVIDES_SM_70, + (asm volatile("ld.relaxed.gpu.v2.u64 {%0, %1}, [%2];" + : "=l"(retval.x), "=l"(retval.y) + : _CUB_ASM_PTR_(ptr) + : "memory");), + (asm volatile("ld.cg.v2.u64 {%0, %1}, [%2];" + : "=l"(retval.x), "=l"(retval.y) + : _CUB_ASM_PTR_(ptr) + : "memory");)); + return retval; +} + +static __device__ __forceinline__ ushort4 load_relaxed(ushort4 const *ptr) +{ + ushort4 retval; + NV_IF_TARGET(NV_PROVIDES_SM_70, + (asm volatile("ld.relaxed.gpu.v4.u16 {%0, %1, %2, %3}, [%4];" + : "=h"(retval.x), "=h"(retval.y), "=h"(retval.z), "=h"(retval.w) + : _CUB_ASM_PTR_(ptr) + : "memory");), + (asm volatile("ld.cg.v4.u16 {%0, %1, %2, %3}, [%4];" + : "=h"(retval.x), "=h"(retval.y), "=h"(retval.z), "=h"(retval.w) + : _CUB_ASM_PTR_(ptr) + : "memory");)); + return retval; +} + +static __device__ __forceinline__ uint2 load_relaxed(uint2 const *ptr) +{ + uint2 retval; + NV_IF_TARGET(NV_PROVIDES_SM_70, + (asm volatile("ld.relaxed.gpu.v2.u32 {%0, %1}, [%2];" + : "=r"(retval.x), "=r"(retval.y) + : _CUB_ASM_PTR_(ptr) + : "memory");), + (asm volatile("ld.cg.v2.u32 {%0, %1}, [%2];" + : "=r"(retval.x), "=r"(retval.y) + : _CUB_ASM_PTR_(ptr) + : "memory");)); + return retval; +} + +static __device__ __forceinline__ unsigned long long load_relaxed(unsigned long long const *ptr) +{ + unsigned long long retval; + NV_IF_TARGET(NV_PROVIDES_SM_70, + (asm volatile("ld.relaxed.gpu.u64 %0, [%1];" + : "=l"(retval) + : _CUB_ASM_PTR_(ptr) + : "memory");), + (asm volatile("ld.cg.u64 %0, [%1];" + : "=l"(retval) + : _CUB_ASM_PTR_(ptr) + : "memory");)); + return retval; +} + +static __device__ __forceinline__ unsigned int load_relaxed(unsigned int const *ptr) +{ + unsigned int retval; + NV_IF_TARGET(NV_PROVIDES_SM_70, + (asm volatile("ld.relaxed.gpu.u32 %0, [%1];" + : "=r"(retval) + : _CUB_ASM_PTR_(ptr) + : "memory");), + (asm volatile("ld.cg.u32 %0, [%1];" + : "=r"(retval) + : _CUB_ASM_PTR_(ptr) + : "memory");)); + + return retval; +} + +static __device__ __forceinline__ unsigned short load_relaxed(unsigned short const *ptr) +{ + unsigned short retval; + NV_IF_TARGET(NV_PROVIDES_SM_70, + (asm volatile("ld.relaxed.gpu.u16 %0, [%1];" + : "=h"(retval) + : _CUB_ASM_PTR_(ptr) + : "memory");), + (asm volatile("ld.cg.u16 %0, [%1];" + : "=h"(retval) + : _CUB_ASM_PTR_(ptr) + : "memory");)); + return retval; +} + +static __device__ __forceinline__ unsigned char load_relaxed(unsigned char const *ptr) +{ + unsigned short retval; + NV_IF_TARGET(NV_PROVIDES_SM_70, + (asm volatile("{" + " .reg .u8 datum;" + " ld.relaxed.gpu.u8 datum, [%1];" + " cvt.u16.u8 %0, datum;" + "}" + : "=h"(retval) + : _CUB_ASM_PTR_(ptr) + : "memory");), + (asm volatile("{" + " .reg .u8 datum;" + " ld.cg.u8 datum, [%1];" + " cvt.u16.u8 %0, datum;" + "}" + : "=h"(retval) + : _CUB_ASM_PTR_(ptr) + : "memory");)); + return (unsigned char)retval; +} + +} // namespace detail + +#endif // DOXYGEN_SHOULD_SKIP_THIS + +CUB_NAMESPACE_END + diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/detail/strong_store.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/detail/strong_store.cuh new file mode 100644 index 0000000000000000000000000000000000000000..fd293519a38de904bfb344f6354457e1fcbf2612 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/detail/strong_store.cuh @@ -0,0 +1,279 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2022, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * @file Utilities for strong memory operations. + */ + +#pragma once + +#include +#include +#include +#include + +CUB_NAMESPACE_BEGIN + +#ifndef DOXYGEN_SHOULD_SKIP_THIS // Do not document + +namespace detail +{ + +static __device__ __forceinline__ void store_relaxed(uint4 *ptr, uint4 val) +{ + NV_IF_TARGET(NV_PROVIDES_SM_70, + (asm volatile("st.relaxed.gpu.v4.u32 [%0], {%1, %2, %3, %4};" + : + : _CUB_ASM_PTR_(ptr), "r"(val.x), "r"(val.y), "r"(val.z), "r"(val.w) + : "memory");), + (asm volatile("st.cg.v4.u32 [%0], {%1, %2, %3, %4};" + : + : _CUB_ASM_PTR_(ptr), "r"(val.x), "r"(val.y), "r"(val.z), "r"(val.w) + : "memory");)); +} + +static __device__ __forceinline__ void store_relaxed(ulonglong2 *ptr, ulonglong2 val) +{ + NV_IF_TARGET(NV_PROVIDES_SM_70, + (asm volatile("st.relaxed.gpu.v2.u64 [%0], {%1, %2};" + : + : _CUB_ASM_PTR_(ptr), "l"(val.x), "l"(val.y) + : "memory");), + (asm volatile("st.cg.v2.u64 [%0], {%1, %2};" + : + : _CUB_ASM_PTR_(ptr), "l"(val.x), "l"(val.y) + : "memory");)); +} + +static __device__ __forceinline__ void store_relaxed(ushort4 *ptr, ushort4 val) +{ + NV_IF_TARGET(NV_PROVIDES_SM_70, + (asm volatile("st.relaxed.gpu.v4.u16 [%0], {%1, %2, %3, %4};" + : + : _CUB_ASM_PTR_(ptr), "h"(val.x), "h"(val.y), "h"(val.z), "h"(val.w) + : "memory");), + (asm volatile("st.cg.v4.u16 [%0], {%1, %2, %3, %4};" + : + : _CUB_ASM_PTR_(ptr), "h"(val.x), "h"(val.y), "h"(val.z), "h"(val.w) + : "memory");)); +} + +static __device__ __forceinline__ void store_relaxed(uint2 *ptr, uint2 val) +{ + NV_IF_TARGET(NV_PROVIDES_SM_70, + (asm volatile("st.relaxed.gpu.v2.u32 [%0], {%1, %2};" + : + : _CUB_ASM_PTR_(ptr), "r"(val.x), "r"(val.y) + : "memory");), + (asm volatile("st.cg.v2.u32 [%0], {%1, %2};" + : + : _CUB_ASM_PTR_(ptr), "r"(val.x), "r"(val.y) + : "memory");)); +} + +static __device__ __forceinline__ void store_relaxed(unsigned long long *ptr, + unsigned long long val) +{ + NV_IF_TARGET(NV_PROVIDES_SM_70, + (asm volatile("st.relaxed.gpu.u64 [%0], %1;" + : + : _CUB_ASM_PTR_(ptr), "l"(val) + : "memory");), + (asm volatile("st.cg.u64 [%0], %1;" + : + : _CUB_ASM_PTR_(ptr), "l"(val) + : "memory");)); +} + +static __device__ __forceinline__ void store_relaxed(unsigned int *ptr, unsigned int val) +{ + NV_IF_TARGET(NV_PROVIDES_SM_70, + (asm volatile("st.relaxed.gpu.u32 [%0], %1;" + : + : _CUB_ASM_PTR_(ptr), "r"(val) + : "memory");), + (asm volatile("st.cg.u32 [%0], %1;" + : + : _CUB_ASM_PTR_(ptr), "r"(val) + : "memory");)); +} + +static __device__ __forceinline__ void store_relaxed(unsigned short *ptr, unsigned short val) +{ + NV_IF_TARGET(NV_PROVIDES_SM_70, + (asm volatile("st.relaxed.gpu.u16 [%0], %1;" + : + : _CUB_ASM_PTR_(ptr), "h"(val) + : "memory");), + (asm volatile("st.cg.u16 [%0], %1;" + : + : _CUB_ASM_PTR_(ptr), "h"(val) + : "memory");)); +} + +static __device__ __forceinline__ void store_relaxed(unsigned char *ptr, unsigned char val) +{ + NV_IF_TARGET(NV_PROVIDES_SM_70, + (asm volatile("{" + " .reg .u8 datum;" + " cvt.u8.u16 datum, %1;" + " st.relaxed.gpu.u8 [%0], datum;" + "}" + : + : _CUB_ASM_PTR_(ptr), "h"((unsigned short)val) + : "memory");), + (asm volatile("{" + " .reg .u8 datum;" + " cvt.u8.u16 datum, %1;" + " st.cg.u8 [%0], datum;" + "}" + : + : _CUB_ASM_PTR_(ptr), "h"((unsigned short)val) + : "memory");)); +} + +__device__ __forceinline__ void store_release(uint4 *ptr, uint4 val) +{ + NV_IF_TARGET(NV_PROVIDES_SM_70, + (asm volatile("st.release.gpu.v4.u32 [%0], {%1, %2, %3, %4};" + : + : _CUB_ASM_PTR_(ptr), "r"(val.x), "r"(val.y), "r"(val.z), "r"(val.w) + : "memory");), + (__threadfence(); + asm volatile("st.cg.v4.u32 [%0], {%1, %2, %3, %4};" + : + : _CUB_ASM_PTR_(ptr), "r"(val.x), "r"(val.y), "r"(val.z), "r"(val.w) + : "memory");)); +} + +__device__ __forceinline__ void store_release(ulonglong2 *ptr, ulonglong2 val) +{ + NV_IF_TARGET(NV_PROVIDES_SM_70, + (asm volatile("st.release.gpu.v2.u64 [%0], {%1, %2};" + : + : _CUB_ASM_PTR_(ptr), "l"(val.x), "l"(val.y) + : "memory");), + (__threadfence(); asm volatile("st.cg.v2.u64 [%0], {%1, %2};" + : + : _CUB_ASM_PTR_(ptr), "l"(val.x), "l"(val.y) + : "memory");)); +} + +__device__ __forceinline__ void store_release(ushort4 *ptr, ushort4 val) +{ + NV_IF_TARGET(NV_PROVIDES_SM_70, + (asm volatile("st.release.gpu.v4.u16 [%0], {%1, %2, %3, %4};" + : + : _CUB_ASM_PTR_(ptr), "h"(val.x), "h"(val.y), "h"(val.z), "h"(val.w) + : "memory");), + (__threadfence(); + asm volatile("st.cg.v4.u16 [%0], {%1, %2, %3, %4};" + : + : _CUB_ASM_PTR_(ptr), "h"(val.x), "h"(val.y), "h"(val.z), "h"(val.w) + : "memory");)); +} + +__device__ __forceinline__ void store_release(uint2 *ptr, uint2 val) +{ + NV_IF_TARGET(NV_PROVIDES_SM_70, + (asm volatile("st.release.gpu.v2.u32 [%0], {%1, %2};" + : + : _CUB_ASM_PTR_(ptr), "r"(val.x), "r"(val.y) + : "memory");), + (__threadfence(); asm volatile("st.cg.v2.u32 [%0], {%1, %2};" + : + : _CUB_ASM_PTR_(ptr), "r"(val.x), "r"(val.y) + : "memory");)); +} + +__device__ __forceinline__ void store_release(unsigned long long *ptr, unsigned long long val) +{ + NV_IF_TARGET(NV_PROVIDES_SM_70, + (asm volatile("st.release.gpu.u64 [%0], %1;" + : + : _CUB_ASM_PTR_(ptr), "l"(val) + : "memory");), + (__threadfence(); asm volatile("st.cg.u64 [%0], %1;" + : + : _CUB_ASM_PTR_(ptr), "l"(val) + : "memory");)); +} + +__device__ __forceinline__ void store_release(unsigned int *ptr, unsigned int val) +{ + NV_IF_TARGET(NV_PROVIDES_SM_70, + (asm volatile("st.release.gpu.u32 [%0], %1;" + : + : _CUB_ASM_PTR_(ptr), "r"(val) + : "memory");), + (__threadfence(); asm volatile("st.cg.u32 [%0], %1;" + : + : _CUB_ASM_PTR_(ptr), "r"(val) + : "memory");)); +} + +__device__ __forceinline__ void store_release(unsigned short *ptr, unsigned short val) +{ + NV_IF_TARGET(NV_PROVIDES_SM_70, + (asm volatile("st.release.gpu.u16 [%0], %1;" + : + : _CUB_ASM_PTR_(ptr), "h"(val) + : "memory");), + (__threadfence(); asm volatile("st.cg.u16 [%0], %1;" + : + : _CUB_ASM_PTR_(ptr), "h"(val) + : "memory");)); +} + +__device__ __forceinline__ void store_release(unsigned char *ptr, unsigned char val) +{ + NV_IF_TARGET(NV_PROVIDES_SM_70, + (asm volatile("{" + " .reg .u8 datum;" + " cvt.u8.u16 datum, %1;" + " st.release.gpu.u8 [%0], datum;" + "}" + : + : _CUB_ASM_PTR_(ptr), "h"((unsigned short)val) + : "memory");), + (__threadfence(); asm volatile("{" + " .reg .u8 datum;" + " cvt.u8.u16 datum, %1;" + " st.cg.u8 [%0], datum;" + "}" + : + : _CUB_ASM_PTR_(ptr), "h"((unsigned short)val) + : "memory");)); +} + +} // namespace detail + +#endif // DOXYGEN_SHOULD_SKIP_THIS + +CUB_NAMESPACE_END + diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/detail/temporary_storage.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/detail/temporary_storage.cuh new file mode 100644 index 0000000000000000000000000000000000000000..005a3763ef55f715ceb32bbef9f8b0db3ba9a02c --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/detail/temporary_storage.cuh @@ -0,0 +1,350 @@ +/* +* Copyright 2021 NVIDIA Corporation +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +#pragma once + +#include +#include + + +CUB_NAMESPACE_BEGIN + + +namespace detail +{ + + +namespace temporary_storage +{ + + +class slot; + +template +class alias; + +template +class layout; + + +/** + * @brief Temporary storage slot that can be considered a C++ union with an + * arbitrary fields count. + * + * @warning slot lifetime is defined by the lifetime of the associated layout. + * It's impossible to request new array if layout is already mapped. + * + * @par A Simple Example + * @code + * auto slot = temporary_storage.get_slot(0); + * + * // Add fields into the slot + * // Create an int alias with 0 elements: + * auto int_array = slot->create_alias(); + * // Create a double alias with 2 elements: + * auto double_array = slot->create_alias(2); + * // Create a char alias with 0 elements: + * auto empty_array = slot->create_alias(); + * // Slot size is defined by double_array size (2 * sizeof(double)) + * + * if (condition) + * { + * int_array.grow(42); + * // Now slot size is defined by int_array size (42 * sizeof(int)) + * } + * + * // Temporary storage mapping + * // ... + + * int *d_int_array = int_array.get(); + * double *d_double_array = double_array.get(); + * char *d_empty_array = empty_array.get(); // Guaranteed to return nullptr + * @endcode + */ +class slot +{ + std::size_t m_size{}; + void *m_pointer{}; + +public: + slot() = default; + + /** + * @brief Returns an array of type @p T and length @p elements + */ + template + __host__ __device__ alias create_alias(std::size_t elements = 0); + +private: + __host__ __device__ void set_bytes_required(std::size_t new_size) + { + m_size = (max)(m_size, new_size); + } + + __host__ __device__ std::size_t get_bytes_required() const + { + return m_size; + } + + __host__ __device__ void set_storage(void *ptr) { m_pointer = ptr; } + __host__ __device__ void *get_storage() const { return m_pointer; } + + template + friend class alias; + + template + friend class layout; +}; + + +/** + * @brief Named memory region of a temporary storage slot + * + * @par Overview + * This class provides a typed wrapper of a temporary slot memory region. + * It can be considered as a field in the C++ union. It's only possible to + * increase the array size. + * + * @warning alias lifetime is defined by the lifetime of the associated slot + * It's impossible to grow the array if the layout is already mapped. + */ +template +class alias +{ + slot &m_slot; + std::size_t m_elements{}; + + __host__ __device__ explicit alias(slot &slot, + std::size_t elements = 0) + : m_slot(slot) + , m_elements(elements) + { + this->update_slot(); + } + + __host__ __device__ void update_slot() + { + m_slot.set_bytes_required(m_elements * sizeof(T)); + } + +public: + alias() = delete; + + /** + * @brief Increases the number of elements + * + * @warning + * This method should be called before temporary storage mapping stage. + * + * @param[in] new_elements Increases the memory region occupied in the + * temporary slot to fit up to @p new_elements items + * of type @p T. + */ + __host__ __device__ void grow(std::size_t new_elements) + { + m_elements = new_elements; + this->update_slot(); + } + + /** + * @brief Returns pointer to array + * + * If the @p elements number is equal to zero, or storage layout isn't mapped, + * @p nullptr is returned. + */ + __host__ __device__ T *get() const + { + if (m_elements == 0) + { + return nullptr; + } + + return reinterpret_cast(m_slot.get_storage()); + } + + friend class slot; +}; + + +template +__host__ __device__ alias slot::create_alias(std::size_t elements) +{ + return alias(*this, elements); +} + + +/** + * @brief Temporary storage layout represents a structure with + * @p SlotsCount union-like fields + * + * The layout can be mapped to a temporary buffer only once. + * + * @par A Simple Example + * @code + * cub::detail::temporary_storage::layout<3> temporary_storage; + * + * auto slot_1 = temporary_storage.get_slot(0); + * auto slot_2 = temporary_storage.get_slot(1); + * + * // Add fields into the first slot + * auto int_array = slot_1->create_alias(1); + * auto double_array = slot_1->create_alias(2); + * + * // Add fields into the second slot + * auto char_array = slot_2->create_alias(); + * + * // The equivalent C++ structure could look like + * // struct StorageLayout + * // { + * // union { + * // } slot_0; + * // std::byte padding_0[256 - sizeof (slot_0)]; + * // + * // union { + * // int alias_0[1]; + * // double alias_1[2]; + * // } slot_1; + * // std::byte padding_1[256 - sizeof (slot_1)]; + * // + * // union { + * // char alias_0[0]; + * // } slot_2; + * // std::byte padding_2[256 - sizeof (slot_2)]; + * // }; + * + * // The third slot is empty + * + * // Temporary storage mapping + * if (d_temp_storage == nullptr) + * { + * temp_storage_bytes = temporary_storage.get_size(); + * return; + * } + * else + * { + * temporary_storage.map_to_buffer(d_temp_storage, temp_storage_bytes); + * } + * + * // Use pointers + * int *d_int_array = int_array.get(); + * double *d_double_array = double_array.get(); + * char *d_char_array = char_array.get(); + * @endcode + */ +template +class layout +{ + slot m_slots[SlotsCount]; + std::size_t m_sizes[SlotsCount]; + void *m_pointers[SlotsCount]; + bool m_layout_was_mapped {}; + +public: + layout() = default; + + __host__ __device__ slot *get_slot(int slot_id) + { + if (slot_id < SlotsCount) + { + return &m_slots[slot_id]; + } + + return nullptr; + } + + /** + * @brief Returns required temporary storage size in bytes + */ + __host__ __device__ std::size_t get_size() + { + this->prepare_interface(); + + // AliasTemporaries can return error only in mapping stage, + // so it's safe to ignore it here. + std::size_t temp_storage_bytes{}; + AliasTemporaries(nullptr, temp_storage_bytes, m_pointers, m_sizes); + + if (temp_storage_bytes == 0) + { + // The current CUB convention implies that there are two stages for each + // device-scope function call. The first one returns the required storage + // size. The second stage consumes temporary storage to perform some work. + // The only way to distinguish between the two stages is by checking the + // value of the temporary storage pointer. If zero bytes are requested, + // `cudaMalloc` will return `nullptr`. This fact makes it impossible to + // distinguish between the two stages, so we request some fixed amount of + // bytes (even if we don't need it) to have a non-null temporary storage + // pointer. + return 1; + } + + return temp_storage_bytes; + } + + /** + * @brief Maps the layout to the temporary storage buffer. + */ + __host__ __device__ cudaError_t map_to_buffer(void *d_temp_storage, + std::size_t temp_storage_bytes) + { + if (m_layout_was_mapped) + { + return cudaErrorAlreadyMapped; + } + + this->prepare_interface(); + + cudaError_t error = cudaSuccess; + if ((error = AliasTemporaries(d_temp_storage, + temp_storage_bytes, + m_pointers, + m_sizes))) + { + return error; + } + + for (std::size_t slot_id = 0; slot_id < SlotsCount; slot_id++) + { + m_slots[slot_id].set_storage(m_pointers[slot_id]); + } + + m_layout_was_mapped = true; + return error; + } + +private: + __host__ __device__ void prepare_interface() + { + if (m_layout_was_mapped) + { + return; + } + + for (std::size_t slot_id = 0; slot_id < SlotsCount; slot_id++) + { + const std::size_t slot_size = m_slots[slot_id].get_bytes_required(); + + m_sizes[slot_id] = slot_size; + m_pointers[slot_id] = nullptr; + } + } +}; + +} // namespace temporary_storage + +} // namespace detail + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/detail/type_traits.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/detail/type_traits.cuh new file mode 100644 index 0000000000000000000000000000000000000000..77903306250c57e207eeb69682727cc784028431 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/detail/type_traits.cuh @@ -0,0 +1,58 @@ +/****************************************************************************** + * Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * Wrappers and extensions around utilities. + */ + +#pragma once + +#include +#include + +#include + + +CUB_NAMESPACE_BEGIN +namespace detail { + +template +using invoke_result_t = +#if CUB_CPP_DIALECT < 2017 + typename ::cuda::std::result_of::type; +#else // 2017+ + ::cuda::std::invoke_result_t; +#endif + +/// The type of intermediate accumulator (according to P2322R6) +template +using accumulator_t = + typename ::cuda::std::decay>::type; + +} // namespace detail +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/detail/uninitialized_copy.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/detail/uninitialized_copy.cuh new file mode 100644 index 0000000000000000000000000000000000000000..2b3e4b1da264feac918a8409b5bbfaa983de6b82 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/detail/uninitialized_copy.cuh @@ -0,0 +1,75 @@ +/****************************************************************************** + * Copyright (c) 2011-2022, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +#pragma once + +#include + +#include + +CUB_NAMESPACE_BEGIN + + +namespace detail +{ + +#if defined(_NVHPC_CUDA) +template +__host__ __device__ void uninitialized_copy(T *ptr, U &&val) +{ + // NVBug 3384810 + new (ptr) T(::cuda::std::forward(val)); +} +#else +template ::value, + int + >::type = 0> +__host__ __device__ void uninitialized_copy(T *ptr, U &&val) +{ + *ptr = ::cuda::std::forward(val); +} + +template ::value, + int + >::type = 0> +__host__ __device__ void uninitialized_copy(T *ptr, U &&val) +{ + new (ptr) T(::cuda::std::forward(val)); +} +#endif + +} // namespace detail + + +CUB_NAMESPACE_END + diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/device/device_adjacent_difference.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/device/device_adjacent_difference.cuh new file mode 100644 index 0000000000000000000000000000000000000000..0f614d1876de0a78b083cc0ef1bf87911551f16c --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/device/device_adjacent_difference.cuh @@ -0,0 +1,699 @@ +/****************************************************************************** + * Copyright (c) 2011-2021, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +#pragma once + +#include +#include +#include +#include +#include +#include + +#include +#include + + +CUB_NAMESPACE_BEGIN + + +/** + * @brief DeviceAdjacentDifference provides device-wide, parallel operations for + * computing the differences of adjacent elements residing within + * device-accessible memory. + * + * @ingroup SingleModule + * + * @par Overview + * - DeviceAdjacentDifference calculates the differences of adjacent elements in + * d_input. Because the binary operation could be noncommutative, there + * are two sets of methods. Methods named SubtractLeft subtract left element + * `*(i - 1)` of input sequence from current element `*i`. + * Methods named `SubtractRight` subtract current element `*i` from the + * right one `*(i + 1)`: + * @par + * @code + * int *d_values; // [1, 2, 3, 4] + * //... + * int *d_subtract_left_result <-- [ 1, 1, 1, 1 ] + * int *d_subtract_right_result <-- [ -1, -1, -1, 4 ] + * @endcode + * - For SubtractLeft, if the left element is out of bounds, the iterator is + * assigned to \*(result + (i - first)) without modification. + * - For SubtractRight, if the right element is out of bounds, the iterator is + * assigned to \*(result + (i - first)) without modification. + * + * @par Snippet + * The code snippet below illustrates how to use @p DeviceAdjacentDifference to + * compute the left difference between adjacent elements. + * + * @par + * @code + * #include + * // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers + * int num_items; // e.g., 8 + * int *d_values; // e.g., [1, 2, 1, 2, 1, 2, 1, 2] + * //... + * + * // Determine temporary device storage requirements + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * + * cub::DeviceAdjacentDifference::SubtractLeft( + * d_temp_storage, temp_storage_bytes, d_values, num_items); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run operation + * cub::DeviceAdjacentDifference::SubtractLeft( + * d_temp_storage, temp_storage_bytes, d_values, num_items); + * + * // d_values <-- [1, 1, -1, 1, -1, 1, -1, 1] + * @endcode + */ +struct DeviceAdjacentDifference +{ +private: + template + static CUB_RUNTIME_FUNCTION cudaError_t + AdjacentDifference(void *d_temp_storage, + std::size_t &temp_storage_bytes, + InputIteratorT d_input, + OutputIteratorT d_output, + NumItemsT num_items, + DifferenceOpT difference_op, + cudaStream_t stream) + { + using OffsetT = typename detail::ChooseOffsetT::Type; + + using DispatchT = DispatchAdjacentDifference; + + return DispatchT::Dispatch(d_temp_storage, + temp_storage_bytes, + d_input, + d_output, + static_cast(num_items), + difference_op, + stream); + } + +public: + + /** + * @brief Subtracts the left element of each adjacent pair of elements residing within device-accessible memory. + * @ingroup SingleModule + * + * @par Overview + * - Calculates the differences of adjacent elements in `d_input`. That is, + * `*d_input` is assigned to `*d_output`, and, for each iterator `i` in the + * range `[d_input + 1, d_input + num_items)`, the result of + * `difference_op(*i, *(i - 1))` is assigned to + * `*(d_output + (i - d_input))`. + * - Note that the behavior is undefined if the input and output ranges + * overlap in any way. + * + * @par Snippet + * The code snippet below illustrates how to use @p DeviceAdjacentDifference + * to compute the difference between adjacent elements. + * + * @par + * @code + * #include + * // or equivalently + * + * struct CustomDifference + * { + * template + * __device__ DataType operator()(DataType &lhs, DataType &rhs) + * { + * return lhs - rhs; + * } + * }; + * + * // Declare, allocate, and initialize device-accessible pointers + * int num_items; // e.g., 8 + * int *d_input; // e.g., [1, 2, 1, 2, 1, 2, 1, 2] + * int *d_output; + * ... + * + * // Determine temporary device storage requirements + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * + * cub::DeviceAdjacentDifference::SubtractLeftCopy( + * d_temp_storage, temp_storage_bytes, + * d_input, d_output, + * num_items, CustomDifference()); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run operation + * cub::DeviceAdjacentDifference::SubtractLeftCopy( + * d_temp_storage, temp_storage_bytes, + * d_input, d_output, + * num_items, CustomDifference()); + * + * // d_input <-- [1, 2, 1, 2, 1, 2, 1, 2] + * // d_output <-- [1, 1, -1, 1, -1, 1, -1, 1] + * @endcode + * + * @tparam InputIteratorT + * is a model of Input Iterator, + * and `x` and `y` are objects of `InputIteratorT`'s `value_type`, then + * `x - y` is defined, and `InputIteratorT`'s `value_type` is convertible to + * a type in `OutputIteratorT`'s set of `value_types`, and the return type + * of `x - y` is convertible to a type in `OutputIteratorT`'s set of + * `value_types`. + * + * @tparam OutputIteratorT + * is a model of Output Iterator. + * + * @tparam DifferenceOpT + * Its `result_type` is convertible to a type in `OutputIteratorT`'s set of + * `value_types`. + * + * @tparam NumItemsT **[inferred]** Type of num_items + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no work + * is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in] d_input + * Pointer to the input sequence + * + * @param[out] d_output + * Pointer to the output sequence + * + * @param[in] num_items + * Number of items in the input sequence + * + * @param[in] difference_op + * The binary function used to compute differences + * + * @param[in] stream + * [optional] CUDA stream to launch kernels within. Default is + * stream0 + */ + template + static CUB_RUNTIME_FUNCTION cudaError_t + SubtractLeftCopy(void *d_temp_storage, + std::size_t &temp_storage_bytes, + InputIteratorT d_input, + OutputIteratorT d_output, + NumItemsT num_items, + DifferenceOpT difference_op = {}, + cudaStream_t stream = 0) + { + constexpr bool may_alias = false; + constexpr bool read_left = true; + + return AdjacentDifference(d_temp_storage, + temp_storage_bytes, + d_input, + d_output, + num_items, + difference_op, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + static CUB_RUNTIME_FUNCTION cudaError_t + SubtractLeftCopy(void *d_temp_storage, + std::size_t &temp_storage_bytes, + InputIteratorT d_input, + OutputIteratorT d_output, + NumItemsT num_items, + DifferenceOpT difference_op, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return SubtractLeftCopy(d_temp_storage, + temp_storage_bytes, + d_input, + d_output, + num_items, + difference_op, + stream); + } + + /** + * @brief Subtracts the left element of each adjacent pair of elements + * residing within device-accessible memory. + * + * @ingroup SingleModule + * + * @par Overview + * Calculates the differences of adjacent elements in `d_input`. That is, for + * each iterator `i` in the range `[d_input + 1, d_input + num_items)`, the + * result of `difference_op(*i, *(i - 1))` is assigned to + * `*(d_input + (i - d_input))`. + * + * @par Snippet + * The code snippet below illustrates how to use @p DeviceAdjacentDifference + * to compute the difference between adjacent elements. + * + * @par + * @code + * #include + * // or equivalently + * + * struct CustomDifference + * { + * template + * __device__ DataType operator()(DataType &lhs, DataType &rhs) + * { + * return lhs - rhs; + * } + * }; + * + * // Declare, allocate, and initialize device-accessible pointers + * int num_items; // e.g., 8 + * int *d_data; // e.g., [1, 2, 1, 2, 1, 2, 1, 2] + * ... + * + * // Determine temporary device storage requirements + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceAdjacentDifference::SubtractLeft( + * d_temp_storage, temp_storage_bytes, + * d_data, num_items, CustomDifference()); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run operation + * cub::DeviceAdjacentDifference::SubtractLeft( + * d_temp_storage, temp_storage_bytes, + * d_data, num_items, CustomDifference()); + * + * // d_data <-- [1, 1, -1, 1, -1, 1, -1, 1] + * @endcode + * + * @tparam RandomAccessIteratorT + * is a model of Random Access Iterator, + * `RandomAccessIteratorT` is mutable. If `x` and `y` are objects of + * `RandomAccessIteratorT`'s `value_type`, and `x - y` is defined, then the + * return type of `x - y` should be convertible to a type in + * `RandomAccessIteratorT`'s set of `value_types`. + * + * @tparam DifferenceOpT + * Its `result_type` is convertible to a type in `RandomAccessIteratorT`'s + * set of `value_types`. + * + * @tparam NumItemsT **[inferred]** Type of num_items + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no work + * is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of @p d_temp_storage allocation + * + * @param[in,out] d_input + * Pointer to the input sequence and the result + * + * @param[in] num_items + * Number of items in the input sequence + * + * @param[in] difference_op + * The binary function used to compute differences + * + * @param[in] stream + * [optional] CUDA stream to launch kernels within. Default is + * stream0. + */ + template + static CUB_RUNTIME_FUNCTION cudaError_t + SubtractLeft(void *d_temp_storage, + std::size_t &temp_storage_bytes, + RandomAccessIteratorT d_input, + NumItemsT num_items, + DifferenceOpT difference_op = {}, + cudaStream_t stream = 0) + { + constexpr bool may_alias = true; + constexpr bool read_left = true; + + return AdjacentDifference(d_temp_storage, + temp_storage_bytes, + d_input, + d_input, + num_items, + difference_op, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + static CUB_RUNTIME_FUNCTION cudaError_t + SubtractLeft(void *d_temp_storage, + std::size_t &temp_storage_bytes, + RandomAccessIteratorT d_input, + NumItemsT num_items, + DifferenceOpT difference_op, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return SubtractLeft(d_temp_storage, + temp_storage_bytes, + d_input, + num_items, + difference_op, + stream); + } + + /** + * @brief Subtracts the right element of each adjacent pair of elements + * residing within device-accessible memory. + * + * @ingroup SingleModule + * + * @par Overview + * - Calculates the right differences of adjacent elements in `d_input`. That + * is, `*(d_input + num_items - 1)` is assigned to + * `*(d_output + num_items - 1)`, and, for each iterator `i` in the range + * `[d_input, d_input + num_items - 1)`, the result of + * `difference_op(*i, *(i + 1))` is assigned to + * `*(d_output + (i - d_input))`. + * - Note that the behavior is undefined if the input and output ranges + * overlap in any way. + * + * @par Snippet + * The code snippet below illustrates how to use @p DeviceAdjacentDifference + * to compute the difference between adjacent elements. + * + * @par + * @code + * #include + * // or equivalently + * + * struct CustomDifference + * { + * template + * __device__ DataType operator()(DataType &lhs, DataType &rhs) + * { + * return lhs - rhs; + * } + * }; + * + * // Declare, allocate, and initialize device-accessible pointers + * int num_items; // e.g., 8 + * int *d_input; // e.g., [1, 2, 1, 2, 1, 2, 1, 2] + * int *d_output; + * .. + * + * // Determine temporary device storage requirements + * void *d_temp_storage = nullptr; + * size_t temp_storage_bytes = 0; + * cub::DeviceAdjacentDifference::SubtractRightCopy( + * d_temp_storage, temp_storage_bytes, + * d_input, d_output, num_items, CustomDifference()); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run operation + * cub::DeviceAdjacentDifference::SubtractRightCopy( + * d_temp_storage, temp_storage_bytes, + * d_input, d_output, num_items, CustomDifference()); + * + * // d_input <-- [1, 2, 1, 2, 1, 2, 1, 2] + * // d_data <-- [-1, 1, -1, 1, -1, 1, -1, 2] + * @endcode + * + * @tparam InputIteratorT + * is a model of Input Iterator, + * and `x` and `y` are objects of `InputIteratorT`'s `value_type`, then + * `x - y` is defined, and `InputIteratorT`'s `value_type` is convertible to + * a type in `OutputIteratorT`'s set of `value_types`, and the return type + * of `x - y` is convertible to a type in `OutputIteratorT`'s set of + * `value_types`. + * + * @tparam OutputIteratorT + * is a model of Output Iterator. + * + * @tparam DifferenceOpT + * Its `result_type` is convertible to a type in `RandomAccessIteratorT`'s + * set of `value_types`. + * + * @tparam NumItemsT **[inferred]** Type of num_items + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no work + * is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in] d_input + * Pointer to the input sequence + * + * @param[out] d_output + * Pointer to the output sequence + * + * @param[in] num_items + * Number of items in the input sequence + * + * @param[in] difference_op + * The binary function used to compute differences. + * + * @param[in] stream + * [optional] CUDA stream to launch kernels within. Default is + * stream0. + */ + template + static CUB_RUNTIME_FUNCTION cudaError_t + SubtractRightCopy(void *d_temp_storage, + std::size_t &temp_storage_bytes, + InputIteratorT d_input, + OutputIteratorT d_output, + NumItemsT num_items, + DifferenceOpT difference_op = {}, + cudaStream_t stream = 0) + { + constexpr bool may_alias = false; + constexpr bool read_left = false; + + return AdjacentDifference(d_temp_storage, + temp_storage_bytes, + d_input, + d_output, + num_items, + difference_op, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + static CUB_RUNTIME_FUNCTION cudaError_t + SubtractRightCopy(void *d_temp_storage, + std::size_t &temp_storage_bytes, + InputIteratorT d_input, + OutputIteratorT d_output, + NumItemsT num_items, + DifferenceOpT difference_op, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return SubtractRightCopy(d_temp_storage, + temp_storage_bytes, + d_input, + d_output, + num_items, + difference_op, + stream); + } + + /** + * @brief Subtracts the right element of each adjacent pair of elements + * residing within device-accessible memory. + * + * @ingroup SingleModule + * + * @par Overview + * Calculates the right differences of adjacent elements in `d_input`. That + * is, for each iterator `i` in the range + * `[d_input, d_input + num_items - 1)`, the result of + * `difference_op(*i, *(i + 1))` is assigned to + * `*(d_input + (i - d_input))`. + * + * @par Snippet + * The code snippet below illustrates how to use @p DeviceAdjacentDifference + * to compute the difference between adjacent elements. + * + * @par + * @code + * #include + * // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers + * int num_items; // e.g., 8 + * int *d_data; // e.g., [1, 2, 1, 2, 1, 2, 1, 2] + * ... + * + * // Determine temporary device storage requirements + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceAdjacentDifference::SubtractRight( + * d_temp_storage, temp_storage_bytes, d_data, num_items); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run operation + * cub::DeviceAdjacentDifference::SubtractRight( + * d_temp_storage, temp_storage_bytes, d_data, num_items); + * + * // d_data <-- [-1, 1, -1, 1, -1, 1, -1, 2] + * @endcode + * + * @tparam RandomAccessIteratorT + * is a model of Random Access Iterator, + * `RandomAccessIteratorT` is mutable. If `x` and `y` are objects of + * `RandomAccessIteratorT`'s `value_type`, and `x - y` is defined, then the + * return type of `x - y` should be convertible to a type in + * `RandomAccessIteratorT`'s set of `value_types`. + * + * @tparam DifferenceOpT + * Its `result_type` is convertible to a type in `RandomAccessIteratorT`'s + * set of `value_types`. + * + * @tparam NumItemsT **[inferred]** Type of num_items + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no work + * is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in,out] d_input + * Pointer to the input sequence + * + * @param[in] num_items + * Number of items in the input sequence + * + * @param[in] difference_op + * The binary function used to compute differences + * + * @param[in] stream + * [optional] CUDA stream to launch kernels within. Default is + * stream0. + */ + template + static CUB_RUNTIME_FUNCTION cudaError_t + SubtractRight(void *d_temp_storage, + std::size_t &temp_storage_bytes, + RandomAccessIteratorT d_input, + NumItemsT num_items, + DifferenceOpT difference_op = {}, + cudaStream_t stream = 0) + { + constexpr bool may_alias = true; + constexpr bool read_left = false; + + return AdjacentDifference(d_temp_storage, + temp_storage_bytes, + d_input, + d_input, + num_items, + difference_op, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + static CUB_RUNTIME_FUNCTION cudaError_t + SubtractRight(void *d_temp_storage, + std::size_t &temp_storage_bytes, + RandomAccessIteratorT d_input, + NumItemsT num_items, + DifferenceOpT difference_op, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return SubtractRight(d_temp_storage, + temp_storage_bytes, + d_input, + num_items, + difference_op, + stream); + } +}; + + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/device/device_copy.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/device/device_copy.cuh new file mode 100644 index 0000000000000000000000000000000000000000..fd22ba0f5ebb1b098e6d406ec0f8959882d28c5d --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/device/device_copy.cuh @@ -0,0 +1,172 @@ +/****************************************************************************** + * Copyright (c) 2023, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * cub::DeviceCopy provides device-wide, parallel operations for copying data. + */ + +#pragma once + +#include +#include + +#include + +#include + +CUB_NAMESPACE_BEGIN + +/** + * @brief cub::DeviceCopy provides device-wide, parallel operations for copying data. + * \ingroup SingleModule + */ +struct DeviceCopy +{ + /** + * @brief Copies data from a batch of given source ranges to their corresponding destination + * ranges. + * @note If any input range aliases any output range the behavior is undefined. If + * any output range aliases another output range the behavior is undefined. Input + * ranges can alias one another. + * + * @par Snippet + * The code snippet below illustrates usage of DeviceCopy::Batched to perform a DeviceRunLength + * Decode operation. + * @par + * @code + * struct GetIteratorToRange + * { + * __host__ __device__ __forceinline__ auto operator()(uint32_t index) + * { + * return thrust::make_constant_iterator(d_data_in[index]); + * } + * int32_t *d_data_in; + * }; + * + * struct GetPtrToRange + * { + * __host__ __device__ __forceinline__ auto operator()(uint32_t index) + * { + * return d_data_out + d_offsets[index]; + * } + * int32_t *d_data_out; + * uint32_t *d_offsets; + * }; + * + * struct GetRunLength + * { + * __host__ __device__ __forceinline__ uint32_t operator()(uint32_t index) + * { + * return d_offsets[index + 1] - d_offsets[index]; + * } + * uint32_t *d_offsets; + * }; + * + * uint32_t num_ranges = 5; + * int32_t *d_data_in; // e.g., [4, 2, 7, 3, 1] + * int32_t *d_data_out; // e.g., [0, ... ] + * uint32_t *d_offsets; // e.g., [0, 2, 5, 6, 9, 14] + * + * // Returns a constant iterator to the element of the i-th run + * thrust::counting_iterator iota(0); + * auto iterators_in = thrust::make_transform_iterator(iota, GetIteratorToRange{d_data_in}); + * + * // Returns the run length of the i-th run + * auto sizes = thrust::make_transform_iterator(iota, GetRunLength{d_offsets}); + * + * // Returns pointers to the output range for each run + * auto ptrs_out = thrust::make_transform_iterator(iota, GetPtrToRange{d_data_out, d_offsets}); + * + * // Determine temporary device storage requirements + * void *d_temp_storage = nullptr; + * size_t temp_storage_bytes = 0; + * cub::DeviceCopy::Batched(d_temp_storage, temp_storage_bytes, iterators_in, ptrs_out, sizes, + * num_ranges); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run batched copy algorithm (used to perform runlength decoding) + * cub::DeviceCopy::Batched(d_temp_storage, temp_storage_bytes, iterators_in, ptrs_out, sizes, + * num_ranges); + * + * // d_data_out <-- [4, 4, 2, 2, 2, 7, 3, 3, 3, 1, 1, 1, 1, 1] + * @endcode + * @tparam InputIt [inferred] Device-accessible random-access input iterator type + * providing the iterators to the source ranges + * @tparam OutputIt [inferred] Device-accessible random-access input iterator type + * providing the iterators to the destination ranges + * @tparam SizeIteratorT [inferred] Device-accessible random-access input iterator + * type providing the number of items to be copied for each pair of ranges + * @param d_temp_storage [in] Device-accessible allocation of temporary storage. When NULL, the + * required allocation size is written to \p temp_storage_bytes and no work is done. + * @param temp_storage_bytes [in,out] Reference to size in bytes of \p d_temp_storage allocation + * @param input_it [in] Device-accessible iterator providing the iterators to the source + * ranges + * @param output_it [in] Device-accessible iterator providing the iterators to the + * destination ranges + * @param sizes [in] Device-accessible iterator providing the number of elements to be copied + * for each pair of ranges + * @param num_ranges [in] The total number of range pairs + * @param stream [in] [optional] CUDA stream to launch kernels within. Default is + * stream0. + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t Batched(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIt input_it, + OutputIt output_it, + SizeIteratorT sizes, + uint32_t num_ranges, + cudaStream_t stream = 0) + { + // Integer type large enough to hold any offset in [0, num_ranges) + using RangeOffsetT = uint32_t; + + // Integer type large enough to hold any offset in [0, num_thread_blocks_launched), where a safe + // uppper bound on num_thread_blocks_launched can be assumed to be given by + // IDIV_CEIL(num_ranges, 64) + using BlockOffsetT = uint32_t; + + return detail::DispatchBatchMemcpy::Dispatch(d_temp_storage, + temp_storage_bytes, + input_it, + output_it, + sizes, + num_ranges, + stream); + } +}; + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/device/device_histogram.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/device/device_histogram.cuh new file mode 100644 index 0000000000000000000000000000000000000000..4e71c04ed82e3a2f7814b55607ae39a0ec793d61 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/device/device_histogram.cuh @@ -0,0 +1,1672 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2022, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * @file cub::DeviceHistogram provides device-wide parallel operations for + * constructing histogram(s) from a sequence of samples data residing + * within device-accessible memory. + */ + +#pragma once + +#include +#include +#include + +#include +#include +#include + +CUB_NAMESPACE_BEGIN + + +/** + * @brief DeviceHistogram provides device-wide parallel operations for + * constructing histogram(s) from a sequence of samples data residing + * within device-accessible memory. ![](histogram_logo.png) + * @ingroup SingleModule + * + * @par Overview + * A histogram + * counts the number of observations that fall into each of the disjoint categories (known as bins). + * + * @par Usage Considerations + * @cdp_class{DeviceHistogram} + * + */ +struct DeviceHistogram +{ + /******************************************************************//** + * @name Evenly-segmented bin ranges + *********************************************************************/ + //@{ + + /** + * @brief Computes an intensity histogram from a sequence of data samples + * using equal-width bins. + * + * @par + * - The number of histogram bins is (`num_levels - 1`) + * - All bins comprise the same width of sample values: + * `(upper_level - lower_level) / (num_levels - 1)`. + * - If the common type of `SampleT` and `LevelT` is of integral type, the bin for a sample is + * computed as `(sample - lower_level) * (num_levels - 1) / (upper_level - lower_level)`, round + * down to the nearest whole number. To protect against potential overflows, if the product + * `(upper_level - lower_level) * (num_levels - 1)` exceeds the number representable by an + * `uint64_t`, the cuda error `cudaErrorInvalidValue` is returned. If the common type is 128 + * bits wide, bin computation will use 128-bit arithmetic and `cudaErrorInvalidValue` will only + * be returned if bin computation would overflow for 128-bit arithmetic. + * - The ranges `[d_samples, d_samples + num_samples)` and + * `[d_histogram, d_histogram + num_levels - 1)` shall not overlap + * in any way. + * - `cuda::std::common_type` must be valid, and both LevelT + * and SampleT must be valid arithmetic types. The common type must be + * convertible to `int` and trivially copyable. + * - @devicestorage + * + * @par Snippet + * The code snippet below illustrates the computation of a six-bin histogram + * from a sequence of float samples + * + * @par + * @code + * #include // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers for + * // input samples and output histogram + * int num_samples; // e.g., 10 + * float* d_samples; // e.g., [2.2, 6.1, 7.1, 2.9, 3.5, 0.3, 2.9, 2.1, 6.1, 999.5] + * int* d_histogram; // e.g., [ -, -, -, -, -, -] + * int num_levels; // e.g., 7 (seven level boundaries for six bins) + * float lower_level; // e.g., 0.0 (lower sample value boundary of lowest bin) + * float upper_level; // e.g., 12.0 (upper sample value boundary of upper bin) + * ... + * + * // Determine temporary device storage requirements + * void* d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceHistogram::HistogramEven( + * d_temp_storage, temp_storage_bytes, + * d_samples, d_histogram, num_levels, + * lower_level, upper_level, num_samples); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Compute histograms + * cub::DeviceHistogram::HistogramEven( + * d_temp_storage, temp_storage_bytes, + * d_samples, d_histogram, num_levels, + * lower_level, upper_level, num_samples); + * + * // d_histogram <-- [1, 5, 0, 3, 0, 0]; + * @endcode + * + * @tparam SampleIteratorT + * **[inferred]** Random-access input iterator type for reading input + * samples \iterator + * + * @tparam CounterT + * **[inferred]** Integer type for histogram bin counters + * + * @tparam LevelT + * **[inferred]** Type for specifying boundaries (levels) + * + * @tparam OffsetT + * **[inferred]** Signed integer type for sequence offsets, list lengths, + * pointer differences, etc. \offset_size1 + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no + * work is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in] d_samples + * The pointer to the input sequence of data samples. + * + * @param[out] d_histogram + * The pointer to the histogram counter output array of length + * `num_levels - 1`. + * + * @param[in] num_levels + * The number of boundaries (levels) for delineating histogram samples. + * Implies that the number of bins is `num_levels - 1`. + * + * @param[in] lower_level + * The lower sample value bound (inclusive) for the lowest histogram bin. + * + * @param[in] upper_level + * The upper sample value bound (exclusive) for the highest histogram bin. + * + * @param[in] num_samples + * The number of input samples (i.e., the length of `d_samples`) + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. + * Default is stream0. + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + HistogramEven(void *d_temp_storage, + size_t &temp_storage_bytes, + SampleIteratorT d_samples, + CounterT *d_histogram, + int num_levels, + LevelT lower_level, + LevelT upper_level, + OffsetT num_samples, + cudaStream_t stream = 0) + { + /// The sample value type of the input iterator + using SampleT = cub::detail::value_t; + + CounterT *d_histogram1[1] = {d_histogram}; + int num_levels1[1] = {num_levels}; + LevelT lower_level1[1] = {lower_level}; + LevelT upper_level1[1] = {upper_level}; + + return MultiHistogramEven<1, 1>(d_temp_storage, + temp_storage_bytes, + d_samples, + d_histogram1, + num_levels1, + lower_level1, + upper_level1, + num_samples, + static_cast(1), + sizeof(SampleT) * num_samples, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + HistogramEven(void *d_temp_storage, + size_t &temp_storage_bytes, + SampleIteratorT d_samples, + CounterT *d_histogram, + int num_levels, + LevelT lower_level, + LevelT upper_level, + OffsetT num_samples, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return HistogramEven(d_temp_storage, + temp_storage_bytes, + d_samples, + d_histogram, + num_levels, + lower_level, + upper_level, + num_samples, + stream); + } + + /** + * @brief Computes an intensity histogram from a sequence of data samples + * using equal-width bins. + * + * @par + * - A two-dimensional *region of interest* within `d_samples` can be + * specified using the `num_row_samples`, `num_rows`, and + * `row_stride_bytes` parameters. + * - The row stride must be a whole multiple of the sample data type + * size, i.e., `(row_stride_bytes % sizeof(SampleT)) == 0`. + * - The number of histogram bins is (`num_levels - 1`) + * - All bins comprise the same width of sample values: + * `(upper_level - lower_level) / (num_levels - 1)` + * - If the common type of `SampleT` and `LevelT` is of integral type, the bin for a sample is + * computed as `(sample - lower_level) * (num_levels - 1) / (upper_level - lower_level)`, round + * down to the nearest whole number. To protect against potential overflows, if the product + * `(upper_level - lower_level) * (num_levels - 1)` exceeds the number representable by an + * `uint64_t`, the cuda error `cudaErrorInvalidValue` is returned. If the common type is 128 + * bits wide, bin computation will use 128-bit arithmetic and `cudaErrorInvalidValue` will only + * be returned if bin computation would overflow for 128-bit arithmetic. + * - For a given row `r` in `[0, num_rows)`, let + * `row_begin = d_samples + r * row_stride_bytes / sizeof(SampleT)` and + * `row_end = row_begin + num_row_samples`. The ranges + * `[row_begin, row_end)` and `[d_histogram, d_histogram + num_levels - 1)` + * shall not overlap in any way. + * - `cuda::std::common_type` must be valid, and both LevelT + * and SampleT must be valid arithmetic types. The common type must be + * convertible to `int` and trivially copyable. + * - @devicestorage + * + * @par Snippet + * The code snippet below illustrates the computation of a six-bin histogram + * from a 2x5 region of interest within a flattened 2x7 array of float samples. + * + * @par + * @code + * #include // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers for + * // input samples and output histogram + * int num_row_samples; // e.g., 5 + * int num_rows; // e.g., 2; + * size_t row_stride_bytes; // e.g., 7 * sizeof(float) + * float* d_samples; // e.g., [2.2, 6.1, 7.1, 2.9, 3.5, -, -, + * // 0.3, 2.9, 2.1, 6.1, 999.5, -, -] + * int* d_histogram; // e.g., [ -, -, -, -, -, -] + * int num_levels; // e.g., 7 (seven level boundaries for six bins) + * float lower_level; // e.g., 0.0 (lower sample value boundary of lowest bin) + * float upper_level; // e.g., 12.0 (upper sample value boundary of upper bin) + * ... + * + * // Determine temporary device storage requirements + * void* d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceHistogram::HistogramEven( + * d_temp_storage, temp_storage_bytes, + * d_samples, d_histogram, num_levels, lower_level, upper_level, + * num_row_samples, num_rows, row_stride_bytes); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Compute histograms + * cub::DeviceHistogram::HistogramEven( + * d_temp_storage, temp_storage_bytes, d_samples, d_histogram, + * d_samples, d_histogram, num_levels, lower_level, upper_level, + * num_row_samples, num_rows, row_stride_bytes); + * + * // d_histogram <-- [1, 5, 0, 3, 0, 0]; + * @endcode + * + * @tparam SampleIteratorT + * **[inferred]** Random-access input iterator type for reading + * input samples. \iterator + * + * @tparam CounterT + * **[inferred]** Integer type for histogram bin counters + * + * @tparam LevelT + * **[inferred]** Type for specifying boundaries (levels) + * + * @tparam OffsetT + * **[inferred]** Signed integer type for sequence offsets, list lengths, + * pointer differences, etc. \offset_size1 + + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no + * work is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in] d_samples + * The pointer to the input sequence of data samples. + * + * @param[out] d_histogram + * The pointer to the histogram counter output array of + * length `num_levels - 1`. + * + * @param[in] num_levels + * The number of boundaries (levels) for delineating histogram samples. + * Implies that the number of bins is `num_levels - 1`. + * + * @param[in] lower_level + * The lower sample value bound (inclusive) for the lowest histogram bin. + * + * @param[in] upper_level + * The upper sample value bound (exclusive) for the highest histogram bin. + * + * @param[in] num_row_samples + * The number of data samples per row in the region of interest + * + * @param[in] num_rows + * The number of rows in the region of interest + * + * @param[in] row_stride_bytes + * The number of bytes between starts of consecutive rows in + * the region of interest + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. + * Default is stream0. + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + HistogramEven(void *d_temp_storage, + size_t &temp_storage_bytes, + SampleIteratorT d_samples, + CounterT *d_histogram, + int num_levels, + LevelT lower_level, + LevelT upper_level, + OffsetT num_row_samples, + OffsetT num_rows, + size_t row_stride_bytes, + cudaStream_t stream = 0) + { + CounterT *d_histogram1[1] = {d_histogram}; + int num_levels1[1] = {num_levels}; + LevelT lower_level1[1] = {lower_level}; + LevelT upper_level1[1] = {upper_level}; + + return MultiHistogramEven<1, 1>(d_temp_storage, + temp_storage_bytes, + d_samples, + d_histogram1, + num_levels1, + lower_level1, + upper_level1, + num_row_samples, + num_rows, + row_stride_bytes, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + HistogramEven(void *d_temp_storage, + size_t &temp_storage_bytes, + SampleIteratorT d_samples, + CounterT *d_histogram, + int num_levels, + LevelT lower_level, + LevelT upper_level, + OffsetT num_row_samples, + OffsetT num_rows, + size_t row_stride_bytes, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return HistogramEven(d_temp_storage, + temp_storage_bytes, + d_samples, + d_histogram, + num_levels, + lower_level, + upper_level, + num_row_samples, + num_rows, + row_stride_bytes, + stream); + } + + /** + * @brief Computes per-channel intensity histograms from a sequence of + * multi-channel "pixel" data samples using equal-width bins. + * + * @par + * - The input is a sequence of *pixel* structures, where each pixel comprises + * a record of `NUM_CHANNELS` consecutive data samples + * (e.g., an *RGBA* pixel). + * - Of the `NUM_CHANNELS` specified, the function will only compute + * histograms for the first `NUM_ACTIVE_CHANNELS` + * (e.g., only *RGB* histograms from *RGBA* pixel samples). + * - The number of histogram bins for channeli is + * `num_levels[i] - 1`. + * - For channeli, the range of values for all histogram bins + * have the same width: + * `(upper_level[i] - lower_level[i]) / (num_levels[i] - 1)` + * - If the common type of sample and level is of integral type, the bin for a sample is + * computed as `(sample - lower_level[i]) * (num_levels - 1) / (upper_level[i] - + * lower_level[i])`, round down to the nearest whole number. To protect against potential + * overflows, if, for any channel `i`, the product `(upper_level[i] - lower_level[i]) * + * (num_levels[i] - 1)` exceeds the number representable by an `uint64_t`, the cuda error + * `cudaErrorInvalidValue` is returned. If the common type is 128 bits wide, bin computation + * will use 128-bit arithmetic and `cudaErrorInvalidValue` will only be returned if bin + * computation would overflow for 128-bit arithmetic. + * - For a given channel `c` in `[0, NUM_ACTIVE_CHANNELS)`, the ranges + * `[d_samples, d_samples + NUM_CHANNELS * num_pixels)` and + * `[d_histogram[c], d_histogram[c] + num_levels[c] - 1)` shall not overlap + * in any way. + * - `cuda::std::common_type` must be valid, and both LevelT + * and SampleT must be valid arithmetic types. The common type must be + * convertible to `int` and trivially copyable. + * - @devicestorage + * + * @par Snippet + * The code snippet below illustrates the computation of three 256-bin RGB histograms + * from a quad-channel sequence of RGBA pixels (8 bits per channel per pixel) + * + * @par + * @code + * #include // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers for + * // input samples and output histograms + * int num_pixels; // e.g., 5 + * unsigned char* d_samples; // e.g., [(2, 6, 7, 5), (3, 0, 2, 1), (7, 0, 6, 2), + * // (0, 6, 7, 5), (3, 0, 2, 6)] + * int* d_histogram[3]; // e.g., three device pointers to three device buffers, + * // each allocated with 256 integer counters + * int num_levels[3]; // e.g., {257, 257, 257}; + * unsigned int lower_level[3]; // e.g., {0, 0, 0}; + * unsigned int upper_level[3]; // e.g., {256, 256, 256}; + * ... + * + * // Determine temporary device storage requirements + * void* d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceHistogram::MultiHistogramEven<4, 3>( + * d_temp_storage, temp_storage_bytes, + * d_samples, d_histogram, num_levels, + * lower_level, upper_level, num_pixels); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Compute histograms + * cub::DeviceHistogram::MultiHistogramEven<4, 3>( + * d_temp_storage, temp_storage_bytes, + * d_samples, d_histogram, num_levels, + * lower_level, upper_level, num_pixels); + * + * // d_histogram <-- [ [1, 0, 1, 2, 0, 0, 0, 1, 0, 0, 0, ..., 0], + * // [0, 3, 0, 0, 0, 0, 2, 0, 0, 0, 0, ..., 0], + * // [0, 0, 2, 0, 0, 0, 1, 2, 0, 0, 0, ..., 0] ] + * @endcode + * + * @tparam NUM_CHANNELS + * Number of channels interleaved in the input data (may be greater than + * the number of channels being actively histogrammed) + * + * @tparam NUM_ACTIVE_CHANNELS + * **[inferred]** Number of channels actively being histogrammed + * + * @tparam SampleIteratorT + * **[inferred]** Random-access input iterator type for reading + * input samples. \iterator + * + * @tparam CounterT + * **[inferred]** Integer type for histogram bin counters + * + * @tparam LevelT + * **[inferred]** Type for specifying boundaries (levels) + * + * @tparam OffsetT + * **[inferred]** Signed integer type for sequence offsets, list lengths, + * pointer differences, etc. \offset_size1 + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no + * work is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in] d_samples + * The pointer to the multi-channel input sequence of data samples. + * The samples from different channels are assumed to be interleaved + * (e.g., an array of 32-bit pixels where each pixel consists of four + * *RGBA* 8-bit samples). + * + * @param[out] d_histogram + * The pointers to the histogram counter output arrays, one for each active + * channel. For channeli, the allocation length of + * `d_histogram[i]` should be `num_levels[i] - 1`. + * + * @param[in] num_levels + * The number of boundaries (levels) for delineating histogram samples in + * each active channel. Implies that the number of bins for + * channeli is `num_levels[i] - 1`. + * + * @param[in] lower_level + * The lower sample value bound (inclusive) for the lowest histogram bin in + * each active channel. + * + * @param[in] upper_level + * The upper sample value bound (exclusive) for the highest histogram bin + * in each active channel. + * + * @param[in] num_pixels + * The number of multi-channel pixels + * (i.e., the length of `d_samples / NUM_CHANNELS`) + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. + * Default is stream0. + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + MultiHistogramEven(void *d_temp_storage, + size_t &temp_storage_bytes, + SampleIteratorT d_samples, + CounterT *d_histogram[NUM_ACTIVE_CHANNELS], + int num_levels[NUM_ACTIVE_CHANNELS], + LevelT lower_level[NUM_ACTIVE_CHANNELS], + LevelT upper_level[NUM_ACTIVE_CHANNELS], + OffsetT num_pixels, + cudaStream_t stream = 0) + { + /// The sample value type of the input iterator + using SampleT = cub::detail::value_t; + + return MultiHistogramEven( + d_temp_storage, + temp_storage_bytes, + d_samples, + d_histogram, + num_levels, + lower_level, + upper_level, + num_pixels, + static_cast(1), + sizeof(SampleT) * NUM_CHANNELS * num_pixels, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + MultiHistogramEven(void *d_temp_storage, + size_t &temp_storage_bytes, + SampleIteratorT d_samples, + CounterT *d_histogram[NUM_ACTIVE_CHANNELS], + int num_levels[NUM_ACTIVE_CHANNELS], + LevelT lower_level[NUM_ACTIVE_CHANNELS], + LevelT upper_level[NUM_ACTIVE_CHANNELS], + OffsetT num_pixels, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return MultiHistogramEven(d_temp_storage, + temp_storage_bytes, + d_samples, + d_histogram, + num_levels, + lower_level, + upper_level, + num_pixels, + stream); + } + + /** + * @brief Computes per-channel intensity histograms from a sequence of + * multi-channel "pixel" data samples using equal-width bins. + * + * @par + * - The input is a sequence of *pixel* structures, where each pixel + * comprises a record of `NUM_CHANNELS` consecutive data samples + * (e.g., an *RGBA* pixel). + * - Of the `NUM_CHANNELS` specified, the function will only compute + * histograms for the first `NUM_ACTIVE_CHANNELS` (e.g., only *RGB* + * histograms from *RGBA* pixel samples). + * - A two-dimensional *region of interest* within `d_samples` can be + * specified using the `num_row_samples`, `num_rows`, and + * `row_stride_bytes` parameters. + * - The row stride must be a whole multiple of the sample data type + * size, i.e., `(row_stride_bytes % sizeof(SampleT)) == 0`. + * - The number of histogram bins for channeli is + * `num_levels[i] - 1`. + * - For channeli, the range of values for all histogram + * bins have the same width: + * `(upper_level[i] - lower_level[i]) / (num_levels[i] - 1)` + * - If the common type of sample and level is of integral type, the bin for a sample is + * computed as `(sample - lower_level[i]) * (num_levels - 1) / (upper_level[i] - + * lower_level[i])`, round down to the nearest whole number. To protect against potential + * overflows, if, for any channel `i`, the product `(upper_level[i] - lower_level[i]) * + * (num_levels[i] - 1)` exceeds the number representable by an `uint64_t`, the cuda error + * `cudaErrorInvalidValue` is returned. If the common type is 128 bits wide, bin computation + * will use 128-bit arithmetic and `cudaErrorInvalidValue` will only be returned if bin + * computation would overflow for 128-bit arithmetic. + * - For a given row `r` in `[0, num_rows)`, and sample `s` in + * `[0, num_row_pixels)`, let + * `row_begin = d_samples + r * row_stride_bytes / sizeof(SampleT)`, + * `sample_begin = row_begin + s * NUM_CHANNELS`, and + * `sample_end = sample_begin + NUM_ACTIVE_CHANNELS`. For a given channel + * `c` in `[0, NUM_ACTIVE_CHANNELS)`, the ranges + * `[sample_begin, sample_end)` and + * `[d_histogram[c], d_histogram[c] + num_levels[c] - 1)` shall not overlap + * in any way. + * - `cuda::std::common_type` must be valid, and both LevelT + * and SampleT must be valid arithmetic types. The common type must be + * convertible to `int` and trivially copyable. + * - @devicestorage + * + * @par Snippet + * The code snippet below illustrates the computation of three 256-bin + * *RGB* histograms from a 2x3 region of interest of within a flattened 2x4 + * array of quad-channel *RGBA* pixels (8 bits per channel per pixel). + * + * @par + * @code + * #include // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers for input + * // samples and output histograms + * int num_row_pixels; // e.g., 3 + * int num_rows; // e.g., 2 + * size_t row_stride_bytes; // e.g., 4 * sizeof(unsigned char) * NUM_CHANNELS + * unsigned char* d_samples; // e.g., [(2, 6, 7, 5), (3, 0, 2, 1), (7, 0, 6, 2), (-, -, -, -), + * // (0, 6, 7, 5), (3, 0, 2, 6), (1, 1, 1, 1), (-, -, -, -)] + * int* d_histogram[3]; // e.g., three device pointers to three device buffers, + * // each allocated with 256 integer counters + * int num_levels[3]; // e.g., {257, 257, 257}; + * unsigned int lower_level[3]; // e.g., {0, 0, 0}; + * unsigned int upper_level[3]; // e.g., {256, 256, 256}; + * ... + * + * // Determine temporary device storage requirements + * void* d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceHistogram::MultiHistogramEven<4, 3>( + * d_temp_storage, temp_storage_bytes, + * d_samples, d_histogram, num_levels, lower_level, upper_level, + * num_row_pixels, num_rows, row_stride_bytes); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Compute histograms + * cub::DeviceHistogram::MultiHistogramEven<4, 3>( + * d_temp_storage, temp_storage_bytes, + * d_samples, d_histogram, num_levels, lower_level, upper_level, + * num_row_pixels, num_rows, row_stride_bytes); + * + * // d_histogram <-- [ [1, 1, 1, 2, 0, 0, 0, 1, 0, 0, 0, ..., 0], + * // [0, 4, 0, 0, 0, 0, 2, 0, 0, 0, 0, ..., 0], + * // [0, 1, 2, 0, 0, 0, 1, 2, 0, 0, 0, ..., 0] ] + * @endcode + * + * @tparam NUM_CHANNELS + * Number of channels interleaved in the input data (may be greater than + * the number of channels being actively histogrammed) + * + * @tparam NUM_ACTIVE_CHANNELS + * **[inferred]** Number of channels actively being histogrammed + * + * @tparam SampleIteratorT + * **[inferred]** Random-access input iterator type for reading input + * samples. \iterator + * + * @tparam CounterT + * **[inferred]** Integer type for histogram bin counters + * + * @tparam LevelT + * **[inferred]** Type for specifying boundaries (levels) + * + * @tparam OffsetT + * **[inferred]** Signed integer type for sequence offsets, list lengths, + * pointer differences, etc. \offset_size1 + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no + * work is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in] d_samples + * The pointer to the multi-channel input sequence of data samples. The + * samples from different channels are assumed to be interleaved (e.g., + * an array of 32-bit pixels where each pixel consists of four + * *RGBA* 8-bit samples). + * + * @param[out] d_histogram + * The pointers to the histogram counter output arrays, one for each + * active channel. For channeli, the allocation length + * of `d_histogram[i]` should be `num_levels[i] - 1`. + * + * @param[in] num_levels + * The number of boundaries (levels) for delineating histogram samples in + * each active channel. Implies that the number of bins for + * channeli is `num_levels[i] - 1`. + * + * @param[in] lower_level + * The lower sample value bound (inclusive) for the lowest histogram bin in + * each active channel. + * + * @param[in] upper_level + * The upper sample value bound (exclusive) for the highest histogram bin + * in each active channel. + * + * @param[in] num_row_pixels + * The number of multi-channel pixels per row in the region of interest + * + * @param[in] num_rows + * The number of rows in the region of interest + * + * @param[in] row_stride_bytes + * The number of bytes between starts of consecutive rows in the region of + * interest + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. + * Default is stream0. + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + MultiHistogramEven(void *d_temp_storage, + size_t &temp_storage_bytes, + SampleIteratorT d_samples, + CounterT *d_histogram[NUM_ACTIVE_CHANNELS], + int num_levels[NUM_ACTIVE_CHANNELS], + LevelT lower_level[NUM_ACTIVE_CHANNELS], + LevelT upper_level[NUM_ACTIVE_CHANNELS], + OffsetT num_row_pixels, + OffsetT num_rows, + size_t row_stride_bytes, + cudaStream_t stream = 0) + { + /// The sample value type of the input iterator + using SampleT = cub::detail::value_t; + Int2Type is_byte_sample; + + if ((sizeof(OffsetT) > sizeof(int)) && + ((unsigned long long)(num_rows * row_stride_bytes) < + (unsigned long long)INT_MAX)) + { + // Down-convert OffsetT data type + return DispatchHistogram::DispatchEven(d_temp_storage, + temp_storage_bytes, + d_samples, + d_histogram, + num_levels, + lower_level, + upper_level, + (int)num_row_pixels, + (int)num_rows, + (int)(row_stride_bytes / + sizeof(SampleT)), + stream, + is_byte_sample); + } + + return DispatchHistogram::DispatchEven(d_temp_storage, + temp_storage_bytes, + d_samples, + d_histogram, + num_levels, + lower_level, + upper_level, + num_row_pixels, + num_rows, + (OffsetT)(row_stride_bytes / + sizeof(SampleT)), + stream, + is_byte_sample); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + MultiHistogramEven(void *d_temp_storage, + size_t &temp_storage_bytes, + SampleIteratorT d_samples, + CounterT *d_histogram[NUM_ACTIVE_CHANNELS], + int num_levels[NUM_ACTIVE_CHANNELS], + LevelT lower_level[NUM_ACTIVE_CHANNELS], + LevelT upper_level[NUM_ACTIVE_CHANNELS], + OffsetT num_row_pixels, + OffsetT num_rows, + size_t row_stride_bytes, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return MultiHistogramEven(d_temp_storage, + temp_storage_bytes, + d_samples, + d_histogram, + num_levels, + lower_level, + upper_level, + num_row_pixels, + num_rows, + row_stride_bytes, + stream); + } + + //@} end member group + /******************************************************************//** + * @name Custom bin ranges + *********************************************************************/ + //@{ + + /** + * @brief Computes an intensity histogram from a sequence of data samples + * using the specified bin boundary levels. + * + * @par + * - The number of histogram bins is (`num_levels - 1`) + * - The value range for bini is `[level[i], level[i+1])` + * - The range `[d_histogram, d_histogram + num_levels - 1)` shall not + * overlap `[d_samples, d_samples + num_samples)` nor + * `[d_levels, d_levels + num_levels)` in any way. The ranges + * `[d_levels, d_levels + num_levels)` and + * `[d_samples, d_samples + num_samples)` may overlap. + * - @devicestorage + * + * @par Snippet + * The code snippet below illustrates the computation of an six-bin histogram + * from a sequence of float samples + * + * @par + * @code + * #include // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers for input + * // samples and output histogram + * int num_samples; // e.g., 10 + * float* d_samples; // e.g., [2.2, 6.0, 7.1, 2.9, 3.5, 0.3, 2.9, 2.0, 6.1, 999.5] + * int* d_histogram; // e.g., [ -, -, -, -, -, -] + * int num_levels // e.g., 7 (seven level boundaries for six bins) + * float* d_levels; // e.g., [0.0, 2.0, 4.0, 6.0, 8.0, 12.0, 16.0] + * ... + * + * // Determine temporary device storage requirements + * void* d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceHistogram::HistogramRange( + * d_temp_storage, temp_storage_bytes, + * d_samples, d_histogram, num_levels, d_levels, num_samples); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Compute histograms + * cub::DeviceHistogram::HistogramRange( + * d_temp_storage, temp_storage_bytes, + * d_samples, d_histogram, num_levels, d_levels, num_samples); + * + * // d_histogram <-- [1, 5, 0, 3, 0, 0]; + * + * @endcode + * + * @tparam SampleIteratorT + * **[inferred]** Random-access input iterator type for reading + * input samples.\iterator + * + * @tparam CounterT + * **[inferred]** Integer type for histogram bin counters + * + * @tparam LevelT + * **[inferred]** Type for specifying boundaries (levels) + * + * @tparam OffsetT + * **[inferred]** Signed integer type for sequence offsets, list lengths, + * pointer differences, etc. \offset_size1 + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no work + * is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in] d_samples + * The pointer to the input sequence of data samples. + * + * @param[out] d_histogram + * The pointer to the histogram counter output array of length + * `num_levels - 1`. + * + * @param[in] num_levels + * The number of boundaries (levels) for delineating histogram samples. + * Implies that the number of bins is `num_levels - 1`. + * + * @param[in] d_levels + * The pointer to the array of boundaries (levels). Bin ranges are defined + * by consecutive boundary pairings: lower sample value boundaries are + * inclusive and upper sample value boundaries are exclusive. + * + * @param[in] num_samples + * The number of data samples per row in the region of interest + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. + * Default is stream0. + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + HistogramRange(void *d_temp_storage, + size_t &temp_storage_bytes, + SampleIteratorT d_samples, + CounterT *d_histogram, + int num_levels, + LevelT *d_levels, + OffsetT num_samples, + cudaStream_t stream = 0) + { + /// The sample value type of the input iterator + using SampleT = cub::detail::value_t; + + CounterT *d_histogram1[1] = {d_histogram}; + int num_levels1[1] = {num_levels}; + LevelT *d_levels1[1] = {d_levels}; + + return MultiHistogramRange<1, 1>(d_temp_storage, + temp_storage_bytes, + d_samples, + d_histogram1, + num_levels1, + d_levels1, + num_samples, + (OffsetT)1, + (size_t)(sizeof(SampleT) * num_samples), + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + HistogramRange(void *d_temp_storage, + size_t &temp_storage_bytes, + SampleIteratorT d_samples, + CounterT *d_histogram, + int num_levels, + LevelT *d_levels, + OffsetT num_samples, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return HistogramRange(d_temp_storage, + temp_storage_bytes, + d_samples, + d_histogram, + num_levels, + d_levels, + num_samples, + stream); + } + + /** + * @brief Computes an intensity histogram from a sequence of data samples + * using the specified bin boundary levels. + * + * @par + * - A two-dimensional *region of interest* within `d_samples` can be + * specified using the `num_row_samples`, `num_rows`, and + * `row_stride_bytes` parameters. + * - The row stride must be a whole multiple of the sample data type + * size, i.e., `(row_stride_bytes % sizeof(SampleT)) == 0`. + * - The number of histogram bins is (`num_levels - 1`) + * - The value range for bini is `[level[i], level[i+1])` + * - For a given row `r` in `[0, num_rows)`, let + * `row_begin = d_samples + r * row_stride_bytes / sizeof(SampleT)` and + * `row_end = row_begin + num_row_samples`. The range + * `[d_histogram, d_histogram + num_levels - 1)` shall not overlap + * `[row_begin, row_end)` nor `[d_levels, d_levels + num_levels)`. + * The ranges `[d_levels, d_levels + num_levels)` and `[row_begin, row_end)` + * may overlap. + * - @devicestorage + * + * @par Snippet + * The code snippet below illustrates the computation of a six-bin histogram + * from a 2x5 region of interest within a flattened 2x7 array of float samples. + * + * @par + * @code + * #include // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers for input samples and + * // output histogram + * int num_row_samples; // e.g., 5 + * int num_rows; // e.g., 2; + * int row_stride_bytes; // e.g., 7 * sizeof(float) + * float* d_samples; // e.g., [2.2, 6.0, 7.1, 2.9, 3.5, -, -, + * // 0.3, 2.9, 2.0, 6.1, 999.5, -, -] + * int* d_histogram; // e.g., [ -, -, -, -, -, -] + * int num_levels // e.g., 7 (seven level boundaries for six bins) + * float *d_levels; // e.g., [0.0, 2.0, 4.0, 6.0, 8.0, 12.0, 16.0] + * ... + * + * // Determine temporary device storage requirements + * void* d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceHistogram::HistogramRange( + * d_temp_storage, temp_storage_bytes, + * d_samples, d_histogram, num_levels, d_levels, + * num_row_samples, num_rows, row_stride_bytes); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Compute histograms + * cub::DeviceHistogram::HistogramRange( + * d_temp_storage, temp_storage_bytes, + * d_samples, d_histogram, num_levels, d_levels, + * num_row_samples, num_rows, row_stride_bytes); + * + * // d_histogram <-- [1, 5, 0, 3, 0, 0]; + * @endcode + * + * @tparam SampleIteratorT + * **[inferred]** Random-access input iterator type for reading + * input samples. \iterator + * + * @tparam CounterT + * **[inferred]** Integer type for histogram bin counters + * + * @tparam LevelT + * **[inferred]** Type for specifying boundaries (levels) + * + * @tparam OffsetT + * **[inferred]** Signed integer type for sequence offsets, list lengths, + * pointer differences, etc. \offset_size1 + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no + * work is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in] d_samples + * The pointer to the input sequence of data samples. + * + * @param[out] d_histogram + * The pointer to the histogram counter output array of length + * `num_levels - 1`. + * + * @param[in] num_levels + * The number of boundaries (levels) for delineating histogram samples. + * Implies that the number of bins is `num_levels - 1`. + * + * @param[in] d_levels + * The pointer to the array of boundaries (levels). Bin ranges are defined + * by consecutive boundary pairings: lower sample value boundaries are + * inclusive and upper sample value boundaries are exclusive. + * + * @param[in] num_row_samples + * The number of data samples per row in the region of interest + * + * @param[in] num_rows + * The number of rows in the region of interest + * + * @param[in] row_stride_bytes + * The number of bytes between starts of consecutive rows in the region + * of interest + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. + * Default is stream0. + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + HistogramRange(void *d_temp_storage, + size_t &temp_storage_bytes, + SampleIteratorT d_samples, + CounterT *d_histogram, + int num_levels, + LevelT *d_levels, + OffsetT num_row_samples, + OffsetT num_rows, + size_t row_stride_bytes, + cudaStream_t stream = 0) + { + CounterT *d_histogram1[1] = {d_histogram}; + int num_levels1[1] = {num_levels}; + LevelT *d_levels1[1] = {d_levels}; + + return MultiHistogramRange<1, 1>(d_temp_storage, + temp_storage_bytes, + d_samples, + d_histogram1, + num_levels1, + d_levels1, + num_row_samples, + num_rows, + row_stride_bytes, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + HistogramRange(void *d_temp_storage, + size_t &temp_storage_bytes, + SampleIteratorT d_samples, + CounterT *d_histogram, + int num_levels, + LevelT *d_levels, + OffsetT num_row_samples, + OffsetT num_rows, + size_t row_stride_bytes, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return HistogramRange(d_temp_storage, + temp_storage_bytes, + d_samples, + d_histogram, + num_levels, + d_levels, + num_row_samples, + num_rows, + row_stride_bytes, + stream); + } + + /** + * @brief Computes per-channel intensity histograms from a sequence of + * multi-channel "pixel" data samples using the specified bin + * boundary levels. + * + * @par + * - The input is a sequence of *pixel* structures, where each pixel + * comprises a record of `NUM_CHANNELS` consecutive data samples + * (e.g., an *RGBA* pixel). + * - Of the `NUM_CHANNELS` specified, the function will only compute + * histograms for the first `NUM_ACTIVE_CHANNELS` (e.g., *RGB* histograms + * from *RGBA* pixel samples). + * - The number of histogram bins for channeli is + * `num_levels[i] - 1`. + * - For channeli, the range of values for all histogram + * bins have the same width: + * `(upper_level[i] - lower_level[i]) / (num_levels[i] - 1)` + * - For given channels `c1` and `c2` in `[0, NUM_ACTIVE_CHANNELS)`, the + * range `[d_histogram[c1], d_histogram[c1] + num_levels[c1] - 1)` shall + * not overlap `[d_samples, d_samples + NUM_CHANNELS * num_pixels)` nor + * `[d_levels[c2], d_levels[c2] + num_levels[c2])` in any way. + * The ranges `[d_levels[c2], d_levels[c2] + num_levels[c2])` and + * `[d_samples, d_samples + NUM_CHANNELS * num_pixels)` may overlap. + * - @devicestorage + * + * @par Snippet + * The code snippet below illustrates the computation of three 4-bin *RGB* + * histograms from a quad-channel sequence of *RGBA* pixels + * (8 bits per channel per pixel) + * + * @par + * @code + * #include // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers for + * // input samples and output histograms + * int num_pixels; // e.g., 5 + * unsigned char *d_samples; // e.g., [(2, 6, 7, 5),(3, 0, 2, 1),(7, 0, 6, 2), + * // (0, 6, 7, 5),(3, 0, 2, 6)] + * unsigned int *d_histogram[3]; // e.g., [[ -, -, -, -],[ -, -, -, -],[ -, -, -, -]]; + * int num_levels[3]; // e.g., {5, 5, 5}; + * unsigned int *d_levels[3]; // e.g., [ [0, 2, 4, 6, 8], + * // [0, 2, 4, 6, 8], + * // [0, 2, 4, 6, 8] ]; + * ... + * + * // Determine temporary device storage requirements + * void* d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceHistogram::MultiHistogramRange<4, 3>( + * d_temp_storage, temp_storage_bytes, + * d_samples, d_histogram, num_levels, d_levels, num_pixels); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Compute histograms + * cub::DeviceHistogram::MultiHistogramRange<4, 3>( + * d_temp_storage, temp_storage_bytes, + * d_samples, d_histogram, num_levels, d_levels, num_pixels); + * + * // d_histogram <-- [ [1, 3, 0, 1], + * // [3, 0, 0, 2], + * // [0, 2, 0, 3] ] + * + * @endcode + * + * @tparam NUM_CHANNELS + * Number of channels interleaved in the input data (may be greater than + * the number of channels being actively histogrammed) + * + * @tparam NUM_ACTIVE_CHANNELS + * **[inferred]** Number of channels actively being histogrammed + * + * @tparam SampleIteratorT + * **[inferred]** Random-access input iterator type for reading + * input samples. \iterator + * + * @tparam CounterT + * **[inferred]** Integer type for histogram bin counters + * + * @tparam LevelT + * **[inferred]** Type for specifying boundaries (levels) + * + * @tparam OffsetT + * **[inferred]** Signed integer type for sequence offsets, list lengths, + * pointer differences, etc. \offset_size1 + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no + * work is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in] d_samples + * The pointer to the multi-channel input sequence of data samples. + * The samples from different channels are assumed to be interleaved (e.g., + * an array of 32-bit pixels where each pixel consists of four *RGBA* + * 8-bit samples). + * + * @param[out] d_histogram + * The pointers to the histogram counter output arrays, one for each active + * channel. For channeli, the allocation length of + * `d_histogram[i]` should be `num_levels[i] - 1`. + * + * @param[in] num_levels + * The number of boundaries (levels) for delineating histogram samples in + * each active channel. Implies that the number of bins for + * channeli is `num_levels[i] - 1`. + * + * @param[in] d_levels + * The pointers to the arrays of boundaries (levels), one for each active + * channel. Bin ranges are defined by consecutive boundary pairings: lower + * sample value boundaries are inclusive and upper sample value boundaries + * are exclusive. + * + * @param[in] num_pixels + * The number of multi-channel pixels + * (i.e., the length of `d_samples / NUM_CHANNELS`) + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. + * Default is stream0. + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + MultiHistogramRange(void *d_temp_storage, + size_t &temp_storage_bytes, + SampleIteratorT d_samples, + CounterT *d_histogram[NUM_ACTIVE_CHANNELS], + int num_levels[NUM_ACTIVE_CHANNELS], + LevelT *d_levels[NUM_ACTIVE_CHANNELS], + OffsetT num_pixels, + cudaStream_t stream = 0) + { + /// The sample value type of the input iterator + using SampleT = cub::detail::value_t; + + return MultiHistogramRange( + d_temp_storage, + temp_storage_bytes, + d_samples, + d_histogram, + num_levels, + d_levels, + num_pixels, + (OffsetT)1, + (size_t)(sizeof(SampleT) * NUM_CHANNELS * num_pixels), + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + MultiHistogramRange(void *d_temp_storage, + size_t &temp_storage_bytes, + SampleIteratorT d_samples, + CounterT *d_histogram[NUM_ACTIVE_CHANNELS], + int num_levels[NUM_ACTIVE_CHANNELS], + LevelT *d_levels[NUM_ACTIVE_CHANNELS], + OffsetT num_pixels, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return MultiHistogramRange(d_temp_storage, + temp_storage_bytes, + d_samples, + d_histogram, + num_levels, + d_levels, + num_pixels, + stream); + } + + /** + * @brief Computes per-channel intensity histograms from a sequence of + * multi-channel "pixel" data samples using the specified bin boundary + * levels. + * + * @par + * - The input is a sequence of *pixel* structures, where each pixel comprises + * a record of `NUM_CHANNELS` consecutive data samples + * (e.g., an *RGBA* pixel). + * - Of the `NUM_CHANNELS` specified, the function will only compute + * histograms for the first `NUM_ACTIVE_CHANNELS` (e.g., *RGB* histograms + * from *RGBA* pixel samples). + * - A two-dimensional *region of interest* within `d_samples` can be + * specified using the `num_row_samples`, `num_rows`, and `row_stride_bytes` + * parameters. + * - The row stride must be a whole multiple of the sample data type + * size, i.e., `(row_stride_bytes % sizeof(SampleT)) == 0`. + * - The number of histogram bins for channeli is + * `num_levels[i] - 1`. + * - For channeli, the range of values for all histogram + * bins have the same width: + * `(upper_level[i] - lower_level[i]) / (num_levels[i] - 1)` + * - For a given row `r` in `[0, num_rows)`, and sample `s` in + * `[0, num_row_pixels)`, let + * `row_begin = d_samples + r * row_stride_bytes / sizeof(SampleT)`, + * `sample_begin = row_begin + s * NUM_CHANNELS`, and + * `sample_end = sample_begin + NUM_ACTIVE_CHANNELS`. For given channels + * `c1` and `c2` in `[0, NUM_ACTIVE_CHANNELS)`, the range + * `[d_histogram[c1], d_histogram[c1] + num_levels[c1] - 1)` shall not + * overlap `[sample_begin, sample_end)` nor + * `[d_levels[c2], d_levels[c2] + num_levels[c2])` in any way. The ranges + * `[d_levels[c2], d_levels[c2] + num_levels[c2])` and + * `[sample_begin, sample_end)` may overlap. + * - @devicestorage + * + * @par Snippet + * The code snippet below illustrates the computation of three 4-bin *RGB* + * histograms from a 2x3 region of interest of within a flattened 2x4 array + * of quad-channel *RGBA* pixels (8 bits per channel per pixel). + * + * @par + * @code + * #include // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers for input + * // samples and output histograms + * int num_row_pixels; // e.g., 3 + * int num_rows; // e.g., 2 + * size_t row_stride_bytes; // e.g., 4 * sizeof(unsigned char) * NUM_CHANNELS + * unsigned char* d_samples; // e.g., [(2, 6, 7, 5),(3, 0, 2, 1),(1, 1, 1, 1),(-, -, -, -), + * // (7, 0, 6, 2),(0, 6, 7, 5),(3, 0, 2, 6),(-, -, -, -)] + * int* d_histogram[3]; // e.g., [[ -, -, -, -],[ -, -, -, -],[ -, -, -, -]]; + * int num_levels[3]; // e.g., {5, 5, 5}; + * unsigned int* d_levels[3]; // e.g., [ [0, 2, 4, 6, 8], + * // [0, 2, 4, 6, 8], + * // [0, 2, 4, 6, 8] ]; + * ... + * + * // Determine temporary device storage requirements + * void* d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceHistogram::MultiHistogramRange<4, 3>( + * d_temp_storage, temp_storage_bytes, + * d_samples, d_histogram, num_levels, d_levels, + * num_row_pixels, num_rows, row_stride_bytes); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Compute histograms + * cub::DeviceHistogram::MultiHistogramRange<4, 3>( + * d_temp_storage, temp_storage_bytes, + * d_samples, d_histogram, num_levels, + * d_levels, num_row_pixels, num_rows, row_stride_bytes); + * + * // d_histogram <-- [ [2, 3, 0, 1], + * // [3, 0, 0, 2], + * // [1, 2, 0, 3] ] + * + * @endcode + * + * @tparam NUM_CHANNELS + * Number of channels interleaved in the input data (may be greater than + * the number of channels being actively histogrammed) + * + * @tparam NUM_ACTIVE_CHANNELS + * **[inferred]** Number of channels actively being histogrammed + * + * @tparam SampleIteratorT + * **[inferred]** Random-access input iterator type for reading input + * samples. \iterator + * + * @tparam CounterT + * **[inferred]** Integer type for histogram bin counters + * + * @tparam LevelT + * **[inferred]** Type for specifying boundaries (levels) + * + * @tparam OffsetT + * **[inferred]** Signed integer type for sequence offsets, list lengths, + * pointer differences, etc. \offset_size1 + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to \p temp_storage_bytes and no work is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in] d_samples + * The pointer to the multi-channel input sequence of data samples. The + * samples from different channels are assumed to be interleaved (e.g., an + * array of 32-bit pixels where each pixel consists of four + * *RGBA* 8-bit samples). + * + * @param[out] d_histogram + * The pointers to the histogram counter output arrays, one for each active + * channel. For channeli, the allocation length of + * `d_histogram[i]` should be `num_levels[i] - 1`. + * + * @param[in] num_levels + * The number of boundaries (levels) for delineating histogram samples in + * each active channel. Implies that the number of bins for + * channeli is `num_levels[i] - 1`. + * + * @param[in] d_levels + * The pointers to the arrays of boundaries (levels), one for each active + * channel. Bin ranges are defined by consecutive boundary pairings: lower + * sample value boundaries are inclusive and upper sample value boundaries + * are exclusive. + * + * @param[in] num_row_pixels + * The number of multi-channel pixels per row in the region of interest + * + * @param[in] num_rows + * The number of rows in the region of interest + * + * @param[in] row_stride_bytes + * The number of bytes between starts of consecutive rows in the + * region of interest + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. + * Default is stream0. + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + MultiHistogramRange(void *d_temp_storage, + size_t &temp_storage_bytes, + SampleIteratorT d_samples, + CounterT *d_histogram[NUM_ACTIVE_CHANNELS], + int num_levels[NUM_ACTIVE_CHANNELS], + LevelT *d_levels[NUM_ACTIVE_CHANNELS], + OffsetT num_row_pixels, + OffsetT num_rows, + size_t row_stride_bytes, + cudaStream_t stream = 0) + { + /// The sample value type of the input iterator + using SampleT = cub::detail::value_t; + Int2Type is_byte_sample; + + if ((sizeof(OffsetT) > sizeof(int)) && + ((unsigned long long)(num_rows * row_stride_bytes) < + (unsigned long long)INT_MAX)) + { + // Down-convert OffsetT data type + return DispatchHistogram::DispatchRange(d_temp_storage, + temp_storage_bytes, + d_samples, + d_histogram, + num_levels, + d_levels, + (int)num_row_pixels, + (int)num_rows, + (int)(row_stride_bytes / + sizeof(SampleT)), + stream, + is_byte_sample); + } + + return DispatchHistogram::DispatchRange(d_temp_storage, + temp_storage_bytes, + d_samples, + d_histogram, + num_levels, + d_levels, + num_row_pixels, + num_rows, + (OffsetT)(row_stride_bytes / + sizeof(SampleT)), + stream, + is_byte_sample); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + MultiHistogramRange(void *d_temp_storage, + size_t &temp_storage_bytes, + SampleIteratorT d_samples, + CounterT *d_histogram[NUM_ACTIVE_CHANNELS], + int num_levels[NUM_ACTIVE_CHANNELS], + LevelT *d_levels[NUM_ACTIVE_CHANNELS], + OffsetT num_row_pixels, + OffsetT num_rows, + size_t row_stride_bytes, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return MultiHistogramRange(d_temp_storage, + temp_storage_bytes, + d_samples, + d_histogram, + num_levels, + d_levels, + num_row_pixels, + num_rows, + row_stride_bytes, + stream); + } + + //@} end member group +}; + +CUB_NAMESPACE_END + + diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/device/device_memcpy.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/device/device_memcpy.cuh new file mode 100644 index 0000000000000000000000000000000000000000..f9bb03a07df3ca28475ba7320ec5e7019ad19478 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/device/device_memcpy.cuh @@ -0,0 +1,179 @@ +/****************************************************************************** + * Copyright (c) 2011-2022, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * cub::DeviceMemcpy provides device-wide, parallel operations for copying data. + */ + +#pragma once + +#include +#include + +#include +#include + +CUB_NAMESPACE_BEGIN + +/** + * @brief cub::DeviceMemcpy provides device-wide, parallel operations for copying data. + * \ingroup SingleModule + */ +struct DeviceMemcpy +{ + /** + * @brief Copies data from a batch of given source buffers to their corresponding destination + * buffer. + * @note If any input buffer aliases memory from any output buffer the behavior is undefined. If + * any output buffer aliases memory of another output buffer the behavior is undefined. Input + * buffers can alias one another. + * + * @par Snippet + * The code snippet below illustrates usage of DeviceMemcpy::Batched for mutating strings withing + * a single string buffer. + * @par + * @code + * struct GetPtrToStringItem + * { + * __host__ __device__ __forceinline__ void *operator()(uint32_t index) + * { + * return &d_string_data_in[d_string_offsets[index]]; + * } + * char *d_string_data_in; + * uint32_t *d_string_offsets; + * }; + * + * struct GetStringItemSize + * { + * __host__ __device__ __forceinline__ uint32_t operator()(uint32_t index) + * { + * return d_string_offsets[index + 1] - d_string_offsets[index]; + * } + * uint32_t *d_string_offsets; + * }; + * + * uint32_t num_strings = 5; + * char *d_string_data_in; // e.g., "TomatoesBananasApplesOrangesGrapes" + * char *d_string_data_out; // e.g., " ... " + * uint32_t *d_string_offsets_old; // e.g., [0, 8, 15, 21, 28, 34] + * uint32_t *d_string_offsets_new; // e.g., [0, 6, 13, 19, 26, 34] + * uint32_t *d_gather_index; // e.g., [2, 1, 4, 3, 0] + * + * // Initialize an iterator that returns d_gather_index[i] when the i-th item is dereferenced + * auto gather_iterator = thrust::make_permutation_iterator(thrust::make_counting_iterator(0), + * d_gather_index); + * + * // Returns pointers to the input buffer for each string + * auto str_ptrs_in = thrust::make_transform_iterator(gather_iterator, + * GetPtrToStringItem{d_string_data_in, + * d_string_offsets_old}); + * + * // Returns the string size of the i-th string + * auto str_sizes = thrust::make_transform_iterator(gather_iterator, + * GetStringItemSize{d_string_offsets_old}); + * + * // Returns pointers to the output buffer for each string + * auto str_ptrs_out = thrust::make_transform_iterator(thrust::make_counting_iterator(0), + * GetPtrToStringItem{d_string_data_out, + * d_string_offsets_new}); + * + * // Determine temporary device storage requirements + * void *d_temp_storage = nullptr; + * size_t temp_storage_bytes = 0; + * cub::DeviceMemcpy::Batched(d_temp_storage, temp_storage_bytes, str_ptrs_in, str_ptrs_out, + * str_sizes, num_strings); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run batched copy algorithm (used to permute strings) + * cub::DeviceMemcpy::Batched(d_temp_storage, temp_storage_bytes, str_ptrs_in, str_ptrs_out, + * str_sizes, num_strings); + * + * // d_string_data_out <-- "ApplesBananasGrapesOrangesTomatoe" + * @endcode + * @tparam InputBufferIt [inferred] Device-accessible random-access input iterator type + * providing the pointers to the source memory buffers + * @tparam OutputBufferIt [inferred] Device-accessible random-access input iterator type + * providing the pointers to the destination memory buffers + * @tparam BufferSizeIteratorT [inferred] Device-accessible random-access input iterator + * type providing the number of bytes to be copied for each pair of buffers + * @param d_temp_storage [in] Device-accessible allocation of temporary storage. When NULL, the + * required allocation size is written to \p temp_storage_bytes and no work is done. + * @param temp_storage_bytes [in,out] Reference to size in bytes of \p d_temp_storage allocation + * @param input_buffer_it [in] Device-accessible iterator providing the pointers to the source + * memory buffers + * @param output_buffer_it [in] Device-accessible iterator providing the pointers to the + * destination memory buffers + * @param buffer_sizes [in] Device-accessible iterator providing the number of bytes to be copied + * for each pair of buffers + * @param num_buffers [in] The total number of buffer pairs + * @param stream [in] [optional] CUDA stream to launch kernels within. Default is + * stream0. + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t Batched(void *d_temp_storage, + size_t &temp_storage_bytes, + InputBufferIt input_buffer_it, + OutputBufferIt output_buffer_it, + BufferSizeIteratorT buffer_sizes, + uint32_t num_buffers, + cudaStream_t stream = 0) + { + static_assert(std::is_pointer>::value, + "DeviceMemcpy::Batched only supports copying of memory buffers." + "Please consider using DeviceCopy::Batched instead."); + static_assert(std::is_pointer>::value, + "DeviceMemcpy::Batched only supports copying of memory buffers." + "Please consider using DeviceCopy::Batched instead."); + + // Integer type large enough to hold any offset in [0, num_buffers) + using BufferOffsetT = uint32_t; + + // Integer type large enough to hold any offset in [0, num_thread_blocks_launched), where a safe + // uppper bound on num_thread_blocks_launched can be assumed to be given by + // IDIV_CEIL(num_buffers, 64) + using BlockOffsetT = uint32_t; + + return detail::DispatchBatchMemcpy::Dispatch(d_temp_storage, + temp_storage_bytes, + input_buffer_it, + output_buffer_it, + buffer_sizes, + num_buffers, + stream); + } +}; + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/device/device_merge_sort.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/device/device_merge_sort.cuh new file mode 100644 index 0000000000000000000000000000000000000000..9b17ac391257d937b05fc00c2a9eec14411a8f2b --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/device/device_merge_sort.cuh @@ -0,0 +1,1118 @@ +/****************************************************************************** + * Copyright (c) 2011-2022, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +#pragma once + +#include +#include +#include +#include + +CUB_NAMESPACE_BEGIN + + +/** + * @brief DeviceMergeSort provides device-wide, parallel operations for + * computing a merge sort across a sequence of data items residing within + * device-accessible memory. + * + * @ingroup SingleModule + * + * @par Overview + * - DeviceMergeSort arranges items into ascending order using a comparison + * functor with less-than semantics. Merge sort can handle arbitrary types (as + * long as a value of these types is a model of [LessThan Comparable]) and + * comparison functors, but is slower than DeviceRadixSort when sorting + * arithmetic types into ascending/descending order. + * - Another difference from RadixSort is the fact that DeviceMergeSort can + * handle arbitrary random-access iterators, as shown below. + * + * @par A Simple Example + * @par + * The code snippet below illustrates a thrust reverse iterator usage. + * @par + * @code + * #include // or equivalently + * + * struct CustomLess + * { + * template + * __device__ bool operator()(const DataType &lhs, const DataType &rhs) + * { + * return lhs < rhs; + * } + * }; + * + * // Declare, allocate, and initialize device-accessible pointers + * // for sorting data + * thrust::device_vector d_keys(num_items); + * thrust::device_vector d_values(num_items); + * // ... + * + * // Initialize iterator + * using KeyIterator = typename thrust::device_vector::iterator; + * thrust::reverse_iterator reverse_iter(d_keys.end()); + * + * // Determine temporary device storage requirements + * std::size_t temp_storage_bytes = 0; + * cub::DeviceMergeSort::SortPairs( + * nullptr, + * temp_storage_bytes, + * reverse_iter, + * thrust::raw_pointer_cast(d_values.data()), + * num_items, + * CustomLess()); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run sorting operation + * cub::DeviceMergeSort::SortPairs( + * d_temp_storage, + * temp_storage_bytes, + * reverse_iter, + * thrust::raw_pointer_cast(d_values.data()), + * num_items, + * CustomLess()); + * @endcode + * + * [LessThan Comparable]: https://en.cppreference.com/w/cpp/named_req/LessThanComparable + */ +struct DeviceMergeSort +{ + + /** + * @brief Sorts items using a merge sorting method. + * + * @par + * SortPairs is not guaranteed to be stable. That is, suppose that i and j are + * equivalent: neither one is less than the other. It is not guaranteed + * that the relative order of these two elements will be preserved by sort. + * + * @par Snippet + * The code snippet below illustrates the sorting of a device vector of `int` + * keys with associated vector of `int` values. + * @par + * @code + * #include + * // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers for + * // sorting data + * int num_items; // e.g., 7 + * int *d_keys; // e.g., [8, 6, 6, 5, 3, 0, 9] + * int *d_values; // e.g., [0, 1, 2, 3, 4, 5, 6] + * ... + * + * // Initialize comparator + * CustomOpT custom_op; + * + * // Determine temporary device storage requirements + * void *d_temp_storage = nullptr; + * std::size_t temp_storage_bytes = 0; + * cub::DeviceMergeSort::SortPairs( + * d_temp_storage, temp_storage_bytes, + * d_keys, d_values, num_items, custom_op); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run sorting operation + * cub::DeviceMergeSort::SortPairs( + * d_temp_storage, temp_storage_bytes, + * d_keys, d_values, num_items, custom_op); + * + * // d_keys <-- [0, 3, 5, 6, 6, 8, 9] + * // d_values <-- [5, 4, 3, 2, 1, 0, 6] + * + * @endcode + * + * @tparam KeyIteratorT + * is a model of [Random Access Iterator]. `KeyIteratorT` is mutable, and + * its `value_type` is a model of [LessThan Comparable]. This `value_type`'s + * ordering relation is a *strict weak ordering* as defined in + * the [LessThan Comparable] requirements. + * + * @tparam ValueIteratorT + * is a model of [Random Access Iterator], and `ValueIteratorT` is mutable. + * + * @tparam OffsetT + * is an integer type for global offsets. + * + * @tparam CompareOpT + * is a type of callable object with the signature + * `bool operator()(KeyT lhs, KeyT rhs)` that models + * the [Strict Weak Ordering] concept. + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no work + * is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in,out] d_keys + * Pointer to the input sequence of unsorted input keys + * + * @param[in,out] d_items + * Pointer to the input sequence of unsorted input values + * + * @param[in] num_items + * Number of items to sort + * + * @param[in] compare_op + * Comparison function object which returns true if the first argument is + * ordered before the second + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. Default is + * stream0. + * + * [Random Access Iterator]: https://en.cppreference.com/w/cpp/iterator/random_access_iterator + * [Strict Weak Ordering]: https://en.cppreference.com/w/cpp/concepts/strict_weak_order + * [LessThan Comparable]: https://en.cppreference.com/w/cpp/named_req/LessThanComparable + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + SortPairs(void *d_temp_storage, + std::size_t &temp_storage_bytes, + KeyIteratorT d_keys, + ValueIteratorT d_items, + OffsetT num_items, + CompareOpT compare_op, + cudaStream_t stream = 0) + { + using DispatchMergeSortT = DispatchMergeSort; + + return DispatchMergeSortT::Dispatch(d_temp_storage, + temp_storage_bytes, + d_keys, + d_items, + d_keys, + d_items, + num_items, + compare_op, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + SortPairs(void *d_temp_storage, + std::size_t &temp_storage_bytes, + KeyIteratorT d_keys, + ValueIteratorT d_items, + OffsetT num_items, + CompareOpT compare_op, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return SortPairs( + d_temp_storage, + temp_storage_bytes, + d_keys, + d_items, + num_items, + compare_op, + stream); + } + + /** + * @brief Sorts items using a merge sorting method. + * + * @par + * - SortPairsCopy is not guaranteed to be stable. That is, suppose + * that `i` and `j` are equivalent: neither one is less than the + * other. It is not guaranteed that the relative order of these + * two elements will be preserved by sort. + * - Input arrays `d_input_keys` and `d_input_items` are not modified. + * - Note that the behavior is undefined if the input and output ranges + * overlap in any way. + * + * @par Snippet + * The code snippet below illustrates the sorting of a device vector of + * `int` keys with associated vector of `int` values. + * @par + * @code + * #include + * // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers + * // for sorting data + * int num_items; // e.g., 7 + * int *d_keys; // e.g., [8, 6, 6, 5, 3, 0, 9] + * int *d_values; // e.g., [0, 1, 2, 3, 4, 5, 6] + * ... + * + * // Initialize comparator + * CustomOpT custom_op; + * + * // Determine temporary device storage requirements + * void *d_temp_storage = nullptr; + * std::size_t temp_storage_bytes = 0; + * cub::DeviceMergeSort::SortPairsCopy( + * d_temp_storage, temp_storage_bytes, + * d_keys, d_values, num_items, custom_op); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run sorting operation + * cub::DeviceMergeSort::SortPairsCopy( + * d_temp_storage, temp_storage_bytes, + * d_keys, d_values, num_items, custom_op); + * + * // d_keys <-- [0, 3, 5, 6, 6, 8, 9] + * // d_values <-- [5, 4, 3, 2, 1, 0, 6] + * + * @endcode + * + * @tparam KeyInputIteratorT + * is a model of [Random Access Iterator]. Its `value_type` is a model of + * [LessThan Comparable]. This `value_type`'s ordering relation is a + * *strict weak ordering* as defined in the [LessThan Comparable] + * requirements. + * + * @tparam ValueInputIteratorT + * is a model of [Random Access Iterator]. + * + * @tparam KeyIteratorT + * is a model of [Random Access Iterator]. `KeyIteratorT` is mutable, and + * its `value_type` is a model of [LessThan Comparable]. This `value_type`'s + * ordering relation is a *strict weak ordering* as defined in + * the [LessThan Comparable] requirements. + * + * @tparam ValueIteratorT + * is a model of [Random Access Iterator], and `ValueIteratorT` is mutable. + * + * @tparam OffsetT + * is an integer type for global offsets. + * + * @tparam CompareOpT + * is a type of callable object with the signature + * `bool operator()(KeyT lhs, KeyT rhs)` that models + * the [Strict Weak Ordering] concept. + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no work + * is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in] d_input_keys + * Pointer to the input sequence of unsorted input keys + * + * @param[in] d_input_items + * Pointer to the input sequence of unsorted input values + * + * @param[out] d_output_keys + * Pointer to the output sequence of sorted input keys + * + * @param[out] d_output_items + * Pointer to the output sequence of sorted input values + * + * @param[in] num_items + * Number of items to sort + * + * @param[in] compare_op + * Comparison function object which returns `true` if the first argument is + * ordered before the second + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. Default is + * stream0. + * + * [Random Access Iterator]: https://en.cppreference.com/w/cpp/iterator/random_access_iterator + * [Strict Weak Ordering]: https://en.cppreference.com/w/cpp/concepts/strict_weak_order + * [LessThan Comparable]: https://en.cppreference.com/w/cpp/named_req/LessThanComparable + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + SortPairsCopy(void *d_temp_storage, + std::size_t &temp_storage_bytes, + KeyInputIteratorT d_input_keys, + ValueInputIteratorT d_input_items, + KeyIteratorT d_output_keys, + ValueIteratorT d_output_items, + OffsetT num_items, + CompareOpT compare_op, + cudaStream_t stream = 0) + { + using DispatchMergeSortT = DispatchMergeSort; + + return DispatchMergeSortT::Dispatch(d_temp_storage, + temp_storage_bytes, + d_input_keys, + d_input_items, + d_output_keys, + d_output_items, + num_items, + compare_op, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + SortPairsCopy(void *d_temp_storage, + std::size_t &temp_storage_bytes, + KeyInputIteratorT d_input_keys, + ValueInputIteratorT d_input_items, + KeyIteratorT d_output_keys, + ValueIteratorT d_output_items, + OffsetT num_items, + CompareOpT compare_op, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return SortPairsCopy(d_temp_storage, + temp_storage_bytes, + d_input_keys, + d_input_items, + d_output_keys, + d_output_items, + num_items, + compare_op, + stream); + } + + /** + * @brief Sorts items using a merge sorting method. + * + * @par + * SortKeys is not guaranteed to be stable. That is, suppose that `i` and `j` + * are equivalent: neither one is less than the other. It is not guaranteed + * that the relative order of these two elements will be preserved by sort. + * + * @par Snippet + * The code snippet below illustrates the sorting of a device vector of `int` + * keys. + * @par + * @code + * #include + * // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers + * // for sorting data + * int num_items; // e.g., 7 + * int *d_keys; // e.g., [8, 6, 7, 5, 3, 0, 9] + * ... + * + * // Initialize comparator + * CustomOpT custom_op; + * + * // Determine temporary device storage requirements + * void *d_temp_storage = nullptr; + * std::size_t temp_storage_bytes = 0; + * cub::DeviceMergeSort::SortKeys( + * d_temp_storage, temp_storage_bytes, + * d_keys, num_items, custom_op); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run sorting operation + * cub::DeviceMergeSort::SortKeys( + * d_temp_storage, temp_storage_bytes, + * d_keys, num_items, custom_op); + * + * // d_keys <-- [0, 3, 5, 6, 7, 8, 9] + * @endcode + * + * @tparam KeyIteratorT + * is a model of [Random Access Iterator]. `KeyIteratorT` is mutable, and + * its `value_type` is a model of [LessThan Comparable]. This `value_type`'s + * ordering relation is a *strict weak ordering* as defined in + * the [LessThan Comparable] requirements. + * + * @tparam OffsetT + * is an integer type for global offsets. + * + * @tparam CompareOpT + * is a type of callable object with the signature + * `bool operator()(KeyT lhs, KeyT rhs)` that models + * the [Strict Weak Ordering] concept. + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no work + * is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in,out] d_keys + * Pointer to the input sequence of unsorted input keys + * + * @param[in] num_items + * Number of items to sort + * + * @param[in] compare_op + * Comparison function object which returns true if the first argument is + * ordered before the second + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. Default is + * stream0. + * + * [Random Access Iterator]: https://en.cppreference.com/w/cpp/iterator/random_access_iterator + * [Strict Weak Ordering]: https://en.cppreference.com/w/cpp/concepts/strict_weak_order + * [LessThan Comparable]: https://en.cppreference.com/w/cpp/named_req/LessThanComparable + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + SortKeys(void *d_temp_storage, + std::size_t &temp_storage_bytes, + KeyIteratorT d_keys, + OffsetT num_items, + CompareOpT compare_op, + cudaStream_t stream = 0) + { + using DispatchMergeSortT = DispatchMergeSort; + + return DispatchMergeSortT::Dispatch(d_temp_storage, + temp_storage_bytes, + d_keys, + static_cast(nullptr), + d_keys, + static_cast(nullptr), + num_items, + compare_op, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + SortKeys(void *d_temp_storage, + std::size_t &temp_storage_bytes, + KeyIteratorT d_keys, + OffsetT num_items, + CompareOpT compare_op, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return SortKeys(d_temp_storage, + temp_storage_bytes, + d_keys, + num_items, + compare_op, + stream); + } + + /** + * @brief Sorts items using a merge sorting method. + * + * @par + * - SortKeysCopy is not guaranteed to be stable. That is, suppose that `i` + * and `j` are equivalent: neither one is less than the other. It is not + * guaranteed that the relative order of these two elements will be + * preserved by sort. + * - Input array d_input_keys is not modified. + * - Note that the behavior is undefined if the input and output ranges + * overlap in any way. + * + * @par Snippet + * The code snippet below illustrates the sorting of a device vector of + * `int` keys. + * @par + * @code + * #include + * // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers for + * // sorting data + * int num_items; // e.g., 7 + * int *d_keys; // e.g., [8, 6, 7, 5, 3, 0, 9] + * ... + * + * // Initialize comparator + * CustomOpT custom_op; + * + * // Determine temporary device storage requirements + * void *d_temp_storage = nullptr; + * std::size_t temp_storage_bytes = 0; + * cub::DeviceMergeSort::SortKeysCopy( + * d_temp_storage, temp_storage_bytes, + * d_keys, num_items, custom_op); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run sorting operation + * cub::DeviceMergeSort::SortKeysCopy( + * d_temp_storage, temp_storage_bytes, + * d_keys, num_items, custom_op); + * + * // d_keys <-- [0, 3, 5, 6, 7, 8, 9] + * @endcode + * + * @tparam KeyInputIteratorT + * is a model of [Random Access Iterator]. Its `value_type` is a model of + * [LessThan Comparable]. This `value_type`'s ordering relation is a + * *strict weak ordering* as defined in the [LessThan Comparable] + * requirements. + * + * @tparam KeyIteratorT + * is a model of [Random Access Iterator]. `KeyIteratorT` is mutable, and + * its `value_type` is a model of [LessThan Comparable]. This `value_type`'s + * ordering relation is a *strict weak ordering* as defined in + * the [LessThan Comparable] requirements. + * + * @tparam OffsetT + * is an integer type for global offsets. + * + * @tparam CompareOpT + * is a type of callable object with the signature + * `bool operator()(KeyT lhs, KeyT rhs)` that models + * the [Strict Weak Ordering] concept. + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no work + * is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in] d_input_keys + * Pointer to the input sequence of unsorted input keys + * + * @param[out] d_output_keys + * Pointer to the output sequence of sorted input keys + * + * @param[in] num_items + * Number of items to sort + * + * @param[in] compare_op + * Comparison function object which returns true if the first argument is + * ordered before the second + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. Default is + * stream0. + * + * [Random Access Iterator]: https://en.cppreference.com/w/cpp/iterator/random_access_iterator + * [Strict Weak Ordering]: https://en.cppreference.com/w/cpp/concepts/strict_weak_order + * [LessThan Comparable]: https://en.cppreference.com/w/cpp/named_req/LessThanComparable + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + SortKeysCopy(void *d_temp_storage, + std::size_t &temp_storage_bytes, + KeyInputIteratorT d_input_keys, + KeyIteratorT d_output_keys, + OffsetT num_items, + CompareOpT compare_op, + cudaStream_t stream = 0) + { + using DispatchMergeSortT = DispatchMergeSort; + + return DispatchMergeSortT::Dispatch(d_temp_storage, + temp_storage_bytes, + d_input_keys, + static_cast(nullptr), + d_output_keys, + static_cast(nullptr), + num_items, + compare_op, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + SortKeysCopy(void *d_temp_storage, + std::size_t &temp_storage_bytes, + KeyInputIteratorT d_input_keys, + KeyIteratorT d_output_keys, + OffsetT num_items, + CompareOpT compare_op, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return SortKeysCopy( + d_temp_storage, + temp_storage_bytes, + d_input_keys, + d_output_keys, + num_items, + compare_op, + stream); + } + + /** + * @brief Sorts items using a merge sorting method. + * + * @par + * StableSortPairs is stable: it preserves the relative ordering of equivalent + * elements. That is, if x and y are elements such that x precedes y, + * and if the two elements are equivalent (neither x < y nor y < x) then + * a postcondition of stable_sort is that x still precedes y. + * + * @par Snippet + * The code snippet below illustrates the sorting of a device vector of `int` + * keys with associated vector of `int` values. + * @par + * @code + * #include + * // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers for + * // sorting data + * int num_items; // e.g., 7 + * int *d_keys; // e.g., [8, 6, 6, 5, 3, 0, 9] + * int *d_values; // e.g., [0, 1, 2, 3, 4, 5, 6] + * ... + * + * // Initialize comparator + * CustomOpT custom_op; + * + * // Determine temporary device storage requirements + * void *d_temp_storage = nullptr; + * std::size_t temp_storage_bytes = 0; + * cub::DeviceMergeSort::StableSortPairs( + * d_temp_storage, temp_storage_bytes, + * d_keys, d_values, num_items, custom_op); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run sorting operation + * cub::DeviceMergeSort::StableSortPairs( + * d_temp_storage, temp_storage_bytes, + * d_keys, d_values, num_items, custom_op); + * + * // d_keys <-- [0, 3, 5, 6, 6, 8, 9] + * // d_values <-- [5, 4, 3, 1, 2, 0, 6] + * @endcode + * + * @tparam KeyIteratorT + * is a model of [Random Access Iterator]. `KeyIteratorT` is mutable, and + * its `value_type` is a model of [LessThan Comparable]. This `value_type`'s + * ordering relation is a *strict weak ordering* as defined in + * the [LessThan Comparable] requirements. + * + * @tparam ValueIteratorT + * is a model of [Random Access Iterator], and `ValueIteratorT` is mutable. + * + * @tparam OffsetT + * is an integer type for global offsets. + * + * @tparam CompareOpT + * is a type of callable object with the signature + * `bool operator()(KeyT lhs, KeyT rhs)` that models + * the [Strict Weak Ordering] concept. + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no work + * is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in,out] d_keys + * Pointer to the input sequence of unsorted input keys + * + * @param[in,out] d_items + * Pointer to the input sequence of unsorted input values + * + * @param[in] num_items + * Number of items to sort + * + * @param[in] compare_op + * Comparison function object which returns true if the first argument is + * ordered before the second + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. Default is + * stream0. + * + * [Random Access Iterator]: https://en.cppreference.com/w/cpp/iterator/random_access_iterator + * [Strict Weak Ordering]: https://en.cppreference.com/w/cpp/concepts/strict_weak_order + * [LessThan Comparable]: https://en.cppreference.com/w/cpp/named_req/LessThanComparable + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + StableSortPairs(void *d_temp_storage, + std::size_t &temp_storage_bytes, + KeyIteratorT d_keys, + ValueIteratorT d_items, + OffsetT num_items, + CompareOpT compare_op, + cudaStream_t stream = 0) + { + return SortPairs( + d_temp_storage, + temp_storage_bytes, + d_keys, + d_items, + num_items, + compare_op, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + StableSortPairs(void *d_temp_storage, + std::size_t &temp_storage_bytes, + KeyIteratorT d_keys, + ValueIteratorT d_items, + OffsetT num_items, + CompareOpT compare_op, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return StableSortPairs( + d_temp_storage, + temp_storage_bytes, + d_keys, + d_items, + num_items, + compare_op, + stream); + } + + /** + * @brief Sorts items using a merge sorting method. + * + * @par + * StableSortKeys is stable: it preserves the relative ordering of equivalent + * elements. That is, if `x` and `y` are elements such that `x` precedes `y`, + * and if the two elements are equivalent (neither `x < y` nor `y < x`) then + * a postcondition of stable_sort is that `x` still precedes `y`. + * + * @par Snippet + * The code snippet below illustrates the sorting of a device vector of `int` + * keys. + * \par + * \code + * #include + * // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers for + * // sorting data + * int num_items; // e.g., 7 + * int *d_keys; // e.g., [8, 6, 7, 5, 3, 0, 9] + * ... + * + * // Initialize comparator + * CustomOpT custom_op; + * + * // Determine temporary device storage requirements + * void *d_temp_storage = nullptr; + * std::size_t temp_storage_bytes = 0; + * cub::DeviceMergeSort::StableSortKeys( + * d_temp_storage, temp_storage_bytes, + * d_keys, num_items, custom_op); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run sorting operation + * cub::DeviceMergeSort::StableSortKeys( + * d_temp_storage, temp_storage_bytes, + * d_keys, num_items, custom_op); + * + * // d_keys <-- [0, 3, 5, 6, 7, 8, 9] + * @endcode + * + * @tparam KeyIteratorT + * is a model of [Random Access Iterator]. `KeyIteratorT` is mutable, and + * its `value_type` is a model of [LessThan Comparable]. This `value_type`'s + * ordering relation is a *strict weak ordering* as defined in + * the [LessThan Comparable] requirements. + * + * @tparam OffsetT + * is an integer type for global offsets. + * + * @tparam CompareOpT + * is a type of callable object with the signature + * `bool operator()(KeyT lhs, KeyT rhs)` that models + * the [Strict Weak Ordering] concept. + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no work + * is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in,out] d_keys + * Pointer to the input sequence of unsorted input keys + * + * @param[in] num_items + * Number of items to sort + * + * @param[in] compare_op + * Comparison function object which returns true if the first argument is + * ordered before the second + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. Default is + * stream0. + * + * [Random Access Iterator]: https://en.cppreference.com/w/cpp/iterator/random_access_iterator + * [Strict Weak Ordering]: https://en.cppreference.com/w/cpp/concepts/strict_weak_order + * [LessThan Comparable]: https://en.cppreference.com/w/cpp/named_req/LessThanComparable + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + StableSortKeys(void *d_temp_storage, + std::size_t &temp_storage_bytes, + KeyIteratorT d_keys, + OffsetT num_items, + CompareOpT compare_op, + cudaStream_t stream = 0) + { + return SortKeys(d_temp_storage, + temp_storage_bytes, + d_keys, + num_items, + compare_op, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + StableSortKeys(void *d_temp_storage, + std::size_t &temp_storage_bytes, + KeyIteratorT d_keys, + OffsetT num_items, + CompareOpT compare_op, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return StableSortKeys(d_temp_storage, + temp_storage_bytes, + d_keys, + num_items, + compare_op, + stream); + } + + /** + * @brief Sorts items using a merge sorting method. + * + * @par + * - StableSortKeysCopy is stable: it preserves the relative ordering of equivalent + * elements. That is, if `x` and `y` are elements such that `x` precedes `y`, + * and if the two elements are equivalent (neither `x < y` nor `y < x`) then + * a postcondition of stable_sort is that `x` still precedes `y`. + * - Input array d_input_keys is not modified + * - Note that the behavior is undefined if the input and output ranges overlap + * in any way. + * + * @par Snippet + * The code snippet below illustrates the sorting of a device vector of `int` + * keys. + * \par + * \code + * #include + * // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers for + * // sorting data + * int num_items; // e.g., 7 + * int *d_input_keys; // e.g., [8, 6, 7, 5, 3, 0, 9] + * int *d_output_keys; // must hold at least num_items elements + * ... + * + * // Initialize comparator + * CustomOpT custom_op; + * + * // Determine temporary device storage requirements + * void *d_temp_storage = nullptr; + * std::size_t temp_storage_bytes = 0; + * cub::DeviceMergeSort::StableSortKeysCopy( + * d_temp_storage, temp_storage_bytes, + * d_input_keys, d_output_keys, num_items, custom_op); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run sorting operation + * cub::DeviceMergeSort::StableSortKeysCopy( + * d_temp_storage, temp_storage_bytes, + * d_input_keys, d_output_keys, num_items, custom_op); + * + * // d_output_keys <-- [0, 3, 5, 6, 7, 8, 9] + * @endcode + * + * @tparam KeyInputIteratorT + * is a model of [Random Access Iterator]. Its `value_type` is a model of + * [LessThan Comparable]. This `value_type`'s ordering relation is a + * *strict weak ordering* as defined in the [LessThan Comparable] + * requirements. + * + * @tparam KeyIteratorT + * is a model of [Random Access Iterator]. `KeyIteratorT` is mutable, and + * its `value_type` is a model of [LessThan Comparable]. This `value_type`'s + * ordering relation is a *strict weak ordering* as defined in + * the [LessThan Comparable] requirements. + * + * @tparam OffsetT + * is an integer type for global offsets. + * + * @tparam CompareOpT + * is a type of callable object with the signature + * `bool operator()(KeyT lhs, KeyT rhs)` that models + * the [Strict Weak Ordering] concept. + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no work + * is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in] d_input_keys + * Pointer to the input sequence of unsorted input keys + * + * @param[out] d_output_keys + * Pointer to the output sequence of sorted input keys + * + * @param[in] num_items + * Number of elements in d_input_keys to sort + * + * @param[in] compare_op + * Comparison function object which returns true if the first argument is + * ordered before the second + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. Default is + * stream0. + * + * [Random Access Iterator]: https://en.cppreference.com/w/cpp/iterator/random_access_iterator + * [Strict Weak Ordering]: https://en.cppreference.com/w/cpp/concepts/strict_weak_order + * [LessThan Comparable]: https://en.cppreference.com/w/cpp/named_req/LessThanComparable + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + StableSortKeysCopy(void *d_temp_storage, + std::size_t &temp_storage_bytes, + KeyInputIteratorT d_input_keys, + KeyIteratorT d_output_keys, + OffsetT num_items, + CompareOpT compare_op, + cudaStream_t stream = 0) + { + return SortKeysCopy(d_temp_storage, + temp_storage_bytes, + d_input_keys, + d_output_keys, + num_items, + compare_op, + stream); + } +}; + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/device/device_partition.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/device/device_partition.cuh new file mode 100644 index 0000000000000000000000000000000000000000..6692a489b20bb9eb302abdbe28efe026add24e4d --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/device/device_partition.cuh @@ -0,0 +1,717 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2022, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * @file + * cub::DevicePartition provides device-wide, parallel operations for + * partitioning sequences of data items residing within device-accessible memory. + */ + +#pragma once + +#include +#include + +#include +#include +#include +#include + +CUB_NAMESPACE_BEGIN + + +/** + * @brief DevicePartition provides device-wide, parallel operations for + * partitioning sequences of data items residing within device-accessible + * memory. ![](partition_logo.png) + * @ingroup SingleModule + * + * @par Overview + * These operations apply a selection criterion to construct a partitioned + * output sequence from items selected/unselected from a specified input + * sequence. + * + * @par Usage Considerations + * \cdp_class{DevicePartition} + * + * @par Performance + * \linear_performance{partition} + * + * @par + * The following chart illustrates DevicePartition::If + * performance across different CUDA architectures for @p int32 items, + * where 50% of the items are randomly selected for the first partition. + * \plots_below + * + * @image html partition_if_int32_50_percent.png + * + */ +struct DevicePartition +{ + /** + * @brief Uses the @p d_flags sequence to split the corresponding items from + * @p d_in into a partitioned sequence @p d_out. The total number of + * items copied into the first partition is written to + * @p d_num_selected_out. ![](partition_flags_logo.png) + * + * @par + * - The value type of @p d_flags must be castable to @p bool (e.g., + * @p bool, @p char, @p int, etc.). + * - Copies of the selected items are compacted into @p d_out and maintain + * their original relative ordering, however copies of the unselected + * items are compacted into the rear of @p d_out in reverse order. + * - The range `[d_out, d_out + num_items)` shall not overlap + * `[d_in, d_in + num_items)` nor `[d_flags, d_flags + num_items)` in any + * way. The range `[d_in, d_in + num_items)` may overlap + * `[d_flags, d_flags + num_items)`. + * - \devicestorage + * + * @par Snippet + * The code snippet below illustrates the compaction of items selected from + * an @p int device vector. + * @par + * @code + * #include + * // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers for + * // input, flags, and output + * int num_items; // e.g., 8 + * int *d_in; // e.g., [1, 2, 3, 4, 5, 6, 7, 8] + * char *d_flags; // e.g., [1, 0, 0, 1, 0, 1, 1, 0] + * int *d_out; // e.g., [ , , , , , , , ] + * int *d_num_selected_out; // e.g., [ ] + * ... + * + * // Determine temporary device storage requirements + * void *d_temp_storage = nullptr; + * std::size_t temp_storage_bytes = 0; + * cub::DevicePartition::Flagged( + * d_temp_storage, temp_storage_bytes, + * d_in, d_flags, d_out, d_num_selected_out, num_items); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run selection + * cub::DevicePartition::Flagged( + * d_temp_storage, temp_storage_bytes, + * d_in, d_flags, d_out, d_num_selected_out, num_items); + * + * // d_out <-- [1, 4, 6, 7, 8, 5, 3, 2] + * // d_num_selected_out <-- [4] + * @endcode + * + * @tparam InputIteratorT + * **[inferred]** Random-access input iterator type for reading + * input items \iterator + * + * @tparam FlagIterator + * **[inferred]** Random-access input iterator type for reading + * selection flags \iterator + * + * @tparam OutputIteratorT + * **[inferred]** Random-access output iterator type for writing + * output items \iterator + * + * @tparam NumSelectedIteratorT + * **[inferred]** Output iterator type for recording the number + * of items selected \iterator + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to @p temp_storage_bytes and no + * work is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of @p d_temp_storage allocation + * + * @param[in] d_in + * Pointer to the input sequence of data items + * + * @param[in] d_flags + * Pointer to the input sequence of selection flags + * + * @param[out] d_out + * Pointer to the output sequence of partitioned data items + * + * @param[out] d_num_selected_out + * Pointer to the output total number of items selected (i.e., the + * offset of the unselected partition) + * + * @param[in] num_items + * Total number of items to select from + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. + * Default is stream0. + */ + template + CUB_RUNTIME_FUNCTION __forceinline__ static cudaError_t + Flagged(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + FlagIterator d_flags, + OutputIteratorT d_out, + NumSelectedIteratorT d_num_selected_out, + int num_items, + cudaStream_t stream = 0) + { + using OffsetT = int; // Signed integer type for global offsets + using SelectOp = NullType; // Selection op (not used) + using EqualityOp = NullType; // Equality operator (not used) + using DispatchSelectIfT = DispatchSelectIf; + + return DispatchSelectIfT::Dispatch(d_temp_storage, + temp_storage_bytes, + d_in, + d_flags, + d_out, + d_num_selected_out, + SelectOp{}, + EqualityOp{}, + num_items, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION __forceinline__ static cudaError_t + Flagged(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + FlagIterator d_flags, + OutputIteratorT d_out, + NumSelectedIteratorT d_num_selected_out, + int num_items, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return Flagged(d_temp_storage, + temp_storage_bytes, + d_in, + d_flags, + d_out, + d_num_selected_out, + num_items, + stream); + } + + + /** + * @brief Uses the @p select_op functor to split the corresponding items + * from @p d_in into a partitioned sequence @p d_out. The total + * number of items copied into the first partition is written to + * @p d_num_selected_out. ![](partition_logo.png) + * + * @par + * - Copies of the selected items are compacted into @p d_out and maintain + * their original relative ordering, however copies of the unselected + * items are compacted into the rear of @p d_out in reverse order. + * - The range `[d_out, d_out + num_items)` shall not overlap + * `[d_in, d_in + num_items)` in any way. + * - \devicestorage + * + * @par Performance + * The following charts illustrate saturated partition-if performance across + * different CUDA architectures for @p int32 and @p int64 items, + * respectively. Items are selected for the first partition with 50% + * probability. + * + * @image html partition_if_int32_50_percent.png + * @image html partition_if_int64_50_percent.png + * + * @par + * The following charts are similar, but 5% selection probability for the + * first partition: + * + * @image html partition_if_int32_5_percent.png + * @image html partition_if_int64_5_percent.png + * + * @par Snippet + * The code snippet below illustrates the compaction of items selected from + * an @p int device vector. + * @par + * @code + * #include + * // or equivalently + * + * // Functor type for selecting values less than some criteria + * struct LessThan + * { + * int compare; + * + * CUB_RUNTIME_FUNCTION __forceinline__ + * explicit LessThan(int compare) : compare(compare) {} + * + * CUB_RUNTIME_FUNCTION __forceinline__ + * bool operator()(const int &a) const + * { + * return (a < compare); + * } + * }; + * + * // Declare, allocate, and initialize device-accessible pointers for + * // input and output + * int num_items; // e.g., 8 + * int *d_in; // e.g., [0, 2, 3, 9, 5, 2, 81, 8] + * int *d_out; // e.g., [ , , , , , , , ] + * int *d_num_selected_out; // e.g., [ ] + * LessThan select_op(7); + * ... + * + * // Determine temporary device storage requirements + * void *d_temp_storage = nullptr; + * std::size_t temp_storage_bytes = 0; + * cub::DevicePartition::If( + * d_temp_storage, temp_storage_bytes, + * d_in, d_out, d_num_selected_out, num_items, select_op); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run selection + * cub::DevicePartition::If( + * d_temp_storage, temp_storage_bytes, + * d_in, d_out, d_num_selected_out, num_items, select_op); + * + * // d_out <-- [0, 2, 3, 5, 2, 8, 81, 9] + * // d_num_selected_out <-- [5] + * + * @endcode + * + * @tparam InputIteratorT + * **[inferred]** Random-access input iterator type for reading input + * items \iterator + * + * @tparam OutputIteratorT + * **[inferred]** Random-access output iterator type for writing output + * items \iterator + * + * @tparam NumSelectedIteratorT + * **[inferred]** Output iterator type for recording the number of items + * selected \iterator + * + * @tparam SelectOp + * **[inferred]** Selection functor type having member + * `bool operator()(const T &a)` + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no + * work is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of @p d_temp_storage allocation + * + * @param[in] d_in + * Pointer to the input sequence of data items + * + * @param[out] d_out + * Pointer to the output sequence of partitioned data items + * + * @param[out] d_num_selected_out + * Pointer to the output total number of items selected (i.e., the + * offset of the unselected partition) + * + * @param[in] num_items + * Total number of items to select from + * + * @param[in] select_op + * Unary selection operator + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. + * Default is stream0. + */ + template + CUB_RUNTIME_FUNCTION __forceinline__ static cudaError_t + If(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OutputIteratorT d_out, + NumSelectedIteratorT d_num_selected_out, + int num_items, + SelectOp select_op, + cudaStream_t stream = 0) + { + using OffsetT = int; // Signed integer type for global offsets + using FlagIterator = NullType *; // FlagT iterator type (not used) + using EqualityOp = NullType; // Equality operator (not used) + + using DispatchSelectIfT = DispatchSelectIf; + + return DispatchSelectIfT::Dispatch(d_temp_storage, + temp_storage_bytes, + d_in, + nullptr, + d_out, + d_num_selected_out, + select_op, + EqualityOp{}, + num_items, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION __forceinline__ static cudaError_t + If(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OutputIteratorT d_out, + NumSelectedIteratorT d_num_selected_out, + int num_items, + SelectOp select_op, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return If( + d_temp_storage, + temp_storage_bytes, + d_in, + d_out, + d_num_selected_out, + num_items, + select_op, + stream); + } + + /** + * @brief Uses two functors to split the corresponding items from @p d_in + * into a three partitioned sequences @p d_first_part_out + * @p d_second_part_out and @p d_unselected_out. + * The total number of items copied into the first partition is written + * to `d_num_selected_out[0]`, while the total number of items copied + * into the second partition is written to `d_num_selected_out[1]`. + * + * @par + * - Copies of the items selected by @p select_first_part_op are compacted + * into @p d_first_part_out and maintain their original relative ordering. + * - Copies of the items selected by @p select_second_part_op are compacted + * into @p d_second_part_out and maintain their original relative ordering. + * - Copies of the unselected items are compacted into the + * @p d_unselected_out in reverse order. + * - The ranges `[d_out, d_out + num_items)`, + * `[d_first_part_out, d_first_part_out + d_num_selected_out[0])`, + * `[d_second_part_out, d_second_part_out + d_num_selected_out[1])`, + * `[d_unselected_out, d_unselected_out + num_items - d_num_selected_out[0] - d_num_selected_out[1])`, + * shall not overlap in any way. + * + * @par Snippet + * The code snippet below illustrates how this algorithm can partition an + * input vector into small, medium, and large items so that the relative + * order of items remain deterministic. + * + * Let's consider any value that doesn't exceed six a small one. On the + * other hand, any value that exceeds 50 will be considered a large one. + * Since the value used to define a small part doesn't match one that + * defines the large part, the intermediate segment is implied. + * + * These definitions partition a value space into three categories. We want + * to preserve the order of items in which they appear in the input vector. + * Since the algorithm provides stable partitioning, this is possible. + * + * Since the number of items in each category is unknown beforehand, we need + * three output arrays of num_items elements each. To reduce the memory + * requirements, we can combine the output storage for two categories. + * + * Since each value falls precisely in one category, it's safe to add + * "large" values into the head of the shared output vector and the "middle" + * values into its tail. To add items into the tail of the output array, we + * can use `thrust::reverse_iterator`. + * @par + * @code + * #include + * // or equivalently + * + * // Functor type for selecting values less than some criteria + * struct LessThan + * { + * int compare; + * + * CUB_RUNTIME_FUNCTION __forceinline__ + * explicit LessThan(int compare) : compare(compare) {} + * + * CUB_RUNTIME_FUNCTION __forceinline__ + * bool operator()(const int &a) const + * { + * return a < compare; + * } + * }; + * + * // Functor type for selecting values greater than some criteria + * struct GreaterThan + * { + * int compare; + * + * CUB_RUNTIME_FUNCTION __forceinline__ + * explicit GreaterThan(int compare) : compare(compare) {} + * + * CUB_RUNTIME_FUNCTION __forceinline__ + * bool operator()(const int &a) const + * { + * return a > compare; + * } + * }; + * + * // Declare, allocate, and initialize device-accessible pointers for + * // input and output + * int num_items; // e.g., 8 + * int *d_in; // e.g., [0, 2, 3, 9, 5, 2, 81, 8] + * int *d_large_and_unselected_out; // e.g., [ , , , , , , , ] + * int *d_small_out; // e.g., [ , , , , , , , ] + * int *d_num_selected_out; // e.g., [ , ] + * thrust::reverse_iterator unselected_out(d_large_and_unselected_out + num_items); + * LessThan small_items_selector(7); + * GreaterThan large_items_selector(50); + * ... + * + * // Determine temporary device storage requirements + * void *d_temp_storage = nullptr; + * std::size_t temp_storage_bytes = 0; + * cub::DevicePartition::If( + * d_temp_storage, temp_storage_bytes, + * d_in, d_large_and_medium_out, d_small_out, unselected_out, + * d_num_selected_out, num_items, + * large_items_selector, small_items_selector); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run selection + * cub::DevicePartition::If( + * d_temp_storage, temp_storage_bytes, + * d_in, d_large_and_medium_out, d_small_out, unselected_out, + * d_num_selected_out, num_items, + * large_items_selector, small_items_selector); + * + * // d_large_and_unselected_out <-- [ 81, , , , , , 8, 9 ] + * // d_small_out <-- [ 0, 2, 3, 5, 2, , , ] + * // d_num_selected_out <-- [ 1, 5 ] + * @endcode + * + * @tparam InputIteratorT + * **[inferred]** Random-access input iterator type for reading + * input items \iterator + * + * @tparam FirstOutputIteratorT + * **[inferred]** Random-access output iterator type for writing output + * items selected by first operator \iterator + * + * @tparam SecondOutputIteratorT + * **[inferred]** Random-access output iterator type for writing output + * items selected by second operator \iterator + * + * @tparam UnselectedOutputIteratorT + * **[inferred]** Random-access output iterator type for writing + * unselected items \iterator + * + * @tparam NumSelectedIteratorT + * **[inferred]** Output iterator type for recording the number of items + * selected \iterator + * + * @tparam SelectFirstPartOp + * **[inferred]** Selection functor type having member + * `bool operator()(const T &a)` + * + * @tparam SelectSecondPartOp + * **[inferred]** Selection functor type having member + * `bool operator()(const T &a)` + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to @p temp_storage_bytes and + * no work is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of @p d_temp_storage allocation + * + * @param[in] d_in + * Pointer to the input sequence of data items + * + * @param[out] d_first_part_out + * Pointer to the output sequence of data items selected by + * @p select_first_part_op + * + * @param[out] d_second_part_out + * Pointer to the output sequence of data items selected by + * @p select_second_part_op + * + * @param[out] d_unselected_out + * Pointer to the output sequence of unselected data items + * + * @param[out] d_num_selected_out + * Pointer to the output array with two elements, where total number of + * items selected by @p select_first_part_op is stored as + * `d_num_selected_out[0]` and total number of items selected by + * @p select_second_part_op is stored as `d_num_selected_out[1]`, + * respectively + * + * @param[in] num_items + * Total number of items to select from + * + * @param[in] select_first_part_op + * Unary selection operator to select @p d_first_part_out + * + * @param[in] select_second_part_op + * Unary selection operator to select @p d_second_part_out + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. + * Default is stream0. + */ + template + CUB_RUNTIME_FUNCTION __forceinline__ static cudaError_t + If(void *d_temp_storage, + std::size_t &temp_storage_bytes, + InputIteratorT d_in, + FirstOutputIteratorT d_first_part_out, + SecondOutputIteratorT d_second_part_out, + UnselectedOutputIteratorT d_unselected_out, + NumSelectedIteratorT d_num_selected_out, + int num_items, + SelectFirstPartOp select_first_part_op, + SelectSecondPartOp select_second_part_op, + cudaStream_t stream = 0) + { + using OffsetT = int; + using DispatchThreeWayPartitionIfT = + DispatchThreeWayPartitionIf; + + return DispatchThreeWayPartitionIfT::Dispatch(d_temp_storage, + temp_storage_bytes, + d_in, + d_first_part_out, + d_second_part_out, + d_unselected_out, + d_num_selected_out, + select_first_part_op, + select_second_part_op, + num_items, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION __forceinline__ static cudaError_t + If(void *d_temp_storage, + std::size_t &temp_storage_bytes, + InputIteratorT d_in, + FirstOutputIteratorT d_first_part_out, + SecondOutputIteratorT d_second_part_out, + UnselectedOutputIteratorT d_unselected_out, + NumSelectedIteratorT d_num_selected_out, + int num_items, + SelectFirstPartOp select_first_part_op, + SelectSecondPartOp select_second_part_op, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return If(d_temp_storage, + temp_storage_bytes, + d_in, + d_first_part_out, + d_second_part_out, + d_unselected_out, + d_num_selected_out, + num_items, + select_first_part_op, + select_second_part_op, + stream); + } +}; + +/** + * @example example_device_partition_flagged.cu + * @example example_device_partition_if.cu + */ + +CUB_NAMESPACE_END + + diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/device/device_radix_sort.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/device/device_radix_sort.cuh new file mode 100644 index 0000000000000000000000000000000000000000..da40a6654c61b041d9e71b6c6c599f74488821e2 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/device/device_radix_sort.cuh @@ -0,0 +1,3643 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2023, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +//! @file cub::DeviceRadixSort provides device-wide, parallel operations for +//! computing a radix sort across a sequence of data items residing within +//! device-accessible memory. + +#pragma once + +#include +#include +#include +#include + +#include + + +CUB_NAMESPACE_BEGIN + + +//! @brief DeviceRadixSort provides device-wide, parallel operations for +//! computing a radix sort across a sequence of data items residing +//! within device-accessible memory. ![](sorting_logo.png) +//! @ingroup SingleModule +//! +//! @par Overview +//! The [*radix sorting method*](http://en.wikipedia.org/wiki/Radix_sort) +//! arranges items into ascending (or descending) order. The algorithm relies +//! upon a positional representation for keys, i.e., each key is comprised of an +//! ordered sequence of symbols (e.g., digits, characters, etc.) specified from +//! least-significant to most-significant. For a given input sequence of keys +//! and a set of rules specifying a total ordering of the symbolic alphabet, the +//! radix sorting method produces a lexicographic ordering of those keys. +//! +//! @par Supported Types +//! DeviceRadixSort can sort all of the built-in C++ numeric primitive types +//! (`unsigned char`, `int`, `double`, etc.) as well as CUDA's `__half` +//! and `__nv_bfloat16` 16-bit floating-point types. User-defined types are +//! supported as long as decomposer object is provided. +//! +//! @par Floating-Point Special Cases +//! +//! - Positive and negative zeros are considered equivalent, and will be treated +//! as such in the output. +//! - No special handling is implemented for NaN values; these are sorted +//! according to their bit representations after any transformations. +//! +//! @par Transformations +//! Although the direct radix sorting method can only be applied to unsigned +//! integral types, DeviceRadixSort is able to sort signed and floating-point +//! types via simple bit-wise transformations that ensure lexicographic key +//! ordering. Additional transformations occur for descending sorts. These +//! transformations must be considered when restricting the +//! `[begin_bit, end_bit)` range, as the bitwise transformations will occur +//! before the bit-range truncation. +//! +//! Any transformations applied to the keys prior to sorting are reversed +//! while writing to the final output buffer. +//! +//! @par Type Specific Bitwise Transformations +//! To convert the input values into a radix-sortable bitwise representation, +//! the following transformations take place prior to sorting: +//! +//! - For unsigned integral values, the keys are used directly. +//! - For signed integral values, the sign bit is inverted. +//! - For positive floating point values, the sign bit is inverted. +//! - For negative floating point values, the full key is inverted. +//! +//! For floating point types, positive and negative zero are a special case and +//! will be considered equivalent during sorting. +//! +//! @par Descending Sort Bitwise Transformations +//! If descending sort is used, the keys are inverted after performing any +//! type-specific transformations, and the resulting keys are sorted in ascending +//! order. +//! +//! @par Stability +//! DeviceRadixSort is stable. For floating-point types, `-0.0` and `+0.0` are +//! considered equal and appear in the result in the same order as they appear in +//! the input. +//! +//! @par Usage Considerations +//! @cdp_class{DeviceRadixSort} +//! +//! @par Performance +//! @linear_performance{radix sort} The following chart illustrates +//! DeviceRadixSort::SortKeys performance across different CUDA architectures +//! for uniform-random `uint32` keys. +//! @plots_below +//! +//! @image html lsb_radix_sort_int32_keys.png +struct DeviceRadixSort +{ +private: + template + CUB_RUNTIME_FUNCTION static cudaError_t custom_radix_sort(::cuda::std::false_type, + void *d_temp_storage, + size_t &temp_storage_bytes, + bool is_overwrite_okay, + DoubleBuffer &d_keys, + DoubleBuffer &d_values, + NumItemsT num_items, + DecomposerT decomposer, + int begin_bit, + int end_bit, + cudaStream_t stream); + + template + CUB_RUNTIME_FUNCTION static cudaError_t custom_radix_sort(::cuda::std::true_type, + void *d_temp_storage, + size_t &temp_storage_bytes, + bool is_overwrite_okay, + DoubleBuffer &d_keys, + DoubleBuffer &d_values, + OffsetT num_items, + DecomposerT decomposer, + int begin_bit, + int end_bit, + cudaStream_t stream) + { + return DispatchRadixSort, + DecomposerT>::Dispatch(d_temp_storage, + temp_storage_bytes, + d_keys, + d_values, + static_cast(num_items), + begin_bit, + end_bit, + is_overwrite_okay, + stream, + decomposer); + } + + template + CUB_RUNTIME_FUNCTION static cudaError_t custom_radix_sort(::cuda::std::false_type, + void *d_temp_storage, + size_t &temp_storage_bytes, + bool is_overwrite_okay, + DoubleBuffer &d_keys, + DoubleBuffer &d_values, + NumItemsT num_items, + DecomposerT decomposer, + cudaStream_t stream); + + template + CUB_RUNTIME_FUNCTION static cudaError_t custom_radix_sort(::cuda::std::true_type, + void *d_temp_storage, + size_t &temp_storage_bytes, + bool is_overwrite_okay, + DoubleBuffer &d_keys, + DoubleBuffer &d_values, + OffsetT num_items, + DecomposerT decomposer, + cudaStream_t stream) + { + const int begin_bit = 0; + const int end_bit = detail::radix::traits_t::default_end_bit(decomposer); + + return DeviceRadixSort::custom_radix_sort(::cuda::std::true_type{}, + d_temp_storage, + temp_storage_bytes, + is_overwrite_okay, + d_keys, + d_values, + num_items, + decomposer, + begin_bit, + end_bit, + stream); + } + +public: + + //! @name KeyT-value pairs + //@{ + + //! @brief Sorts key-value pairs into ascending order. + //! (`~2N` auxiliary storage required) + //! + //! @par + //! - The contents of the input data are not altered by the sorting operation. + //! - Pointers to contiguous memory must be used; iterators are not currently + //! supported. + //! - In-place operations are not supported. There must be no overlap between + //! any of the provided ranges: + //! - `[d_keys_in, d_keys_in + num_items)` + //! - `[d_keys_out, d_keys_out + num_items)` + //! - `[d_values_in, d_values_in + num_items)` + //! - `[d_values_out, d_values_out + num_items)` + //! - An optional bit subrange `[begin_bit, end_bit)` of differentiating key + //! bits can be specified. This can reduce overall sorting overhead and + //! yield a corresponding performance improvement. + //! - @devicestorageNP For sorting using only `O(P)` temporary storage, see + //! the sorting interface using DoubleBuffer wrappers below. + //! - @devicestorage + //! + //! @par Performance + //! The following charts illustrate saturated sorting performance across + //! different CUDA architectures for uniform-random `uint32, uint32` and + //! `uint64, uint64` pairs, respectively. + //! + //! @image html lsb_radix_sort_int32_pairs.png + //! @image html lsb_radix_sort_int64_pairs.png + //! + //! @par Snippet + //! The code snippet below illustrates the sorting of a device vector of `int` + //! keys with associated vector of `int` values. + //! @par + //! @code + //! #include + //! // or equivalently + //! + //! // Declare, allocate, and initialize device-accessible pointers + //! // for sorting data + //! int num_items; // e.g., 7 + //! int *d_keys_in; // e.g., [8, 6, 7, 5, 3, 0, 9] + //! int *d_keys_out; // e.g., [ ... ] + //! int *d_values_in; // e.g., [0, 1, 2, 3, 4, 5, 6] + //! int *d_values_out; // e.g., [ ... ] + //! ... + //! + //! // Determine temporary device storage requirements + //! void *d_temp_storage = NULL; + //! size_t temp_storage_bytes = 0; + //! cub::DeviceRadixSort::SortPairs(d_temp_storage, temp_storage_bytes, + //! d_keys_in, d_keys_out, d_values_in, d_values_out, num_items); + //! + //! // Allocate temporary storage + //! cudaMalloc(&d_temp_storage, temp_storage_bytes); + //! + //! // Run sorting operation + //! cub::DeviceRadixSort::SortPairs(d_temp_storage, temp_storage_bytes, + //! d_keys_in, d_keys_out, d_values_in, d_values_out, num_items); + //! + //! // d_keys_out <-- [0, 3, 5, 6, 7, 8, 9] + //! // d_values_out <-- [5, 4, 3, 1, 2, 0, 6] + //! @endcode + //! + //! @tparam KeyT + //! **[inferred]** KeyT type + //! + //! @tparam ValueT + //! **[inferred]** ValueT type + //! + //! @tparam NumItemsT + //! **[inferred]** Type of num_items + //! + //! @param[in] d_temp_storage + //! Device-accessible allocation of temporary storage. When `nullptr`, the + //! required allocation size is written to `temp_storage_bytes` and no work + //! is done. + //! + //! @param[in,out] temp_storage_bytes + //! Reference to size in bytes of `d_temp_storage` allocation + //! + //! @param[in] d_keys_in + //! Pointer to the input data of key data to sort + //! + //! @param[out] d_keys_out + //! Pointer to the sorted output sequence of key data + //! + //! @param[in] d_values_in + //! Pointer to the corresponding input sequence of associated value items + //! + //! @param[out] d_values_out + //! Pointer to the correspondingly-reordered output sequence of associated + //! value items + //! + //! @param[in] num_items + //! Number of items to sort + //! + //! @param[in] begin_bit + //! **[optional]** The least-significant bit index (inclusive) needed for + //! key comparison + //! + //! @param[in] end_bit + //! **[optional]** The most-significant bit index (exclusive) needed for key + //! comparison (e.g., sizeof(unsigned int) * 8) + //! + //! @param[in] stream + //! **[optional]** CUDA stream to launch kernels within. + //! Default is stream0. + template + CUB_RUNTIME_FUNCTION static cudaError_t + SortPairs(void *d_temp_storage, + size_t &temp_storage_bytes, + const KeyT *d_keys_in, + KeyT *d_keys_out, + const ValueT *d_values_in, + ValueT *d_values_out, + NumItemsT num_items, + int begin_bit = 0, + int end_bit = sizeof(KeyT) * 8, + cudaStream_t stream = 0) + { + // Unsigned integer type for global offsets. + using OffsetT = typename detail::ChooseOffsetT::Type; + + // TODO API that doesn't accept decomposer should also contain a static + // assert that the key type is fundamental. + + // We cast away const-ness, but will *not* write to these arrays. + // `DispatchRadixSort::Dispatch` will allocate temporary storage and + // create a new double-buffer internally when the `is_overwrite_ok` flag + // is not set. + constexpr bool is_overwrite_okay = false; + DoubleBuffer d_keys(const_cast(d_keys_in), d_keys_out); + DoubleBuffer d_values(const_cast(d_values_in), + d_values_out); + + return DispatchRadixSort::Dispatch( + d_temp_storage, + temp_storage_bytes, + d_keys, + d_values, + static_cast(num_items), + begin_bit, + end_bit, + is_overwrite_okay, + stream); + } + + #ifndef DOXYGEN_SHOULD_SKIP_THIS // Do not document + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + SortPairs(void *d_temp_storage, + size_t &temp_storage_bytes, + const KeyT *d_keys_in, + KeyT *d_keys_out, + const ValueT *d_values_in, + ValueT *d_values_out, + NumItemsT num_items, + int begin_bit, + int end_bit, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return SortPairs(d_temp_storage, + temp_storage_bytes, + d_keys_in, + d_keys_out, + d_values_in, + d_values_out, + num_items, + begin_bit, + end_bit, + stream); + } + #endif + + //! @rst + //! Sorts key-value pairs into ascending order using :math:`\approx 2N` auxiliary storage. + //! + //! * The contents of the input data are not altered by the sorting operation. + //! * Pointers to contiguous memory must be used; iterators are not currently + //! supported. + //! * In-place operations are not supported. There must be no overlap between + //! any of the provided ranges: + //! + //! * ``[d_keys_in, d_keys_in + num_items)`` + //! * ``[d_keys_out, d_keys_out + num_items)`` + //! * ``[d_values_in, d_values_in + num_items)`` + //! * ``[d_values_out, d_values_out + num_items)`` + //! + //! * A bit subrange ``[begin_bit, end_bit)`` is provided to specify + //! differentiating key bits. This can reduce overall sorting overhead and + //! yield a corresponding performance improvement. + //! * @devicestorageNP For sorting using only :math:`O(P)` temporary storage, see + //! the sorting interface using DoubleBuffer wrappers below. + //! * @devicestorage + //! + //! Snippet + //! ========================================================================== + //! + //! Let's consider a user-defined ``custom_t`` type below. To sort an array of + //! ``custom_t`` objects, we have to tell CUB about relevant members of the + //! ``custom_t`` type. We do this by providing a decomposer that returns a + //! tuple of references to relevant members of the key. + //! + //! .. literalinclude:: ../../test/catch2_test_device_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin custom-type + //! :end-before: example-end custom-type + //! + //! The following snippet shows how to sort an array of ``custom_t`` objects + //! using ``cub::DeviceRadixSort::SortPairs``: + //! + //! .. literalinclude:: ../../test/catch2_test_device_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin pairs-bits + //! :end-before: example-end pairs-bits + //! + //! @endrst + //! + //! @tparam KeyT + //! **[inferred]** KeyT type + //! + //! @tparam ValueT + //! **[inferred]** ValueT type + //! + //! @tparam NumItemsT + //! **[inferred]** Type of num_items + //! + //! @tparam DecomposerT + //! **[inferred]** Type of a callable object responsible for decomposing a + //! ``KeyT`` into a tuple of references to its constituent arithmetic types: + //! ``::cuda::std::tuple operator()(KeyT &key)``. + //! The leftmost element of the tuple is considered the most significant. + //! The call operator must not modify members of the key. + //! + //! @param[in] d_temp_storage + //! Device-accessible allocation of temporary storage. When `nullptr`, the + //! required allocation size is written to `temp_storage_bytes` and no work + //! is done. + //! + //! @param[in,out] temp_storage_bytes + //! Reference to size in bytes of `d_temp_storage` allocation + //! + //! @param[in] d_keys_in + //! Pointer to the input data of key data to sort + //! + //! @param[out] d_keys_out + //! Pointer to the sorted output sequence of key data + //! + //! @param[in] d_values_in + //! Pointer to the corresponding input sequence of associated value items + //! + //! @param[out] d_values_out + //! Pointer to the correspondingly-reordered output sequence of associated + //! value items + //! + //! @param[in] num_items + //! Number of items to sort + //! + //! @param decomposer + //! Callable object responsible for decomposing a ``KeyT`` into a tuple of + //! references to its constituent arithmetic types. The leftmost element of + //! the tuple is considered the most significant. The call operator must not + //! modify members of the key. + //! + //! @param[in] begin_bit + //! **[optional]** The least-significant bit index (inclusive) needed for + //! key comparison + //! + //! @param[in] end_bit + //! **[optional]** The most-significant bit index (exclusive) needed for key + //! comparison (e.g., `(sizeof(float) + sizeof(long long int)) * 8`) + //! + //! @param[in] stream + //! **[optional]** CUDA stream to launch kernels within. + //! Default is stream0. + template + CUB_RUNTIME_FUNCTION static // + typename ::cuda::std::enable_if< // + !::cuda::std::is_convertible::value, // + cudaError_t>::type + SortPairs(void *d_temp_storage, + size_t &temp_storage_bytes, + const KeyT *d_keys_in, + KeyT *d_keys_out, + const ValueT *d_values_in, + ValueT *d_values_out, + NumItemsT num_items, + DecomposerT decomposer, + int begin_bit, + int end_bit, + cudaStream_t stream = 0) + { + // unsigned integer type for global offsets + using offset_t = typename detail::ChooseOffsetT::Type; + using decomposer_check_t = detail::radix::decomposer_check_t; + + static_assert(decomposer_check_t::value, + "DecomposerT must be a callable object returning a tuple of references to " + "arithmetic types"); + + // We cast away const-ness, but will *not* write to these arrays. + // `DispatchRadixSort::Dispatch` will allocate temporary storage and + // create a new double-buffer internally when the `is_overwrite_ok` flag + // is not set. + constexpr bool is_overwrite_okay = false; + constexpr bool is_descending = false; + DoubleBuffer d_keys(const_cast(d_keys_in), d_keys_out); + DoubleBuffer d_values(const_cast(d_values_in), d_values_out); + + return DeviceRadixSort::custom_radix_sort(decomposer_check_t{}, + d_temp_storage, + temp_storage_bytes, + is_overwrite_okay, + d_keys, + d_values, + static_cast(num_items), + decomposer, + begin_bit, + end_bit, + stream); + } + + //! @rst + //! Sorts key-value pairs into ascending order using :math:`\approx 2N` auxiliary storage. + //! + //! * The contents of the input data are not altered by the sorting operation. + //! * Pointers to contiguous memory must be used; iterators are not currently + //! supported. + //! * In-place operations are not supported. There must be no overlap between + //! any of the provided ranges: + //! + //! * ``[d_keys_in, d_keys_in + num_items)`` + //! * ``[d_keys_out, d_keys_out + num_items)`` + //! * ``[d_values_in, d_values_in + num_items)`` + //! * ``[d_values_out, d_values_out + num_items)`` + //! + //! * @devicestorageNP For sorting using only :math:`O(P)` temporary storage, see + //! the sorting interface using DoubleBuffer wrappers below. + //! * @devicestorage + //! + //! Snippet + //! ========================================================================== + //! + //! Let's consider a user-defined ``custom_t`` type below. To sort an array of + //! ``custom_t`` objects, we have to tell CUB about relevant members of the + //! ``custom_t`` type. We do this by providing a decomposer that returns a + //! tuple of references to relevant members of the key. + //! + //! .. literalinclude:: ../../test/catch2_test_device_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin custom-type + //! :end-before: example-end custom-type + //! + //! The following snippet shows how to sort an array of ``custom_t`` objects + //! using ``cub::DeviceRadixSort::SortPairs``: + //! + //! .. literalinclude:: ../../test/catch2_test_device_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin pairs + //! :end-before: example-end pairs + //! + //! @endrst + //! + //! @tparam KeyT + //! **[inferred]** KeyT type + //! + //! @tparam ValueT + //! **[inferred]** ValueT type + //! + //! @tparam NumItemsT + //! **[inferred]** Type of num_items + //! + //! @tparam DecomposerT + //! **[inferred]** Type of a callable object responsible for decomposing a + //! ``KeyT`` into a tuple of references to its constituent arithmetic types: + //! ``::cuda::std::tuple operator()(KeyT &key)``. + //! The leftmost element of the tuple is considered the most significant. + //! The call operator must not modify members of the key. + //! + //! @param[in] d_temp_storage + //! Device-accessible allocation of temporary storage. When `nullptr`, the + //! required allocation size is written to `temp_storage_bytes` and no work + //! is done. + //! + //! @param[in,out] temp_storage_bytes + //! Reference to size in bytes of `d_temp_storage` allocation + //! + //! @param[in] d_keys_in + //! Pointer to the input data of key data to sort + //! + //! @param[out] d_keys_out + //! Pointer to the sorted output sequence of key data + //! + //! @param[in] d_values_in + //! Pointer to the corresponding input sequence of associated value items + //! + //! @param[out] d_values_out + //! Pointer to the correspondingly-reordered output sequence of associated + //! value items + //! + //! @param[in] num_items + //! Number of items to sort + //! + //! @param decomposer + //! Callable object responsible for decomposing a ``KeyT`` into a tuple of + //! references to its constituent arithmetic types. The leftmost element of + //! the tuple is considered the most significant. The call operator must not + //! modify members of the key. + //! + //! @param[in] stream + //! **[optional]** CUDA stream to launch kernels within. + //! Default is stream0. + template + CUB_RUNTIME_FUNCTION static // + typename ::cuda::std::enable_if< // + !::cuda::std::is_convertible::value, // + cudaError_t>::type + SortPairs(void *d_temp_storage, + size_t &temp_storage_bytes, + const KeyT *d_keys_in, + KeyT *d_keys_out, + const ValueT *d_values_in, + ValueT *d_values_out, + NumItemsT num_items, + DecomposerT decomposer, + cudaStream_t stream = 0) + { + // unsigned integer type for global offsets + using offset_t = typename detail::ChooseOffsetT::Type; + using decomposer_check_t = detail::radix::decomposer_check_t; + + static_assert(decomposer_check_t::value, + "DecomposerT must be a callable object returning a tuple of references to " + "arithmetic types"); + + // We cast away const-ness, but will *not* write to these arrays. + // `DispatchRadixSort::Dispatch` will allocate temporary storage and + // create a new double-buffer internally when the `is_overwrite_ok` flag + // is not set. + constexpr bool is_overwrite_okay = false; + constexpr bool is_descending = false; + DoubleBuffer d_keys(const_cast(d_keys_in), d_keys_out); + DoubleBuffer d_values(const_cast(d_values_in), d_values_out); + + return DeviceRadixSort::custom_radix_sort(decomposer_check_t{}, + d_temp_storage, + temp_storage_bytes, + is_overwrite_okay, + d_keys, + d_values, + static_cast(num_items), + decomposer, + stream); + } + + //! @brief Sorts key-value pairs into ascending order. + //! (`~N` auxiliary storage required) + //! + //! @par + //! - The sorting operation is given a pair of key buffers and a corresponding + //! pair of associated value buffers. Each pair is managed by a DoubleBuffer + //! structure that indicates which of the two buffers is "current" (and thus + //! contains the input data to be sorted). + //! - The contents of both buffers within each pair may be altered by the + //! sorting operation. + //! - In-place operations are not supported. There must be no overlap between + //! any of the provided ranges: + //! - `[d_keys.Current(), d_keys.Current() + num_items)` + //! - `[d_keys.Alternate(), d_keys.Alternate() + num_items)` + //! - `[d_values.Current(), d_values.Current() + num_items)` + //! - `[d_values.Alternate(), d_values.Alternate() + num_items)` + //! - Upon completion, the sorting operation will update the "current" + //! indicator within each DoubleBuffer wrapper to reference which of the two + //! buffers now contains the sorted output sequence (a function of the + //! number of key bits specified and the targeted device architecture). + //! - An optional bit subrange `[begin_bit, end_bit)` of differentiating key + //! bits can be specified. This can reduce overall sorting overhead and + //! yield a corresponding performance improvement. + //! - @devicestorageP + //! - @devicestorage + //! + //! @par Performance + //! The following charts illustrate saturated sorting performance across + //! different CUDA architectures for uniform-random `uint32, uint32` and + //! `uint64, uint64` pairs, respectively. + //! + //! @image html lsb_radix_sort_int32_pairs.png + //! @image html lsb_radix_sort_int64_pairs.png + //! + //! @par Snippet + //! The code snippet below illustrates the sorting of a device vector of `int` + //! keys with associated vector of `int` values. + //! @par + //! @code + //! #include + //! // or equivalently + //! + //! // Declare, allocate, and initialize device-accessible pointers for + //! // sorting data + //! int num_items; // e.g., 7 + //! int *d_key_buf; // e.g., [8, 6, 7, 5, 3, 0, 9] + //! int *d_key_alt_buf; // e.g., [ ... ] + //! int *d_value_buf; // e.g., [0, 1, 2, 3, 4, 5, 6] + //! int *d_value_alt_buf; // e.g., [ ... ] + //! ... + //! + //! // Create a set of DoubleBuffers to wrap pairs of device pointers + //! cub::DoubleBuffer d_keys(d_key_buf, d_key_alt_buf); + //! cub::DoubleBuffer d_values(d_value_buf, d_value_alt_buf); + //! + //! // Determine temporary device storage requirements + //! void *d_temp_storage = NULL; + //! size_t temp_storage_bytes = 0; + //! cub::DeviceRadixSort::SortPairs( + //! d_temp_storage, temp_storage_bytes, d_keys, d_values, num_items); + //! + //! // Allocate temporary storage + //! cudaMalloc(&d_temp_storage, temp_storage_bytes); + //! + //! // Run sorting operation + //! cub::DeviceRadixSort::SortPairs( + //! d_temp_storage, temp_storage_bytes, d_keys, d_values, num_items); + //! + //! // d_keys.Current() <-- [0, 3, 5, 6, 7, 8, 9] + //! // d_values.Current() <-- [5, 4, 3, 1, 2, 0, 6] + //! + //! @endcode + //! + //! @tparam KeyT + //! **[inferred]** KeyT type + //! + //! @tparam ValueT + //! **[inferred]** ValueT type + //! + //! @tparam NumItemsT + //! **[inferred]** Type of num_items + //! + //! @param[in] d_temp_storage + //! Device-accessible allocation of temporary storage. When `nullptr`, the + //! required allocation size is written to @p temp_storage_bytes and no work is done. + //! + //! @param[in,out] temp_storage_bytes + //! Reference to size in bytes of `d_temp_storage` allocation + //! + //! @param[in,out] d_keys + //! Reference to the double-buffer of keys whose "current" device-accessible + //! buffer contains the unsorted input keys and, upon return, is updated to + //! point to the sorted output keys + //! + //! @param[in,out] d_values + //! Double-buffer of values whose "current" device-accessible buffer + //! contains the unsorted input values and, upon return, is updated to point + //! to the sorted output values + //! + //! @param[in] num_items + //! Number of items to sort + //! + //! @param[in] begin_bit + //! **[optional]** The least-significant bit index (inclusive) needed for + //! key comparison + //! + //! @param[in] end_bit + //! **[optional]** The most-significant bit index (exclusive) needed for key + //! comparison (e.g., `sizeof(unsigned int) * 8`) + //! + //! @param[in] stream + //! **[optional]** CUDA stream to launch kernels within. + //! Default is stream0. + template + CUB_RUNTIME_FUNCTION static cudaError_t + SortPairs(void *d_temp_storage, + size_t &temp_storage_bytes, + DoubleBuffer &d_keys, + DoubleBuffer &d_values, + NumItemsT num_items, + int begin_bit = 0, + int end_bit = sizeof(KeyT) * 8, + cudaStream_t stream = 0) + { + // Unsigned integer type for global offsets. + using OffsetT = typename detail::ChooseOffsetT::Type; + + constexpr bool is_overwrite_okay = true; + + return DispatchRadixSort::Dispatch( + d_temp_storage, + temp_storage_bytes, + d_keys, + d_values, + num_items, + begin_bit, + end_bit, + is_overwrite_okay, + stream); + } + + #ifndef DOXYGEN_SHOULD_SKIP_THIS // Do not document + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + SortPairs(void *d_temp_storage, + size_t &temp_storage_bytes, + DoubleBuffer &d_keys, + DoubleBuffer &d_values, + NumItemsT num_items, + int begin_bit, + int end_bit, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return SortPairs(d_temp_storage, + temp_storage_bytes, + d_keys, + d_values, + num_items, + begin_bit, + end_bit, + stream); + } + #endif + + //! @rst + //! Sorts key-value pairs into ascending order using :math:`\approx N` auxiliary storage. + //! + //! * The sorting operation is given a pair of key buffers and a corresponding + //! pair of associated value buffers. Each pair is managed by a DoubleBuffer + //! structure that indicates which of the two buffers is "current" (and thus + //! contains the input data to be sorted). + //! * The contents of both buffers within each pair may be altered by the + //! sorting operation. + //! * In-place operations are not supported. There must be no overlap between + //! any of the provided ranges: + //! + //! - ``[d_keys.Current(), d_keys.Current() + num_items)`` + //! - ``[d_keys.Alternate(), d_keys.Alternate() + num_items)`` + //! - ``[d_values.Current(), d_values.Current() + num_items)`` + //! - ``[d_values.Alternate(), d_values.Alternate() + num_items)`` + //! + //! - Upon completion, the sorting operation will update the "current" + //! indicator within each DoubleBuffer wrapper to reference which of the two + //! buffers now contains the sorted output sequence (a function of the + //! number of key bits specified and the targeted device architecture). + //! - @devicestorageP + //! - @devicestorage + //! + //! Snippet + //! ========================================================================== + //! + //! Let's consider a user-defined ``custom_t`` type below. To sort an array of + //! ``custom_t`` objects, we have to tell CUB about relevant members of the + //! ``custom_t`` type. We do this by providing a decomposer that returns a + //! tuple of references to relevant members of the key. + //! + //! .. literalinclude:: ../../test/catch2_test_device_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin custom-type + //! :end-before: example-end custom-type + //! + //! The following snippet shows how to sort an array of ``custom_t`` objects + //! using ``cub::DeviceRadixSort::SortPairs``: + //! + //! .. literalinclude:: ../../test/catch2_test_device_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin pairs-db + //! :end-before: example-end pairs-db + //! + //! @endrst + //! + //! @tparam KeyT + //! **[inferred]** KeyT type + //! + //! @tparam ValueT + //! **[inferred]** ValueT type + //! + //! @tparam NumItemsT + //! **[inferred]** Type of num_items + //! + //! @tparam DecomposerT + //! **[inferred]** Type of a callable object responsible for decomposing a + //! ``KeyT`` into a tuple of references to its constituent arithmetic types: + //! ``::cuda::std::tuple operator()(KeyT &key)``. + //! The leftmost element of the tuple is considered the most significant. + //! The call operator must not modify members of the key. + //! + //! @param[in] d_temp_storage + //! Device-accessible allocation of temporary storage. When `nullptr`, the + //! required allocation size is written to `temp_storage_bytes` and no work + //! is done. + //! + //! @param[in,out] temp_storage_bytes + //! Reference to size in bytes of `d_temp_storage` allocation + //! + //! @param[in,out] d_keys + //! Reference to the double-buffer of keys whose "current" device-accessible + //! buffer contains the unsorted input keys and, upon return, is updated to + //! point to the sorted output keys + //! + //! @param[in,out] d_values + //! Double-buffer of values whose "current" device-accessible buffer + //! contains the unsorted input values and, upon return, is updated to point + //! to the sorted output values + //! + //! @param[in] num_items + //! Number of items to sort + //! + //! @param decomposer + //! Callable object responsible for decomposing a ``KeyT`` into a tuple of + //! references to its constituent arithmetic types. The leftmost element of + //! the tuple is considered the most significant. The call operator must not + //! modify members of the key. + //! + //! @param[in] stream + //! **[optional]** CUDA stream to launch kernels within. + //! Default is stream0. + template + CUB_RUNTIME_FUNCTION static // + typename ::cuda::std::enable_if< // + !::cuda::std::is_convertible::value, // + cudaError_t>::type + SortPairs(void *d_temp_storage, + size_t &temp_storage_bytes, + DoubleBuffer &d_keys, + DoubleBuffer &d_values, + NumItemsT num_items, + DecomposerT decomposer, + cudaStream_t stream = 0) + { + // unsigned integer type for global offsets + using offset_t = typename detail::ChooseOffsetT::Type; + using decomposer_check_t = detail::radix::decomposer_check_t; + + static_assert(decomposer_check_t::value, + "DecomposerT must be a callable object returning a tuple of references to " + "arithmetic types"); + + constexpr bool is_overwrite_okay = true; + constexpr bool is_descending = false; + + return DeviceRadixSort::custom_radix_sort(decomposer_check_t{}, + d_temp_storage, + temp_storage_bytes, + is_overwrite_okay, + d_keys, + d_values, + static_cast(num_items), + decomposer, + stream); + } + + //! @rst + //! Sorts key-value pairs into ascending order using :math:`\approx N` auxiliary storage. + //! + //! * The sorting operation is given a pair of key buffers and a corresponding + //! pair of associated value buffers. Each pair is managed by a DoubleBuffer + //! structure that indicates which of the two buffers is "current" (and thus + //! contains the input data to be sorted). + //! * The contents of both buffers within each pair may be altered by the + //! sorting operation. + //! * In-place operations are not supported. There must be no overlap between + //! any of the provided ranges: + //! + //! - ``[d_keys.Current(), d_keys.Current() + num_items)`` + //! - ``[d_keys.Alternate(), d_keys.Alternate() + num_items)`` + //! - ``[d_values.Current(), d_values.Current() + num_items)`` + //! - ``[d_values.Alternate(), d_values.Alternate() + num_items)`` + //! + //! - Upon completion, the sorting operation will update the "current" + //! indicator within each DoubleBuffer wrapper to reference which of the two + //! buffers now contains the sorted output sequence (a function of the + //! number of key bits specified and the targeted device architecture). + //! - An optional bit subrange ``[begin_bit, end_bit)`` of differentiating key + //! bits can be specified. This can reduce overall sorting overhead and + //! yield a corresponding performance improvement. + //! - @devicestorageP + //! - @devicestorage + //! + //! Snippet + //! ========================================================================== + //! + //! Let's consider a user-defined ``custom_t`` type below. To sort an array of + //! ``custom_t`` objects, we have to tell CUB about relevant members of the + //! ``custom_t`` type. We do this by providing a decomposer that returns a + //! tuple of references to relevant members of the key. + //! + //! .. literalinclude:: ../../test/catch2_test_device_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin custom-type + //! :end-before: example-end custom-type + //! + //! The following snippet shows how to sort an array of ``custom_t`` objects + //! using ``cub::DeviceRadixSort::SortPairs``: + //! + //! .. literalinclude:: ../../test/catch2_test_device_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin pairs-bits-db + //! :end-before: example-end pairs-bits-db + //! + //! @endrst + //! + //! @tparam KeyT + //! **[inferred]** KeyT type + //! + //! @tparam ValueT + //! **[inferred]** ValueT type + //! + //! @tparam NumItemsT + //! **[inferred]** Type of num_items + //! + //! @tparam DecomposerT + //! **[inferred]** Type of a callable object responsible for decomposing a + //! ``KeyT`` into a tuple of references to its constituent arithmetic types: + //! ``::cuda::std::tuple operator()(KeyT &key)``. + //! The leftmost element of the tuple is considered the most significant. + //! The call operator must not modify members of the key. + //! + //! @param[in] d_temp_storage + //! Device-accessible allocation of temporary storage. When `nullptr`, the + //! required allocation size is written to `temp_storage_bytes` and no work + //! is done. + //! + //! @param[in,out] temp_storage_bytes + //! Reference to size in bytes of `d_temp_storage` allocation + //! + //! @param[in,out] d_keys + //! Reference to the double-buffer of keys whose "current" device-accessible + //! buffer contains the unsorted input keys and, upon return, is updated to + //! point to the sorted output keys + //! + //! @param[in,out] d_values + //! Double-buffer of values whose "current" device-accessible buffer + //! contains the unsorted input values and, upon return, is updated to point + //! to the sorted output values + //! + //! @param[in] num_items + //! Number of items to sort + //! + //! @param decomposer + //! Callable object responsible for decomposing a ``KeyT`` into a tuple of + //! references to its constituent arithmetic types. The leftmost element of + //! the tuple is considered the most significant. The call operator must not + //! modify members of the key. + //! + //! @param[in] begin_bit + //! **[optional]** The least-significant bit index (inclusive) needed for + //! key comparison + //! + //! @param[in] end_bit + //! **[optional]** The most-significant bit index (exclusive) needed for key + //! comparison (e.g., `(sizeof(float) + sizeof(long long int)) * 8`) + //! + //! @param[in] stream + //! **[optional]** CUDA stream to launch kernels within. + //! Default is stream0. + template + CUB_RUNTIME_FUNCTION static // + typename ::cuda::std::enable_if< // + !::cuda::std::is_convertible::value, // + cudaError_t>::type + SortPairs(void *d_temp_storage, + size_t &temp_storage_bytes, + DoubleBuffer &d_keys, + DoubleBuffer &d_values, + NumItemsT num_items, + DecomposerT decomposer, + int begin_bit, + int end_bit, + cudaStream_t stream = 0) + { + // unsigned integer type for global offsets + using offset_t = typename detail::ChooseOffsetT::Type; + using decomposer_check_t = detail::radix::decomposer_check_t; + + static_assert(decomposer_check_t::value, + "DecomposerT must be a callable object returning a tuple of references to " + "arithmetic types"); + + constexpr bool is_overwrite_okay = true; + constexpr bool is_descending = false; + + return DeviceRadixSort::custom_radix_sort(decomposer_check_t{}, + d_temp_storage, + temp_storage_bytes, + is_overwrite_okay, + d_keys, + d_values, + static_cast(num_items), + decomposer, + begin_bit, + end_bit, + stream); + } + + //! @brief Sorts key-value pairs into descending order. + //! (`~2N` auxiliary storage required). + //! + //! @par + //! - The contents of the input data are not altered by the sorting operation. + //! - Pointers to contiguous memory must be used; iterators are not currently + //! supported. + //! - In-place operations are not supported. There must be no overlap between + //! any of the provided ranges: + //! - `[d_keys_in, d_keys_in + num_items)` + //! - `[d_keys_out, d_keys_out + num_items)` + //! - `[d_values_in, d_values_in + num_items)` + //! - `[d_values_out, d_values_out + num_items)` + //! - An optional bit subrange `[begin_bit, end_bit)` of differentiating key + //! bits can be specified. This can reduce overall sorting overhead and + //! yield a corresponding performance improvement. + //! - @devicestorageNP For sorting using only `O(P)` temporary storage, see + //! the sorting interface using DoubleBuffer wrappers below. + //! - @devicestorage + //! + //! @par Performance + //! Performance is similar to DeviceRadixSort::SortPairs. + //! + //! @par Snippet + //! The code snippet below illustrates the sorting of a device vector of `int` + //! keys with associated vector of `int` values. + //! @par + //! @code + //! #include + //! // or equivalently + //! + //! // Declare, allocate, and initialize device-accessible pointers + //! // for sorting data + //! int num_items; // e.g., 7 + //! int *d_keys_in; // e.g., [8, 6, 7, 5, 3, 0, 9] + //! int *d_keys_out; // e.g., [ ... ] + //! int *d_values_in; // e.g., [0, 1, 2, 3, 4, 5, 6] + //! int *d_values_out; // e.g., [ ... ] + //! ... + //! + //! // Determine temporary device storage requirements + //! void *d_temp_storage = NULL; + //! size_t temp_storage_bytes = 0; + //! cub::DeviceRadixSort::SortPairsDescending( + //! d_temp_storage, temp_storage_bytes, + //! d_keys_in, d_keys_out, d_values_in, d_values_out, num_items); + //! + //! // Allocate temporary storage + //! cudaMalloc(&d_temp_storage, temp_storage_bytes); + //! + //! // Run sorting operation + //! cub::DeviceRadixSort::SortPairsDescending( + //! d_temp_storage, temp_storage_bytes, + //! d_keys_in, d_keys_out, d_values_in, d_values_out, num_items); + //! + //! // d_keys_out <-- [9, 8, 7, 6, 5, 3, 0] + //! // d_values_out <-- [6, 0, 2, 1, 3, 4, 5] + //! @endcode + //! + //! @tparam KeyT + //! **[inferred]** KeyT type + //! + //! @tparam ValueT + //! **[inferred]** ValueT type + //! + //! @tparam NumItemsT + //! **[inferred]** Type of num_items + //! + //! @param[in] d_temp_storage + //! Device-accessible allocation of temporary storage. When `nullptr`, the + //! required allocation size is written to `temp_storage_bytes` and no work + //! is done. + //! + //! @param[in,out] temp_storage_bytes + //! Reference to size in bytes of @p d_temp_storage allocation + //! + //! @param[in] d_keys_in + //! Pointer to the input data of key data to sort + //! + //! @param[out] d_keys_out + //! Pointer to the sorted output sequence of key data + //! + //! @param[in] d_values_in + //! Pointer to the corresponding input sequence of associated value items + //! + //! @param[out] d_values_out + //! Pointer to the correspondingly-reordered output sequence of associated + //! value items + //! + //! @param[in] num_items + //! Number of items to sort + //! + //! @param[in] begin_bit + //! **[optional]** The least-significant bit index (inclusive) needed for + //! key comparison + //! + //! @param[in] end_bit + //! **[optional]** The most-significant bit index (exclusive) needed for key + //! comparison (e.g., `sizeof(unsigned int) * 8`) + //! + //! @param[in] stream + //! **[optional]** CUDA stream to launch kernels within. + //! Default is stream0. + template + CUB_RUNTIME_FUNCTION static cudaError_t + SortPairsDescending(void *d_temp_storage, + size_t &temp_storage_bytes, + const KeyT *d_keys_in, + KeyT *d_keys_out, + const ValueT *d_values_in, + ValueT *d_values_out, + NumItemsT num_items, + int begin_bit = 0, + int end_bit = sizeof(KeyT) * 8, + cudaStream_t stream = 0) + { + // Unsigned integer type for global offsets. + using OffsetT = typename detail::ChooseOffsetT::Type; + + // We cast away const-ness, but will *not* write to these arrays. + // `DispatchRadixSort::Dispatch` will allocate temporary storage and + // create a new double-buffer internally when the `is_overwrite_ok` flag + // is not set. + constexpr bool is_overwrite_okay = false; + DoubleBuffer d_keys(const_cast(d_keys_in), d_keys_out); + DoubleBuffer d_values(const_cast(d_values_in), + d_values_out); + + return DispatchRadixSort::Dispatch( + d_temp_storage, + temp_storage_bytes, + d_keys, + d_values, + num_items, + begin_bit, + end_bit, + is_overwrite_okay, + stream); + } + + #ifndef DOXYGEN_SHOULD_SKIP_THIS // Do not document + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + SortPairsDescending(void *d_temp_storage, + size_t &temp_storage_bytes, + const KeyT *d_keys_in, + KeyT *d_keys_out, + const ValueT *d_values_in, + ValueT *d_values_out, + NumItemsT num_items, + int begin_bit, + int end_bit, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return SortPairsDescending(d_temp_storage, + temp_storage_bytes, + d_keys_in, + d_keys_out, + d_values_in, + d_values_out, + num_items, + begin_bit, + end_bit, + stream); + } + #endif + + //! @rst + //! Sorts key-value pairs into descending order using :math:`\approx 2N` auxiliary storage. + //! + //! * The contents of the input data are not altered by the sorting operation. + //! * Pointers to contiguous memory must be used; iterators are not currently + //! supported. + //! * In-place operations are not supported. There must be no overlap between + //! any of the provided ranges: + //! + //! * ``[d_keys_in, d_keys_in + num_items)`` + //! * ``[d_keys_out, d_keys_out + num_items)`` + //! * ``[d_values_in, d_values_in + num_items)`` + //! * ``[d_values_out, d_values_out + num_items)`` + //! + //! * A bit subrange ``[begin_bit, end_bit)`` is provided to specify + //! differentiating key bits. This can reduce overall sorting overhead and + //! yield a corresponding performance improvement. + //! * @devicestorageNP For sorting using only :math:`O(P)` temporary storage, see + //! the sorting interface using DoubleBuffer wrappers below. + //! * @devicestorage + //! + //! Snippet + //! ========================================================================== + //! + //! Let's consider a user-defined ``custom_t`` type below. To sort an array of + //! ``custom_t`` objects, we have to tell CUB about relevant members of the + //! ``custom_t`` type. We do this by providing a decomposer that returns a + //! tuple of references to relevant members of the key. + //! + //! .. literalinclude:: ../../test/catch2_test_device_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin custom-type + //! :end-before: example-end custom-type + //! + //! The following snippet shows how to sort an array of ``custom_t`` objects + //! using ``cub::DeviceRadixSort::SortPairsDescending``: + //! + //! .. literalinclude:: ../../test/catch2_test_device_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin pairs-descending-bits + //! :end-before: example-end pairs-descending-bits + //! + //! @endrst + //! + //! @tparam KeyT + //! **[inferred]** KeyT type + //! + //! @tparam ValueT + //! **[inferred]** ValueT type + //! + //! @tparam NumItemsT + //! **[inferred]** Type of num_items + //! + //! @tparam DecomposerT + //! **[inferred]** Type of a callable object responsible for decomposing a + //! ``KeyT`` into a tuple of references to its constituent arithmetic types: + //! ``::cuda::std::tuple operator()(KeyT &key)``. + //! The leftmost element of the tuple is considered the most significant. + //! The call operator must not modify members of the key. + //! + //! @param[in] d_temp_storage + //! Device-accessible allocation of temporary storage. When `nullptr`, the + //! required allocation size is written to `temp_storage_bytes` and no work + //! is done. + //! + //! @param[in,out] temp_storage_bytes + //! Reference to size in bytes of `d_temp_storage` allocation + //! + //! @param[in] d_keys_in + //! Pointer to the input data of key data to sort + //! + //! @param[out] d_keys_out + //! Pointer to the sorted output sequence of key data + //! + //! @param[in] d_values_in + //! Pointer to the corresponding input sequence of associated value items + //! + //! @param[out] d_values_out + //! Pointer to the correspondingly-reordered output sequence of associated + //! value items + //! + //! @param[in] num_items + //! Number of items to sort + //! + //! @param decomposer + //! Callable object responsible for decomposing a ``KeyT`` into a tuple of + //! references to its constituent arithmetic types. The leftmost element of + //! the tuple is considered the most significant. The call operator must not + //! modify members of the key. + //! + //! @param[in] begin_bit + //! **[optional]** The least-significant bit index (inclusive) needed for + //! key comparison + //! + //! @param[in] end_bit + //! **[optional]** The most-significant bit index (exclusive) needed for key + //! comparison (e.g., `(sizeof(float) + sizeof(long long int)) * 8`) + //! + //! @param[in] stream + //! **[optional]** CUDA stream to launch kernels within. + //! Default is stream0. + template + CUB_RUNTIME_FUNCTION static // + typename ::cuda::std::enable_if< // + !::cuda::std::is_convertible::value, // + cudaError_t>::type + SortPairsDescending(void *d_temp_storage, + size_t &temp_storage_bytes, + const KeyT *d_keys_in, + KeyT *d_keys_out, + const ValueT *d_values_in, + ValueT *d_values_out, + NumItemsT num_items, + DecomposerT decomposer, + int begin_bit, + int end_bit, + cudaStream_t stream = 0) + { + // unsigned integer type for global offsets + using offset_t = typename detail::ChooseOffsetT::Type; + using decomposer_check_t = detail::radix::decomposer_check_t; + + static_assert(decomposer_check_t::value, + "DecomposerT must be a callable object returning a tuple of references to " + "arithmetic types"); + + // We cast away const-ness, but will *not* write to these arrays. + // `DispatchRadixSort::Dispatch` will allocate temporary storage and + // create a new double-buffer internally when the `is_overwrite_ok` flag + // is not set. + constexpr bool is_overwrite_okay = false; + constexpr bool is_descending = true; + DoubleBuffer d_keys(const_cast(d_keys_in), d_keys_out); + DoubleBuffer d_values(const_cast(d_values_in), d_values_out); + + return DeviceRadixSort::custom_radix_sort(decomposer_check_t{}, + d_temp_storage, + temp_storage_bytes, + is_overwrite_okay, + d_keys, + d_values, + static_cast(num_items), + decomposer, + begin_bit, + end_bit, + stream); + } + + //! @rst + //! Sorts key-value pairs into descending order using :math:`\approx 2N` auxiliary storage. + //! + //! * The contents of the input data are not altered by the sorting operation. + //! * Pointers to contiguous memory must be used; iterators are not currently + //! supported. + //! * In-place operations are not supported. There must be no overlap between + //! any of the provided ranges: + //! + //! * ``[d_keys_in, d_keys_in + num_items)`` + //! * ``[d_keys_out, d_keys_out + num_items)`` + //! * ``[d_values_in, d_values_in + num_items)`` + //! * ``[d_values_out, d_values_out + num_items)`` + //! + //! * @devicestorageNP For sorting using only :math:`O(P)` temporary storage, see + //! the sorting interface using DoubleBuffer wrappers below. + //! * @devicestorage + //! + //! Snippet + //! ========================================================================== + //! + //! Let's consider a user-defined ``custom_t`` type below. To sort an array of + //! ``custom_t`` objects, we have to tell CUB about relevant members of the + //! ``custom_t`` type. We do this by providing a decomposer that returns a + //! tuple of references to relevant members of the key. + //! + //! .. literalinclude:: ../../test/catch2_test_device_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin custom-type + //! :end-before: example-end custom-type + //! + //! The following snippet shows how to sort an array of ``custom_t`` objects + //! using ``cub::DeviceRadixSort::SortPairsDescending``: + //! + //! .. literalinclude:: ../../test/catch2_test_device_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin pairs-descending + //! :end-before: example-end pairs-descending + //! + //! @endrst + //! + //! @tparam KeyT + //! **[inferred]** KeyT type + //! + //! @tparam ValueT + //! **[inferred]** ValueT type + //! + //! @tparam NumItemsT + //! **[inferred]** Type of num_items + //! + //! @tparam DecomposerT + //! **[inferred]** Type of a callable object responsible for decomposing a + //! ``KeyT`` into a tuple of references to its constituent arithmetic types: + //! ``::cuda::std::tuple operator()(KeyT &key)``. + //! The leftmost element of the tuple is considered the most significant. + //! The call operator must not modify members of the key. + //! + //! @param[in] d_temp_storage + //! Device-accessible allocation of temporary storage. When `nullptr`, the + //! required allocation size is written to `temp_storage_bytes` and no work + //! is done. + //! + //! @param[in,out] temp_storage_bytes + //! Reference to size in bytes of `d_temp_storage` allocation + //! + //! @param[in] d_keys_in + //! Pointer to the input data of key data to sort + //! + //! @param[out] d_keys_out + //! Pointer to the sorted output sequence of key data + //! + //! @param[in] d_values_in + //! Pointer to the corresponding input sequence of associated value items + //! + //! @param[out] d_values_out + //! Pointer to the correspondingly-reordered output sequence of associated + //! value items + //! + //! @param[in] num_items + //! Number of items to sort + //! + //! @param decomposer + //! Callable object responsible for decomposing a ``KeyT`` into a tuple of + //! references to its constituent arithmetic types. The leftmost element of + //! the tuple is considered the most significant. The call operator must not + //! modify members of the key. + //! + //! @param[in] stream + //! **[optional]** CUDA stream to launch kernels within. + //! Default is stream0. + template + CUB_RUNTIME_FUNCTION static // + typename ::cuda::std::enable_if< // + !::cuda::std::is_convertible::value, // + cudaError_t>::type + SortPairsDescending(void *d_temp_storage, + size_t &temp_storage_bytes, + const KeyT *d_keys_in, + KeyT *d_keys_out, + const ValueT *d_values_in, + ValueT *d_values_out, + NumItemsT num_items, + DecomposerT decomposer, + cudaStream_t stream = 0) + { + // unsigned integer type for global offsets + using offset_t = typename detail::ChooseOffsetT::Type; + using decomposer_check_t = detail::radix::decomposer_check_t; + + static_assert(decomposer_check_t::value, + "DecomposerT must be a callable object returning a tuple of references to " + "arithmetic types"); + + // We cast away const-ness, but will *not* write to these arrays. + // `DispatchRadixSort::Dispatch` will allocate temporary storage and + // create a new double-buffer internally when the `is_overwrite_ok` flag + // is not set. + constexpr bool is_overwrite_okay = false; + constexpr bool is_descending = true; + DoubleBuffer d_keys(const_cast(d_keys_in), d_keys_out); + DoubleBuffer d_values(const_cast(d_values_in), d_values_out); + + return DeviceRadixSort::custom_radix_sort(decomposer_check_t{}, + d_temp_storage, + temp_storage_bytes, + is_overwrite_okay, + d_keys, + d_values, + static_cast(num_items), + decomposer, + stream); + } + + //! @brief Sorts key-value pairs into descending order. + //! (`~N` auxiliary storage required). + //! + //! @par + //! - The sorting operation is given a pair of key buffers and a corresponding + //! pair of associated value buffers. Each pair is managed by a DoubleBuffer + //! structure that indicates which of the two buffers is "current" (and thus + //! contains the input data to be sorted). + //! - The contents of both buffers within each pair may be altered by the + //! sorting operation. + //! - In-place operations are not supported. There must be no overlap between + //! any of the provided ranges: + //! - `[d_keys.Current(), d_keys.Current() + num_items)` + //! - `[d_keys.Alternate(), d_keys.Alternate() + num_items)` + //! - `[d_values.Current(), d_values.Current() + num_items)` + //! - `[d_values.Alternate(), d_values.Alternate() + num_items)` + //! - Upon completion, the sorting operation will update the "current" + //! indicator within each DoubleBuffer wrapper to reference which of the two + //! buffers now contains the sorted output sequence (a function of the number + //! of key bits specified and the targeted device architecture). + //! - An optional bit subrange `[begin_bit, end_bit)` of differentiating key + //! bits can be specified. This can reduce overall sorting overhead and + //! yield a corresponding performance improvement. + //! - @devicestorageP + //! - @devicestorage + //! + //! @par Performance + //! Performance is similar to DeviceRadixSort::SortPairs. + //! + //! @par Snippet + //! The code snippet below illustrates the sorting of a device vector of `int` + //! keys with associated vector of `int` values. + //! @par + //! @code + //! #include + //! // or equivalently + //! + //! // Declare, allocate, and initialize device-accessible pointers + //! // for sorting data + //! int num_items; // e.g., 7 + //! int *d_key_buf; // e.g., [8, 6, 7, 5, 3, 0, 9] + //! int *d_key_alt_buf; // e.g., [ ... ] + //! int *d_value_buf; // e.g., [0, 1, 2, 3, 4, 5, 6] + //! int *d_value_alt_buf; // e.g., [ ... ] + //! ... + //! + //! // Create a set of DoubleBuffers to wrap pairs of device pointers + //! cub::DoubleBuffer d_keys(d_key_buf, d_key_alt_buf); + //! cub::DoubleBuffer d_values(d_value_buf, d_value_alt_buf); + //! + //! // Determine temporary device storage requirements + //! void *d_temp_storage = NULL; + //! size_t temp_storage_bytes = 0; + //! cub::DeviceRadixSort::SortPairsDescending( + //! d_temp_storage, temp_storage_bytes, d_keys, d_values, num_items); + //! + //! // Allocate temporary storage + //! cudaMalloc(&d_temp_storage, temp_storage_bytes); + //! + //! // Run sorting operation + //! cub::DeviceRadixSort::SortPairsDescending( + //! d_temp_storage, temp_storage_bytes, d_keys, d_values, num_items); + //! + //! // d_keys.Current() <-- [9, 8, 7, 6, 5, 3, 0] + //! // d_values.Current() <-- [6, 0, 2, 1, 3, 4, 5] + //! @endcode + //! + //! @tparam KeyT + //! **[inferred]** KeyT type + //! + //! @tparam ValueT + //! **[inferred]** ValueT type + //! + //! @tparam NumItemsT + //! **[inferred]** Type of num_items + //! + //! @param[in] d_temp_storage + //! Device-accessible allocation of temporary storage. When `nullptr`, the + //! required allocation size is written to `temp_storage_bytes` and no work + //! is done. + //! + //! @param[in,out] temp_storage_bytes + //! Reference to size in bytes of `d_temp_storage` allocation + //! + //! @param[in,out] d_keys + //! Reference to the double-buffer of keys whose "current" device-accessible + //! buffer contains the unsorted input keys and, upon return, is updated to + //! point to the sorted output keys + //! + //! @param[in,out] d_values + //! Double-buffer of values whose "current" device-accessible buffer + //! contains the unsorted input values and, upon return, is updated to point + //! to the sorted output values + //! + //! @param[in] num_items + //! Number of items to sort + //! + //! @param[in] begin_bit + //! **[optional]** The least-significant bit index (inclusive) needed for + //! key comparison + //! + //! @param[in] end_bit + //! **[optional]** The most-significant bit index (exclusive) needed for key + //! comparison (e.g., `sizeof(unsigned int) * 8`) + //! + //! @param[in] stream + //! **[optional]** CUDA stream to launch kernels within. + //! Default is stream0. + template + CUB_RUNTIME_FUNCTION static cudaError_t + SortPairsDescending(void *d_temp_storage, + size_t &temp_storage_bytes, + DoubleBuffer &d_keys, + DoubleBuffer &d_values, + NumItemsT num_items, + int begin_bit = 0, + int end_bit = sizeof(KeyT) * 8, + cudaStream_t stream = 0) + { + // Unsigned integer type for global offsets. + using OffsetT = typename detail::ChooseOffsetT::Type; + + constexpr bool is_overwrite_okay = true; + + return DispatchRadixSort::Dispatch( + d_temp_storage, + temp_storage_bytes, + d_keys, + d_values, + num_items, + begin_bit, + end_bit, + is_overwrite_okay, + stream); + } + + #ifndef DOXYGEN_SHOULD_SKIP_THIS // Do not document + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + SortPairsDescending(void *d_temp_storage, + size_t &temp_storage_bytes, + DoubleBuffer &d_keys, + DoubleBuffer &d_values, + NumItemsT num_items, + int begin_bit, + int end_bit, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return SortPairsDescending(d_temp_storage, + temp_storage_bytes, + d_keys, + d_values, + num_items, + begin_bit, + end_bit, + stream); + } + #endif + + //! @rst + //! Sorts key-value pairs into descending order using :math:`\approx N` auxiliary storage. + //! + //! * The sorting operation is given a pair of key buffers and a corresponding + //! pair of associated value buffers. Each pair is managed by a DoubleBuffer + //! structure that indicates which of the two buffers is "current" (and thus + //! contains the input data to be sorted). + //! * The contents of both buffers within each pair may be altered by the + //! sorting operation. + //! * In-place operations are not supported. There must be no overlap between + //! any of the provided ranges: + //! + //! - ``[d_keys.Current(), d_keys.Current() + num_items)`` + //! - ``[d_keys.Alternate(), d_keys.Alternate() + num_items)`` + //! - ``[d_values.Current(), d_values.Current() + num_items)`` + //! - ``[d_values.Alternate(), d_values.Alternate() + num_items)`` + //! + //! - Upon completion, the sorting operation will update the "current" + //! indicator within each DoubleBuffer wrapper to reference which of the two + //! buffers now contains the sorted output sequence (a function of the + //! number of key bits specified and the targeted device architecture). + //! - @devicestorageP + //! - @devicestorage + //! + //! Snippet + //! ========================================================================== + //! + //! Let's consider a user-defined ``custom_t`` type below. To sort an array of + //! ``custom_t`` objects, we have to tell CUB about relevant members of the + //! ``custom_t`` type. We do this by providing a decomposer that returns a + //! tuple of references to relevant members of the key. + //! + //! .. literalinclude:: ../../test/catch2_test_device_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin custom-type + //! :end-before: example-end custom-type + //! + //! The following snippet shows how to sort an array of ``custom_t`` objects + //! using ``cub::DeviceRadixSort::SortPairsDescending``: + //! + //! .. literalinclude:: ../../test/catch2_test_device_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin pairs-descending-db + //! :end-before: example-end pairs-descending-db + //! + //! @endrst + //! + //! @tparam KeyT + //! **[inferred]** KeyT type + //! + //! @tparam ValueT + //! **[inferred]** ValueT type + //! + //! @tparam NumItemsT + //! **[inferred]** Type of num_items + //! + //! @tparam DecomposerT + //! **[inferred]** Type of a callable object responsible for decomposing a + //! ``KeyT`` into a tuple of references to its constituent arithmetic types: + //! ``::cuda::std::tuple operator()(KeyT &key)``. + //! The leftmost element of the tuple is considered the most significant. + //! The call operator must not modify members of the key. + //! + //! @param[in] d_temp_storage + //! Device-accessible allocation of temporary storage. When `nullptr`, the + //! required allocation size is written to `temp_storage_bytes` and no work + //! is done. + //! + //! @param[in,out] temp_storage_bytes + //! Reference to size in bytes of `d_temp_storage` allocation + //! + //! @param[in,out] d_keys + //! Reference to the double-buffer of keys whose "current" device-accessible + //! buffer contains the unsorted input keys and, upon return, is updated to + //! point to the sorted output keys + //! + //! @param[in,out] d_values + //! Double-buffer of values whose "current" device-accessible buffer + //! contains the unsorted input values and, upon return, is updated to point + //! to the sorted output values + //! + //! @param[in] num_items + //! Number of items to sort + //! + //! @param decomposer + //! Callable object responsible for decomposing a ``KeyT`` into a tuple of + //! references to its constituent arithmetic types. The leftmost element of + //! the tuple is considered the most significant. The call operator must not + //! modify members of the key. + //! + //! @param[in] stream + //! **[optional]** CUDA stream to launch kernels within. + //! Default is stream0. + template + CUB_RUNTIME_FUNCTION static // + typename ::cuda::std::enable_if< // + !::cuda::std::is_convertible::value, // + cudaError_t>::type + SortPairsDescending(void *d_temp_storage, + size_t &temp_storage_bytes, + DoubleBuffer &d_keys, + DoubleBuffer &d_values, + NumItemsT num_items, + DecomposerT decomposer, + cudaStream_t stream = 0) + { + // unsigned integer type for global offsets + using offset_t = typename detail::ChooseOffsetT::Type; + using decomposer_check_t = detail::radix::decomposer_check_t; + + static_assert(decomposer_check_t::value, + "DecomposerT must be a callable object returning a tuple of references to " + "arithmetic types"); + + constexpr bool is_overwrite_okay = true; + constexpr bool is_descending = true; + + return DeviceRadixSort::custom_radix_sort(decomposer_check_t{}, + d_temp_storage, + temp_storage_bytes, + is_overwrite_okay, + d_keys, + d_values, + static_cast(num_items), + decomposer, + stream); + } + + //! @rst + //! Sorts key-value pairs into descending order using :math:`\approx N` auxiliary storage. + //! + //! * The sorting operation is given a pair of key buffers and a corresponding + //! pair of associated value buffers. Each pair is managed by a DoubleBuffer + //! structure that indicates which of the two buffers is "current" (and thus + //! contains the input data to be sorted). + //! * The contents of both buffers within each pair may be altered by the + //! sorting operation. + //! * In-place operations are not supported. There must be no overlap between + //! any of the provided ranges: + //! + //! - ``[d_keys.Current(), d_keys.Current() + num_items)`` + //! - ``[d_keys.Alternate(), d_keys.Alternate() + num_items)`` + //! - ``[d_values.Current(), d_values.Current() + num_items)`` + //! - ``[d_values.Alternate(), d_values.Alternate() + num_items)`` + //! + //! - Upon completion, the sorting operation will update the "current" + //! indicator within each DoubleBuffer wrapper to reference which of the two + //! buffers now contains the sorted output sequence (a function of the + //! number of key bits specified and the targeted device architecture). + //! - An optional bit subrange ``[begin_bit, end_bit)`` of differentiating key + //! bits can be specified. This can reduce overall sorting overhead and + //! yield a corresponding performance improvement. + //! - @devicestorageP + //! - @devicestorage + //! + //! Snippet + //! ========================================================================== + //! + //! Let's consider a user-defined ``custom_t`` type below. To sort an array of + //! ``custom_t`` objects, we have to tell CUB about relevant members of the + //! ``custom_t`` type. We do this by providing a decomposer that returns a + //! tuple of references to relevant members of the key. + //! + //! .. literalinclude:: ../../test/catch2_test_device_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin custom-type + //! :end-before: example-end custom-type + //! + //! The following snippet shows how to sort an array of ``custom_t`` objects + //! using ``cub::DeviceRadixSort::SortPairsDescending``: + //! + //! .. literalinclude:: ../../test/catch2_test_device_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin pairs-descending-bits-db + //! :end-before: example-end pairs-descending-bits-db + //! + //! @endrst + //! + //! @tparam KeyT + //! **[inferred]** KeyT type + //! + //! @tparam ValueT + //! **[inferred]** ValueT type + //! + //! @tparam NumItemsT + //! **[inferred]** Type of num_items + //! + //! @tparam DecomposerT + //! **[inferred]** Type of a callable object responsible for decomposing a + //! ``KeyT`` into a tuple of references to its constituent arithmetic types: + //! ``::cuda::std::tuple operator()(KeyT &key)``. + //! The leftmost element of the tuple is considered the most significant. + //! The call operator must not modify members of the key. + //! + //! @param[in] d_temp_storage + //! Device-accessible allocation of temporary storage. When `nullptr`, the + //! required allocation size is written to `temp_storage_bytes` and no work + //! is done. + //! + //! @param[in,out] temp_storage_bytes + //! Reference to size in bytes of `d_temp_storage` allocation + //! + //! @param[in,out] d_keys + //! Reference to the double-buffer of keys whose "current" device-accessible + //! buffer contains the unsorted input keys and, upon return, is updated to + //! point to the sorted output keys + //! + //! @param[in,out] d_values + //! Double-buffer of values whose "current" device-accessible buffer + //! contains the unsorted input values and, upon return, is updated to point + //! to the sorted output values + //! + //! @param[in] num_items + //! Number of items to sort + //! + //! @param decomposer + //! Callable object responsible for decomposing a ``KeyT`` into a tuple of + //! references to its constituent arithmetic types. The leftmost element of + //! the tuple is considered the most significant. The call operator must not + //! modify members of the key. + //! + //! @param[in] begin_bit + //! **[optional]** The least-significant bit index (inclusive) needed for + //! key comparison + //! + //! @param[in] end_bit + //! **[optional]** The most-significant bit index (exclusive) needed for key + //! comparison (e.g., `(sizeof(float) + sizeof(long long int)) * 8`) + //! + //! @param[in] stream + //! **[optional]** CUDA stream to launch kernels within. + //! Default is stream0. + template + CUB_RUNTIME_FUNCTION static // + typename ::cuda::std::enable_if< // + !::cuda::std::is_convertible::value, // + cudaError_t>::type + SortPairsDescending(void *d_temp_storage, + size_t &temp_storage_bytes, + DoubleBuffer &d_keys, + DoubleBuffer &d_values, + NumItemsT num_items, + DecomposerT decomposer, + int begin_bit, + int end_bit, + cudaStream_t stream = 0) + { + // unsigned integer type for global offsets + using offset_t = typename detail::ChooseOffsetT::Type; + using decomposer_check_t = detail::radix::decomposer_check_t; + + static_assert(decomposer_check_t::value, + "DecomposerT must be a callable object returning a tuple of references to " + "arithmetic types"); + + constexpr bool is_overwrite_okay = true; + constexpr bool is_descending = true; + + return DeviceRadixSort::custom_radix_sort(decomposer_check_t{}, + d_temp_storage, + temp_storage_bytes, + is_overwrite_okay, + d_keys, + d_values, + static_cast(num_items), + decomposer, + begin_bit, + end_bit, + stream); + } + + //@} end member group + /******************************************************************//** + * @name Keys-only + *********************************************************************/ + //@{ + + + //! @brief Sorts keys into ascending order. + //! (`~2N` auxiliary storage required) + //! + //! @par + //! - The contents of the input data are not altered by the sorting operation. + //! - Pointers to contiguous memory must be used; iterators are not currently + //! supported. + //! - In-place operations are not supported. There must be no overlap between + //! any of the provided ranges: + //! - `[d_keys_in, d_keys_in + num_items)` + //! - `[d_keys_out, d_keys_out + num_items)` + //! - An optional bit subrange `[begin_bit, end_bit)` of differentiating key + //! bits can be specified. This can reduce overall sorting overhead and + //! yield a corresponding performance improvement. + //! - @devicestorageNP For sorting using only `O(P)` temporary storage, see + //! the sorting interface using DoubleBuffer wrappers below. + //! - @devicestorage + //! + //! @par Performance + //! The following charts illustrate saturated sorting performance across + //! different CUDA architectures for uniform-random `uint32` and `uint64` + //! keys, respectively. + //! + //! @image html lsb_radix_sort_int32_keys.png + //! @image html lsb_radix_sort_int64_keys.png + //! + //! @par Snippet + //! The code snippet below illustrates the sorting of a device vector of + //! `int` keys. + //! @par + //! @code + //! #include + //! // or equivalently + //! + //! // Declare, allocate, and initialize device-accessible pointers + //! // for sorting data + //! int num_items; // e.g., 7 + //! int *d_keys_in; // e.g., [8, 6, 7, 5, 3, 0, 9] + //! int *d_keys_out; // e.g., [ ... ] + //! ... + //! + //! // Determine temporary device storage requirements + //! void *d_temp_storage = NULL; + //! size_t temp_storage_bytes = 0; + //! cub::DeviceRadixSort::SortKeys( + //! d_temp_storage, temp_storage_bytes, d_keys_in, d_keys_out, num_items); + //! + //! // Allocate temporary storage + //! cudaMalloc(&d_temp_storage, temp_storage_bytes); + //! + //! // Run sorting operation + //! cub::DeviceRadixSort::SortKeys( + //! d_temp_storage, temp_storage_bytes, d_keys_in, d_keys_out, num_items); + //! + //! // d_keys_out <-- [0, 3, 5, 6, 7, 8, 9] + //! @endcode + //! + //! @tparam KeyT + //! **[inferred]** KeyT type + //! + //! @tparam NumItemsT + //! **[inferred]** Type of num_items + //! + //! @tparam NumItemsT + //! **[inferred]** Type of num_items + //! + //! @param[in] d_temp_storage + //! Device-accessible allocation of temporary storage. When `nullptr`, the + //! required allocation size is written to `temp_storage_bytes` and no work + //! is done. + //! + //! @param[in,out] temp_storage_bytes + //! Reference to size in bytes of `d_temp_storage` allocation + //! + //! @param[in] d_keys_in + //! Pointer to the input data of key data to sort + //! + //! @param[out] d_keys_out + //! Pointer to the sorted output sequence of key data + //! + //! @param[in] num_items + //! Number of items to sort + //! + //! @param[in] begin_bit + //! **[optional]** The least-significant bit index (inclusive) needed for + //! key comparison + //! + //! @param[in] end_bit + //! **[optional]** The most-significant bit index (exclusive) needed for key + //! comparison (e.g., `sizeof(unsigned int) * 8`) + //! + //! @param[in] stream + //! **[optional]** CUDA stream to launch kernels within. + //! Default is stream0. + template + CUB_RUNTIME_FUNCTION static cudaError_t + SortKeys(void *d_temp_storage, + size_t &temp_storage_bytes, + const KeyT *d_keys_in, + KeyT *d_keys_out, + NumItemsT num_items, + int begin_bit = 0, + int end_bit = sizeof(KeyT) * 8, + cudaStream_t stream = 0) + { + // Unsigned integer type for global offsets. + using OffsetT = typename detail::ChooseOffsetT::Type; + + // We cast away const-ness, but will *not* write to these arrays. + // `DispatchRadixSort::Dispatch` will allocate temporary storage and + // create a new double-buffer internally when the `is_overwrite_ok` flag + // is not set. + constexpr bool is_overwrite_okay = false; + DoubleBuffer d_keys(const_cast(d_keys_in), d_keys_out); + // Null value type + DoubleBuffer d_values; + + return DispatchRadixSort::Dispatch( + d_temp_storage, + temp_storage_bytes, + d_keys, + d_values, + static_cast(num_items), + begin_bit, + end_bit, + is_overwrite_okay, + stream); + } + + //! @rst + //! Sorts keys into ascending order using :math:`\approx 2N` auxiliary storage. + //! + //! * The contents of the input data are not altered by the sorting operation. + //! * Pointers to contiguous memory must be used; iterators are not currently + //! supported. + //! * In-place operations are not supported. There must be no overlap between + //! any of the provided ranges: + //! + //! * ``[d_keys_in, d_keys_in + num_items)`` + //! * ``[d_keys_out, d_keys_out + num_items)`` + //! + //! * A bit subrange ``[begin_bit, end_bit)`` is provided to specify + //! differentiating key bits. This can reduce overall sorting overhead and + //! yield a corresponding performance improvement. + //! * @devicestorageNP For sorting using only :math:`O(P)` temporary storage, see + //! the sorting interface using DoubleBuffer wrappers below. + //! * @devicestorage + //! + //! Snippet + //! ========================================================================== + //! + //! Let's consider a user-defined ``custom_t`` type below. To sort an array of + //! ``custom_t`` objects, we have to tell CUB about relevant members of the + //! ``custom_t`` type. We do this by providing a decomposer that returns a + //! tuple of references to relevant members of the key. + //! + //! .. literalinclude:: ../../test/catch2_test_device_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin custom-type + //! :end-before: example-end custom-type + //! + //! The following snippet shows how to sort an array of ``custom_t`` objects + //! using ``cub::DeviceRadixSort::SortKeys``: + //! + //! .. literalinclude:: ../../test/catch2_test_device_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin keys-bits + //! :end-before: example-end keys-bits + //! + //! @endrst + //! + //! @tparam KeyT + //! **[inferred]** KeyT type + //! + //! @tparam NumItemsT + //! **[inferred]** Type of num_items + //! + //! @tparam DecomposerT + //! **[inferred]** Type of a callable object responsible for decomposing a + //! ``KeyT`` into a tuple of references to its constituent arithmetic types: + //! ``::cuda::std::tuple operator()(KeyT &key)``. + //! The leftmost element of the tuple is considered the most significant. + //! The call operator must not modify members of the key. + //! + //! @param[in] d_temp_storage + //! Device-accessible allocation of temporary storage. When `nullptr`, the + //! required allocation size is written to `temp_storage_bytes` and no work + //! is done. + //! + //! @param[in,out] temp_storage_bytes + //! Reference to size in bytes of `d_temp_storage` allocation + //! + //! @param[in] d_keys_in + //! Pointer to the input data of key data to sort + //! + //! @param[out] d_keys_out + //! Pointer to the sorted output sequence of key data + //! + //! @param[in] num_items + //! Number of items to sort + //! + //! @param decomposer + //! Callable object responsible for decomposing a ``KeyT`` into a tuple of + //! references to its constituent arithmetic types. The leftmost element of + //! the tuple is considered the most significant. The call operator must not + //! modify members of the key. + //! + //! @param[in] begin_bit + //! **[optional]** The least-significant bit index (inclusive) needed for + //! key comparison + //! + //! @param[in] end_bit + //! **[optional]** The most-significant bit index (exclusive) needed for key + //! comparison (e.g., `(sizeof(float) + sizeof(long long int)) * 8`) + //! + //! @param[in] stream + //! **[optional]** CUDA stream to launch kernels within. + //! Default is stream0. + template + CUB_RUNTIME_FUNCTION static // + typename ::cuda::std::enable_if< // + !::cuda::std::is_convertible::value, // + cudaError_t>::type + SortKeys(void *d_temp_storage, + size_t &temp_storage_bytes, + const KeyT *d_keys_in, + KeyT *d_keys_out, + NumItemsT num_items, + DecomposerT decomposer, + int begin_bit, + int end_bit, + cudaStream_t stream = 0) + { + // unsigned integer type for global offsets + using offset_t = typename detail::ChooseOffsetT::Type; + using decomposer_check_t = detail::radix::decomposer_check_t; + + static_assert(decomposer_check_t::value, + "DecomposerT must be a callable object returning a tuple of references to " + "arithmetic types"); + + // We cast away const-ness, but will *not* write to these arrays. + // `DispatchRadixSort::Dispatch` will allocate temporary storage and + // create a new double-buffer internally when the `is_overwrite_ok` flag + // is not set. + constexpr bool is_overwrite_okay = false; + constexpr bool is_descending = false; + DoubleBuffer d_keys(const_cast(d_keys_in), d_keys_out); + DoubleBuffer d_values; + + return DeviceRadixSort::custom_radix_sort(decomposer_check_t{}, + d_temp_storage, + temp_storage_bytes, + is_overwrite_okay, + d_keys, + d_values, + static_cast(num_items), + decomposer, + begin_bit, + end_bit, + stream); + } + + //! @rst + //! Sorts keys into ascending order using :math:`\approx 2N` auxiliary storage. + //! + //! * The contents of the input data are not altered by the sorting operation. + //! * Pointers to contiguous memory must be used; iterators are not currently + //! supported. + //! * In-place operations are not supported. There must be no overlap between + //! any of the provided ranges: + //! + //! * ``[d_keys_in, d_keys_in + num_items)`` + //! * ``[d_keys_out, d_keys_out + num_items)`` + //! + //! * An optional bit subrange ``[begin_bit, end_bit)`` of differentiating key + //! bits can be specified. This can reduce overall sorting overhead and + //! yield a corresponding performance improvement. + //! * @devicestorageNP For sorting using only :math:`O(P)` temporary storage, see + //! the sorting interface using DoubleBuffer wrappers below. + //! * @devicestorage + //! + //! Snippet + //! ========================================================================== + //! + //! Let's consider a user-defined ``custom_t`` type below. To sort an array of + //! ``custom_t`` objects, we have to tell CUB about relevant members of the + //! ``custom_t`` type. We do this by providing a decomposer that returns a + //! tuple of references to relevant members of the key. + //! + //! .. literalinclude:: ../../test/catch2_test_device_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin custom-type + //! :end-before: example-end custom-type + //! + //! The following snippet shows how to sort an array of ``custom_t`` objects + //! using ``cub::DeviceRadixSort::SortKeys``: + //! + //! .. literalinclude:: ../../test/catch2_test_device_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin keys + //! :end-before: example-end keys + //! + //! @endrst + //! + //! @tparam KeyT + //! **[inferred]** KeyT type + //! + //! @tparam NumItemsT + //! **[inferred]** Type of num_items + //! + //! @tparam DecomposerT + //! **[inferred]** Type of a callable object responsible for decomposing a + //! ``KeyT`` into a tuple of references to its constituent arithmetic types: + //! ``::cuda::std::tuple operator()(KeyT &key)``. + //! The leftmost element of the tuple is considered the most significant. + //! The call operator must not modify members of the key. + //! + //! @param[in] d_temp_storage + //! Device-accessible allocation of temporary storage. When `nullptr`, the + //! required allocation size is written to `temp_storage_bytes` and no work + //! is done. + //! + //! @param[in,out] temp_storage_bytes + //! Reference to size in bytes of `d_temp_storage` allocation + //! + //! @param[in] d_keys_in + //! Pointer to the input data of key data to sort + //! + //! @param[out] d_keys_out + //! Pointer to the sorted output sequence of key data + //! + //! @param[in] num_items + //! Number of items to sort + //! + //! @param decomposer + //! Callable object responsible for decomposing a ``KeyT`` into a tuple of + //! references to its constituent arithmetic types. The leftmost element of + //! the tuple is considered the most significant. The call operator must not + //! modify members of the key. + //! + //! @param[in] stream + //! **[optional]** CUDA stream to launch kernels within. + //! Default is stream0. + template + CUB_RUNTIME_FUNCTION static // + typename ::cuda::std::enable_if< // + !::cuda::std::is_convertible::value, // + cudaError_t>::type + SortKeys(void *d_temp_storage, + size_t &temp_storage_bytes, + const KeyT *d_keys_in, + KeyT *d_keys_out, + NumItemsT num_items, + DecomposerT decomposer, + cudaStream_t stream = 0) + { + // unsigned integer type for global offsets + using offset_t = typename detail::ChooseOffsetT::Type; + using decomposer_check_t = detail::radix::decomposer_check_t; + + static_assert(decomposer_check_t::value, + "DecomposerT must be a callable object returning a tuple of references to " + "arithmetic types"); + + // We cast away const-ness, but will *not* write to these arrays. + // `DispatchRadixSort::Dispatch` will allocate temporary storage and + // create a new double-buffer internally when the `is_overwrite_ok` flag + // is not set. + constexpr bool is_overwrite_okay = false; + constexpr bool is_descending = false; + DoubleBuffer d_keys(const_cast(d_keys_in), d_keys_out); + DoubleBuffer d_values; + + return DeviceRadixSort::custom_radix_sort(decomposer_check_t{}, + d_temp_storage, + temp_storage_bytes, + is_overwrite_okay, + d_keys, + d_values, + static_cast(num_items), + decomposer, + stream); + } + +#ifndef DOXYGEN_SHOULD_SKIP_THIS // Do not document + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + SortKeys(void *d_temp_storage, + size_t &temp_storage_bytes, + const KeyT *d_keys_in, + KeyT *d_keys_out, + NumItemsT num_items, + int begin_bit, + int end_bit, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return SortKeys(d_temp_storage, + temp_storage_bytes, + d_keys_in, + d_keys_out, + num_items, + begin_bit, + end_bit, + stream); + } + #endif + + + //! @brief Sorts keys into ascending order. (`~N` auxiliary storage required). + //! + //! @par + //! - The sorting operation is given a pair of key buffers managed by a + //! DoubleBuffer structure that indicates which of the two buffers is + //! "current" (and thus contains the input data to be sorted). + //! - The contents of both buffers may be altered by the sorting operation. + //! - In-place operations are not supported. There must be no overlap between + //! any of the provided ranges: + //! - `[d_keys.Current(), d_keys.Current() + num_items)` + //! - `[d_keys.Alternate(), d_keys.Alternate() + num_items)` + //! - Upon completion, the sorting operation will update the "current" + //! indicator within the DoubleBuffer wrapper to reference which of the two + //! buffers now contains the sorted output sequence (a function of the + //! number of key bits specified and the targeted device architecture). + //! - An optional bit subrange `[begin_bit, end_bit)` of differentiating key + //! bits can be specified. This can reduce overall sorting overhead and + //! yield a corresponding performance improvement. + //! - @devicestorageP + //! - @devicestorage + //! + //! @par Performance + //! The following charts illustrate saturated sorting performance across + //! different CUDA architectures for uniform-random `uint32` and `uint64` + //! keys, respectively. + //! + //! @image html lsb_radix_sort_int32_keys.png + //! @image html lsb_radix_sort_int64_keys.png + //! + //! @par Snippet + //! The code snippet below illustrates the sorting of a device vector of + //! `int` keys. + //! @par + //! @code + //! #include + //! // or equivalently + //! + //! // Declare, allocate, and initialize device-accessible pointers + //! // for sorting data + //! int num_items; // e.g., 7 + //! int *d_key_buf; // e.g., [8, 6, 7, 5, 3, 0, 9] + //! int *d_key_alt_buf; // e.g., [ ... ] + //! ... + //! + //! // Create a DoubleBuffer to wrap the pair of device pointers + //! cub::DoubleBuffer d_keys(d_key_buf, d_key_alt_buf); + //! + //! // Determine temporary device storage requirements + //! void *d_temp_storage = NULL; + //! size_t temp_storage_bytes = 0; + //! cub::DeviceRadixSort::SortKeys( + //! d_temp_storage, temp_storage_bytes, d_keys, num_items); + //! + //! // Allocate temporary storage + //! cudaMalloc(&d_temp_storage, temp_storage_bytes); + //! + //! // Run sorting operation + //! cub::DeviceRadixSort::SortKeys( + //! d_temp_storage, temp_storage_bytes, d_keys, num_items); + //! + //! // d_keys.Current() <-- [0, 3, 5, 6, 7, 8, 9] + //! @endcode + //! + //! @tparam KeyT + //! **[inferred]** KeyT type + //! + //! @tparam NumItemsT + //! **[inferred]** Type of num_items + //! + //! @param[in] d_temp_storage + //! Device-accessible allocation of temporary storage. When `nullptr`, the + //! required allocation size is written to `temp_storage_bytes` and no work + //! is done. + //! + //! @param[in,out] temp_storage_bytes + //! Reference to size in bytes of `d_temp_storage` allocation + //! + //! @param[in,out] d_keys + //! Reference to the double-buffer of keys whose "current" device-accessible + //! buffer contains the unsorted input keys and, upon return, is updated to + //! point to the sorted output keys + //! + //! @param[in] num_items + //! Number of items to sort + //! + //! @param[in] begin_bit + //! **[optional]** The least-significant bit index (inclusive) needed for + //! key comparison + //! + //! @param[in] end_bit + //! **[optional]** The most-significant bit index (exclusive) needed for key + //! comparison (e.g., `sizeof(unsigned int) * 8`) + //! + //! @param[in] stream + //! **[optional]** CUDA stream to launch kernels within. + //! Default is stream0. + template + CUB_RUNTIME_FUNCTION static cudaError_t + SortKeys(void *d_temp_storage, + size_t &temp_storage_bytes, + DoubleBuffer &d_keys, + NumItemsT num_items, + int begin_bit = 0, + int end_bit = sizeof(KeyT) * 8, + cudaStream_t stream = 0) + { + // Unsigned integer type for global offsets. + using OffsetT = typename detail::ChooseOffsetT::Type; + + constexpr bool is_overwrite_okay = true; + + // Null value type + DoubleBuffer d_values; + + return DispatchRadixSort::Dispatch( + d_temp_storage, + temp_storage_bytes, + d_keys, + d_values, + num_items, + begin_bit, + end_bit, + is_overwrite_okay, + stream); + } + + #ifndef DOXYGEN_SHOULD_SKIP_THIS // Do not document + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + SortKeys(void *d_temp_storage, + size_t &temp_storage_bytes, + DoubleBuffer &d_keys, + NumItemsT num_items, + int begin_bit, + int end_bit, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return SortKeys(d_temp_storage, + temp_storage_bytes, + d_keys, + num_items, + begin_bit, + end_bit, + stream); + } + #endif + + //! @rst + //! Sorts keys into ascending order using :math:`\approx N` auxiliary storage. + //! + //! * The sorting operation is given a pair of key buffers managed by a + //! DoubleBuffer structure that indicates which of the two buffers is + //! "current" (and thus contains the input data to be sorted). + //! * The contents of both buffers may be altered by the sorting operation. + //! * In-place operations are not supported. There must be no overlap between + //! any of the provided ranges: + //! + //! * ``[d_keys.Current(), d_keys.Current() + num_items)`` + //! * ``[d_keys.Alternate(), d_keys.Alternate() + num_items)` + //! + //! * Upon completion, the sorting operation will update the "current" + //! indicator within the DoubleBuffer wrapper to reference which of the two + //! buffers now contains the sorted output sequence (a function of the + //! number of key bits specified and the targeted device architecture). + //! * @devicestorageP + //! * @devicestorage + //! + //! Snippet + //! ========================================================================== + //! + //! Let's consider a user-defined ``custom_t`` type below. To sort an array of + //! ``custom_t`` objects, we have to tell CUB about relevant members of the + //! ``custom_t`` type. We do this by providing a decomposer that returns a + //! tuple of references to relevant members of the key. + //! + //! .. literalinclude:: ../../test/catch2_test_device_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin custom-type + //! :end-before: example-end custom-type + //! + //! The following snippet shows how to sort an array of ``custom_t`` objects + //! using ``cub::DeviceRadixSort::SortKeys``: + //! + //! .. literalinclude:: ../../test/catch2_test_device_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin keys-db + //! :end-before: example-end keys-db + //! + //! @endrst + //! + //! @tparam KeyT + //! **[inferred]** KeyT type + //! + //! @tparam NumItemsT + //! **[inferred]** Type of num_items + //! + //! @tparam DecomposerT + //! **[inferred]** Type of a callable object responsible for decomposing a + //! ``KeyT`` into a tuple of references to its constituent arithmetic types: + //! ``::cuda::std::tuple operator()(KeyT &key)``. + //! The leftmost element of the tuple is considered the most significant. + //! The call operator must not modify members of the key. + //! + //! @param[in] d_temp_storage + //! Device-accessible allocation of temporary storage. When `nullptr`, the + //! required allocation size is written to `temp_storage_bytes` and no work + //! is done. + //! + //! @param[in,out] temp_storage_bytes + //! Reference to size in bytes of `d_temp_storage` allocation + //! + //! @param[in,out] d_keys + //! Reference to the double-buffer of keys whose "current" device-accessible + //! buffer contains the unsorted input keys and, upon return, is updated to + //! point to the sorted output keys + //! + //! @param[in] num_items + //! Number of items to sort + //! + //! @param decomposer + //! Callable object responsible for decomposing a ``KeyT`` into a tuple of + //! references to its constituent arithmetic types. The leftmost element of + //! the tuple is considered the most significant. The call operator must not + //! modify members of the key. + //! + //! @param[in] stream + //! **[optional]** CUDA stream to launch kernels within. + //! Default is stream0. + template + CUB_RUNTIME_FUNCTION static // + typename ::cuda::std::enable_if< // + !::cuda::std::is_convertible::value, // + cudaError_t>::type + SortKeys(void *d_temp_storage, + size_t &temp_storage_bytes, + DoubleBuffer &d_keys, + NumItemsT num_items, + DecomposerT decomposer, + cudaStream_t stream = 0) + { + // unsigned integer type for global offsets + using offset_t = typename detail::ChooseOffsetT::Type; + using decomposer_check_t = detail::radix::decomposer_check_t; + + static_assert(decomposer_check_t::value, + "DecomposerT must be a callable object returning a tuple of references to " + "arithmetic types"); + + constexpr bool is_overwrite_okay = true; + constexpr bool is_descending = false; + DoubleBuffer d_values; + + return DeviceRadixSort::custom_radix_sort(decomposer_check_t{}, + d_temp_storage, + temp_storage_bytes, + is_overwrite_okay, + d_keys, + d_values, + static_cast(num_items), + decomposer, + stream); + } + + //! @rst + //! Sorts keys into ascending order using :math:`\approx N` auxiliary storage. + //! + //! * The sorting operation is given a pair of key buffers managed by a + //! DoubleBuffer structure that indicates which of the two buffers is + //! "current" (and thus contains the input data to be sorted). + //! * The contents of both buffers may be altered by the sorting operation. + //! * In-place operations are not supported. There must be no overlap between + //! any of the provided ranges: + //! + //! * ``[d_keys.Current(), d_keys.Current() + num_items)`` + //! * ``[d_keys.Alternate(), d_keys.Alternate() + num_items)` + //! + //! * A bit subrange ``[begin_bit, end_bit)`` is provided to specify + //! differentiating key bits. This can reduce overall sorting overhead and + //! yield a corresponding performance improvement. + //! * Upon completion, the sorting operation will update the "current" + //! indicator within the DoubleBuffer wrapper to reference which of the two + //! buffers now contains the sorted output sequence (a function of the + //! number of key bits specified and the targeted device architecture). + //! * @devicestorageP + //! * @devicestorage + //! + //! Snippet + //! ========================================================================== + //! + //! Let's consider a user-defined ``custom_t`` type below. To sort an array of + //! ``custom_t`` objects, we have to tell CUB about relevant members of the + //! ``custom_t`` type. We do this by providing a decomposer that returns a + //! tuple of references to relevant members of the key. + //! + //! .. literalinclude:: ../../test/catch2_test_device_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin custom-type + //! :end-before: example-end custom-type + //! + //! The following snippet shows how to sort an array of ``custom_t`` objects + //! using ``cub::DeviceRadixSort::SortKeys``: + //! + //! .. literalinclude:: ../../test/catch2_test_device_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin keys-bits-db + //! :end-before: example-end keys-bits-db + //! + //! @endrst + //! + //! @tparam KeyT + //! **[inferred]** KeyT type + //! + //! @tparam NumItemsT + //! **[inferred]** Type of num_items + //! + //! @tparam DecomposerT + //! **[inferred]** Type of a callable object responsible for decomposing a + //! ``KeyT`` into a tuple of references to its constituent arithmetic types: + //! ``::cuda::std::tuple operator()(KeyT &key)``. + //! The leftmost element of the tuple is considered the most significant. + //! The call operator must not modify members of the key. + //! + //! @param[in] d_temp_storage + //! Device-accessible allocation of temporary storage. When `nullptr`, the + //! required allocation size is written to `temp_storage_bytes` and no work + //! is done. + //! + //! @param[in,out] temp_storage_bytes + //! Reference to size in bytes of `d_temp_storage` allocation + //! + //! @param[in,out] d_keys + //! Reference to the double-buffer of keys whose "current" device-accessible + //! buffer contains the unsorted input keys and, upon return, is updated to + //! point to the sorted output keys + //! + //! @param[in] num_items + //! Number of items to sort + //! + //! @param decomposer + //! Callable object responsible for decomposing a ``KeyT`` into a tuple of + //! references to its constituent arithmetic types. The leftmost element of + //! the tuple is considered the most significant. The call operator must not + //! modify members of the key. + //! + //! @param[in] begin_bit + //! **[optional]** The least-significant bit index (inclusive) needed for + //! key comparison + //! + //! @param[in] end_bit + //! **[optional]** The most-significant bit index (exclusive) needed for key + //! comparison (e.g., `(sizeof(float) + sizeof(long long int)) * 8`) + //! + //! @param[in] stream + //! **[optional]** CUDA stream to launch kernels within. + //! Default is stream0. + template + CUB_RUNTIME_FUNCTION static // + typename ::cuda::std::enable_if< // + !::cuda::std::is_convertible::value, // + cudaError_t>::type + SortKeys(void *d_temp_storage, + size_t &temp_storage_bytes, + DoubleBuffer &d_keys, + NumItemsT num_items, + DecomposerT decomposer, + int begin_bit, + int end_bit, + cudaStream_t stream = 0) + { + // unsigned integer type for global offsets + using offset_t = typename detail::ChooseOffsetT::Type; + using decomposer_check_t = detail::radix::decomposer_check_t; + + static_assert(decomposer_check_t::value, + "DecomposerT must be a callable object returning a tuple of references to " + "arithmetic types"); + + constexpr bool is_overwrite_okay = true; + constexpr bool is_descending = false; + DoubleBuffer d_values; + + return DeviceRadixSort::custom_radix_sort(decomposer_check_t{}, + d_temp_storage, + temp_storage_bytes, + is_overwrite_okay, + d_keys, + d_values, + static_cast(num_items), + decomposer, + begin_bit, + end_bit, + stream); + } + + //! @brief Sorts keys into descending order. + //! (`~2N` auxiliary storage required). + //! + //! @par + //! - The contents of the input data are not altered by the sorting operation. + //! - Pointers to contiguous memory must be used; iterators are not currently + //! supported. + //! - In-place operations are not supported. There must be no overlap between + //! any of the provided ranges: + //! - `[d_keys_in, d_keys_in + num_items)` + //! - `[d_keys_out, d_keys_out + num_items)` + //! - An optional bit subrange `[begin_bit, end_bit)` of differentiating key + //! bits can be specified. This can reduce overall sorting overhead and + //! yield a corresponding performance improvement. + //! - @devicestorageNP For sorting using only `O(P)` temporary storage, see + //! the sorting interface using DoubleBuffer wrappers below. + //! - @devicestorage + //! + //! @par Performance + //! Performance is similar to DeviceRadixSort::SortKeys. + //! + //! @par Snippet + //! The code snippet below illustrates the sorting of a device vector of + //! `int` keys. + //! @par + //! @code + //! #include + //! // or equivalently + //! + //! // Declare, allocate, and initialize device-accessible pointers + //! // for sorting data + //! int num_items; // e.g., 7 + //! int *d_keys_in; // e.g., [8, 6, 7, 5, 3, 0, 9] + //! int *d_keys_out; // e.g., [ ... ] + //! ... + //! + //! // Create a DoubleBuffer to wrap the pair of device pointers + //! cub::DoubleBuffer d_keys(d_key_buf, d_key_alt_buf); + //! + //! // Determine temporary device storage requirements + //! void *d_temp_storage = NULL; + //! size_t temp_storage_bytes = 0; + //! cub::DeviceRadixSort::SortKeysDescending( + //! d_temp_storage, temp_storage_bytes, d_keys_in, d_keys_out, num_items); + //! + //! // Allocate temporary storage + //! cudaMalloc(&d_temp_storage, temp_storage_bytes); + //! + //! // Run sorting operation + //! cub::DeviceRadixSort::SortKeysDescending( + //! d_temp_storage, temp_storage_bytes, d_keys_in, d_keys_out, num_items); + //! + //! // d_keys_out <-- [9, 8, 7, 6, 5, 3, 0]s + //! + //! @endcode + //! + //! @tparam KeyT + //! **[inferred]** KeyT type + //! + //! @tparam NumItemsT + //! **[inferred]** Type of num_items + //! + //! @param[in] d_temp_storage + //! Device-accessible allocation of temporary storage. When `nullptr`, the + //! required allocation size is written to `temp_storage_bytes` and no work + //! is done. + //! + //! @param[in,out] temp_storage_bytes + //! Reference to size in bytes of `d_temp_storage` allocation + //! + //! @param[in] d_keys_in + //! Pointer to the input data of key data to sort + //! + //! @param[out] d_keys_out + //! Pointer to the sorted output sequence of key data + //! + //! @param[in] num_items + //! Number of items to sort + //! + //! @param[in] begin_bit + //! **[optional]** The least-significant bit index (inclusive) needed for + //! key comparison + //! + //! @param[in] end_bit + //! **[optional]** The most-significant bit index (exclusive) needed for key + //! comparison (e.g., `sizeof(unsigned int) * 8`) + //! + //! @param[in] stream + //! **[optional]** CUDA stream to launch kernels within. + //! Default is stream0. + template + CUB_RUNTIME_FUNCTION static cudaError_t + SortKeysDescending(void *d_temp_storage, + size_t &temp_storage_bytes, + const KeyT *d_keys_in, + KeyT *d_keys_out, + NumItemsT num_items, + int begin_bit = 0, + int end_bit = sizeof(KeyT) * 8, + cudaStream_t stream = 0) + { + // Unsigned integer type for global offsets. + using OffsetT = typename detail::ChooseOffsetT::Type; + + // We cast away const-ness, but will *not* write to these arrays. + // `DispatchRadixSort::Dispatch` will allocate temporary storage and + // create a new double-buffer internally when the `is_overwrite_ok` flag + // is not set. + constexpr bool is_overwrite_okay = false; + DoubleBuffer d_keys(const_cast(d_keys_in), d_keys_out); + DoubleBuffer d_values; + + return DispatchRadixSort::Dispatch( + d_temp_storage, + temp_storage_bytes, + d_keys, + d_values, + num_items, + begin_bit, + end_bit, + is_overwrite_okay, + stream); + } + + #ifndef DOXYGEN_SHOULD_SKIP_THIS // Do not document + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + SortKeysDescending(void *d_temp_storage, + size_t &temp_storage_bytes, + const KeyT *d_keys_in, + KeyT *d_keys_out, + NumItemsT num_items, + int begin_bit, + int end_bit, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return SortKeysDescending(d_temp_storage, + temp_storage_bytes, + d_keys_in, + d_keys_out, + num_items, + begin_bit, + end_bit, + stream); + } + #endif + + //! @rst + //! Sorts keys into descending order using :math:`\approx 2N` auxiliary storage. + //! + //! * The contents of the input data are not altered by the sorting operation. + //! * Pointers to contiguous memory must be used; iterators are not currently + //! supported. + //! * In-place operations are not supported. There must be no overlap between + //! any of the provided ranges: + //! + //! * ``[d_keys_in, d_keys_in + num_items)`` + //! * ``[d_keys_out, d_keys_out + num_items)`` + //! + //! * An optional bit subrange ``[begin_bit, end_bit)`` of differentiating key + //! bits can be specified. This can reduce overall sorting overhead and + //! yield a corresponding performance improvement. + //! * @devicestorageNP For sorting using only :math:`O(P)` temporary storage, see + //! the sorting interface using DoubleBuffer wrappers below. + //! * @devicestorage + //! + //! Snippet + //! ========================================================================== + //! + //! Let's consider a user-defined ``custom_t`` type below. To sort an array of + //! ``custom_t`` objects, we have to tell CUB about relevant members of the + //! ``custom_t`` type. We do this by providing a decomposer that returns a + //! tuple of references to relevant members of the key. + //! + //! .. literalinclude:: ../../test/catch2_test_device_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin custom-type + //! :end-before: example-end custom-type + //! + //! The following snippet shows how to sort an array of ``custom_t`` objects + //! using ``cub::DeviceRadixSort::SortKeysDescending``: + //! + //! .. literalinclude:: ../../test/catch2_test_device_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin keys-descending-bits + //! :end-before: example-end keys-descending-bits + //! + //! @endrst + //! + //! @tparam KeyT + //! **[inferred]** KeyT type + //! + //! @tparam NumItemsT + //! **[inferred]** Type of num_items + //! + //! @tparam DecomposerT + //! **[inferred]** Type of a callable object responsible for decomposing a + //! ``KeyT`` into a tuple of references to its constituent arithmetic types: + //! ``::cuda::std::tuple operator()(KeyT &key)``. + //! The leftmost element of the tuple is considered the most significant. + //! The call operator must not modify members of the key. + //! + //! @param[in] d_temp_storage + //! Device-accessible allocation of temporary storage. When `nullptr`, the + //! required allocation size is written to `temp_storage_bytes` and no work + //! is done. + //! + //! @param[in,out] temp_storage_bytes + //! Reference to size in bytes of `d_temp_storage` allocation + //! + //! @param[in] d_keys_in + //! Pointer to the input data of key data to sort + //! + //! @param[out] d_keys_out + //! Pointer to the sorted output sequence of key data + //! + //! @param[in] num_items + //! Number of items to sort + //! + //! @param decomposer + //! Callable object responsible for decomposing a ``KeyT`` into a tuple of + //! references to its constituent arithmetic types. The leftmost element of + //! the tuple is considered the most significant. The call operator must not + //! modify members of the key. + //! + //! @param[in] begin_bit + //! **[optional]** The least-significant bit index (inclusive) needed for + //! key comparison + //! + //! @param[in] end_bit + //! **[optional]** The most-significant bit index (exclusive) needed for key + //! comparison (e.g., `(sizeof(float) + sizeof(long long int)) * 8`) + //! + //! @param[in] stream + //! **[optional]** CUDA stream to launch kernels within. + //! Default is stream0. + template + CUB_RUNTIME_FUNCTION static // + typename ::cuda::std::enable_if< // + !::cuda::std::is_convertible::value, // + cudaError_t>::type + SortKeysDescending(void *d_temp_storage, + size_t &temp_storage_bytes, + const KeyT *d_keys_in, + KeyT *d_keys_out, + NumItemsT num_items, + DecomposerT decomposer, + int begin_bit, + int end_bit, + cudaStream_t stream = 0) + { + // unsigned integer type for global offsets + using offset_t = typename detail::ChooseOffsetT::Type; + using decomposer_check_t = detail::radix::decomposer_check_t; + + static_assert(decomposer_check_t::value, + "DecomposerT must be a callable object returning a tuple of references to " + "arithmetic types"); + + // We cast away const-ness, but will *not* write to these arrays. + // `DispatchRadixSort::Dispatch` will allocate temporary storage and + // create a new double-buffer internally when the `is_overwrite_ok` flag + // is not set. + constexpr bool is_overwrite_okay = false; + constexpr bool is_descending = true; + DoubleBuffer d_keys(const_cast(d_keys_in), d_keys_out); + DoubleBuffer d_values; + + return DeviceRadixSort::custom_radix_sort(decomposer_check_t{}, + d_temp_storage, + temp_storage_bytes, + is_overwrite_okay, + d_keys, + d_values, + static_cast(num_items), + decomposer, + begin_bit, + end_bit, + stream); + } + + //! @rst + //! Sorts keys into descending order using :math:`\approx 2N` auxiliary storage. + //! + //! * The contents of the input data are not altered by the sorting operation. + //! * Pointers to contiguous memory must be used; iterators are not currently + //! supported. + //! * In-place operations are not supported. There must be no overlap between + //! any of the provided ranges: + //! + //! * ``[d_keys_in, d_keys_in + num_items)`` + //! * ``[d_keys_out, d_keys_out + num_items)`` + //! + //! * @devicestorageNP For sorting using only :math:`O(P)` temporary storage, see + //! the sorting interface using DoubleBuffer wrappers below. + //! * @devicestorage + //! + //! Snippet + //! ========================================================================== + //! + //! Let's consider a user-defined ``custom_t`` type below. To sort an array of + //! ``custom_t`` objects, we have to tell CUB about relevant members of the + //! ``custom_t`` type. We do this by providing a decomposer that returns a + //! tuple of references to relevant members of the key. + //! + //! .. literalinclude:: ../../test/catch2_test_device_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin custom-type + //! :end-before: example-end custom-type + //! + //! The following snippet shows how to sort an array of ``custom_t`` objects + //! using ``cub::DeviceRadixSort::SortKeysDescending``: + //! + //! .. literalinclude:: ../../test/catch2_test_device_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin keys-descending + //! :end-before: example-end keys-descending + //! + //! @endrst + //! + //! @tparam KeyT + //! **[inferred]** KeyT type + //! + //! @tparam NumItemsT + //! **[inferred]** Type of num_items + //! + //! @tparam DecomposerT + //! **[inferred]** Type of a callable object responsible for decomposing a + //! ``KeyT`` into a tuple of references to its constituent arithmetic types: + //! ``::cuda::std::tuple operator()(KeyT &key)``. + //! The leftmost element of the tuple is considered the most significant. + //! The call operator must not modify members of the key. + //! + //! @param[in] d_temp_storage + //! Device-accessible allocation of temporary storage. When `nullptr`, the + //! required allocation size is written to `temp_storage_bytes` and no work + //! is done. + //! + //! @param[in,out] temp_storage_bytes + //! Reference to size in bytes of `d_temp_storage` allocation + //! + //! @param[in] d_keys_in + //! Pointer to the input data of key data to sort + //! + //! @param[out] d_keys_out + //! Pointer to the sorted output sequence of key data + //! + //! @param[in] num_items + //! Number of items to sort + //! + //! @param decomposer + //! Callable object responsible for decomposing a ``KeyT`` into a tuple of + //! references to its constituent arithmetic types. The leftmost element of + //! the tuple is considered the most significant. The call operator must not + //! modify members of the key. + //! + //! @param[in] stream + //! **[optional]** CUDA stream to launch kernels within. + //! Default is stream0. + template + CUB_RUNTIME_FUNCTION static // + typename ::cuda::std::enable_if< // + !::cuda::std::is_convertible::value, // + cudaError_t>::type + SortKeysDescending(void *d_temp_storage, + size_t &temp_storage_bytes, + const KeyT *d_keys_in, + KeyT *d_keys_out, + NumItemsT num_items, + DecomposerT decomposer, + cudaStream_t stream = 0) + { + // unsigned integer type for global offsets + using offset_t = typename detail::ChooseOffsetT::Type; + using decomposer_check_t = detail::radix::decomposer_check_t; + + static_assert(decomposer_check_t::value, + "DecomposerT must be a callable object returning a tuple of references to " + "arithmetic types"); + + // We cast away const-ness, but will *not* write to these arrays. + // `DispatchRadixSort::Dispatch` will allocate temporary storage and + // create a new double-buffer internally when the `is_overwrite_ok` flag + // is not set. + constexpr bool is_overwrite_okay = false; + constexpr bool is_descending = true; + DoubleBuffer d_keys(const_cast(d_keys_in), d_keys_out); + DoubleBuffer d_values; + + return DeviceRadixSort::custom_radix_sort(decomposer_check_t{}, + d_temp_storage, + temp_storage_bytes, + is_overwrite_okay, + d_keys, + d_values, + static_cast(num_items), + decomposer, + stream); + } + + //! @brief Sorts keys into descending order. + //! (`~N` auxiliary storage required). + //! + //! @par + //! - The sorting operation is given a pair of key buffers managed by a + //! DoubleBuffer structure that indicates which of the two buffers is + //! "current" (and thus contains the input data to be sorted). + //! - The contents of both buffers may be altered by the sorting operation. + //! - In-place operations are not supported. There must be no overlap between + //! any of the provided ranges: + //! - `[d_keys.Current(), d_keys.Current() + num_items)` + //! - `[d_keys.Alternate(), d_keys.Alternate() + num_items)` + //! - Upon completion, the sorting operation will update the "current" + //! indicator within the DoubleBuffer wrapper to reference which of the two + //! buffers now contains the sorted output sequence (a function of the + //! number of key bits specified and the targeted device architecture). + //! - An optional bit subrange `[begin_bit, end_bit)` of differentiating key + //! bits can be specified. This can reduce overall sorting overhead and + //! yield a corresponding performance improvement. + //! - @devicestorageP + //! - @devicestorage + //! + //! @par Performance + //! Performance is similar to DeviceRadixSort::SortKeys. + //! + //! @par Snippet + //! The code snippet below illustrates the sorting of a device vector of @p int keys. + //! @par + //! @code + //! #include + //! // or equivalently + //! + //! // Declare, allocate, and initialize device-accessible pointers + //! // for sorting data + //! int num_items; // e.g., 7 + //! int *d_key_buf; // e.g., [8, 6, 7, 5, 3, 0, 9] + //! int *d_key_alt_buf; // e.g., [ ... ] + //! ... + //! + //! // Create a DoubleBuffer to wrap the pair of device pointers + //! cub::DoubleBuffer d_keys(d_key_buf, d_key_alt_buf); + //! + //! // Determine temporary device storage requirements + //! void *d_temp_storage = NULL; + //! size_t temp_storage_bytes = 0; + //! cub::DeviceRadixSort::SortKeysDescending( + //! d_temp_storage, temp_storage_bytes, d_keys, num_items); + //! + //! // Allocate temporary storage + //! cudaMalloc(&d_temp_storage, temp_storage_bytes); + //! + //! // Run sorting operation + //! cub::DeviceRadixSort::SortKeysDescending( + //! d_temp_storage, temp_storage_bytes, d_keys, num_items); + //! + //! // d_keys.Current() <-- [9, 8, 7, 6, 5, 3, 0] + //! @endcode + //! + //! @tparam KeyT + //! **[inferred]** KeyT type + //! + //! @tparam NumItemsT + //! **[inferred]** Type of num_items + //! + //! @param[in] d_temp_storage + //! Device-accessible allocation of temporary storage. When `nullptr`, the + //! required allocation size is written to `temp_storage_bytes` and no work + //! is done. + //! + //! @param[in,out] temp_storage_bytes + //! Reference to size in bytes of `d_temp_storage` allocation + //! + //! @param[in,out] d_keys + //! Reference to the double-buffer of keys whose "current" device-accessible + //! buffer contains the unsorted input keys and, upon return, is updated to + //! point to the sorted output keys + //! + //! @param[in] num_items + //! Number of items to sort + //! + //! @param[in] begin_bit + //! **[optional]** The least-significant bit index (inclusive) needed for + //! key comparison + //! + //! @param[in] end_bit + //! **[optional]** The most-significant bit index (exclusive) needed for key + //! comparison (e.g., `sizeof(unsigned int) * 8`) + //! + //! @param[in] stream + //! **[optional]** CUDA stream to launch kernels within. + //! Default is stream0. + template + CUB_RUNTIME_FUNCTION static cudaError_t + SortKeysDescending(void *d_temp_storage, + size_t &temp_storage_bytes, + DoubleBuffer &d_keys, + NumItemsT num_items, + int begin_bit = 0, + int end_bit = sizeof(KeyT) * 8, + cudaStream_t stream = 0) + { + // Unsigned integer type for global offsets. + using OffsetT = typename detail::ChooseOffsetT::Type; + + constexpr bool is_overwrite_okay = true; + + // Null value type + DoubleBuffer d_values; + + return DispatchRadixSort::Dispatch( + d_temp_storage, + temp_storage_bytes, + d_keys, + d_values, + num_items, + begin_bit, + end_bit, + is_overwrite_okay, + stream); + } + + #ifndef DOXYGEN_SHOULD_SKIP_THIS // Do not document + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + SortKeysDescending(void *d_temp_storage, + size_t &temp_storage_bytes, + DoubleBuffer &d_keys, + NumItemsT num_items, + int begin_bit, + int end_bit, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return SortKeysDescending(d_temp_storage, + temp_storage_bytes, + d_keys, + num_items, + begin_bit, + end_bit, + stream); + } + #endif + + //! @rst + //! Sorts keys into descending order using :math:`\approx N` auxiliary storage. + //! + //! * The sorting operation is given a pair of key buffers managed by a + //! DoubleBuffer structure that indicates which of the two buffers is + //! "current" (and thus contains the input data to be sorted). + //! * The contents of both buffers may be altered by the sorting operation. + //! * In-place operations are not supported. There must be no overlap between + //! any of the provided ranges: + //! + //! * ``[d_keys.Current(), d_keys.Current() + num_items)`` + //! * ``[d_keys.Alternate(), d_keys.Alternate() + num_items)` + //! + //! * Upon completion, the sorting operation will update the "current" + //! indicator within the DoubleBuffer wrapper to reference which of the two + //! buffers now contains the sorted output sequence (a function of the + //! number of key bits specified and the targeted device architecture). + //! * @devicestorageP + //! * @devicestorage + //! + //! Snippet + //! ========================================================================== + //! + //! Let's consider a user-defined ``custom_t`` type below. To sort an array of + //! ``custom_t`` objects, we have to tell CUB about relevant members of the + //! ``custom_t`` type. We do this by providing a decomposer that returns a + //! tuple of references to relevant members of the key. + //! + //! .. literalinclude:: ../../test/catch2_test_device_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin custom-type + //! :end-before: example-end custom-type + //! + //! The following snippet shows how to sort an array of ``custom_t`` objects + //! using ``cub::DeviceRadixSort::SortKeysDescending``: + //! + //! .. literalinclude:: ../../test/catch2_test_device_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin keys-descending-db + //! :end-before: example-end keys-descending-db + //! + //! @endrst + //! + //! @tparam KeyT + //! **[inferred]** KeyT type + //! + //! @tparam NumItemsT + //! **[inferred]** Type of num_items + //! + //! @tparam DecomposerT + //! **[inferred]** Type of a callable object responsible for decomposing a + //! ``KeyT`` into a tuple of references to its constituent arithmetic types: + //! ``::cuda::std::tuple operator()(KeyT &key)``. + //! The leftmost element of the tuple is considered the most significant. + //! The call operator must not modify members of the key. + //! + //! @param[in] d_temp_storage + //! Device-accessible allocation of temporary storage. When `nullptr`, the + //! required allocation size is written to `temp_storage_bytes` and no work + //! is done. + //! + //! @param[in,out] temp_storage_bytes + //! Reference to size in bytes of `d_temp_storage` allocation + //! + //! @param[in,out] d_keys + //! Reference to the double-buffer of keys whose "current" device-accessible + //! buffer contains the unsorted input keys and, upon return, is updated to + //! point to the sorted output keys + //! + //! @param[in] num_items + //! Number of items to sort + //! + //! @param decomposer + //! Callable object responsible for decomposing a ``KeyT`` into a tuple of + //! references to its constituent arithmetic types. The leftmost element of + //! the tuple is considered the most significant. The call operator must not + //! modify members of the key. + //! + //! @param[in] stream + //! **[optional]** CUDA stream to launch kernels within. + //! Default is stream0. + template + CUB_RUNTIME_FUNCTION static // + typename ::cuda::std::enable_if< // + !::cuda::std::is_convertible::value, // + cudaError_t>::type + SortKeysDescending(void *d_temp_storage, + size_t &temp_storage_bytes, + DoubleBuffer &d_keys, + NumItemsT num_items, + DecomposerT decomposer, + cudaStream_t stream = 0) + { + // unsigned integer type for global offsets + using offset_t = typename detail::ChooseOffsetT::Type; + using decomposer_check_t = detail::radix::decomposer_check_t; + + static_assert(decomposer_check_t::value, + "DecomposerT must be a callable object returning a tuple of references to " + "arithmetic types"); + + constexpr bool is_overwrite_okay = true; + constexpr bool is_descending = true; + DoubleBuffer d_values; + + return DeviceRadixSort::custom_radix_sort(decomposer_check_t{}, + d_temp_storage, + temp_storage_bytes, + is_overwrite_okay, + d_keys, + d_values, + static_cast(num_items), + decomposer, + stream); + } + + //! @rst + //! Sorts keys into descending order using :math:`\approx N` auxiliary storage. + //! + //! * The sorting operation is given a pair of key buffers managed by a + //! DoubleBuffer structure that indicates which of the two buffers is + //! "current" (and thus contains the input data to be sorted). + //! * The contents of both buffers may be altered by the sorting operation. + //! * In-place operations are not supported. There must be no overlap between + //! any of the provided ranges: + //! + //! * ``[d_keys.Current(), d_keys.Current() + num_items)`` + //! * ``[d_keys.Alternate(), d_keys.Alternate() + num_items)` + //! + //! * A bit subrange ``[begin_bit, end_bit)`` is provided to specify + //! differentiating key bits. This can reduce overall sorting overhead and + //! yield a corresponding performance improvement. + //! * Upon completion, the sorting operation will update the "current" + //! indicator within the DoubleBuffer wrapper to reference which of the two + //! buffers now contains the sorted output sequence (a function of the + //! number of key bits specified and the targeted device architecture). + //! * @devicestorageP + //! * @devicestorage + //! + //! Snippet + //! ========================================================================== + //! + //! Let's consider a user-defined ``custom_t`` type below. To sort an array of + //! ``custom_t`` objects, we have to tell CUB about relevant members of the + //! ``custom_t`` type. We do this by providing a decomposer that returns a + //! tuple of references to relevant members of the key. + //! + //! .. literalinclude:: ../../test/catch2_test_device_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin custom-type + //! :end-before: example-end custom-type + //! + //! The following snippet shows how to sort an array of ``custom_t`` objects + //! using ``cub::DeviceRadixSort::SortKeysDescending``: + //! + //! .. literalinclude:: ../../test/catch2_test_device_radix_sort_custom.cu + //! :language: c++ + //! :dedent: + //! :start-after: example-begin keys-descending-bits-db + //! :end-before: example-end keys-descending-bits-db + //! + //! @endrst + //! + //! @tparam KeyT + //! **[inferred]** KeyT type + //! + //! @tparam NumItemsT + //! **[inferred]** Type of num_items + //! + //! @tparam DecomposerT + //! **[inferred]** Type of a callable object responsible for decomposing a + //! ``KeyT`` into a tuple of references to its constituent arithmetic types: + //! ``::cuda::std::tuple operator()(KeyT &key)``. + //! The leftmost element of the tuple is considered the most significant. + //! The call operator must not modify members of the key. + //! + //! @param[in] d_temp_storage + //! Device-accessible allocation of temporary storage. When `nullptr`, the + //! required allocation size is written to `temp_storage_bytes` and no work + //! is done. + //! + //! @param[in,out] temp_storage_bytes + //! Reference to size in bytes of `d_temp_storage` allocation + //! + //! @param[in,out] d_keys + //! Reference to the double-buffer of keys whose "current" device-accessible + //! buffer contains the unsorted input keys and, upon return, is updated to + //! point to the sorted output keys + //! + //! @param[in] num_items + //! Number of items to sort + //! + //! @param decomposer + //! Callable object responsible for decomposing a ``KeyT`` into a tuple of + //! references to its constituent arithmetic types. The leftmost element of + //! the tuple is considered the most significant. The call operator must not + //! modify members of the key. + //! + //! @param[in] begin_bit + //! **[optional]** The least-significant bit index (inclusive) needed for + //! key comparison + //! + //! @param[in] end_bit + //! **[optional]** The most-significant bit index (exclusive) needed for key + //! comparison (e.g., `(sizeof(float) + sizeof(long long int)) * 8`) + //! + //! @param[in] stream + //! **[optional]** CUDA stream to launch kernels within. + //! Default is stream0. + template + CUB_RUNTIME_FUNCTION static // + typename ::cuda::std::enable_if< // + !::cuda::std::is_convertible::value, // + cudaError_t>::type + SortKeysDescending(void *d_temp_storage, + size_t &temp_storage_bytes, + DoubleBuffer &d_keys, + NumItemsT num_items, + DecomposerT decomposer, + int begin_bit, + int end_bit, + cudaStream_t stream = 0) + { + // unsigned integer type for global offsets + using offset_t = typename detail::ChooseOffsetT::Type; + using decomposer_check_t = detail::radix::decomposer_check_t; + + static_assert(decomposer_check_t::value, + "DecomposerT must be a callable object returning a tuple of references to " + "arithmetic types"); + + constexpr bool is_overwrite_okay = true; + constexpr bool is_descending = true; + DoubleBuffer d_values; + + return DeviceRadixSort::custom_radix_sort(decomposer_check_t{}, + d_temp_storage, + temp_storage_bytes, + is_overwrite_okay, + d_keys, + d_values, + static_cast(num_items), + decomposer, + begin_bit, + end_bit, + stream); + } + + //@} end member group +}; + +/** + * @example example_device_radix_sort.cu + */ + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/device/device_reduce.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/device/device_reduce.cuh new file mode 100644 index 0000000000000000000000000000000000000000..f2c4090f8b597be7503864f8e55b8c075c70333f --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/device/device_reduce.cuh @@ -0,0 +1,1213 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2022, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * @file cub::DeviceReduce provides device-wide, parallel operations for + * computing a reduction across a sequence of data items residing within + * device-accessible memory. + */ + +#pragma once + +#include +#include + +#include +#include +#include +#include +#include +#include + +CUB_NAMESPACE_BEGIN + + +//! @ingroup SingleModule +//! +//! @rst +//! DeviceReduce provides device-wide, parallel operations for computing +//! a reduction across a sequence of data items residing within +//! device-accessible memory. +//! +//! .. image:: ../img/reduce_logo.png +//! :align: center +//! +//! Overview +//! ==================================== +//! A `reduction `_ +//! (or *fold*) uses a binary combining operator to compute a single aggregate +//! from a sequence of input elements. +//! +//! Usage Considerations +//! ==================================== +//! @cdp_class{DeviceReduce} +//! +//! Performance +//! ==================================== +//! @linear_performance{reduction, reduce-by-key, and run-length encode} +//! +//! The following chart illustrates DeviceReduce::Sum +//! performance across different CUDA architectures for \p int32 keys. +//! +//! .. image:: ../img/reduce_int32.png +//! :align: center +//! +//! @par +//! The following chart illustrates DeviceReduce::ReduceByKey (summation) +//! performance across different CUDA architectures for `fp32` values. Segments +//! are identified by `int32` keys, and have lengths uniformly sampled +//! from `[1, 1000]`. +//! +//! .. image:: ../img/reduce_by_key_fp32_len_500.png +//! :align: center +//! +//! @endrst +struct DeviceReduce +{ + /** + * @brief Computes a device-wide reduction using the specified binary + * `reduction_op` functor and initial value `init`. + * + * @par + * - Does not support binary reduction operators that are non-commutative. + * - Provides "run-to-run" determinism for pseudo-associative reduction + * (e.g., addition of floating point types) on the same GPU device. + * However, results for pseudo-associative reduction may be inconsistent + * from one device to a another device of a different compute-capability + * because CUB can employ different tile-sizing for different architectures. + * - The range `[d_in, d_in + num_items)` shall not overlap `d_out`. + * - @devicestorage + * + * @par Snippet + * The code snippet below illustrates a user-defined min-reduction of a + * device vector of `int` data elements. + * @par + * @code + * #include + * // or equivalently + * + * // CustomMin functor + * struct CustomMin + * { + * template + * __device__ __forceinline__ + * T operator()(const T &a, const T &b) const { + * return (b < a) ? b : a; + * } + * }; + * + * // Declare, allocate, and initialize device-accessible pointers for + * // input and output + * int num_items; // e.g., 7 + * int *d_in; // e.g., [8, 6, 7, 5, 3, 0, 9] + * int *d_out; // e.g., [-] + * CustomMin min_op; + * int init; // e.g., INT_MAX + * ... + * + * // Determine temporary device storage requirements + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceReduce::Reduce( + * d_temp_storage, temp_storage_bytes, + * d_in, d_out, num_items, min_op, init); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run reduction + * cub::DeviceReduce::Reduce( + * d_temp_storage, temp_storage_bytes, + * d_in, d_out, num_items, min_op, init); + * + * // d_out <-- [0] + * @endcode + * + * @tparam InputIteratorT + * **[inferred]** Random-access input iterator type for reading input + * items \iterator + * + * @tparam OutputIteratorT + * **[inferred]** Output iterator type for recording the reduced + * aggregate \iterator + * + * @tparam ReductionOpT + * **[inferred]** Binary reduction functor type having member + * `T operator()(const T &a, const T &b)` + * + * @tparam T + * **[inferred]** Data element type that is convertible to the `value` type + * of `InputIteratorT` + * + * @tparam NumItemsT **[inferred]** Type of num_items + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no work + * is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param d_in[in] + * Pointer to the input sequence of data items + * + * @param d_out[out] + * Pointer to the output aggregate + * + * @param num_items[in] + * Total number of input items (i.e., length of `d_in`) + * + * @param reduction_op[in] + * Binary reduction functor + * + * @param[in] init + * Initial value of the reduction + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. + * Default is stream0. + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t Reduce(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OutputIteratorT d_out, + NumItemsT num_items, + ReductionOpT reduction_op, + T init, + cudaStream_t stream = 0) + { + // Signed integer type for global offsets + using OffsetT = typename detail::ChooseOffsetT::Type; + + return DispatchReduce::Dispatch(d_temp_storage, + temp_storage_bytes, + d_in, + d_out, + static_cast(num_items), + reduction_op, + init, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t Reduce(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OutputIteratorT d_out, + int num_items, + ReductionOpT reduction_op, + T init, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return Reduce( + d_temp_storage, + temp_storage_bytes, + d_in, + d_out, + num_items, + reduction_op, + init, + stream); + } + + /** + * @brief Computes a device-wide sum using the addition (`+`) operator. + * + * @par + * - Uses `0` as the initial value of the reduction. + * - Does not support \p + operators that are non-commutative.. + * - Provides "run-to-run" determinism for pseudo-associative reduction + * (e.g., addition of floating point types) on the same GPU device. + * However, results for pseudo-associative reduction may be inconsistent + * from one device to a another device of a different compute-capability + * because CUB can employ different tile-sizing for different architectures. + * - The range `[d_in, d_in + num_items)` shall not overlap `d_out`. + * - @devicestorage + * + * @par Performance + * The following charts illustrate saturated sum-reduction performance across + * different CUDA architectures for `int32` and `int64` items, respectively. + * + * @image html reduce_int32.png + * @image html reduce_int64.png + * + * @par Snippet + * The code snippet below illustrates the sum-reduction of a device vector + * of `int` data elements. + * @par + * @code + * #include + * // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers + * // for input and output + * int num_items; // e.g., 7 + * int *d_in; // e.g., [8, 6, 7, 5, 3, 0, 9] + * int *d_out; // e.g., [-] + * ... + * + * // Determine temporary device storage requirements + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceReduce::Sum( + * d_temp_storage, temp_storage_bytes, d_in, d_out, num_items); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run sum-reduction + * cub::DeviceReduce::Sum( + * d_temp_storage, temp_storage_bytes, d_in, d_out, num_items); + * + * // d_out <-- [38] + * @endcode + * + * @tparam InputIteratorT + * **[inferred]** Random-access input iterator type for reading input + * items \iterator + * + * @tparam OutputIteratorT + * **[inferred]** Output iterator type for recording the reduced + * aggregate \iterator + * + * @tparam NumItemsT **[inferred]** Type of num_items + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no work + * is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in] d_in + * Pointer to the input sequence of data items + * + * @param[out] d_out + * Pointer to the output aggregate + * + * @param[in] num_items + * Total number of input items (i.e., length of `d_in`) + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. + * Default is stream0. + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t Sum(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OutputIteratorT d_out, + NumItemsT num_items, + cudaStream_t stream = 0) + { + // Signed integer type for global offsets + using OffsetT = typename detail::ChooseOffsetT::Type; + + // The output value type + using OutputT = + cub::detail::non_void_value_t>; + + using InitT = OutputT; + + return DispatchReduce::Dispatch(d_temp_storage, + temp_storage_bytes, + d_in, + d_out, + static_cast(num_items), + cub::Sum(), + InitT{}, // zero-initialize + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t Sum(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OutputIteratorT d_out, + int num_items, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return Sum(d_temp_storage, + temp_storage_bytes, + d_in, + d_out, + num_items, + stream); + } + + /** + * @brief Computes a device-wide minimum using the less-than ('<') operator. + * + * @par + * - Uses `std::numeric_limits::max()` as the initial value of the reduction. + * - Does not support `<` operators that are non-commutative. + * - Provides "run-to-run" determinism for pseudo-associative reduction + * (e.g., addition of floating point types) on the same GPU device. + * However, results for pseudo-associative reduction may be inconsistent + * from one device to a another device of a different compute-capability + * because CUB can employ different tile-sizing for different architectures. + * - The range `[d_in, d_in + num_items)` shall not overlap `d_out`. + * - @devicestorage + * + * @par Snippet + * The code snippet below illustrates the min-reduction of a device vector of + * `int` data elements. + * @par + * @code + * #include + * // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers + * // for input and output + * int num_items; // e.g., 7 + * int *d_in; // e.g., [8, 6, 7, 5, 3, 0, 9] + * int *d_out; // e.g., [-] + * ... + * + * // Determine temporary device storage requirements + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceReduce::Min( + * d_temp_storage, temp_storage_bytes, d_in, d_out, num_items); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run min-reduction + * cub::DeviceReduce::Min( + * d_temp_storage, temp_storage_bytes, d_in, d_out, num_items); + * + * // d_out <-- [0] + * @endcode + * + * @tparam InputIteratorT + * **[inferred]** Random-access input iterator type for reading input + * items \iterator + * + * @tparam OutputIteratorT + * **[inferred]** Output iterator type for recording the reduced + * aggregate \iterator + * + * @tparam NumItemsT **[inferred]** Type of num_items + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no work + * is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in] d_in + * Pointer to the input sequence of data items + * + * @param[out] d_out + * Pointer to the output aggregate + * + * @param[in] num_items + * Total number of input items (i.e., length of `d_in`) + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. + * Default is stream0. + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t Min(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OutputIteratorT d_out, + NumItemsT num_items, + cudaStream_t stream = 0) + { + // Signed integer type for global offsets + using OffsetT = typename detail::ChooseOffsetT::Type; + + // The input value type + using InputT = cub::detail::value_t; + + using InitT = InputT; + + return DispatchReduce::Dispatch(d_temp_storage, + temp_storage_bytes, + d_in, + d_out, + static_cast(num_items), + cub::Min(), + // replace with + // std::numeric_limits::max() when + // C++11 support is more prevalent + Traits::Max(), + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t Min(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OutputIteratorT d_out, + int num_items, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return Min(d_temp_storage, + temp_storage_bytes, + d_in, + d_out, + num_items, + stream); + } + + /** + * @brief Finds the first device-wide minimum using the less-than ('<') + * operator, also returning the index of that item. + * + * @par + * - The output value type of `d_out` is cub::KeyValuePair `` + * (assuming the value type of `d_in` is `T`) + * - The minimum is written to `d_out.value` and its offset in the input + * array is written to `d_out.key`. + * - The `{1, std::numeric_limits::max()}` tuple is produced for + * zero-length inputs + * - Does not support `<` operators that are non-commutative. + * - Provides "run-to-run" determinism for pseudo-associative reduction + * (e.g., addition of floating point types) on the same GPU device. + * However, results for pseudo-associative reduction may be inconsistent + * from one device to a another device of a different compute-capability + * because CUB can employ different tile-sizing for different architectures. + * - The range `[d_in, d_in + num_items)` shall not overlap `d_out`. + * - @devicestorage + * + * @par Snippet + * The code snippet below illustrates the argmin-reduction of a device vector + * of `int` data elements. + * @par + * @code + * #include + * // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers + * // for input and output + * int num_items; // e.g., 7 + * int *d_in; // e.g., [8, 6, 7, 5, 3, 0, 9] + * KeyValuePair *d_out; // e.g., [{-,-}] + * ... + * + * // Determine temporary device storage requirements + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceReduce::ArgMin( + * d_temp_storage, temp_storage_bytes, d_in, d_argmin, num_items); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run argmin-reduction + * cub::DeviceReduce::ArgMin( + * d_temp_storage, temp_storage_bytes, d_in, d_argmin, num_items); + * + * // d_out <-- [{5, 0}] + * + * @endcode + * + * @tparam InputIteratorT + * **[inferred]** Random-access input iterator type for reading input items + * (of some type `T`) \iterator + * + * @tparam OutputIteratorT + * **[inferred]** Output iterator type for recording the reduced aggregate + * (having value type `cub::KeyValuePair`) \iterator + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to \p temp_storage_bytes and no work is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in] d_in + * Pointer to the input sequence of data items + * + * @param[out] d_out + * Pointer to the output aggregate + * + * @param[in] num_items + * Total number of input items (i.e., length of `d_in`) + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. + * Default is stream0. + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t ArgMin(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OutputIteratorT d_out, + int num_items, + cudaStream_t stream = 0) + { + // Signed integer type for global offsets + using OffsetT = int; + + // The input type + using InputValueT = cub::detail::value_t; + + // The output tuple type + using OutputTupleT = + cub::detail::non_void_value_t>; + + using AccumT = OutputTupleT; + + using InitT = detail::reduce::empty_problem_init_t; + + // The output value type + using OutputValueT = typename OutputTupleT::Value; + + // Wrapped input iterator to produce index-value tuples + using ArgIndexInputIteratorT = + ArgIndexInputIterator; + + ArgIndexInputIteratorT d_indexed_in(d_in); + + // Initial value + // TODO Address https://github.com/NVIDIA/cub/issues/651 + InitT initial_value{AccumT(1, Traits::Max())}; + + return DispatchReduce::Dispatch(d_temp_storage, + temp_storage_bytes, + d_indexed_in, + d_out, + num_items, + cub::ArgMin(), + initial_value, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t ArgMin(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OutputIteratorT d_out, + int num_items, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return ArgMin(d_temp_storage, + temp_storage_bytes, + d_in, + d_out, + num_items, + stream); + } + + /** + * @brief Computes a device-wide maximum using the greater-than ('>') operator. + * + * @par + * - Uses `std::numeric_limits::lowest()` as the initial value of the + * reduction. + * - Does not support `>` operators that are non-commutative. + * - Provides "run-to-run" determinism for pseudo-associative reduction + * (e.g., addition of floating point types) on the same GPU device. + * However, results for pseudo-associative reduction may be inconsistent + * from one device to a another device of a different compute-capability + * because CUB can employ different tile-sizing for different architectures. + * - The range `[d_in, d_in + num_items)` shall not overlap `d_out`. + * - @devicestorage + * + * @par Snippet + * The code snippet below illustrates the max-reduction of a device vector of + * `int` data elements. + * @par + * @code + * #include + * // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers + * // for input and output + * int num_items; // e.g., 7 + * int *d_in; // e.g., [8, 6, 7, 5, 3, 0, 9] + * int *d_out; // e.g., [-] + * ... + * + * // Determine temporary device storage requirements + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceReduce::Max( + * d_temp_storage, temp_storage_bytes, d_in, d_max, num_items); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run max-reduction + * cub::DeviceReduce::Max( + * d_temp_storage, temp_storage_bytes, d_in, d_max, num_items); + * + * // d_out <-- [9] + * @endcode + * + * @tparam InputIteratorT + * **[inferred]** Random-access input iterator type for reading input + * items \iterator + * + * @tparam OutputIteratorT + * **[inferred]** Output iterator type for recording the reduced + * aggregate \iterator + * + * @tparam NumItemsT **[inferred]** Type of num_items + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no work + * is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in] d_in + * Pointer to the input sequence of data items + * + * @param[out] d_out + * Pointer to the output aggregate + * + * @param[in] num_items + * Total number of input items (i.e., length of `d_in`) + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. + * Default is stream0. + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t Max(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OutputIteratorT d_out, + NumItemsT num_items, + cudaStream_t stream = 0) + { + // Signed integer type for global offsets + using OffsetT = typename detail::ChooseOffsetT::Type; + + // The input value type + using InputT = cub::detail::value_t; + + using InitT = InputT; + + return DispatchReduce::Dispatch(d_temp_storage, + temp_storage_bytes, + d_in, + d_out, + static_cast(num_items), + cub::Max(), + // replace with + // std::numeric_limits::lowest() + // when C++11 support is more + // prevalent + Traits::Lowest(), + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t Max(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OutputIteratorT d_out, + int num_items, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return Max(d_temp_storage, + temp_storage_bytes, + d_in, + d_out, + num_items, + stream); + } + + /** + * @brief Finds the first device-wide maximum using the greater-than ('>') + * operator, also returning the index of that item + * + * @par + * - The output value type of `d_out` is cub::KeyValuePair `` + * (assuming the value type of `d_in` is `T`) + * - The maximum is written to `d_out.value` and its offset in the input + * array is written to `d_out.key`. + * - The `{1, std::numeric_limits::lowest()}` tuple is produced for + * zero-length inputs + * - Does not support `>` operators that are non-commutative. + * - Provides "run-to-run" determinism for pseudo-associative reduction + * (e.g., addition of floating point types) on the same GPU device. + * However, results for pseudo-associative reduction may be inconsistent + * from one device to a another device of a different compute-capability + * because CUB can employ different tile-sizing for different architectures. + * - The range `[d_in, d_in + num_items)` shall not overlap `d_out`. + * - @devicestorage + * + * @par Snippet + * The code snippet below illustrates the argmax-reduction of a device vector + * of `int` data elements. + * @par + * @code + * #include + * // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers + * // for input and output + * int num_items; // e.g., 7 + * int *d_in; // e.g., [8, 6, 7, 5, 3, 0, 9] + * KeyValuePair *d_out; // e.g., [{-,-}] + * ... + * + * // Determine temporary device storage requirements + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceReduce::ArgMax( + * d_temp_storage, temp_storage_bytes, d_in, d_argmax, num_items); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run argmax-reduction + * cub::DeviceReduce::ArgMax( + * d_temp_storage, temp_storage_bytes, d_in, d_argmax, num_items); + * + * // d_out <-- [{6, 9}] + * + * @endcode + * + * @tparam InputIteratorT + * **[inferred]** Random-access input iterator type for reading input items + * (of some type \p T) \iterator + * + * @tparam OutputIteratorT + * **[inferred]** Output iterator type for recording the reduced aggregate + * (having value type `cub::KeyValuePair`) \iterator + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no work + * is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in] d_in + * Pointer to the input sequence of data items + * + * @param[out] d_out + * Pointer to the output aggregate + * + * @param[in] num_items + * Total number of input items (i.e., length of `d_in`) + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. + * Default is stream0. + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t ArgMax(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OutputIteratorT d_out, + int num_items, + cudaStream_t stream = 0) + { + // Signed integer type for global offsets + using OffsetT = int; + + // The input type + using InputValueT = cub::detail::value_t; + + // The output tuple type + using OutputTupleT = + cub::detail::non_void_value_t>; + + using AccumT = OutputTupleT; + + // The output value type + using OutputValueT = typename OutputTupleT::Value; + + using InitT = detail::reduce::empty_problem_init_t; + + // Wrapped input iterator to produce index-value tuples + using ArgIndexInputIteratorT = + ArgIndexInputIterator; + + ArgIndexInputIteratorT d_indexed_in(d_in); + + // Initial value + // TODO Address https://github.com/NVIDIA/cub/issues/651 + InitT initial_value{AccumT(1, Traits::Lowest())}; + + return DispatchReduce::Dispatch(d_temp_storage, + temp_storage_bytes, + d_indexed_in, + d_out, + num_items, + cub::ArgMax(), + initial_value, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t ArgMax(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OutputIteratorT d_out, + int num_items, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return ArgMax(d_temp_storage, + temp_storage_bytes, + d_in, + d_out, + num_items, + stream); + } + + /** + * @brief Reduces segments of values, where segments are demarcated by + * corresponding runs of identical keys. + * + * @par + * This operation computes segmented reductions within `d_values_in` using + * the specified binary `reduction_op` functor. The segments are identified + * by "runs" of corresponding keys in `d_keys_in`, where runs are maximal + * ranges of consecutive, identical keys. For the *i*th run + * encountered, the first key of the run and the corresponding value + * aggregate of that run are written to `d_unique_out[i] and + * `d_aggregates_out[i]`, respectively. The total number of runs encountered + * is written to `d_num_runs_out`. + * + * @par + * - The `==` equality operator is used to determine whether keys are + * equivalent + * - Provides "run-to-run" determinism for pseudo-associative reduction + * (e.g., addition of floating point types) on the same GPU device. + * However, results for pseudo-associative reduction may be inconsistent + * from one device to a another device of a different compute-capability + * because CUB can employ different tile-sizing for different architectures. + * - Let `out` be any of + * `[d_unique_out, d_unique_out + *d_num_runs_out)` + * `[d_aggregates_out, d_aggregates_out + *d_num_runs_out)` + * `d_num_runs_out`. The ranges represented by `out` shall not overlap + * `[d_keys_in, d_keys_in + num_items)`, + * `[d_values_in, d_values_in + num_items)` nor `out` in any way. + * - @devicestorage + * + * @par Performance + * The following chart illustrates reduction-by-key (sum) performance across + * different CUDA architectures for `fp32` and `fp64` values, respectively. + * Segments are identified by `int32` keys, and have lengths uniformly + * sampled from `[1, 1000]`. + * + * @image html reduce_by_key_fp32_len_500.png + * @image html reduce_by_key_fp64_len_500.png + * + * @par + * The following charts are similar, but with segment lengths uniformly + * sampled from [1,10]: + * + * @image html reduce_by_key_fp32_len_5.png + * @image html reduce_by_key_fp64_len_5.png + * + * @par Snippet + * The code snippet below illustrates the segmented reduction of `int` values + * grouped by runs of associated `int` keys. + * @par + * @code + * #include + * // or equivalently + * + * // CustomMin functor + * struct CustomMin + * { + * template + * CUB_RUNTIME_FUNCTION __forceinline__ + * T operator()(const T &a, const T &b) const { + * return (b < a) ? b : a; + * } + * }; + * + * // Declare, allocate, and initialize device-accessible pointers + * // for input and output + * int num_items; // e.g., 8 + * int *d_keys_in; // e.g., [0, 2, 2, 9, 5, 5, 5, 8] + * int *d_values_in; // e.g., [0, 7, 1, 6, 2, 5, 3, 4] + * int *d_unique_out; // e.g., [-, -, -, -, -, -, -, -] + * int *d_aggregates_out; // e.g., [-, -, -, -, -, -, -, -] + * int *d_num_runs_out; // e.g., [-] + * CustomMin reduction_op; + * ... + * + * // Determine temporary device storage requirements + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceReduce::ReduceByKey( + * d_temp_storage, temp_storage_bytes, + * d_keys_in, d_unique_out, d_values_in, + * d_aggregates_out, d_num_runs_out, reduction_op, num_items); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run reduce-by-key + * cub::DeviceReduce::ReduceByKey( + * d_temp_storage, temp_storage_bytes, + * d_keys_in, d_unique_out, d_values_in, + * d_aggregates_out, d_num_runs_out, reduction_op, num_items); + * + * // d_unique_out <-- [0, 2, 9, 5, 8] + * // d_aggregates_out <-- [0, 1, 6, 2, 4] + * // d_num_runs_out <-- [5] + * @endcode + * + * @tparam KeysInputIteratorT + * **[inferred]** Random-access input iterator type for reading input + * keys \iterator + * + * @tparam UniqueOutputIteratorT + * **[inferred]** Random-access output iterator type for writing unique + * output keys \iterator + * + * @tparam ValuesInputIteratorT + * **[inferred]** Random-access input iterator type for reading input + * values \iterator + * + * @tparam AggregatesOutputIterator + * **[inferred]** Random-access output iterator type for writing output + * value aggregates \iterator + * + * @tparam NumRunsOutputIteratorT + * **[inferred]** Output iterator type for recording the number of runs + * encountered \iterator + * + * @tparam ReductionOpT + * **[inferred]*8 Binary reduction functor type having member + * `T operator()(const T &a, const T &b)` + * + * @tparam NumItemsT **[inferred]** Type of num_items + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no work + * is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in] d_keys_in + * Pointer to the input sequence of keys + * + * @param[out] d_unique_out + * Pointer to the output sequence of unique keys (one key per run) + * + * @param[in] d_values_in + * Pointer to the input sequence of corresponding values + * + * @param[out] d_aggregates_out + * Pointer to the output sequence of value aggregates + * (one aggregate per run) + * + * @param[out] d_num_runs_out + * Pointer to total number of runs encountered + * (i.e., the length of `d_unique_out`) + * + * @param[in] reduction_op + * Binary reduction functor + * + * @param[in] num_items + * Total number of associated key+value pairs + * (i.e., the length of `d_in_keys` and `d_in_values`) + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. + * Default is stream0. + */ + template + CUB_RUNTIME_FUNCTION __forceinline__ static cudaError_t + ReduceByKey(void *d_temp_storage, + size_t &temp_storage_bytes, + KeysInputIteratorT d_keys_in, + UniqueOutputIteratorT d_unique_out, + ValuesInputIteratorT d_values_in, + AggregatesOutputIteratorT d_aggregates_out, + NumRunsOutputIteratorT d_num_runs_out, + ReductionOpT reduction_op, + NumItemsT num_items, + cudaStream_t stream = 0) + { + // Signed integer type for global offsets + using OffsetT = typename detail::ChooseOffsetT::Type; + + // FlagT iterator type (not used) + + // Selection op (not used) + + // Default == operator + typedef Equality EqualityOp; + + return DispatchReduceByKey::Dispatch(d_temp_storage, + temp_storage_bytes, + d_keys_in, + d_unique_out, + d_values_in, + d_aggregates_out, + d_num_runs_out, + EqualityOp(), + reduction_op, + static_cast(num_items), + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION __forceinline__ static cudaError_t + ReduceByKey(void *d_temp_storage, + size_t &temp_storage_bytes, + KeysInputIteratorT d_keys_in, + UniqueOutputIteratorT d_unique_out, + ValuesInputIteratorT d_values_in, + AggregatesOutputIteratorT d_aggregates_out, + NumRunsOutputIteratorT d_num_runs_out, + ReductionOpT reduction_op, + int num_items, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return ReduceByKey(d_temp_storage, + temp_storage_bytes, + d_keys_in, + d_unique_out, + d_values_in, + d_aggregates_out, + d_num_runs_out, + reduction_op, + num_items, + stream); + } +}; + +/** + * @example example_device_reduce.cu + */ + +CUB_NAMESPACE_END + diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/device/device_run_length_encode.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/device/device_run_length_encode.cuh new file mode 100644 index 0000000000000000000000000000000000000000..813343d65f1a0552ac8795289b7182a056526ab2 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/device/device_run_length_encode.cuh @@ -0,0 +1,441 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2022, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * @file cub::DeviceRunLengthEncode provides device-wide, parallel operations + * for computing a run-length encoding across a sequence of data items + * residing within device-accessible memory. + */ + +#pragma once + +#include +#include + +#include +#include +#include +#include + +CUB_NAMESPACE_BEGIN + + +/** + * @brief DeviceRunLengthEncode provides device-wide, parallel operations for + * demarcating "runs" of same-valued items within a sequence residing + * within device-accessible memory. ![](run_length_encode_logo.png) + * @ingroup SingleModule + * + * @par Overview + * A *run-length encoding* + * computes a simple compressed representation of a sequence of input elements + * such that each maximal "run" of consecutive same-valued data items is + * encoded as a single data value along with a count of the elements in that + * run. + * + * @par Usage Considerations + * @cdp_class{DeviceRunLengthEncode} + * + * @par Performance + * @linear_performance{run-length encode} + * + * @par + * The following chart illustrates DeviceRunLengthEncode::RunLengthEncode + * performance across different CUDA architectures for `int32` items. + * Segments have lengths uniformly sampled from `[1, 1000]`. + * + * @image html rle_int32_len_500.png + * + * @par + * @plots_below + */ +struct DeviceRunLengthEncode +{ + /** + * @brief Computes a run-length encoding of the sequence \p d_in. + * + * @par + * - For the *i*th run encountered, the first key of the run and + * its length are written to `d_unique_out[i]` and `d_counts_out[i]`, + * respectively. + * - The total number of runs encountered is written to `d_num_runs_out`. + * - The `==` equality operator is used to determine whether values are + * equivalent + * - In-place operations are not supported. There must be no overlap between + * any of the provided ranges: + * - `[d_unique_out, d_unique_out + *d_num_runs_out)` + * - `[d_counts_out, d_counts_out + *d_num_runs_out)` + * - `[d_num_runs_out, d_num_runs_out + 1)` + * - `[d_in, d_in + num_items)` + * - @devicestorage + * + * @par Performance + * The following charts illustrate saturated encode performance across + * different CUDA architectures for `int32` and `int64` items, respectively. + * Segments have lengths uniformly sampled from [1,1000]. + * + * @image html rle_int32_len_500.png + * @image html rle_int64_len_500.png + * + * @par + * The following charts are similar, but with segment lengths uniformly + * sampled from [1,10]: + * + * @image html rle_int32_len_5.png + * @image html rle_int64_len_5.png + * + * @par Snippet + * The code snippet below illustrates the run-length encoding of a sequence + * of `int` values. + * @par + * @code + * #include + * // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers for + * // input and output + * int num_items; // e.g., 8 + * int *d_in; // e.g., [0, 2, 2, 9, 5, 5, 5, 8] + * int *d_unique_out; // e.g., [ , , , , , , , ] + * int *d_counts_out; // e.g., [ , , , , , , , ] + * int *d_num_runs_out; // e.g., [ ] + * ... + * + * // Determine temporary device storage requirements + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceRunLengthEncode::Encode( + * d_temp_storage, temp_storage_bytes, + * d_in, d_unique_out, d_counts_out, d_num_runs_out, num_items); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run encoding + * cub::DeviceRunLengthEncode::Encode( + * d_temp_storage, temp_storage_bytes, + * d_in, d_unique_out, d_counts_out, d_num_runs_out, num_items); + * + * // d_unique_out <-- [0, 2, 9, 5, 8] + * // d_counts_out <-- [1, 2, 1, 3, 1] + * // d_num_runs_out <-- [5] + * @endcode + * + * @tparam InputIteratorT + * **[inferred]** Random-access input iterator type for reading input + * items \iterator + * + * @tparam UniqueOutputIteratorT + * **[inferred]** Random-access output iterator type for writing unique + * output items \iterator + * + * @tparam LengthsOutputIteratorT + * **[inferred]** Random-access output iterator type for writing output + * counts \iterator + * + * @tparam NumRunsOutputIteratorT + * **[inferred]** Output iterator type for recording the number of runs + * encountered \iterator + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no work + * is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in] d_in + * Pointer to the input sequence of keys + * + * @param[out] d_unique_out + * Pointer to the output sequence of unique keys (one key per run) + * + * @param[out] d_counts_out + * Pointer to the output sequence of run-lengths (one count per run) + * + * @param[out] d_num_runs_out + * Pointer to total number of runs + * + * @param[in] num_items + * Total number of associated key+value pairs (i.e., the length of + * `d_in_keys` and `d_in_values`) + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. + * Default is stream0. + */ + template + CUB_RUNTIME_FUNCTION __forceinline__ static cudaError_t + Encode(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + UniqueOutputIteratorT d_unique_out, + LengthsOutputIteratorT d_counts_out, + NumRunsOutputIteratorT d_num_runs_out, + int num_items, + cudaStream_t stream = 0) + { + using OffsetT = int; // Signed integer type for global offsets + using EqualityOp = Equality; // Default == operator + using ReductionOp = cub::Sum; // Value reduction operator + + // The lengths output value type + using LengthT = + cub::detail::non_void_value_t; + + // Generator type for providing 1s values for run-length reduction + using LengthsInputIteratorT = ConstantInputIterator; + + return DispatchReduceByKey::Dispatch(d_temp_storage, + temp_storage_bytes, + d_in, + d_unique_out, + LengthsInputIteratorT( + (LengthT)1), + d_counts_out, + d_num_runs_out, + EqualityOp(), + ReductionOp(), + num_items, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION __forceinline__ static cudaError_t + Encode(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + UniqueOutputIteratorT d_unique_out, + LengthsOutputIteratorT d_counts_out, + NumRunsOutputIteratorT d_num_runs_out, + int num_items, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return Encode(d_temp_storage, + temp_storage_bytes, + d_in, + d_unique_out, + d_counts_out, + d_num_runs_out, + num_items, + stream); + } + + /** + * @brief Enumerates the starting offsets and lengths of all non-trivial runs + * (of `length > 1`) of same-valued keys in the sequence `d_in`. + * + * @par + * - For the *i*th non-trivial run, the run's starting offset and + * its length are written to `d_offsets_out[i]` and `d_lengths_out[i]`, + * respectively. + * - The total number of runs encountered is written to `d_num_runs_out`. + * - The `==` equality operator is used to determine whether values are + * equivalent + * - In-place operations are not supported. There must be no overlap between + * any of the provided ranges: + * - `[d_offsets_out, d_offsets_out + *d_num_runs_out)` + * - `[d_lengths_out, d_lengths_out + *d_num_runs_out)` + * - `[d_num_runs_out, d_num_runs_out + 1)` + * - `[d_in, d_in + num_items)` + * - @devicestorage + * + * @par Performance + * + * @par Snippet + * The code snippet below illustrates the identification of non-trivial runs + * within a sequence of `int` values. + * @par + * @code + * #include + * // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers + * // for input and output + * int num_items; // e.g., 8 + * int *d_in; // e.g., [0, 2, 2, 9, 5, 5, 5, 8] + * int *d_offsets_out; // e.g., [ , , , , , , , ] + * int *d_lengths_out; // e.g., [ , , , , , , , ] + * int *d_num_runs_out; // e.g., [ ] + * ... + * + * // Determine temporary device storage requirements + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceRunLengthEncode::NonTrivialRuns( + * d_temp_storage, temp_storage_bytes, + * d_in, d_offsets_out, d_lengths_out, d_num_runs_out, num_items); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run encoding + * cub::DeviceRunLengthEncode::NonTrivialRuns( + * d_temp_storage, temp_storage_bytes, + * d_in, d_offsets_out, d_lengths_out, d_num_runs_out, num_items); + * + * // d_offsets_out <-- [1, 4] + * // d_lengths_out <-- [2, 3] + * // d_num_runs_out <-- [2] + * @endcode + * + * @tparam InputIteratorT + * **[inferred]** Random-access input iterator type for reading input + * items \iterator + * + * @tparam OffsetsOutputIteratorT + * **[inferred]** Random-access output iterator type for writing run-offset + * values \iterator + * + * @tparam LengthsOutputIteratorT + * **[inferred]** Random-access output iterator type for writing run-length + * values \iterator + * + * @tparam NumRunsOutputIteratorT + * **[inferred]** Output iterator type for recording the number of runs + * encountered \iterator + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no work + * is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in] d_in + * Pointer to input sequence of data items + * + * @param[out] d_offsets_out + * Pointer to output sequence of run-offsets + * (one offset per non-trivial run) + * + * @param[out] d_lengths_out + * Pointer to output sequence of run-lengths + * (one count per non-trivial run) + * + * @param[out] d_num_runs_out + * Pointer to total number of runs (i.e., length of `d_offsets_out`) + * + * @param[in] num_items + * Total number of associated key+value pairs (i.e., the length of + * `d_in_keys` and `d_in_values`) + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. + * Default is stream0. + */ + template + CUB_RUNTIME_FUNCTION __forceinline__ static cudaError_t + NonTrivialRuns(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OffsetsOutputIteratorT d_offsets_out, + LengthsOutputIteratorT d_lengths_out, + NumRunsOutputIteratorT d_num_runs_out, + int num_items, + cudaStream_t stream = 0) + { + using OffsetT = int; // Signed integer type for global offsets + using EqualityOp = Equality; // Default == operator + + return DeviceRleDispatch::Dispatch(d_temp_storage, + temp_storage_bytes, + d_in, + d_offsets_out, + d_lengths_out, + d_num_runs_out, + EqualityOp(), + num_items, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION __forceinline__ static cudaError_t + NonTrivialRuns(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OffsetsOutputIteratorT d_offsets_out, + LengthsOutputIteratorT d_lengths_out, + NumRunsOutputIteratorT d_num_runs_out, + int num_items, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return NonTrivialRuns(d_temp_storage, + temp_storage_bytes, + d_in, + d_offsets_out, + d_lengths_out, + d_num_runs_out, + num_items, + stream); + } +}; + +CUB_NAMESPACE_END + + diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/device/device_scan.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/device/device_scan.cuh new file mode 100644 index 0000000000000000000000000000000000000000..20cb8ba872fe4db1430236e35080961269736276 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/device/device_scan.cuh @@ -0,0 +1,2268 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2022, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * @file cub::DeviceScan provides device-wide, parallel operations for + * computing a prefix scan across a sequence of data items residing + * within device-accessible memory. + */ + +#pragma once + +#include +#include +#include +#include +#include + +CUB_NAMESPACE_BEGIN + + +/** + * @brief DeviceScan provides device-wide, parallel operations for computing a + * prefix scan across a sequence of data items residing within + * device-accessible memory. ![](device_scan.png) + * + * @ingroup SingleModule + * + * @par Overview + * Given a sequence of input elements and a binary reduction operator, a + * [*prefix scan*](http://en.wikipedia.org/wiki/Prefix_sum) produces an output + * sequence where each element is computed to be the reduction of the elements + * occurring earlier in the input sequence. *Prefix sum* connotes a prefix scan + * with the addition operator. The term *inclusive* indicates that the + * *i*th output reduction incorporates the *i*th input. + * The term *exclusive* indicates the *i*th input is not + * incorporated into the *i*th output reduction. When the input and + * output sequences are the same, the scan is performed in-place. + * + * @par + * As of CUB 1.0.1 (2013), CUB's device-wide scan APIs have implemented our + * *"decoupled look-back"* algorithm for performing global prefix scan with + * only a single pass through the input data, as described in our 2016 technical + * report [1]. The central idea is to leverage a small, constant factor of + * redundant work in order to overlap the latencies of global prefix + * propagation with local computation. As such, our algorithm requires only + * ~2*n* data movement (*n* inputs are read, *n* outputs are written), and + * typically proceeds at "memcpy" speeds. Our algorithm supports inplace + * operations. + * + * @par + * [1] [Duane Merrill and Michael Garland. "Single-pass Parallel Prefix Scan with Decoupled Look-back", NVIDIA Technical Report NVR-2016-002, 2016.](https://research.nvidia.com/publication/single-pass-parallel-prefix-scan-decoupled-look-back) + * + * @par Usage Considerations + * @cdp_class{DeviceScan} + * + * @par Performance + * @linear_performance{prefix scan} + * + * @par + * The following chart illustrates DeviceScan::ExclusiveSum performance across + * different CUDA architectures for `int32` keys. + * @plots_below + * + * @image html scan_int32.png + * + */ +struct DeviceScan +{ + /******************************************************************//** + * \name Exclusive scans + *********************************************************************/ + //@{ + + /** + * @brief Computes a device-wide exclusive prefix sum. The value of `0` is + * applied as the initial value, and is assigned to `*d_out`. + * + * @par + * - Supports non-commutative sum operators. + * - Results are not deterministic for pseudo-associative operators (e.g., + * addition of floating-point types). Results for pseudo-associative + * operators may vary from run to run. Additional details can be found in + * the [decoupled look-back] description. + * - When `d_in` and `d_out` are equal, the scan is performed in-place. The + * range `[d_in, d_in + num_items)` and `[d_out, d_out + num_items)` + * shall not overlap in any other way. + * - @devicestorage + * + * @par Performance + * The following charts illustrate saturated exclusive sum performance across + * different CUDA architectures for `int32` and `int64` items, respectively. + * + * @image html scan_int32.png + * @image html scan_int64.png + * + * @par Snippet + * The code snippet below illustrates the exclusive prefix sum of an `int` + * device vector. + * @par + * @code + * #include // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers for + * // input and output + * int num_items; // e.g., 7 + * int *d_in; // e.g., [8, 6, 7, 5, 3, 0, 9] + * int *d_out; // e.g., [ , , , , , , ] + * ... + * + * // Determine temporary device storage requirements + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceScan::ExclusiveSum( + * d_temp_storage, temp_storage_bytes, + * d_in, d_out, num_items); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run exclusive prefix sum + * cub::DeviceScan::ExclusiveSum( + * d_temp_storage, temp_storage_bytes, + * d_in, d_out, num_items); + * + * // d_out <-- [0, 8, 14, 21, 26, 29, 29] + * + * @endcode + * + * @tparam InputIteratorT + * **[inferred]** Random-access input iterator type for reading scan + * inputs \iterator + * + * @tparam OutputIteratorT + * **[inferred]** Random-access output iterator type for writing scan + * outputs \iterator + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no + * work is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in] d_in + * Random-access iterator to the input sequence of data items + * + * @param[out] d_out + * Random-access iterator to the output sequence of data items + * + * @param[in] num_items + * Total number of input items (i.e., the length of `d_in`) + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. + * Default is stream0. + * + * [decoupled look-back]: https://research.nvidia.com/publication/single-pass-parallel-prefix-scan-decoupled-look-back + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + ExclusiveSum(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OutputIteratorT d_out, + int num_items, + cudaStream_t stream = 0) + { + // Signed integer type for global offsets + using OffsetT = int; + using InitT = cub::detail::value_t; + + // Initial value + InitT init_value{}; + + return DispatchScan< + InputIteratorT, OutputIteratorT, Sum, detail::InputValue, + OffsetT>::Dispatch(d_temp_storage, temp_storage_bytes, d_in, d_out, + Sum(), detail::InputValue(init_value), + num_items, stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + ExclusiveSum(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OutputIteratorT d_out, + int num_items, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return ExclusiveSum(d_temp_storage, + temp_storage_bytes, + d_in, + d_out, + num_items, + stream); + } + + /** + * @brief Computes a device-wide exclusive prefix sum in-place. The value of + * `0` is applied as the initial value, and is assigned to `*d_data`. + * + * @par + * - Supports non-commutative sum operators. + * - Results are not deterministic for pseudo-associative operators (e.g., + * addition of floating-point types). Results for pseudo-associative + * operators may vary from run to run. Additional details can be found in + * the [decoupled look-back] description. + * - @devicestorage + * + * @par Performance + * The following charts illustrate saturated exclusive sum performance across + * different CUDA architectures for `int32` and `int64` items, respectively. + * + * @image html scan_int32.png + * @image html scan_int64.png + * + * @par Snippet + * The code snippet below illustrates the exclusive prefix sum of an `int` + * device vector. + * @par + * @code + * #include // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers for + * // input and output + * int num_items; // e.g., 7 + * int *d_data; // e.g., [8, 6, 7, 5, 3, 0, 9] + * ... + * + * // Determine temporary device storage requirements + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceScan::ExclusiveSum( + * d_temp_storage, temp_storage_bytes, + * d_data, num_items); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run exclusive prefix sum + * cub::DeviceScan::ExclusiveSum( + * d_temp_storage, temp_storage_bytes, + * d_data, num_items); + * + * // d_data <-- [0, 8, 14, 21, 26, 29, 29] + * + * @endcode + * + * @tparam IteratorT + * **[inferred]** Random-access iterator type for reading scan + * inputs and wrigin scan outputs + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no + * work is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in,out] d_data + * Random-access iterator to the sequence of data items + * + * @param[in] num_items + * Total number of input items (i.e., the length of `d_in`) + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. + * Default is stream0. + * + * [decoupled look-back]: https://research.nvidia.com/publication/single-pass-parallel-prefix-scan-decoupled-look-back + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + ExclusiveSum(void *d_temp_storage, + size_t &temp_storage_bytes, + IteratorT d_data, + int num_items, + cudaStream_t stream = 0) + { + return ExclusiveSum(d_temp_storage, + temp_storage_bytes, + d_data, + d_data, + num_items, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + ExclusiveSum(void *d_temp_storage, + size_t &temp_storage_bytes, + IteratorT d_data, + int num_items, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return ExclusiveSum(d_temp_storage, + temp_storage_bytes, + d_data, + num_items, + stream); + } + + /** + * @brief Computes a device-wide exclusive prefix scan using the specified + * binary `scan_op` functor. The `init_value` value is applied as + * the initial value, and is assigned to `*d_out`. + * + * @par + * - Supports non-commutative scan operators. + * - Results are not deterministic for pseudo-associative operators (e.g., + * addition of floating-point types). Results for pseudo-associative + * operators may vary from run to run. Additional details can be found in + * the [decoupled look-back] description. + * - When `d_in` and `d_out` are equal, the scan is performed in-place. The + * range `[d_in, d_in + num_items)` and `[d_out, d_out + num_items)` + * shall not overlap in any other way. + * - @devicestorage + * + * @par Snippet + * The code snippet below illustrates the exclusive prefix min-scan of an + * `int` device vector + * @par + * @code + * #include // or equivalently + * #include // for INT_MAX + * + * // CustomMin functor + * struct CustomMin + * { + * template + * CUB_RUNTIME_FUNCTION __forceinline__ + * T operator()(const T &a, const T &b) const { + * return (b < a) ? b : a; + * } + * }; + * + * // Declare, allocate, and initialize device-accessible pointers for + * // input and output + * int num_items; // e.g., 7 + * int *d_in; // e.g., [8, 6, 7, 5, 3, 0, 9] + * int *d_out; // e.g., [ , , , , , , ] + * CustomMin min_op; + * ... + * + * // Determine temporary device storage requirements for exclusive + * // prefix scan + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceScan::ExclusiveScan( + * d_temp_storage, temp_storage_bytes, + * d_in, d_out, min_op, (int) INT_MAX, num_items); + * + * // Allocate temporary storage for exclusive prefix scan + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run exclusive prefix min-scan + * cub::DeviceScan::ExclusiveScan( + * d_temp_storage, temp_storage_bytes, + * d_in, d_out, min_op, (int) INT_MAX, num_items); + * + * // d_out <-- [2147483647, 8, 6, 6, 5, 3, 0] + * + * @endcode + * + * @tparam InputIteratorT + * **[inferred]** Random-access input iterator type for reading scan + * inputs \iterator + * + * @tparam OutputIteratorT + * **[inferred]** Random-access output iterator type for writing scan + * outputs \iterator + * + * @tparam ScanOp + * **[inferred]** Binary scan functor type having member + * `T operator()(const T &a, const T &b)` + * + * @tparam InitValueT + * **[inferred]** Type of the `init_value` used Binary scan functor type + * having member `T operator()(const T &a, const T &b)` + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no + * work is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in] d_in + * Random-access iterator to the input sequence of data items + * + * @param[out] d_out + * Random-access iterator to the output sequence of data items + * + * @param[in] scan_op + * Binary scan functor + * + * @param[in] init_value + * Initial value to seed the exclusive scan (and is assigned to *d_out) + * + * @param[in] num_items + * Total number of input items (i.e., the length of \p d_in) + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. Default is + * stream0. + * + * [decoupled look-back]: https://research.nvidia.com/publication/single-pass-parallel-prefix-scan-decoupled-look-back + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + ExclusiveScan(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OutputIteratorT d_out, + ScanOpT scan_op, + InitValueT init_value, + int num_items, + cudaStream_t stream = 0) + { + // Signed integer type for global offsets + using OffsetT = int ; + + return DispatchScan, + OffsetT>::Dispatch(d_temp_storage, + temp_storage_bytes, + d_in, + d_out, + scan_op, + detail::InputValue( + init_value), + num_items, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + ExclusiveScan(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OutputIteratorT d_out, + ScanOpT scan_op, + InitValueT init_value, + int num_items, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return ExclusiveScan( + d_temp_storage, + temp_storage_bytes, + d_in, + d_out, + scan_op, + init_value, + num_items, + stream); + } + + /** + * @brief Computes a device-wide exclusive prefix scan using the specified + * binary `scan_op` functor. The `init_value` value is applied as + * the initial value, and is assigned to `*d_data`. + * + * @par + * - Supports non-commutative scan operators. + * - Results are not deterministic for pseudo-associative operators (e.g., + * addition of floating-point types). Results for pseudo-associative + * operators may vary from run to run. Additional details can be found in + * the [decoupled look-back] description. + * - @devicestorage + * + * @par Snippet + * The code snippet below illustrates the exclusive prefix min-scan of an + * `int` device vector + * @par + * @code + * #include // or equivalently + * #include // for INT_MAX + * + * // CustomMin functor + * struct CustomMin + * { + * template + * CUB_RUNTIME_FUNCTION __forceinline__ + * T operator()(const T &a, const T &b) const { + * return (b < a) ? b : a; + * } + * }; + * + * // Declare, allocate, and initialize device-accessible pointers for + * // input and output + * int num_items; // e.g., 7 + * int *d_data; // e.g., [8, 6, 7, 5, 3, 0, 9] + * CustomMin min_op; + * ... + * + * // Determine temporary device storage requirements for exclusive + * // prefix scan + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceScan::ExclusiveScan( + * d_temp_storage, temp_storage_bytes, + * d_data, min_op, (int) INT_MAX, num_items); + * + * // Allocate temporary storage for exclusive prefix scan + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run exclusive prefix min-scan + * cub::DeviceScan::ExclusiveScan( + * d_temp_storage, temp_storage_bytes, + * d_data, min_op, (int) INT_MAX, num_items); + * + * // d_data <-- [2147483647, 8, 6, 6, 5, 3, 0] + * + * @endcode + * + * @tparam IteratorT + * **[inferred]** Random-access input iterator type for reading scan + * inputs and writing scan outputs + * + * @tparam ScanOp + * **[inferred]** Binary scan functor type having member + * `T operator()(const T &a, const T &b)` + * + * @tparam InitValueT + * **[inferred]** Type of the `init_value` used Binary scan functor type + * having member `T operator()(const T &a, const T &b)` + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no + * work is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in,out] d_data + * Random-access iterator to the sequence of data items + * + * @param[in] scan_op + * Binary scan functor + * + * @param[in] init_value + * Initial value to seed the exclusive scan (and is assigned to *d_out) + * + * @param[in] num_items + * Total number of input items (i.e., the length of \p d_in) + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. Default is + * stream0. + * + * [decoupled look-back]: https://research.nvidia.com/publication/single-pass-parallel-prefix-scan-decoupled-look-back + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + ExclusiveScan(void *d_temp_storage, + size_t &temp_storage_bytes, + IteratorT d_data, + ScanOpT scan_op, + InitValueT init_value, + int num_items, + cudaStream_t stream = 0) + { + return ExclusiveScan(d_temp_storage, + temp_storage_bytes, + d_data, + d_data, + scan_op, + init_value, + num_items, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + ExclusiveScan(void *d_temp_storage, + size_t &temp_storage_bytes, + IteratorT d_data, + ScanOpT scan_op, + InitValueT init_value, + int num_items, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return ExclusiveScan(d_temp_storage, + temp_storage_bytes, + d_data, + scan_op, + init_value, + num_items, + stream); + } + + /** + * @brief Computes a device-wide exclusive prefix scan using the specified + * binary `scan_op` functor. The `init_value` value is provided as + * a future value. + * + * @par + * - Supports non-commutative scan operators. + * - Results are not deterministic for pseudo-associative operators (e.g., + * addition of floating-point types). Results for pseudo-associative + * operators may vary from run to run. Additional details can be found in + * the [decoupled look-back] description. + * - When `d_in` and `d_out` are equal, the scan is performed in-place. The + * range `[d_in, d_in + num_items)` and `[d_out, d_out + num_items)` + * shall not overlap in any other way. + * - @devicestorage + * + * @par Snippet + * The code snippet below illustrates the exclusive prefix min-scan of an + * `int` device vector + * @par + * @code + * #include // or equivalently + * #include // for INT_MAX + * + * // CustomMin functor + * struct CustomMin + * { + * template + * CUB_RUNTIME_FUNCTION __forceinline__ + * T operator()(const T &a, const T &b) const { + * return (b < a) ? b : a; + * } + * }; + * + * // Declare, allocate, and initialize device-accessible pointers for + * // input and output + * int num_items; // e.g., 7 + * int *d_in; // e.g., [8, 6, 7, 5, 3, 0, 9] + * int *d_out; // e.g., [ , , , , , , ] + * int *d_init_iter; // e.g., INT_MAX + * CustomMin min_op; + * + * auto future_init_value = + * cub::FutureValue(d_init_iter); + * + * ... + * + * // Determine temporary device storage requirements for exclusive + * // prefix scan + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceScan::ExclusiveScan( + * d_temp_storage, temp_storage_bytes, + * d_in, d_out, min_op, future_init_value, num_items); + * + * // Allocate temporary storage for exclusive prefix scan + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run exclusive prefix min-scan + * cub::DeviceScan::ExclusiveScan( + * d_temp_storage, temp_storage_bytes, + * d_in, d_out, min_op, future_init_value, num_items); + * + * // d_out <-- [2147483647, 8, 6, 6, 5, 3, 0] + * + * @endcode + * + * @tparam InputIteratorT + * **[inferred]** Random-access input iterator type for reading scan + * inputs \iterator + * + * @tparam OutputIteratorT + * **[inferred]** Random-access output iterator type for writing scan + * outputs \iterator + * + * @tparam ScanOp + * **[inferred]** Binary scan functor type having member + * `T operator()(const T &a, const T &b)` + * + * @tparam InitValueT + * **[inferred]** Type of the `init_value` used Binary scan functor type + * having member `T operator()(const T &a, const T &b)` + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no work + * is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of \p d_temp_storage allocation + * + * @param[in] d_in + * Pointer to the input sequence of data items + * + * @param[out] d_out + * Pointer to the output sequence of data items + * + * @param[in] scan_op + * Binary scan functor + * + * @param[in] init_value + * Initial value to seed the exclusive scan (and is assigned to `*d_out`) + * + * @param[in] num_items + * Total number of input items (i.e., the length of `d_in`) + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. + * Default is stream0. + * + * [decoupled look-back]: https://research.nvidia.com/publication/single-pass-parallel-prefix-scan-decoupled-look-back + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + ExclusiveScan(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OutputIteratorT d_out, + ScanOpT scan_op, + FutureValue init_value, + int num_items, + cudaStream_t stream = 0) + { + // Signed integer type for global offsets + using OffsetT = int; + + return DispatchScan, + OffsetT>::Dispatch(d_temp_storage, + temp_storage_bytes, + d_in, + d_out, + scan_op, + detail::InputValue( + init_value), + num_items, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + ExclusiveScan(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OutputIteratorT d_out, + ScanOpT scan_op, + FutureValue init_value, + int num_items, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return ExclusiveScan(d_temp_storage, + temp_storage_bytes, + d_in, + d_out, + scan_op, + init_value, + num_items, + stream); + } + + /** + * @brief Computes a device-wide exclusive prefix scan using the specified + * binary `scan_op` functor. The `init_value` value is provided as + * a future value. + * + * @par + * - Supports non-commutative scan operators. + * - Results are not deterministic for pseudo-associative operators (e.g., + * addition of floating-point types). Results for pseudo-associative + * operators may vary from run to run. Additional details can be found in + * the [decoupled look-back] description. + * - @devicestorage + * + * @par Snippet + * The code snippet below illustrates the exclusive prefix min-scan of an + * `int` device vector + * @par + * @code + * #include // or equivalently + * #include // for INT_MAX + * + * // CustomMin functor + * struct CustomMin + * { + * template + * CUB_RUNTIME_FUNCTION __forceinline__ + * T operator()(const T &a, const T &b) const { + * return (b < a) ? b : a; + * } + * }; + * + * // Declare, allocate, and initialize device-accessible pointers for + * // input and output + * int num_items; // e.g., 7 + * int *d_data; // e.g., [8, 6, 7, 5, 3, 0, 9] + * int *d_init_iter; // e.g., INT_MAX + * CustomMin min_op; + * + * auto future_init_value = + * cub::FutureValue(d_init_iter); + * + * ... + * + * // Determine temporary device storage requirements for exclusive + * // prefix scan + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceScan::ExclusiveScan( + * d_temp_storage, temp_storage_bytes, + * d_data, min_op, future_init_value, num_items); + * + * // Allocate temporary storage for exclusive prefix scan + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run exclusive prefix min-scan + * cub::DeviceScan::ExclusiveScan( + * d_temp_storage, temp_storage_bytes, + * d_data, min_op, future_init_value, num_items); + * + * // d_data <-- [2147483647, 8, 6, 6, 5, 3, 0] + * + * @endcode + * + * @tparam IteratorT + * **[inferred]** Random-access input iterator type for reading scan + * inputs and writing scan outputs + * + * @tparam ScanOp + * **[inferred]** Binary scan functor type having member + * `T operator()(const T &a, const T &b)` + * + * @tparam InitValueT + * **[inferred]** Type of the `init_value` used Binary scan functor type + * having member `T operator()(const T &a, const T &b)` + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no work + * is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of \p d_temp_storage allocation + * + * @param[in,out] d_data + * Pointer to the sequence of data items + * + * @param[in] scan_op + * Binary scan functor + * + * @param[in] init_value + * Initial value to seed the exclusive scan (and is assigned to `*d_out`) + * + * @param[in] num_items + * Total number of input items (i.e., the length of `d_in`) + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. + * Default is stream0. + * + * [decoupled look-back]: https://research.nvidia.com/publication/single-pass-parallel-prefix-scan-decoupled-look-back + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + ExclusiveScan(void *d_temp_storage, + size_t &temp_storage_bytes, + IteratorT d_data, + ScanOpT scan_op, + FutureValue init_value, + int num_items, + cudaStream_t stream = 0) + { + return ExclusiveScan(d_temp_storage, + temp_storage_bytes, + d_data, + d_data, + scan_op, + init_value, + num_items, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + ExclusiveScan(void *d_temp_storage, + size_t &temp_storage_bytes, + IteratorT d_data, + ScanOpT scan_op, + FutureValue init_value, + int num_items, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return ExclusiveScan( + d_temp_storage, + temp_storage_bytes, + d_data, + scan_op, + init_value, + num_items, + stream); + } + + //@} end member group + /******************************************************************//** + * @name Inclusive scans + *********************************************************************/ + //@{ + + + /** + * @brief Computes a device-wide inclusive prefix sum. + * + * @par + * - Supports non-commutative sum operators. + * - Results are not deterministic for pseudo-associative operators (e.g., + * addition of floating-point types). Results for pseudo-associative + * operators may vary from run to run. Additional details can be found in + * the [decoupled look-back] description. + * - When `d_in` and `d_out` are equal, the scan is performed in-place. The + * range `[d_in, d_in + num_items)` and `[d_out, d_out + num_items)` + * shall not overlap in any other way. + * - @devicestorage + * + * @par Snippet + * The code snippet below illustrates the inclusive prefix sum of an `int` + * device vector. + * + * @par + * @code + * #include // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers for + * // input and output + * int num_items; // e.g., 7 + * int *d_in; // e.g., [8, 6, 7, 5, 3, 0, 9] + * int *d_out; // e.g., [ , , , , , , ] + * ... + * + * // Determine temporary device storage requirements for inclusive + * // prefix sum + * void *d_temp_storage = nullptr; + * size_t temp_storage_bytes = 0; + * cub::DeviceScan::InclusiveSum( + * d_temp_storage, temp_storage_bytes, + * d_in, d_out, num_items); + * + * // Allocate temporary storage for inclusive prefix sum + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run inclusive prefix sum + * cub::DeviceScan::InclusiveSum( + * d_temp_storage, temp_storage_bytes, + * d_in, d_out, num_items); + * + * // d_out <-- [8, 14, 21, 26, 29, 29, 38] + * + * @endcode + * + * @tparam InputIteratorT + * **[inferred]** Random-access input iterator type for reading scan + * inputs \iterator + * + * @tparam OutputIteratorT + * **[inferred]** Random-access output iterator type for writing scan + * outputs \iterator + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no + * work is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in] d_in + * Random-access iterator to the input sequence of data items + * + * @param[out] d_out + * Random-access iterator to the output sequence of data items + * + * @param[in] num_items + * Total number of input items (i.e., the length of `d_in`) + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. + * Default is stream0. + * + * [decoupled look-back]: https://research.nvidia.com/publication/single-pass-parallel-prefix-scan-decoupled-look-back + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + InclusiveSum(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OutputIteratorT d_out, + int num_items, + cudaStream_t stream = 0) + { + // Signed integer type for global offsets + using OffsetT = int; + + return DispatchScan::Dispatch(d_temp_storage, + temp_storage_bytes, + d_in, + d_out, + Sum(), + NullType(), + num_items, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + InclusiveSum(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OutputIteratorT d_out, + int num_items, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return InclusiveSum(d_temp_storage, + temp_storage_bytes, + d_in, + d_out, + num_items, + stream); + } + + /** + * @brief Computes a device-wide inclusive prefix sum in-place. + * + * @par + * - Supports non-commutative sum operators. + * - Results are not deterministic for pseudo-associative operators (e.g., + * addition of floating-point types). Results for pseudo-associative + * operators may vary from run to run. Additional details can be found in + * the [decoupled look-back] description. + * - @devicestorage + * + * @par Snippet + * The code snippet below illustrates the inclusive prefix sum of an `int` + * device vector. + * + * @par + * @code + * #include // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers for + * // input and output + * int num_items; // e.g., 7 + * int *d_data; // e.g., [8, 6, 7, 5, 3, 0, 9] + * ... + * + * // Determine temporary device storage requirements for inclusive + * // prefix sum + * void *d_temp_storage = nullptr; + * size_t temp_storage_bytes = 0; + * cub::DeviceScan::InclusiveSum( + * d_temp_storage, temp_storage_bytes, + * d_data, num_items); + * + * // Allocate temporary storage for inclusive prefix sum + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run inclusive prefix sum + * cub::DeviceScan::InclusiveSum( + * d_temp_storage, temp_storage_bytes, + * d_data, num_items); + * + * // d_data <-- [8, 14, 21, 26, 29, 29, 38] + * + * @endcode + * + * @tparam IteratorT + * **[inferred]** Random-access input iterator type for reading scan + * inputs and writing scan outputs + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no + * work is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in,out] d_data + * Random-access iterator to the sequence of data items + * + * @param[in] num_items + * Total number of input items (i.e., the length of `d_in`) + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. + * Default is stream0. + * + * [decoupled look-back]: https://research.nvidia.com/publication/single-pass-parallel-prefix-scan-decoupled-look-back + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + InclusiveSum(void *d_temp_storage, + size_t &temp_storage_bytes, + IteratorT d_data, + int num_items, + cudaStream_t stream = 0) + { + return InclusiveSum(d_temp_storage, + temp_storage_bytes, + d_data, + d_data, + num_items, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + InclusiveSum(void *d_temp_storage, + size_t &temp_storage_bytes, + IteratorT d_data, + int num_items, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return InclusiveSum(d_temp_storage, + temp_storage_bytes, + d_data, + num_items, + stream); + } + + /** + * @brief Computes a device-wide inclusive prefix scan using the specified + * binary `scan_op` functor. + * + * @par + * - Supports non-commutative scan operators. + * - Results are not deterministic for pseudo-associative operators (e.g., + * addition of floating-point types). Results for pseudo-associative + * operators may vary from run to run. Additional details can be found in + * the [decoupled look-back] description. + * - When `d_in` and `d_out` are equal, the scan is performed in-place. The + * range `[d_in, d_in + num_items)` and `[d_out, d_out + num_items)` + * shall not overlap in any other way. + * - @devicestorage + * + * @par Snippet + * The code snippet below illustrates the inclusive prefix min-scan of an + * `int` device vector. + * + * @par + * @code + * #include // or equivalently + * #include // for INT_MAX + * + * // CustomMin functor + * struct CustomMin + * { + * template + * CUB_RUNTIME_FUNCTION __forceinline__ + * T operator()(const T &a, const T &b) const { + * return (b < a) ? b : a; + * } + * }; + * + * // Declare, allocate, and initialize device-accessible pointers for + * // input and output + * int num_items; // e.g., 7 + * int *d_in; // e.g., [8, 6, 7, 5, 3, 0, 9] + * int *d_out; // e.g., [ , , , , , , ] + * CustomMin min_op; + * ... + * + * // Determine temporary device storage requirements for inclusive + * // prefix scan + * void *d_temp_storage = nullptr; + * size_t temp_storage_bytes = 0; + * cub::DeviceScan::InclusiveScan( + * d_temp_storage, temp_storage_bytes, + * d_in, d_out, min_op, num_items); + * + * // Allocate temporary storage for inclusive prefix scan + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run inclusive prefix min-scan + * cub::DeviceScan::InclusiveScan( + * d_temp_storage, temp_storage_bytes, + * d_in, d_out, min_op, num_items); + * + * // d_out <-- [8, 6, 6, 5, 3, 0, 0] + * + * @endcode + * + * @tparam InputIteratorT + * **[inferred]** Random-access input iterator type for reading scan + * inputs \iterator + * + * @tparam OutputIteratorT + * **[inferred]** Random-access output iterator type for writing scan + * outputs \iterator + * + * @tparam ScanOp + * **[inferred]** Binary scan functor type having member + * `T operator()(const T &a, const T &b)` + * + * @param[in] + * d_temp_storage Device-accessible allocation of temporary storage. + * When `nullptr`, the required allocation size is written to + * `temp_storage_bytes` and no work is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in] d_in + * Random-access iterator to the input sequence of data items + * + * @param[out] d_out + * Random-access iterator to the output sequence of data items + * + * @param[in] scan_op + * Binary scan functor + * + * @param[in] num_items + * Total number of input items (i.e., the length of `d_in`) + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. + * Default is stream0. + * + * [decoupled look-back]: https://research.nvidia.com/publication/single-pass-parallel-prefix-scan-decoupled-look-back + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + InclusiveScan(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OutputIteratorT d_out, + ScanOpT scan_op, + int num_items, + cudaStream_t stream = 0) + { + // Signed integer type for global offsets + using OffsetT = int; + + return DispatchScan::Dispatch(d_temp_storage, + temp_storage_bytes, + d_in, + d_out, + scan_op, + NullType(), + num_items, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + InclusiveScan(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OutputIteratorT d_out, + ScanOpT scan_op, + int num_items, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return InclusiveScan( + d_temp_storage, + temp_storage_bytes, + d_in, + d_out, + scan_op, + num_items, + stream); + } + + /** + * @brief Computes a device-wide inclusive prefix scan using the specified + * binary `scan_op` functor. + * + * @par + * - Supports non-commutative scan operators. + * - Results are not deterministic for pseudo-associative operators (e.g., + * addition of floating-point types). Results for pseudo-associative + * operators may vary from run to run. Additional details can be found in + * the [decoupled look-back] description. + * - @devicestorage + * + * @par Snippet + * The code snippet below illustrates the inclusive prefix min-scan of an + * `int` device vector. + * + * @par + * @code + * #include // or equivalently + * #include // for INT_MAX + * + * // CustomMin functor + * struct CustomMin + * { + * template + * CUB_RUNTIME_FUNCTION __forceinline__ + * T operator()(const T &a, const T &b) const { + * return (b < a) ? b : a; + * } + * }; + * + * // Declare, allocate, and initialize device-accessible pointers for + * // input and output + * int num_items; // e.g., 7 + * int *d_data; // e.g., [8, 6, 7, 5, 3, 0, 9] + * CustomMin min_op; + * ... + * + * // Determine temporary device storage requirements for inclusive + * // prefix scan + * void *d_temp_storage = nullptr; + * size_t temp_storage_bytes = 0; + * cub::DeviceScan::InclusiveScan( + * d_temp_storage, temp_storage_bytes, + * d_data, min_op, num_items); + * + * // Allocate temporary storage for inclusive prefix scan + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run inclusive prefix min-scan + * cub::DeviceScan::InclusiveScan( + * d_temp_storage, temp_storage_bytes, + * d_in, d_out, min_op, num_items); + * + * // d_data <-- [8, 6, 6, 5, 3, 0, 0] + * + * @endcode + * + * @tparam IteratorT + * **[inferred]** Random-access input iterator type for reading scan + * inputs and writing scan outputs + * + * @tparam ScanOp + * **[inferred]** Binary scan functor type having member + * `T operator()(const T &a, const T &b)` + * + * @param[in] + * d_temp_storage Device-accessible allocation of temporary storage. + * When `nullptr`, the required allocation size is written to + * `temp_storage_bytes` and no work is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in] d_data + * Random-access iterator to the sequence of data items + * + * @param[in] scan_op + * Binary scan functor + * + * @param[in] num_items + * Total number of input items (i.e., the length of `d_in`) + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. + * Default is stream0. + * + * [decoupled look-back]: https://research.nvidia.com/publication/single-pass-parallel-prefix-scan-decoupled-look-back + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + InclusiveScan(void *d_temp_storage, + size_t &temp_storage_bytes, + IteratorT d_data, + ScanOpT scan_op, + int num_items, + cudaStream_t stream = 0) + { + return InclusiveScan(d_temp_storage, + temp_storage_bytes, + d_data, + d_data, + scan_op, + num_items, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + InclusiveScan(void *d_temp_storage, + size_t &temp_storage_bytes, + IteratorT d_data, + ScanOpT scan_op, + int num_items, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return InclusiveScan(d_temp_storage, + temp_storage_bytes, + d_data, + scan_op, + num_items, + stream); + } + + /** + * @brief Computes a device-wide exclusive prefix sum-by-key with key equality + * defined by `equality_op`. The value of `0` is applied as the initial + * value, and is assigned to the beginning of each segment in + * `d_values_out`. + * + * @par + * - Supports non-commutative sum operators. + * - Results are not deterministic for pseudo-associative operators (e.g., + * addition of floating-point types). Results for pseudo-associative + * operators may vary from run to run. Additional details can be found in + * the [decoupled look-back] description. + * - `d_keys_in` may equal `d_values_out` but the range + * `[d_keys_in, d_keys_in + num_items)` and the range + * `[d_values_out, d_values_out + num_items)` shall not overlap otherwise. + * - `d_values_in` may equal `d_values_out` but the range + * `[d_values_in, d_values_in + num_items)` and the range + * `[d_values_out, d_values_out + num_items)` shall not overlap otherwise. + * - @devicestorage + * + * @par Snippet + * The code snippet below illustrates the exclusive prefix sum-by-key of an + * `int` device vector. + * @par + * @code + * #include // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers for + * // input and output + * int num_items; // e.g., 7 + * int *d_keys_in; // e.g., [0, 0, 1, 1, 1, 2, 2] + * int *d_values_in; // e.g., [8, 6, 7, 5, 3, 0, 9] + * int *d_values_out; // e.g., [ , , , , , , ] + * ... + * + * // Determine temporary device storage requirements + * void *d_temp_storage = nullptr; + * size_t temp_storage_bytes = 0; + * cub::DeviceScan::ExclusiveSumByKey( + * d_temp_storage, temp_storage_bytes, + * d_keys_in, d_values_in, d_values_out, num_items); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run exclusive prefix sum + * cub::DeviceScan::ExclusiveSumByKey( + * d_temp_storage, temp_storage_bytes, + * d_keys_in, d_values_in, d_values_out, num_items); + * + * // d_values_out <-- [0, 8, 0, 7, 12, 0, 0] + * + * @endcode + * + * @tparam KeysInputIteratorT + * **[inferred]** Random-access input iterator type for reading scan keys + * inputs \iterator + * + * @tparam ValuesInputIteratorT + * **[inferred]** Random-access input iterator type for reading scan + * values inputs \iterator + * + * @tparam ValuesOutputIteratorT + * **[inferred]** Random-access output iterator type for writing scan + * values outputs \iterator + * + * @tparam EqualityOpT + * **[inferred]** Functor type having member + * `T operator()(const T &a, const T &b)` for binary operations that + * defines the equality of keys + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no + * work is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in] d_keys_in + * Random-access input iterator to the input sequence of key items + * + * @param[in] d_values_in + * Random-access input iterator to the input sequence of value items + * + * @param[out] d_values_out + * Random-access output iterator to the output sequence of value items + * + * @param[in] num_items + * Total number of input items (i.e., the length of `d_keys_in` and + * `d_values_in`) + * + * @param[in] equality_op + * Binary functor that defines the equality of keys. + * Default is cub::Equality(). + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. + * Default is stream0. + * + * [decoupled look-back]: https://research.nvidia.com/publication/single-pass-parallel-prefix-scan-decoupled-look-back + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + ExclusiveSumByKey(void *d_temp_storage, + size_t &temp_storage_bytes, + KeysInputIteratorT d_keys_in, + ValuesInputIteratorT d_values_in, + ValuesOutputIteratorT d_values_out, + int num_items, + EqualityOpT equality_op = EqualityOpT(), + cudaStream_t stream = 0) + { + // Signed integer type for global offsets + using OffsetT = int; + using InitT = cub::detail::value_t; + + // Initial value + InitT init_value{}; + + return DispatchScanByKey::Dispatch(d_temp_storage, + temp_storage_bytes, + d_keys_in, + d_values_in, + d_values_out, + equality_op, + Sum(), + init_value, + num_items, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + ExclusiveSumByKey(void *d_temp_storage, + size_t &temp_storage_bytes, + KeysInputIteratorT d_keys_in, + ValuesInputIteratorT d_values_in, + ValuesOutputIteratorT d_values_out, + int num_items, + EqualityOpT equality_op, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return ExclusiveSumByKey(d_temp_storage, + temp_storage_bytes, + d_keys_in, + d_values_in, + d_values_out, + num_items, + equality_op, + stream); + } + + /** + * @brief Computes a device-wide exclusive prefix scan-by-key using the + * specified binary `scan_op` functor. The key equality is defined by + * `equality_op`. The `init_value` value is applied as the initial + * value, and is assigned to the beginning of each segment in + * `d_values_out`. + * + * @par + * - Supports non-commutative scan operators. + * - Results are not deterministic for pseudo-associative operators (e.g., + * addition of floating-point types). Results for pseudo-associative + * operators may vary from run to run. Additional details can be found in + * the [decoupled look-back] description. + * - `d_keys_in` may equal `d_values_out` but the range + * `[d_keys_in, d_keys_in + num_items)` and the range + * `[d_values_out, d_values_out + num_items)` shall not overlap otherwise. + * - `d_values_in` may equal `d_values_out` but the range + * `[d_values_in, d_values_in + num_items)` and the range + * `[d_values_out, d_values_out + num_items)` shall not overlap otherwise. + * - @devicestorage + * + * @par Snippet + * The code snippet below illustrates the exclusive prefix min-scan-by-key of + * an `int` device vector + * @par + * @code + * #include // or equivalently + * #include // for INT_MAX + * + * // CustomMin functor + * struct CustomMin + * { + * template + * CUB_RUNTIME_FUNCTION __forceinline__ + * T operator()(const T &a, const T &b) const { + * return (b < a) ? b : a; + * } + * }; + * + * // CustomEqual functor + * struct CustomEqual + * { + * template + * CUB_RUNTIME_FUNCTION __forceinline__ + * T operator()(const T &a, const T &b) const { + * return a == b; + * } + * }; + * + * // Declare, allocate, and initialize device-accessible pointers for + * // input and output + * int num_items; // e.g., 7 + * int *d_keys_in; // e.g., [0, 0, 1, 1, 1, 2, 2] + * int *d_values_in; // e.g., [8, 6, 7, 5, 3, 0, 9] + * int *d_values_out; // e.g., [ , , , , , , ] + * CustomMin min_op; + * CustomEqual equality_op; + * ... + * + * // Determine temporary device storage requirements for exclusive + * // prefix scan + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceScan::ExclusiveScanByKey( + * d_temp_storage, temp_storage_bytes, + * d_keys_in, d_values_in, d_values_out, min_op, + * (int) INT_MAX, num_items, equality_op); + * + * // Allocate temporary storage for exclusive prefix scan + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run exclusive prefix min-scan + * cub::DeviceScan::ExclusiveScanByKey( + * d_temp_storage, temp_storage_bytes, + * d_keys_in, d_values_in, d_values_out, min_op, + * (int) INT_MAX, num_items, equality_op); + * + * // d_values_out <-- [2147483647, 8, 2147483647, 7, 5, 2147483647, 0] + * + * @endcode + * + * @tparam KeysInputIteratorT + * **[inferred]** Random-access input iterator type for reading scan keys + * inputs \iterator + * + * @tparam ValuesInputIteratorT + * **[inferred]** Random-access input iterator type for reading scan values + * inputs \iterator + * + * @tparam ValuesOutputIteratorT + * **[inferred]** Random-access output iterator type for writing scan values + * outputs \iterator + * + * @tparam ScanOp + * **[inferred]** Binary scan functor type having member + * `T operator()(const T &a, const T &b)` + * + * @tparam InitValueT + * **[inferred]** Type of the `init_value` value used in Binary scan + * functor type having member `T operator()(const T &a, const T &b)` + * + * @tparam EqualityOpT + * **[inferred]** Functor type having member + * `T operator()(const T &a, const T &b)` for binary operations that + * defines the equality of keys + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no work + * is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in] d_keys_in + * Random-access input iterator to the input sequence of key items + * + * @param[in] d_values_in + * Random-access input iterator to the input sequence of value items + * + * @param[out] d_values_out + * Random-access output iterator to the output sequence of value items + * + * @param[in] scan_op + * Binary scan functor + * + * @param[in] init_value + * Initial value to seed the exclusive scan (and is assigned to the + * beginning of each segment in `d_values_out`) + * + * @param[in] num_items + * Total number of input items (i.e., the length of `d_keys_in` and + * `d_values_in`) + * + * @param[in] equality_op + * Binary functor that defines the equality of keys. + * Default is cub::Equality(). + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. + * Default is stream0. + * + * [decoupled look-back]: https://research.nvidia.com/publication/single-pass-parallel-prefix-scan-decoupled-look-back + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + ExclusiveScanByKey(void *d_temp_storage, + size_t &temp_storage_bytes, + KeysInputIteratorT d_keys_in, + ValuesInputIteratorT d_values_in, + ValuesOutputIteratorT d_values_out, + ScanOpT scan_op, + InitValueT init_value, + int num_items, + EqualityOpT equality_op = EqualityOpT(), + cudaStream_t stream = 0) + { + // Signed integer type for global offsets + using OffsetT = int ; + + return DispatchScanByKey::Dispatch(d_temp_storage, + temp_storage_bytes, + d_keys_in, + d_values_in, + d_values_out, + equality_op, + scan_op, + init_value, + num_items, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + ExclusiveScanByKey(void *d_temp_storage, + size_t &temp_storage_bytes, + KeysInputIteratorT d_keys_in, + ValuesInputIteratorT d_values_in, + ValuesOutputIteratorT d_values_out, + ScanOpT scan_op, + InitValueT init_value, + int num_items, + EqualityOpT equality_op, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return ExclusiveScanByKey(d_temp_storage, + temp_storage_bytes, + d_keys_in, + d_values_in, + d_values_out, + scan_op, + init_value, + num_items, + equality_op, + stream); + } + + /** + * @brief Computes a device-wide inclusive prefix sum-by-key with key + * equality defined by `equality_op`. + * + * @par + * - Supports non-commutative sum operators. + * - Results are not deterministic for pseudo-associative operators (e.g., + * addition of floating-point types). Results for pseudo-associative + * operators may vary from run to run. Additional details can be found in + * the [decoupled look-back] description. + * - `d_keys_in` may equal `d_values_out` but the range + * `[d_keys_in, d_keys_in + num_items)` and the range + * `[d_values_out, d_values_out + num_items)` shall not overlap otherwise. + * - `d_values_in` may equal `d_values_out` but the range + * `[d_values_in, d_values_in + num_items)` and the range + * `[d_values_out, d_values_out + num_items)` shall not overlap otherwise. + * - @devicestorage + * + * @par Snippet + * The code snippet below illustrates the inclusive prefix sum-by-key of an + * `int` device vector. + * @par + * @code + * #include // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers for + * // input and output + * int num_items; // e.g., 7 + * int *d_keys_in; // e.g., [0, 0, 1, 1, 1, 2, 2] + * int *d_values_in; // e.g., [8, 6, 7, 5, 3, 0, 9] + * int *d_values_out; // e.g., [ , , , , , , ] + * ... + * + * // Determine temporary device storage requirements for inclusive prefix sum + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceScan::InclusiveSumByKey( + * d_temp_storage, temp_storage_bytes, + * d_keys_in, d_values_in, d_values_out, num_items); + * + * // Allocate temporary storage for inclusive prefix sum + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run inclusive prefix sum + * cub::DeviceScan::InclusiveSumByKey( + * d_temp_storage, temp_storage_bytes, + * d_keys_in, d_values_in, d_values_out, num_items); + * + * // d_out <-- [8, 14, 7, 12, 15, 0, 9] + * + * @endcode + * + * @tparam KeysInputIteratorT + * **[inferred]** Random-access input iterator type for reading scan + * keys inputs \iterator + * + * @tparam ValuesInputIteratorT + * **[inferred]** Random-access input iterator type for reading scan + * values inputs \iterator + * + * @tparam ValuesOutputIteratorT + * **[inferred]** Random-access output iterator type for writing scan + * values outputs \iterator + * + * @tparam EqualityOpT + * **[inferred]** Functor type having member + * `T operator()(const T &a, const T &b)` for binary operations that + * defines the equality of keys + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. + * When `nullptr`, the required allocation size is written to + * `temp_storage_bytes` and no work is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in] d_keys_in + * Random-access input iterator to the input sequence of key items + * + * @param[in] d_values_in + * Random-access input iterator to the input sequence of value items + * + * @param[out] d_values_out + * Random-access output iterator to the output sequence of value items + * + * @param[in] num_items + * Total number of input items (i.e., the length of `d_keys_in` and + * `d_values_in`) + * + * @param[in] equality_op + * Binary functor that defines the equality of keys. + * Default is cub::Equality(). + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. + * Default is stream0. + * + * [decoupled look-back]: https://research.nvidia.com/publication/single-pass-parallel-prefix-scan-decoupled-look-back + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + InclusiveSumByKey(void *d_temp_storage, + size_t &temp_storage_bytes, + KeysInputIteratorT d_keys_in, + ValuesInputIteratorT d_values_in, + ValuesOutputIteratorT d_values_out, + int num_items, + EqualityOpT equality_op = EqualityOpT(), + cudaStream_t stream = 0) + { + // Signed integer type for global offsets + using OffsetT = int ; + + return DispatchScanByKey::Dispatch(d_temp_storage, + temp_storage_bytes, + d_keys_in, + d_values_in, + d_values_out, + equality_op, + Sum(), + NullType(), + num_items, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + InclusiveSumByKey(void *d_temp_storage, + size_t &temp_storage_bytes, + KeysInputIteratorT d_keys_in, + ValuesInputIteratorT d_values_in, + ValuesOutputIteratorT d_values_out, + int num_items, + EqualityOpT equality_op, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return InclusiveSumByKey(d_temp_storage, + temp_storage_bytes, + d_keys_in, + d_values_in, + d_values_out, + num_items, + equality_op, + stream); + } + + /** + * @brief Computes a device-wide inclusive prefix scan-by-key using the + * specified binary `scan_op` functor. The key equality is defined + * by `equality_op`. + * + * @par + * - Supports non-commutative scan operators. + * - Results are not deterministic for pseudo-associative operators (e.g., + * addition of floating-point types). Results for pseudo-associative + * operators may vary from run to run. Additional details can be found in + * the [decoupled look-back] description. + * - `d_keys_in` may equal `d_values_out` but the range + * `[d_keys_in, d_keys_in + num_items)` and the range + * `[d_values_out, d_values_out + num_items)` shall not overlap otherwise. + * - `d_values_in` may equal `d_values_out` but the range + * `[d_values_in, d_values_in + num_items)` and the range + * `[d_values_out, d_values_out + num_items)` shall not overlap otherwise. + * - @devicestorage + * + * @par Snippet + * The code snippet below illustrates the inclusive prefix min-scan-by-key + * of an `int` device vector. + * @par + * @code + * #include // or equivalently + * #include // for INT_MAX + * + * // CustomMin functor + * struct CustomMin + * { + * template + * CUB_RUNTIME_FUNCTION __forceinline__ + * T operator()(const T &a, const T &b) const { + * return (b < a) ? b : a; + * } + * }; + * + * // CustomEqual functor + * struct CustomEqual + * { + * template + * CUB_RUNTIME_FUNCTION __forceinline__ + * T operator()(const T &a, const T &b) const { + * return a == b; + * } + * }; + * + * // Declare, allocate, and initialize device-accessible pointers for + * // input and output + * int num_items; // e.g., 7 + * int *d_keys_in; // e.g., [0, 0, 1, 1, 1, 2, 2] + * int *d_values_in; // e.g., [8, 6, 7, 5, 3, 0, 9] + * int *d_values_out; // e.g., [ , , , , , , ] + * CustomMin min_op; + * CustomEqual equality_op; + * ... + * + * // Determine temporary device storage requirements for inclusive prefix scan + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceScan::InclusiveScanByKey( + * d_temp_storage, temp_storage_bytes, + * d_keys_in, d_values_in, d_values_out, min_op, num_items, equality_op); + * + * // Allocate temporary storage for inclusive prefix scan + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run inclusive prefix min-scan + * cub::DeviceScan::InclusiveScanByKey( + * d_temp_storage, temp_storage_bytes, + * d_keys_in, d_values_in, d_values_out, min_op, num_items, equality_op); + * + * // d_out <-- [8, 6, 7, 5, 3, 0, 0] + * + * @endcode + * + * @tparam KeysInputIteratorT + * **[inferred]** Random-access input iterator type for reading scan keys + * inputs \iterator + * + * @tparam ValuesInputIteratorT + * **[inferred]** Random-access input iterator type for reading scan + * values inputs \iterator + * + * @tparam ValuesOutputIteratorT + * **[inferred]** Random-access output iterator type for writing scan + * values outputs \iterator + * + * @tparam ScanOp + * **[inferred]** Binary scan functor type having member + * `T operator()(const T &a, const T &b)` + * + * @tparam EqualityOpT + * **[inferred]** Functor type having member + * `T operator()(const T &a, const T &b)` for binary operations that + * defines the equality of keys + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. + * When `nullptr`, the required allocation size is written to + * `temp_storage_bytes` and no work is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in] d_keys_in + * Random-access input iterator to the input sequence of key items + * + * @param[in] d_values_in + * Random-access input iterator to the input sequence of value items + * + * @param[out] d_values_out + * Random-access output iterator to the output sequence of value items + * + * @param[in] scan_op + * Binary scan functor + * + * @param[in] num_items + * Total number of input items (i.e., the length of `d_keys_in` and + * `d_values_in`) + * + * @param[in] equality_op + * Binary functor that defines the equality of keys. + * Default is cub::Equality(). + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. + * Default is stream0. + * + * [decoupled look-back]: https://research.nvidia.com/publication/single-pass-parallel-prefix-scan-decoupled-look-back + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + InclusiveScanByKey(void *d_temp_storage, + size_t &temp_storage_bytes, + KeysInputIteratorT d_keys_in, + ValuesInputIteratorT d_values_in, + ValuesOutputIteratorT d_values_out, + ScanOpT scan_op, + int num_items, + EqualityOpT equality_op = EqualityOpT(), + cudaStream_t stream = 0) + { + // Signed integer type for global offsets + using OffsetT = int; + + return DispatchScanByKey::Dispatch(d_temp_storage, + temp_storage_bytes, + d_keys_in, + d_values_in, + d_values_out, + equality_op, + scan_op, + NullType(), + num_items, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + InclusiveScanByKey(void *d_temp_storage, + size_t &temp_storage_bytes, + KeysInputIteratorT d_keys_in, + ValuesInputIteratorT d_values_in, + ValuesOutputIteratorT d_values_out, + ScanOpT scan_op, + int num_items, + EqualityOpT equality_op, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return InclusiveScanByKey(d_temp_storage, + temp_storage_bytes, + d_keys_in, + d_values_in, + d_values_out, + scan_op, + num_items, + equality_op, + stream); + } + + //@} end member group +}; + +/** + * @example example_device_scan.cu + */ + +CUB_NAMESPACE_END + + diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/device/device_segmented_radix_sort.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/device/device_segmented_radix_sort.cuh new file mode 100644 index 0000000000000000000000000000000000000000..9c59e59fd89e6400a76df48159ae065d8a025837 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/device/device_segmented_radix_sort.cuh @@ -0,0 +1,1740 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2022, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * @file cub::DeviceSegmentedRadixSort provides device-wide, parallel + * operations for computing a batched radix sort across multiple, + * non-overlapping sequences of data items residing within + * device-accessible memory. + */ + +#pragma once + +#include +#include + +#include +#include +#include + +CUB_NAMESPACE_BEGIN + + +/** + * @brief DeviceSegmentedRadixSort provides device-wide, parallel operations + * for computing a batched radix sort across multiple, non-overlapping + * sequences of data items residing within device-accessible memory. + * ![](segmented_sorting_logo.png) + * @ingroup SegmentedModule + * + * @par Overview + * The [*radix sorting method*](http://en.wikipedia.org/wiki/Radix_sort) + * arranges items into ascending (or descending) order. The algorithm relies + * upon a positional representation for keys, i.e., each key is comprised of an + * ordered sequence of symbols (e.g., digits, characters, etc.) specified from + * least-significant to most-significant. For a given input sequence of keys + * and a set of rules specifying a total ordering of the symbolic alphabet, the + * radix sorting method produces a lexicographic ordering of those keys. + * + * @par See Also + * DeviceSegmentedRadixSort shares its implementation with DeviceRadixSort. See + * that algorithm's documentation for more information. + * + * @par Segments are not required to be contiguous. Any element of input(s) or + * output(s) outside the specified segments will not be accessed nor modified. + * + * @par Usage Considerations + * @cdp_class{DeviceSegmentedRadixSort} + * + */ +struct DeviceSegmentedRadixSort +{ + /******************************************************************//** + * @name Key-value pairs + *********************************************************************/ + //@{ + + /** + * @brief Sorts segments of key-value pairs into ascending order. + * (`~2N` auxiliary storage required) + * + * @par + * - The contents of the input data are not altered by the sorting operation + * - When input a contiguous sequence of segments, a single sequence + * `segment_offsets` (of length `num_segments + 1`) can be aliased + * for both the `d_begin_offsets` and `d_end_offsets` parameters (where + * the latter is specified as `segment_offsets + 1`). + * - An optional bit subrange `[begin_bit, end_bit)` of differentiating key + * bits can be specified. This can reduce overall sorting overhead and + * yield a corresponding performance improvement. + * - Let `in` be one of `{d_keys_in, d_values_in}` and `out` be any of + * `{d_keys_out, d_values_out}`. The range `[out, out + num_items)` shall + * not overlap `[in, in + num_items)`, + * `[d_begin_offsets, d_begin_offsets + num_segments)` nor + * `[d_end_offsets, d_end_offsets + num_segments)` in any way. + * - @devicestorageNP For sorting using only `O(P)` temporary storage, see + * the sorting interface using DoubleBuffer wrappers below. + * - Segments are not required to be contiguous. For all index values `i` + * outside the specified segments `d_keys_in[i]`, `d_values_in[i]`, + * `d_keys_out[i]`, `d_values_out[i]` will not be accessed nor modified. + * - @devicestorage + * + * @par Snippet + * The code snippet below illustrates the batched sorting of three segments + * (with one zero-length segment) of `int` keys with associated vector of + * `int` values. + * @par + * @code + * #include + * // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers + * // for sorting data + * int num_items; // e.g., 7 + * int num_segments; // e.g., 3 + * int *d_offsets; // e.g., [0, 3, 3, 7] + * int *d_keys_in; // e.g., [8, 6, 7, 5, 3, 0, 9] + * int *d_keys_out; // e.g., [-, -, -, -, -, -, -] + * int *d_values_in; // e.g., [0, 1, 2, 3, 4, 5, 6] + * int *d_values_out; // e.g., [-, -, -, -, -, -, -] + * ... + * + * // Determine temporary device storage requirements + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceSegmentedRadixSort::SortPairs( + * d_temp_storage, temp_storage_bytes, + * d_keys_in, d_keys_out, d_values_in, d_values_out, + * num_items, num_segments, d_offsets, d_offsets + 1); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run sorting operation + * cub::DeviceSegmentedRadixSort::SortPairs( + d_temp_storage, temp_storage_bytes, + * d_keys_in, d_keys_out, d_values_in, d_values_out, + * num_items, num_segments, d_offsets, d_offsets + 1); + * + * // d_keys_out <-- [6, 7, 8, 0, 3, 5, 9] + * // d_values_out <-- [1, 2, 0, 5, 4, 3, 6] + * @endcode + * + * @tparam KeyT + * **[inferred]** Key type + * + * @tparam ValueT + * **[inferred]** Value type + * + * @tparam BeginOffsetIteratorT + * **[inferred]** Random-access input iterator type for reading segment + * beginning offsets \iterator + * + * @tparam EndOffsetIteratorT + * **[inferred]** Random-access input iterator type for reading segment + * ending offsets \iterator + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no work + * is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in] d_keys_in + * Device-accessible pointer to the input data of key data to sort + * + * @param[out] d_keys_out + * Device-accessible pointer to the sorted output sequence of key data + * + * @param[in] d_values_in + * Device-accessible pointer to the corresponding input sequence of + * associated value items + * + * @param[out] d_values_out + * Device-accessible pointer to the correspondingly-reordered output + * sequence of associated value items + * + * @param[in] num_items + * The total number of items to sort (across all segments) + * + * @param[in] num_segments + * The number of segments that comprise the sorting data + * + * @param[in] d_begin_offsets + * Random-access input iterator to the sequence of beginning offsets of + * length `num_segments`, such that `d_begin_offsets[i]` is the first + * element of the *i*th data segment in `d_keys_*` and + * `d_values_*` + * + * @param[in] d_end_offsets + * Random-access input iterator to the sequence of ending offsets of length + * `num_segments`, such that `d_end_offsets[i] - 1` is the last element of + * the *i*th data segment in `d_keys_*` and `d_values_*`. If + * `d_end_offsets[i] - 1 <= d_begin_offsets[i]`, the *i*th is + * considered empty. + * + * @param[in] begin_bit + * **[optional]** The least-significant bit index (inclusive) needed for + * key comparison + * + * @param[in] end_bit + * **[optional]** The most-significant bit index (exclusive) needed for key + * comparison (e.g., `sizeof(unsigned int) * 8`) + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. + * Default is stream0. + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + SortPairs(void *d_temp_storage, + size_t &temp_storage_bytes, + const KeyT *d_keys_in, + KeyT *d_keys_out, + const ValueT *d_values_in, + ValueT *d_values_out, + int num_items, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + int begin_bit = 0, + int end_bit = sizeof(KeyT) * 8, + cudaStream_t stream = 0) + { + // Signed integer type for global offsets + using OffsetT = int; + + DoubleBuffer d_keys(const_cast(d_keys_in), d_keys_out); + DoubleBuffer d_values(const_cast(d_values_in), + d_values_out); + + return DispatchSegmentedRadixSort::Dispatch(d_temp_storage, + temp_storage_bytes, + d_keys, + d_values, + num_items, + num_segments, + d_begin_offsets, + d_end_offsets, + begin_bit, + end_bit, + false, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + SortPairs(void *d_temp_storage, + size_t &temp_storage_bytes, + const KeyT *d_keys_in, + KeyT *d_keys_out, + const ValueT *d_values_in, + ValueT *d_values_out, + int num_items, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + int begin_bit, + int end_bit, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return SortPairs( + d_temp_storage, + temp_storage_bytes, + d_keys_in, + d_keys_out, + d_values_in, + d_values_out, + num_items, + num_segments, + d_begin_offsets, + d_end_offsets, + begin_bit, + end_bit, + stream); + } + + /** + * @brief Sorts segments of key-value pairs into ascending order. + * (`~N` auxiliary storage required) + * + * @par + * - The sorting operation is given a pair of key buffers and a corresponding + * pair of associated value buffers. Each pair is managed by a DoubleBuffer + * structure that indicates which of the two buffers is "current" (and thus + * contains the input data to be sorted). + * - The contents of both buffers within each pair may be altered by the + * sorting operation. + * - Upon completion, the sorting operation will update the "current" + * indicator within each DoubleBuffer wrapper to reference which of the two + * buffers now contains the sorted output sequence (a function of the number + * of key bits specified and the targeted device architecture). + * - When input a contiguous sequence of segments, a single sequence + * `segment_offsets` (of length `num_segments + 1`) can be aliased for both + * the `d_begin_offsets` and `d_end_offsets` parameters (where the latter is + * specified as `segment_offsets + 1`). + * - An optional bit subrange `[begin_bit, end_bit)` of differentiating key + * bits can be specified. This can reduce overall sorting overhead and yield + * a corresponding performance improvement. + * - Let `cur` be one of `{d_keys.Current(), d_values.Current()}` and `alt` + * be any of `{d_keys.Alternate(), d_values.Alternate()}`. The range + * `[cur, cur + num_items)` shall not overlap + * `[alt, alt + num_items)`. Both ranges shall not overlap + * `[d_begin_offsets, d_begin_offsets + num_segments)` nor + * `[d_end_offsets, d_end_offsets + num_segments)` in any way. + * - Segments are not required to be contiguous. For all index values `i` + * outside the specified segments `d_keys.Current()[i]`, + * `d_values.Current()[i]`, `d_keys.Alternate()[i]`, + * `d_values.Alternate()[i]` will not be accessed nor modified. + * - @devicestorageP + * - @devicestorage + * + * @par Snippet + * The code snippet below illustrates the batched sorting of three segments + * (with one zero-length segment) of `int` keys with associated vector of + * `int` values. + * @par + * @code + * #include + * // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers + * // for sorting data + * int num_items; // e.g., 7 + * int num_segments; // e.g., 3 + * int *d_offsets; // e.g., [0, 3, 3, 7] + * int *d_key_buf; // e.g., [8, 6, 7, 5, 3, 0, 9] + * int *d_key_alt_buf; // e.g., [-, -, -, -, -, -, -] + * int *d_value_buf; // e.g., [0, 1, 2, 3, 4, 5, 6] + * int *d_value_alt_buf; // e.g., [-, -, -, -, -, -, -] + * ... + * + * // Create a set of DoubleBuffers to wrap pairs of device pointers + * cub::DoubleBuffer d_keys(d_key_buf, d_key_alt_buf); + * cub::DoubleBuffer d_values(d_value_buf, d_value_alt_buf); + * + * // Determine temporary device storage requirements + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceSegmentedRadixSort::SortPairs( + * d_temp_storage, temp_storage_bytes, d_keys, d_values, + * num_items, num_segments, d_offsets, d_offsets + 1); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run sorting operation + * cub::DeviceSegmentedRadixSort::SortPairs( + * d_temp_storage, temp_storage_bytes, d_keys, d_values, + * num_items, num_segments, d_offsets, d_offsets + 1); + * + * // d_keys.Current() <-- [6, 7, 8, 0, 3, 5, 9] + * // d_values.Current() <-- [5, 4, 3, 1, 2, 0, 6] + * + * @endcode + * + * @tparam KeyT + * **[inferred]** Key type + * + * @tparam ValueT + * **[inferred]** Value type + * + * @tparam BeginOffsetIteratorT + * **[inferred]** Random-access input iterator type for reading segment + * beginning offsets \iterator + * + * @tparam EndOffsetIteratorT + * **[inferred]** Random-access input iterator type for reading segment + * ending offsets \iterator + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no work + * is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in,out] d_keys + * Reference to the double-buffer of keys whose "current" device-accessible + * buffer contains the unsorted input keys and, upon return, is updated to + * point to the sorted output keys + * + * @param[in,out] d_values + * Double-buffer of values whose "current" device-accessible buffer + * contains the unsorted input values and, upon return, is updated to point + * to the sorted output values + * + * @param[in] num_items + * The total number of items to sort (across all segments) + * + * @param[in] num_segments + * The number of segments that comprise the sorting data + * + * @param[in] d_begin_offsets + * Random-access input iterator to the sequence of beginning offsets of + * length `num_segments`, such that `d_begin_offsets[i]` is the first + * element of the *i*th data segment in `d_keys_*` and + * `d_values_*` + * + * @param[in] d_end_offsets + * Random-access input iterator to the sequence of ending offsets of length + * `num_segments`, such that `d_end_offsets[i] - 1` is the last element of + * the *i*th data segment in `d_keys_*` and `d_values_*`. + * If `d_end_offsets[i] - 1 <= d_begin_offsets[i]`, the *i*th is + * considered empty. + * + * @param[in] begin_bit + * **[optional]** The least-significant bit index (inclusive) needed for + * key comparison + * + * @param[in] end_bit + * **[optional]** The most-significant bit index (exclusive) needed for key + * comparison (e.g., `sizeof(unsigned int) * 8`) + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. + * Default is stream0. + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + SortPairs(void *d_temp_storage, + size_t &temp_storage_bytes, + DoubleBuffer &d_keys, + DoubleBuffer &d_values, + int num_items, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + int begin_bit = 0, + int end_bit = sizeof(KeyT) * 8, + cudaStream_t stream = 0) + { + // Signed integer type for global offsets + using OffsetT = int; + + return DispatchSegmentedRadixSort::Dispatch(d_temp_storage, + temp_storage_bytes, + d_keys, + d_values, + num_items, + num_segments, + d_begin_offsets, + d_end_offsets, + begin_bit, + end_bit, + true, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + SortPairs(void *d_temp_storage, + size_t &temp_storage_bytes, + DoubleBuffer &d_keys, + DoubleBuffer &d_values, + int num_items, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + int begin_bit, + int end_bit, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return SortPairs( + d_temp_storage, + temp_storage_bytes, + d_keys, + d_values, + num_items, + num_segments, + d_begin_offsets, + d_end_offsets, + begin_bit, + end_bit, + stream); + } + + /** + * @brief Sorts segments of key-value pairs into descending order. + * (`~2N` auxiliary storage required). + * + * @par + * - The contents of the input data are not altered by the sorting operation + * - When input a contiguous sequence of segments, a single sequence + * `segment_offsets` (of length `num_segments + 1`) can be aliased for both + * the `d_begin_offsets` and `d_end_offsets` parameters (where the latter is + * specified as `segment_offsets + 1`). + * - An optional bit subrange `[begin_bit, end_bit)` of differentiating key + * bits can be specified. This can reduce overall sorting overhead and + * yield a corresponding performance improvement. + * - Let `in` be one of `{d_keys_in, d_values_in}` and `out` be any of + * `{d_keys_out, d_values_out}`. The range `[out, out + num_items)` shall + * not overlap `[in, in + num_items)`, + * `[d_begin_offsets, d_begin_offsets + num_segments)` nor + * `[d_end_offsets, d_end_offsets + num_segments)` in any way. + * - @devicestorageNP For sorting using only `O(P)` temporary storage, see + * the sorting interface using DoubleBuffer wrappers below. + * - Segments are not required to be contiguous. For all index values `i` + * outside the specified segments `d_keys_in[i]`, `d_values_in[i]`, + * `d_keys_out[i]`, `d_values_out[i]` will not be accessed nor modified. + * - @devicestorage + * + * @par Snippet + * The code snippet below illustrates the batched sorting of three segments + * (with one zero-length segment) of `int` keys with associated vector of + * `int` values. + * @par + * @code + * #include + * // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers + * // for sorting data + * int num_items; // e.g., 7 + * int num_segments; // e.g., 3 + * int *d_offsets; // e.g., [0, 3, 3, 7] + * int *d_keys_in; // e.g., [8, 6, 7, 5, 3, 0, 9] + * int *d_keys_out; // e.g., [-, -, -, -, -, -, -] + * int *d_values_in; // e.g., [0, 1, 2, 3, 4, 5, 6] + * int *d_values_out; // e.g., [-, -, -, -, -, -, -] + * ... + * + * // Determine temporary device storage requirements + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceSegmentedRadixSort::SortPairsDescending( + * d_temp_storage, temp_storage_bytes, + * d_keys_in, d_keys_out, d_values_in, d_values_out, + * num_items, num_segments, d_offsets, d_offsets + 1); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run sorting operation + * cub::DeviceSegmentedRadixSort::SortPairsDescending( + * d_temp_storage, temp_storage_bytes, + * d_keys_in, d_keys_out, d_values_in, d_values_out, + * num_items, num_segments, d_offsets, d_offsets + 1); + * + * // d_keys_out <-- [8, 7, 6, 9, 5, 3, 0] + * // d_values_out <-- [0, 2, 1, 6, 3, 4, 5] + * @endcode + * + * @tparam KeyT + * **[inferred]** Key type + * + * @tparam ValueT + * **[inferred]** Value type + * + * @tparam BeginOffsetIteratorT + * **[inferred]** Random-access input iterator type for reading segment + * beginning offsets \iterator + * + * @tparam EndOffsetIteratorT + * **[inferred]** Random-access input iterator type for reading segment + * ending offsets \iterator + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no work + * is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in] d_keys_in + * Device-accessible pointer to the input data of key data to sort + * + * @param[out] d_keys_out + * Device-accessible pointer to the sorted output sequence of key data + * + * @param[in] d_values_in + * Device-accessible pointer to the corresponding input sequence of + * associated value items + * + * @param[out] d_values_out + * Device-accessible pointer to the correspondingly-reordered output + * sequence of associated value items + * + * @param[in] num_items + * The total number of items to sort (across all segments) + * + * @param[in] num_segments + * The number of segments that comprise the sorting data + * + * @param[in] d_begin_offsets + * Random-access input iterator to the sequence of beginning offsets of + * length `num_segments`, such that `d_begin_offsets[i]` is the first + * element of the *i*th data segment in `d_keys_*` and + * `d_values_*` + * + * @param[in] d_end_offsets + * Random-access input iterator to the sequence of ending offsets of length + * `num_segments`, such that `d_end_offsets[i] - 1` is the last element of + * the *i*th data segment in `d_keys_*` and `d_values_*`. + * If `d_end_offsets[i] - 1 <= d_begin_offsets[i]`, the *i*th + * is considered empty. + * + * @param[in] begin_bit + * **[optional]** The least-significant bit index (inclusive) needed for + * key comparison + * + * @param[in] end_bit + * **[optional]** The most-significant bit index (exclusive) needed for key + * comparison (e.g., `sizeof(unsigned int) * 8`) + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. + * Default is stream0. + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + SortPairsDescending(void *d_temp_storage, + size_t &temp_storage_bytes, + const KeyT *d_keys_in, + KeyT *d_keys_out, + const ValueT *d_values_in, + ValueT *d_values_out, + int num_items, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + int begin_bit = 0, + int end_bit = sizeof(KeyT) * 8, + cudaStream_t stream = 0) + { + // Signed integer type for global offsets + using OffsetT = int; + + DoubleBuffer d_keys(const_cast(d_keys_in), d_keys_out); + DoubleBuffer d_values(const_cast(d_values_in), + d_values_out); + + return DispatchSegmentedRadixSort::Dispatch(d_temp_storage, + temp_storage_bytes, + d_keys, + d_values, + num_items, + num_segments, + d_begin_offsets, + d_end_offsets, + begin_bit, + end_bit, + false, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + SortPairsDescending(void *d_temp_storage, + size_t &temp_storage_bytes, + const KeyT *d_keys_in, + KeyT *d_keys_out, + const ValueT *d_values_in, + ValueT *d_values_out, + int num_items, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + int begin_bit, + int end_bit, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return SortPairsDescending(d_temp_storage, + temp_storage_bytes, + d_keys_in, + d_keys_out, + d_values_in, + d_values_out, + num_items, + num_segments, + d_begin_offsets, + d_end_offsets, + begin_bit, + end_bit, + stream); + } + + /** + * @brief Sorts segments of key-value pairs into descending order. + * (`~N` auxiliary storage required). + * + * @par + * - The sorting operation is given a pair of key buffers and a corresponding + * pair of associated value buffers. Each pair is managed by a DoubleBuffer + * structure that indicates which of the two buffers is "current" (and thus + * contains the input data to be sorted). + * - The contents of both buffers within each pair may be altered by the + * sorting operation. + * - Upon completion, the sorting operation will update the "current" + * indicator within each DoubleBuffer wrapper to reference which of the two + * buffers now contains the sorted output sequence (a function of the number + * of key bits specified and the targeted device architecture). + * - When input a contiguous sequence of segments, a single sequence + * `segment_offsets` (of length `num_segments + 1`) can be aliased for both + * the `d_begin_offsets` and `d_end_offsets` parameters (where the latter is + * specified as `segment_offsets + 1`). + * - An optional bit subrange `[begin_bit, end_bit)` of differentiating key + * bits can be specified. This can reduce overall sorting overhead and + * yield a corresponding performance improvement. + * - Let `cur` be one of `{d_keys.Current(), d_values.Current()}` and `alt` + * be any of `{d_keys.Alternate(), d_values.Alternate()}`. The range + * `[cur, cur + num_items)` shall not overlap + * `[alt, alt + num_items)`. Both ranges shall not overlap + * `[d_begin_offsets, d_begin_offsets + num_segments)` nor + * `[d_end_offsets, d_end_offsets + num_segments)` in any way. + * - Segments are not required to be contiguous. For all index values `i` + * outside the specified segments `d_keys.Current()[i]`, + * `d_values.Current()[i]`, `d_keys.Alternate()[i]`, + * `d_values.Alternate()[i]` will not be accessed nor modified. + * not to be modified. + * - @devicestorageP + * - @devicestorage + * + * @par Snippet + * The code snippet below illustrates the batched sorting of three segments + * (with one zero-length segment) of `int` keys with associated vector of + * `int` values. + * @par + * @code + * #include + * // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers + * // for sorting data + * int num_items; // e.g., 7 + * int num_segments; // e.g., 3 + * int *d_offsets; // e.g., [0, 3, 3, 7] + * int *d_key_buf; // e.g., [8, 6, 7, 5, 3, 0, 9] + * int *d_key_alt_buf; // e.g., [-, -, -, -, -, -, -] + * int *d_value_buf; // e.g., [0, 1, 2, 3, 4, 5, 6] + * int *d_value_alt_buf; // e.g., [-, -, -, -, -, -, -] + * ... + * + * // Create a set of DoubleBuffers to wrap pairs of device pointers + * cub::DoubleBuffer d_keys(d_key_buf, d_key_alt_buf); + * cub::DoubleBuffer d_values(d_value_buf, d_value_alt_buf); + * + * // Determine temporary device storage requirements + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceSegmentedRadixSort::SortPairsDescending( + * d_temp_storage, temp_storage_bytes, d_keys, d_values, + * num_items, num_segments, d_offsets, d_offsets + 1); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run sorting operation + * cub::DeviceSegmentedRadixSort::SortPairsDescending( + * d_temp_storage, temp_storage_bytes, d_keys, d_values, + * num_items, num_segments, d_offsets, d_offsets + 1); + * + * // d_keys.Current() <-- [8, 7, 6, 9, 5, 3, 0] + * // d_values.Current() <-- [0, 2, 1, 6, 3, 4, 5] + * @endcode + * + * @tparam KeyT + * **[inferred]** Key type + * + * @tparam ValueT + * **[inferred]** Value type + * + * @tparam BeginOffsetIteratorT + * **[inferred]** Random-access input iterator type for reading segment + * beginning offsets \iterator + * + * @tparam EndOffsetIteratorT + * **[inferred]** Random-access input iterator type for reading segment + * ending offsets \iterator + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no work + * is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in,out] d_keys + * Reference to the double-buffer of keys whose "current" device-accessible + * buffer contains the unsorted input keys and, upon return, is updated to + * point to the sorted output keys + * + * @param[in,out] d_values + * Double-buffer of values whose "current" device-accessible buffer + * contains the unsorted input values and, upon return, is updated to point + * to the sorted output values + * + * @param[in] num_items + * The total number of items to sort (across all segments) + * + * @param[in] num_segments + * The number of segments that comprise the sorting data + * + * @param[in] d_begin_offsets + * Random-access input iterator to the sequence of beginning offsets of + * length `num_segments`, such that `d_begin_offsets[i]` is the first + * element of the *i*th data segment in `d_keys_*` and + * `d_values_*` + * + * @param[in] d_end_offsets + * Random-access input iterator to the sequence of ending offsets of length + * `num_segments`, such that `d_end_offsets[i] - 1` is the last element of + * the *i*th data segment in `d_keys_*` and `d_values_*`. + * If `d_end_offsets[i] - 1 <= d_begin_offsets[i]`, the *i*th + * is considered empty. + * + * @param[in] begin_bit + * **[optional]** The least-significant bit index (inclusive) needed for + * key comparison + * + * @param[in] end_bit + * **[optional]** The most-significant bit index (exclusive) needed for key + * comparison (e.g., `sizeof(unsigned int) * 8`) + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. + * Default is stream0. + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + SortPairsDescending(void *d_temp_storage, + size_t &temp_storage_bytes, + DoubleBuffer &d_keys, + DoubleBuffer &d_values, + int num_items, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + int begin_bit = 0, + int end_bit = sizeof(KeyT) * 8, + cudaStream_t stream = 0) + { + // Signed integer type for global offsets + using OffsetT = int; + + return DispatchSegmentedRadixSort::Dispatch(d_temp_storage, + temp_storage_bytes, + d_keys, + d_values, + num_items, + num_segments, + d_begin_offsets, + d_end_offsets, + begin_bit, + end_bit, + true, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + SortPairsDescending(void *d_temp_storage, + size_t &temp_storage_bytes, + DoubleBuffer &d_keys, + DoubleBuffer &d_values, + int num_items, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + int begin_bit, + int end_bit, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return SortPairsDescending(d_temp_storage, + temp_storage_bytes, + d_keys, + d_values, + num_items, + num_segments, + d_begin_offsets, + d_end_offsets, + begin_bit, + end_bit, + stream); + } + + //@} end member group + /******************************************************************//** + * @name Keys-only + *********************************************************************/ + //@{ + + + /** + * @brief Sorts segments of keys into ascending order. + * (`~2N` auxiliary storage required) + * + * @par + * - The contents of the input data are not altered by the sorting operation + * - An optional bit subrange `[begin_bit, end_bit)` of differentiating key + * bits can be specified. This can reduce overall sorting overhead and + * yield a corresponding performance improvement. + * - When input a contiguous sequence of segments, a single sequence + * `segment_offsets` (of length `num_segments + 1`) can be aliased for both + * the `d_begin_offsets` and `d_end_offsets` parameters (where the latter + * is specified as `segment_offsets + 1`). + * - The range `[d_keys_out, d_keys_out + num_items)` shall not overlap + * `[d_keys_in, d_keys_in + num_items)`, + * `[d_begin_offsets, d_begin_offsets + num_segments)` nor + * `[d_end_offsets, d_end_offsets + num_segments)` in any way. + * - @devicestorageNP For sorting using only `O(P)` temporary storage, see + * the sorting interface using DoubleBuffer wrappers below. + * - Segments are not required to be contiguous. For all index values `i` + * outside the specified segments `d_keys_in[i]`, `d_keys_out[i]` will not + * be accessed nor modified. + * - @devicestorage + * + * @par Snippet + * The code snippet below illustrates the batched sorting of three segments + * (with one zero-length segment) of `int` keys. + * @par + * @code + * #include + * // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers + * // for sorting data + * int num_items; // e.g., 7 + * int num_segments; // e.g., 3 + * int *d_offsets; // e.g., [0, 3, 3, 7] + * int *d_keys_in; // e.g., [8, 6, 7, 5, 3, 0, 9] + * int *d_keys_out; // e.g., [-, -, -, -, -, -, -] + * ... + * + * // Determine temporary device storage requirements + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceSegmentedRadixSort::SortKeys( + * d_temp_storage, temp_storage_bytes, d_keys_in, d_keys_out, + * num_items, num_segments, d_offsets, d_offsets + 1); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run sorting operation + * cub::DeviceSegmentedRadixSort::SortKeys( + * d_temp_storage, temp_storage_bytes, d_keys_in, d_keys_out, + * num_items, num_segments, d_offsets, d_offsets + 1); + * + * // d_keys_out <-- [6, 7, 8, 0, 3, 5, 9] + * + * @endcode + * + * @tparam KeyT + * **[inferred]** Key type + * + * @tparam BeginOffsetIteratorT + * **[inferred]** Random-access input iterator type for reading segment + * beginning offsets \iterator + * + * @tparam EndOffsetIteratorT + * **[inferred]** Random-access input iterator type for reading segment + * ending offsets \iterator + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When NULL, the required allocation size is written to \p temp_storage_bytes and no work is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of \p d_temp_storage allocation + * + * @param[in] d_keys_in + * Device-accessible pointer to the input data of key data to sort + * + * @param[out] d_keys_out + * Device-accessible pointer to the sorted output sequence of key data + * + * @param[in] num_items + * The total number of items to sort (across all segments) + * + * @param[in] num_segments + * The number of segments that comprise the sorting data + * + * @param[in] d_begin_offsets + * Random-access input iterator to the sequence of beginning offsets of + * length `num_segments`, such that `d_begin_offsets[i]` is the first + * element of the *i*th data segment in `d_keys_*` and + * `d_values_*` + * + * @param[in] d_end_offsets + * Random-access input iterator to the sequence of ending offsets of length + * `num_segments`, such that `d_end_offsets[i] - 1` is the last element of + * the *i*th data segment in `d_keys_*` and `d_values_*`. + * If `d_end_offsets[i] - 1 <= d_begin_offsets[i]`, the *i*th is + * considered empty. + * + * @param[in] begin_bit + * **[optional]** The least-significant bit index (inclusive) needed for + * key comparison + * + * @param[in] end_bit + * **[optional]** The most-significant bit index (exclusive) needed for key + * comparison (e.g., `sizeof(unsigned int) * 8`) + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. + * Default is stream0. + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + SortKeys(void *d_temp_storage, + size_t &temp_storage_bytes, + const KeyT *d_keys_in, + KeyT *d_keys_out, + int num_items, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + int begin_bit = 0, + int end_bit = sizeof(KeyT) * 8, + cudaStream_t stream = 0) + { + // Signed integer type for global offsets + using OffsetT = int; + + // Null value type + DoubleBuffer d_keys(const_cast(d_keys_in), d_keys_out); + DoubleBuffer d_values; + + return DispatchSegmentedRadixSort::Dispatch(d_temp_storage, + temp_storage_bytes, + d_keys, + d_values, + num_items, + num_segments, + d_begin_offsets, + d_end_offsets, + begin_bit, + end_bit, + false, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + SortKeys(void *d_temp_storage, + size_t &temp_storage_bytes, + const KeyT *d_keys_in, + KeyT *d_keys_out, + int num_items, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + int begin_bit, + int end_bit, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return SortKeys( + d_temp_storage, + temp_storage_bytes, + d_keys_in, + d_keys_out, + num_items, + num_segments, + d_begin_offsets, + d_end_offsets, + begin_bit, + end_bit, + stream); + } + + /** + * @brief Sorts segments of keys into ascending order. (~N auxiliary storage required). + * + * @par + * - The sorting operation is given a pair of key buffers managed by a + * DoubleBuffer structure that indicates which of the two buffers is + * "current" (and thus contains the input data to be sorted). + * - The contents of both buffers may be altered by the sorting operation. + * - Upon completion, the sorting operation will update the "current" + * indicator within the DoubleBuffer wrapper to reference which of the two + * buffers now contains the sorted output sequence (a function of the + * number of key bits specified and the targeted device architecture). + * - When input a contiguous sequence of segments, a single sequence + * `segment_offsets` (of length `num_segments + 1`) can be aliased for both + * the `d_begin_offsets` and `d_end_offsets` parameters (where the latter + * is specified as `segment_offsets + 1`). + * - An optional bit subrange `[begin_bit, end_bit)` of differentiating key + * bits can be specified. This can reduce overall sorting overhead and + * yield a corresponding performance improvement. + * - Let `cur = d_keys.Current()` and `alt = d_keys.Alternate()`. + * The range `[cur, cur + num_items)` shall not overlap + * `[alt, alt + num_items)`. Both ranges shall not overlap + * `[d_begin_offsets, d_begin_offsets + num_segments)` nor + * `[d_end_offsets, d_end_offsets + num_segments)` in any way. + * - Segments are not required to be contiguous. For all index values `i` + * outside the specified segments `d_keys.Current()[i]`, + * `d_keys[i].Alternate()[i]` will not be accessed nor modified. + * - @devicestorageP + * - @devicestorage + * + * @par Snippet + * The code snippet below illustrates the batched sorting of three segments + * (with one zero-length segment) of `int` keys. + * @par + * @code + * #include + * // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers for + * // sorting data + * int num_items; // e.g., 7 + * int num_segments; // e.g., 3 + * int *d_offsets; // e.g., [0, 3, 3, 7] + * int *d_key_buf; // e.g., [8, 6, 7, 5, 3, 0, 9] + * int *d_key_alt_buf; // e.g., [-, -, -, -, -, -, -] + * ... + * + * // Create a DoubleBuffer to wrap the pair of device pointers + * cub::DoubleBuffer d_keys(d_key_buf, d_key_alt_buf); + * + * // Determine temporary device storage requirements + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceSegmentedRadixSort::SortKeys( + * d_temp_storage, temp_storage_bytes, d_keys, + * num_items, num_segments, d_offsets, d_offsets + 1); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run sorting operation + * cub::DeviceSegmentedRadixSort::SortKeys( + * d_temp_storage, temp_storage_bytes, d_keys, + * num_items, num_segments, d_offsets, d_offsets + 1); + * + * // d_keys.Current() <-- [6, 7, 8, 0, 3, 5, 9] + * + * @endcode + * + * @tparam KeyT + * **[inferred]** Key type + * + * @tparam BeginOffsetIteratorT + * **[inferred]** Random-access input iterator type for reading segment + * beginning offsets \iterator + * + * @tparam EndOffsetIteratorT + * **[inferred]** Random-access input iterator type for reading segment + * ending offsets \iterator + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no work + * is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in,out] d_keys + * Reference to the double-buffer of keys whose "current" device-accessible + * buffer contains the unsorted input keys and, upon return, is updated to + * point to the sorted output keys + * + * @param[in] num_items + * The total number of items to sort (across all segments) + * + * @param[in] num_segments + * The number of segments that comprise the sorting data + * + * @param[in] d_begin_offsets + * Random-access input iterator to the sequence of beginning offsets of + * length `num_segments`, such that `d_begin_offsets[i]` is the first + * element of the *i*th data segment in `d_keys_*` and + * `d_values_*` + * + * @param[in] d_end_offsets + * Random-access input iterator to the sequence of ending offsets of length + * `num_segments`, such that `d_end_offsets[i] - 1` is the last element of + * the *i*th data segment in `d_keys_*` and `d_values_*`. + * If `d_end_offsets[i] - 1` <= d_begin_offsets[i]`, the *i*th + * is considered empty. + * + * @param[in] begin_bit + * **[optional]** The least-significant bit index (inclusive) + * needed for key comparison + * + * @param[in] end_bit + * **[optional]** The most-significant bit index (exclusive) needed for key + * comparison (e.g., `sizeof(unsigned int) * 8`) + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. + * Default is stream0. + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + SortKeys(void *d_temp_storage, + size_t &temp_storage_bytes, + DoubleBuffer &d_keys, + int num_items, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + int begin_bit = 0, + int end_bit = sizeof(KeyT) * 8, + cudaStream_t stream = 0) + { + // Signed integer type for global offsets + using OffsetT = int; + + // Null value type + DoubleBuffer d_values; + + return DispatchSegmentedRadixSort::Dispatch(d_temp_storage, + temp_storage_bytes, + d_keys, + d_values, + num_items, + num_segments, + d_begin_offsets, + d_end_offsets, + begin_bit, + end_bit, + true, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + SortKeys(void *d_temp_storage, + size_t &temp_storage_bytes, + DoubleBuffer &d_keys, + int num_items, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + int begin_bit, + int end_bit, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return SortKeys( + d_temp_storage, + temp_storage_bytes, + d_keys, + num_items, + num_segments, + d_begin_offsets, + d_end_offsets, + begin_bit, + end_bit, + stream); + } + + /** + * @brief Sorts segments of keys into descending order. + * (`~2N` auxiliary storage required). + * + * @par + * - The contents of the input data are not altered by the sorting operation + * - When input a contiguous sequence of segments, a single sequence + * `segment_offsets` (of length `num_segments + 1`) can be aliased for both + * the `d_begin_offsets` and `d_end_offsets` parameters (where the latter + * is specified as `segment_offsets + 1`). + * - An optional bit subrange `[begin_bit, end_bit)` of differentiating key + * bits can be specified. This can reduce overall sorting overhead and + * yield a corresponding performance improvement. + * - The range `[d_keys_out, d_keys_out + num_items)` shall not overlap + * `[d_keys_in, d_keys_in + num_items)`, + * `[d_begin_offsets, d_begin_offsets + num_segments)` nor + * `[d_end_offsets, d_end_offsets + num_segments)` in any way. + * - @devicestorageNP For sorting using only `O(P)` temporary storage, see + * the sorting interface using DoubleBuffer wrappers below. + * - Segments are not required to be contiguous. For all index values `i` + * outside the specified segments `d_keys_in[i]`, `d_keys_out[i]` will not + * be accessed nor modified. + * - @devicestorage + * + * @par Snippet + * The code snippet below illustrates the batched sorting of three segments + * (with one zero-length segment) of `int` keys. + * @par + * @code + * #include + * // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers + * // for sorting data + * int num_items; // e.g., 7 + * int num_segments; // e.g., 3 + * int *d_offsets; // e.g., [0, 3, 3, 7] + * int *d_keys_in; // e.g., [8, 6, 7, 5, 3, 0, 9] + * int *d_keys_out; // e.g., [-, -, -, -, -, -, -] + * ... + * + * // Create a DoubleBuffer to wrap the pair of device pointers + * cub::DoubleBuffer d_keys(d_key_buf, d_key_alt_buf); + * + * // Determine temporary device storage requirements + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceSegmentedRadixSort::SortKeysDescending( + * d_temp_storage, temp_storage_bytes, d_keys_in, d_keys_out, + * num_items, num_segments, d_offsets, d_offsets + 1); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run sorting operation + * cub::DeviceSegmentedRadixSort::SortKeysDescending( + * d_temp_storage, temp_storage_bytes, d_keys_in, d_keys_out, + * num_items, num_segments, d_offsets, d_offsets + 1); + * + * // d_keys_out <-- [8, 7, 6, 9, 5, 3, 0] + * + * @endcode + * + * @tparam KeyT + * **[inferred]** Key type + * + * @tparam BeginOffsetIteratorT + * **[inferred]** Random-access input iterator type for reading segment + * beginning offsets \iterator + * + * @tparam EndOffsetIteratorT + * **[inferred]** Random-access input iterator type for reading segment + * ending offsets \iterator + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no work + * is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in] d_keys_in + * Device-accessible pointer to the input data of key data to sort + * + * @param[out] d_keys_out + * Device-accessible pointer to the sorted output sequence of key data + * + * @param[in] num_items + * The total number of items to sort (across all segments) + * + * @param[in] num_segments + * The number of segments that comprise the sorting data + * + * @param[in] d_begin_offsets + * Random-access input iterator to the sequence of beginning offsets of + * length `num_segments`, such that `d_begin_offsets[i]` is the first + * element of the *i*th data segment in `d_keys_*` and + * `d_values_*` + * + * @param[in] d_end_offsets + * Random-access input iterator to the sequence of ending offsets of length + * `num_segments`, such that `d_end_offsets[i] - 1` is the last element of + * the *i*th data segment in `d_keys_*` and `d_values_*`. + * If `d_end_offsets[i] - 1 <= d_begin_offsets[i]`, the *i*th is + * considered empty. + * + * @param[in] begin_bit + * **[optional]** The least-significant bit index (inclusive) needed for + * key comparison + * + * @param[in] end_bit + * **[optional]** The most-significant bit index (exclusive) needed for key + * comparison (e.g., sizeof(unsigned int) * 8) + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. + * Default is stream0. + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + SortKeysDescending(void *d_temp_storage, + size_t &temp_storage_bytes, + const KeyT *d_keys_in, + KeyT *d_keys_out, + int num_items, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + int begin_bit = 0, + int end_bit = sizeof(KeyT) * 8, + cudaStream_t stream = 0) + { + // Signed integer type for global offsets + using OffsetT = int; + + DoubleBuffer d_keys(const_cast(d_keys_in), d_keys_out); + DoubleBuffer d_values; + + return DispatchSegmentedRadixSort::Dispatch(d_temp_storage, + temp_storage_bytes, + d_keys, + d_values, + num_items, + num_segments, + d_begin_offsets, + d_end_offsets, + begin_bit, + end_bit, + false, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + SortKeysDescending(void *d_temp_storage, + size_t &temp_storage_bytes, + const KeyT *d_keys_in, + KeyT *d_keys_out, + int num_items, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + int begin_bit, + int end_bit, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return SortKeysDescending( + d_temp_storage, + temp_storage_bytes, + d_keys_in, + d_keys_out, + num_items, + num_segments, + d_begin_offsets, + d_end_offsets, + begin_bit, + end_bit, + stream); + } + + /** + * @brief Sorts segments of keys into descending order. + * (`~N` auxiliary storage required). + * + * @par + * - The sorting operation is given a pair of key buffers managed by a + * DoubleBuffer structure that indicates which of the two buffers is + * "current" (and thus contains the input data to be sorted). + * - The contents of both buffers may be altered by the sorting operation. + * - Upon completion, the sorting operation will update the "current" + * indicator within the DoubleBuffer wrapper to reference which of the two + * buffers now contains the sorted output sequence (a function of the + * number of key bits specified and the targeted device architecture). + * - When input a contiguous sequence of segments, a single sequence + * `segment_offsets` (of length `num_segments + 1`) can be aliased + * for both the `d_begin_offsets` and `d_end_offsets` parameters (where + * the latter is specified as `segment_offsets + 1`). + * - An optional bit subrange `[begin_bit, end_bit)` of differentiating key + * bits can be specified. This can reduce overall sorting overhead and + * yield a corresponding performance improvement. + * - Let `cur = d_keys.Current()` and `alt = d_keys.Alternate()`. + * The range `[cur, cur + num_items)` shall not overlap + * `[alt, alt + num_items)`. Both ranges shall not overlap + * `[d_begin_offsets, d_begin_offsets + num_segments)` nor + * `[d_end_offsets, d_end_offsets + num_segments)` in any way. + * - Segments are not required to be contiguous. For all index values `i` + * outside the specified segments `d_keys.Current()[i]`, + * `d_keys[i].Alternate()[i]` will not be accessed nor modified. + * - @devicestorageP + * - @devicestorage + * + * @par Snippet + * The code snippet below illustrates the batched sorting of three segments + * (with one zero-length segment) of `int` keys. + * @par + * @code + * #include + * // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers + * // for sorting data + * int num_items; // e.g., 7 + * int num_segments; // e.g., 3 + * int *d_offsets; // e.g., [0, 3, 3, 7] + * int *d_key_buf; // e.g., [8, 6, 7, 5, 3, 0, 9] + * int *d_key_alt_buf; // e.g., [-, -, -, -, -, -, -] + * ... + * + * // Create a DoubleBuffer to wrap the pair of device pointers + * cub::DoubleBuffer d_keys(d_key_buf, d_key_alt_buf); + * + * // Determine temporary device storage requirements + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceSegmentedRadixSort::SortKeysDescending( + * d_temp_storage, temp_storage_bytes, d_keys, + * num_items, num_segments, d_offsets, d_offsets + 1); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run sorting operation + * cub::DeviceSegmentedRadixSort::SortKeysDescending( + * d_temp_storage, temp_storage_bytes, d_keys, + * num_items, num_segments, d_offsets, d_offsets + 1); + * + * // d_keys.Current() <-- [8, 7, 6, 9, 5, 3, 0] + * @endcode + * + * @tparam KeyT + * **[inferred]** Key type + * + * @tparam BeginOffsetIteratorT + * **[inferred]** Random-access input iterator type for reading segment + * beginning offsets \iterator + * + * @tparam EndOffsetIteratorT + * **[inferred]** Random-access input iterator type for reading segment + * ending offsets \iterator + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no work + * is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in,out] d_keys + * Reference to the double-buffer of keys whose "current" device-accessible + * buffer contains the unsorted input keys and, upon return, is updated to + * point to the sorted output keys + * + * @param[in] num_items + * The total number of items to sort (across all segments) + * + * @param[in] num_segments + * The number of segments that comprise the sorting data + * + * @param[in] d_begin_offsets + * Random-access input iterator to the sequence of beginning offsets of + * length `num_segments`, such that `d_begin_offsets[i]` is the first + * element of the *i*th data segment in `d_keys_*` and + * `d_values_*` + * + * @param[in] d_end_offsets + * Random-access input iterator to the sequence of ending offsets of length + * `num_segments`, such that `d_end_offsets[i] - 1` is the last element of + * the *i*th data segment in `d_keys_*` and `d_values_*`. + * If `d_end_offsets[i] - 1 <= d_begin_offsets[i], the *i*th is + * considered empty. + * + * @param[in] begin_bit + * **[optional]** The least-significant bit index (inclusive) needed for + * key comparison + * + * @param[in] end_bit + * **[optional]** The most-significant bit index (exclusive) needed for key + * comparison (e.g., `sizeof(unsigned int) * 8`) + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. + * Default is stream0. + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + SortKeysDescending(void *d_temp_storage, + size_t &temp_storage_bytes, + DoubleBuffer &d_keys, + int num_items, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + int begin_bit = 0, + int end_bit = sizeof(KeyT) * 8, + cudaStream_t stream = 0) + { + // Signed integer type for global offsets + using OffsetT = int; + + // Null value type + DoubleBuffer d_values; + + return DispatchSegmentedRadixSort::Dispatch(d_temp_storage, + temp_storage_bytes, + d_keys, + d_values, + num_items, + num_segments, + d_begin_offsets, + d_end_offsets, + begin_bit, + end_bit, + true, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + SortKeysDescending(void *d_temp_storage, + size_t &temp_storage_bytes, + DoubleBuffer &d_keys, + int num_items, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + int begin_bit, + int end_bit, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return SortKeysDescending( + d_temp_storage, + temp_storage_bytes, + d_keys, + num_items, + num_segments, + d_begin_offsets, + d_end_offsets, + begin_bit, + end_bit, + stream); + } + + //@} end member group +}; + +CUB_NAMESPACE_END + + diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/device/device_segmented_reduce.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/device/device_segmented_reduce.cuh new file mode 100644 index 0000000000000000000000000000000000000000..52706f2b133a3f431cd3481f00645ebebebeada9 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/device/device_segmented_reduce.cuh @@ -0,0 +1,1203 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2022, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * @file cub::DeviceSegmentedReduce provides device-wide, parallel operations + * for computing a batched reduction across multiple sequences of data + * items residing within device-accessible memory. + */ + +#pragma once + +#include + +#include +#include +#include +#include +#include +#include + +CUB_NAMESPACE_BEGIN + + +/** + * @brief DeviceSegmentedReduce provides device-wide, parallel operations for + * computing a reduction across multiple sequences of data items + * residing within device-accessible memory. ![](reduce_logo.png) + * @ingroup SegmentedModule + * + * @par Overview + * A *reduction* + * (or *fold*) uses a binary combining operator to compute a single aggregate + * from a sequence of input elements. + * + * @par Usage Considerations + * @cdp_class{DeviceSegmentedReduce} + * + */ +struct DeviceSegmentedReduce +{ + /** + * @brief Computes a device-wide segmented reduction using the specified + * binary `reduction_op` functor. + * + * @par + * - Does not support binary reduction operators that are non-commutative. + * - Provides "run-to-run" determinism for pseudo-associative reduction + * (e.g., addition of floating point types) on the same GPU device. + * However, results for pseudo-associative reduction may be inconsistent + * from one device to a another device of a different compute-capability + * because CUB can employ different tile-sizing for different architectures. + * - When input a contiguous sequence of segments, a single sequence + * `segment_offsets` (of length `num_segments + 1`) can be aliased + * for both the `d_begin_offsets` and `d_end_offsets` parameters (where + * the latter is specified as `segment_offsets + 1`). + * - Let `s` be in `[0, num_segments)`. The range + * `[d_out + d_begin_offsets[s], d_out + d_end_offsets[s])` shall not + * overlap `[d_in + d_begin_offsets[s], d_in + d_end_offsets[s])`, + * `[d_begin_offsets, d_begin_offsets + num_segments)` nor + * `[d_end_offsets, d_end_offsets + num_segments)`. + * - @devicestorage + * + * @par Snippet + * The code snippet below illustrates a custom min-reduction of a device + * vector of `int` data elements. + * @par + * @code + * #include + * // or equivalently + * + * // CustomMin functor + * struct CustomMin + * { + * template + * CUB_RUNTIME_FUNCTION __forceinline__ + * T operator()(const T &a, const T &b) const { + * return (b < a) ? b : a; + * } + * }; + * + * // Declare, allocate, and initialize device-accessible pointers + * // for input and output + * int num_segments; // e.g., 3 + * int *d_offsets; // e.g., [0, 3, 3, 7] + * int *d_in; // e.g., [8, 6, 7, 5, 3, 0, 9] + * int *d_out; // e.g., [-, -, -] + * CustomMin min_op; + * int initial_value; // e.g., INT_MAX + * ... + * + * // Determine temporary device storage requirements + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceSegmentedReduce::Reduce( + * d_temp_storage, temp_storage_bytes, d_in, d_out, + * num_segments, d_offsets, d_offsets + 1, min_op, initial_value); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run reduction + * cub::DeviceSegmentedReduce::Reduce( + * d_temp_storage, temp_storage_bytes, d_in, d_out, + * num_segments, d_offsets, d_offsets + 1, min_op, initial_value); + * + * // d_out <-- [6, INT_MAX, 0] + * @endcode + * + * @tparam InputIteratorT + * **[inferred]** Random-access input iterator type for reading input + * items \iterator + * + * @tparam OutputIteratorT + * **[inferred]** Output iterator type for recording the reduced + * aggregate \iterator + * + * @tparam BeginOffsetIteratorT + * **[inferred]** Random-access input iterator type for reading segment + * beginning offsets \iterator + * + * @tparam EndOffsetIteratorT + * **[inferred]** Random-access input iterator type for reading segment + * ending offsets \iterator + * + * @tparam ReductionOp + * **[inferred]** Binary reduction functor type having member + * `T operator()(const T &a, const T &b)` + * + * @tparam T + * **[inferred]** Data element type that is convertible to the `value` type + * of `InputIteratorT` + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no + * work is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of \p d_temp_storage allocation + * + * @param[in] d_in + * Pointer to the input sequence of data items + * + * @param[out] d_out + * Pointer to the output aggregate + * + * @param[in] num_segments + * The number of segments that comprise the sorting data + * + * @param[in] d_begin_offsets + * Random-access input iterator to the sequence of beginning offsets of + * length `num_segments`, such that `d_begin_offsets[i]` is the first + * element of the *i*th data segment in `d_keys_*` and + * `d_values_*` + * + * @param[in] d_end_offsets + * Random-access input iterator to the sequence of ending offsets of length + * `num_segments`, such that `d_end_offsets[i] - 1` is the last element of + * the *i*th data segment in `d_keys_*` and `d_values_*`. + * If `d_end_offsets[i] - 1 <= d_begin_offsets[i]`, the *i*th is + * considered empty. + * + * @param[in] reduction_op + * Binary reduction functor + * + * @param[in] initial_value + * Initial value of the reduction for each segment + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. + * Default is stream0. + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + Reduce(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OutputIteratorT d_out, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + ReductionOp reduction_op, + T initial_value, + cudaStream_t stream = 0) + { + // Signed integer type for global offsets + using OffsetT = int; + + return DispatchSegmentedReduce::Dispatch(d_temp_storage, + temp_storage_bytes, + d_in, + d_out, + num_segments, + d_begin_offsets, + d_end_offsets, + reduction_op, + initial_value, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + Reduce(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OutputIteratorT d_out, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + ReductionOp reduction_op, + T initial_value, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return Reduce(d_temp_storage, + temp_storage_bytes, + d_in, + d_out, + num_segments, + d_begin_offsets, + d_end_offsets, + reduction_op, + initial_value, + stream); + } + + /** + * @brief Computes a device-wide segmented sum using the addition (`+`) + * operator. + * + * @par + * - Uses `0` as the initial value of the reduction for each segment. + * - When input a contiguous sequence of segments, a single sequence + * `segment_offsets` (of length `num_segments + 1`) can be aliased + * for both the `d_begin_offsets` and `d_end_offsets` parameters (where + * the latter is specified as `segment_offsets + 1`). + * - Does not support `+` operators that are non-commutative. + * - Let `s` be in `[0, num_segments)`. The range + * `[d_out + d_begin_offsets[s], d_out + d_end_offsets[s])` shall not + * overlap `[d_in + d_begin_offsets[s], d_in + d_end_offsets[s])`, + * `[d_begin_offsets, d_begin_offsets + num_segments)` nor + * `[d_end_offsets, d_end_offsets + num_segments)`. + * - @devicestorage + * + * @par Snippet + * The code snippet below illustrates the sum reduction of a device vector of + * `int` data elements. + * @par + * @code + * #include + * // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers + * // for input and output + * int num_segments; // e.g., 3 + * int *d_offsets; // e.g., [0, 3, 3, 7] + * int *d_in; // e.g., [8, 6, 7, 5, 3, 0, 9] + * int *d_out; // e.g., [-, -, -] + * ... + * + * // Determine temporary device storage requirements + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceSegmentedReduce::Sum( + * d_temp_storage, temp_storage_bytes, d_in, d_out, + * num_segments, d_offsets, d_offsets + 1); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run sum-reduction + * cub::DeviceSegmentedReduce::Sum( + * d_temp_storage, temp_storage_bytes, d_in, d_out, + * num_segments, d_offsets, d_offsets + 1); + * + * // d_out <-- [21, 0, 17] + * @endcode + * + * @tparam InputIteratorT + * **[inferred]** Random-access input iterator type for reading input + * items \iterator + * + * @tparam OutputIteratorT + * **[inferred]** Output iterator type for recording the reduced aggregate + * \iterator + * + * @tparam BeginOffsetIteratorT + * **[inferred]** Random-access input iterator type for reading segment + * beginning offsets \iterator + * + * @tparam EndOffsetIteratorT + * **[inferred]** Random-access input iterator type for reading segment + * ending offsets \iterator + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no work + * is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in] d_in + * Pointer to the input sequence of data items + * + * @param[out] d_out + * Pointer to the output aggregate + * + * @param[in] num_segments + * The number of segments that comprise the sorting data + * + * @param[in] d_begin_offsets + * Random-access input iterator to the sequence of beginning offsets of + * length `num_segments`, such that `d_begin_offsets[i]` is the first + * element of the *i*th data segment in `d_keys_*` and + * `d_values_*` + * + * @param[in] d_end_offsets + * Random-access input iterator to the sequence of ending offsets of length + * `num_segments`, such that `d_end_offsets[i] - 1` is the last element of + * the *i*th data segment in `d_keys_*` and `d_values_*`. + * If `d_end_offsets[i] - 1 <= d_begin_offsets[i]`, the *i*th is + * considered empty. + * + * @param[in] stream + * **[optional] CUDA stream to launch kernels within. + * Default is stream0. + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + Sum(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OutputIteratorT d_out, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + cudaStream_t stream = 0) + { + // Signed integer type for global offsets + using OffsetT = int; + + // The output value type + using OutputT = + cub::detail::non_void_value_t>; + + return DispatchSegmentedReduce< + InputIteratorT, + OutputIteratorT, + BeginOffsetIteratorT, + EndOffsetIteratorT, + OffsetT, + cub::Sum>::Dispatch(d_temp_storage, + temp_storage_bytes, + d_in, + d_out, + num_segments, + d_begin_offsets, + d_end_offsets, + cub::Sum(), + OutputT(), // zero-initialize + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + Sum(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OutputIteratorT d_out, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return Sum(d_temp_storage, + temp_storage_bytes, + d_in, + d_out, + num_segments, + d_begin_offsets, + d_end_offsets, + stream); + } + + /** + * @brief Computes a device-wide segmented minimum using the less-than + * (`<`) operator. + * + * @par + * - Uses `std::numeric_limits::max()` as the initial value of the + * reduction for each segment. + * - When input a contiguous sequence of segments, a single sequence + * `segment_offsets` (of length `num_segments + 1`) can be aliased for both + * the `d_begin_offsets` and `d_end_offsets` parameters (where the latter is + * specified as `segment_offsets + 1`). + * - Does not support `<` operators that are non-commutative. + * - Let `s` be in `[0, num_segments)`. The range + * `[d_out + d_begin_offsets[s], d_out + d_end_offsets[s])` shall not + * overlap `[d_in + d_begin_offsets[s], d_in + d_end_offsets[s])`, + * `[d_begin_offsets, d_begin_offsets + num_segments)` nor + * `[d_end_offsets, d_end_offsets + num_segments)`. + * - @devicestorage + * + * @par Snippet + * The code snippet below illustrates the min-reduction of a device vector of + * `int` data elements. + * @par + * @code + * #include + * // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers + * // for input and output + * int num_segments; // e.g., 3 + * int *d_offsets; // e.g., [0, 3, 3, 7] + * int *d_in; // e.g., [8, 6, 7, 5, 3, 0, 9] + * int *d_out; // e.g., [-, -, -] + * ... + * + * // Determine temporary device storage requirements + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceSegmentedReduce::Min( + * d_temp_storage, temp_storage_bytes, d_in, d_out, + * num_segments, d_offsets, d_offsets + 1); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run min-reduction + * cub::DeviceSegmentedReduce::Min( + * d_temp_storage, temp_storage_bytes, d_in, d_out, + * num_segments, d_offsets, d_offsets + 1); + * + * // d_out <-- [6, INT_MAX, 0] + * @endcode + * + * @tparam InputIteratorT + * **[inferred]** Random-access input iterator type for reading input + * items \iterator + * + * @tparam OutputIteratorT + * **[inferred]** Output iterator type for recording the reduced + * aggregate \iterator + * + * @tparam BeginOffsetIteratorT + * **[inferred]** Random-access input iterator type for reading segment + * beginning offsets \iterator + * + * @tparam EndOffsetIteratorT + * **[inferred]** Random-access input iterator type for reading segment + * ending offsets \iterator + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no work + * is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in] d_in + * Pointer to the input sequence of data items + * + * @param[out] d_out + * Pointer to the output aggregate + * + * @param[in] num_segments + * The number of segments that comprise the sorting data + * + * @param[in] d_begin_offsets + * Random-access input iterator to the sequence of beginning offsets of + * length `num_segments`, such that `d_begin_offsets[i]` is the first + * element of the *i*th data segment in `d_keys_*` and + * `d_values_*` + * + * @param[in] d_end_offsets + * Random-access input iterator to the sequence of ending offsets of length + * `num_segments`, such that `d_end_offsets[i] - 1` is the last element of + * the *i*th data segment in `d_keys_*` and `d_values_*`. + * If `d_end_offsets[i] - 1 <= d_begin_offsets[i]`, the *i*th is + * considered empty. + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. + * Default is stream0. + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + Min(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OutputIteratorT d_out, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + cudaStream_t stream = 0) + { + // Signed integer type for global offsets + using OffsetT = int; + + // The input value type + using InputT = cub::detail::value_t; + + return DispatchSegmentedReduce< + InputIteratorT, + OutputIteratorT, + BeginOffsetIteratorT, + EndOffsetIteratorT, + OffsetT, + cub::Min>::Dispatch(d_temp_storage, + temp_storage_bytes, + d_in, + d_out, + num_segments, + d_begin_offsets, + d_end_offsets, + cub::Min(), + Traits::Max(), // replace with + // std::numeric_limits::max() + // when C++11 support is more + // prevalent + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + Min(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OutputIteratorT d_out, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return Min(d_temp_storage, + temp_storage_bytes, + d_in, + d_out, + num_segments, + d_begin_offsets, + d_end_offsets, + stream); + } + + /** + * @brief Finds the first device-wide minimum in each segment using the + * less-than ('<') operator, also returning the in-segment index of + * that item. + * + * @par + * - The output value type of `d_out` is cub::KeyValuePair `` + * (assuming the value type of `d_in` is `T`) + * - The minimum of the *i*th segment is written to + * `d_out[i].value` and its offset in that segment is written to + * `d_out[i].key`. + * - The `{1, std::numeric_limits::max()}` tuple is produced for + * zero-length inputs + * - When input a contiguous sequence of segments, a single sequence + * `segment_offsets` (of length `num_segments + 1`) can be aliased for both + * the `d_begin_offsets` and `d_end_offsets` parameters (where the latter + * is specified as `segment_offsets + 1`). + * - Does not support `<` operators that are non-commutative. + * - Let `s` be in `[0, num_segments)`. The range + * `[d_out + d_begin_offsets[s], d_out + d_end_offsets[s])` shall not + * overlap `[d_in + d_begin_offsets[s], d_in + d_end_offsets[s])`, + * `[d_begin_offsets, d_begin_offsets + num_segments)` nor + * `[d_end_offsets, d_end_offsets + num_segments)`. + * - @devicestorage + * + * @par Snippet + * The code snippet below illustrates the argmin-reduction of a device vector + * of `int` data elements. + * @par + * @code + * #include + * // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers + * // for input and output + * int num_segments; // e.g., 3 + * int *d_offsets; // e.g., [0, 3, 3, 7] + * int *d_in; // e.g., [8, 6, 7, 5, 3, 0, 9] + * KeyValuePair *d_out; // e.g., [{-,-}, {-,-}, {-,-}] + * ... + * + * // Determine temporary device storage requirements + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceSegmentedReduce::ArgMin( + * d_temp_storage, temp_storage_bytes, d_in, d_out, + * num_segments, d_offsets, d_offsets + 1); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run argmin-reduction + * cub::DeviceSegmentedReduce::ArgMin( + * d_temp_storage, temp_storage_bytes, d_in, d_out, + * num_segments, d_offsets, d_offsets + 1); + * + * // d_out <-- [{1,6}, {1,INT_MAX}, {2,0}] + * @endcode + * + * @tparam InputIteratorT + * **[inferred]** Random-access input iterator type for reading input items + * (of some type `T`) \iterator + * + * @tparam OutputIteratorT + * **[inferred]** Output iterator type for recording the reduced aggregate + * (having value type `KeyValuePair`) \iterator + * + * @tparam BeginOffsetIteratorT + * **[inferred]** Random-access input iterator type for reading segment + * beginning offsets \iterator + * + * @tparam EndOffsetIteratorT + * **[inferred]** Random-access input iterator type for reading segment + * ending offsets \iterator + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no work + * is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in] d_in + * Pointer to the input sequence of data items + * + * @param[out] d_out + * Pointer to the output aggregate + * + * @param[in] num_segments + * The number of segments that comprise the sorting data + * + * @param[in] d_begin_offsets + * Random-access input iterator to the sequence of beginning offsets of + * length `num_segments`, such that `d_begin_offsets[i]` is the first + * element of the *i*th data segment in `d_keys_*` and + * `d_values_*` + * + * @param[in] d_end_offsets + * Random-access input iterator to the sequence of ending offsets of length + * `num_segments`, such that `d_end_offsets[i] - 1` is the last element of + * the *i*th data segment in `d_keys_*` and `d_values_*`. + * If `d_end_offsets[i] - 1 <= d_begin_offsets[i]`, the + * *i*th is considered empty. + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. + * Default is stream0. + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + ArgMin(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OutputIteratorT d_out, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + cudaStream_t stream = 0) + { + // Signed integer type for global offsets + using OffsetT = int; + + // The input type + using InputValueT = cub::detail::value_t; + + // The output tuple type + using OutputTupleT = + cub::detail::non_void_value_t>; + + // The output value type + using OutputValueT = typename OutputTupleT::Value; + + using AccumT = OutputTupleT; + + using InitT = detail::reduce::empty_problem_init_t; + + // Wrapped input iterator to produce index-value tuples + using ArgIndexInputIteratorT = + ArgIndexInputIterator; + + ArgIndexInputIteratorT d_indexed_in(d_in); + + // Initial value + // TODO Address https://github.com/NVIDIA/cub/issues/651 + InitT initial_value{AccumT(1, Traits::Max())}; + + return DispatchSegmentedReduce::Dispatch(d_temp_storage, + temp_storage_bytes, + d_indexed_in, + d_out, + num_segments, + d_begin_offsets, + d_end_offsets, + cub::ArgMin(), + initial_value, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + ArgMin(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OutputIteratorT d_out, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return ArgMin(d_temp_storage, + temp_storage_bytes, + d_in, + d_out, + num_segments, + d_begin_offsets, + d_end_offsets, + stream); + } + + /** + * @brief Computes a device-wide segmented maximum using the greater-than + * (`>`) operator. + * + * @par + * - Uses `std::numeric_limits::lowest()` as the initial value of the + * reduction. + * - When input a contiguous sequence of segments, a single sequence + * `segment_offsets` (of length `num_segments + 1`) can be aliased + * for both the `d_begin_offsets` and `d_end_offsets` parameters (where + * the latter is specified as `segment_offsets + 1`). + * - Does not support `>` operators that are non-commutative. + * - Let `s` be in `[0, num_segments)`. The range + * `[d_out + d_begin_offsets[s], d_out + d_end_offsets[s])` shall not + * overlap `[d_in + d_begin_offsets[s], d_in + d_end_offsets[s])`, + * `[d_begin_offsets, d_begin_offsets + num_segments)` nor + * `[d_end_offsets, d_end_offsets + num_segments)`. + * - @devicestorage + * + * @par Snippet + * The code snippet below illustrates the max-reduction of a device vector + * of `int` data elements. + * @par + * @code + * #include + * // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers + * // for input and output + * int num_segments; // e.g., 3 + * int *d_offsets; // e.g., [0, 3, 3, 7] + * int *d_in; // e.g., [8, 6, 7, 5, 3, 0, 9] + * int *d_out; // e.g., [-, -, -] + * ... + * + * // Determine temporary device storage requirements + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceSegmentedReduce::Max( + * d_temp_storage, temp_storage_bytes, d_in, d_out, + * num_segments, d_offsets, d_offsets + 1); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run max-reduction + * cub::DeviceSegmentedReduce::Max( + * d_temp_storage, temp_storage_bytes, d_in, d_out, + * num_segments, d_offsets, d_offsets + 1); + * + * // d_out <-- [8, INT_MIN, 9] + * @endcode + * + * @tparam InputIteratorT + * **[inferred]** Random-access input iterator type for reading input + * items \iterator + * + * @tparam OutputIteratorT + * **[inferred]** Output iterator type for recording the reduced + * aggregate \iterator + * + * @tparam BeginOffsetIteratorT + * **[inferred]** Random-access input iterator type for reading segment + * beginning offsets \iterator + * + * @tparam EndOffsetIteratorT + * **[inferred]** Random-access input iterator type for reading segment + * ending offsets \iterator + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no work + * is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in] d_in + * Pointer to the input sequence of data items + * + * @param[out] d_out + * Pointer to the output aggregate + * + * @param[in] num_segments + * The number of segments that comprise the sorting data + * + * @param[in] d_begin_offsets + * Random-access input iterator to the sequence of beginning offsets of + * length `num_segments`, such that `d_begin_offsets[i]` is the first + * element of the *i*th data segment in `d_keys_*` and + * `d_values_*` + * + * @param[in] d_end_offsets + * Random-access input iterator to the sequence of ending offsets of length + * `num_segments`, such that `d_end_offsets[i] - 1` is the last element of + * the *i*th data segment in `d_keys_*` and `d_values_*`. + * If `d_end_offsets[i] - 1 <= d_begin_offsets[i]`, the *i*th is + * considered empty. + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. + * Default is stream0. + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + Max(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OutputIteratorT d_out, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + cudaStream_t stream = 0) + { + // Signed integer type for global offsets + using OffsetT = int; + + // The input value type + using InputT = cub::detail::value_t; + + return DispatchSegmentedReduce< + InputIteratorT, + OutputIteratorT, + BeginOffsetIteratorT, + EndOffsetIteratorT, + OffsetT, + cub::Max>::Dispatch(d_temp_storage, + temp_storage_bytes, + d_in, + d_out, + num_segments, + d_begin_offsets, + d_end_offsets, + cub::Max(), + Traits::Lowest(), // replace with + // std::numeric_limits::lowest() + // when C++11 support is + // more prevalent + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + Max(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OutputIteratorT d_out, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return Max(d_temp_storage, + temp_storage_bytes, + d_in, + d_out, + num_segments, + d_begin_offsets, + d_end_offsets, + stream); + } + + /** + * @brief Finds the first device-wide maximum in each segment using the + * greater-than ('>') operator, also returning the in-segment index of + * that item + * + * @par + * - The output value type of `d_out` is `cub::KeyValuePair` + * (assuming the value type of `d_in` is `T`) + * - The maximum of the *i*th segment is written to + * `d_out[i].value` and its offset in that segment is written to + * `d_out[i].key`. + * - The `{1, std::numeric_limits::lowest()}` tuple is produced for + * zero-length inputs + * - When input a contiguous sequence of segments, a single sequence + * `segment_offsets` (of length `num_segments + 1`) can be aliased + * for both the `d_begin_offsets` and `d_end_offsets` parameters (where + * the latter is specified as `segment_offsets + 1`). + * - Does not support `>` operators that are non-commutative. + * - Let `s` be in `[0, num_segments)`. The range + * `[d_out + d_begin_offsets[s], d_out + d_end_offsets[s])` shall not + * overlap `[d_in + d_begin_offsets[s], d_in + d_end_offsets[s])`, + * `[d_begin_offsets, d_begin_offsets + num_segments)` nor + * `[d_end_offsets, d_end_offsets + num_segments)`. + * - @devicestorage + * + * @par Snippet + * The code snippet below illustrates the argmax-reduction of a device vector + * of `int` data elements. + * @par + * @code + * #include + * // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers + * // for input and output + * int num_segments; // e.g., 3 + * int *d_offsets; // e.g., [0, 3, 3, 7] + * int *d_in; // e.g., [8, 6, 7, 5, 3, 0, 9] + * KeyValuePair *d_out; // e.g., [{-,-}, {-,-}, {-,-}] + * ... + * + * // Determine temporary device storage requirements + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceSegmentedReduce::ArgMax( + * d_temp_storage, temp_storage_bytes, d_in, d_out, + * num_segments, d_offsets, d_offsets + 1); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run argmax-reduction + * cub::DeviceSegmentedReduce::ArgMax( + * d_temp_storage, temp_storage_bytes, d_in, d_out, + * num_segments, d_offsets, d_offsets + 1); + * + * // d_out <-- [{0,8}, {1,INT_MIN}, {3,9}] + * @endcode + * + * @tparam InputIteratorT + * **[inferred]** Random-access input iterator type for reading input items + * (of some type `T`) \iterator + * + * @tparam OutputIteratorT + * **[inferred]** Output iterator type for recording the reduced aggregate + * (having value type `KeyValuePair`) \iterator + * + * @tparam BeginOffsetIteratorT + * **[inferred]** Random-access input iterator type for reading segment + * beginning offsets \iterator + * + * @tparam EndOffsetIteratorT + * **[inferred]** Random-access input iterator type for reading segment + * ending offsets \iterator + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no work + * is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in] d_in + * Pointer to the input sequence of data items + * + * @param[out] d_out + * Pointer to the output aggregate + * + * @param[in] num_segments + * The number of segments that comprise the sorting data + * + * @param[in] d_begin_offsets + * Random-access input iterator to the sequence of beginning offsets of + * length `num_segments`, such that `d_begin_offsets[i]` is the first + * element of the *i*th data segment in `d_keys_*` and + * `d_values_*` + * + * @param[in] d_end_offsets + * Random-access input iterator to the sequence of ending offsets of length + * `num_segments`, such that `d_end_offsets[i] - 1` is the last element of + * the *i*th data segment in `d_keys_*` and `d_values_*`. + * If `d_end_offsets[i] - 1 <= d_begin_offsets[i]`, the *i*th is + * considered empty. + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. + * Default is stream0. + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + ArgMax(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OutputIteratorT d_out, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + cudaStream_t stream = 0) + { + // Signed integer type for global offsets + using OffsetT = int; + + // The input type + using InputValueT = cub::detail::value_t; + + // The output tuple type + using OutputTupleT = + cub::detail::non_void_value_t>; + + using AccumT = OutputTupleT; + + using InitT = detail::reduce::empty_problem_init_t; + + // The output value type + using OutputValueT = typename OutputTupleT::Value; + + // Wrapped input iterator to produce index-value tuples + using ArgIndexInputIteratorT = + ArgIndexInputIterator; + + ArgIndexInputIteratorT d_indexed_in(d_in); + + // Initial value + // TODO Address https://github.com/NVIDIA/cub/issues/651 + InitT initial_value{AccumT(1, Traits::Lowest())}; + + return DispatchSegmentedReduce::Dispatch(d_temp_storage, + temp_storage_bytes, + d_indexed_in, + d_out, + num_segments, + d_begin_offsets, + d_end_offsets, + cub::ArgMax(), + initial_value, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + ArgMax(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OutputIteratorT d_out, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return ArgMax(d_temp_storage, + temp_storage_bytes, + d_in, + d_out, + num_segments, + d_begin_offsets, + d_end_offsets, + stream); + } +}; + +CUB_NAMESPACE_END + + diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/device/device_segmented_sort.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/device/device_segmented_sort.cuh new file mode 100644 index 0000000000000000000000000000000000000000..2b86da950781aecc235daa3076208dd0707a9f4b --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/device/device_segmented_sort.cuh @@ -0,0 +1,3098 @@ +/****************************************************************************** + * Copyright (c) 2011-2022, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * @file + * cub::DeviceSegmentedSort provides device-wide, parallel operations for + * computing a batched sort across multiple, non-overlapping sequences of + * data items residing within device-accessible memory. + */ + +#pragma once + +#include +#include +#include +#include + +CUB_NAMESPACE_BEGIN + + +/** + * @brief DeviceSegmentedSort provides device-wide, parallel operations for + * computing a batched sort across multiple, non-overlapping sequences of + * data items residing within device-accessible memory. + * ![](segmented_sorting_logo.png) + * @ingroup SegmentedModule + * + * @par Overview + * The algorithm arranges items into ascending (or descending) order. + * The underlying sorting algorithm is undefined. Depending on the segment size, + * it might be radix sort, merge sort or something else. Therefore, no + * assumptions on the underlying implementation should be made. + * + * @par Differences from DeviceSegmentedRadixSort + * DeviceSegmentedRadixSort is optimized for significantly large segments (tens + * of thousands of items and more). Nevertheless, some domains produce a wide + * range of segment sizes. DeviceSegmentedSort partitions segments into size + * groups and specialize sorting algorithms for each group. This approach leads + * to better resource utilization in the presence of segment size imbalance or + * moderate segment sizes (up to thousands of items). + * This algorithm is more complex and consists of multiple kernels. This fact + * leads to longer compilation times as well as larger binaries sizes. + * + * @par Supported Types + * The algorithm has to satisfy the underlying algorithms restrictions. Radix + * sort usage restricts the list of supported types. Therefore, + * DeviceSegmentedSort can sort all of the built-in C++ numeric primitive types + * (`unsigned char`, `int`, `double`, etc.) as well as CUDA's `__half` and + * `__nv_bfloat16` 16-bit floating-point types. + * + * @par Segments are not required to be contiguous. Any element of input(s) or + * output(s) outside the specified segments will not be accessed nor modified. + * + * @par A simple example + * @code + * #include + * // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers + * // for sorting data + * int num_items; // e.g., 7 + * int num_segments; // e.g., 3 + * int *d_offsets; // e.g., [0, 3, 3, 7] + * int *d_keys_in; // e.g., [8, 6, 7, 5, 3, 0, 9] + * int *d_keys_out; // e.g., [-, -, -, -, -, -, -] + * int *d_values_in; // e.g., [0, 1, 2, 3, 4, 5, 6] + * int *d_values_out; // e.g., [-, -, -, -, -, -, -] + * ... + * + * // Determine temporary device storage requirements + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceSegmentedSort::SortPairs( + * d_temp_storage, temp_storage_bytes, + * d_keys_in, d_keys_out, d_values_in, d_values_out, + * num_items, num_segments, d_offsets, d_offsets + 1); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run sorting operation + * cub::DeviceSegmentedSort::SortPairs( + * d_temp_storage, temp_storage_bytes, + * d_keys_in, d_keys_out, d_values_in, d_values_out, + * num_items, num_segments, d_offsets, d_offsets + 1); + * + * // d_keys_out <-- [6, 7, 8, 0, 3, 5, 9] + * // d_values_out <-- [1, 2, 0, 5, 4, 3, 6] + * @endcode + */ +struct DeviceSegmentedSort +{ + + /*************************************************************************//** + * @name Keys-only + ****************************************************************************/ + //@{ + + /** + * @brief Sorts segments of keys into ascending order. Approximately + * `num_items + 2*num_segments` auxiliary storage required. + * + * @par + * - The contents of the input data are not altered by the sorting operation. + * - When the input is a contiguous sequence of segments, a single sequence + * @p segment_offsets (of length `num_segments+1`) can be aliased + * for both the @p d_begin_offsets and @p d_end_offsets parameters (where + * the latter is specified as `segment_offsets+1`). + * - SortKeys is not guaranteed to be stable. That is, suppose that @p i and + * @p j are equivalent: neither one is less than the other. It is not + * guaranteed that the relative order of these two elements will be + * preserved by sort. + * - The range `[d_keys_out, d_keys_out + num_items)` shall not overlap + * `[d_keys_in, d_keys_in + num_items)`, + * `[d_begin_offsets, d_begin_offsets + num_segments)` nor + * `[d_end_offsets, d_end_offsets + num_segments)` in any way. + * - Segments are not required to be contiguous. For all index values `i` + * outside the specified segments `d_keys_in[i]`, `d_keys_out[i]` will not + * be accessed nor modified. + * + * @par Snippet + * The code snippet below illustrates the batched sorting of three segments + * (with one zero-length segment) of @p int keys. + * + * @par + * @code + * #include + * // or equivalently + * + * // Declare, allocate, and initialize device-accessible + * // pointers for sorting data + * int num_items; // e.g., 7 + * int num_segments; // e.g., 3 + * int *d_offsets; // e.g., [0, 3, 3, 7] + * int *d_keys_in; // e.g., [8, 6, 7, 5, 3, 0, 9] + * int *d_keys_out; // e.g., [-, -, -, -, -, -, -] + * ... + * + * // Determine temporary device storage requirements + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceSegmentedSort::SortKeys( + * d_temp_storage, temp_storage_bytes, d_keys_in, d_keys_out, + * num_items, num_segments, d_offsets, d_offsets + 1); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run sorting operation + * cub::DeviceSegmentedSort::SortKeys( + * d_temp_storage, temp_storage_bytes, d_keys_in, d_keys_out, + * num_items, num_segments, d_offsets, d_offsets + 1); + * + * // d_keys_out <-- [6, 7, 8, 0, 3, 5, 9] + * @endcode + * + * @tparam KeyT + * [inferred] Key type + * + * @tparam BeginOffsetIteratorT + * [inferred] Random-access input iterator type for reading segment + * beginning offsets \iterator + * + * @tparam EndOffsetIteratorT + * [inferred] Random-access input iterator type for reading segment + * ending offsets \iterator + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When nullptr, the + * required allocation size is written to @p temp_storage_bytes and no work + * is done + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of @p d_temp_storage allocation + * + * @param[in] d_keys_in + * Device-accessible pointer to the input data of key data to sort + * + * @param[out] d_keys_out + * Device-accessible pointer to the sorted output sequence of key data + * + * @param[in] num_items + * The total number of items to sort (across all segments) + * + * @param[in] num_segments + * The number of segments that comprise the sorting data + * + * @param[in] d_begin_offsets + * Random-access input iterator to the sequence of beginning offsets of + * length `num_segments`, such that `d_begin_offsets[i]` is the first + * element of the ith data segment in `d_keys_*` and + * `d_values_*` + * + * @param[in] d_end_offsets + * Random-access input iterator to the sequence of ending offsets of length + * `num_segments`, such that `d_end_offsets[i] - 1` is the last element of + * the ith data segment in `d_keys_*` and `d_values_*`. + * If `d_end_offsets[i] - 1 <= d_begin_offsets[i]`, the i-th segment is + * considered empty. + * + * @param[in] stream + * [optional] CUDA stream to launch kernels within. Default is + * stream0. + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + SortKeys(void *d_temp_storage, + std::size_t &temp_storage_bytes, + const KeyT *d_keys_in, + KeyT *d_keys_out, + int num_items, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + cudaStream_t stream = 0) + { + constexpr bool is_descending = false; + constexpr bool is_overwrite_okay = false; + using DispatchT = DispatchSegmentedSort; + + DoubleBuffer d_keys(const_cast(d_keys_in), d_keys_out); + DoubleBuffer d_values; + + return DispatchT::Dispatch(d_temp_storage, + temp_storage_bytes, + d_keys, + d_values, + num_items, + num_segments, + d_begin_offsets, + d_end_offsets, + is_overwrite_okay, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + SortKeys(void *d_temp_storage, + std::size_t &temp_storage_bytes, + const KeyT *d_keys_in, + KeyT *d_keys_out, + int num_items, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return SortKeys( + d_temp_storage, + temp_storage_bytes, + d_keys_in, + d_keys_out, + num_items, + num_segments, + d_begin_offsets, + d_end_offsets, + stream); + } + + /** + * @brief Sorts segments of keys into descending order. Approximately + * `num_items + 2*num_segments` auxiliary storage required. + * + * @par + * - The contents of the input data are not altered by the sorting operation. + * - When the input is a contiguous sequence of segments, a single sequence + * @p segment_offsets (of length `num_segments + 1`) can be aliased + * for both the @p d_begin_offsets and @p d_end_offsets parameters (where + * the latter is specified as `segment_offsets + 1`). + * - SortKeysDescending is not guaranteed to be stable. That is, suppose that + * @p i and @p j are equivalent: neither one is less than the other. It is + * not guaranteed that the relative order of these two elements will be + * preserved by sort. + * - The range `[d_keys_out, d_keys_out + num_items)` shall not overlap + * `[d_keys_in, d_keys_in + num_items)`, + * `[d_begin_offsets, d_begin_offsets + num_segments)` nor + * `[d_end_offsets, d_end_offsets + num_segments)` in any way. + * - Segments are not required to be contiguous. For all index values `i` + * outside the specified segments `d_keys_in[i]`, `d_keys_out[i]` will not + * be accessed nor modified. + * + * @par Snippet + * The code snippet below illustrates the batched sorting of three segments + * (with one zero-length segment) of @p int keys. + * + * @par + * @code + * #include + * // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers + * // for sorting data + * int num_items; // e.g., 7 + * int num_segments; // e.g., 3 + * int *d_offsets; // e.g., [0, 3, 3, 7] + * int *d_keys_in; // e.g., [8, 6, 7, 5, 3, 0, 9] + * int *d_keys_out; // e.g., [-, -, -, -, -, -, -] + * ... + * + * // Determine temporary device storage requirements + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceSegmentedSort::SortKeysDescending( + * d_temp_storage, temp_storage_bytes, d_keys_in, d_keys_out, + * num_items, num_segments, d_offsets, d_offsets + 1); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run sorting operation + * cub::DeviceSegmentedSort::SortKeysDescending( + * d_temp_storage, temp_storage_bytes, d_keys_in, d_keys_out, + * num_items, num_segments, d_offsets, d_offsets + 1); + * + * // d_keys_out <-- [8, 7, 6, 9, 5, 3, 0] + * @endcode + * + * @tparam KeyT + * [inferred] Key type + * + * @tparam BeginOffsetIteratorT + * [inferred] Random-access input iterator type for reading segment + * beginning offsets \iterator + * + * @tparam EndOffsetIteratorT + * [inferred] Random-access input iterator type for reading segment + * ending offsets \iterator + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When nullptr, the + * required allocation size is written to @p temp_storage_bytes and no + * work is done + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of @p d_temp_storage allocation + * + * @param[in] d_keys_in + * Device-accessible pointer to the input data of key data to sort + * + * @param[out] d_keys_out + * Device-accessible pointer to the sorted output sequence of key data + * + * @param[in] num_items + * The total number of items to sort (across all segments) + * + * @param[in] num_segments + * The number of segments that comprise the sorting data + * + * @param[in] d_begin_offsets + * Random-access input iterator to the sequence of beginning offsets of + * length @p num_segments, such that `d_begin_offsets[i]` is the first + * element of the ith data segment in `d_keys_*` and + * `d_values_*` + * + * @param[in] d_end_offsets + * Random-access input iterator to the sequence of ending offsets of length + * @p num_segments, such that `d_end_offsets[i] - 1` is the last element of + * the ith data segment in `d_keys_*` and `d_values_*`. + * If `d_end_offsets[i] - 1 <= d_begin_offsets[i]`, the i-th segment is + * considered empty. + * + * @param[in] stream + * [optional] CUDA stream to launch kernels within. Default is + * stream0. + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + SortKeysDescending(void *d_temp_storage, + std::size_t &temp_storage_bytes, + const KeyT *d_keys_in, + KeyT *d_keys_out, + int num_items, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + cudaStream_t stream = 0) + { + constexpr bool is_descending = true; + constexpr bool is_overwrite_okay = false; + using DispatchT = DispatchSegmentedSort; + + DoubleBuffer d_keys(const_cast(d_keys_in), d_keys_out); + DoubleBuffer d_values; + + return DispatchT::Dispatch(d_temp_storage, + temp_storage_bytes, + d_keys, + d_values, + num_items, + num_segments, + d_begin_offsets, + d_end_offsets, + is_overwrite_okay, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + SortKeysDescending(void *d_temp_storage, + std::size_t &temp_storage_bytes, + const KeyT *d_keys_in, + KeyT *d_keys_out, + int num_items, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return SortKeysDescending( + d_temp_storage, + temp_storage_bytes, + d_keys_in, + d_keys_out, + num_items, + num_segments, + d_begin_offsets, + d_end_offsets, + stream); + } + + /** + * @brief Sorts segments of keys into ascending order. Approximately + * `2*num_segments` auxiliary storage required. + * + * @par + * - The sorting operation is given a pair of key buffers managed by a + * DoubleBuffer structure that indicates which of the two buffers is + * "current" (and thus contains the input data to be sorted). + * - The contents of both buffers may be altered by the sorting operation. + * - Upon completion, the sorting operation will update the "current" + * indicator within the DoubleBuffer wrapper to reference which of the two + * buffers now contains the sorted output sequence (a function of the number + * of key bits and the targeted device architecture). + * - When the input is a contiguous sequence of segments, a single sequence + * @p segment_offsets (of length `num_segments+1`) can be aliased + * for both the @p d_begin_offsets and @p d_end_offsets parameters (where + * the latter is specified as `segment_offsets+1`). + * - SortKeys is not guaranteed to be stable. That is, suppose that + * @p i and @p j are equivalent: neither one is less than the other. It is + * not guaranteed that the relative order of these two elements will be + * preserved by sort. + * - Let `cur = d_keys.Current()` and `alt = d_keys.Alternate()`. + * The range `[cur, cur + num_items)` shall not overlap + * `[alt, alt + num_items)`. Both ranges shall not overlap + * `[d_begin_offsets, d_begin_offsets + num_segments)` nor + * `[d_end_offsets, d_end_offsets + num_segments)` in any way. + * - Segments are not required to be contiguous. For all index values `i` + * outside the specified segments `d_keys.Current()[i]`, + * `d_keys[i].Alternate()[i]` will not be accessed nor modified. + * + * @par Snippet + * The code snippet below illustrates the batched sorting of three segments + * (with one zero-length segment) of @p int keys. + * + * @par + * @code + * #include + * // or equivalently + * + * // Declare, allocate, and initialize device-accessible + * // pointers for sorting data + * int num_items; // e.g., 7 + * int num_segments; // e.g., 3 + * int *d_offsets; // e.g., [0, 3, 3, 7] + * int *d_key_buf; // e.g., [8, 6, 7, 5, 3, 0, 9] + * int *d_key_alt_buf; // e.g., [-, -, -, -, -, -, -] + * ... + * + * // Create a DoubleBuffer to wrap the pair of device pointers + * cub::DoubleBuffer d_keys(d_key_buf, d_key_alt_buf); + * + * // Determine temporary device storage requirements + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceSegmentedSort::SortKeys( + * d_temp_storage, temp_storage_bytes, d_keys, + * num_items, num_segments, d_offsets, d_offsets + 1); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run sorting operation + * cub::DeviceSegmentedSort::SortKeys( + * d_temp_storage, temp_storage_bytes, d_keys, + * num_items, num_segments, d_offsets, d_offsets + 1); + * + * // d_keys.Current() <-- [6, 7, 8, 0, 3, 5, 9] + * @endcode + * + * @tparam KeyT + * [inferred] Key type + * + * @tparam BeginOffsetIteratorT + * [inferred] Random-access input iterator type for reading segment + * beginning offsets \iterator + * + * @tparam EndOffsetIteratorT + * [inferred] Random-access input iterator type for reading segment + * ending offsets \iterator + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When nullptr, the + * required allocation size is written to @p temp_storage_bytes and no + * work is done + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of @p d_temp_storage allocation + * + * @param[in,out] d_keys + * Reference to the double-buffer of keys whose "current" device-accessible + * buffer contains the unsorted input keys and, upon return, is updated to + * point to the sorted output keys + * + * @param[in] num_items + * The total number of items to sort (across all segments) + * + * @param[in] num_segments + * The number of segments that comprise the sorting data + * + * @param[in] d_begin_offsets + * Random-access input iterator to the sequence of beginning offsets of + * length @p num_segments, such that `d_begin_offsets[i]` is the first + * element of the ith data segment in `d_keys_*` + * and `d_values_*` + * + * @param[in] d_end_offsets + * Random-access input iterator to the sequence of ending offsets of length + * @p num_segments, such that `d_end_offsets[i] - 1` is the last element of + * the ith data segment in `d_keys_*` and `d_values_*`. + * If `d_end_offsets[i] - 1 <= d_begin_offsets[i]`, the i-th segment is + * considered empty. + * + * @param[in] stream + * [optional] CUDA stream to launch kernels within. Default is + * stream0. + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + SortKeys(void *d_temp_storage, + std::size_t &temp_storage_bytes, + DoubleBuffer &d_keys, + int num_items, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + cudaStream_t stream = 0) + { + constexpr bool is_descending = false; + constexpr bool is_overwrite_okay = true; + + using DispatchT = DispatchSegmentedSort; + + DoubleBuffer d_values; + + return DispatchT::Dispatch(d_temp_storage, + temp_storage_bytes, + d_keys, + d_values, + num_items, + num_segments, + d_begin_offsets, + d_end_offsets, + is_overwrite_okay, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + SortKeys(void *d_temp_storage, + std::size_t &temp_storage_bytes, + DoubleBuffer &d_keys, + int num_items, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return SortKeys( + d_temp_storage, + temp_storage_bytes, + d_keys, + num_items, + num_segments, + d_begin_offsets, + d_end_offsets, + stream); + } + + /** + * @brief Sorts segments of keys into descending order. Approximately + * `2*num_segments` auxiliary storage required. + * + * @par + * - The sorting operation is given a pair of key buffers managed by a + * DoubleBuffer structure that indicates which of the two buffers is + * "current" (and thus contains the input data to be sorted). + * - The contents of both buffers may be altered by the sorting operation. + * - Upon completion, the sorting operation will update the "current" + * indicator within the DoubleBuffer wrapper to reference which of the two + * buffers now contains the sorted output sequence (a function of the number + * of key bits and the targeted device architecture). + * - When the input is a contiguous sequence of segments, a single sequence + * @p segment_offsets (of length `num_segments + 1`) can be aliased + * for both the @p d_begin_offsets and @p d_end_offsets parameters (where + * the latter is specified as `segment_offsets + 1`). + * - SortKeysDescending is not guaranteed to be stable. That is, suppose that + * @p i and @p j are equivalent: neither one is less than the other. It is + * not guaranteed that the relative order of these two elements will be + * preserved by sort. + * - Let `cur = d_keys.Current()` and `alt = d_keys.Alternate()`. + * The range `[cur, cur + num_items)` shall not overlap + * `[alt, alt + num_items)`. Both ranges shall not overlap + * `[d_begin_offsets, d_begin_offsets + num_segments)` nor + * `[d_end_offsets, d_end_offsets + num_segments)` in any way. + * - Segments are not required to be contiguous. For all index values `i` + * outside the specified segments `d_keys.Current()[i]`, + * `d_keys[i].Alternate()[i]` will not be accessed nor modified. + * + * @par Snippet + * The code snippet below illustrates the batched sorting of three segments + * (with one zero-length segment) of @p int keys. + * + * @par + * @code + * #include + * // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers for + * // sorting data + * int num_items; // e.g., 7 + * int num_segments; // e.g., 3 + * int *d_offsets; // e.g., [0, 3, 3, 7] + * int *d_key_buf; // e.g., [8, 6, 7, 5, 3, 0, 9] + * int *d_key_alt_buf; // e.g., [-, -, -, -, -, -, -] + * ... + * + * // Create a DoubleBuffer to wrap the pair of device pointers + * cub::DoubleBuffer d_keys(d_key_buf, d_key_alt_buf); + * + * // Determine temporary device storage requirements + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceSegmentedSort::SortKeysDescending( + * d_temp_storage, temp_storage_bytes, d_keys, + * num_items, num_segments, d_offsets, d_offsets + 1); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run sorting operation + * cub::DeviceSegmentedSort::SortKeysDescending( + * d_temp_storage, temp_storage_bytes, d_keys, + * num_items, num_segments, d_offsets, d_offsets + 1); + * + * // d_keys.Current() <-- [8, 7, 6, 9, 5, 3, 0] + * @endcode + * + * @tparam KeyT + * [inferred] Key type + * + * @tparam BeginOffsetIteratorT + * [inferred] Random-access input iterator type for reading segment + * beginning offsets \iterator + * + * @tparam EndOffsetIteratorT + * [inferred] Random-access input iterator type for reading segment + * ending offsets \iterator + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to @p temp_storage_bytes and no work + * is done + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of @p d_temp_storage allocation + * + * @param[in,out] d_keys + * Reference to the double-buffer of keys whose "current" device-accessible + * buffer contains the unsorted input keys and, upon return, is updated to + * point to the sorted output keys + * + * @param[in] num_items + * The total number of items to sort (across all segments) + * + * @param[in] num_segments + * The number of segments that comprise the sorting data + * + * @param[in] d_begin_offsets + * Random-access input iterator to the sequence of beginning offsets of + * length @p num_segments, such that `d_begin_offsets[i]` is the first + * element of the ith data segment in `d_keys_*` and + * `d_values_*` + * + * @param[in] d_end_offsets + * Random-access input iterator to the sequence of ending offsets of length + * @p num_segments, such that `d_end_offsets[i] - 1` is the last element of + * the ith data segment in `d_keys_*` and `d_values_*`. + * If `d_end_offsets[i] - 1<= d_begin_offsets[i]`, the i-th segment is + * considered empty. + * + * @param[in] stream + * [optional] CUDA stream to launch kernels within. Default is + * stream0. + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + SortKeysDescending(void *d_temp_storage, + std::size_t &temp_storage_bytes, + DoubleBuffer &d_keys, + int num_items, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + cudaStream_t stream = 0) + { + constexpr bool is_descending = true; + constexpr bool is_overwrite_okay = true; + + using DispatchT = DispatchSegmentedSort; + + DoubleBuffer d_values; + + return DispatchT::Dispatch(d_temp_storage, + temp_storage_bytes, + d_keys, + d_values, + num_items, + num_segments, + d_begin_offsets, + d_end_offsets, + is_overwrite_okay, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + SortKeysDescending(void *d_temp_storage, + std::size_t &temp_storage_bytes, + DoubleBuffer &d_keys, + int num_items, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return SortKeysDescending( + d_temp_storage, + temp_storage_bytes, + d_keys, + num_items, + num_segments, + d_begin_offsets, + d_end_offsets, + stream); + } + + /** + * @brief Sorts segments of keys into ascending order. Approximately + * `num_items + 2*num_segments` auxiliary storage required. + * + * @par + * - The contents of the input data are not altered by the sorting operation. + * - When the input is a contiguous sequence of segments, a single sequence + * @p segment_offsets (of length `num_segments+1`) can be aliased + * for both the @p d_begin_offsets and @p d_end_offsets parameters (where + * the latter is specified as `segment_offsets+1`). + * - StableSortKeys is stable: it preserves the relative ordering of + * equivalent elements. That is, if @p x and @p y are elements such that + * @p x precedes @p y, and if the two elements are equivalent (neither + * @p x < @p y nor @p y < @p x) then a postcondition of stable sort is that + * @p x still precedes @p y. + * - The range `[d_keys_out, d_keys_out + num_items)` shall not overlap + * `[d_keys_in, d_keys_in + num_items)`, + * `[d_begin_offsets, d_begin_offsets + num_segments)` nor + * `[d_end_offsets, d_end_offsets + num_segments)` in any way. + * - Segments are not required to be contiguous. For all index values `i` + * outside the specified segments `d_keys_in[i]`, `d_keys_out[i]` will not + * be accessed nor modified. + * + * @par Snippet + * The code snippet below illustrates the batched sorting of three segments + * (with one zero-length segment) of @p int keys. + * + * @par + * @code + * #include + * // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers + * // for sorting data + * int num_items; // e.g., 7 + * int num_segments; // e.g., 3 + * int *d_offsets; // e.g., [0, 3, 3, 7] + * int *d_keys_in; // e.g., [8, 6, 7, 5, 3, 0, 9] + * int *d_keys_out; // e.g., [-, -, -, -, -, -, -] + * ... + * + * // Determine temporary device storage requirements + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceSegmentedSort::StableSortKeys( + * d_temp_storage, temp_storage_bytes, d_keys_in, d_keys_out, + * num_items, num_segments, d_offsets, d_offsets + 1); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run sorting operation + * cub::DeviceSegmentedSort::StableSortKeys( + * d_temp_storage, temp_storage_bytes, d_keys_in, d_keys_out, + * num_items, num_segments, d_offsets, d_offsets + 1); + * + * // d_keys_out <-- [6, 7, 8, 0, 3, 5, 9] + * @endcode + * + * @tparam KeyT + * [inferred] Key type + * + * @tparam BeginOffsetIteratorT + * [inferred] Random-access input iterator type for reading segment + * beginning offsets \iterator + * + * @tparam EndOffsetIteratorT + * [inferred] Random-access input iterator type for reading segment + * ending offsets \iterator + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When nullptr, the + * required allocation size is written to @p temp_storage_bytes and no work + * is done + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of @p d_temp_storage allocation + * + * @param[in] d_keys_in + * Device-accessible pointer to the input data of key data to sort + * + * @param[out] d_keys_out + * Device-accessible pointer to the sorted output sequence of key data + * + * @param[in] num_items + * The total number of items to sort (across all segments) + * + * @param[in] num_segments + * The number of segments that comprise the sorting data + * + * @param[in] d_begin_offsets + * Random-access input iterator to the sequence of beginning offsets of + * length @p num_segments, such that `d_begin_offsets[i]` is the first + * element of the ith data segment in `d_keys_*` and + * `d_values_*` + * + * @param[in] d_end_offsets + * Random-access input iterator to the sequence of ending offsets of length + * @p num_segments, such that `d_end_offsets[i]-1` is the last element of + * the ith data segment in `d_keys_*` and `d_values_*`. + * If `d_end_offsets[i]-1 <= d_begin_offsets[i]`, the i-th segment is + * considered empty. + * + * @param[in] stream + * [optional] CUDA stream to launch kernels within. Default is + * stream0. + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + StableSortKeys(void *d_temp_storage, + std::size_t &temp_storage_bytes, + const KeyT *d_keys_in, + KeyT *d_keys_out, + int num_items, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + cudaStream_t stream = 0) + { + return SortKeys( + d_temp_storage, + temp_storage_bytes, + d_keys_in, + d_keys_out, + num_items, + num_segments, + d_begin_offsets, + d_end_offsets, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + StableSortKeys(void *d_temp_storage, + std::size_t &temp_storage_bytes, + const KeyT *d_keys_in, + KeyT *d_keys_out, + int num_items, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return StableSortKeys( + d_temp_storage, + temp_storage_bytes, + d_keys_in, + d_keys_out, + num_items, + num_segments, + d_begin_offsets, + d_end_offsets, + stream); + } + + /** + * @brief Sorts segments of keys into descending order. Approximately + * `num_items + 2*num_segments` auxiliary storage required. + * + * @par + * - The contents of the input data are not altered by the sorting operation. + * - When the input is a contiguous sequence of segments, a single sequence + * @p segment_offsets (of length `num_segments+1`) can be aliased + * for both the @p d_begin_offsets and @p d_end_offsets parameters (where + * the latter is specified as `segment_offsets+1`). + * - StableSortKeysDescending is stable: it preserves the relative ordering of + * equivalent elements. That is, if @p x and @p y are elements such that + * @p x precedes @p y, and if the two elements are equivalent (neither + * @p x < @p y nor @p y < @p x) then a postcondition of stable sort is that + * @p x still precedes @p y. + * - The range `[d_keys_out, d_keys_out + num_items)` shall not overlap + * `[d_keys_in, d_keys_in + num_items)`, + * `[d_begin_offsets, d_begin_offsets + num_segments)` nor + * `[d_end_offsets, d_end_offsets + num_segments)` in any way. + * - Segments are not required to be contiguous. For all index values `i` + * outside the specified segments `d_keys_in[i]`, `d_keys_out[i]` will not + * be accessed nor modified. + * + * @par Snippet + * The code snippet below illustrates the batched sorting of three segments + * (with one zero-length segment) of @p int keys. + * + * @par + * @code + * #include + * // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers + * // for sorting data + * int num_items; // e.g., 7 + * int num_segments; // e.g., 3 + * int *d_offsets; // e.g., [0, 3, 3, 7] + * int *d_keys_in; // e.g., [8, 6, 7, 5, 3, 0, 9] + * int *d_keys_out; // e.g., [-, -, -, -, -, -, -] + * ... + * + * // Determine temporary device storage requirements + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceSegmentedSort::StableSortKeysDescending( + * d_temp_storage, temp_storage_bytes, d_keys_in, d_keys_out, + * num_items, num_segments, d_offsets, d_offsets + 1); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run sorting operation + * cub::DeviceSegmentedSort::StableSortKeysDescending( + * d_temp_storage, temp_storage_bytes, d_keys_in, d_keys_out, + * num_items, num_segments, d_offsets, d_offsets + 1); + * + * // d_keys_out <-- [8, 7, 6, 9, 5, 3, 0] + * @endcode + * + * @tparam KeyT + * [inferred] Key type + * + * @tparam BeginOffsetIteratorT + * [inferred] Random-access input iterator type for reading segment + * beginning offsets \iterator + * + * @tparam EndOffsetIteratorT + * [inferred] Random-access input iterator type for reading segment + * ending offsets \iterator + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When nullptr, the + * required allocation size is written to @p temp_storage_bytes and no work + * is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of @p d_temp_storage allocation + * + * @param[in] d_keys_in + * Device-accessible pointer to the input data of key data to sort + * + * @param[out] d_keys_out + * Device-accessible pointer to the sorted output sequence of key data + * + * @param[in] num_items + * The total number of items to sort (across all segments) + * + * @param[in] num_segments + * The number of segments that comprise the sorting data + * + * @param[in] d_begin_offsets + * Random-access input iterator to the sequence of beginning offsets of + * length @p num_segments, such that `d_begin_offsets[i]` is the first + * element of the ith data segment in `d_keys_*` and + * `d_values_*` + * + * @param[in] d_end_offsets + * Random-access input iterator to the sequence of ending offsets of length + * @p num_segments, such that `d_end_offsets[i]-1` is the last element of + * the ith data segment in `d_keys_*` and `d_values_*`. + * If `d_end_offsets[i]-1 <= d_begin_offsets[i]`, the i-th segment is + * considered empty. + * + * @param[in] stream + * [optional] CUDA stream to launch kernels within. Default is + * stream0. + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + StableSortKeysDescending(void *d_temp_storage, + std::size_t &temp_storage_bytes, + const KeyT *d_keys_in, + KeyT *d_keys_out, + int num_items, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + cudaStream_t stream = 0) + { + return SortKeysDescending(d_temp_storage, + temp_storage_bytes, + d_keys_in, + d_keys_out, + num_items, + num_segments, + d_begin_offsets, + d_end_offsets, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + StableSortKeysDescending(void *d_temp_storage, + std::size_t &temp_storage_bytes, + const KeyT *d_keys_in, + KeyT *d_keys_out, + int num_items, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return StableSortKeysDescending(d_temp_storage, + temp_storage_bytes, + d_keys_in, + d_keys_out, + num_items, + num_segments, + d_begin_offsets, + d_end_offsets, + stream); + } + + /** + * @brief Sorts segments of keys into ascending order. Approximately + * `2*num_segments` auxiliary storage required. + * + * @par + * - The sorting operation is given a pair of key buffers managed by a + * DoubleBuffer structure that indicates which of the two buffers is + * "current" (and thus contains the input data to be sorted). + * - The contents of both buffers may be altered by the sorting operation. + * - Upon completion, the sorting operation will update the "current" + * indicator within the DoubleBuffer wrapper to reference which of the two + * buffers now contains the sorted output sequence (a function of the number + * of key bits and the targeted device architecture). + * - When the input is a contiguous sequence of segments, a single sequence + * @p segment_offsets (of length `num_segments+1`) can be aliased + * for both the @p d_begin_offsets and @p d_end_offsets parameters (where + * the latter is specified as `segment_offsets+1`). + * - StableSortKeys is stable: it preserves the relative ordering of + * equivalent elements. That is, if @p x and @p y are elements such that + * @p x precedes @p y, and if the two elements are equivalent (neither + * @p x < @p y nor @p y < @p x) then a postcondition of stable sort is that + * @p x still precedes @p y. + * - Let `cur = d_keys.Current()` and `alt = d_keys.Alternate()`. + * The range `[cur, cur + num_items)` shall not overlap + * `[alt, alt + num_items)`. Both ranges shall not overlap + * `[d_begin_offsets, d_begin_offsets + num_segments)` nor + * `[d_end_offsets, d_end_offsets + num_segments)` in any way. + * - Segments are not required to be contiguous. For all index values `i` + * outside the specified segments `d_keys.Current()[i]`, + * `d_keys[i].Alternate()[i]` will not be accessed nor modified. + * + * @par Snippet + * The code snippet below illustrates the batched sorting of three segments + * (with one zero-length segment) of @p int keys. + * + * @par + * @code + * #include + * // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers + * // for sorting data + * int num_items; // e.g., 7 + * int num_segments; // e.g., 3 + * int *d_offsets; // e.g., [0, 3, 3, 7] + * int *d_key_buf; // e.g., [8, 6, 7, 5, 3, 0, 9] + * int *d_key_alt_buf; // e.g., [-, -, -, -, -, -, -] + * ... + * + * // Create a DoubleBuffer to wrap the pair of device pointers + * cub::DoubleBuffer d_keys(d_key_buf, d_key_alt_buf); + * + * // Determine temporary device storage requirements + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceSegmentedSort::StableSortKeys( + * d_temp_storage, temp_storage_bytes, d_keys, + * num_items, num_segments, d_offsets, d_offsets + 1); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run sorting operation + * cub::DeviceSegmentedSort::StableSortKeys( + * d_temp_storage, temp_storage_bytes, d_keys, + * num_items, num_segments, d_offsets, d_offsets + 1); + * + * // d_keys.Current() <-- [6, 7, 8, 0, 3, 5, 9] + * @endcode + * + * @tparam KeyT + * [inferred] Key type + * + * @tparam BeginOffsetIteratorT + * [inferred] Random-access input iterator type for reading segment + * beginning offsets \iterator + * + * @tparam EndOffsetIteratorT + * [inferred] Random-access input iterator type for reading segment + * ending offsets \iterator + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When nullptr, the + * required allocation size is written to @p temp_storage_bytes and no work + * is done + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of @p d_temp_storage allocation + * + * @param[in,out] d_keys + * Reference to the double-buffer of keys whose "current" device-accessible + * buffer contains the unsorted input keys and, upon return, is updated to + * point to the sorted output keys + * + * @param[in] num_items + * The total number of items to sort (across all segments) + * + * @param[in] num_segments + * The number of segments that comprise the sorting data + * + * @param[in] d_begin_offsets + * Random-access input iterator to the sequence of beginning offsets of + * length @p num_segments, such that `d_begin_offsets[i]` is the first + * element of the ith data segment in `d_keys_*` and + * `d_values_*` + * + * @param[in] d_end_offsets + * Random-access input iterator to the sequence of ending offsets of length + * @p num_segments, such that `d_end_offsets[i] - 1` is the last element of + * the ith data segment in `d_keys_*` and `d_values_*`. + * If `d_end_offsets[i] - 1 <= d_begin_offsets[i]`, the i-th segment is + * considered empty. + * + * @param[in] stream + * [optional] CUDA stream to launch kernels within. Default is + * stream0. + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + StableSortKeys(void *d_temp_storage, + std::size_t &temp_storage_bytes, + DoubleBuffer &d_keys, + int num_items, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + cudaStream_t stream = 0) + { + return SortKeys( + d_temp_storage, + temp_storage_bytes, + d_keys, + num_items, + num_segments, + d_begin_offsets, + d_end_offsets, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + StableSortKeys(void *d_temp_storage, + std::size_t &temp_storage_bytes, + DoubleBuffer &d_keys, + int num_items, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return StableSortKeys( + d_temp_storage, + temp_storage_bytes, + d_keys, + num_items, + num_segments, + d_begin_offsets, + d_end_offsets, + stream); + } + + /** + * @brief Sorts segments of keys into descending order. Approximately + * `2*num_segments` auxiliary storage required. + * + * @par + * - The sorting operation is given a pair of key buffers managed by a + * DoubleBuffer structure that indicates which of the two buffers is + * "current" (and thus contains the input data to be sorted). + * - The contents of both buffers may be altered by the sorting operation. + * - Upon completion, the sorting operation will update the "current" + * indicator within the DoubleBuffer wrapper to reference which of the two + * buffers now contains the sorted output sequence (a function of the number + * of key bits and the targeted device architecture). + * - When the input is a contiguous sequence of segments, a single sequence + * @p segment_offsets (of length `num_segments+1`) can be aliased + * for both the @p d_begin_offsets and @p d_end_offsets parameters (where + * the latter is specified as `segment_offsets+1`). + * - StableSortKeysDescending is stable: it preserves the relative ordering of + * equivalent elements. That is, if @p x and @p y are elements such that + * @p x precedes @p y, and if the two elements are equivalent (neither + * @p x < @p y nor @p y < @p x) then a postcondition of stable sort is that + * @p x still precedes @p y. + * - Let `cur = d_keys.Current()` and `alt = d_keys.Alternate()`. + * The range `[cur, cur + num_items)` shall not overlap + * `[alt, alt + num_items)`. Both ranges shall not overlap + * `[d_begin_offsets, d_begin_offsets + num_segments)` nor + * `[d_end_offsets, d_end_offsets + num_segments)` in any way. + * - Segments are not required to be contiguous. For all index values `i` + * outside the specified segments `d_keys.Current()[i]`, + * `d_keys[i].Alternate()[i]` will not be accessed nor modified. + * + * @par Snippet + * The code snippet below illustrates the batched sorting of three segments + * (with one zero-length segment) of @p int keys. + * + * @par + * @code + * #include + * // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers + * // for sorting data + * int num_items; // e.g., 7 + * int num_segments; // e.g., 3 + * int *d_offsets; // e.g., [0, 3, 3, 7] + * int *d_key_buf; // e.g., [8, 6, 7, 5, 3, 0, 9] + * int *d_key_alt_buf; // e.g., [-, -, -, -, -, -, -] + * ... + * + * // Create a DoubleBuffer to wrap the pair of device pointers + * cub::DoubleBuffer d_keys(d_key_buf, d_key_alt_buf); + * + * // Determine temporary device storage requirements + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceSegmentedSort::StableSortKeysDescending( + * d_temp_storage, temp_storage_bytes, d_keys, + * num_items, num_segments, d_offsets, d_offsets + 1); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run sorting operation + * cub::DeviceSegmentedSort::StableSortKeysDescending( + * d_temp_storage, temp_storage_bytes, d_keys, + * num_items, num_segments, d_offsets, d_offsets + 1); + * + * // d_keys.Current() <-- [8, 7, 6, 9, 5, 3, 0] + * @endcode + * + * @tparam KeyT + * [inferred] Key type + * + * @tparam BeginOffsetIteratorT + * [inferred] Random-access input iterator type for reading segment + * beginning offsets \iterator + * + * @tparam EndOffsetIteratorT + * [inferred] Random-access input iterator type for reading segment + * ending offsets \iterator + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When nullptr, the + * required allocation size is written to @p temp_storage_bytes and no work + * is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of @p d_temp_storage allocation + * + * @param[in,out] d_keys + * Reference to the double-buffer of keys whose "current" device-accessible + * buffer contains the unsorted input keys and, upon return, is updated to + * point to the sorted output keys + * + * @param[in] num_items + * The total number of items to sort (across all segments) + * + * @param[in] num_segments + * The number of segments that comprise the sorting data + * + * @param[in] d_begin_offsets + * Random-access input iterator to the sequence of beginning offsets of + * length @p num_segments, such that `d_begin_offsets[i]` is the first + * element of the ith data segment in `d_keys_*` and + * `d_values_*` + * + * @param[in] d_end_offsets + * Random-access input iterator to the sequence of ending offsets of length + * @p num_segments, such that d_end_offsets[i]-1 is the last + * element of the ith data segment in `d_keys_*` and + * `d_values_*`. If `d_end_offsets[i]-1 <= d_begin_offsets[i]`, the + * i-th segment is considered empty. + * + * @param[in] stream + * [optional] CUDA stream to launch kernels within. Default is + * stream0. + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + StableSortKeysDescending(void *d_temp_storage, + std::size_t &temp_storage_bytes, + DoubleBuffer &d_keys, + int num_items, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + cudaStream_t stream = 0) + { + return SortKeysDescending(d_temp_storage, + temp_storage_bytes, + d_keys, + num_items, + num_segments, + d_begin_offsets, + d_end_offsets, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + StableSortKeysDescending(void *d_temp_storage, + std::size_t &temp_storage_bytes, + DoubleBuffer &d_keys, + int num_items, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return StableSortKeysDescending(d_temp_storage, + temp_storage_bytes, + d_keys, + num_items, + num_segments, + d_begin_offsets, + d_end_offsets, + stream); + } + + //@} end member group + /*************************************************************************//** + * @name Key-value pairs + ****************************************************************************/ + //@{ + + /** + * @brief Sorts segments of key-value pairs into ascending order. + * Approximately `2*num_items + 2*num_segments` auxiliary storage + * required. + * + * @par + * - The contents of the input data are not altered by the sorting operation. + * - When the input is a contiguous sequence of segments, a single sequence + * @p segment_offsets (of length `num_segments+1`) can be aliased + * for both the @p d_begin_offsets and @p d_end_offsets parameters (where + * the latter is specified as `segment_offsets+1`). + * - SortPairs is not guaranteed to be stable. That is, suppose that @p i and + * @p j are equivalent: neither one is less than the other. It is not + * guaranteed that the relative order of these two elements will be + * preserved by sort. + * - Let `in` be one of `{d_keys_in, d_values_in}` and `out` be any of + * `{d_keys_out, d_values_out}`. The range `[out, out + num_items)` shall + * not overlap `[in, in + num_items)`, + * `[d_begin_offsets, d_begin_offsets + num_segments)` nor + * `[d_end_offsets, d_end_offsets + num_segments)` in any way. + * - Segments are not required to be contiguous. For all index values `i` + * outside the specified segments `d_keys_in[i]`, `d_values_in[i]`, + * `d_keys_out[i]`, `d_values_out[i]` will not be accessed nor modified. + * + * @par Snippet + * The code snippet below illustrates the batched sorting of three segments + * (with one zero-length segment) of @p int keys with associated vector of + * @p int values. + * + * @par + * @code + * #include + * // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers + * // for sorting data + * int num_items; // e.g., 7 + * int num_segments; // e.g., 3 + * int *d_offsets; // e.g., [0, 3, 3, 7] + * int *d_keys_in; // e.g., [8, 6, 7, 5, 3, 0, 9] + * int *d_keys_out; // e.g., [-, -, -, -, -, -, -] + * int *d_values_in; // e.g., [0, 1, 2, 3, 4, 5, 6] + * int *d_values_out; // e.g., [-, -, -, -, -, -, -] + * ... + * + * // Determine temporary device storage requirements + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceSegmentedSort::SortPairs( + * d_temp_storage, temp_storage_bytes, + * d_keys_in, d_keys_out, d_values_in, d_values_out, + * num_items, num_segments, d_offsets, d_offsets + 1); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run sorting operation + * cub::DeviceSegmentedSort::SortPairs( + * d_temp_storage, temp_storage_bytes, + * d_keys_in, d_keys_out, d_values_in, d_values_out, + * num_items, num_segments, d_offsets, d_offsets + 1); + * + * // d_keys_out <-- [6, 7, 8, 0, 3, 5, 9] + * // d_values_out <-- [1, 2, 0, 5, 4, 3, 6] + * @endcode + * + * @tparam KeyT + * [inferred] Key type + * + * @tparam ValueT + * [inferred] Value type + * + * @tparam BeginOffsetIteratorT + * [inferred] Random-access input iterator type for reading segment + * beginning offsets \iterator + * + * @tparam EndOffsetIteratorT + * [inferred] Random-access input iterator type for reading segment + * ending offsets \iterator + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to @p temp_storage_bytes and no work + * is done + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of @p d_temp_storage allocation + * + * @param[in] d_keys_in + * Device-accessible pointer to the input data of key data to sort + * + * @param[out] d_keys_out + * Device-accessible pointer to the sorted output sequence of key data + * + * @param[in] d_values_in + * Device-accessible pointer to the corresponding input sequence of + * associated value items + * + * @param[out] d_values_out + * Device-accessible pointer to the correspondingly-reordered output + * sequence of associated value items + * + * @param[in] num_items + * The total number of items to sort (across all segments) + * + * @param[in] num_segments + * The number of segments that comprise the sorting data + * + * @param[in] d_begin_offsets + * Random-access input iterator to the sequence of beginning offsets of + * length @p num_segments, such that `d_begin_offsets[i]` is the first + * element of the ith data segment in `d_keys_*` and + * `d_values_*` + * + * @param[in] d_end_offsets + * Random-access input iterator to the sequence of ending offsets of length + * @p num_segments, such that `d_end_offsets[i]-1` is the last element of + * the ith data segment in `d_keys_*` and `d_values_*`. + * If `d_end_offsets[i]-1 <= d_begin_offsets[i]`, the i-th segment is + * considered empty. + * + * @param[in] stream + * [optional] CUDA stream to launch kernels within. Default is + * stream0. + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + SortPairs(void *d_temp_storage, + std::size_t &temp_storage_bytes, + const KeyT *d_keys_in, + KeyT *d_keys_out, + const ValueT *d_values_in, + ValueT *d_values_out, + int num_items, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + cudaStream_t stream = 0) + { + constexpr bool is_descending = false; + constexpr bool is_overwrite_okay = false; + using DispatchT = DispatchSegmentedSort; + + DoubleBuffer d_keys(const_cast(d_keys_in), d_keys_out); + DoubleBuffer d_values(const_cast(d_values_in), d_values_out); + + return DispatchT::Dispatch(d_temp_storage, + temp_storage_bytes, + d_keys, + d_values, + num_items, + num_segments, + d_begin_offsets, + d_end_offsets, + is_overwrite_okay, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + SortPairs(void *d_temp_storage, + std::size_t &temp_storage_bytes, + const KeyT *d_keys_in, + KeyT *d_keys_out, + const ValueT *d_values_in, + ValueT *d_values_out, + int num_items, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return SortPairs( + d_temp_storage, + temp_storage_bytes, + d_keys_in, + d_keys_out, + d_values_in, + d_values_out, + num_items, + num_segments, + d_begin_offsets, + d_end_offsets, + stream); + } + + /** + * @brief Sorts segments of key-value pairs into descending order. Approximately + * `2*num_items + 2*num_segments` auxiliary storage required. + * + * @par + * - The contents of the input data are not altered by the sorting operation. + * - When the input is a contiguous sequence of segments, a single sequence + * @p segment_offsets (of length `num_segments+1`) can be aliased + * for both the @p d_begin_offsets and @p d_end_offsets parameters (where + * the latter is specified as `segment_offsets+1`). + * - SortPairs is not guaranteed to be stable. That is, suppose that @p i and + * @p j are equivalent: neither one is less than the other. It is not + * guaranteed that the relative order of these two elements will be + * preserved by sort. + * - Let `in` be one of `{d_keys_in, d_values_in}` and `out` be any of + * `{d_keys_out, d_values_out}`. The range `[out, out + num_items)` shall + * not overlap `[in, in + num_items)`, + * `[d_begin_offsets, d_begin_offsets + num_segments)` nor + * `[d_end_offsets, d_end_offsets + num_segments)` in any way. + * - Segments are not required to be contiguous. For all index values `i` + * outside the specified segments `d_keys_in[i]`, `d_values_in[i]`, + * `d_keys_out[i]`, `d_values_out[i]` will not be accessed nor modified. + * + * @par Snippet + * The code snippet below illustrates the batched sorting of three segments + * (with one zero-length segment) of @p int keys with associated vector of + * @p int values. + * + * @par + * @code + * #include + * // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers for + * // sorting data + * int num_items; // e.g., 7 + * int num_segments; // e.g., 3 + * int *d_offsets; // e.g., [0, 3, 3, 7] + * int *d_keys_in; // e.g., [8, 6, 7, 5, 3, 0, 9] + * int *d_keys_out; // e.g., [-, -, -, -, -, -, -] + * int *d_values_in; // e.g., [0, 1, 2, 3, 4, 5, 6] + * int *d_values_out; // e.g., [-, -, -, -, -, -, -] + * ... + * + * // Determine temporary device storage requirements + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceSegmentedSort::SortPairsDescending( + * d_temp_storage, temp_storage_bytes, + * d_keys_in, d_keys_out, d_values_in, d_values_out, + * num_items, num_segments, d_offsets, d_offsets + 1); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run sorting operation + * cub::DeviceSegmentedSort::SortPairsDescending( + * d_temp_storage, temp_storage_bytes, + * d_keys_in, d_keys_out, d_values_in, d_values_out, + * num_items, num_segments, d_offsets, d_offsets + 1); + * + * // d_keys_out <-- [8, 7, 6, 9, 5, 3, 0] + * // d_values_out <-- [0, 2, 1, 6, 3, 4, 5] + * @endcode + * + * @tparam KeyT + * [inferred] Key type + * + * @tparam ValueT + * [inferred] Value type + * + * @tparam BeginOffsetIteratorT + * [inferred] Random-access input iterator type for reading segment + * beginning offsets \iterator + * + * @tparam EndOffsetIteratorT + * [inferred] Random-access input iterator type for reading segment + * ending offsets \iterator + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When nullptr, the + * required allocation size is written to @p temp_storage_bytes and no work + * is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of @p d_temp_storage allocation + * + * @param[in] d_keys_in + * Device-accessible pointer to the input data of key data to sort + * + * @param[out] d_keys_out + * Device-accessible pointer to the sorted output sequence of key data + * + * @param[in] d_values_in + * Device-accessible pointer to the corresponding input sequence of + * associated value items + * + * @param[out] d_values_out + * Device-accessible pointer to the correspondingly-reordered output + * sequence of associated value items + * + * @param[in] num_items + * The total number of items to sort (across all segments) + * + * @param[in] num_segments + * The number of segments that comprise the sorting data + * + * @param[in] d_begin_offsets + * Random-access input iterator to the sequence of beginning offsets of + * length @p num_segments, such that `d_begin_offsets[i]` is the first + * element of the ith data segment in `d_keys_*` and + * `d_values_*` + * + * @param[in] d_end_offsets + * Random-access input iterator to the sequence of ending offsets of length + * @p num_segments, such that `d_end_offsets[i]-1` is the last element of + * the ith data segment in `d_keys_*` and `d_values_*`. + * If `d_end_offsets[i]-1 <= d_begin_offsets[i]`, the i-th segment is + * considered empty. + * + * @param[in] stream + * [optional] CUDA stream to launch kernels within. Default is + * stream0. + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + SortPairsDescending(void *d_temp_storage, + std::size_t &temp_storage_bytes, + const KeyT *d_keys_in, + KeyT *d_keys_out, + const ValueT *d_values_in, + ValueT *d_values_out, + int num_items, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + cudaStream_t stream = 0) + { + constexpr bool is_descending = true; + constexpr bool is_overwrite_okay = false; + using DispatchT = DispatchSegmentedSort; + + DoubleBuffer d_keys(const_cast(d_keys_in), d_keys_out); + DoubleBuffer d_values(const_cast(d_values_in), d_values_out); + + return DispatchT::Dispatch(d_temp_storage, + temp_storage_bytes, + d_keys, + d_values, + num_items, + num_segments, + d_begin_offsets, + d_end_offsets, + is_overwrite_okay, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + SortPairsDescending(void *d_temp_storage, + std::size_t &temp_storage_bytes, + const KeyT *d_keys_in, + KeyT *d_keys_out, + const ValueT *d_values_in, + ValueT *d_values_out, + int num_items, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return SortPairsDescending(d_temp_storage, + temp_storage_bytes, + d_keys_in, + d_keys_out, + d_values_in, + d_values_out, + num_items, + num_segments, + d_begin_offsets, + d_end_offsets, + stream); + } + + /** + * @brief Sorts segments of key-value pairs into ascending order. + * Approximately `2*num_segments` auxiliary storage required. + * + * @par + * - The sorting operation is given a pair of key buffers and a corresponding + * pair of associated value buffers. Each pair is managed by a DoubleBuffer + * structure that indicates which of the two buffers is "current" (and thus + * contains the input data to be sorted). + * - The contents of both buffers within each pair may be altered by the sorting + * operation. + * - Upon completion, the sorting operation will update the "current" indicator + * within each DoubleBuffer wrapper to reference which of the two buffers + * now contains the sorted output sequence (a function of the number of key bits + * specified and the targeted device architecture). + * - When the input is a contiguous sequence of segments, a single sequence + * @p segment_offsets (of length `num_segments+1`) can be aliased + * for both the @p d_begin_offsets and @p d_end_offsets parameters (where + * the latter is specified as `segment_offsets+1`). + * - SortPairs is not guaranteed to be stable. That is, suppose that @p i and + * @p j are equivalent: neither one is less than the other. It is not + * guaranteed that the relative order of these two elements will be + * preserved by sort. + * - Let `cur` be one of `{d_keys.Current(), d_values.Current()}` and `alt` + * be any of `{d_keys.Alternate(), d_values.Alternate()}`. The range + * `[cur, cur + num_items)` shall not overlap + * `[alt, alt + num_items)`. Both ranges shall not overlap + * `[d_begin_offsets, d_begin_offsets + num_segments)` nor + * `[d_end_offsets, d_end_offsets + num_segments)` in any way. + * - Segments are not required to be contiguous. For all index values `i` + * outside the specified segments `d_keys.Current()[i]`, + * `d_values.Current()[i]`, `d_keys.Alternate()[i]`, + * `d_values.Alternate()[i]` will not be accessed nor modified. + * + * @par Snippet + * The code snippet below illustrates the batched sorting of three segments + * (with one zero-length segment) of @p int keys with associated vector of + * @p int values. + * + * @par + * @code + * #include + * // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers + * // for sorting data + * int num_items; // e.g., 7 + * int num_segments; // e.g., 3 + * int *d_offsets; // e.g., [0, 3, 3, 7] + * int *d_key_buf; // e.g., [8, 6, 7, 5, 3, 0, 9] + * int *d_key_alt_buf; // e.g., [-, -, -, -, -, -, -] + * int *d_value_buf; // e.g., [0, 1, 2, 3, 4, 5, 6] + * int *d_value_alt_buf; // e.g., [-, -, -, -, -, -, -] + * ... + * + * // Create a set of DoubleBuffers to wrap pairs of device pointers + * cub::DoubleBuffer d_keys(d_key_buf, d_key_alt_buf); + * cub::DoubleBuffer d_values(d_value_buf, d_value_alt_buf); + * + * // Determine temporary device storage requirements + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceSegmentedSort::SortPairs( + * d_temp_storage, temp_storage_bytes, d_keys, d_values, + * num_items, num_segments, d_offsets, d_offsets + 1); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run sorting operation + * cub::DeviceSegmentedSort::SortPairs( + * d_temp_storage, temp_storage_bytes, d_keys, d_values, + * num_items, num_segments, d_offsets, d_offsets + 1); + * + * // d_keys.Current() <-- [6, 7, 8, 0, 3, 5, 9] + * // d_values.Current() <-- [5, 4, 3, 1, 2, 0, 6] + * + * @endcode + * + * @tparam KeyT + * [inferred] Key type + * + * @tparam ValueT + * [inferred] Value type + * + * @tparam BeginOffsetIteratorT + * [inferred] Random-access input iterator type for reading segment + * beginning offsets \iterator + * + * @tparam EndOffsetIteratorT + * [inferred] Random-access input iterator type for reading segment + * ending offsets \iterator + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to @p temp_storage_bytes and no work + * is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of @p d_temp_storage allocation + * + * @param[in,out] d_keys + * Reference to the double-buffer of keys whose "current" device-accessible + * buffer contains the unsorted input keys and, upon return, is updated to + * point to the sorted output keys + * + * @param[in,out] d_values + * Double-buffer of values whose "current" device-accessible buffer contains + * the unsorted input values and, upon return, is updated to point to the + * sorted output values + * + * @param[in] num_items + * The total number of items to sort (across all segments) + * + * @param[in] num_segments + * The number of segments that comprise the sorting data + * + * @param[in] d_begin_offsets + * Random-access input iterator to the sequence of beginning offsets of + * length @p num_segments, such that `d_begin_offsets[i]` is the first + * element of the ith data segment in `d_keys_*` and + * `d_values_*` + * + * @param[in] d_end_offsets + * Random-access input iterator to the sequence of ending offsets of length + * @p num_segments, such that `d_end_offsets[i]-1` is the last element of + * the ith data segment in `d_keys_*` and `d_values_*`. + * If `d_end_offsets[i]-1 <= d_begin_offsets[i]`, the i-th segment is + * considered empty. + * + * @param[in] stream + * [optional] CUDA stream to launch kernels within. Default is + * stream0. + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + SortPairs(void *d_temp_storage, + std::size_t &temp_storage_bytes, + DoubleBuffer &d_keys, + DoubleBuffer &d_values, + int num_items, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + cudaStream_t stream = 0) + { + constexpr bool is_descending = false; + constexpr bool is_overwrite_okay = true; + using DispatchT = DispatchSegmentedSort; + + return DispatchT::Dispatch(d_temp_storage, + temp_storage_bytes, + d_keys, + d_values, + num_items, + num_segments, + d_begin_offsets, + d_end_offsets, + is_overwrite_okay, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + SortPairs(void *d_temp_storage, + std::size_t &temp_storage_bytes, + DoubleBuffer &d_keys, + DoubleBuffer &d_values, + int num_items, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return SortPairs( + d_temp_storage, + temp_storage_bytes, + d_keys, + d_values, + num_items, + num_segments, + d_begin_offsets, + d_end_offsets, + stream); + } + + /** + * @brief Sorts segments of key-value pairs into descending order. + * Approximately `2*num_segments` auxiliary storage required. + * + * @par + * - The sorting operation is given a pair of key buffers and a corresponding + * pair of associated value buffers. Each pair is managed by a DoubleBuffer + * structure that indicates which of the two buffers is "current" (and thus + * contains the input data to be sorted). + * - The contents of both buffers within each pair may be altered by the + * sorting operation. + * - Upon completion, the sorting operation will update the "current" + * indicator within each DoubleBuffer wrapper to reference which of the two + * buffers now contains the sorted output sequence (a function of the number + * of key bits specified and the targeted device architecture). + * - When the input is a contiguous sequence of segments, a single sequence + * @p segment_offsets (of length num_segments+1) can be aliased + * for both the @p d_begin_offsets and @p d_end_offsets parameters (where + * the latter is specified as segment_offsets+1). + * - SortPairsDescending is not guaranteed to be stable. That is, suppose that + * @p i and @p j are equivalent: neither one is less than the other. It is + * not guaranteed that the relative order of these two elements will be + * preserved by sort. + * - Let `cur` be one of `{d_keys.Current(), d_values.Current()}` and `alt` + * be any of `{d_keys.Alternate(), d_values.Alternate()}`. The range + * `[cur, cur + num_items)` shall not overlap + * `[alt, alt + num_items)`. Both ranges shall not overlap + * `[d_begin_offsets, d_begin_offsets + num_segments)` nor + * `[d_end_offsets, d_end_offsets + num_segments)` in any way. + * - Segments are not required to be contiguous. For all index values `i` + * outside the specified segments `d_keys.Current()[i]`, + * `d_values.Current()[i]`, `d_keys.Alternate()[i]`, + * `d_values.Alternate()[i]` will not be accessed nor modified. + * + * @par Snippet + * The code snippet below illustrates the batched sorting of three segments + * (with one zero-length segment) of @p int keys with associated vector of + * @p int values. + * + * @par + * @code + * #include + * // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers for + * // sorting data + * int num_items; // e.g., 7 + * int num_segments; // e.g., 3 + * int *d_offsets; // e.g., [0, 3, 3, 7] + * int *d_key_buf; // e.g., [8, 6, 7, 5, 3, 0, 9] + * int *d_key_alt_buf; // e.g., [-, -, -, -, -, -, -] + * int *d_value_buf; // e.g., [0, 1, 2, 3, 4, 5, 6] + * int *d_value_alt_buf; // e.g., [-, -, -, -, -, -, -] + * ... + * + * // Create a set of DoubleBuffers to wrap pairs of device pointers + * cub::DoubleBuffer d_keys(d_key_buf, d_key_alt_buf); + * cub::DoubleBuffer d_values(d_value_buf, d_value_alt_buf); + * + * // Determine temporary device storage requirements + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceSegmentedSort::SortPairsDescending( + * d_temp_storage, temp_storage_bytes, d_keys, d_values, + * num_items, num_segments, d_offsets, d_offsets + 1); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run sorting operation + * cub::DeviceSegmentedSort::SortPairsDescending( + * d_temp_storage, temp_storage_bytes, d_keys, d_values, + * num_items, num_segments, d_offsets, d_offsets + 1); + * + * // d_keys.Current() <-- [8, 7, 6, 9, 5, 3, 0] + * // d_values.Current() <-- [0, 2, 1, 6, 3, 4, 5] + * + * @endcode + * + * @tparam KeyT + * [inferred] Key type + * + * @tparam ValueT + * [inferred] Value type + * + * @tparam BeginOffsetIteratorT + * [inferred] Random-access input iterator type for reading segment + * beginning offsets \iterator + * + * @tparam EndOffsetIteratorT + * [inferred] Random-access input iterator type for reading segment + * ending offsets \iterator + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When nullptr, the + * required allocation size is written to @p temp_storage_bytes and no work + * is done + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of @p d_temp_storage allocation + * + * @param[in,out] d_keys + * Reference to the double-buffer of keys whose "current" device-accessible + * buffer contains the unsorted input keys and, upon return, is updated to + * point to the sorted output keys + * + * @param[in,out] d_values + * Double-buffer of values whose "current" device-accessible buffer contains + * the unsorted input values and, upon return, is updated to point to the + * sorted output values + * + * @param[in] num_items + * The total number of items to sort (across all segments) + * + * @param[in] num_segments + * The number of segments that comprise the sorting data + * + * @param[in] d_begin_offsets + * Random-access input iterator to the sequence of beginning offsets of + * length @p num_segments, such that `d_begin_offsets[i]` is the first + * element of the ith data segment in `d_keys_*` and + * `d_values_*` + * + * @param[in] d_end_offsets + * Random-access input iterator to the sequence of ending offsets of length + * @p num_segments, such that `d_end_offsets[i]-1` is the last element of + * the ith data segment in `d_keys_*` and `d_values_*`. + * If `d_end_offsets[i]-1 <= d_begin_offsets[i]`, the i-th segment is + * considered empty. + * + * @param[in] stream + * [optional] CUDA stream to launch kernels within. Default is + * stream0. + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + SortPairsDescending(void *d_temp_storage, + std::size_t &temp_storage_bytes, + DoubleBuffer &d_keys, + DoubleBuffer &d_values, + int num_items, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + cudaStream_t stream = 0) + { + constexpr bool is_descending = true; + constexpr bool is_overwrite_okay = true; + using DispatchT = DispatchSegmentedSort; + + return DispatchT::Dispatch(d_temp_storage, + temp_storage_bytes, + d_keys, + d_values, + num_items, + num_segments, + d_begin_offsets, + d_end_offsets, + is_overwrite_okay, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + SortPairsDescending(void *d_temp_storage, + std::size_t &temp_storage_bytes, + DoubleBuffer &d_keys, + DoubleBuffer &d_values, + int num_items, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return SortPairsDescending(d_temp_storage, + temp_storage_bytes, + d_keys, + d_values, + num_items, + num_segments, + d_begin_offsets, + d_end_offsets, + stream); + } + + /** + * @brief Sorts segments of key-value pairs into ascending order. Approximately + * `2*num_items + 2*num_segments` auxiliary storage required. + * + * @par + * - The contents of the input data are not altered by the sorting operation. + * - When the input is a contiguous sequence of segments, a single sequence + * @p segment_offsets (of length `num_segments+1`) can be aliased + * for both the @p d_begin_offsets and @p d_end_offsets parameters (where + * the latter is specified as `segment_offsets+1`). + * - StableSortPairs is stable: it preserves the relative ordering of + * equivalent elements. That is, if @p x and @p y are elements such that + * @p x precedes @p y, and if the two elements are equivalent (neither + * @p x < @p y nor @p y < @p x) then a postcondition of stable sort is that + * @p x still precedes @p y. + * - Let `in` be one of `{d_keys_in, d_values_in}` and `out` be any of + * `{d_keys_out, d_values_out}`. The range `[out, out + num_items)` shall + * not overlap `[in, in + num_items)`, + * `[d_begin_offsets, d_begin_offsets + num_segments)` nor + * `[d_end_offsets, d_end_offsets + num_segments)` in any way. + * - Segments are not required to be contiguous. For all index values `i` + * outside the specified segments `d_keys_in[i]`, `d_values_in[i]`, + * `d_keys_out[i]`, `d_values_out[i]` will not be accessed nor modified. + * + * @par Snippet + * The code snippet below illustrates the batched sorting of three segments + * (with one zero-length segment) of @p int keys with associated vector of + * @p int values. + * + * @par + * @code + * #include + * // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers + * // for sorting data + * int num_items; // e.g., 7 + * int num_segments; // e.g., 3 + * int *d_offsets; // e.g., [0, 3, 3, 7] + * int *d_keys_in; // e.g., [8, 6, 7, 5, 3, 0, 9] + * int *d_keys_out; // e.g., [-, -, -, -, -, -, -] + * int *d_values_in; // e.g., [0, 1, 2, 3, 4, 5, 6] + * int *d_values_out; // e.g., [-, -, -, -, -, -, -] + * ... + * + * // Determine temporary device storage requirements + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceSegmentedSort::StableSortPairs( + * d_temp_storage, temp_storage_bytes, + * d_keys_in, d_keys_out, d_values_in, d_values_out, + * num_items, num_segments, d_offsets, d_offsets + 1); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run sorting operation + * cub::DeviceSegmentedSort::StableSortPairs( + * d_temp_storage, temp_storage_bytes, + * d_keys_in, d_keys_out, d_values_in, d_values_out, + * num_items, num_segments, d_offsets, d_offsets + 1); + * + * // d_keys_out <-- [6, 7, 8, 0, 3, 5, 9] + * // d_values_out <-- [1, 2, 0, 5, 4, 3, 6] + * @endcode + * + * @tparam KeyT + * [inferred] Key type + * + * @tparam ValueT + * [inferred] Value type + * + * @tparam BeginOffsetIteratorT + * [inferred] Random-access input iterator type for reading segment + * beginning offsets \iterator + * + * @tparam EndOffsetIteratorT + * [inferred] Random-access input iterator type for reading segment + * ending offsets \iterator + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When nullptr, the + * required allocation size is written to @p temp_storage_bytes and no work is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of @p d_temp_storage allocation + * + * @param[in] d_keys_in + * Device-accessible pointer to the input data of key data to sort + * + * @param[out] d_keys_out + * Device-accessible pointer to the sorted output sequence of key data + * + * @param[in] d_values_in + * Device-accessible pointer to the corresponding input sequence of + * associated value items + * + * @param[out] d_values_out + * Device-accessible pointer to the correspondingly-reordered output + * sequence of associated value items + * + * @param[in] num_items + * The total number of items to sort (across all segments) + * + * @param[in] num_segments + * The number of segments that comprise the sorting data + * + * @param[in] d_begin_offsets + * Random-access input iterator to the sequence of beginning offsets of + * length @p num_segments, such that `d_begin_offsets[i]` is the first + * element of the ith data segment in `d_keys_*` and + * `d_values_*` + * + * @param[in] d_end_offsets + * Random-access input iterator to the sequence of ending offsets of length + * @p num_segments, such that `d_end_offsets[i]-1` is the last element of + * the ith data segment in `d_keys_*` and `d_values_*`. + * If `d_end_offsets[i]-1 <= d_begin_offsets[i]`, the i-th segment is + * considered empty. + * + * @param[in] stream + * [optional] CUDA stream to launch kernels within. Default is + * stream0. + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + StableSortPairs(void *d_temp_storage, + std::size_t &temp_storage_bytes, + const KeyT *d_keys_in, + KeyT *d_keys_out, + const ValueT *d_values_in, + ValueT *d_values_out, + int num_items, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + cudaStream_t stream = 0) + { + return SortPairs(d_temp_storage, + temp_storage_bytes, + d_keys_in, + d_keys_out, + d_values_in, + d_values_out, + num_items, + num_segments, + d_begin_offsets, + d_end_offsets, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + StableSortPairs(void *d_temp_storage, + std::size_t &temp_storage_bytes, + const KeyT *d_keys_in, + KeyT *d_keys_out, + const ValueT *d_values_in, + ValueT *d_values_out, + int num_items, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return StableSortPairs( + d_temp_storage, + temp_storage_bytes, + d_keys_in, + d_keys_out, + d_values_in, + d_values_out, + num_items, + num_segments, + d_begin_offsets, + d_end_offsets, + stream); + } + + /** + * @brief Sorts segments of key-value pairs into descending order. + * Approximately `2*num_items + 2*num_segments` auxiliary + * storage required. + * + * @par + * - The contents of the input data are not altered by the sorting operation. + * - When the input is a contiguous sequence of segments, a single sequence + * @p segment_offsets (of length `num_segments+1`) can be aliased + * for both the @p d_begin_offsets and @p d_end_offsets parameters (where + * the latter is specified as `segment_offsets+1`). + * - StableSortPairsDescending is stable: it preserves the relative ordering + * of equivalent elements. That is, if @p x and @p y are elements such that + * @p x precedes @p y, and if the two elements are equivalent (neither + * @p x < @p y nor @p y < @p x) then a postcondition of stable sort is that + * @p x still precedes @p y. + * - Let `in` be one of `{d_keys_in, d_values_in}` and `out` be any of + * `{d_keys_out, d_values_out}`. The range `[out, out + num_items)` shall + * not overlap `[in, in + num_items)`, + * `[d_begin_offsets, d_begin_offsets + num_segments)` nor + * `[d_end_offsets, d_end_offsets + num_segments)` in any way. + * - Segments are not required to be contiguous. For all index values `i` + * outside the specified segments `d_keys_in[i]`, `d_values_in[i]`, + * `d_keys_out[i]`, `d_values_out[i]` will not be accessed nor modified. + * + * @par Snippet + * The code snippet below illustrates the batched sorting of three segments + * (with one zero-length segment) of @p int keys with associated vector of + * @p int values. + * + * @par + * @code + * #include + * // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers + * // for sorting data + * int num_items; // e.g., 7 + * int num_segments; // e.g., 3 + * int *d_offsets; // e.g., [0, 3, 3, 7] + * int *d_keys_in; // e.g., [8, 6, 7, 5, 3, 0, 9] + * int *d_keys_out; // e.g., [-, -, -, -, -, -, -] + * int *d_values_in; // e.g., [0, 1, 2, 3, 4, 5, 6] + * int *d_values_out; // e.g., [-, -, -, -, -, -, -] + * ... + * + * // Determine temporary device storage requirements + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceSegmentedSort::StableSortPairsDescending( + * d_temp_storage, temp_storage_bytes, + * d_keys_in, d_keys_out, d_values_in, d_values_out, + * num_items, num_segments, d_offsets, d_offsets + 1); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run sorting operation + * cub::DeviceSegmentedSort::StableSortPairsDescending( + * d_temp_storage, temp_storage_bytes, + * d_keys_in, d_keys_out, d_values_in, d_values_out, + * num_items, num_segments, d_offsets, d_offsets + 1); + * + * // d_keys_out <-- [8, 7, 6, 9, 5, 3, 0] + * // d_values_out <-- [0, 2, 1, 6, 3, 4, 5] + * @endcode + * + * @tparam KeyT + * [inferred] Key type + * + * @tparam ValueT + * [inferred] Value type + * + * @tparam BeginOffsetIteratorT + * [inferred] Random-access input iterator type for reading segment + * beginning offsets \iterator + * + * @tparam EndOffsetIteratorT + * [inferred] Random-access input iterator type for reading segment + * ending offsets \iterator + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to @p temp_storage_bytes and no work + * is done + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of @p d_temp_storage allocation + * + * @param[in] d_keys_in + * Device-accessible pointer to the input data of key data to sort + * + * @param[out] d_keys_out + * Device-accessible pointer to the sorted output sequence of key data + * + * @param[in] d_values_in + * Device-accessible pointer to the corresponding input sequence of + * associated value items + * + * @param[out] d_values_out + * Device-accessible pointer to the correspondingly-reordered output + * sequence of associated value items + * + * @param[in] num_items + * The total number of items to sort (across all segments) + * + * @param[in] num_segments + * The number of segments that comprise the sorting data + * + * @param[in] d_begin_offsets + * Random-access input iterator to the sequence of beginning offsets of + * length @p num_segments, such that `d_begin_offsets[i]` is the first + * element of the ith data segment in `d_keys_*` and + * `d_values_*` + * + * @param[in] d_end_offsets + * Random-access input iterator to the sequence of ending offsets of length + * @p num_segments, such that `d_end_offsets[i]-1` is the last element of + * the ith data segment in `d_keys_*` and `d_values_*`. + * If `d_end_offsets[i]-1 <= d_begin_offsets[i]`, the i-th segment is + * considered empty. + * + * @param[in] stream + * [optional] CUDA stream to launch kernels within. Default is + * stream0. + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + StableSortPairsDescending(void *d_temp_storage, + std::size_t &temp_storage_bytes, + const KeyT *d_keys_in, + KeyT *d_keys_out, + const ValueT *d_values_in, + ValueT *d_values_out, + int num_items, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + cudaStream_t stream = 0) + { + return SortPairsDescending(d_temp_storage, + temp_storage_bytes, + d_keys_in, + d_keys_out, + d_values_in, + d_values_out, + num_items, + num_segments, + d_begin_offsets, + d_end_offsets, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + StableSortPairsDescending(void *d_temp_storage, + std::size_t &temp_storage_bytes, + const KeyT *d_keys_in, + KeyT *d_keys_out, + const ValueT *d_values_in, + ValueT *d_values_out, + int num_items, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return StableSortPairsDescending(d_temp_storage, + temp_storage_bytes, + d_keys_in, + d_keys_out, + d_values_in, + d_values_out, + num_items, + num_segments, + d_begin_offsets, + d_end_offsets, + stream); + } + + /** + * @brief Sorts segments of key-value pairs into ascending order. + * Approximately `2*num_segments` auxiliary storage required. + * + * @par + * - The sorting operation is given a pair of key buffers and a corresponding + * pair of associated value buffers. Each pair is managed by a DoubleBuffer + * structure that indicates which of the two buffers is "current" (and thus + * contains the input data to be sorted). + * - The contents of both buffers within each pair may be altered by the + * sorting operation. + * - Upon completion, the sorting operation will update the "current" + * indicator within each DoubleBuffer wrapper to reference which of the two + * buffers now contains the sorted output sequence (a function of the number + * of key bits specified and the targeted device architecture). + * - When the input is a contiguous sequence of segments, a single sequence + * @p segment_offsets (of length `num_segments+1`) can be aliased + * for both the @p d_begin_offsets and @p d_end_offsets parameters (where + * the latter is specified as `segment_offsets+1`). + * - StableSortPairs is stable: it preserves the relative ordering + * of equivalent elements. That is, if @p x and @p y are elements such that + * @p x precedes @p y, and if the two elements are equivalent (neither + * @p x < @p y nor @p y < @p x) then a postcondition of stable sort is that + * @p x still precedes @p y. + * - Let `cur` be one of `{d_keys.Current(), d_values.Current()}` and `alt` + * be any of `{d_keys.Alternate(), d_values.Alternate()}`. The range + * `[cur, cur + num_items)` shall not overlap + * `[alt, alt + num_items)`. Both ranges shall not overlap + * `[d_begin_offsets, d_begin_offsets + num_segments)` nor + * `[d_end_offsets, d_end_offsets + num_segments)` in any way. + * - Segments are not required to be contiguous. For all index values `i` + * outside the specified segments `d_keys.Current()[i]`, + * `d_values.Current()[i]`, `d_keys.Alternate()[i]`, + * `d_values.Alternate()[i]` will not be accessed nor modified. + * + * @par Snippet + * The code snippet below illustrates the batched sorting of three segments + * (with one zero-length segment) of @p int keys with associated vector of + * @p int values. + * + * @par + * @code + * #include + * // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers + * // for sorting data + * int num_items; // e.g., 7 + * int num_segments; // e.g., 3 + * int *d_offsets; // e.g., [0, 3, 3, 7] + * int *d_key_buf; // e.g., [8, 6, 7, 5, 3, 0, 9] + * int *d_key_alt_buf; // e.g., [-, -, -, -, -, -, -] + * int *d_value_buf; // e.g., [0, 1, 2, 3, 4, 5, 6] + * int *d_value_alt_buf; // e.g., [-, -, -, -, -, -, -] + * ... + * + * // Create a set of DoubleBuffers to wrap pairs of device pointers + * cub::DoubleBuffer d_keys(d_key_buf, d_key_alt_buf); + * cub::DoubleBuffer d_values(d_value_buf, d_value_alt_buf); + * + * // Determine temporary device storage requirements + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceSegmentedSort::StableSortPairs( + * d_temp_storage, temp_storage_bytes, d_keys, d_values, + * num_items, num_segments, d_offsets, d_offsets + 1); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run sorting operation + * cub::DeviceSegmentedSort::StableSortPairs( + * d_temp_storage, temp_storage_bytes, d_keys, d_values, + * num_items, num_segments, d_offsets, d_offsets + 1); + * + * // d_keys.Current() <-- [6, 7, 8, 0, 3, 5, 9] + * // d_values.Current() <-- [5, 4, 3, 1, 2, 0, 6] + * + * @endcode + * + * @tparam KeyT + * [inferred] Key type + * + * @tparam ValueT + * [inferred] Value type + * + * @tparam BeginOffsetIteratorT + * [inferred] Random-access input iterator type for reading segment + * beginning offsets \iterator + * + * @tparam EndOffsetIteratorT + * [inferred] Random-access input iterator type for reading segment + * ending offsets \iterator + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to @p temp_storage_bytes and no work + * is done + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of @p d_temp_storage allocation + * + * @param[in,out] d_keys + * Reference to the double-buffer of keys whose "current" device-accessible + * buffer contains the unsorted input keys and, upon return, is updated to + * point to the sorted output keys + * + * @param[in,out] d_values + * Double-buffer of values whose "current" device-accessible buffer contains + * the unsorted input values and, upon return, is updated to point to the + * sorted output values + * + * @param[in] num_items + * The total number of items to sort (across all segments) + * + * @param[in] num_segments + * The number of segments that comprise the sorting data + * + * @param[in] d_begin_offsets + * Random-access input iterator to the sequence of beginning offsets of + * length @p num_segments, such that `d_begin_offsets[i]` is the first + * element of the ith data segment in `d_keys_*` and + * `d_values_*` + * + * @param[in] d_end_offsets + * Random-access input iterator to the sequence of ending offsets of length + * @p num_segments, such that `d_end_offsets[i]-1` is the last element of + * the ith data segment in `d_keys_*` and `d_values_*`. + * If `d_end_offsets[i]-1 <= d_begin_offsets[i]`, the i-th segment is + * considered empty. + * + * @param[in] stream + * [optional] CUDA stream to launch kernels within. Default is + * stream0. + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + StableSortPairs(void *d_temp_storage, + std::size_t &temp_storage_bytes, + DoubleBuffer &d_keys, + DoubleBuffer &d_values, + int num_items, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + cudaStream_t stream = 0) + { + return SortPairs(d_temp_storage, + temp_storage_bytes, + d_keys, + d_values, + num_items, + num_segments, + d_begin_offsets, + d_end_offsets, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + StableSortPairs(void *d_temp_storage, + std::size_t &temp_storage_bytes, + DoubleBuffer &d_keys, + DoubleBuffer &d_values, + int num_items, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return StableSortPairs( + d_temp_storage, + temp_storage_bytes, + d_keys, + d_values, + num_items, + num_segments, + d_begin_offsets, + d_end_offsets, + stream); + } + + /** + * @brief Sorts segments of key-value pairs into descending order. + * Approximately `2*num_segments` auxiliary storage required. + * + * @par + * - The sorting operation is given a pair of key buffers and a corresponding + * pair of associated value buffers. Each pair is managed by a DoubleBuffer + * structure that indicates which of the two buffers is "current" (and thus + * contains the input data to be sorted). + * - The contents of both buffers within each pair may be altered by the sorting + * operation. + * - Upon completion, the sorting operation will update the "current" indicator + * within each DoubleBuffer wrapper to reference which of the two buffers + * now contains the sorted output sequence (a function of the number of key bits + * specified and the targeted device architecture). + * - When the input is a contiguous sequence of segments, a single sequence + * @p segment_offsets (of length `num_segments+1`) can be aliased + * for both the @p d_begin_offsets and @p d_end_offsets parameters (where + * the latter is specified as `segment_offsets+1`). + * - StableSortPairsDescending is stable: it preserves the relative ordering + * of equivalent elements. That is, if @p x and @p y are elements such that + * @p x precedes @p y, and if the two elements are equivalent (neither + * @p x < @p y nor @p y < @p x) then a postcondition of stable sort is that + * @p x still precedes @p y. + * - Let `cur` be one of `{d_keys.Current(), d_values.Current()}` and `alt` + * be any of `{d_keys.Alternate(), d_values.Alternate()}`. The range + * `[cur, cur + num_items)` shall not overlap + * `[alt, alt + num_items)`. Both ranges shall not overlap + * `[d_begin_offsets, d_begin_offsets + num_segments)` nor + * `[d_end_offsets, d_end_offsets + num_segments)` in any way. + * - Segments are not required to be contiguous. For all index values `i` + * outside the specified segments `d_keys.Current()[i]`, + * `d_values.Current()[i]`, `d_keys.Alternate()[i]`, + * `d_values.Alternate()[i]` will not be accessed nor modified. + * + * @par Snippet + * The code snippet below illustrates the batched sorting of three segments + * (with one zero-length segment) of @p int keys with associated vector of + * @p int values. + * + * @par + * @code + * #include + * // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers + * // for sorting data + * int num_items; // e.g., 7 + * int num_segments; // e.g., 3 + * int *d_offsets; // e.g., [0, 3, 3, 7] + * int *d_key_buf; // e.g., [8, 6, 7, 5, 3, 0, 9] + * int *d_key_alt_buf; // e.g., [-, -, -, -, -, -, -] + * int *d_value_buf; // e.g., [0, 1, 2, 3, 4, 5, 6] + * int *d_value_alt_buf; // e.g., [-, -, -, -, -, -, -] + * ... + * + * // Create a set of DoubleBuffers to wrap pairs of device pointers + * cub::DoubleBuffer d_keys(d_key_buf, d_key_alt_buf); + * cub::DoubleBuffer d_values(d_value_buf, d_value_alt_buf); + * + * // Determine temporary device storage requirements + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceSegmentedSort::StableSortPairsDescending( + * d_temp_storage, temp_storage_bytes, d_keys, d_values, + * num_items, num_segments, d_offsets, d_offsets + 1); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run sorting operation + * cub::DeviceSegmentedSort::StableSortPairsDescending( + * d_temp_storage, temp_storage_bytes, d_keys, d_values, + * num_items, num_segments, d_offsets, d_offsets + 1); + * + * // d_keys.Current() <-- [8, 7, 6, 9, 5, 3, 0] + * // d_values.Current() <-- [0, 2, 1, 6, 3, 4, 5] + * @endcode + * + * @tparam KeyT + * [inferred] Key type + * + * @tparam ValueT + * [inferred] Value type + * + * @tparam BeginOffsetIteratorT + * [inferred] Random-access input iterator type for reading segment + * beginning offsets \iterator + * + * @tparam EndOffsetIteratorT + * [inferred] Random-access input iterator type for reading segment + * ending offsets \iterator + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to @p temp_storage_bytes and no work + * is done + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of @p d_temp_storage allocation + * + * @param[in,out] d_keys + * Reference to the double-buffer of keys whose "current" device-accessible + * buffer contains the unsorted input keys and, upon return, is updated to + * point to the sorted output keys + * + * @param[in,out] d_values + * Double-buffer of values whose "current" device-accessible buffer contains + * the unsorted input values and, upon return, is updated to point to the + * sorted output values + * + * @param[in] num_items + * The total number of items to sort (across all segments) + * + * @param[in] num_segments + * The number of segments that comprise the sorting data + * + * @param[in] d_begin_offsets + * Random-access input iterator to the sequence of beginning offsets of + * length @p num_segments, such that `d_begin_offsets[i]` is the first + * element of the ith data segment in `d_keys_*` and + * `d_values_*` + * + * @param[in] d_end_offsets + * Random-access input iterator to the sequence of ending offsets of length + * @p num_segments, such that `d_end_offsets[i]-1` is the last element of + * the ith data segment in `d_keys_*` and `d_values_*`. + * If `d_end_offsets[i]-1 <= d_begin_offsets[i]`, the i-th segment is + * considered empty. + * + * @param[in] stream + * [optional] CUDA stream to launch kernels within. Default is + * stream0. + */ + template + CUB_RUNTIME_FUNCTION static cudaError_t + StableSortPairsDescending(void *d_temp_storage, + std::size_t &temp_storage_bytes, + DoubleBuffer &d_keys, + DoubleBuffer &d_values, + int num_items, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + cudaStream_t stream = 0) + { + return SortPairsDescending(d_temp_storage, + temp_storage_bytes, + d_keys, + d_values, + num_items, + num_segments, + d_begin_offsets, + d_end_offsets, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t + StableSortPairsDescending(void *d_temp_storage, + std::size_t &temp_storage_bytes, + DoubleBuffer &d_keys, + DoubleBuffer &d_values, + int num_items, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return StableSortPairsDescending(d_temp_storage, + temp_storage_bytes, + d_keys, + d_values, + num_items, + num_segments, + d_begin_offsets, + d_end_offsets, + stream); + } + + //@} end member group + +}; + + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/device/device_select.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/device/device_select.cuh new file mode 100644 index 0000000000000000000000000000000000000000..f21431391ab2885849367af7893be00d9656bb22 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/device/device_select.cuh @@ -0,0 +1,1095 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2022, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * @file cub::DeviceSelect provides device-wide, parallel operations for + * compacting selected items from sequences of data items residing within + * device-accessible memory. + */ + +#pragma once + +#include +#include + +#include +#include +#include +#include + +CUB_NAMESPACE_BEGIN + + +/** + * @brief DeviceSelect provides device-wide, parallel operations for compacting + * selected items from sequences of data items residing within + * device-accessible memory. ![](select_logo.png) + * @ingroup SingleModule + * + * @par Overview + * These operations apply a selection criterion to selectively copy + * items from a specified input sequence to a compact output sequence. + * + * @par Usage Considerations + * @cdp_class{DeviceSelect} + * + * @par Performance + * @linear_performance{select-flagged, select-if, and select-unique} + * + * @par + * The following chart illustrates DeviceSelect::If performance across + * different CUDA architectures for `int32` items, where 50% of the items are + * randomly selected. + * + * @image html select_if_int32_50_percent.png + * + * @par + * The following chart illustrates DeviceSelect::Unique performance across + * different CUDA architectures for `int32` items where segments have lengths + * uniformly sampled from `[1, 1000]`. + * + * @image html select_unique_int32_len_500.png + * + * @par + * @plots_below + * + */ +struct DeviceSelect +{ + /** + * @brief Uses the `d_flags` sequence to selectively copy the corresponding + * items from `d_in` into `d_out`. The total number of items selected + * is written to `d_num_selected_out`. ![](select_flags_logo.png) + * + * @par + * - The value type of `d_flags` must be castable to `bool` (e.g., `bool`, + * `char`, `int`, etc.). + * - Copies of the selected items are compacted into `d_out` and maintain + * their original relative ordering. + * - The range `[d_out, d_out + *d_num_selected_out)` shall not overlap + * `[d_in, d_in + num_items)`, `[d_flags, d_flags + num_items)` nor + * `d_num_selected_out` in any way. + * - @devicestorage + * + * @par Snippet + * The code snippet below illustrates the compaction of items selected from + * an `int` device vector. + * @par + * @code + * #include // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers for input, + * // flags, and output + * int num_items; // e.g., 8 + * int *d_in; // e.g., [1, 2, 3, 4, 5, 6, 7, 8] + * char *d_flags; // e.g., [1, 0, 0, 1, 0, 1, 1, 0] + * int *d_out; // e.g., [ , , , , , , , ] + * int *d_num_selected_out; // e.g., [ ] + * ... + * + * // Determine temporary device storage requirements + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceSelect::Flagged( + * d_temp_storage, temp_storage_bytes, + * d_in, d_flags, d_out, d_num_selected_out, num_items); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run selection + * cub::DeviceSelect::Flagged( + * d_temp_storage, temp_storage_bytes, + * d_in, d_flags, d_out, d_num_selected_out, num_items); + * + * // d_out <-- [1, 4, 6, 7] + * // d_num_selected_out <-- [4] + * + * @endcode + * + * @tparam InputIteratorT + * **[inferred]** Random-access input iterator type for reading input + * items \iterator + * + * @tparam FlagIterator + * **[inferred]** Random-access input iterator type for reading selection + * flags \iterator + * + * @tparam OutputIteratorT + * **[inferred]** Random-access output iterator type for writing selected + * items \iterator + * + * @tparam NumSelectedIteratorT + * **[inferred]** Output iterator type for recording the number of items + * selected \iterator + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no work + * is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in] d_in + * Pointer to the input sequence of data items + * + * @param[in] d_flags + * Pointer to the input sequence of selection flags + * + * @param[out] d_out + * Pointer to the output sequence of selected data items + * + * @param[out] d_num_selected_out + * Pointer to the output total number of items selected + * (i.e., length of `d_out`) + * + * @param[in] num_items + * Total number of input items (i.e., length of `d_in`) + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. + * Default is stream0. + */ + template + CUB_RUNTIME_FUNCTION __forceinline__ static cudaError_t + Flagged(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + FlagIterator d_flags, + OutputIteratorT d_out, + NumSelectedIteratorT d_num_selected_out, + int num_items, + cudaStream_t stream = 0) + { + using OffsetT = int; // Signed integer type for global offsets + using SelectOp = NullType; // Selection op (not used) + using EqualityOp = NullType; // Equality operator (not used) + + return DispatchSelectIf::Dispatch(d_temp_storage, + temp_storage_bytes, + d_in, + d_flags, + d_out, + d_num_selected_out, + SelectOp(), + EqualityOp(), + num_items, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION __forceinline__ static cudaError_t + Flagged(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + FlagIterator d_flags, + OutputIteratorT d_out, + NumSelectedIteratorT d_num_selected_out, + int num_items, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return Flagged(d_temp_storage, + temp_storage_bytes, + d_in, + d_flags, + d_out, + d_num_selected_out, + num_items, + stream); + } + + /** + * @brief Uses the `d_flags` sequence to selectively compact the items in + * `d_data`. The total number of items selected is written to + * `d_num_selected_out`. ![](select_flags_logo.png) + * + * @par + * - The value type of `d_flags` must be castable to `bool` (e.g., `bool`, + * `char`, `int`, etc.). + * - Copies of the selected items are compacted in-place and maintain + * their original relative ordering. + * - The `d_data` may equal `d_flags`. The range + * `[d_data, d_data + num_items)` shall not overlap + * `[d_flags, d_flags + num_items)` in any other way. + * - @devicestorage + * + * @par Snippet + * The code snippet below illustrates the compaction of items selected from + * an `int` device vector. + * @par + * @code + * #include // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers for input, + * // flags, and output + * int num_items; // e.g., 8 + * int *d_data; // e.g., [1, 2, 3, 4, 5, 6, 7, 8] + * char *d_flags; // e.g., [1, 0, 0, 1, 0, 1, 1, 0] + * int *d_num_selected_out; // e.g., [ ] + * ... + * + * // Determine temporary device storage requirements + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceSelect::Flagged( + * d_temp_storage, temp_storage_bytes, + * d_in, d_flags, d_num_selected_out, num_items); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run selection + * cub::DeviceSelect::Flagged( + * d_temp_storage, temp_storage_bytes, + * d_in, d_flags, d_num_selected_out, num_items); + * + * // d_data <-- [1, 4, 6, 7] + * // d_num_selected_out <-- [4] + * + * @endcode + * + * @tparam IteratorT + * **[inferred]** Random-access iterator type for reading and writing + * selected items \iterator + * + * @tparam FlagIterator + * **[inferred]** Random-access input iterator type for reading selection + * flags \iterator + * + * @tparam NumSelectedIteratorT + * **[inferred]** Output iterator type for recording the number of items + * selected \iterator + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no work + * is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in,out] d_data + * Pointer to the sequence of data items + * + * @param[in] d_flags + * Pointer to the input sequence of selection flags + * + * @param[out] d_num_selected_out + * Pointer to the output total number of items selected + * + * @param[in] num_items + * Total number of input items (i.e., length of `d_data`) + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. + * Default is stream0. + */ + template + CUB_RUNTIME_FUNCTION __forceinline__ static cudaError_t + Flagged(void *d_temp_storage, + size_t &temp_storage_bytes, + IteratorT d_data, + FlagIterator d_flags, + NumSelectedIteratorT d_num_selected_out, + int num_items, + cudaStream_t stream = 0) + { + using OffsetT = int; // Signed integer type for global offsets + using SelectOp = NullType; // Selection op (not used) + using EqualityOp = NullType; // Equality operator (not used) + + constexpr bool may_alias = true; + + return DispatchSelectIf::Dispatch(d_temp_storage, + temp_storage_bytes, + d_data, // in + d_flags, + d_data, // out + d_num_selected_out, + SelectOp(), + EqualityOp(), + num_items, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION __forceinline__ static cudaError_t + Flagged(void *d_temp_storage, + size_t &temp_storage_bytes, + IteratorT d_data, + FlagIterator d_flags, + NumSelectedIteratorT d_num_selected_out, + int num_items, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return Flagged( + d_temp_storage, + temp_storage_bytes, + d_data, + d_flags, + d_num_selected_out, + num_items, + stream); + } + + /** + * @brief Uses the `select_op` functor to selectively copy items from `d_in` + * into `d_out`. The total number of items selected is written to + * `d_num_selected_out`. ![](select_logo.png) + * + * @par + * - Copies of the selected items are compacted into `d_out` and maintain + * their original relative ordering. + * - The range `[d_out, d_out + *d_num_selected_out)` shall not overlap + * `[d_in, d_in + num_items)` nor `d_num_selected_out` in any way. + * - @devicestorage + * + * @par Performance + * The following charts illustrate saturated select-if performance across + * different CUDA architectures for `int32` and `int64` items, respectively. + * Items are selected with 50% probability. + * + * @image html select_if_int32_50_percent.png + * @image html select_if_int64_50_percent.png + * + * @par + * The following charts are similar, but 5% selection probability: + * + * @image html select_if_int32_5_percent.png + * @image html select_if_int64_5_percent.png + * + * @par Snippet + * The code snippet below illustrates the compaction of items selected from + * an `int` device vector. + * @par + * @code + * #include // or equivalently + * + * // Functor type for selecting values less than some criteria + * struct LessThan + * { + * int compare; + * + * CUB_RUNTIME_FUNCTION __forceinline__ + * LessThan(int compare) : compare(compare) {} + * + * CUB_RUNTIME_FUNCTION __forceinline__ + * bool operator()(const int &a) const { + * return (a < compare); + * } + * }; + * + * // Declare, allocate, and initialize device-accessible pointers + * // for input and output + * int num_items; // e.g., 8 + * int *d_in; // e.g., [0, 2, 3, 9, 5, 2, 81, 8] + * int *d_out; // e.g., [ , , , , , , , ] + * int *d_num_selected_out; // e.g., [ ] + * LessThan select_op(7); + * ... + * + * // Determine temporary device storage requirements + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceSelect::If( + * d_temp_storage, temp_storage_bytes, + * d_in, d_out, d_num_selected_out, num_items, select_op); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run selection + * cub::DeviceSelect::If( + * d_temp_storage, temp_storage_bytes, + * d_in, d_out, d_num_selected_out, num_items, select_op); + * + * // d_out <-- [0, 2, 3, 5, 2] + * // d_num_selected_out <-- [5] + * @endcode + * + * @tparam InputIteratorT + * **[inferred]** Random-access input iterator type for reading input + * items \iterator + * + * @tparam OutputIteratorT + * **[inferred]** Random-access output iterator type for writing selected + * items \iterator + * + * @tparam NumSelectedIteratorT + * **[inferred]** Output iterator type for recording the number of items + * selected \iterator + * + * @tparam SelectOp + * **[inferred]** Selection operator type having member + * `bool operator()(const T &a)` + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no work + * is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in] d_in + * Pointer to the input sequence of data items + * + * @param[out] d_out + * Pointer to the output sequence of selected data items + * + * @param[out] d_num_selected_out + * Pointer to the output total number of items selected + * (i.e., length of `d_out`) + * + * @param[in] num_items + * Total number of input items (i.e., length of `d_in`) + * + * @param[in] select_op + * Unary selection operator + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. + * Default is stream0. + */ + template + CUB_RUNTIME_FUNCTION __forceinline__ static cudaError_t + If(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OutputIteratorT d_out, + NumSelectedIteratorT d_num_selected_out, + int num_items, + SelectOp select_op, + cudaStream_t stream = 0) + { + using OffsetT = int; // Signed integer type for global offsets + using FlagIterator = NullType *; // FlagT iterator type (not used) + using EqualityOp = NullType; // Equality operator (not used) + + return DispatchSelectIf::Dispatch(d_temp_storage, + temp_storage_bytes, + d_in, + NULL, + d_out, + d_num_selected_out, + select_op, + EqualityOp(), + num_items, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION __forceinline__ static cudaError_t + If(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OutputIteratorT d_out, + NumSelectedIteratorT d_num_selected_out, + int num_items, + SelectOp select_op, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return If( + d_temp_storage, + temp_storage_bytes, + d_in, + d_out, + d_num_selected_out, + num_items, + select_op, + stream); + } + + /** + * @brief Uses the `select_op` functor to selectively compact items in + * `d_data`. The total number of items selected is written to + * `d_num_selected_out`. ![](select_logo.png) + * + * @par + * - Copies of the selected items are compacted in `d_data` and maintain + * their original relative ordering. + * - @devicestorage + * + * @par Snippet + * The code snippet below illustrates the compaction of items selected from + * an `int` device vector. + * @par + * @code + * #include // or equivalently + * + * // Functor type for selecting values less than some criteria + * struct LessThan + * { + * int compare; + * + * CUB_RUNTIME_FUNCTION __forceinline__ + * LessThan(int compare) : compare(compare) {} + * + * CUB_RUNTIME_FUNCTION __forceinline__ + * bool operator()(const int &a) const { + * return (a < compare); + * } + * }; + * + * // Declare, allocate, and initialize device-accessible pointers + * // for input and output + * int num_items; // e.g., 8 + * int *d_data; // e.g., [0, 2, 3, 9, 5, 2, 81, 8] + * int *d_num_selected_out; // e.g., [ ] + * LessThan select_op(7); + * ... + * + * // Determine temporary device storage requirements + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceSelect::If( + * d_temp_storage, temp_storage_bytes, + * d_data, d_num_selected_out, num_items, select_op); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run selection + * cub::DeviceSelect::If( + * d_temp_storage, temp_storage_bytes, + * d_data, d_num_selected_out, num_items, select_op); + * + * // d_data <-- [0, 2, 3, 5, 2] + * // d_num_selected_out <-- [5] + * @endcode + * + * @tparam IteratorT + * **[inferred]** Random-access input iterator type for reading and + * writing items \iterator + * + * @tparam NumSelectedIteratorT + * **[inferred]** Output iterator type for recording the number of items + * selected \iterator + * + * @tparam SelectOp + * **[inferred]** Selection operator type having member + * `bool operator()(const T &a)` + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no work + * is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in,out] d_data + * Pointer to the sequence of data items + * + * @param[out] d_num_selected_out + * Pointer to the output total number of items selected + * + * @param[in] num_items + * Total number of input items (i.e., length of `d_data`) + * + * @param[in] select_op + * Unary selection operator + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. + * Default is stream0. + */ + template + CUB_RUNTIME_FUNCTION __forceinline__ static cudaError_t + If(void *d_temp_storage, + size_t &temp_storage_bytes, + IteratorT d_data, + NumSelectedIteratorT d_num_selected_out, + int num_items, + SelectOp select_op, + cudaStream_t stream = 0) + { + using OffsetT = int; // Signed integer type for global offsets + using FlagIterator = NullType *; // FlagT iterator type (not used) + using EqualityOp = NullType; // Equality operator (not used) + + constexpr bool may_alias = true; + + return DispatchSelectIf::Dispatch(d_temp_storage, + temp_storage_bytes, + d_data, // in + NULL, + d_data, // out + d_num_selected_out, + select_op, + EqualityOp(), + num_items, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION __forceinline__ static cudaError_t + If(void *d_temp_storage, + size_t &temp_storage_bytes, + IteratorT d_data, + NumSelectedIteratorT d_num_selected_out, + int num_items, + SelectOp select_op, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return If(d_temp_storage, + temp_storage_bytes, + d_data, + d_num_selected_out, + num_items, + select_op, + stream); + } + + /** + * @brief Given an input sequence `d_in` having runs of consecutive + * equal-valued keys, only the first key from each run is selectively + * copied to `d_out`. The total number of items selected is written to + * `d_num_selected_out`. ![](unique_logo.png) + * + * @par + * - The `==` equality operator is used to determine whether keys are + * equivalent + * - Copies of the selected items are compacted into `d_out` and maintain + * their original relative ordering. + * - The range `[d_out, d_out + *d_num_selected_out)` shall not overlap + * `[d_in, d_in + num_items)` nor `d_num_selected_out` in any way. + * - @devicestorage + * + * @par Performance + * The following charts illustrate saturated select-unique performance across different + * CUDA architectures for `int32` and `int64` items, respectively. Segments + * have lengths uniformly sampled from `[1, 1000]`. + * + * @image html select_unique_int32_len_500.png + * @image html select_unique_int64_len_500.png + * + * @par + * The following charts are similar, but with segment lengths uniformly + * sampled from `[1, 10]`: + * + * @image html select_unique_int32_len_5.png + * @image html select_unique_int64_len_5.png + * + * @par Snippet + * The code snippet below illustrates the compaction of items selected from + * an `int` device vector. + * @par + * @code + * #include // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers + * // for input and output + * int num_items; // e.g., 8 + * int *d_in; // e.g., [0, 2, 2, 9, 5, 5, 5, 8] + * int *d_out; // e.g., [ , , , , , , , ] + * int *d_num_selected_out; // e.g., [ ] + * ... + * + * // Determine temporary device storage requirements + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceSelect::Unique( + * d_temp_storage, temp_storage_bytes, + * d_in, d_out, d_num_selected_out, num_items); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run selection + * cub::DeviceSelect::Unique( + * d_temp_storage, temp_storage_bytes, + * d_in, d_out, d_num_selected_out, num_items); + * + * // d_out <-- [0, 2, 9, 5, 8] + * // d_num_selected_out <-- [5] + * @endcode + * + * @tparam InputIteratorT + * **[inferred]** Random-access input iterator type for reading input + * items \iterator + * + * @tparam OutputIteratorT + * **[inferred]** Random-access output iterator type for writing selected + * items \iterator + * + * @tparam NumSelectedIteratorT + * **[inferred]** Output iterator type for recording the number of items + * selected \iterator + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no work + * is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in] d_in + * Pointer to the input sequence of data items + * + * @param[out] d_out + * Pointer to the output sequence of selected data items + * + * @param[out] d_num_selected_out + * Pointer to the output total number of items selected + * (i.e., length of `d_out`) + * + * @param[in] num_items + * Total number of input items (i.e., length of `d_in`) + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. + * Default is stream0. + */ + template + CUB_RUNTIME_FUNCTION __forceinline__ static cudaError_t + Unique(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OutputIteratorT d_out, + NumSelectedIteratorT d_num_selected_out, + int num_items, + cudaStream_t stream = 0) + { + using OffsetT = int; // Signed integer type for global offsets + using FlagIterator = NullType *; // FlagT iterator type (not used) + using SelectOp = NullType; // Selection op (not used) + using EqualityOp = Equality; // Default == operator + + return DispatchSelectIf::Dispatch(d_temp_storage, + temp_storage_bytes, + d_in, + NULL, + d_out, + d_num_selected_out, + SelectOp(), + EqualityOp(), + num_items, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION __forceinline__ static cudaError_t + Unique(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OutputIteratorT d_out, + NumSelectedIteratorT d_num_selected_out, + int num_items, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return Unique( + d_temp_storage, + temp_storage_bytes, + d_in, + d_out, + d_num_selected_out, + num_items, + stream); + } + + /** + * @brief Given an input sequence `d_keys_in` and `d_values_in` with runs of + * key-value pairs with consecutive equal-valued keys, only the first + * key and its value from each run is selectively copied to + * `d_keys_out` and `d_values_out`. The total number of items selected + * is written to `d_num_selected_out`. ![](unique_logo.png) + * + * @par + * - The `==` equality operator is used to determine whether keys are + * equivalent + * - Copies of the selected items are compacted into `d_out` and maintain + * their original relative ordering. + * - In-place operations are not supported. There must be no overlap between + * any of the provided ranges: + * - `[d_keys_in, d_keys_in + num_items)` + * - `[d_keys_out, d_keys_out + *d_num_selected_out)` + * - `[d_values_in, d_values_in + num_items)` + * - `[d_values_out, d_values_out + *d_num_selected_out)` + * - `[d_num_selected_out, d_num_selected_out + 1)` + * - @devicestorage + * + * @par Snippet + * The code snippet below illustrates the compaction of items selected from + * an `int` device vector. + * @par + * @code + * #include // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers + * // for input and output + * int num_items; // e.g., 8 + * int *d_keys_in; // e.g., [0, 2, 2, 9, 5, 5, 5, 8] + * int *d_values_in; // e.g., [1, 2, 3, 4, 5, 6, 7, 8] + * int *d_keys_out; // e.g., [ , , , , , , , ] + * int *d_values_out; // e.g., [ , , , , , , , ] + * int *d_num_selected_out; // e.g., [ ] + * ... + * + * // Determine temporary device storage requirements + * void *d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceSelect::UniqueByKey( + * d_temp_storage, temp_storage_bytes, + * d_keys_in, d_values_in, + * d_keys_out, d_values_out, d_num_selected_out, num_items); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run selection + * cub::DeviceSelect::UniqueByKey( + * d_temp_storage, temp_storage_bytes, + * d_keys_in, d_values_in, + * d_keys_out, d_values_out, d_num_selected_out, num_items); + * + * // d_keys_out <-- [0, 2, 9, 5, 8] + * // d_values_out <-- [1, 2, 4, 5, 8] + * // d_num_selected_out <-- [5] + * @endcode + * + * @tparam KeyInputIteratorT + * **[inferred]** Random-access input iterator type for reading input + * keys \iterator + * + * @tparam ValueInputIteratorT + * **[inferred]** Random-access input iterator type for reading input + * values \iterator + * + * @tparam KeyOutputIteratorT + * **[inferred]** Random-access output iterator type for writing selected + * keys \iterator + * + * @tparam ValueOutputIteratorT + * **[inferred]** Random-access output iterator type for writing selected + * values \iterator + * + * @tparam NumSelectedIteratorT + * **[inferred]** Output iterator type for recording the number of items + * selected \iterator + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no work + * is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in] d_keys_in + * Pointer to the input sequence of keys + * + * @param[in] d_values_in + * Pointer to the input sequence of values + * + * @param[out] d_keys_out + * Pointer to the output sequence of selected keys + * + * @param[out] d_values_out + * Pointer to the output sequence of selected values + * + * @param[out] d_num_selected_out + * Pointer to the total number of items selected (i.e., length of + * `d_keys_out` or `d_values_out`) + * + * @param[in] num_items + * Total number of input items (i.e., length of `d_keys_in` or + * `d_values_in`) + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. + * Default is stream0. + */ + template + CUB_RUNTIME_FUNCTION __forceinline__ static cudaError_t + UniqueByKey(void *d_temp_storage, + size_t &temp_storage_bytes, + KeyInputIteratorT d_keys_in, + ValueInputIteratorT d_values_in, + KeyOutputIteratorT d_keys_out, + ValueOutputIteratorT d_values_out, + NumSelectedIteratorT d_num_selected_out, + int num_items, + cudaStream_t stream = 0) + { + using OffsetT = int; + using EqualityOp = Equality; + + return DispatchUniqueByKey::Dispatch(d_temp_storage, + temp_storage_bytes, + d_keys_in, + d_values_in, + d_keys_out, + d_values_out, + d_num_selected_out, + EqualityOp(), + num_items, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION __forceinline__ static cudaError_t + UniqueByKey(void *d_temp_storage, + size_t &temp_storage_bytes, + KeyInputIteratorT d_keys_in, + ValueInputIteratorT d_values_in, + KeyOutputIteratorT d_keys_out, + ValueOutputIteratorT d_values_out, + NumSelectedIteratorT d_num_selected_out, + int num_items, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return UniqueByKey(d_temp_storage, + temp_storage_bytes, + d_keys_in, + d_values_in, + d_keys_out, + d_values_out, + d_num_selected_out, + num_items, + stream); + } +}; + +/** + * @example example_device_select_flagged.cu + * @example example_device_select_if.cu + * @example example_device_select_unique.cu + */ + +CUB_NAMESPACE_END + + diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/device/device_spmv.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/device/device_spmv.cuh new file mode 100644 index 0000000000000000000000000000000000000000..22dcbe5fcf540934507bcdc5d6578200b2702a6d --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/device/device_spmv.cuh @@ -0,0 +1,197 @@ + +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2022, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * cub::DeviceSpmv provides device-wide parallel operations for performing sparse-matrix * vector multiplication (SpMV). + */ + +#pragma once + +#include +#include +#include + +#include +#include +#include + +CUB_NAMESPACE_BEGIN + + +/** + * \brief DeviceSpmv provides device-wide parallel operations for performing sparse-matrix * dense-vector multiplication (SpMV). + * \ingroup SingleModule + * + * \par Overview + * The [SpMV computation](http://en.wikipedia.org/wiki/Sparse_matrix-vector_multiplication) + * performs the matrix-vector operation + * y = A*x + y, + * where: + * - A is an mxn sparse matrix whose non-zero structure is specified in + * [compressed-storage-row (CSR) format](http://en.wikipedia.org/wiki/Sparse_matrix#Compressed_row_Storage_.28CRS_or_CSR.29) + * (i.e., three arrays: values, row_offsets, and column_indices) + * - x and y are dense vectors + * + * \par Usage Considerations + * \cdp_class{DeviceSpmv} + * + */ +struct DeviceSpmv +{ + /******************************************************************//** + * \name CSR matrix operations + *********************************************************************/ + //@{ + + /** + * \brief This function performs the matrix-vector operation y = A*x. + * + * \par Snippet + * The code snippet below illustrates SpMV upon a 9x9 CSR matrix A + * representing a 3x3 lattice (24 non-zeros). + * + * \par + * \code + * #include // or equivalently + * + * // Declare, allocate, and initialize device-accessible pointers for input matrix A, input vector x, + * // and output vector y + * int num_rows = 9; + * int num_cols = 9; + * int num_nonzeros = 24; + * + * float* d_values; // e.g., [1, 1, 1, 1, 1, 1, 1, 1, + * // 1, 1, 1, 1, 1, 1, 1, 1, + * // 1, 1, 1, 1, 1, 1, 1, 1] + * + * int* d_column_indices; // e.g., [1, 3, 0, 2, 4, 1, 5, 0, + * // 4, 6, 1, 3, 5, 7, 2, 4, + * // 8, 3, 7, 4, 6, 8, 5, 7] + * + * int* d_row_offsets; // e.g., [0, 2, 5, 7, 10, 14, 17, 19, 22, 24] + * + * float* d_vector_x; // e.g., [1, 1, 1, 1, 1, 1, 1, 1, 1] + * float* d_vector_y; // e.g., [ , , , , , , , , ] + * ... + * + * // Determine temporary device storage requirements + * void* d_temp_storage = NULL; + * size_t temp_storage_bytes = 0; + * cub::DeviceSpmv::CsrMV(d_temp_storage, temp_storage_bytes, d_values, + * d_row_offsets, d_column_indices, d_vector_x, d_vector_y, + * num_rows, num_cols, num_nonzeros); + * + * // Allocate temporary storage + * cudaMalloc(&d_temp_storage, temp_storage_bytes); + * + * // Run SpMV + * cub::DeviceSpmv::CsrMV(d_temp_storage, temp_storage_bytes, d_values, + * d_row_offsets, d_column_indices, d_vector_x, d_vector_y, + * num_rows, num_cols, num_nonzeros); + * + * // d_vector_y <-- [2, 3, 2, 3, 4, 3, 2, 3, 2] + * + * \endcode + * + * \tparam ValueT [inferred] Matrix and vector value type (e.g., /p float, /p double, etc.) + */ + template < + typename ValueT> + CUB_RUNTIME_FUNCTION + static cudaError_t CsrMV( + void* d_temp_storage, ///< [in] Device-accessible allocation of temporary storage. When NULL, the required allocation size is written to \p temp_storage_bytes and no work is done. + size_t& temp_storage_bytes, ///< [in,out] Reference to size in bytes of \p d_temp_storage allocation + const ValueT* d_values, ///< [in] Pointer to the array of \p num_nonzeros values of the corresponding nonzero elements of matrix A. + const int* d_row_offsets, ///< [in] Pointer to the array of \p m + 1 offsets demarcating the start of every row in \p d_column_indices and \p d_values (with the final entry being equal to \p num_nonzeros) + const int* d_column_indices, ///< [in] Pointer to the array of \p num_nonzeros column-indices of the corresponding nonzero elements of matrix A. (Indices are zero-valued.) + const ValueT* d_vector_x, ///< [in] Pointer to the array of \p num_cols values corresponding to the dense input vector x + ValueT* d_vector_y, ///< [out] Pointer to the array of \p num_rows values corresponding to the dense output vector y + int num_rows, ///< [in] number of rows of matrix A. + int num_cols, ///< [in] number of columns of matrix A. + int num_nonzeros, ///< [in] number of nonzero elements of matrix A. + cudaStream_t stream = 0) ///< [in] [optional] CUDA stream to launch kernels within. Default is stream0. + { + SpmvParams spmv_params; + spmv_params.d_values = d_values; + spmv_params.d_row_end_offsets = d_row_offsets + 1; + spmv_params.d_column_indices = d_column_indices; + spmv_params.d_vector_x = d_vector_x; + spmv_params.d_vector_y = d_vector_y; + spmv_params.num_rows = num_rows; + spmv_params.num_cols = num_cols; + spmv_params.num_nonzeros = num_nonzeros; + spmv_params.alpha = ValueT{1}; + spmv_params.beta = ValueT{0}; + + return DispatchSpmv::Dispatch( + d_temp_storage, + temp_storage_bytes, + spmv_params, + stream); + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION static cudaError_t CsrMV(void *d_temp_storage, + size_t &temp_storage_bytes, + const ValueT *d_values, + const int *d_row_offsets, + const int *d_column_indices, + const ValueT *d_vector_x, + ValueT *d_vector_y, + int num_rows, + int num_cols, + int num_nonzeros, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return CsrMV(d_temp_storage, + temp_storage_bytes, + d_values, + d_row_offsets, + d_column_indices, + d_vector_x, + d_vector_y, + num_rows, + num_cols, + num_nonzeros, + stream); + } + + //@} end member group +}; + + + +CUB_NAMESPACE_END + + diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_adjacent_difference.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_adjacent_difference.cuh new file mode 100644 index 0000000000000000000000000000000000000000..39d58de242997220b9755df8eb9846c843df7234 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_adjacent_difference.cuh @@ -0,0 +1,403 @@ +/****************************************************************************** + * Copyright (c) 2011-2021, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include + +CUB_NAMESPACE_BEGIN + + +template +void __global__ DeviceAdjacentDifferenceInitKernel(InputIteratorT first, + InputT *result, + OffsetT num_tiles, + int items_per_tile) +{ + const int tile_idx = static_cast(blockIdx.x * blockDim.x + threadIdx.x); + AgentDifferenceInitT::Process(tile_idx, + first, + result, + num_tiles, + items_per_tile); +} + +template +void __global__ +DeviceAdjacentDifferenceDifferenceKernel(InputIteratorT input, + InputT *first_tile_previous, + OutputIteratorT result, + DifferenceOpT difference_op, + OffsetT num_items) +{ + using ActivePolicyT = + typename ChainedPolicyT::ActivePolicy::AdjacentDifferencePolicy; + + // It is OK to introspect the return type or parameter types of the + // `operator()` function of `__device__` extended lambda within device code. + using OutputT = detail::invoke_result_t; + + using Agent = AgentDifference; + + __shared__ typename Agent::TempStorage storage; + + Agent agent(storage, + input, + first_tile_previous, + result, + difference_op, + num_items); + + int tile_idx = static_cast(blockIdx.x); + OffsetT tile_base = static_cast(tile_idx) + * ActivePolicyT::ITEMS_PER_TILE; + + agent.Process(tile_idx, tile_base); +} + +template +struct DeviceAdjacentDifferencePolicy +{ + using ValueT = typename std::iterator_traits::value_type; + + //------------------------------------------------------------------------------ + // Architecture-specific tuning policies + //------------------------------------------------------------------------------ + + struct Policy300 : ChainedPolicy<300, Policy300, Policy300> + { + using AdjacentDifferencePolicy = + AgentAdjacentDifferencePolicy<128, + Nominal8BItemsToItems(7), + BLOCK_LOAD_WARP_TRANSPOSE, + LOAD_DEFAULT, + BLOCK_STORE_WARP_TRANSPOSE>; + }; + + struct Policy350 : ChainedPolicy<350, Policy350, Policy300> + { + using AdjacentDifferencePolicy = + AgentAdjacentDifferencePolicy<128, + Nominal8BItemsToItems(7), + BLOCK_LOAD_WARP_TRANSPOSE, + MayAlias ? LOAD_CA : LOAD_LDG, + BLOCK_STORE_WARP_TRANSPOSE>; + }; + + using MaxPolicy = Policy350; +}; + +template > +struct DispatchAdjacentDifference : public SelectedPolicy +{ + using InputT = typename std::iterator_traits::value_type; + + void *d_temp_storage; + std::size_t &temp_storage_bytes; + InputIteratorT d_input; + OutputIteratorT d_output; + OffsetT num_items; + DifferenceOpT difference_op; + cudaStream_t stream; + + CUB_RUNTIME_FUNCTION __forceinline__ + DispatchAdjacentDifference(void *d_temp_storage, + std::size_t &temp_storage_bytes, + InputIteratorT d_input, + OutputIteratorT d_output, + OffsetT num_items, + DifferenceOpT difference_op, + cudaStream_t stream) + : d_temp_storage(d_temp_storage) + , temp_storage_bytes(temp_storage_bytes) + , d_input(d_input) + , d_output(d_output) + , num_items(num_items) + , difference_op(difference_op) + , stream(stream) + {} + + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_DEPRECATED CUB_RUNTIME_FUNCTION __forceinline__ + DispatchAdjacentDifference(void *d_temp_storage, + std::size_t &temp_storage_bytes, + InputIteratorT d_input, + OutputIteratorT d_output, + OffsetT num_items, + DifferenceOpT difference_op, + cudaStream_t stream, + bool debug_synchronous) + : d_temp_storage(d_temp_storage) + , temp_storage_bytes(temp_storage_bytes) + , d_input(d_input) + , d_output(d_output) + , num_items(num_items) + , difference_op(difference_op) + , stream(stream) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + } + + /// Invocation + template + CUB_RUNTIME_FUNCTION __forceinline__ cudaError_t Invoke() + { + using AdjacentDifferencePolicyT = + typename ActivePolicyT::AdjacentDifferencePolicy; + + using MaxPolicyT = typename DispatchAdjacentDifference::MaxPolicy; + + cudaError error = cudaSuccess; + + do + { + const int tile_size = AdjacentDifferencePolicyT::ITEMS_PER_TILE; + const int num_tiles = + static_cast(DivideAndRoundUp(num_items, tile_size)); + + std::size_t first_tile_previous_size = MayAlias * num_tiles * + sizeof(InputT); + + void *allocations[1] = {nullptr}; + std::size_t allocation_sizes[1] = {MayAlias * first_tile_previous_size}; + + if (CubDebug(error = AliasTemporaries(d_temp_storage, + temp_storage_bytes, + allocations, + allocation_sizes))) + { + break; + } + + if (d_temp_storage == nullptr) + { + // Return if the caller is simply requesting the size of the storage + // allocation + + if (temp_storage_bytes == 0) + { + temp_storage_bytes = 1; + } + + break; + } + + if (num_items == OffsetT{}) + { + break; + } + + auto first_tile_previous = reinterpret_cast(allocations[0]); + + if (MayAlias) + { + using AgentDifferenceInitT = + AgentDifferenceInit; + + const int init_block_size = AgentDifferenceInitT::BLOCK_THREADS; + const int init_grid_size = DivideAndRoundUp(num_tiles, init_block_size); + + #ifdef CUB_DETAIL_DEBUG_ENABLE_LOG + _CubLog("Invoking DeviceAdjacentDifferenceInitKernel" + "<<<%d, %d, 0, %lld>>>()\n", + init_grid_size, + init_block_size, + reinterpret_cast(stream)); + #endif + + THRUST_NS_QUALIFIER::cuda_cub::launcher::triple_chevron(init_grid_size, + init_block_size, + 0, + stream) + .doit(DeviceAdjacentDifferenceInitKernel, + d_input, + first_tile_previous, + num_tiles, + tile_size); + + error = detail::DebugSyncStream(stream); + + if (CubDebug(error)) + { + break; + } + + // Check for failure to launch + if (CubDebug(error = cudaPeekAtLastError())) + { + break; + } + } + + #ifdef CUB_DETAIL_DEBUG_ENABLE_LOG + _CubLog("Invoking DeviceAdjacentDifferenceDifferenceKernel" + "<<<%d, %d, 0, %lld>>>()\n", + num_tiles, + AdjacentDifferencePolicyT::BLOCK_THREADS, + reinterpret_cast(stream)); + #endif + + THRUST_NS_QUALIFIER::cuda_cub::launcher::triple_chevron( + num_tiles, + AdjacentDifferencePolicyT::BLOCK_THREADS, + 0, + stream) + .doit(DeviceAdjacentDifferenceDifferenceKernel, + d_input, + first_tile_previous, + d_output, + difference_op, + num_items); + + error = detail::DebugSyncStream(stream); + + if (CubDebug(error)) + { + break; + } + + // Check for failure to launch + if (CubDebug(error = cudaPeekAtLastError())) + { + break; + } + } while (0); + + return error; + } + + CUB_RUNTIME_FUNCTION + static cudaError_t Dispatch(void *d_temp_storage, + std::size_t &temp_storage_bytes, + InputIteratorT d_input, + OutputIteratorT d_output, + OffsetT num_items, + DifferenceOpT difference_op, + cudaStream_t stream) + { + using MaxPolicyT = typename DispatchAdjacentDifference::MaxPolicy; + + cudaError error = cudaSuccess; + do + { + // Get PTX version + int ptx_version = 0; + if (CubDebug(error = PtxVersion(ptx_version))) + { + break; + } + + // Create dispatch functor + DispatchAdjacentDifference dispatch(d_temp_storage, + temp_storage_bytes, + d_input, + d_output, + num_items, + difference_op, + stream); + + // Dispatch to chained policy + if (CubDebug(error = MaxPolicyT::Invoke(ptx_version, dispatch))) + { + break; + } + } while (0); + + return error; + } + + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION + static cudaError_t Dispatch(void *d_temp_storage, + std::size_t &temp_storage_bytes, + InputIteratorT d_input, + OutputIteratorT d_output, + OffsetT num_items, + DifferenceOpT difference_op, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return Dispatch(d_temp_storage, + temp_storage_bytes, + d_input, + d_output, + num_items, + difference_op, + stream); + } +}; + + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_batch_memcpy.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_batch_memcpy.cuh new file mode 100644 index 0000000000000000000000000000000000000000..0513d749b9bb7064b4be38f5fd92d0b5335be72b --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_batch_memcpy.cuh @@ -0,0 +1,731 @@ +/****************************************************************************** + * Copyright (c) 2011-2022, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * cub::DispatchBatchMemcpy provides device-wide, parallel operations for copying data from a number + * of given source buffers to their corresponding destination buffer. + */ + +#pragma once + +#include +#include +#include +#include +#include +#include +#include + +#include + +#include + +#include + +CUB_NAMESPACE_BEGIN + +namespace detail +{ + +/** + * Parameterizable tuning policy type for AgentBatchMemcpy + */ +template +struct AgentBatchMemcpyLargeBuffersPolicy +{ + /// Threads per thread block + static constexpr uint32_t BLOCK_THREADS = _BLOCK_THREADS; + /// The number of bytes each thread copies + static constexpr uint32_t BYTES_PER_THREAD = _BYTES_PER_THREAD; +}; + +/** + * Initialization kernel for tile status initialization (multi-block) + */ +template +__global__ void InitTileStateKernel(BufferOffsetScanTileStateT buffer_offset_scan_tile_state, + BlockOffsetScanTileStateT block_offset_scan_tile_state, + TileOffsetT num_tiles) +{ + // Initialize tile status + buffer_offset_scan_tile_state.InitializeStatus(num_tiles); + block_offset_scan_tile_state.InitializeStatus(num_tiles); +} + +/** + * Kernel that copies buffers that need to be copied by at least one (and potentially many) thread + * blocks. + */ +template +__launch_bounds__(int(ChainedPolicyT::ActivePolicy::AgentLargeBufferPolicyT::BLOCK_THREADS)) + __global__ void MultiBlockBatchMemcpyKernel(InputBufferIt input_buffer_it, + OutputBufferIt output_buffer_it, + BufferSizeIteratorT buffer_sizes, + BufferTileOffsetItT buffer_tile_offsets, + TileT buffer_offset_tile, + TileOffsetT last_tile_offset) +{ + using StatusWord = typename TileT::StatusWord; + using ActivePolicyT = typename ChainedPolicyT::ActivePolicy::AgentLargeBufferPolicyT; + using BufferSizeT = cub::detail::value_t; + /// Internal load/store type. For byte-wise memcpy, a single-byte type + using AliasT = typename ::cuda::std::conditional< + IsMemcpy, + std::iterator_traits, + std::iterator_traits>>::type::value_type; + /// Types of the input and output buffers + using InputBufferT = cub::detail::value_t; + using OutputBufferT = cub::detail::value_t; + + constexpr uint32_t BLOCK_THREADS = ActivePolicyT::BLOCK_THREADS; + constexpr uint32_t ITEMS_PER_THREAD = ActivePolicyT::BYTES_PER_THREAD; + constexpr BufferSizeT TILE_SIZE = static_cast(BLOCK_THREADS * ITEMS_PER_THREAD); + + BufferOffsetT num_blev_buffers = buffer_offset_tile.LoadValid(last_tile_offset); + + uint32_t tile_id = blockIdx.x; + + // No block-level buffers => we're done here + if (num_blev_buffers == 0) + { + return; + } + + // While there's still tiles of bytes from block-level buffers to copied + do + { + __shared__ BufferOffsetT block_buffer_id; + + // Make sure thread 0 does not overwrite the buffer id before other threads have finished with + // the prior iteration of the loop + CTA_SYNC(); + + // Binary search the buffer that this tile belongs to + if (threadIdx.x == 0) + block_buffer_id = UpperBound(buffer_tile_offsets, num_blev_buffers, tile_id) - 1; + + // Make sure thread 0 has written the buffer this thread block is assigned to + CTA_SYNC(); + + const BufferOffsetT buffer_id = block_buffer_id; + + // The relative offset of this tile within the buffer it's assigned to + BufferSizeT tile_offset_within_buffer = + static_cast(tile_id - buffer_tile_offsets[buffer_id]) * TILE_SIZE; + + // If the tile has already reached beyond the work of the end of the last buffer + if (buffer_id >= num_blev_buffers - 1 && tile_offset_within_buffer > buffer_sizes[buffer_id]) + { + return; + } + + // Tiny remainders are copied without vectorizing laods + if (buffer_sizes[buffer_id] - tile_offset_within_buffer <= 32) + { + BufferSizeT thread_offset = tile_offset_within_buffer + threadIdx.x; + for (int i = 0; i < ITEMS_PER_THREAD; i++) + { + if (thread_offset < buffer_sizes[buffer_id]) + { + const auto value = read_item(input_buffer_it[buffer_id], + thread_offset); + write_item(output_buffer_it[buffer_id], + thread_offset, + value); + } + thread_offset += BLOCK_THREADS; + } + } + else + { + copy_items( + input_buffer_it[buffer_id], + output_buffer_it[buffer_id], + (cub::min)(buffer_sizes[buffer_id] - tile_offset_within_buffer, TILE_SIZE), + tile_offset_within_buffer); + } + + tile_id += gridDim.x; + } while (true); +} + +/** + * @brief Kernel that copies data from a batch of given source buffers to their corresponding + * destination buffer. If a buffer's size is to large to be copied by a single thread block, that + * buffer is put into a queue of buffers that will get picked up later on, where multiple blocks + * collaborate on each of these buffers. All other buffers get copied straight away. + * + * @param input_buffer_it [in] Iterator providing the pointers to the source memory buffers + * @param output_buffer_it [in] Iterator providing the pointers to the destination memory buffers + * @param buffer_sizes [in] Iterator providing the number of bytes to be copied for each pair of + * buffers + * @param num_buffers [in] The total number of buffer pairs + * @param blev_buffer_srcs [out] The source pointers of buffers that require block-level + * collaboration + * @param blev_buffer_dsts [out] The destination pointers of buffers that require block-level + * collaboration + * @param blev_buffer_sizes [out] The sizes of buffers that require block-level collaboration + * @param blev_buffer_scan_state [in,out] Tile states for the prefix sum over the count of buffers + * requiring block-level collaboration (to "stream compact" (aka "select") BLEV-buffers) + * @param blev_block_scan_state [in,out] Tile states for the prefix sum over the number of thread + * blocks getting assigned to each buffer that requires block-level collaboration + */ +template +__launch_bounds__(int(ChainedPolicyT::ActivePolicy::AgentSmallBufferPolicyT::BLOCK_THREADS)) + __global__ void BatchMemcpyKernel(InputBufferIt input_buffer_it, + OutputBufferIt output_buffer_it, + BufferSizeIteratorT buffer_sizes, + BufferOffsetT num_buffers, + BlevBufferSrcsOutItT blev_buffer_srcs, + BlevBufferDstsOutItT blev_buffer_dsts, + BlevBufferSizesOutItT blev_buffer_sizes, + BlevBufferTileOffsetsOutItT blev_buffer_tile_offsets, + BLevBufferOffsetTileState blev_buffer_scan_state, + BLevBlockOffsetTileState blev_block_scan_state) +{ + // Internal type used for storing a buffer's size + using BufferSizeT = cub::detail::value_t; + + // Alias the correct tuning policy for the current compilation pass' architecture + using AgentBatchMemcpyPolicyT = typename ChainedPolicyT::ActivePolicy::AgentSmallBufferPolicyT; + + // Block-level specialization + using AgentBatchMemcpyT = AgentBatchMemcpy; + + // Shared memory for AgentBatchMemcpy + __shared__ typename AgentBatchMemcpyT::TempStorage temp_storage; + + // Process this block's tile of input&output buffer pairs + AgentBatchMemcpyT(temp_storage, + input_buffer_it, + output_buffer_it, + buffer_sizes, + num_buffers, + blev_buffer_srcs, + blev_buffer_dsts, + blev_buffer_sizes, + blev_buffer_tile_offsets, + blev_buffer_scan_state, + blev_block_scan_state) + .ConsumeTile(blockIdx.x); +} + +struct DeviceBatchMemcpyPolicy +{ + static constexpr uint32_t BLOCK_THREADS = 128U; + static constexpr uint32_t BUFFERS_PER_THREAD = 4U; + static constexpr uint32_t TLEV_BYTES_PER_THREAD = 8U; + + static constexpr uint32_t LARGE_BUFFER_BLOCK_THREADS = 256U; + static constexpr uint32_t LARGE_BUFFER_BYTES_PER_THREAD = 32U; + + /// SM35 + struct Policy350 : ChainedPolicy<350, Policy350, Policy350> + { + static constexpr bool PREFER_POW2_BITS = true; + using AgentSmallBufferPolicyT = + AgentBatchMemcpyPolicy; + + using AgentLargeBufferPolicyT = + AgentBatchMemcpyLargeBuffersPolicy; + }; + + /// SM70 + struct Policy700 : ChainedPolicy<700, Policy700, Policy350> + { + static constexpr bool PREFER_POW2_BITS = false; + using AgentSmallBufferPolicyT = + AgentBatchMemcpyPolicy; + + using AgentLargeBufferPolicyT = + AgentBatchMemcpyLargeBuffersPolicy; + }; + + using MaxPolicy = Policy700; +}; + +/** + * @tparam InputBufferIt [inferred] Random-access input iterator type providing the pointers + * to the source memory buffers + * @tparam OutputBufferIt [inferred] Random-access input iterator type providing the pointers + * to the destination memory buffers + * @tparam BufferSizeIteratorT [inferred] Random-access input iterator type providing the + * number of bytes to be copied for each pair of buffers + * @tparam BufferOffsetT Integer type large enough to hold any offset in [0, num_buffers) + * @tparam BlockOffsetT Integer type large enough to hold any offset in [0, + * num_thread_blocks_launched) + */ +template +struct DispatchBatchMemcpy : SelectedPolicy +{ + //------------------------------------------------------------------------------ + // TYPE ALIASES + //------------------------------------------------------------------------------ + // Tile state for the single-pass prefix scan to "stream compact" (aka "select") the buffers + // requiring block-level collaboration + using BufferPartitionScanTileStateT = typename cub::ScanTileState; + + // Tile state for the single-pass prefix scan to keep track of how many blocks are assigned to + // each of the buffers requiring block-level collaboration + using BufferTileOffsetScanStateT = typename cub::ScanTileState; + + // Internal type used to keep track of a buffer's size + using BufferSizeT = cub::detail::value_t; + + //------------------------------------------------------------------------------ + // Member Veriables + //------------------------------------------------------------------------------ + void *d_temp_storage; + size_t &temp_storage_bytes; + InputBufferIt input_buffer_it; + OutputBufferIt output_buffer_it; + BufferSizeIteratorT buffer_sizes; + BufferOffsetT num_buffers; + cudaStream_t stream; + + //------------------------------------------------------------------------------ + // Constructor + //------------------------------------------------------------------------------ + CUB_RUNTIME_FUNCTION __forceinline__ DispatchBatchMemcpy(void *d_temp_storage, + size_t &temp_storage_bytes, + InputBufferIt input_buffer_it, + OutputBufferIt output_buffer_it, + BufferSizeIteratorT buffer_sizes, + BufferOffsetT num_buffers, + cudaStream_t stream) + : d_temp_storage(d_temp_storage) + , temp_storage_bytes(temp_storage_bytes) + , input_buffer_it(input_buffer_it) + , output_buffer_it(output_buffer_it) + , buffer_sizes(buffer_sizes) + , num_buffers(num_buffers) + , stream(stream) + {} + + //------------------------------------------------------------------------------ + // Chained policy invocation + //------------------------------------------------------------------------------ + /** + * @brief Tuning policy invocation. This member function template is getting instantiated for all + * tuning policies in the tuning policy chain. It is, however, *invoked* for the correct tuning + * policy only. + */ + template + CUB_RUNTIME_FUNCTION __forceinline__ cudaError_t Invoke() + { + using MaxPolicyT = typename DispatchBatchMemcpy::MaxPolicy; + + // Single-pass prefix scan tile states for the prefix-sum over the number of block-level buffers + using BLevBufferOffsetTileState = cub::ScanTileState; + + // Single-pass prefix scan tile states for the prefix sum over the number of thread blocks + // assigned to each of the block-level buffers + using BLevBlockOffsetTileState = cub::ScanTileState; + + cudaError error = cudaSuccess; + + enum : uint32_t + { + // Memory for the source pointers of the buffers that require block-level collaboration + MEM_BLEV_BUFFER_SRCS = 0, + // Memory for the destination pointers of the buffers that require block-level collaboration + MEM_BLEV_BUFFER_DSTS, + // Memory for the block-level buffers' sizes + MEM_BLEV_BUFFER_SIZES, + // Memory to keep track of the assignment of thread blocks to block-level buffers + MEM_BLEV_BUFFER_TBLOCK, + // Memory for the tile states of the prefix sum over the number of buffers that require + // block-level collaboration + MEM_BLEV_BUFFER_SCAN_STATE, + // Memory for the scan tile states of the prefix sum over the number of thread block's + // assigned up to and including a certain block-level buffer + MEM_BLEV_BLOCK_SCAN_STATE, + // Total number of distinct memory allocations in the temporary storage memory BLOB + MEM_NUM_ALLOCATIONS + }; + + // Number of threads per block for initializing the grid states + constexpr BlockOffsetT INIT_KERNEL_THREADS = 128U; + + // The number of buffers that get processed per thread block + constexpr uint32_t TILE_SIZE = ActivePolicyT::AgentSmallBufferPolicyT::BLOCK_THREADS * + ActivePolicyT::AgentSmallBufferPolicyT::BUFFERS_PER_THREAD; + + // The number of thread blocks (or tiles) required to process all of the given buffers + BlockOffsetT num_tiles = DivideAndRoundUp(num_buffers, TILE_SIZE); + + using BlevBufferSrcsOutT = + cub::detail::conditional_t>; + using BlevBufferDstOutT = + cub::detail::conditional_t>; + using BlevBufferSrcsOutItT = BlevBufferSrcsOutT *; + using BlevBufferDstsOutItT = BlevBufferDstOutT *; + using BlevBufferSizesOutItT = BufferSizeT *; + using BlevBufferTileOffsetsOutItT = BlockOffsetT *; + + temporary_storage::layout temporary_storage_layout; + + auto blev_buffer_srcs_slot = temporary_storage_layout.get_slot(MEM_BLEV_BUFFER_SRCS); + auto blev_buffer_dsts_slot = temporary_storage_layout.get_slot(MEM_BLEV_BUFFER_DSTS); + auto blev_buffer_sizes_slot = temporary_storage_layout.get_slot(MEM_BLEV_BUFFER_SIZES); + auto blev_buffer_block_slot = temporary_storage_layout.get_slot(MEM_BLEV_BUFFER_TBLOCK); + auto blev_buffer_scan_slot = temporary_storage_layout.get_slot(MEM_BLEV_BUFFER_SCAN_STATE); + auto blev_buffer_block_scan_slot = temporary_storage_layout.get_slot(MEM_BLEV_BLOCK_SCAN_STATE); + + auto blev_buffer_srcs_alloc = + blev_buffer_srcs_slot->template create_alias(); + auto blev_buffer_dsts_alloc = blev_buffer_dsts_slot->template create_alias(); + auto blev_buffer_sizes_alloc = blev_buffer_sizes_slot->template create_alias(); + auto blev_buffer_block_alloc = blev_buffer_block_slot->template create_alias(); + auto blev_buffer_scan_alloc = blev_buffer_scan_slot->template create_alias(); + auto blev_block_scan_alloc = blev_buffer_block_scan_slot->template create_alias(); + + std::size_t buffer_offset_scan_storage = 0; + std::size_t blev_block_scan_storage = 0; + CubDebug(error = BLevBufferOffsetTileState::AllocationSize(static_cast(num_tiles), + buffer_offset_scan_storage)); + if (error) + { + return error; + } + CubDebug(error = BLevBlockOffsetTileState::AllocationSize(static_cast(num_tiles), + blev_block_scan_storage)); + if (error) + { + return error; + } + + blev_buffer_srcs_alloc.grow(num_buffers); + blev_buffer_dsts_alloc.grow(num_buffers); + blev_buffer_sizes_alloc.grow(num_buffers); + blev_buffer_block_alloc.grow(num_buffers); + blev_buffer_scan_alloc.grow(buffer_offset_scan_storage); + blev_block_scan_alloc.grow(blev_block_scan_storage); + + // Just return if no temporary storage is provided + if (d_temp_storage == nullptr) + { + temp_storage_bytes = temporary_storage_layout.get_size(); + return error; + } + + // Return if empty problem + if (num_buffers == 0) + { + return error; + } + + // Alias memory buffers into the storage blob + if (CubDebug( + error = temporary_storage_layout.map_to_buffer(d_temp_storage, temp_storage_bytes))) + { + return error; + } + + // Alias into temporary storage allocation + BlevBufferSrcsOutItT d_blev_src_buffers = blev_buffer_srcs_alloc.get(); + BlevBufferDstsOutItT d_blev_dst_buffers = blev_buffer_dsts_alloc.get(); + BlevBufferSizesOutItT d_blev_buffer_sizes = blev_buffer_sizes_alloc.get(); + BlevBufferTileOffsetsOutItT d_blev_block_offsets = blev_buffer_block_alloc.get(); + + // Kernels' grid sizes + BlockOffsetT init_grid_size = DivideAndRoundUp(num_tiles, INIT_KERNEL_THREADS); + BlockOffsetT batch_memcpy_grid_size = num_tiles; + + // Kernels + auto init_scan_states_kernel = + InitTileStateKernel; + auto batch_memcpy_non_blev_kernel = BatchMemcpyKernel; + + auto multi_block_memcpy_kernel = MultiBlockBatchMemcpyKernel; + + constexpr uint32_t BLEV_BLOCK_THREADS = ActivePolicyT::AgentLargeBufferPolicyT::BLOCK_THREADS; + + // Get device ordinal + int device_ordinal; + if (CubDebug(error = cudaGetDevice(&device_ordinal))) + { + return error; + } + + // Get SM count + int sm_count; + if (CubDebug(error = cudaDeviceGetAttribute(&sm_count, + cudaDevAttrMultiProcessorCount, + device_ordinal))) + { + return error; + } + + // Get SM occupancy for the batch memcpy block-level buffers kernel + int batch_memcpy_blev_occupancy; + if (CubDebug(error = MaxSmOccupancy(batch_memcpy_blev_occupancy, + multi_block_memcpy_kernel, + BLEV_BLOCK_THREADS))) + { + return error; + } + + int batch_memcpy_blev_grid_size = + static_cast(sm_count * batch_memcpy_blev_occupancy * CUB_SUBSCRIPTION_FACTOR(0)); + + // Construct the tile status for the buffer prefix sum + BLevBufferOffsetTileState buffer_scan_tile_state; + if (CubDebug(error = buffer_scan_tile_state.Init(static_cast(num_tiles), + blev_buffer_scan_alloc.get(), + buffer_offset_scan_storage))) + { + return error; + } + + // Construct the tile status for thread blocks-to-buffer-assignment prefix sum + BLevBlockOffsetTileState block_scan_tile_state; + if (CubDebug(error = block_scan_tile_state.Init(static_cast(num_tiles), + blev_block_scan_alloc.get(), + blev_block_scan_storage))) + { + return error; + } + +#ifdef CUB_DETAIL_DEBUG_ENABLE_LOG + _CubLog("Invoking " + "InitTileStateKernel<<<%d, %d, 0, %lld>>>()\n", + static_cast(init_grid_size), + INIT_KERNEL_THREADS, + (long long)stream); +#endif + + // Invoke init_kernel to initialize buffer prefix sum-tile descriptors + error = + THRUST_NS_QUALIFIER::cuda_cub::launcher::triple_chevron(init_grid_size, + INIT_KERNEL_THREADS, + 0, + stream) + .doit(init_scan_states_kernel, buffer_scan_tile_state, block_scan_tile_state, num_tiles); + + // Check for failure to launch + if (CubDebug(error)) + { + return error; + } + + // Sync the stream if specified to flush runtime errors + error = detail::DebugSyncStream(stream); + + // Check for failure to launch + if (CubDebug(error)) + { + return error; + } + +#ifdef CUB_DETAIL_DEBUG_ENABLE_LOG + _CubLog("Invoking " + "BatchMemcpyKernel<<<%d, %d, 0, %lld>>>()\n", + static_cast(batch_memcpy_grid_size), + ActivePolicyT::AgentSmallBufferPolicyT::BLOCK_THREADS, + (long long)stream); +#endif + + // Invoke kernel to copy small buffers and put the larger ones into a queue that will get picked + // up by next kernel + error = THRUST_NS_QUALIFIER::cuda_cub::launcher::triple_chevron( + batch_memcpy_grid_size, + ActivePolicyT::AgentSmallBufferPolicyT::BLOCK_THREADS, + 0, + stream) + .doit(batch_memcpy_non_blev_kernel, + input_buffer_it, + output_buffer_it, + buffer_sizes, + num_buffers, + d_blev_src_buffers, + d_blev_dst_buffers, + d_blev_buffer_sizes, + d_blev_block_offsets, + buffer_scan_tile_state, + block_scan_tile_state); + + // Check for failure to launch + if (CubDebug(error)) + { + return error; + } + + // Sync the stream if specified to flush runtime errors + error = detail::DebugSyncStream(stream); + if (CubDebug(error)) + { + return error; + } + +#ifdef CUB_DETAIL_DEBUG_ENABLE_LOG + _CubLog("Invoking " + "MultiBlockBatchMemcpyKernel<<<%d, %d, 0, %lld>>>()\n", + static_cast(batch_memcpy_blev_grid_size), + BLEV_BLOCK_THREADS, + (long long)stream); +#endif + + error = THRUST_NS_QUALIFIER::cuda_cub::launcher::triple_chevron(batch_memcpy_blev_grid_size, + BLEV_BLOCK_THREADS, + 0, + stream) + .doit(multi_block_memcpy_kernel, + d_blev_src_buffers, + d_blev_dst_buffers, + d_blev_buffer_sizes, + d_blev_block_offsets, + buffer_scan_tile_state, + batch_memcpy_grid_size - 1); + + // Check for failure to launch + if (CubDebug(error)) + { + return error; + } + + // Sync the stream if specified to flush runtime errors + error = detail::DebugSyncStream(stream); + + return error; + } + + //------------------------------------------------------------------------------ + // Dispatch entrypoints + //------------------------------------------------------------------------------ + /** + * Internal dispatch routine + */ + CUB_RUNTIME_FUNCTION __forceinline__ static cudaError_t Dispatch(void *d_temp_storage, + size_t &temp_storage_bytes, + InputBufferIt input_buffer_it, + OutputBufferIt output_buffer_it, + BufferSizeIteratorT buffer_sizes, + BufferOffsetT num_buffers, + cudaStream_t stream) + { + using MaxPolicyT = typename DispatchBatchMemcpy::MaxPolicy; + + cudaError_t error = cudaSuccess; + + // Get PTX version + int ptx_version = 0; + if (CubDebug(error = PtxVersion(ptx_version))) + { + return error; + } + + // Create dispatch functor + DispatchBatchMemcpy dispatch(d_temp_storage, + temp_storage_bytes, + input_buffer_it, + output_buffer_it, + buffer_sizes, + num_buffers, + stream); + + // Dispatch to chained policy + if (CubDebug(error = MaxPolicyT::Invoke(ptx_version, dispatch))) + { + return error; + } + return error; + } +}; + +} // namespace detail + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_histogram.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_histogram.cuh new file mode 100644 index 0000000000000000000000000000000000000000..4bf41f118478bd73a1fa7c47ec79c12121c2d7a6 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_histogram.cuh @@ -0,0 +1,1652 @@ + +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * @file + * cub::DeviceHistogram provides device-wide parallel operations for constructing histogram(s) + * from a sequence of samples data residing within device-accessible memory. + */ + +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include +#include + +#include +#include +#include + +#include + +CUB_NAMESPACE_BEGIN + +/****************************************************************************** + * Histogram kernel entry points + *****************************************************************************/ + +/** + * Histogram initialization kernel entry point + * + * @tparam NUM_ACTIVE_CHANNELS + * Number of channels actively being histogrammed + * + * @tparam CounterT + * Integer type for counting sample occurrences per histogram bin + * + * @tparam OffsetT + * Signed integer type for global offsets + * + * @param num_output_bins_wrapper + * Number of output histogram bins per channel + * + * @param d_output_histograms_wrapper + * Histogram counter data having logical dimensions + * `CounterT[NUM_ACTIVE_CHANNELS][num_bins.array[CHANNEL]]` + * + * @param tile_queue + * Drain queue descriptor for dynamically mapping tile data onto thread blocks + */ +template +__global__ void +DeviceHistogramInitKernel(ArrayWrapper num_output_bins_wrapper, + ArrayWrapper d_output_histograms_wrapper, + GridQueue tile_queue) +{ + if ((threadIdx.x == 0) && (blockIdx.x == 0)) + { + tile_queue.ResetDrain(); + } + + int output_bin = (blockIdx.x * blockDim.x) + threadIdx.x; + +#pragma unroll + for (int CHANNEL = 0; CHANNEL < NUM_ACTIVE_CHANNELS; ++CHANNEL) + { + if (output_bin < num_output_bins_wrapper.array[CHANNEL]) + { + d_output_histograms_wrapper.array[CHANNEL][output_bin] = 0; + } + } +} + +/** + * Histogram privatized sweep kernel entry point (multi-block). + * Computes privatized histograms, one per thread block. + * + * + * @tparam AgentHistogramPolicyT + * Parameterized AgentHistogramPolicy tuning policy type + * + * @tparam PRIVATIZED_SMEM_BINS + * Maximum number of histogram bins per channel (e.g., up to 256) + * + * @tparam NUM_CHANNELS + * Number of channels interleaved in the input data (may be greater than the number of channels + * being actively histogrammed) + * + * @tparam NUM_ACTIVE_CHANNELS + * Number of channels actively being histogrammed + * + * @tparam SampleIteratorT + * The input iterator type. \iterator. + * + * @tparam CounterT + * Integer type for counting sample occurrences per histogram bin + * + * @tparam PrivatizedDecodeOpT + * The transform operator type for determining privatized counter indices from samples, + * one for each channel + * + * @tparam OutputDecodeOpT + * The transform operator type for determining output bin-ids from privatized counter indices, + * one for each channel + * + * @tparam OffsetT + * integer type for global offsets + * + * @param d_samples + * Input data to reduce + * + * @param num_output_bins_wrapper + * The number bins per final output histogram + * + * @param num_privatized_bins_wrapper + * The number bins per privatized histogram + * + * @param d_output_histograms_wrapper + * Reference to final output histograms + * + * @param d_privatized_histograms_wrapper + * Reference to privatized histograms + * + * @param output_decode_op_wrapper + * The transform operator for determining output bin-ids from privatized counter indices, + * one for each channel + * + * @param privatized_decode_op_wrapper + * The transform operator for determining privatized counter indices from samples, + * one for each channel + * + * @param num_row_pixels + * The number of multi-channel pixels per row in the region of interest + * + * @param num_rows + * The number of rows in the region of interest + * + * @param row_stride_samples + * The number of samples between starts of consecutive rows in the region of interest + * + * @param tiles_per_row + * Number of image tiles per row + * + * @param tile_queue + * Drain queue descriptor for dynamically mapping tile data onto thread blocks + */ +template +__launch_bounds__(int(ChainedPolicyT::ActivePolicy::AgentHistogramPolicyT::BLOCK_THREADS)) __global__ + void DeviceHistogramSweepKernel( + SampleIteratorT d_samples, + ArrayWrapper num_output_bins_wrapper, + ArrayWrapper num_privatized_bins_wrapper, + ArrayWrapper d_output_histograms_wrapper, + ArrayWrapper d_privatized_histograms_wrapper, + ArrayWrapper output_decode_op_wrapper, + ArrayWrapper privatized_decode_op_wrapper, + OffsetT num_row_pixels, + OffsetT num_rows, + OffsetT row_stride_samples, + int tiles_per_row, + GridQueue tile_queue) +{ + // Thread block type for compositing input tiles + using AgentHistogramPolicyT = typename ChainedPolicyT::ActivePolicy::AgentHistogramPolicyT; + using AgentHistogramT = AgentHistogram; + + // Shared memory for AgentHistogram + __shared__ typename AgentHistogramT::TempStorage temp_storage; + + AgentHistogramT agent(temp_storage, + d_samples, + num_output_bins_wrapper.array, + num_privatized_bins_wrapper.array, + d_output_histograms_wrapper.array, + d_privatized_histograms_wrapper.array, + output_decode_op_wrapper.array, + privatized_decode_op_wrapper.array); + + // Initialize counters + agent.InitBinCounters(); + + // Consume input tiles + agent.ConsumeTiles(num_row_pixels, num_rows, row_stride_samples, tiles_per_row, tile_queue); + + // Store output to global (if necessary) + agent.StoreOutput(); +} + +namespace detail +{ + +template +struct device_histogram_policy_hub +{ + template + struct TScale + { + enum + { + V_SCALE = (sizeof(SampleT) + sizeof(int) - 1) / sizeof(int), + VALUE = CUB_MAX((NOMINAL_ITEMS_PER_THREAD / NUM_ACTIVE_CHANNELS / V_SCALE), 1) + }; + }; + + /// SM35 + struct Policy350 : ChainedPolicy<350, Policy350, Policy350> + { + // TODO This might be worth it to separate usual histogram and the multi one + using AgentHistogramPolicyT = + AgentHistogramPolicy<128, TScale<8>::VALUE, BLOCK_LOAD_DIRECT, LOAD_LDG, true, BLEND, true>; + }; + + /// SM50 + struct Policy500 : ChainedPolicy<500, Policy500, Policy350> + { + // TODO This might be worth it to separate usual histogram and the multi one + using AgentHistogramPolicyT = + AgentHistogramPolicy<384, TScale<16>::VALUE, BLOCK_LOAD_DIRECT, LOAD_LDG, true, SMEM, false>; + }; + + using MaxPolicy = Policy500; +}; + +template +struct dispatch_histogram +{ + void *d_temp_storage; + size_t &temp_storage_bytes; + SampleIteratorT d_samples; + CounterT **d_output_histograms; + int *num_privatized_levels; + PrivatizedDecodeOpT *privatized_decode_op; + int *num_output_levels; + OutputDecodeOpT *output_decode_op; + int max_num_output_bins; + OffsetT num_row_pixels; + OffsetT num_rows; + OffsetT row_stride_samples; + cudaStream_t stream; + + CUB_RUNTIME_FUNCTION + dispatch_histogram(void *d_temp_storage, + size_t &temp_storage_bytes, + SampleIteratorT d_samples, + CounterT *d_output_histograms[NUM_ACTIVE_CHANNELS], + int num_privatized_levels[NUM_ACTIVE_CHANNELS], + PrivatizedDecodeOpT privatized_decode_op[NUM_ACTIVE_CHANNELS], + int num_output_levels[NUM_ACTIVE_CHANNELS], + OutputDecodeOpT output_decode_op[NUM_ACTIVE_CHANNELS], + int max_num_output_bins, + OffsetT num_row_pixels, + OffsetT num_rows, + OffsetT row_stride_samples, + cudaStream_t stream) + : d_temp_storage(d_temp_storage) + , temp_storage_bytes(temp_storage_bytes) + , d_samples(d_samples) + , d_output_histograms(d_output_histograms) + , num_privatized_levels(num_privatized_levels) + , privatized_decode_op(privatized_decode_op) + , num_output_levels(num_output_levels) + , output_decode_op(output_decode_op) + , max_num_output_bins(max_num_output_bins) + , num_row_pixels(num_row_pixels) + , num_rows(num_rows) + , row_stride_samples(row_stride_samples) + , stream(stream) + {} + + template + CUB_RUNTIME_FUNCTION __forceinline__ cudaError_t + Invoke(DeviceHistogramInitKernelT histogram_init_kernel, + DeviceHistogramSweepKernelT histogram_sweep_kernel) + { + cudaError error = cudaSuccess; + + const int block_threads = ActivePolicyT::AgentHistogramPolicyT::BLOCK_THREADS; + const int pixels_per_thread = ActivePolicyT::AgentHistogramPolicyT::PIXELS_PER_THREAD; + + do + { + // Get device ordinal + int device_ordinal; + if (CubDebug(error = cudaGetDevice(&device_ordinal))) + { + break; + } + + // Get SM count + int sm_count; + if (CubDebug(error = cudaDeviceGetAttribute(&sm_count, + cudaDevAttrMultiProcessorCount, + device_ordinal))) + { + break; + } + + // Get SM occupancy for histogram_sweep_kernel + int histogram_sweep_sm_occupancy; + if (CubDebug(error = MaxSmOccupancy(histogram_sweep_sm_occupancy, + histogram_sweep_kernel, + block_threads))) + { + break; + } + + // Get device occupancy for histogram_sweep_kernel + int histogram_sweep_occupancy = histogram_sweep_sm_occupancy * sm_count; + + if (num_row_pixels * NUM_CHANNELS == row_stride_samples) + { + // Treat as a single linear array of samples + num_row_pixels *= num_rows; + num_rows = 1; + row_stride_samples = num_row_pixels * NUM_CHANNELS; + } + + // Get grid dimensions, trying to keep total blocks ~histogram_sweep_occupancy + int pixels_per_tile = block_threads * pixels_per_thread; + int tiles_per_row = static_cast(cub::DivideAndRoundUp(num_row_pixels, pixels_per_tile)); + int blocks_per_row = CUB_MIN(histogram_sweep_occupancy, tiles_per_row); + int blocks_per_col = (blocks_per_row > 0) + ? int(CUB_MIN(histogram_sweep_occupancy / blocks_per_row, num_rows)) + : 0; + int num_thread_blocks = blocks_per_row * blocks_per_col; + + dim3 sweep_grid_dims; + sweep_grid_dims.x = (unsigned int)blocks_per_row; + sweep_grid_dims.y = (unsigned int)blocks_per_col; + sweep_grid_dims.z = 1; + + // Temporary storage allocation requirements + const int NUM_ALLOCATIONS = NUM_ACTIVE_CHANNELS + 1; + void *allocations[NUM_ALLOCATIONS] = {}; + size_t allocation_sizes[NUM_ALLOCATIONS]; + + for (int CHANNEL = 0; CHANNEL < NUM_ACTIVE_CHANNELS; ++CHANNEL) + { + allocation_sizes[CHANNEL] = size_t(num_thread_blocks) * + (num_privatized_levels[CHANNEL] - 1) * sizeof(CounterT); + } + + allocation_sizes[NUM_ALLOCATIONS - 1] = GridQueue::AllocationSize(); + + // Alias the temporary allocations from the single storage blob (or compute the + // necessary size of the blob) + if (CubDebug( + error = + AliasTemporaries(d_temp_storage, temp_storage_bytes, allocations, allocation_sizes))) + { + break; + } + + if (d_temp_storage == nullptr) + { + // Return if the caller is simply requesting the size of the storage allocation + break; + } + + // Construct the grid queue descriptor + GridQueue tile_queue(allocations[NUM_ALLOCATIONS - 1]); + + // Setup array wrapper for histogram channel output (because we can't pass static arrays + // as kernel parameters) + ArrayWrapper d_output_histograms_wrapper; + for (int CHANNEL = 0; CHANNEL < NUM_ACTIVE_CHANNELS; ++CHANNEL) + { + d_output_histograms_wrapper.array[CHANNEL] = d_output_histograms[CHANNEL]; + } + + // Setup array wrapper for privatized per-block histogram channel output (because we + // can't pass static arrays as kernel parameters) + ArrayWrapper d_privatized_histograms_wrapper; + for (int CHANNEL = 0; CHANNEL < NUM_ACTIVE_CHANNELS; ++CHANNEL) + { + d_privatized_histograms_wrapper.array[CHANNEL] = (CounterT *)allocations[CHANNEL]; + } + + // Setup array wrapper for sweep bin transforms (because we can't pass static arrays as + // kernel parameters) + ArrayWrapper privatized_decode_op_wrapper; + for (int CHANNEL = 0; CHANNEL < NUM_ACTIVE_CHANNELS; ++CHANNEL) + { + privatized_decode_op_wrapper.array[CHANNEL] = privatized_decode_op[CHANNEL]; + } + + // Setup array wrapper for aggregation bin transforms (because we can't pass static + // arrays as kernel parameters) + ArrayWrapper output_decode_op_wrapper; + for (int CHANNEL = 0; CHANNEL < NUM_ACTIVE_CHANNELS; ++CHANNEL) + { + output_decode_op_wrapper.array[CHANNEL] = output_decode_op[CHANNEL]; + } + + // Setup array wrapper for num privatized bins (because we can't pass static arrays as + // kernel parameters) + ArrayWrapper num_privatized_bins_wrapper; + for (int CHANNEL = 0; CHANNEL < NUM_ACTIVE_CHANNELS; ++CHANNEL) + { + num_privatized_bins_wrapper.array[CHANNEL] = num_privatized_levels[CHANNEL] - 1; + } + + // Setup array wrapper for num output bins (because we can't pass static arrays as + // kernel parameters) + ArrayWrapper num_output_bins_wrapper; + for (int CHANNEL = 0; CHANNEL < NUM_ACTIVE_CHANNELS; ++CHANNEL) + { + num_output_bins_wrapper.array[CHANNEL] = num_output_levels[CHANNEL] - 1; + } + + int histogram_init_block_threads = 256; + + int histogram_init_grid_dims = (max_num_output_bins + histogram_init_block_threads - 1) / + histogram_init_block_threads; + +// Log DeviceHistogramInitKernel configuration +#ifdef CUB_DETAIL_DEBUG_ENABLE_LOG + _CubLog("Invoking DeviceHistogramInitKernel<<<%d, %d, 0, %lld>>>()\n", + histogram_init_grid_dims, + histogram_init_block_threads, + (long long)stream); +#endif + + // Invoke histogram_init_kernel + THRUST_NS_QUALIFIER::cuda_cub::launcher::triple_chevron(histogram_init_grid_dims, + histogram_init_block_threads, + 0, + stream) + .doit(histogram_init_kernel, + num_output_bins_wrapper, + d_output_histograms_wrapper, + tile_queue); + + // Return if empty problem + if ((blocks_per_row == 0) || (blocks_per_col == 0)) + { + break; + } + +// Log histogram_sweep_kernel configuration +#ifdef CUB_DETAIL_DEBUG_ENABLE_LOG + _CubLog("Invoking histogram_sweep_kernel<<<{%d, %d, %d}, %d, 0, %lld>>>(), %d pixels " + "per thread, %d SM occupancy\n", + sweep_grid_dims.x, + sweep_grid_dims.y, + sweep_grid_dims.z, + block_threads, + (long long)stream, + pixels_per_thread, + histogram_sweep_sm_occupancy); +#endif + + // Invoke histogram_sweep_kernel + THRUST_NS_QUALIFIER::cuda_cub::launcher::triple_chevron(sweep_grid_dims, + block_threads, + 0, + stream) + .doit(histogram_sweep_kernel, + d_samples, + num_output_bins_wrapper, + num_privatized_bins_wrapper, + d_output_histograms_wrapper, + d_privatized_histograms_wrapper, + output_decode_op_wrapper, + privatized_decode_op_wrapper, + num_row_pixels, + num_rows, + row_stride_samples, + tiles_per_row, + tile_queue); + + // Check for failure to launch + if (CubDebug(error = cudaPeekAtLastError())) + { + break; + } + + // Sync the stream if specified to flush runtime errors + error = detail::DebugSyncStream(stream); + if (CubDebug(error)) + { + break; + } + } while (0); + + return error; + } + + template + CUB_RUNTIME_FUNCTION __forceinline__ cudaError_t Invoke() + { + return Invoke(DeviceHistogramInitKernel, + DeviceHistogramSweepKernel); + } +}; + +} // namespace detail + +/****************************************************************************** + * Dispatch + ******************************************************************************/ + +/** + * Utility class for dispatching the appropriately-tuned kernels for DeviceHistogram + * + * @tparam NUM_CHANNELS + * Number of channels interleaved in the input data (may be greater than the number of channels + * being actively histogrammed) + * + * @tparam NUM_ACTIVE_CHANNELS + * Number of channels actively being histogrammed + * + * @tparam SampleIteratorT + * Random-access input iterator type for reading input items \iterator + * + * @tparam CounterT + * Integer type for counting sample occurrences per histogram bin + * + * @tparam LevelT + * Type for specifying bin level boundaries + * + * @tparam OffsetT + * Signed integer type for global offsets + * + * @tparam SelectedPolicy + * Implementation detail, do not specify directly, requirements on the + * content of this type are subject to breaking change. + */ +template , + NUM_ACTIVE_CHANNELS>> +struct DispatchHistogram : SelectedPolicy +{ +public: + //--------------------------------------------------------------------- + // Types and constants + //--------------------------------------------------------------------- + + /// The sample value type of the input iterator + using SampleT = cub::detail::value_t; + + enum + { + // Maximum number of bins per channel for which we will use a privatized smem strategy + MAX_PRIVATIZED_SMEM_BINS = 256 + }; + + //--------------------------------------------------------------------- + // Transform functors for converting samples to bin-ids + //--------------------------------------------------------------------- + + // Searches for bin given a list of bin-boundary levels + template + struct SearchTransform + { + LevelIteratorT d_levels; // Pointer to levels array + int num_output_levels; // Number of levels in array + + /** + * @brief Initializer + * + * @param d_levels_ Pointer to levels array + * @param num_output_levels_ Number of levels in array + */ + __host__ __device__ __forceinline__ void Init(LevelIteratorT d_levels_, int num_output_levels_) + { + this->d_levels = d_levels_; + this->num_output_levels = num_output_levels_; + } + + // Method for converting samples to bin-ids + template + __host__ __device__ __forceinline__ void BinSelect(_SampleT sample, int &bin, bool valid) + { + /// Level iterator wrapper type + // Wrap the native input pointer with CacheModifiedInputIterator + // or Directly use the supplied input iterator type + using WrappedLevelIteratorT = + cub::detail::conditional_t::value, + CacheModifiedInputIterator, + LevelIteratorT>; + + WrappedLevelIteratorT wrapped_levels(d_levels); + + int num_bins = num_output_levels - 1; + if (valid) + { + bin = UpperBound(wrapped_levels, num_output_levels, (LevelT)sample) - 1; + if (bin >= num_bins) + bin = -1; + } + } + }; + + // Scales samples to evenly-spaced bins + struct ScaleTransform + { + private: + using CommonT = typename ::cuda::std::common_type::type; + static_assert(::cuda::std::is_convertible::value, + "The common type of `LevelT` and `SampleT` must be " + "convertible to `int`."); + static_assert(::cuda::std::is_trivially_copyable::value, + "The common type of `LevelT` and `SampleT` must be " + "trivially copyable."); + + // An arithmetic type that's used for bin computation of integral types, guaranteed to not + // overflow for (max_level - min_level) * scale.fraction.bins. Since we drop invalid samples + // of less than min_level, (sample - min_level) is guaranteed to be non-negative. We use the + // rule: 2^l * 2^r = 2^(l + r) to determine a sufficiently large type to hold the + // multiplication result. + // If CommonT used to be a 128-bit wide integral type already, we use CommonT's arithmetic + using IntArithmeticT = cub::detail::conditional_t< // + sizeof(SampleT) + sizeof(CommonT) <= sizeof(uint32_t), // + uint32_t, // +#if CUB_IS_INT128_ENABLED + cub::detail::conditional_t< // + (::cuda::std::is_same::value || // + ::cuda::std::is_same::value), // + CommonT, // + uint64_t> // +#else + uint64_t +#endif + >; + + // Alias template that excludes __[u]int128 from the integral types + template + using is_integral_excl_int128 = +#if CUB_IS_INT128_ENABLED + cub::detail::conditional_t< + ::cuda::std::is_same::value && ::cuda::std::is_same::value, + ::cuda::std::false_type, + ::cuda::std::is_integral>; +#else + ::cuda::std::is_integral; +#endif + + union ScaleT + { + // Used when CommonT is not floating-point to avoid intermediate + // rounding errors (see NVIDIA/cub#489). + struct FractionT + { + CommonT bins; + CommonT range; + } fraction; + + // Used when CommonT is floating-point as an optimization. + CommonT reciprocal; + }; + + CommonT m_max; // Max sample level (exclusive) + CommonT m_min; // Min sample level (inclusive) + ScaleT m_scale; // Bin scaling + + template + __host__ __device__ __forceinline__ ScaleT + ComputeScale(int num_levels, T max_level, T min_level, ::cuda::std::true_type /* is_fp */) + { + ScaleT result; + result.reciprocal = + static_cast(static_cast(num_levels - 1) / static_cast(max_level - min_level)); + return result; + } + + template + __host__ __device__ __forceinline__ ScaleT + ComputeScale(int num_levels, T max_level, T min_level, ::cuda::std::false_type /* is_fp */) + { + ScaleT result; + result.fraction.bins = static_cast(num_levels - 1); + result.fraction.range = static_cast(max_level - min_level); + return result; + } + + template + __host__ __device__ __forceinline__ ScaleT ComputeScale(int num_levels, + T max_level, + T min_level) + { + return this->ComputeScale(num_levels, + max_level, + min_level, + ::cuda::std::is_floating_point{}); + } + +#ifdef __CUDA_FP16_TYPES_EXIST__ + __host__ __device__ __forceinline__ ScaleT ComputeScale(int num_levels, + __half max_level, + __half min_level) + { + NV_IF_TARGET( + NV_PROVIDES_SM_53, + (return this->ComputeScale(num_levels, max_level, min_level, ::cuda::std::true_type{});), + (return this->ComputeScale(num_levels, + __half2float(max_level), + __half2float(min_level), + ::cuda::std::true_type{});)); + } +#endif + + // All types but __half: + template + __host__ __device__ __forceinline__ int SampleIsValid(T sample, T max_level, T min_level) + { + return sample >= min_level && sample < max_level; + } + +#ifdef __CUDA_FP16_TYPES_EXIST__ + __host__ __device__ __forceinline__ int SampleIsValid(__half sample, + __half max_level, + __half min_level) + { + NV_IF_TARGET(NV_PROVIDES_SM_53, + (return sample >= min_level && sample < max_level;), + (return this->SampleIsValid(__half2float(sample), + __half2float(max_level), + __half2float(min_level));)); + } +#endif + + /** + * @brief Bin computation for floating point (and extended floating point) types + */ + template + __host__ __device__ __forceinline__ int + ComputeBin(T sample, T min_level, ScaleT scale, ::cuda::std::true_type /* is_fp */) + { + return static_cast((sample - min_level) * scale.reciprocal); + } + + /** + * @brief Bin computation for custom types and __[u]int128 + */ + template + __host__ __device__ __forceinline__ int + ComputeBin(T sample, T min_level, ScaleT scale, ::cuda::std::false_type /* is_fp */) + { + return static_cast(((sample - min_level) * scale.fraction.bins) / scale.fraction.range); + } + + /** + * @brief Bin computation for integral types of up to 64-bit types + */ + template ::value, int>::type = 0> + __host__ __device__ __forceinline__ int ComputeBin(T sample, T min_level, ScaleT scale) + { + return static_cast((static_cast(sample - min_level) * + static_cast(scale.fraction.bins)) / + static_cast(scale.fraction.range)); + } + + template ::value, int>::type = 0> + __host__ __device__ __forceinline__ int ComputeBin(T sample, T min_level, ScaleT scale) + { + return this->ComputeBin(sample, min_level, scale, ::cuda::std::is_floating_point{}); + } + +#ifdef __CUDA_FP16_TYPES_EXIST__ + __host__ __device__ __forceinline__ int ComputeBin(__half sample, + __half min_level, + ScaleT scale) + { + NV_IF_TARGET(NV_PROVIDES_SM_53, + (return this->ComputeBin(sample, min_level, scale, ::cuda::std::true_type{});), + (return static_cast((__half2float(sample) - __half2float(min_level)) * + __half2float(scale.reciprocal));)); + } +#endif + + __host__ __device__ __forceinline__ bool MayOverflow(CommonT /* num_bins */, + ::cuda::std::false_type /* is_integral */) + { + return false; + } + + /** + * @brief Returns true if the bin computation for a given combination of range `(max_level - + * min_level)` and number of bins may overflow. + */ + __host__ __device__ __forceinline__ bool MayOverflow(CommonT num_bins, + ::cuda::std::true_type /* is_integral */) + { + return static_cast(m_max - m_min) > + (::cuda::std::numeric_limits::max() / + static_cast(num_bins)); + } + + public: + /** + * @brief Initializes the ScaleTransform for the given parameters + * @return cudaErrorInvalidValue if the ScaleTransform for the given values may overflow, + * cudaSuccess otherwise + */ + __host__ __device__ __forceinline__ cudaError_t Init(int num_levels, + LevelT max_level, + LevelT min_level) + { + m_max = static_cast(max_level); + m_min = static_cast(min_level); + + // Check whether accurate bin computation for an integral sample type may overflow + if (MayOverflow(static_cast(num_levels - 1), ::cuda::std::is_integral{})) + { + return cudaErrorInvalidValue; + } + + m_scale = this->ComputeScale(num_levels, m_max, m_min); + return cudaSuccess; + } + + // Method for converting samples to bin-ids + template + __host__ __device__ __forceinline__ void BinSelect(SampleT sample, int &bin, bool valid) + { + const CommonT common_sample = static_cast(sample); + + if (valid && this->SampleIsValid(common_sample, m_max, m_min)) + { + bin = this->ComputeBin(common_sample, m_min, m_scale); + } + } + }; + + // Pass-through bin transform operator + struct PassThruTransform + { + // Method for converting samples to bin-ids + template + __host__ __device__ __forceinline__ void BinSelect(_SampleT sample, int &bin, bool valid) + { + if (valid) + bin = (int)sample; + } + }; + + //--------------------------------------------------------------------- + // Dispatch entrypoints + //--------------------------------------------------------------------- + + /** + * Dispatch routine for HistogramRange, specialized for sample types larger than 8bit + * + * @param d_temp_storage + * Device-accessible allocation of temporary storage. + * When NULL, the required allocation size is written to `temp_storage_bytes` and + * no work is done. + * + * @param temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param d_samples + * The pointer to the multi-channel input sequence of data samples. + * The samples from different channels are assumed to be interleaved + * (e.g., an array of 32-bit pixels where each pixel consists of four RGBA 8-bit samples). + * + * @param d_output_histograms + * The pointers to the histogram counter output arrays, one for each active channel. + * For channeli, the allocation length of `d_histograms[i]` should be + * `num_output_levels[i] - 1`. + * + * @param num_output_levels + * The number of boundaries (levels) for delineating histogram samples in each active channel. + * Implies that the number of bins for channeli is + * `num_output_levels[i] - 1`. + * + * @param d_levels + * The pointers to the arrays of boundaries (levels), one for each active channel. + * Bin ranges are defined by consecutive boundary pairings: lower sample value boundaries are + * inclusive and upper sample value boundaries are exclusive. + * + * @param num_row_pixels + * The number of multi-channel pixels per row in the region of interest + * + * @param num_rows + * The number of rows in the region of interest + * + * @param row_stride_samples + * The number of samples between starts of consecutive rows in the region of interest + * + * @param stream + * CUDA stream to launch kernels within. Default is stream0. + * + * @param is_byte_sample + * type indicating whether or not SampleT is a 8b type + */ + CUB_RUNTIME_FUNCTION + static cudaError_t DispatchRange(void *d_temp_storage, + size_t &temp_storage_bytes, + SampleIteratorT d_samples, + CounterT *d_output_histograms[NUM_ACTIVE_CHANNELS], + int num_output_levels[NUM_ACTIVE_CHANNELS], + LevelT *d_levels[NUM_ACTIVE_CHANNELS], + OffsetT num_row_pixels, + OffsetT num_rows, + OffsetT row_stride_samples, + cudaStream_t stream, + Int2Type /*is_byte_sample*/) + { + using MaxPolicyT = typename SelectedPolicy::MaxPolicy; + cudaError error = cudaSuccess; + + do + { + // Get PTX version + int ptx_version = 0; + if (CubDebug(error = PtxVersion(ptx_version))) + { + break; + } + + // Use the search transform op for converting samples to privatized bins + typedef SearchTransform PrivatizedDecodeOpT; + + // Use the pass-thru transform op for converting privatized bins to output bins + typedef PassThruTransform OutputDecodeOpT; + + PrivatizedDecodeOpT privatized_decode_op[NUM_ACTIVE_CHANNELS]; + OutputDecodeOpT output_decode_op[NUM_ACTIVE_CHANNELS]; + int max_levels = num_output_levels[0]; + + for (int channel = 0; channel < NUM_ACTIVE_CHANNELS; ++channel) + { + privatized_decode_op[channel].Init(d_levels[channel], num_output_levels[channel]); + if (num_output_levels[channel] > max_levels) + { + max_levels = num_output_levels[channel]; + } + } + int max_num_output_bins = max_levels - 1; + + // Dispatch + if (max_num_output_bins > MAX_PRIVATIZED_SMEM_BINS) + { + // Too many bins to keep in shared memory. + const int PRIVATIZED_SMEM_BINS = 0; + + detail::dispatch_histogram + dispatch(d_temp_storage, + temp_storage_bytes, + d_samples, + d_output_histograms, + num_output_levels, + privatized_decode_op, + num_output_levels, + output_decode_op, + max_num_output_bins, + num_row_pixels, + num_rows, + row_stride_samples, + stream); + + if (CubDebug(error = MaxPolicyT::Invoke(ptx_version, dispatch))) + { + break; + } + } + else + { + // Dispatch shared-privatized approach + const int PRIVATIZED_SMEM_BINS = MAX_PRIVATIZED_SMEM_BINS; + + detail::dispatch_histogram + dispatch(d_temp_storage, + temp_storage_bytes, + d_samples, + d_output_histograms, + num_output_levels, + privatized_decode_op, + num_output_levels, + output_decode_op, + max_num_output_bins, + num_row_pixels, + num_rows, + row_stride_samples, + stream); + + if (CubDebug(error = MaxPolicyT::Invoke(ptx_version, dispatch))) + { + break; + } + } + } while (0); + + return error; + } + + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION + static cudaError_t DispatchRange(void *d_temp_storage, + size_t &temp_storage_bytes, + SampleIteratorT d_samples, + CounterT *d_output_histograms[NUM_ACTIVE_CHANNELS], + int num_output_levels[NUM_ACTIVE_CHANNELS], + LevelT *d_levels[NUM_ACTIVE_CHANNELS], + OffsetT num_row_pixels, + OffsetT num_rows, + OffsetT row_stride_samples, + cudaStream_t stream, + bool debug_synchronous, + Int2Type is_byte_sample) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return DispatchRange(d_temp_storage, + temp_storage_bytes, + d_samples, + d_output_histograms, + num_output_levels, + d_levels, + num_row_pixels, + num_rows, + row_stride_samples, + stream, + is_byte_sample); + } + + /** + * Dispatch routine for HistogramRange, specialized for 8-bit sample types + * (computes 256-bin privatized histograms and then reduces to user-specified levels) + * + * @param d_temp_storage + * Device-accessible allocation of temporary storage. + * When NULL, the required allocation size is written to `temp_storage_bytes` and + * no work is done. + * + * @param temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param d_samples + * The pointer to the multi-channel input sequence of data samples. + * The samples from different channels are assumed to be interleaved + * (e.g., an array of 32-bit pixels where each pixel consists of four RGBA 8-bit samples). + * + * @param d_output_histograms + * The pointers to the histogram counter output arrays, one for each active channel. + * For channeli, the allocation length of + * `d_histograms[i]` should be `num_output_levels[i] - 1`. + * + * @param num_output_levels + * The number of boundaries (levels) for delineating histogram samples in each active channel. + * Implies that the number of bins for channeli is + * `num_output_levels[i] - 1`. + * + * @param d_levels + * The pointers to the arrays of boundaries (levels), one for each active channel. + * Bin ranges are defined by consecutive boundary pairings: lower sample value boundaries are + * inclusive and upper sample value boundaries are exclusive. + * + * @param num_row_pixels + * The number of multi-channel pixels per row in the region of interest + * + * @param num_rows + * The number of rows in the region of interest + * + * @param row_stride_samples + * The number of samples between starts of consecutive rows in the region of interest + * + * @param stream + * CUDA stream to launch kernels within. Default is stream0. + * + * @param is_byte_sample + * Marker type indicating whether or not SampleT is a 8b type + */ + CUB_RUNTIME_FUNCTION + static cudaError_t DispatchRange(void *d_temp_storage, + size_t &temp_storage_bytes, + SampleIteratorT d_samples, + CounterT *d_output_histograms[NUM_ACTIVE_CHANNELS], + int num_output_levels[NUM_ACTIVE_CHANNELS], + LevelT *d_levels[NUM_ACTIVE_CHANNELS], + OffsetT num_row_pixels, + OffsetT num_rows, + OffsetT row_stride_samples, + cudaStream_t stream, + Int2Type /*is_byte_sample*/) + { + using MaxPolicyT = typename SelectedPolicy::MaxPolicy; + cudaError error = cudaSuccess; + + do + { + // Get PTX version + int ptx_version = 0; + if (CubDebug(error = PtxVersion(ptx_version))) + { + break; + } + + // Use the pass-thru transform op for converting samples to privatized bins + typedef PassThruTransform PrivatizedDecodeOpT; + + // Use the search transform op for converting privatized bins to output bins + typedef SearchTransform OutputDecodeOpT; + + int num_privatized_levels[NUM_ACTIVE_CHANNELS]; + PrivatizedDecodeOpT privatized_decode_op[NUM_ACTIVE_CHANNELS]; + OutputDecodeOpT output_decode_op[NUM_ACTIVE_CHANNELS]; + int max_levels = num_output_levels[0]; // Maximum number of levels in any channel + + for (int channel = 0; channel < NUM_ACTIVE_CHANNELS; ++channel) + { + num_privatized_levels[channel] = 257; + output_decode_op[channel].Init(d_levels[channel], num_output_levels[channel]); + + if (num_output_levels[channel] > max_levels) + { + max_levels = num_output_levels[channel]; + } + } + int max_num_output_bins = max_levels - 1; + + const int PRIVATIZED_SMEM_BINS = 256; + + detail::dispatch_histogram + dispatch(d_temp_storage, + temp_storage_bytes, + d_samples, + d_output_histograms, + num_privatized_levels, + privatized_decode_op, + num_output_levels, + output_decode_op, + max_num_output_bins, + num_row_pixels, + num_rows, + row_stride_samples, + stream); + + if (CubDebug(error = MaxPolicyT::Invoke(ptx_version, dispatch))) + { + break; + } + } while (0); + + return error; + } + + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION + static cudaError_t DispatchRange(void *d_temp_storage, + size_t &temp_storage_bytes, + SampleIteratorT d_samples, + CounterT *d_output_histograms[NUM_ACTIVE_CHANNELS], + int num_output_levels[NUM_ACTIVE_CHANNELS], + LevelT *d_levels[NUM_ACTIVE_CHANNELS], + OffsetT num_row_pixels, + OffsetT num_rows, + OffsetT row_stride_samples, + cudaStream_t stream, + bool debug_synchronous, + Int2Type is_byte_sample) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return DispatchRange(d_temp_storage, + temp_storage_bytes, + d_samples, + d_output_histograms, + num_output_levels, + d_levels, + num_row_pixels, + num_rows, + row_stride_samples, + stream, + is_byte_sample); + } + + /** + * Dispatch routine for HistogramEven, specialized for sample types larger than 8-bit + * + * @param d_temp_storage + * Device-accessible allocation of temporary storage. + * When NULL, the required allocation size is written to + * `temp_storage_bytes` and no work is done. + * + * @param temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param d_samples + * The pointer to the input sequence of sample items. + * The samples from different channels are assumed to be interleaved + * (e.g., an array of 32-bit pixels where each pixel consists of four RGBA 8-bit samples). + * + * @param d_output_histograms + * The pointers to the histogram counter output arrays, one for each active channel. + * For channeli, the allocation length of `d_histograms[i]` should be + * `num_output_levels[i] - 1`. + * + * @param num_output_levels + * The number of bin level boundaries for delineating histogram samples in each active channel. + * Implies that the number of bins for channeli is + * `num_output_levels[i] - 1`. + * + * @param lower_level + * The lower sample value bound (inclusive) for the lowest histogram bin in each active channel. + * + * @param upper_level + * The upper sample value bound (exclusive) for the highest histogram bin in each active + * channel. + * + * @param num_row_pixels + * The number of multi-channel pixels per row in the region of interest + * + * @param num_rows + * The number of rows in the region of interest + * + * @param row_stride_samples + * The number of samples between starts of consecutive rows in the region of interest + * + * @param stream + * CUDA stream to launch kernels within. Default is stream0. + * + * @param is_byte_sample + * Marker type indicating whether or not SampleT is a 8b type + */ + CUB_RUNTIME_FUNCTION __forceinline__ static cudaError_t + DispatchEven(void *d_temp_storage, + size_t &temp_storage_bytes, + SampleIteratorT d_samples, + CounterT *d_output_histograms[NUM_ACTIVE_CHANNELS], + int num_output_levels[NUM_ACTIVE_CHANNELS], + LevelT lower_level[NUM_ACTIVE_CHANNELS], + LevelT upper_level[NUM_ACTIVE_CHANNELS], + OffsetT num_row_pixels, + OffsetT num_rows, + OffsetT row_stride_samples, + cudaStream_t stream, + Int2Type /*is_byte_sample*/) + { + using MaxPolicyT = typename SelectedPolicy::MaxPolicy; + cudaError error = cudaSuccess; + + do + { + // Get PTX version + int ptx_version = 0; + if (CubDebug(error = PtxVersion(ptx_version))) + { + break; + } + + // Use the scale transform op for converting samples to privatized bins + typedef ScaleTransform PrivatizedDecodeOpT; + + // Use the pass-thru transform op for converting privatized bins to output bins + typedef PassThruTransform OutputDecodeOpT; + + PrivatizedDecodeOpT privatized_decode_op[NUM_ACTIVE_CHANNELS]; + OutputDecodeOpT output_decode_op[NUM_ACTIVE_CHANNELS]; + int max_levels = num_output_levels[0]; + + for (int channel = 0; channel < NUM_ACTIVE_CHANNELS; ++channel) + { + error = privatized_decode_op[channel].Init(num_output_levels[channel], + upper_level[channel], + lower_level[channel]); + if (CubDebug(error != cudaSuccess)) + { + // Make sure to also return a reasonable value for `temp_storage_bytes` in case of + // an overflow of the bin computation, in which case a subsequent algorithm + // invocation will also fail + if (!d_temp_storage) + { + temp_storage_bytes = 1U; + } + return error; + } + + if (num_output_levels[channel] > max_levels) + { + max_levels = num_output_levels[channel]; + } + } + int max_num_output_bins = max_levels - 1; + + if (max_num_output_bins > MAX_PRIVATIZED_SMEM_BINS) + { + // Dispatch shared-privatized approach + const int PRIVATIZED_SMEM_BINS = 0; + + detail::dispatch_histogram + dispatch(d_temp_storage, + temp_storage_bytes, + d_samples, + d_output_histograms, + num_output_levels, + privatized_decode_op, + num_output_levels, + output_decode_op, + max_num_output_bins, + num_row_pixels, + num_rows, + row_stride_samples, + stream); + + if (CubDebug(error = MaxPolicyT::Invoke(ptx_version, dispatch))) + { + break; + } + } + else + { + // Dispatch shared-privatized approach + const int PRIVATIZED_SMEM_BINS = MAX_PRIVATIZED_SMEM_BINS; + + detail::dispatch_histogram + dispatch(d_temp_storage, + temp_storage_bytes, + d_samples, + d_output_histograms, + num_output_levels, + privatized_decode_op, + num_output_levels, + output_decode_op, + max_num_output_bins, + num_row_pixels, + num_rows, + row_stride_samples, + stream); + + if (CubDebug(error = MaxPolicyT::Invoke(ptx_version, dispatch))) + { + break; + } + } + } while (0); + + return error; + } + + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION __forceinline__ static cudaError_t + DispatchEven(void *d_temp_storage, + size_t &temp_storage_bytes, + SampleIteratorT d_samples, + CounterT *d_output_histograms[NUM_ACTIVE_CHANNELS], + int num_output_levels[NUM_ACTIVE_CHANNELS], + LevelT lower_level[NUM_ACTIVE_CHANNELS], + LevelT upper_level[NUM_ACTIVE_CHANNELS], + OffsetT num_row_pixels, + OffsetT num_rows, + OffsetT row_stride_samples, + cudaStream_t stream, + bool debug_synchronous, + Int2Type is_byte_sample) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return DispatchEven(d_temp_storage, + temp_storage_bytes, + d_samples, + d_output_histograms, + num_output_levels, + lower_level, + upper_level, + num_row_pixels, + num_rows, + row_stride_samples, + stream, + is_byte_sample); + } + + /** + * Dispatch routine for HistogramEven, specialized for 8-bit sample types + * (computes 256-bin privatized histograms and then reduces to user-specified levels) + * + * @param d_temp_storage + * Device-accessible allocation of temporary storage. + * When NULL, the required allocation size is written to `temp_storage_bytes` and + * no work is done. + * + * @param temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param d_samples + * The pointer to the input sequence of sample items. The samples from different channels are + * assumed to be interleaved (e.g., an array of 32-bit pixels where each pixel consists of + * four RGBA 8-bit samples). + * + * @param d_output_histograms + * The pointers to the histogram counter output arrays, one for each active channel. + * For channeli, the allocation length of `d_histograms[i]` should be + * `num_output_levels[i] - 1`. + * + * @param num_output_levels + * The number of bin level boundaries for delineating histogram samples in each active channel. + * Implies that the number of bins for channeli is + * `num_output_levels[i] - 1`. + * + * @param lower_level + * The lower sample value bound (inclusive) for the lowest histogram bin in each active channel. + * + * @param upper_level + * The upper sample value bound (exclusive) for the highest histogram bin in each active + * channel. + * + * @param num_row_pixels + * The number of multi-channel pixels per row in the region of interest + * + * @param num_rows + * The number of rows in the region of interest + * + * @param row_stride_samples + * The number of samples between starts of consecutive rows in the region of interest + * + * @param stream + * CUDA stream to launch kernels within. Default is stream0. + * + * @param is_byte_sample + * type indicating whether or not SampleT is a 8b type + */ + CUB_RUNTIME_FUNCTION __forceinline__ static cudaError_t + DispatchEven(void *d_temp_storage, + size_t &temp_storage_bytes, + SampleIteratorT d_samples, + CounterT *d_output_histograms[NUM_ACTIVE_CHANNELS], + int num_output_levels[NUM_ACTIVE_CHANNELS], + LevelT lower_level[NUM_ACTIVE_CHANNELS], + LevelT upper_level[NUM_ACTIVE_CHANNELS], + OffsetT num_row_pixels, + OffsetT num_rows, + OffsetT row_stride_samples, + cudaStream_t stream, + Int2Type /*is_byte_sample*/) + { + using MaxPolicyT = typename SelectedPolicy::MaxPolicy; + cudaError error = cudaSuccess; + + do + { + // Get PTX version + int ptx_version = 0; + if (CubDebug(error = PtxVersion(ptx_version))) + { + break; + } + + // Use the pass-thru transform op for converting samples to privatized bins + typedef PassThruTransform PrivatizedDecodeOpT; + + // Use the scale transform op for converting privatized bins to output bins + typedef ScaleTransform OutputDecodeOpT; + + int num_privatized_levels[NUM_ACTIVE_CHANNELS]; + PrivatizedDecodeOpT privatized_decode_op[NUM_ACTIVE_CHANNELS]; + OutputDecodeOpT output_decode_op[NUM_ACTIVE_CHANNELS]; + int max_levels = num_output_levels[0]; + + for (int channel = 0; channel < NUM_ACTIVE_CHANNELS; ++channel) + { + num_privatized_levels[channel] = 257; + + output_decode_op[channel].Init(num_output_levels[channel], + upper_level[channel], + lower_level[channel]); + + if (num_output_levels[channel] > max_levels) + { + max_levels = num_output_levels[channel]; + } + } + int max_num_output_bins = max_levels - 1; + + const int PRIVATIZED_SMEM_BINS = 256; + + detail::dispatch_histogram + dispatch(d_temp_storage, + temp_storage_bytes, + d_samples, + d_output_histograms, + num_privatized_levels, + privatized_decode_op, + num_output_levels, + output_decode_op, + max_num_output_bins, + num_row_pixels, + num_rows, + row_stride_samples, + stream); + + if (CubDebug(error = MaxPolicyT::Invoke(ptx_version, dispatch))) + { + break; + } + } while (0); + + return error; + } + + CUB_RUNTIME_FUNCTION __forceinline__ static cudaError_t + DispatchEven(void *d_temp_storage, + size_t &temp_storage_bytes, + SampleIteratorT d_samples, + CounterT *d_output_histograms[NUM_ACTIVE_CHANNELS], + int num_output_levels[NUM_ACTIVE_CHANNELS], + LevelT lower_level[NUM_ACTIVE_CHANNELS], + LevelT upper_level[NUM_ACTIVE_CHANNELS], + OffsetT num_row_pixels, + OffsetT num_rows, + OffsetT row_stride_samples, + cudaStream_t stream, + bool debug_synchronous, + Int2Type is_byte_sample) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return DispatchEven(d_temp_storage, + temp_storage_bytes, + d_samples, + d_output_histograms, + num_output_levels, + lower_level, + upper_level, + num_row_pixels, + num_rows, + row_stride_samples, + stream, + is_byte_sample); + } +}; + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_merge_sort.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_merge_sort.cuh new file mode 100644 index 0000000000000000000000000000000000000000..5bbd3dfdd781948573eff21c7e09e5e1838b50b6 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_merge_sort.cuh @@ -0,0 +1,898 @@ +/****************************************************************************** + * Copyright (c) 2011-2021, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +#pragma once + +#include +#include +#include +#include +#include + +#include +#include + +CUB_NAMESPACE_BEGIN + + +template +void __global__ __launch_bounds__(ChainedPolicyT::ActivePolicy::MergeSortPolicy::BLOCK_THREADS) +DeviceMergeSortBlockSortKernel(bool ping, + KeyInputIteratorT keys_in, + ValueInputIteratorT items_in, + KeyIteratorT keys_out, + ValueIteratorT items_out, + OffsetT keys_count, + KeyT *tmp_keys_out, + ValueT *tmp_items_out, + CompareOpT compare_op, + char *vshmem) +{ + extern __shared__ char shmem[]; + using ActivePolicyT = typename ChainedPolicyT::ActivePolicy::MergeSortPolicy; + + using AgentBlockSortT = AgentBlockSort; + + const OffsetT vshmem_offset = blockIdx.x * + AgentBlockSortT::SHARED_MEMORY_SIZE; + + typename AgentBlockSortT::TempStorage &storage = + *reinterpret_cast( + UseVShmem ? vshmem + vshmem_offset : shmem); + + AgentBlockSortT agent(ping, + storage, + THRUST_NS_QUALIFIER::cuda_cub::core::make_load_iterator(ActivePolicyT(), keys_in), + THRUST_NS_QUALIFIER::cuda_cub::core::make_load_iterator(ActivePolicyT(), items_in), + keys_count, + keys_out, + items_out, + tmp_keys_out, + tmp_items_out, + compare_op); + + agent.Process(); +} + +template +__global__ void DeviceMergeSortPartitionKernel(bool ping, + KeyIteratorT keys_ping, + KeyT *keys_pong, + OffsetT keys_count, + OffsetT num_partitions, + OffsetT *merge_partitions, + CompareOpT compare_op, + OffsetT target_merged_tiles_number, + int items_per_tile) +{ + OffsetT partition_idx = blockDim.x * blockIdx.x + threadIdx.x; + + if (partition_idx < num_partitions) + { + AgentPartition agent( + ping, + keys_ping, + keys_pong, + keys_count, + partition_idx, + merge_partitions, + compare_op, + target_merged_tiles_number, + items_per_tile); + + agent.Process(); + } +} + +template +void __global__ __launch_bounds__(ChainedPolicyT::ActivePolicy::MergeSortPolicy::BLOCK_THREADS) +DeviceMergeSortMergeKernel(bool ping, + KeyIteratorT keys_ping, + ValueIteratorT items_ping, + OffsetT keys_count, + KeyT *keys_pong, + ValueT *items_pong, + CompareOpT compare_op, + OffsetT *merge_partitions, + OffsetT target_merged_tiles_number, + char *vshmem) +{ + extern __shared__ char shmem[]; + + using ActivePolicyT = typename ChainedPolicyT::ActivePolicy::MergeSortPolicy; + using AgentMergeT = AgentMerge; + + const OffsetT vshmem_offset = blockIdx.x * AgentMergeT::SHARED_MEMORY_SIZE; + + typename AgentMergeT::TempStorage &storage = + *reinterpret_cast( + UseVShmem ? vshmem + vshmem_offset : shmem); + + AgentMergeT agent( + ping, + storage, + THRUST_NS_QUALIFIER::cuda_cub::core::make_load_iterator(ActivePolicyT(), keys_ping), + THRUST_NS_QUALIFIER::cuda_cub::core::make_load_iterator(ActivePolicyT(), items_ping), + THRUST_NS_QUALIFIER::cuda_cub::core::make_load_iterator(ActivePolicyT(), keys_pong), + THRUST_NS_QUALIFIER::cuda_cub::core::make_load_iterator(ActivePolicyT(), items_pong), + keys_count, + keys_pong, + items_pong, + keys_ping, + items_ping, + compare_op, + merge_partitions, + target_merged_tiles_number); + + agent.Process(); +} + +/******************************************************************************* + * Policy + ******************************************************************************/ + +template +struct DeviceMergeSortPolicy +{ + using KeyT = cub::detail::value_t; + + //---------------------------------------------------------------------------- + // Architecture-specific tuning policies + //---------------------------------------------------------------------------- + + struct Policy350 : ChainedPolicy<350, Policy350, Policy350> + { + using MergeSortPolicy = + AgentMergeSortPolicy<256, + Nominal4BItemsToItems(11), + cub::BLOCK_LOAD_WARP_TRANSPOSE, + cub::LOAD_LDG, + cub::BLOCK_STORE_WARP_TRANSPOSE>; + }; + +// NVBug 3384810 +#if defined(_NVHPC_CUDA) + using Policy520 = Policy350; +#else + struct Policy520 : ChainedPolicy<520, Policy520, Policy350> + { + using MergeSortPolicy = + AgentMergeSortPolicy<512, + Nominal4BItemsToItems(15), + cub::BLOCK_LOAD_WARP_TRANSPOSE, + cub::LOAD_LDG, + cub::BLOCK_STORE_WARP_TRANSPOSE>; + }; +#endif + + struct Policy600 : ChainedPolicy<600, Policy600, Policy520> + { + using MergeSortPolicy = + AgentMergeSortPolicy<256, + Nominal4BItemsToItems(17), + cub::BLOCK_LOAD_WARP_TRANSPOSE, + cub::LOAD_DEFAULT, + cub::BLOCK_STORE_WARP_TRANSPOSE>; + }; + + + /// MaxPolicy + using MaxPolicy = Policy600; +}; + +template +struct BlockSortLauncher +{ + int num_tiles; + std::size_t block_sort_shmem_size; + bool ping; + + KeyInputIteratorT d_input_keys; + ValueInputIteratorT d_input_items; + KeyIteratorT d_output_keys; + ValueIteratorT d_output_items; + OffsetT num_items; + CompareOpT compare_op; + cudaStream_t stream; + + KeyT *keys_buffer; + ValueT *items_buffer; + char* vshmem_ptr; + + CUB_RUNTIME_FUNCTION __forceinline__ + BlockSortLauncher(int num_tiles, + std::size_t block_sort_shmem_size, + bool ping, + KeyInputIteratorT d_input_keys, + ValueInputIteratorT d_input_items, + KeyIteratorT d_output_keys, + ValueIteratorT d_output_items, + OffsetT num_items, + CompareOpT compare_op, + cudaStream_t stream, + KeyT *keys_buffer, + ValueT *items_buffer, + char *vshmem_ptr) + : num_tiles(num_tiles) + , block_sort_shmem_size(block_sort_shmem_size) + , ping(ping) + , d_input_keys(d_input_keys) + , d_input_items(d_input_items) + , d_output_keys(d_output_keys) + , d_output_items(d_output_items) + , num_items(num_items) + , compare_op(compare_op) + , stream(stream) + , keys_buffer(keys_buffer) + , items_buffer(items_buffer) + , vshmem_ptr(vshmem_ptr) + {} + + CUB_RUNTIME_FUNCTION __forceinline__ + void launch() const + { + if (vshmem_ptr) + { + launch_impl(); + } + else + { + launch_impl(); + } + } + + template + CUB_RUNTIME_FUNCTION __forceinline__ void launch_impl() const + { + constexpr bool use_vshmem = (AgentFitsIntoDefaultShmemSize == false) && + UseVShmem; + + THRUST_NS_QUALIFIER::cuda_cub::launcher::triple_chevron( + num_tiles, + ActivePolicyT::MergeSortPolicy::BLOCK_THREADS, + use_vshmem ? 0 : block_sort_shmem_size, + stream) + .doit(DeviceMergeSortBlockSortKernel, + ping, + d_input_keys, + d_input_items, + d_output_keys, + d_output_items, + num_items, + keys_buffer, + items_buffer, + compare_op, + vshmem_ptr); + } +}; + +template +struct MergeLauncher +{ + int num_tiles; + std::size_t merge_shmem_size; + + KeyIteratorT d_keys; + ValueIteratorT d_items; + OffsetT num_items; + CompareOpT compare_op; + OffsetT *merge_partitions; + cudaStream_t stream; + + KeyT *keys_buffer; + ValueT *items_buffer; + char *vshmem_ptr; + + CUB_RUNTIME_FUNCTION __forceinline__ MergeLauncher(int num_tiles, + std::size_t merge_shmem_size, + KeyIteratorT d_keys, + ValueIteratorT d_items, + OffsetT num_items, + CompareOpT compare_op, + OffsetT *merge_partitions, + cudaStream_t stream, + KeyT *keys_buffer, + ValueT *items_buffer, + char *vshmem_ptr) + : num_tiles(num_tiles) + , merge_shmem_size(merge_shmem_size) + , d_keys(d_keys) + , d_items(d_items) + , num_items(num_items) + , compare_op(compare_op) + , merge_partitions(merge_partitions) + , stream(stream) + , keys_buffer(keys_buffer) + , items_buffer(items_buffer) + , vshmem_ptr(vshmem_ptr) + {} + + CUB_RUNTIME_FUNCTION __forceinline__ void + launch(bool ping, OffsetT target_merged_tiles_number) const + { + if (vshmem_ptr) + { + launch_impl(ping, target_merged_tiles_number); + } + else + { + launch_impl(ping, target_merged_tiles_number); + } + } + + template + CUB_RUNTIME_FUNCTION __forceinline__ void + launch_impl(bool ping, OffsetT target_merged_tiles_number) const + { + constexpr bool use_vshmem = (AgentFitsIntoDefaultShmemSize == false) && + UseVShmem; + + THRUST_NS_QUALIFIER::cuda_cub::launcher::triple_chevron( + num_tiles, + ActivePolicyT::MergeSortPolicy::BLOCK_THREADS, + use_vshmem ? 0 : merge_shmem_size, + stream) + .doit(DeviceMergeSortMergeKernel, + ping, + d_keys, + d_items, + num_items, + keys_buffer, + items_buffer, + compare_op, + merge_partitions, + target_merged_tiles_number, + vshmem_ptr); + } +}; + +template > +struct DispatchMergeSort : SelectedPolicy +{ + using KeyT = cub::detail::value_t; + using ValueT = cub::detail::value_t; + + /// Whether or not there are values to be trucked along with keys + static constexpr bool KEYS_ONLY = std::is_same::value; + + // Problem state + + /// Device-accessible allocation of temporary storage. When NULL, the required + /// allocation size is written to \p temp_storage_bytes and no work is done. + void *d_temp_storage; + + /// Reference to size in bytes of \p d_temp_storage allocation + std::size_t &temp_storage_bytes; + + /// Pointer to the input sequence of unsorted input keys + KeyInputIteratorT d_input_keys; + + /// Pointer to the input sequence of unsorted input values + ValueInputIteratorT d_input_items; + + /// Pointer to the output sequence of sorted input keys + KeyIteratorT d_output_keys; + + /// Pointer to the output sequence of sorted input values + ValueIteratorT d_output_items; + + /// Number of items to sort + OffsetT num_items; + + /// Comparison function object which returns true if the first argument is + /// ordered before the second + CompareOpT compare_op; + + /// CUDA stream to launch kernels within. Default is stream0. + cudaStream_t stream; + + int ptx_version; + + // Constructor + CUB_RUNTIME_FUNCTION __forceinline__ + DispatchMergeSort(void *d_temp_storage, + std::size_t &temp_storage_bytes, + KeyInputIteratorT d_input_keys, + ValueInputIteratorT d_input_items, + KeyIteratorT d_output_keys, + ValueIteratorT d_output_items, + OffsetT num_items, + CompareOpT compare_op, + cudaStream_t stream, + int ptx_version) + : d_temp_storage(d_temp_storage) + , temp_storage_bytes(temp_storage_bytes) + , d_input_keys(d_input_keys) + , d_input_items(d_input_items) + , d_output_keys(d_output_keys) + , d_output_items(d_output_items) + , num_items(num_items) + , compare_op(compare_op) + , stream(stream) + , ptx_version(ptx_version) + {} + + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION __forceinline__ + DispatchMergeSort(void *d_temp_storage, + std::size_t &temp_storage_bytes, + KeyInputIteratorT d_input_keys, + ValueInputIteratorT d_input_items, + KeyIteratorT d_output_keys, + ValueIteratorT d_output_items, + OffsetT num_items, + CompareOpT compare_op, + cudaStream_t stream, + bool debug_synchronous, + int ptx_version) + : d_temp_storage(d_temp_storage) + , temp_storage_bytes(temp_storage_bytes) + , d_input_keys(d_input_keys) + , d_input_items(d_input_items) + , d_output_keys(d_output_keys) + , d_output_items(d_output_items) + , num_items(num_items) + , compare_op(compare_op) + , stream(stream) + , ptx_version(ptx_version) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + } + + // Invocation + template + CUB_RUNTIME_FUNCTION __forceinline__ cudaError_t Invoke() + { + using MergePolicyT = typename ActivePolicyT::MergeSortPolicy; + using MaxPolicyT = typename DispatchMergeSort::MaxPolicy; + + using BlockSortAgentT = AgentBlockSort; + + using MergeAgentT = AgentMerge; + + cudaError error = cudaSuccess; + + if (num_items == 0) + return error; + + do + { + // Get device ordinal + int device_ordinal = 0; + if (CubDebug(error = cudaGetDevice(&device_ordinal))) + { + break; + } + + // Get shared memory size + const auto tile_size = MergePolicyT::ITEMS_PER_TILE; + const auto num_tiles = cub::DivideAndRoundUp(num_items, tile_size); + + /** + * Merge sort supports large types, which can lead to excessive shared + * memory size requirements. In these cases, merge sort allocates virtual + * shared memory that resides in global memory: + * ``` + * extern __shared__ char shmem[]; + * typename AgentT::TempStorage &storage = + * *reinterpret_cast( + * UseVShmem ? vshmem + vshmem_offset : shmem); + * ``` + * Having `UseVShmem` as a runtime variable leads to the generation of + * generic loads and stores, which causes a slowdown. Therefore, + * `UseVShmem` has to be known at compilation time. + * In the generic case, available shared memory size is queried at runtime + * to check if kernels requirements are satisfied. Since the query result + * is not known at compile-time, merge sort kernels are specialized for + * both cases. + * To address increased compilation time, the dispatch layer checks + * whether kernels requirements fit into default shared memory + * size (48KB). In this case, there's no need for virtual shared + * memory specialization. + */ + constexpr std::size_t default_shared_memory_size = 48 * 1024; + constexpr auto block_sort_shmem_size = + static_cast(BlockSortAgentT::SHARED_MEMORY_SIZE); + constexpr bool block_sort_fits_into_default_shmem = + block_sort_shmem_size < default_shared_memory_size; + + constexpr auto merge_shmem_size = + static_cast(MergeAgentT::SHARED_MEMORY_SIZE); + constexpr bool merge_fits_into_default_shmem = merge_shmem_size < + default_shared_memory_size; + constexpr bool runtime_shmem_size_check_is_required = + !(merge_fits_into_default_shmem && block_sort_fits_into_default_shmem); + + const auto merge_partitions_size = + static_cast(1 + num_tiles) * sizeof(OffsetT); + + const auto temporary_keys_storage_size = + static_cast(num_items * sizeof(KeyT)); + + const auto temporary_values_storage_size = + static_cast(num_items * sizeof(ValueT)) * !KEYS_ONLY; + + std::size_t virtual_shared_memory_size = 0; + bool block_sort_requires_vshmem = false; + bool merge_requires_vshmem = false; + + if (runtime_shmem_size_check_is_required) + { + int max_shmem = 0; + if (CubDebug( + error = cudaDeviceGetAttribute(&max_shmem, + cudaDevAttrMaxSharedMemoryPerBlock, + device_ordinal))) + { + break; + } + + block_sort_requires_vshmem = block_sort_shmem_size > + static_cast(max_shmem); + merge_requires_vshmem = merge_shmem_size > + static_cast(max_shmem); + + virtual_shared_memory_size = + detail::VshmemSize(static_cast(max_shmem), + (cub::max)(block_sort_shmem_size, merge_shmem_size), + static_cast(num_tiles)); + } + + + void *allocations[4] = {nullptr, nullptr, nullptr, nullptr}; + std::size_t allocation_sizes[4] = {merge_partitions_size, + temporary_keys_storage_size, + temporary_values_storage_size, + virtual_shared_memory_size}; + + if (CubDebug(error = AliasTemporaries(d_temp_storage, + temp_storage_bytes, + allocations, + allocation_sizes))) + { + break; + } + + if (d_temp_storage == nullptr) + { + // Return if the caller is simply requesting the size of the storage + // allocation + break; + } + + const int num_passes = + static_cast(THRUST_NS_QUALIFIER::detail::log2_ri(num_tiles)); + + /* + * The algorithm consists of stages. At each stage, there are input and + * output arrays. There are two pairs of arrays allocated (keys and items). + * One pair is from function arguments and another from temporary storage. + * Ping is a helper variable that controls which of these two pairs of + * arrays is an input and which is an output for a current stage. If the + * ping is true - the current stage stores its result in the temporary + * storage. The temporary storage acts as input data otherwise. + * + * Block sort is executed before the main loop. It stores its result in + * the pair of arrays that will be an input of the next stage. The initial + * value of the ping variable is selected so that the result of the final + * stage is stored in the input arrays. + */ + bool ping = num_passes % 2 == 0; + + auto merge_partitions = reinterpret_cast(allocations[0]); + auto keys_buffer = reinterpret_cast(allocations[1]); + auto items_buffer = reinterpret_cast(allocations[2]); + + char *vshmem_ptr = virtual_shared_memory_size > 0 + ? reinterpret_cast(allocations[3]) + : nullptr; + + // Invoke DeviceReduceKernel + BlockSortLauncher + block_sort_launcher(static_cast(num_tiles), + block_sort_shmem_size, + ping, + d_input_keys, + d_input_items, + d_output_keys, + d_output_items, + num_items, + compare_op, + stream, + keys_buffer, + items_buffer, + block_sort_requires_vshmem ? vshmem_ptr : nullptr); + + block_sort_launcher.launch(); + + error = detail::DebugSyncStream(stream); + if (CubDebug(error)) + { + break; + } + + // Check for failure to launch + if (CubDebug(error = cudaPeekAtLastError())) + { + break; + } + + const OffsetT num_partitions = num_tiles + 1; + const int threads_per_partition_block = 256; + + const int partition_grid_size = static_cast( + cub::DivideAndRoundUp(num_partitions, threads_per_partition_block)); + + MergeLauncher + merge_launcher(static_cast(num_tiles), + merge_shmem_size, + d_output_keys, + d_output_items, + num_items, + compare_op, + merge_partitions, + stream, + keys_buffer, + items_buffer, + merge_requires_vshmem ? vshmem_ptr : nullptr); + + for (int pass = 0; pass < num_passes; ++pass, ping = !ping) + { + OffsetT target_merged_tiles_number = OffsetT(2) << pass; + + // Partition + THRUST_NS_QUALIFIER::cuda_cub::launcher::triple_chevron( + partition_grid_size, + threads_per_partition_block, + 0, + stream) + .doit(DeviceMergeSortPartitionKernel, + ping, + d_output_keys, + keys_buffer, + num_items, + num_partitions, + merge_partitions, + compare_op, + target_merged_tiles_number, + tile_size); + + error = detail::DebugSyncStream(stream); + if (CubDebug(error)) + { + break; + } + + // Check for failure to launch + if (CubDebug(error = cudaPeekAtLastError())) + { + break; + } + + // Merge + merge_launcher.launch(ping, target_merged_tiles_number); + + error = detail::DebugSyncStream(stream); + if (CubDebug(error)) + { + break; + } + + // Check for failure to launch + if (CubDebug(error = cudaPeekAtLastError())) + { + break; + } + } + } + while (0); + + return error; + } + + CUB_RUNTIME_FUNCTION __forceinline__ static cudaError_t + Dispatch(void *d_temp_storage, + std::size_t &temp_storage_bytes, + KeyInputIteratorT d_input_keys, + ValueInputIteratorT d_input_items, + KeyIteratorT d_output_keys, + ValueIteratorT d_output_items, + OffsetT num_items, + CompareOpT compare_op, + cudaStream_t stream) + { + using MaxPolicyT = typename DispatchMergeSort::MaxPolicy; + + cudaError error = cudaSuccess; + do + { + // Get PTX version + int ptx_version = 0; + if (CubDebug(error = PtxVersion(ptx_version))) + { + break; + } + + // Create dispatch functor + DispatchMergeSort dispatch(d_temp_storage, + temp_storage_bytes, + d_input_keys, + d_input_items, + d_output_keys, + d_output_items, + num_items, + compare_op, + stream, + ptx_version); + + // Dispatch to chained policy + if (CubDebug(error = MaxPolicyT::Invoke(ptx_version, dispatch))) + { + break; + } + } while (0); + + return error; + } + + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION __forceinline__ static cudaError_t + Dispatch(void *d_temp_storage, + std::size_t &temp_storage_bytes, + KeyInputIteratorT d_input_keys, + ValueInputIteratorT d_input_items, + KeyIteratorT d_output_keys, + ValueIteratorT d_output_items, + OffsetT num_items, + CompareOpT compare_op, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return Dispatch(d_temp_storage, + temp_storage_bytes, + d_input_keys, + d_input_items, + d_output_keys, + d_output_items, + num_items, + compare_op, + stream); + } +}; + + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_radix_sort.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_radix_sort.cuh new file mode 100644 index 0000000000000000000000000000000000000000..84b6ccffd1928e6caab32f726b4b5db91537b397 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_radix_sort.cuh @@ -0,0 +1,2470 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * cub::DeviceRadixSort provides device-wide, parallel operations for computing a radix sort across a sequence of data items residing within device-accessible memory. + */ + +#pragma once + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +// suppress warnings triggered by #pragma unroll: +// "warning: loop not unrolled: the optimizer was unable to perform the requested transformation; the transformation might be disabled or specified as part of an unsupported transformation ordering [-Wpass-failed=transform-warning]" +#if defined(__clang__) +# pragma clang diagnostic push +# pragma clang diagnostic ignored "-Wpass-failed" +#endif + +CUB_NAMESPACE_BEGIN + + +/****************************************************************************** + * Kernel entry points + *****************************************************************************/ + +/** + * Upsweep digit-counting kernel entry point (multi-block). Computes privatized digit histograms, one per block. + */ +template < + typename ChainedPolicyT, ///< Chained tuning policy + bool ALT_DIGIT_BITS, ///< Whether or not to use the alternate (lower-bits) policy + bool IS_DESCENDING, ///< Whether or not the sorted-order is high-to-low + typename KeyT, ///< Key type + typename OffsetT, ///< Signed integer type for global offsets + typename DecomposerT = detail::identity_decomposer_t> +__launch_bounds__ (int((ALT_DIGIT_BITS) ? + int(ChainedPolicyT::ActivePolicy::AltUpsweepPolicy::BLOCK_THREADS) : + int(ChainedPolicyT::ActivePolicy::UpsweepPolicy::BLOCK_THREADS))) +__global__ void DeviceRadixSortUpsweepKernel( + const KeyT *d_keys, ///< [in] Input keys buffer + OffsetT *d_spine, ///< [out] Privatized (per block) digit histograms (striped, i.e., 0s counts from each block, then 1s counts from each block, etc.) + OffsetT /*num_items*/, ///< [in] Total number of input data items + int current_bit, ///< [in] Bit position of current radix digit + int num_bits, ///< [in] Number of bits of current radix digit + GridEvenShare even_share, ///< [in] Even-share descriptor for mapan equal number of tiles onto each thread block + DecomposerT decomposer = {}) +{ + using ActiveUpsweepPolicyT = + cub::detail::conditional_t< + ALT_DIGIT_BITS, + typename ChainedPolicyT::ActivePolicy::AltUpsweepPolicy, + typename ChainedPolicyT::ActivePolicy::UpsweepPolicy>; + + using ActiveDownsweepPolicyT = + cub::detail::conditional_t< + ALT_DIGIT_BITS, + typename ChainedPolicyT::ActivePolicy::AltDownsweepPolicy, + typename ChainedPolicyT::ActivePolicy::DownsweepPolicy>; + + enum { + TILE_ITEMS = CUB_MAX( + ActiveUpsweepPolicyT::BLOCK_THREADS * ActiveUpsweepPolicyT::ITEMS_PER_THREAD, + ActiveDownsweepPolicyT::BLOCK_THREADS * ActiveDownsweepPolicyT::ITEMS_PER_THREAD) + }; + + // Parameterize AgentRadixSortUpsweep type for the current configuration + typedef AgentRadixSortUpsweep< + ActiveUpsweepPolicyT, + KeyT, + OffsetT, + DecomposerT> + AgentRadixSortUpsweepT; + + // Shared memory storage + __shared__ typename AgentRadixSortUpsweepT::TempStorage temp_storage; + + // Initialize GRID_MAPPING_RAKE even-share descriptor for this thread block + even_share.template BlockInit(); + + AgentRadixSortUpsweepT upsweep(temp_storage, d_keys, current_bit, num_bits, decomposer); + + upsweep.ProcessRegion(even_share.block_offset, even_share.block_end); + + CTA_SYNC(); + + // Write out digit counts (striped) + upsweep.template ExtractCounts(d_spine, gridDim.x, blockIdx.x); +} + + +/** + * Spine scan kernel entry point (single-block). Computes an exclusive prefix sum over the privatized digit histograms + */ +template < + typename ChainedPolicyT, ///< Chained tuning policy + typename OffsetT> ///< Signed integer type for global offsets +__launch_bounds__ (int(ChainedPolicyT::ActivePolicy::ScanPolicy::BLOCK_THREADS), 1) +__global__ void RadixSortScanBinsKernel( + OffsetT *d_spine, ///< [in,out] Privatized (per block) digit histograms (striped, i.e., 0s counts from each block, then 1s counts from each block, etc.) + int num_counts) ///< [in] Total number of bin-counts +{ + // Parameterize the AgentScan type for the current configuration + typedef AgentScan< + typename ChainedPolicyT::ActivePolicy::ScanPolicy, + OffsetT*, + OffsetT*, + cub::Sum, + OffsetT, + OffsetT, + OffsetT> + AgentScanT; + + // Shared memory storage + __shared__ typename AgentScanT::TempStorage temp_storage; + + // Block scan instance + AgentScanT block_scan(temp_storage, d_spine, d_spine, cub::Sum(), OffsetT(0)) ; + + // Process full input tiles + int block_offset = 0; + BlockScanRunningPrefixOp prefix_op(0, Sum()); + while (block_offset + AgentScanT::TILE_ITEMS <= num_counts) + { + block_scan.template ConsumeTile(block_offset, prefix_op); + block_offset += AgentScanT::TILE_ITEMS; + } + + // Process the remaining partial tile (if any). + if (block_offset < num_counts) + { + block_scan.template ConsumeTile(block_offset, prefix_op, + num_counts - block_offset); + } +} + + +/** + * Downsweep pass kernel entry point (multi-block). Scatters keys (and values) into corresponding bins for the current digit place. + */ +template < + typename ChainedPolicyT, ///< Chained tuning policy + bool ALT_DIGIT_BITS, ///< Whether or not to use the alternate (lower-bits) policy + bool IS_DESCENDING, ///< Whether or not the sorted-order is high-to-low + typename KeyT, ///< Key type + typename ValueT, ///< Value type + typename OffsetT, ///< Signed integer type for global offsets + typename DecomposerT = detail::identity_decomposer_t> +__launch_bounds__ (int((ALT_DIGIT_BITS) ? + int(ChainedPolicyT::ActivePolicy::AltDownsweepPolicy::BLOCK_THREADS) : + int(ChainedPolicyT::ActivePolicy::DownsweepPolicy::BLOCK_THREADS))) +__global__ void DeviceRadixSortDownsweepKernel( + const KeyT *d_keys_in, ///< [in] Input keys buffer + KeyT *d_keys_out, ///< [in] Output keys buffer + const ValueT *d_values_in, ///< [in] Input values buffer + ValueT *d_values_out, ///< [in] Output values buffer + OffsetT *d_spine, ///< [in] Scan of privatized (per block) digit histograms (striped, i.e., 0s counts from each block, then 1s counts from each block, etc.) + OffsetT num_items, ///< [in] Total number of input data items + int current_bit, ///< [in] Bit position of current radix digit + int num_bits, ///< [in] Number of bits of current radix digit + GridEvenShare even_share, ///< [in] Even-share descriptor for mapan equal number of tiles onto each thread block + DecomposerT decomposer = {}) +{ + using ActiveUpsweepPolicyT = + cub::detail::conditional_t< + ALT_DIGIT_BITS, + typename ChainedPolicyT::ActivePolicy::AltUpsweepPolicy, + typename ChainedPolicyT::ActivePolicy::UpsweepPolicy>; + + using ActiveDownsweepPolicyT = + cub::detail::conditional_t< + ALT_DIGIT_BITS, + typename ChainedPolicyT::ActivePolicy::AltDownsweepPolicy, + typename ChainedPolicyT::ActivePolicy::DownsweepPolicy>; + + enum { + TILE_ITEMS = CUB_MAX( + ActiveUpsweepPolicyT::BLOCK_THREADS * ActiveUpsweepPolicyT::ITEMS_PER_THREAD, + ActiveDownsweepPolicyT::BLOCK_THREADS * ActiveDownsweepPolicyT::ITEMS_PER_THREAD) + }; + + // Parameterize AgentRadixSortDownsweep type for the current configuration + typedef AgentRadixSortDownsweep< + ActiveDownsweepPolicyT, + IS_DESCENDING, + KeyT, + ValueT, + OffsetT, + DecomposerT> + AgentRadixSortDownsweepT; + + // Shared memory storage + __shared__ typename AgentRadixSortDownsweepT::TempStorage temp_storage; + + // Initialize even-share descriptor for this thread block + even_share.template BlockInit(); + + // Process input tiles + AgentRadixSortDownsweepT(temp_storage, num_items, d_spine, d_keys_in, d_keys_out, d_values_in, d_values_out, current_bit, num_bits, decomposer).ProcessRegion( + even_share.block_offset, + even_share.block_end); +} + + +/** + * Single pass kernel entry point (single-block). Fully sorts a tile of input. + */ +template < + typename ChainedPolicyT, ///< Chained tuning policy + bool IS_DESCENDING, ///< Whether or not the sorted-order is high-to-low + typename KeyT, ///< Key type + typename ValueT, ///< Value type + typename OffsetT, ///< Signed integer type for global offsets + typename DecomposerT = detail::identity_decomposer_t> +__launch_bounds__ (int(ChainedPolicyT::ActivePolicy::SingleTilePolicy::BLOCK_THREADS), 1) +__global__ void DeviceRadixSortSingleTileKernel( + const KeyT *d_keys_in, ///< [in] Input keys buffer + KeyT *d_keys_out, ///< [in] Output keys buffer + const ValueT *d_values_in, ///< [in] Input values buffer + ValueT *d_values_out, ///< [in] Output values buffer + OffsetT num_items, ///< [in] Total number of input data items + int current_bit, ///< [in] Bit position of current radix digit + int end_bit, ///< [in] The past-the-end (most-significant) bit index needed for key comparison + DecomposerT decomposer = {}) +{ + // Constants + enum + { + BLOCK_THREADS = ChainedPolicyT::ActivePolicy::SingleTilePolicy::BLOCK_THREADS, + ITEMS_PER_THREAD = ChainedPolicyT::ActivePolicy::SingleTilePolicy::ITEMS_PER_THREAD, + KEYS_ONLY = std::is_same::value, + }; + + // BlockRadixSort type + typedef BlockRadixSort< + KeyT, + BLOCK_THREADS, + ITEMS_PER_THREAD, + ValueT, + ChainedPolicyT::ActivePolicy::SingleTilePolicy::RADIX_BITS, + (ChainedPolicyT::ActivePolicy::SingleTilePolicy::RANK_ALGORITHM == RADIX_RANK_MEMOIZE), + ChainedPolicyT::ActivePolicy::SingleTilePolicy::SCAN_ALGORITHM> + BlockRadixSortT; + + // BlockLoad type (keys) + typedef BlockLoad< + KeyT, + BLOCK_THREADS, + ITEMS_PER_THREAD, + ChainedPolicyT::ActivePolicy::SingleTilePolicy::LOAD_ALGORITHM> BlockLoadKeys; + + // BlockLoad type (values) + typedef BlockLoad< + ValueT, + BLOCK_THREADS, + ITEMS_PER_THREAD, + ChainedPolicyT::ActivePolicy::SingleTilePolicy::LOAD_ALGORITHM> BlockLoadValues; + + // Unsigned word for key bits + using traits = detail::radix::traits_t; + using bit_ordered_type = typename traits::bit_ordered_type; + + // Shared memory storage + __shared__ union TempStorage + { + typename BlockRadixSortT::TempStorage sort; + typename BlockLoadKeys::TempStorage load_keys; + typename BlockLoadValues::TempStorage load_values; + + } temp_storage; + + // Keys and values for the block + KeyT keys[ITEMS_PER_THREAD]; + ValueT values[ITEMS_PER_THREAD]; + + // Get default (min/max) value for out-of-bounds keys + bit_ordered_type default_key_bits = IS_DESCENDING + ? traits::min_raw_binary_key(decomposer) + : traits::max_raw_binary_key(decomposer); + + KeyT default_key = reinterpret_cast(default_key_bits); + + // Load keys + BlockLoadKeys(temp_storage.load_keys).Load(d_keys_in, keys, num_items, default_key); + + CTA_SYNC(); + + // Load values + if (!KEYS_ONLY) + { + // Register pressure work-around: moving num_items through shfl prevents compiler + // from reusing guards/addressing from prior guarded loads + num_items = ShuffleIndex(num_items, 0, 0xffffffff); + + BlockLoadValues(temp_storage.load_values).Load(d_values_in, values, num_items); + + CTA_SYNC(); + } + + // Sort tile + BlockRadixSortT(temp_storage.sort).SortBlockedToStriped( + keys, + values, + current_bit, + end_bit, + Int2Type(), + Int2Type(), + decomposer); + + // Store keys and values + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ++ITEM) + { + int item_offset = ITEM * BLOCK_THREADS + threadIdx.x; + if (item_offset < num_items) + { + d_keys_out[item_offset] = keys[ITEM]; + if (!KEYS_ONLY) + d_values_out[item_offset] = values[ITEM]; + } + } +} + + +/** + * Segmented radix sorting pass (one block per segment) + */ +template < + typename ChainedPolicyT, ///< Chained tuning policy + bool ALT_DIGIT_BITS, ///< Whether or not to use the alternate (lower-bits) policy + bool IS_DESCENDING, ///< Whether or not the sorted-order is high-to-low + typename KeyT, ///< Key type + typename ValueT, ///< Value type + typename BeginOffsetIteratorT, ///< Random-access input iterator type for reading segment beginning offsets \iterator + typename EndOffsetIteratorT, ///< Random-access input iterator type for reading segment ending offsets \iterator + typename OffsetT, ///< Signed integer type for global offsets + typename DecomposerT = detail::identity_decomposer_t> +__launch_bounds__ (int((ALT_DIGIT_BITS) ? + ChainedPolicyT::ActivePolicy::AltSegmentedPolicy::BLOCK_THREADS : + ChainedPolicyT::ActivePolicy::SegmentedPolicy::BLOCK_THREADS)) +__global__ void DeviceSegmentedRadixSortKernel( + const KeyT *d_keys_in, ///< [in] Input keys buffer + KeyT *d_keys_out, ///< [in] Output keys buffer + const ValueT *d_values_in, ///< [in] Input values buffer + ValueT *d_values_out, ///< [in] Output values buffer + BeginOffsetIteratorT d_begin_offsets, ///< [in] Random-access input iterator to the sequence of beginning offsets of length \p num_segments, such that d_begin_offsets[i] is the first element of the ith data segment in d_keys_* and d_values_* + EndOffsetIteratorT d_end_offsets, ///< [in] Random-access input iterator to the sequence of ending offsets of length \p num_segments, such that d_end_offsets[i]-1 is the last element of the ith data segment in d_keys_* and d_values_*. If d_end_offsets[i]-1 <= d_begin_offsets[i], the ith is considered empty. + int /*num_segments*/, ///< [in] The number of segments that comprise the sorting data + int current_bit, ///< [in] Bit position of current radix digit + int pass_bits, ///< [in] Number of bits of current radix digit + DecomposerT decomposer = {}) +{ + // + // Constants + // + + using SegmentedPolicyT = cub::detail::conditional_t< + ALT_DIGIT_BITS, + typename ChainedPolicyT::ActivePolicy::AltSegmentedPolicy, + typename ChainedPolicyT::ActivePolicy::SegmentedPolicy>; + + enum + { + BLOCK_THREADS = SegmentedPolicyT::BLOCK_THREADS, + ITEMS_PER_THREAD = SegmentedPolicyT::ITEMS_PER_THREAD, + RADIX_BITS = SegmentedPolicyT::RADIX_BITS, + TILE_ITEMS = BLOCK_THREADS * ITEMS_PER_THREAD, + RADIX_DIGITS = 1 << RADIX_BITS, + KEYS_ONLY = std::is_same::value, + }; + + // Upsweep type + using BlockUpsweepT = + AgentRadixSortUpsweep; + + // Digit-scan type + using DigitScanT = BlockScan; + + // Downsweep type + using BlockDownsweepT = AgentRadixSortDownsweep; + + enum + { + /// Number of bin-starting offsets tracked per thread + BINS_TRACKED_PER_THREAD = BlockDownsweepT::BINS_TRACKED_PER_THREAD + }; + + // + // Process input tiles + // + + // Shared memory storage + __shared__ union + { + typename BlockUpsweepT::TempStorage upsweep; + typename BlockDownsweepT::TempStorage downsweep; + struct + { + volatile OffsetT reverse_counts_in[RADIX_DIGITS]; + volatile OffsetT reverse_counts_out[RADIX_DIGITS]; + typename DigitScanT::TempStorage scan; + }; + + } temp_storage; + + OffsetT segment_begin = d_begin_offsets[blockIdx.x]; + OffsetT segment_end = d_end_offsets[blockIdx.x]; + OffsetT num_items = segment_end - segment_begin; + + // Check if empty segment + if (num_items <= 0) + return; + + // Upsweep + BlockUpsweepT upsweep(temp_storage.upsweep, d_keys_in, current_bit, pass_bits, decomposer); + upsweep.ProcessRegion(segment_begin, segment_end); + + CTA_SYNC(); + + // The count of each digit value in this pass (valid in the first RADIX_DIGITS threads) + OffsetT bin_count[BINS_TRACKED_PER_THREAD]; + upsweep.ExtractCounts(bin_count); + + CTA_SYNC(); + + if (IS_DESCENDING) + { + // Reverse bin counts + #pragma unroll + for (int track = 0; track < BINS_TRACKED_PER_THREAD; ++track) + { + int bin_idx = (threadIdx.x * BINS_TRACKED_PER_THREAD) + track; + + if ((BLOCK_THREADS == RADIX_DIGITS) || (bin_idx < RADIX_DIGITS)) + temp_storage.reverse_counts_in[bin_idx] = bin_count[track]; + } + + CTA_SYNC(); + + #pragma unroll + for (int track = 0; track < BINS_TRACKED_PER_THREAD; ++track) + { + int bin_idx = (threadIdx.x * BINS_TRACKED_PER_THREAD) + track; + + if ((BLOCK_THREADS == RADIX_DIGITS) || (bin_idx < RADIX_DIGITS)) + bin_count[track] = temp_storage.reverse_counts_in[RADIX_DIGITS - bin_idx - 1]; + } + } + + // Scan + OffsetT bin_offset[BINS_TRACKED_PER_THREAD]; // The global scatter base offset for each digit value in this pass (valid in the first RADIX_DIGITS threads) + DigitScanT(temp_storage.scan).ExclusiveSum(bin_count, bin_offset); + + #pragma unroll + for (int track = 0; track < BINS_TRACKED_PER_THREAD; ++track) + { + bin_offset[track] += segment_begin; + } + + if (IS_DESCENDING) + { + // Reverse bin offsets + #pragma unroll + for (int track = 0; track < BINS_TRACKED_PER_THREAD; ++track) + { + int bin_idx = (threadIdx.x * BINS_TRACKED_PER_THREAD) + track; + + if ((BLOCK_THREADS == RADIX_DIGITS) || (bin_idx < RADIX_DIGITS)) + temp_storage.reverse_counts_out[threadIdx.x] = bin_offset[track]; + } + + CTA_SYNC(); + + #pragma unroll + for (int track = 0; track < BINS_TRACKED_PER_THREAD; ++track) + { + int bin_idx = (threadIdx.x * BINS_TRACKED_PER_THREAD) + track; + + if ((BLOCK_THREADS == RADIX_DIGITS) || (bin_idx < RADIX_DIGITS)) + bin_offset[track] = temp_storage.reverse_counts_out[RADIX_DIGITS - bin_idx - 1]; + } + } + + CTA_SYNC(); + + // Downsweep + BlockDownsweepT downsweep(temp_storage.downsweep, bin_offset, num_items, d_keys_in, d_keys_out, d_values_in, d_values_out, current_bit, pass_bits, decomposer); + downsweep.ProcessRegion(segment_begin, segment_end); +} + + +/****************************************************************************** + * Onesweep kernels + ******************************************************************************/ + +/** + * Kernel for computing multiple histograms + */ + +/** + * Histogram kernel + */ +template +__global__ __launch_bounds__(ChainedPolicyT::ActivePolicy::HistogramPolicy::BLOCK_THREADS) +void DeviceRadixSortHistogramKernel(OffsetT *d_bins_out, + const KeyT *d_keys_in, + OffsetT num_items, + int start_bit, + int end_bit, + DecomposerT decomposer = {}) +{ + typedef typename ChainedPolicyT::ActivePolicy::HistogramPolicy HistogramPolicyT; + typedef AgentRadixSortHistogram AgentT; + __shared__ typename AgentT::TempStorage temp_storage; + AgentT agent(temp_storage, d_bins_out, d_keys_in, num_items, start_bit, end_bit, decomposer); + agent.Process(); +} + +template < + typename ChainedPolicyT, + bool IS_DESCENDING, + typename KeyT, + typename ValueT, + typename OffsetT, + typename PortionOffsetT, + typename AtomicOffsetT = PortionOffsetT, + typename DecomposerT = detail::identity_decomposer_t> +__global__ void __launch_bounds__(ChainedPolicyT::ActivePolicy::OnesweepPolicy::BLOCK_THREADS) +DeviceRadixSortOnesweepKernel + (AtomicOffsetT* d_lookback, AtomicOffsetT* d_ctrs, OffsetT* d_bins_out, + const OffsetT* d_bins_in, KeyT* d_keys_out, const KeyT* d_keys_in, ValueT* d_values_out, + const ValueT* d_values_in, PortionOffsetT num_items, int current_bit, int num_bits, + DecomposerT decomposer = {}) +{ + typedef typename ChainedPolicyT::ActivePolicy::OnesweepPolicy OnesweepPolicyT; + typedef AgentRadixSortOnesweep AgentT; + __shared__ typename AgentT::TempStorage s; + + AgentT agent(s, d_lookback, d_ctrs, d_bins_out, d_bins_in, d_keys_out, d_keys_in, + d_values_out, d_values_in, num_items, current_bit, num_bits, decomposer); + agent.Process(); +} + + +/** + * Exclusive sum kernel + */ +template < + typename ChainedPolicyT, + typename OffsetT> +__global__ void DeviceRadixSortExclusiveSumKernel(OffsetT* d_bins) +{ + typedef typename ChainedPolicyT::ActivePolicy::ExclusiveSumPolicy ExclusiveSumPolicyT; + const int RADIX_BITS = ExclusiveSumPolicyT::RADIX_BITS; + const int RADIX_DIGITS = 1 << RADIX_BITS; + const int BLOCK_THREADS = ExclusiveSumPolicyT::BLOCK_THREADS; + const int BINS_PER_THREAD = (RADIX_DIGITS + BLOCK_THREADS - 1) / BLOCK_THREADS; + typedef cub::BlockScan BlockScan; + __shared__ typename BlockScan::TempStorage temp_storage; + + // load the bins + OffsetT bins[BINS_PER_THREAD]; + int bin_start = blockIdx.x * RADIX_DIGITS; + #pragma unroll + for (int u = 0; u < BINS_PER_THREAD; ++u) + { + int bin = threadIdx.x * BINS_PER_THREAD + u; + if (bin >= RADIX_DIGITS) break; + bins[u] = d_bins[bin_start + bin]; + } + + // compute offsets + BlockScan(temp_storage).ExclusiveSum(bins, bins); + + // store the offsets + #pragma unroll + for (int u = 0; u < BINS_PER_THREAD; ++u) + { + int bin = threadIdx.x * BINS_PER_THREAD + u; + if (bin >= RADIX_DIGITS) break; + d_bins[bin_start + bin] = bins[u]; + } +} + +namespace detail +{ +namespace radix +{ + +// default +template +struct sm90_small_key_tuning +{ + static constexpr int threads = 384; + static constexpr int items = 23; +}; + +// clang-format off + +// keys +template <> struct sm90_small_key_tuning<1, 0, 4> { static constexpr int threads = 512; static constexpr int items = 19; }; +template <> struct sm90_small_key_tuning<1, 0, 8> { static constexpr int threads = 512; static constexpr int items = 19; }; +template <> struct sm90_small_key_tuning<2, 0, 4> { static constexpr int threads = 512; static constexpr int items = 19; }; +template <> struct sm90_small_key_tuning<2, 0, 8> { static constexpr int threads = 512; static constexpr int items = 19; }; + +// pairs 8:xx +template <> struct sm90_small_key_tuning<1, 1, 4> { static constexpr int threads = 512; static constexpr int items = 15; }; +template <> struct sm90_small_key_tuning<1, 1, 8> { static constexpr int threads = 448; static constexpr int items = 16; }; +template <> struct sm90_small_key_tuning<1, 2, 4> { static constexpr int threads = 512; static constexpr int items = 17; }; +template <> struct sm90_small_key_tuning<1, 2, 8> { static constexpr int threads = 512; static constexpr int items = 14; }; +template <> struct sm90_small_key_tuning<1, 4, 4> { static constexpr int threads = 512; static constexpr int items = 17; }; +template <> struct sm90_small_key_tuning<1, 4, 8> { static constexpr int threads = 512; static constexpr int items = 14; }; +template <> struct sm90_small_key_tuning<1, 8, 4> { static constexpr int threads = 384; static constexpr int items = 23; }; +template <> struct sm90_small_key_tuning<1, 8, 8> { static constexpr int threads = 384; static constexpr int items = 18; }; +template <> struct sm90_small_key_tuning<1, 16, 4> { static constexpr int threads = 512; static constexpr int items = 22; }; +template <> struct sm90_small_key_tuning<1, 16, 8> { static constexpr int threads = 512; static constexpr int items = 22; }; + +// pairs 16:xx +template <> struct sm90_small_key_tuning<2, 1, 4> { static constexpr int threads = 384; static constexpr int items = 14; }; +template <> struct sm90_small_key_tuning<2, 1, 8> { static constexpr int threads = 384; static constexpr int items = 16; }; +template <> struct sm90_small_key_tuning<2, 2, 4> { static constexpr int threads = 384; static constexpr int items = 15; }; +template <> struct sm90_small_key_tuning<2, 2, 8> { static constexpr int threads = 448; static constexpr int items = 16; }; +template <> struct sm90_small_key_tuning<2, 4, 4> { static constexpr int threads = 512; static constexpr int items = 17; }; +template <> struct sm90_small_key_tuning<2, 4, 8> { static constexpr int threads = 512; static constexpr int items = 12; }; +template <> struct sm90_small_key_tuning<2, 8, 4> { static constexpr int threads = 384; static constexpr int items = 23; }; +template <> struct sm90_small_key_tuning<2, 8, 8> { static constexpr int threads = 512; static constexpr int items = 23; }; +template <> struct sm90_small_key_tuning<2, 16, 4> { static constexpr int threads = 512; static constexpr int items = 21; }; +template <> struct sm90_small_key_tuning<2, 16, 8> { static constexpr int threads = 576; static constexpr int items = 22; }; +// clang-format on + +} // namespace radix +} // namespace detail + +/****************************************************************************** + * Policy + ******************************************************************************/ + +/** + * Tuning policy for kernel specialization + */ +template < + typename KeyT, ///< Key type + typename ValueT, ///< Value type + typename OffsetT> ///< Signed integer type for global offsets +struct DeviceRadixSortPolicy +{ + //------------------------------------------------------------------------------ + // Constants + //------------------------------------------------------------------------------ + + // Whether this is a keys-only (or key-value) sort + constexpr static bool KEYS_ONLY = std::is_same::value; + + // Dominant-sized key/value type + using DominantT = + cub::detail::conditional_t<(sizeof(ValueT) > sizeof(KeyT)), ValueT, KeyT>; + + //------------------------------------------------------------------------------ + // Architecture-specific tuning policies + //------------------------------------------------------------------------------ + + /// SM35 + struct Policy350 : ChainedPolicy<350, Policy350, Policy350> + { + enum { + PRIMARY_RADIX_BITS = (sizeof(KeyT) > 1) ? 6 : 5, // 1.72B 32b keys/s, 1.17B 32b pairs/s, 1.55B 32b segmented keys/s (K40m) + ONESWEEP = false, + ONESWEEP_RADIX_BITS = 8, + }; + + // Histogram policy + typedef AgentRadixSortHistogramPolicy <256, 8, 1, KeyT, ONESWEEP_RADIX_BITS> HistogramPolicy; + + // Exclusive sum policy + typedef AgentRadixSortExclusiveSumPolicy <256, ONESWEEP_RADIX_BITS> ExclusiveSumPolicy; + + // Onesweep policy + typedef AgentRadixSortOnesweepPolicy <256, 21, DominantT, 1, + RADIX_RANK_MATCH_EARLY_COUNTS_ANY, BLOCK_SCAN_WARP_SCANS, RADIX_SORT_STORE_DIRECT, + ONESWEEP_RADIX_BITS> OnesweepPolicy; + + // Scan policy + typedef AgentScanPolicy <1024, 4, OffsetT, BLOCK_LOAD_VECTORIZE, LOAD_DEFAULT, BLOCK_STORE_VECTORIZE, BLOCK_SCAN_WARP_SCANS> ScanPolicy; + + // Keys-only downsweep policies + typedef AgentRadixSortDownsweepPolicy <128, 9, DominantT, BLOCK_LOAD_WARP_TRANSPOSE, LOAD_LDG, RADIX_RANK_MATCH, BLOCK_SCAN_WARP_SCANS, PRIMARY_RADIX_BITS> DownsweepPolicyKeys; + typedef AgentRadixSortDownsweepPolicy <64, 18, DominantT, BLOCK_LOAD_DIRECT, LOAD_LDG, RADIX_RANK_MEMOIZE, BLOCK_SCAN_WARP_SCANS, PRIMARY_RADIX_BITS - 1> AltDownsweepPolicyKeys; + + // Key-value pairs downsweep policies + typedef DownsweepPolicyKeys DownsweepPolicyPairs; + typedef AgentRadixSortDownsweepPolicy <128, 15, DominantT, BLOCK_LOAD_DIRECT, LOAD_LDG, RADIX_RANK_MEMOIZE, BLOCK_SCAN_WARP_SCANS, PRIMARY_RADIX_BITS - 1> AltDownsweepPolicyPairs; + + // Downsweep policies + using DownsweepPolicy = + cub::detail::conditional_t< + KEYS_ONLY, DownsweepPolicyKeys, DownsweepPolicyPairs>; + + using AltDownsweepPolicy = + cub::detail::conditional_t; + + // Upsweep policies + using UpsweepPolicy = DownsweepPolicy; + using AltUpsweepPolicy = AltDownsweepPolicy; + + // Single-tile policy + using SingleTilePolicy = DownsweepPolicy; + + // Segmented policies + using SegmentedPolicy = DownsweepPolicy; + using AltSegmentedPolicy = AltDownsweepPolicy; + }; + + + /// SM50 + struct Policy500 : ChainedPolicy<500, Policy500, Policy350> + { + enum { + PRIMARY_RADIX_BITS = (sizeof(KeyT) > 1) ? 7 : 5, // 3.5B 32b keys/s, 1.92B 32b pairs/s (TitanX) + SINGLE_TILE_RADIX_BITS = (sizeof(KeyT) > 1) ? 6 : 5, + SEGMENTED_RADIX_BITS = (sizeof(KeyT) > 1) ? 6 : 5, // 3.1B 32b segmented keys/s (TitanX) + ONESWEEP = false, + ONESWEEP_RADIX_BITS = 8, + }; + + // Histogram policy + typedef AgentRadixSortHistogramPolicy <256, 8, 1, KeyT, ONESWEEP_RADIX_BITS> HistogramPolicy; + + // Exclusive sum policy + typedef AgentRadixSortExclusiveSumPolicy <256, ONESWEEP_RADIX_BITS> ExclusiveSumPolicy; + + // Onesweep policy + typedef AgentRadixSortOnesweepPolicy <256, 21, DominantT, 1, + RADIX_RANK_MATCH_EARLY_COUNTS_ANY, BLOCK_SCAN_WARP_SCANS, RADIX_SORT_STORE_DIRECT, + ONESWEEP_RADIX_BITS> OnesweepPolicy; + + // ScanPolicy + typedef AgentScanPolicy <512, 23, OffsetT, BLOCK_LOAD_WARP_TRANSPOSE, LOAD_DEFAULT, BLOCK_STORE_WARP_TRANSPOSE, BLOCK_SCAN_RAKING_MEMOIZE> ScanPolicy; + + // Downsweep policies + typedef AgentRadixSortDownsweepPolicy <160, 39, DominantT, BLOCK_LOAD_WARP_TRANSPOSE, LOAD_DEFAULT, RADIX_RANK_BASIC, BLOCK_SCAN_WARP_SCANS, PRIMARY_RADIX_BITS> DownsweepPolicy; + typedef AgentRadixSortDownsweepPolicy <256, 16, DominantT, BLOCK_LOAD_DIRECT, LOAD_LDG, RADIX_RANK_MEMOIZE, BLOCK_SCAN_RAKING_MEMOIZE, PRIMARY_RADIX_BITS - 1> AltDownsweepPolicy; + + // Upsweep policies + typedef DownsweepPolicy UpsweepPolicy; + typedef AltDownsweepPolicy AltUpsweepPolicy; + + // Single-tile policy + typedef AgentRadixSortDownsweepPolicy <256, 19, DominantT, BLOCK_LOAD_DIRECT, LOAD_LDG, RADIX_RANK_MEMOIZE, BLOCK_SCAN_WARP_SCANS, SINGLE_TILE_RADIX_BITS> SingleTilePolicy; + + // Segmented policies + typedef AgentRadixSortDownsweepPolicy <192, 31, DominantT, BLOCK_LOAD_WARP_TRANSPOSE, LOAD_DEFAULT, RADIX_RANK_MEMOIZE, BLOCK_SCAN_WARP_SCANS, SEGMENTED_RADIX_BITS> SegmentedPolicy; + typedef AgentRadixSortDownsweepPolicy <256, 11, DominantT, BLOCK_LOAD_WARP_TRANSPOSE, LOAD_DEFAULT, RADIX_RANK_MEMOIZE, BLOCK_SCAN_WARP_SCANS, SEGMENTED_RADIX_BITS - 1> AltSegmentedPolicy; + }; + + + /// SM60 (GP100) + struct Policy600 : ChainedPolicy<600, Policy600, Policy500> + { + enum { + PRIMARY_RADIX_BITS = (sizeof(KeyT) > 1) ? 7 : 5, // 6.9B 32b keys/s (Quadro P100) + SINGLE_TILE_RADIX_BITS = (sizeof(KeyT) > 1) ? 6 : 5, + SEGMENTED_RADIX_BITS = (sizeof(KeyT) > 1) ? 6 : 5, // 5.9B 32b segmented keys/s (Quadro P100) + ONESWEEP = sizeof(KeyT) >= sizeof(uint32_t), // 10.0B 32b keys/s (GP100, 64M random keys) + ONESWEEP_RADIX_BITS = 8, + OFFSET_64BIT = sizeof(OffsetT) == 8, + }; + + // Histogram policy + typedef AgentRadixSortHistogramPolicy <256, 8, 8, KeyT, ONESWEEP_RADIX_BITS> HistogramPolicy; + + // Exclusive sum policy + typedef AgentRadixSortExclusiveSumPolicy <256, ONESWEEP_RADIX_BITS> ExclusiveSumPolicy; + + // Onesweep policy + typedef AgentRadixSortOnesweepPolicy <256, OFFSET_64BIT ? 29 : 30, DominantT, 2, + RADIX_RANK_MATCH_EARLY_COUNTS_ANY, BLOCK_SCAN_WARP_SCANS, + RADIX_SORT_STORE_DIRECT, ONESWEEP_RADIX_BITS> OnesweepPolicy; + + // ScanPolicy + typedef AgentScanPolicy <512, 23, OffsetT, BLOCK_LOAD_WARP_TRANSPOSE, LOAD_DEFAULT, BLOCK_STORE_WARP_TRANSPOSE, BLOCK_SCAN_RAKING_MEMOIZE> ScanPolicy; + + // Downsweep policies + typedef AgentRadixSortDownsweepPolicy <256, 25, DominantT, BLOCK_LOAD_TRANSPOSE, LOAD_DEFAULT, RADIX_RANK_MATCH, BLOCK_SCAN_WARP_SCANS, PRIMARY_RADIX_BITS> DownsweepPolicy; + typedef AgentRadixSortDownsweepPolicy <192, OFFSET_64BIT ? 32 : 39, DominantT, BLOCK_LOAD_TRANSPOSE, LOAD_DEFAULT, RADIX_RANK_MEMOIZE, BLOCK_SCAN_WARP_SCANS, PRIMARY_RADIX_BITS - 1> AltDownsweepPolicy; + + // Upsweep policies + typedef DownsweepPolicy UpsweepPolicy; + typedef AltDownsweepPolicy AltUpsweepPolicy; + + // Single-tile policy + typedef AgentRadixSortDownsweepPolicy <256, 19, DominantT, BLOCK_LOAD_DIRECT, LOAD_LDG, RADIX_RANK_MEMOIZE, BLOCK_SCAN_WARP_SCANS, SINGLE_TILE_RADIX_BITS> SingleTilePolicy; + + // Segmented policies + typedef AgentRadixSortDownsweepPolicy <192, 39, DominantT, BLOCK_LOAD_TRANSPOSE, LOAD_DEFAULT, RADIX_RANK_MEMOIZE, BLOCK_SCAN_WARP_SCANS, SEGMENTED_RADIX_BITS> SegmentedPolicy; + typedef AgentRadixSortDownsweepPolicy <384, 11, DominantT, BLOCK_LOAD_TRANSPOSE, LOAD_DEFAULT, RADIX_RANK_MEMOIZE, BLOCK_SCAN_WARP_SCANS, SEGMENTED_RADIX_BITS - 1> AltSegmentedPolicy; + + }; + + + /// SM61 (GP104) + struct Policy610 : ChainedPolicy<610, Policy610, Policy600> + { + enum { + PRIMARY_RADIX_BITS = (sizeof(KeyT) > 1) ? 7 : 5, // 3.4B 32b keys/s, 1.83B 32b pairs/s (1080) + SINGLE_TILE_RADIX_BITS = (sizeof(KeyT) > 1) ? 6 : 5, + SEGMENTED_RADIX_BITS = (sizeof(KeyT) > 1) ? 6 : 5, // 3.3B 32b segmented keys/s (1080) + ONESWEEP = sizeof(KeyT) >= sizeof(uint32_t), + ONESWEEP_RADIX_BITS = 8, + }; + + // Histogram policy + typedef AgentRadixSortHistogramPolicy <256, 8, 8, KeyT, ONESWEEP_RADIX_BITS> HistogramPolicy; + + // Exclusive sum policy + typedef AgentRadixSortExclusiveSumPolicy <256, ONESWEEP_RADIX_BITS> ExclusiveSumPolicy; + + // Onesweep policy + typedef AgentRadixSortOnesweepPolicy <256, 30, DominantT, 2, + RADIX_RANK_MATCH_EARLY_COUNTS_ANY, BLOCK_SCAN_WARP_SCANS, + RADIX_SORT_STORE_DIRECT, ONESWEEP_RADIX_BITS> OnesweepPolicy; + + // ScanPolicy + typedef AgentScanPolicy <512, 23, OffsetT, BLOCK_LOAD_WARP_TRANSPOSE, LOAD_DEFAULT, BLOCK_STORE_WARP_TRANSPOSE, BLOCK_SCAN_RAKING_MEMOIZE> ScanPolicy; + + // Downsweep policies + typedef AgentRadixSortDownsweepPolicy <384, 31, DominantT, BLOCK_LOAD_TRANSPOSE, LOAD_DEFAULT, RADIX_RANK_MATCH, BLOCK_SCAN_RAKING_MEMOIZE, PRIMARY_RADIX_BITS> DownsweepPolicy; + typedef AgentRadixSortDownsweepPolicy <256, 35, DominantT, BLOCK_LOAD_TRANSPOSE, LOAD_DEFAULT, RADIX_RANK_MEMOIZE, BLOCK_SCAN_RAKING_MEMOIZE, PRIMARY_RADIX_BITS - 1> AltDownsweepPolicy; + + // Upsweep policies + typedef AgentRadixSortUpsweepPolicy <128, 16, DominantT, LOAD_LDG, PRIMARY_RADIX_BITS> UpsweepPolicy; + typedef AgentRadixSortUpsweepPolicy <128, 16, DominantT, LOAD_LDG, PRIMARY_RADIX_BITS - 1> AltUpsweepPolicy; + + // Single-tile policy + typedef AgentRadixSortDownsweepPolicy <256, 19, DominantT, BLOCK_LOAD_DIRECT, LOAD_LDG, RADIX_RANK_MEMOIZE, BLOCK_SCAN_WARP_SCANS, SINGLE_TILE_RADIX_BITS> SingleTilePolicy; + + // Segmented policies + typedef AgentRadixSortDownsweepPolicy <192, 39, DominantT, BLOCK_LOAD_TRANSPOSE, LOAD_DEFAULT, RADIX_RANK_MEMOIZE, BLOCK_SCAN_WARP_SCANS, SEGMENTED_RADIX_BITS> SegmentedPolicy; + typedef AgentRadixSortDownsweepPolicy <384, 11, DominantT, BLOCK_LOAD_TRANSPOSE, LOAD_DEFAULT, RADIX_RANK_MEMOIZE, BLOCK_SCAN_WARP_SCANS, SEGMENTED_RADIX_BITS - 1> AltSegmentedPolicy; + }; + + + /// SM62 (Tegra, less RF) + struct Policy620 : ChainedPolicy<620, Policy620, Policy610> + { + enum { + PRIMARY_RADIX_BITS = 5, + ALT_RADIX_BITS = PRIMARY_RADIX_BITS - 1, + ONESWEEP = sizeof(KeyT) >= sizeof(uint32_t), + ONESWEEP_RADIX_BITS = 8, + }; + + // Histogram policy + typedef AgentRadixSortHistogramPolicy <256, 8, 8, KeyT, ONESWEEP_RADIX_BITS> HistogramPolicy; + + // Exclusive sum policy + typedef AgentRadixSortExclusiveSumPolicy <256, ONESWEEP_RADIX_BITS> ExclusiveSumPolicy; + + // Onesweep policy + typedef AgentRadixSortOnesweepPolicy <256, 30, DominantT, 2, + RADIX_RANK_MATCH_EARLY_COUNTS_ANY, BLOCK_SCAN_WARP_SCANS, + RADIX_SORT_STORE_DIRECT, ONESWEEP_RADIX_BITS> OnesweepPolicy; + + // ScanPolicy + typedef AgentScanPolicy <512, 23, OffsetT, BLOCK_LOAD_WARP_TRANSPOSE, LOAD_DEFAULT, BLOCK_STORE_WARP_TRANSPOSE, BLOCK_SCAN_RAKING_MEMOIZE> ScanPolicy; + + // Downsweep policies + typedef AgentRadixSortDownsweepPolicy <256, 16, DominantT, BLOCK_LOAD_TRANSPOSE, LOAD_DEFAULT, RADIX_RANK_MEMOIZE, BLOCK_SCAN_RAKING_MEMOIZE, PRIMARY_RADIX_BITS> DownsweepPolicy; + typedef AgentRadixSortDownsweepPolicy <256, 16, DominantT, BLOCK_LOAD_TRANSPOSE, LOAD_DEFAULT, RADIX_RANK_MEMOIZE, BLOCK_SCAN_RAKING_MEMOIZE, ALT_RADIX_BITS> AltDownsweepPolicy; + + // Upsweep policies + typedef DownsweepPolicy UpsweepPolicy; + typedef AltDownsweepPolicy AltUpsweepPolicy; + + // Single-tile policy + typedef AgentRadixSortDownsweepPolicy <256, 19, DominantT, BLOCK_LOAD_DIRECT, LOAD_LDG, RADIX_RANK_MEMOIZE, BLOCK_SCAN_WARP_SCANS, PRIMARY_RADIX_BITS> SingleTilePolicy; + + // Segmented policies + typedef DownsweepPolicy SegmentedPolicy; + typedef AltDownsweepPolicy AltSegmentedPolicy; + }; + + + /// SM70 (GV100) + struct Policy700 : ChainedPolicy<700, Policy700, Policy620> + { + enum { + PRIMARY_RADIX_BITS = (sizeof(KeyT) > 1) ? 7 : 5, // 7.62B 32b keys/s (GV100) + SINGLE_TILE_RADIX_BITS = (sizeof(KeyT) > 1) ? 6 : 5, + SEGMENTED_RADIX_BITS = (sizeof(KeyT) > 1) ? 6 : 5, // 8.7B 32b segmented keys/s (GV100) + ONESWEEP = sizeof(KeyT) >= sizeof(uint32_t), // 15.8B 32b keys/s (V100-SXM2, 64M random keys) + ONESWEEP_RADIX_BITS = 8, + OFFSET_64BIT = sizeof(OffsetT) == 8, + }; + + // Histogram policy + typedef AgentRadixSortHistogramPolicy <256, 8, 8, KeyT, ONESWEEP_RADIX_BITS> HistogramPolicy; + + // Exclusive sum policy + typedef AgentRadixSortExclusiveSumPolicy <256, ONESWEEP_RADIX_BITS> ExclusiveSumPolicy; + + // Onesweep policy + typedef AgentRadixSortOnesweepPolicy <256, + sizeof(KeyT) == 4 && sizeof(ValueT) == 4 ? 46 : 23, DominantT, 4, + RADIX_RANK_MATCH_EARLY_COUNTS_ANY, BLOCK_SCAN_WARP_SCANS, + RADIX_SORT_STORE_DIRECT, ONESWEEP_RADIX_BITS> OnesweepPolicy; + + + // ScanPolicy + typedef AgentScanPolicy <512, 23, OffsetT, BLOCK_LOAD_WARP_TRANSPOSE, LOAD_DEFAULT, BLOCK_STORE_WARP_TRANSPOSE, BLOCK_SCAN_RAKING_MEMOIZE> ScanPolicy; + + // Downsweep policies + typedef AgentRadixSortDownsweepPolicy <512, 23, DominantT, BLOCK_LOAD_TRANSPOSE, LOAD_DEFAULT, RADIX_RANK_MATCH, BLOCK_SCAN_WARP_SCANS, PRIMARY_RADIX_BITS> DownsweepPolicy; + typedef AgentRadixSortDownsweepPolicy <(sizeof(KeyT) > 1) ? 256 : 128, OFFSET_64BIT ? 46 : 47, DominantT, BLOCK_LOAD_TRANSPOSE, LOAD_DEFAULT, RADIX_RANK_MEMOIZE, BLOCK_SCAN_WARP_SCANS, PRIMARY_RADIX_BITS - 1> AltDownsweepPolicy; + + // Upsweep policies + typedef AgentRadixSortUpsweepPolicy <256, 23, DominantT, LOAD_DEFAULT, PRIMARY_RADIX_BITS> UpsweepPolicy; + typedef AgentRadixSortUpsweepPolicy <256, OFFSET_64BIT ? 46 : 47, DominantT, LOAD_DEFAULT, PRIMARY_RADIX_BITS - 1> AltUpsweepPolicy; + + // Single-tile policy + typedef AgentRadixSortDownsweepPolicy <256, 19, DominantT, BLOCK_LOAD_DIRECT, LOAD_LDG, RADIX_RANK_MEMOIZE, BLOCK_SCAN_WARP_SCANS, SINGLE_TILE_RADIX_BITS> SingleTilePolicy; + + // Segmented policies + typedef AgentRadixSortDownsweepPolicy <192, 39, DominantT, BLOCK_LOAD_TRANSPOSE, LOAD_DEFAULT, RADIX_RANK_MEMOIZE, BLOCK_SCAN_WARP_SCANS, SEGMENTED_RADIX_BITS> SegmentedPolicy; + typedef AgentRadixSortDownsweepPolicy <384, 11, DominantT, BLOCK_LOAD_TRANSPOSE, LOAD_DEFAULT, RADIX_RANK_MEMOIZE, BLOCK_SCAN_WARP_SCANS, SEGMENTED_RADIX_BITS - 1> AltSegmentedPolicy; + }; + + + /// SM80 + struct Policy800 : ChainedPolicy<800, Policy800, Policy700> + { + enum { + PRIMARY_RADIX_BITS = (sizeof(KeyT) > 1) ? 7 : 5, + SINGLE_TILE_RADIX_BITS = (sizeof(KeyT) > 1) ? 6 : 5, + SEGMENTED_RADIX_BITS = (sizeof(KeyT) > 1) ? 6 : 5, + ONESWEEP = sizeof(KeyT) >= sizeof(uint32_t), + ONESWEEP_RADIX_BITS = 8, + OFFSET_64BIT = sizeof(OffsetT) == 8, + }; + + // Histogram policy + typedef AgentRadixSortHistogramPolicy <128, 16, 1, KeyT, ONESWEEP_RADIX_BITS> HistogramPolicy; + + // Exclusive sum policy + typedef AgentRadixSortExclusiveSumPolicy <256, ONESWEEP_RADIX_BITS> ExclusiveSumPolicy; + + // Onesweep policy + typedef AgentRadixSortOnesweepPolicy <384, + OFFSET_64BIT && sizeof(KeyT) == 4 && !KEYS_ONLY ? 17 : 21, DominantT, 1, + RADIX_RANK_MATCH_EARLY_COUNTS_ANY, BLOCK_SCAN_RAKING_MEMOIZE, + RADIX_SORT_STORE_DIRECT, ONESWEEP_RADIX_BITS> OnesweepPolicy; + + // ScanPolicy + typedef AgentScanPolicy <512, 23, OffsetT, BLOCK_LOAD_WARP_TRANSPOSE, LOAD_DEFAULT, BLOCK_STORE_WARP_TRANSPOSE, BLOCK_SCAN_RAKING_MEMOIZE> ScanPolicy; + + // Downsweep policies + typedef AgentRadixSortDownsweepPolicy <512, 23, DominantT, BLOCK_LOAD_TRANSPOSE, LOAD_DEFAULT, RADIX_RANK_MATCH, BLOCK_SCAN_WARP_SCANS, PRIMARY_RADIX_BITS> DownsweepPolicy; + typedef AgentRadixSortDownsweepPolicy <(sizeof(KeyT) > 1) ? 256 : 128, 47, DominantT, BLOCK_LOAD_TRANSPOSE, LOAD_DEFAULT, RADIX_RANK_MEMOIZE, BLOCK_SCAN_WARP_SCANS, PRIMARY_RADIX_BITS - 1> AltDownsweepPolicy; + + // Upsweep policies + typedef AgentRadixSortUpsweepPolicy <256, 23, DominantT, LOAD_DEFAULT, PRIMARY_RADIX_BITS> UpsweepPolicy; + typedef AgentRadixSortUpsweepPolicy <256, 47, DominantT, LOAD_DEFAULT, PRIMARY_RADIX_BITS - 1> AltUpsweepPolicy; + + // Single-tile policy + typedef AgentRadixSortDownsweepPolicy <256, 19, DominantT, BLOCK_LOAD_DIRECT, LOAD_LDG, RADIX_RANK_MEMOIZE, BLOCK_SCAN_WARP_SCANS, SINGLE_TILE_RADIX_BITS> SingleTilePolicy; + + // Segmented policies + typedef AgentRadixSortDownsweepPolicy <192, 39, DominantT, BLOCK_LOAD_TRANSPOSE, LOAD_DEFAULT, RADIX_RANK_MEMOIZE, BLOCK_SCAN_WARP_SCANS, SEGMENTED_RADIX_BITS> SegmentedPolicy; + typedef AgentRadixSortDownsweepPolicy <384, 11, DominantT, BLOCK_LOAD_TRANSPOSE, LOAD_DEFAULT, RADIX_RANK_MEMOIZE, BLOCK_SCAN_WARP_SCANS, SEGMENTED_RADIX_BITS - 1> AltSegmentedPolicy; + }; + + /// SM90 + struct Policy900 : ChainedPolicy<900, Policy900, Policy800> + { + enum { + PRIMARY_RADIX_BITS = (sizeof(KeyT) > 1) ? 7 : 5, + SINGLE_TILE_RADIX_BITS = (sizeof(KeyT) > 1) ? 6 : 5, + SEGMENTED_RADIX_BITS = (sizeof(KeyT) > 1) ? 6 : 5, + ONESWEEP = true, + ONESWEEP_RADIX_BITS = 8, + OFFSET_64BIT = sizeof(OffsetT) == 8 ? 1 : 0, + FLOAT_KEYS = std::is_same::value ? 1 : 0, + }; + + using HistogramPolicy = + AgentRadixSortHistogramPolicy<128, 16, 1, KeyT, ONESWEEP_RADIX_BITS>; + using ExclusiveSumPolicy = AgentRadixSortExclusiveSumPolicy<256, ONESWEEP_RADIX_BITS>; + + using OnesweepPolicyKey32 = + AgentRadixSortOnesweepPolicy<384, + KEYS_ONLY ? 20 - OFFSET_64BIT - FLOAT_KEYS + : (sizeof(ValueT) < 8 ? (OFFSET_64BIT ? 17 : 23) + : (OFFSET_64BIT ? 29 : 30)), + DominantT, + 1, + RADIX_RANK_MATCH_EARLY_COUNTS_ANY, + BLOCK_SCAN_RAKING_MEMOIZE, + RADIX_SORT_STORE_DIRECT, + ONESWEEP_RADIX_BITS>; + + using OnesweepPolicyKey64 = AgentRadixSortOnesweepPolicy<384, + sizeof(ValueT) < 8 ? 30 : 24, + DominantT, + 1, + RADIX_RANK_MATCH_EARLY_COUNTS_ANY, + BLOCK_SCAN_RAKING_MEMOIZE, + RADIX_SORT_STORE_DIRECT, + ONESWEEP_RADIX_BITS>; + + using OnesweepLargeKeyPolicy = // + cub::detail::conditional_t; + + using OnesweepSmallKeyPolicySizes = // + detail::radix::sm90_small_key_tuning; + using OnesweepSmallKeyPolicy = AgentRadixSortOnesweepPolicy; + using OnesweepPolicy = // + cub::detail::conditional_t; + + using ScanPolicy = AgentScanPolicy<512, + 23, + OffsetT, + BLOCK_LOAD_WARP_TRANSPOSE, + LOAD_DEFAULT, + BLOCK_STORE_WARP_TRANSPOSE, + BLOCK_SCAN_RAKING_MEMOIZE>; + + using DownsweepPolicy = AgentRadixSortDownsweepPolicy<512, + 23, + DominantT, + BLOCK_LOAD_TRANSPOSE, + LOAD_DEFAULT, + RADIX_RANK_MATCH, + BLOCK_SCAN_WARP_SCANS, + PRIMARY_RADIX_BITS>; + + using AltDownsweepPolicy = AgentRadixSortDownsweepPolicy<(sizeof(KeyT) > 1) ? 256 : 128, + 47, + DominantT, + BLOCK_LOAD_TRANSPOSE, + LOAD_DEFAULT, + RADIX_RANK_MEMOIZE, + BLOCK_SCAN_WARP_SCANS, + PRIMARY_RADIX_BITS - 1>; + + using UpsweepPolicy = + AgentRadixSortUpsweepPolicy<256, 23, DominantT, LOAD_DEFAULT, PRIMARY_RADIX_BITS>; + using AltUpsweepPolicy = + AgentRadixSortUpsweepPolicy<256, 47, DominantT, LOAD_DEFAULT, PRIMARY_RADIX_BITS - 1>; + + using SingleTilePolicy = AgentRadixSortDownsweepPolicy<256, + 19, + DominantT, + BLOCK_LOAD_DIRECT, + LOAD_LDG, + RADIX_RANK_MEMOIZE, + BLOCK_SCAN_WARP_SCANS, + SINGLE_TILE_RADIX_BITS>; + + using SegmentedPolicy = AgentRadixSortDownsweepPolicy<192, + 39, + DominantT, + BLOCK_LOAD_TRANSPOSE, + LOAD_DEFAULT, + RADIX_RANK_MEMOIZE, + BLOCK_SCAN_WARP_SCANS, + SEGMENTED_RADIX_BITS>; + + using AltSegmentedPolicy = AgentRadixSortDownsweepPolicy<384, + 11, + DominantT, + BLOCK_LOAD_TRANSPOSE, + LOAD_DEFAULT, + RADIX_RANK_MEMOIZE, + BLOCK_SCAN_WARP_SCANS, + SEGMENTED_RADIX_BITS - 1>; + }; + + + using MaxPolicy = Policy900; +}; + + + +/****************************************************************************** + * Single-problem dispatch + ******************************************************************************/ + +/** + * Utility class for dispatching the appropriately-tuned kernels for device-wide radix sort + * + * @tparam IS_DESCENDING + * Whether or not the sorted-order is high-to-low + * + * @tparam KeyT + * Key type + * + * @tparam ValueT + * Value type + * + * @tparam OffsetT + * Signed integer type for global offsets + * + * @tparam DecomposerT + * Implementation detail, do not specify directly, requirements on the + * content of this type are subject to breaking change. + */ +template , + typename DecomposerT = detail::identity_decomposer_t> +struct DispatchRadixSort : SelectedPolicy +{ + //------------------------------------------------------------------------------ + // Constants + //------------------------------------------------------------------------------ + + // Whether this is a keys-only (or key-value) sort + constexpr static bool KEYS_ONLY = std::is_same::value; + + //------------------------------------------------------------------------------ + // Problem state + //------------------------------------------------------------------------------ + + void *d_temp_storage; ///< [in] Device-accessible allocation of temporary storage. When NULL, the required allocation size is written to \p temp_storage_bytes and no work is done. + size_t &temp_storage_bytes; ///< [in,out] Reference to size in bytes of \p d_temp_storage allocation + DoubleBuffer &d_keys; ///< [in,out] Double-buffer whose current buffer contains the unsorted input keys and, upon return, is updated to point to the sorted output keys + DoubleBuffer &d_values; ///< [in,out] Double-buffer whose current buffer contains the unsorted input values and, upon return, is updated to point to the sorted output values + OffsetT num_items; ///< [in] Number of items to sort + int begin_bit; ///< [in] The beginning (least-significant) bit index needed for key comparison + int end_bit; ///< [in] The past-the-end (most-significant) bit index needed for key comparison + cudaStream_t stream; ///< [in] CUDA stream to launch kernels within. Default is stream0. + int ptx_version; ///< [in] PTX version + bool is_overwrite_okay; ///< [in] Whether is okay to overwrite source buffers + DecomposerT decomposer; + + + //------------------------------------------------------------------------------ + // Constructor + //------------------------------------------------------------------------------ + + /// Constructor + CUB_RUNTIME_FUNCTION __forceinline__ + DispatchRadixSort( + void* d_temp_storage, + size_t &temp_storage_bytes, + DoubleBuffer &d_keys, + DoubleBuffer &d_values, + OffsetT num_items, + int begin_bit, + int end_bit, + bool is_overwrite_okay, + cudaStream_t stream, + int ptx_version, + DecomposerT decomposer = {}) + : + d_temp_storage(d_temp_storage), + temp_storage_bytes(temp_storage_bytes), + d_keys(d_keys), + d_values(d_values), + num_items(num_items), + begin_bit(begin_bit), + end_bit(end_bit), + stream(stream), + ptx_version(ptx_version), + is_overwrite_okay(is_overwrite_okay), + decomposer(decomposer) + {} + + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION __forceinline__ + DispatchRadixSort( + void* d_temp_storage, + size_t &temp_storage_bytes, + DoubleBuffer &d_keys, + DoubleBuffer &d_values, + OffsetT num_items, + int begin_bit, + int end_bit, + bool is_overwrite_okay, + cudaStream_t stream, + bool debug_synchronous, + int ptx_version) + : + d_temp_storage(d_temp_storage), + temp_storage_bytes(temp_storage_bytes), + d_keys(d_keys), + d_values(d_values), + num_items(num_items), + begin_bit(begin_bit), + end_bit(end_bit), + stream(stream), + ptx_version(ptx_version), + is_overwrite_okay(is_overwrite_okay) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + } + + + //------------------------------------------------------------------------------ + // Small-problem (single tile) invocation + //------------------------------------------------------------------------------ + + /// Invoke a single block to sort in-core + template < + typename ActivePolicyT, ///< Umbrella policy active for the target device + typename SingleTileKernelT> ///< Function type of cub::DeviceRadixSortSingleTileKernel + CUB_RUNTIME_FUNCTION __forceinline__ + cudaError_t InvokeSingleTile( + SingleTileKernelT single_tile_kernel) ///< [in] Kernel function pointer to parameterization of cub::DeviceRadixSortSingleTileKernel + { + cudaError error = cudaSuccess; + do + { + // Return if the caller is simply requesting the size of the storage allocation + if (d_temp_storage == NULL) + { + temp_storage_bytes = 1; + break; + } + + // Log single_tile_kernel configuration + #ifdef CUB_DETAIL_DEBUG_ENABLE_LOG + _CubLog("Invoking single_tile_kernel<<<%d, %d, 0, %lld>>>(), %d items per thread, %d SM occupancy, current bit %d, bit_grain %d\n", + 1, ActivePolicyT::SingleTilePolicy::BLOCK_THREADS, (long long) stream, + ActivePolicyT::SingleTilePolicy::ITEMS_PER_THREAD, 1, begin_bit, ActivePolicyT::SingleTilePolicy::RADIX_BITS); + #endif + + // Invoke upsweep_kernel with same grid size as downsweep_kernel + THRUST_NS_QUALIFIER::cuda_cub::launcher::triple_chevron( + 1, ActivePolicyT::SingleTilePolicy::BLOCK_THREADS, 0, stream + ).doit(single_tile_kernel, + d_keys.Current(), + d_keys.Alternate(), + d_values.Current(), + d_values.Alternate(), + num_items, + begin_bit, + end_bit, + decomposer); + + // Check for failure to launch + if (CubDebug(error = cudaPeekAtLastError())) + { + break; + } + + // Sync the stream if specified to flush runtime errors + error = detail::DebugSyncStream(stream); + if (CubDebug(error)) + { + break; + } + + // Update selector + d_keys.selector ^= 1; + d_values.selector ^= 1; + } + while (0); + + return error; + } + + + //------------------------------------------------------------------------------ + // Normal problem size invocation + //------------------------------------------------------------------------------ + + /** + * Invoke a three-kernel sorting pass at the current bit. + */ + template + CUB_RUNTIME_FUNCTION __forceinline__ + cudaError_t InvokePass( + const KeyT *d_keys_in, + KeyT *d_keys_out, + const ValueT *d_values_in, + ValueT *d_values_out, + OffsetT *d_spine, + int /*spine_length*/, + int ¤t_bit, + PassConfigT &pass_config) + { + cudaError error = cudaSuccess; + do + { + int pass_bits = CUB_MIN(pass_config.radix_bits, (end_bit - current_bit)); + + // Log upsweep_kernel configuration + #ifdef CUB_DETAIL_DEBUG_ENABLE_LOG + _CubLog("Invoking upsweep_kernel<<<%d, %d, 0, %lld>>>(), %d items per thread, %d SM occupancy, current bit %d, bit_grain %d\n", + pass_config.even_share.grid_size, pass_config.upsweep_config.block_threads, (long long) stream, + pass_config.upsweep_config.items_per_thread, pass_config.upsweep_config.sm_occupancy, current_bit, pass_bits); + #endif + + // Spine length written by the upsweep kernel in the current pass. + int pass_spine_length = pass_config.even_share.grid_size * pass_config.radix_digits; + + // Invoke upsweep_kernel with same grid size as downsweep_kernel + THRUST_NS_QUALIFIER::cuda_cub::launcher::triple_chevron( + pass_config.even_share.grid_size, + pass_config.upsweep_config.block_threads, 0, stream + ).doit(pass_config.upsweep_kernel, + d_keys_in, + d_spine, + num_items, + current_bit, + pass_bits, + pass_config.even_share, + decomposer); + + // Check for failure to launch + if (CubDebug(error = cudaPeekAtLastError())) + { + break; + } + + // Sync the stream if specified to flush runtime errors + error = detail::DebugSyncStream(stream); + if (CubDebug(error)) + { + break; + } + + // Log scan_kernel configuration + #ifdef CUB_DETAIL_DEBUG_ENABLE_LOG + _CubLog("Invoking scan_kernel<<<%d, %d, 0, %lld>>>(), %d items per thread\n", + 1, pass_config.scan_config.block_threads, (long long) stream, pass_config.scan_config.items_per_thread); + #endif + + // Invoke scan_kernel + THRUST_NS_QUALIFIER::cuda_cub::launcher::triple_chevron( + 1, pass_config.scan_config.block_threads, 0, stream + ).doit(pass_config.scan_kernel, + d_spine, + pass_spine_length); + + // Check for failure to launch + if (CubDebug(error = cudaPeekAtLastError())) + { + break; + } + + // Sync the stream if specified to flush runtime errors + error = detail::DebugSyncStream(stream); + if (CubDebug(error)) + { + break; + } + + // Log downsweep_kernel configuration + #ifdef CUB_DETAIL_DEBUG_ENABLE_LOG + _CubLog("Invoking downsweep_kernel<<<%d, %d, 0, %lld>>>(), %d items per thread, %d SM occupancy\n", + pass_config.even_share.grid_size, pass_config.downsweep_config.block_threads, (long long) stream, + pass_config.downsweep_config.items_per_thread, pass_config.downsweep_config.sm_occupancy); + #endif + + // Invoke downsweep_kernel + THRUST_NS_QUALIFIER::cuda_cub::launcher::triple_chevron( + pass_config.even_share.grid_size, + pass_config.downsweep_config.block_threads, 0, stream + ).doit(pass_config.downsweep_kernel, + d_keys_in, + d_keys_out, + d_values_in, + d_values_out, + d_spine, + num_items, + current_bit, + pass_bits, + pass_config.even_share, + decomposer); + + // Check for failure to launch + if (CubDebug(error = cudaPeekAtLastError())) + { + break; + } + + // Sync the stream if specified to flush runtime errors + error = detail::DebugSyncStream(stream); + if (CubDebug(error)) + { + break; + } + + // Update current bit + current_bit += pass_bits; + } + while (0); + + return error; + } + + + + /// Pass configuration structure + template < + typename UpsweepKernelT, + typename ScanKernelT, + typename DownsweepKernelT> + struct PassConfig + { + UpsweepKernelT upsweep_kernel; + KernelConfig upsweep_config; + ScanKernelT scan_kernel; + KernelConfig scan_config; + DownsweepKernelT downsweep_kernel; + KernelConfig downsweep_config; + int radix_bits; + int radix_digits; + int max_downsweep_grid_size; + GridEvenShare even_share; + + /// Initialize pass configuration + template < + typename UpsweepPolicyT, + typename ScanPolicyT, + typename DownsweepPolicyT> + CUB_RUNTIME_FUNCTION __forceinline__ + cudaError_t InitPassConfig( + UpsweepKernelT upsweep_kernel, + ScanKernelT scan_kernel, + DownsweepKernelT downsweep_kernel, + int /*ptx_version*/, + int sm_count, + OffsetT num_items) + { + cudaError error = cudaSuccess; + do + { + this->upsweep_kernel = upsweep_kernel; + this->scan_kernel = scan_kernel; + this->downsweep_kernel = downsweep_kernel; + radix_bits = DownsweepPolicyT::RADIX_BITS; + radix_digits = 1 << radix_bits; + + if (CubDebug(error = upsweep_config.Init(upsweep_kernel))) break; + if (CubDebug(error = scan_config.Init(scan_kernel))) break; + if (CubDebug(error = downsweep_config.Init(downsweep_kernel))) break; + + max_downsweep_grid_size = (downsweep_config.sm_occupancy * sm_count) * CUB_SUBSCRIPTION_FACTOR(0); + + even_share.DispatchInit( + num_items, + max_downsweep_grid_size, + CUB_MAX(downsweep_config.tile_size, upsweep_config.tile_size)); + + } + while (0); + return error; + } + + }; + + template + CUB_RUNTIME_FUNCTION __forceinline__ + cudaError_t InvokeOnesweep() + { + typedef typename DispatchRadixSort::MaxPolicy MaxPolicyT; + // PortionOffsetT is used for offsets within a portion, and must be signed. + typedef int PortionOffsetT; + typedef PortionOffsetT AtomicOffsetT; + + // compute temporary storage size + const int RADIX_BITS = ActivePolicyT::ONESWEEP_RADIX_BITS; + const int RADIX_DIGITS = 1 << RADIX_BITS; + const int ONESWEEP_ITEMS_PER_THREAD = ActivePolicyT::OnesweepPolicy::ITEMS_PER_THREAD; + const int ONESWEEP_BLOCK_THREADS = ActivePolicyT::OnesweepPolicy::BLOCK_THREADS; + const int ONESWEEP_TILE_ITEMS = ONESWEEP_ITEMS_PER_THREAD * ONESWEEP_BLOCK_THREADS; + // portions handle inputs with >=2**30 elements, due to the way lookback works + // for testing purposes, one portion is <= 2**28 elements + const PortionOffsetT PORTION_SIZE = ((1 << 28) - 1) / ONESWEEP_TILE_ITEMS * ONESWEEP_TILE_ITEMS; + int num_passes = cub::DivideAndRoundUp(end_bit - begin_bit, RADIX_BITS); + OffsetT num_portions = static_cast(cub::DivideAndRoundUp(num_items, PORTION_SIZE)); + PortionOffsetT max_num_blocks = cub::DivideAndRoundUp( + static_cast( + CUB_MIN(num_items, static_cast(PORTION_SIZE))), + ONESWEEP_TILE_ITEMS); + + size_t value_size = KEYS_ONLY ? 0 : sizeof(ValueT); + size_t allocation_sizes[] = + { + // bins + num_portions * num_passes * RADIX_DIGITS * sizeof(OffsetT), + // lookback + max_num_blocks * RADIX_DIGITS * sizeof(AtomicOffsetT), + // extra key buffer + is_overwrite_okay || num_passes <= 1 ? 0 : num_items * sizeof(KeyT), + // extra value buffer + is_overwrite_okay || num_passes <= 1 ? 0 : num_items * value_size, + // counters + num_portions * num_passes * sizeof(AtomicOffsetT), + }; + const int NUM_ALLOCATIONS = sizeof(allocation_sizes) / sizeof(allocation_sizes[0]); + void* allocations[NUM_ALLOCATIONS] = {}; + AliasTemporaries(d_temp_storage, temp_storage_bytes, + allocations, allocation_sizes); + + // just return if no temporary storage is provided + cudaError_t error = cudaSuccess; + if (d_temp_storage == NULL) return error; + + OffsetT* d_bins = (OffsetT*)allocations[0]; + AtomicOffsetT* d_lookback = (AtomicOffsetT*)allocations[1]; + KeyT* d_keys_tmp2 = (KeyT*)allocations[2]; + ValueT* d_values_tmp2 = (ValueT*)allocations[3]; + AtomicOffsetT* d_ctrs = (AtomicOffsetT*)allocations[4]; + + do { + // initialization + if (CubDebug(error = cudaMemsetAsync( + d_ctrs, 0, num_portions * num_passes * sizeof(AtomicOffsetT), stream))) break; + + // compute num_passes histograms with RADIX_DIGITS bins each + if (CubDebug(error = cudaMemsetAsync + (d_bins, 0, num_passes * RADIX_DIGITS * sizeof(OffsetT), stream))) break; + int device = -1; + int num_sms = 0; + if (CubDebug(error = cudaGetDevice(&device))) break; + if (CubDebug(error = cudaDeviceGetAttribute( + &num_sms, cudaDevAttrMultiProcessorCount, device))) break; + + const int HISTO_BLOCK_THREADS = ActivePolicyT::HistogramPolicy::BLOCK_THREADS; + int histo_blocks_per_sm = 1; + auto histogram_kernel = DeviceRadixSortHistogramKernel< + MaxPolicyT, IS_DESCENDING, KeyT, OffsetT, DecomposerT>; + if (CubDebug(error = cudaOccupancyMaxActiveBlocksPerMultiprocessor( + &histo_blocks_per_sm, histogram_kernel, HISTO_BLOCK_THREADS, 0))) break; + + // log histogram_kernel configuration + #ifdef CUB_DETAIL_DEBUG_ENABLE_LOG + _CubLog("Invoking histogram_kernel<<<%d, %d, 0, %lld>>>(), %d items per iteration, " + "%d SM occupancy, bit_grain %d\n", + histo_blocks_per_sm * num_sms, HISTO_BLOCK_THREADS, + reinterpret_cast(stream), + ActivePolicyT::HistogramPolicy::ITEMS_PER_THREAD, histo_blocks_per_sm, + ActivePolicyT::HistogramPolicy::RADIX_BITS); + #endif + + error = THRUST_NS_QUALIFIER::cuda_cub::launcher::triple_chevron( + histo_blocks_per_sm * num_sms, HISTO_BLOCK_THREADS, 0, stream + ).doit(histogram_kernel, + d_bins, d_keys.Current(), num_items, begin_bit, end_bit, decomposer); + if (CubDebug(error)) + { + break; + } + + error = detail::DebugSyncStream(stream); + if (CubDebug(error)) + { + break; + } + + // exclusive sums to determine starts + const int SCAN_BLOCK_THREADS = ActivePolicyT::ExclusiveSumPolicy::BLOCK_THREADS; + + // log exclusive_sum_kernel configuration + #ifdef CUB_DETAIL_DEBUG_ENABLE_LOG + _CubLog("Invoking exclusive_sum_kernel<<<%d, %d, 0, %lld>>>(), bit_grain %d\n", + num_passes, SCAN_BLOCK_THREADS, reinterpret_cast(stream), + ActivePolicyT::ExclusiveSumPolicy::RADIX_BITS); + #endif + + error = THRUST_NS_QUALIFIER::cuda_cub::launcher::triple_chevron( + num_passes, SCAN_BLOCK_THREADS, 0, stream + ).doit(DeviceRadixSortExclusiveSumKernel, + d_bins); + if (CubDebug(error)) + { + break; + } + + error = detail::DebugSyncStream(stream); + if (CubDebug(error)) + { + break; + } + + // use the other buffer if no overwrite is allowed + KeyT* d_keys_tmp = d_keys.Alternate(); + ValueT* d_values_tmp = d_values.Alternate(); + if (!is_overwrite_okay && num_passes % 2 == 0) + { + d_keys.d_buffers[1] = d_keys_tmp2; + d_values.d_buffers[1] = d_values_tmp2; + } + + for (int current_bit = begin_bit, pass = 0; current_bit < end_bit; + current_bit += RADIX_BITS, ++pass) + { + int num_bits = CUB_MIN(end_bit - current_bit, RADIX_BITS); + for (OffsetT portion = 0; portion < num_portions; ++portion) + { + PortionOffsetT portion_num_items = + static_cast( + CUB_MIN(num_items - portion * PORTION_SIZE, + static_cast(PORTION_SIZE))); + PortionOffsetT num_blocks = + cub::DivideAndRoundUp(portion_num_items, ONESWEEP_TILE_ITEMS); + if (CubDebug(error = cudaMemsetAsync( + d_lookback, 0, num_blocks * RADIX_DIGITS * sizeof(AtomicOffsetT), + stream))) break; + + // log onesweep_kernel configuration + #ifdef CUB_DETAIL_DEBUG_ENABLE_LOG + _CubLog("Invoking onesweep_kernel<<<%d, %d, 0, %lld>>>(), %d items per thread, " + "current bit %d, bit_grain %d, portion %d/%d\n", + num_blocks, ONESWEEP_BLOCK_THREADS, reinterpret_cast(stream), + ActivePolicyT::OnesweepPolicy::ITEMS_PER_THREAD, current_bit, + num_bits, static_cast(portion), static_cast(num_portions)); + #endif + + auto onesweep_kernel = DeviceRadixSortOnesweepKernel< + MaxPolicyT, IS_DESCENDING, KeyT, ValueT, OffsetT, PortionOffsetT, AtomicOffsetT, DecomposerT>; + + error = THRUST_NS_QUALIFIER::cuda_cub::launcher::triple_chevron( + num_blocks, ONESWEEP_BLOCK_THREADS, 0, stream + ).doit(onesweep_kernel, + d_lookback, d_ctrs + portion * num_passes + pass, + portion < num_portions - 1 ? + d_bins + ((portion + 1) * num_passes + pass) * RADIX_DIGITS : NULL, + d_bins + (portion * num_passes + pass) * RADIX_DIGITS, + d_keys.Alternate(), + d_keys.Current() + portion * PORTION_SIZE, + d_values.Alternate(), + d_values.Current() + portion * PORTION_SIZE, + portion_num_items, current_bit, num_bits, + decomposer); + if (CubDebug(error)) + { + break; + } + + error = detail::DebugSyncStream(stream); + if (CubDebug(error)) + { + break; + } + } + + if (error != cudaSuccess) + { + break; + } + + // use the temporary buffers if no overwrite is allowed + if (!is_overwrite_okay && pass == 0) + { + d_keys = num_passes % 2 == 0 ? + DoubleBuffer(d_keys_tmp, d_keys_tmp2) : + DoubleBuffer(d_keys_tmp2, d_keys_tmp); + d_values = num_passes % 2 == 0 ? + DoubleBuffer(d_values_tmp, d_values_tmp2) : + DoubleBuffer(d_values_tmp2, d_values_tmp); + } + d_keys.selector ^= 1; + d_values.selector ^= 1; + } + } while (0); + + return error; + } + + /// Invocation (run multiple digit passes) + template < + typename ActivePolicyT, ///< Umbrella policy active for the target device + typename UpsweepKernelT, ///< Function type of cub::DeviceRadixSortUpsweepKernel + typename ScanKernelT, ///< Function type of cub::SpineScanKernel + typename DownsweepKernelT> ///< Function type of cub::DeviceRadixSortDownsweepKernel + CUB_RUNTIME_FUNCTION __forceinline__ + cudaError_t InvokePasses( + UpsweepKernelT upsweep_kernel, ///< [in] Kernel function pointer to parameterization of cub::DeviceRadixSortUpsweepKernel + UpsweepKernelT alt_upsweep_kernel, ///< [in] Alternate kernel function pointer to parameterization of cub::DeviceRadixSortUpsweepKernel + ScanKernelT scan_kernel, ///< [in] Kernel function pointer to parameterization of cub::SpineScanKernel + DownsweepKernelT downsweep_kernel, ///< [in] Kernel function pointer to parameterization of cub::DeviceRadixSortDownsweepKernel + DownsweepKernelT alt_downsweep_kernel) ///< [in] Alternate kernel function pointer to parameterization of cub::DeviceRadixSortDownsweepKernel + { + cudaError error = cudaSuccess; + do + { + // Get device ordinal + int device_ordinal; + if (CubDebug(error = cudaGetDevice(&device_ordinal))) break; + + // Get SM count + int sm_count; + if (CubDebug(error = cudaDeviceGetAttribute (&sm_count, cudaDevAttrMultiProcessorCount, device_ordinal))) break; + + // Init regular and alternate-digit kernel configurations + PassConfig pass_config, alt_pass_config; + error = pass_config.template InitPassConfig< + typename ActivePolicyT::UpsweepPolicy, + typename ActivePolicyT::ScanPolicy, + typename ActivePolicyT::DownsweepPolicy>(upsweep_kernel, + scan_kernel, + downsweep_kernel, + ptx_version, + sm_count, + num_items); + if (error) + { + break; + } + + error = alt_pass_config.template InitPassConfig< + typename ActivePolicyT::AltUpsweepPolicy, + typename ActivePolicyT::ScanPolicy, + typename ActivePolicyT::AltDownsweepPolicy>(alt_upsweep_kernel, + scan_kernel, + alt_downsweep_kernel, + ptx_version, + sm_count, + num_items); + if (error) + { + break; + } + + // Get maximum spine length + int max_grid_size = CUB_MAX(pass_config.max_downsweep_grid_size, alt_pass_config.max_downsweep_grid_size); + int spine_length = (max_grid_size * pass_config.radix_digits) + pass_config.scan_config.tile_size; + + // Temporary storage allocation requirements + void* allocations[3] = {}; + size_t allocation_sizes[3] = + { + spine_length * sizeof(OffsetT), // bytes needed for privatized block digit histograms + (is_overwrite_okay) ? 0 : num_items * sizeof(KeyT), // bytes needed for 3rd keys buffer + (is_overwrite_okay || (KEYS_ONLY)) ? 0 : num_items * sizeof(ValueT), // bytes needed for 3rd values buffer + }; + + // Alias the temporary allocations from the single storage blob (or compute the necessary size of the blob) + if (CubDebug(error = AliasTemporaries(d_temp_storage, temp_storage_bytes, allocations, allocation_sizes))) break; + + // Return if the caller is simply requesting the size of the storage allocation + if (d_temp_storage == NULL) + return cudaSuccess; + + // Pass planning. Run passes of the alternate digit-size configuration until we have an even multiple of our preferred digit size + int num_bits = end_bit - begin_bit; + int num_passes = cub::DivideAndRoundUp(num_bits, pass_config.radix_bits); + bool is_num_passes_odd = num_passes & 1; + int max_alt_passes = (num_passes * pass_config.radix_bits) - num_bits; + int alt_end_bit = CUB_MIN(end_bit, begin_bit + (max_alt_passes * alt_pass_config.radix_bits)); + + // Alias the temporary storage allocations + OffsetT *d_spine = static_cast(allocations[0]); + + DoubleBuffer d_keys_remaining_passes( + (is_overwrite_okay || is_num_passes_odd) ? d_keys.Alternate() : static_cast(allocations[1]), + (is_overwrite_okay) ? d_keys.Current() : (is_num_passes_odd) ? static_cast(allocations[1]) : d_keys.Alternate()); + + DoubleBuffer d_values_remaining_passes( + (is_overwrite_okay || is_num_passes_odd) ? d_values.Alternate() : static_cast(allocations[2]), + (is_overwrite_okay) ? d_values.Current() : (is_num_passes_odd) ? static_cast(allocations[2]) : d_values.Alternate()); + + // Run first pass, consuming from the input's current buffers + int current_bit = begin_bit; + if (CubDebug(error = InvokePass( + d_keys.Current(), d_keys_remaining_passes.Current(), + d_values.Current(), d_values_remaining_passes.Current(), + d_spine, spine_length, current_bit, + (current_bit < alt_end_bit) ? alt_pass_config : pass_config))) break; + + // Run remaining passes + while (current_bit < end_bit) + { + if (CubDebug(error = InvokePass( + d_keys_remaining_passes.d_buffers[d_keys_remaining_passes.selector], d_keys_remaining_passes.d_buffers[d_keys_remaining_passes.selector ^ 1], + d_values_remaining_passes.d_buffers[d_keys_remaining_passes.selector], d_values_remaining_passes.d_buffers[d_keys_remaining_passes.selector ^ 1], + d_spine, spine_length, current_bit, + (current_bit < alt_end_bit) ? alt_pass_config : pass_config))) break;; + + // Invert selectors + d_keys_remaining_passes.selector ^= 1; + d_values_remaining_passes.selector ^= 1; + } + + // Update selector + if (!is_overwrite_okay) { + num_passes = 1; // Sorted data always ends up in the other vector + } + + d_keys.selector = (d_keys.selector + num_passes) & 1; + d_values.selector = (d_values.selector + num_passes) & 1; + } + while (0); + + return error; + } + + + //------------------------------------------------------------------------------ + // Chained policy invocation + //------------------------------------------------------------------------------ + + template + CUB_RUNTIME_FUNCTION __forceinline__ + cudaError_t InvokeManyTiles(Int2Type) + { + // Invoke upsweep-downsweep + typedef typename DispatchRadixSort::MaxPolicy MaxPolicyT; + return InvokePasses( + DeviceRadixSortUpsweepKernel< MaxPolicyT, false, IS_DESCENDING, KeyT, OffsetT, DecomposerT>, + DeviceRadixSortUpsweepKernel< MaxPolicyT, true, IS_DESCENDING, KeyT, OffsetT, DecomposerT>, + RadixSortScanBinsKernel< MaxPolicyT, OffsetT>, + DeviceRadixSortDownsweepKernel< MaxPolicyT, false, IS_DESCENDING, KeyT, ValueT, OffsetT, DecomposerT>, + DeviceRadixSortDownsweepKernel< MaxPolicyT, true, IS_DESCENDING, KeyT, ValueT, OffsetT, DecomposerT>); + } + + template + CUB_RUNTIME_FUNCTION __forceinline__ + cudaError_t InvokeManyTiles(Int2Type) + { + // Invoke onesweep + return InvokeOnesweep(); + } + + CUB_RUNTIME_FUNCTION __forceinline__ + cudaError_t InvokeCopy() + { + // is_overwrite_okay == false here + // Return the number of temporary bytes if requested + if (d_temp_storage == nullptr) + { + temp_storage_bytes = 1; + return cudaSuccess; + } + + // Copy keys + #ifdef CUB_DETAIL_DEBUG_ENABLE_LOG + _CubLog("Invoking async copy of %lld keys on stream %lld\n", (long long)num_items, + (long long)stream); + #endif + cudaError_t error = cudaSuccess; + error = cudaMemcpyAsync(d_keys.Alternate(), d_keys.Current(), num_items * sizeof(KeyT), + cudaMemcpyDefault, stream); + if (CubDebug(error)) + { + return error; + } + if (CubDebug(error = detail::DebugSyncStream(stream))) + { + return error; + } + d_keys.selector ^= 1; + + // Copy values if necessary + if (!KEYS_ONLY) + { + #ifdef CUB_DETAIL_DEBUG_ENABLE_LOG + _CubLog("Invoking async copy of %lld values on stream %lld\n", + (long long)num_items, (long long)stream); + #endif + error = cudaMemcpyAsync(d_values.Alternate(), d_values.Current(), + num_items * sizeof(ValueT), cudaMemcpyDefault, stream); + if (CubDebug(error)) + { + return error; + } + if (CubDebug(error = detail::DebugSyncStream(stream))) + { + return error; + } + } + d_values.selector ^= 1; + + return error; + } + + /// Invocation + template + CUB_RUNTIME_FUNCTION __forceinline__ + cudaError_t Invoke() + { + typedef typename DispatchRadixSort::MaxPolicy MaxPolicyT; + typedef typename ActivePolicyT::SingleTilePolicy SingleTilePolicyT; + + // Return if empty problem, or if no bits to sort and double-buffering is used + if (num_items == 0 || (begin_bit == end_bit && is_overwrite_okay)) + { + if (d_temp_storage == nullptr) + { + temp_storage_bytes = 1; + } + return cudaSuccess; + } + + // Check if simple copy suffices (is_overwrite_okay == false at this point) + if (begin_bit == end_bit) + { + bool has_uva = false; + cudaError_t error = detail::HasUVA(has_uva); + if (error != cudaSuccess) return error; + if (has_uva) + { + return InvokeCopy(); + } + } + + // Force kernel code-generation in all compiler passes + if (num_items <= (SingleTilePolicyT::BLOCK_THREADS * SingleTilePolicyT::ITEMS_PER_THREAD)) + { + // Small, single tile size + return InvokeSingleTile( + DeviceRadixSortSingleTileKernel); + } + else + { + // Regular size + return InvokeManyTiles(Int2Type()); + } + } + + + //------------------------------------------------------------------------------ + // Dispatch entrypoints + //------------------------------------------------------------------------------ + + /** + * Internal dispatch routine + */ + CUB_RUNTIME_FUNCTION __forceinline__ + static cudaError_t Dispatch( + void* d_temp_storage, ///< [in] Device-accessible allocation of temporary storage. When NULL, the required allocation size is written to \p temp_storage_bytes and no work is done. + size_t &temp_storage_bytes, ///< [in,out] Reference to size in bytes of \p d_temp_storage allocation + DoubleBuffer &d_keys, ///< [in,out] Double-buffer whose current buffer contains the unsorted input keys and, upon return, is updated to point to the sorted output keys + DoubleBuffer &d_values, ///< [in,out] Double-buffer whose current buffer contains the unsorted input values and, upon return, is updated to point to the sorted output values + OffsetT num_items, ///< [in] Number of items to sort + int begin_bit, ///< [in] The beginning (least-significant) bit index needed for key comparison + int end_bit, ///< [in] The past-the-end (most-significant) bit index needed for key comparison + bool is_overwrite_okay, ///< [in] Whether is okay to overwrite source buffers + cudaStream_t stream, ///< [in] CUDA stream to launch kernels within. Default is stream0. + DecomposerT decomposer = {}) + { + typedef typename DispatchRadixSort::MaxPolicy MaxPolicyT; + + cudaError_t error; + do { + // Get PTX version + int ptx_version = 0; + if (CubDebug(error = PtxVersion(ptx_version))) break; + + // Create dispatch functor + DispatchRadixSort dispatch(d_temp_storage, + temp_storage_bytes, + d_keys, + d_values, + num_items, + begin_bit, + end_bit, + is_overwrite_okay, + stream, + ptx_version, + decomposer); + + // Dispatch to chained policy + if (CubDebug(error = MaxPolicyT::Invoke(ptx_version, dispatch))) break; + + } while (0); + + return error; + } + + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION __forceinline__ static cudaError_t + Dispatch(void *d_temp_storage, + size_t &temp_storage_bytes, + DoubleBuffer &d_keys, + DoubleBuffer &d_values, + OffsetT num_items, + int begin_bit, + int end_bit, + bool is_overwrite_okay, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return Dispatch(d_temp_storage, + temp_storage_bytes, + d_keys, + d_values, + num_items, + begin_bit, + end_bit, + is_overwrite_okay, + stream); + } +}; + + + + +/****************************************************************************** + * Segmented dispatch + ******************************************************************************/ + +/** + * Utility class for dispatching the appropriately-tuned kernels for segmented device-wide radix sort + */ +template < + bool IS_DESCENDING, ///< Whether or not the sorted-order is high-to-low + typename KeyT, ///< Key type + typename ValueT, ///< Value type + typename BeginOffsetIteratorT, ///< Random-access input iterator type for reading segment beginning offsets \iterator + typename EndOffsetIteratorT, ///< Random-access input iterator type for reading segment ending offsets \iterator + typename OffsetT, ///< Signed integer type for global offsets + typename SelectedPolicy = DeviceRadixSortPolicy, + typename DecomposerT = detail::identity_decomposer_t> +struct DispatchSegmentedRadixSort : SelectedPolicy +{ + //------------------------------------------------------------------------------ + // Constants + //------------------------------------------------------------------------------ + + // Whether this is a keys-only (or key-value) sort + constexpr static bool KEYS_ONLY = std::is_same::value; + + //------------------------------------------------------------------------------ + // Parameter members + //------------------------------------------------------------------------------ + + void *d_temp_storage; ///< [in] Device-accessible allocation of temporary storage. When NULL, the required allocation size is written to \p temp_storage_bytes and no work is done. + size_t &temp_storage_bytes; ///< [in,out] Reference to size in bytes of \p d_temp_storage allocation + DoubleBuffer &d_keys; ///< [in,out] Double-buffer whose current buffer contains the unsorted input keys and, upon return, is updated to point to the sorted output keys + DoubleBuffer &d_values; ///< [in,out] Double-buffer whose current buffer contains the unsorted input values and, upon return, is updated to point to the sorted output values + OffsetT num_items; ///< [in] Number of items to sort + OffsetT num_segments; ///< [in] The number of segments that comprise the sorting data + BeginOffsetIteratorT d_begin_offsets; ///< [in] Random-access input iterator to the sequence of beginning offsets of length \p num_segments, such that d_begin_offsets[i] is the first element of the ith data segment in d_keys_* and d_values_* + EndOffsetIteratorT d_end_offsets; ///< [in] Random-access input iterator to the sequence of ending offsets of length \p num_segments, such that d_end_offsets[i]-1 is the last element of the ith data segment in d_keys_* and d_values_*. If d_end_offsets[i]-1 <= d_begin_offsets[i], the ith is considered empty. + int begin_bit; ///< [in] The beginning (least-significant) bit index needed for key comparison + int end_bit; ///< [in] The past-the-end (most-significant) bit index needed for key comparison + cudaStream_t stream; ///< [in] CUDA stream to launch kernels within. Default is stream0. + int ptx_version; ///< [in] PTX version + bool is_overwrite_okay; ///< [in] Whether is okay to overwrite source buffers + DecomposerT decomposer; + + + //------------------------------------------------------------------------------ + // Constructors + //------------------------------------------------------------------------------ + + /// Constructor + CUB_RUNTIME_FUNCTION __forceinline__ + DispatchSegmentedRadixSort( + void* d_temp_storage, + size_t &temp_storage_bytes, + DoubleBuffer &d_keys, + DoubleBuffer &d_values, + OffsetT num_items, + OffsetT num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + int begin_bit, + int end_bit, + bool is_overwrite_okay, + cudaStream_t stream, + int ptx_version, + DecomposerT decomposer = {}) + : + d_temp_storage(d_temp_storage), + temp_storage_bytes(temp_storage_bytes), + d_keys(d_keys), + d_values(d_values), + num_items(num_items), + num_segments(num_segments), + d_begin_offsets(d_begin_offsets), + d_end_offsets(d_end_offsets), + begin_bit(begin_bit), + end_bit(end_bit), + stream(stream), + ptx_version(ptx_version), + is_overwrite_okay(is_overwrite_okay), + decomposer(decomposer) + {} + + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION __forceinline__ + DispatchSegmentedRadixSort( + void* d_temp_storage, + size_t &temp_storage_bytes, + DoubleBuffer &d_keys, + DoubleBuffer &d_values, + OffsetT num_items, + OffsetT num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + int begin_bit, + int end_bit, + bool is_overwrite_okay, + cudaStream_t stream, + bool debug_synchronous, + int ptx_version) + : + d_temp_storage(d_temp_storage), + temp_storage_bytes(temp_storage_bytes), + d_keys(d_keys), + d_values(d_values), + num_items(num_items), + num_segments(num_segments), + d_begin_offsets(d_begin_offsets), + d_end_offsets(d_end_offsets), + begin_bit(begin_bit), + end_bit(end_bit), + stream(stream), + ptx_version(ptx_version), + is_overwrite_okay(is_overwrite_okay) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + } + + + //------------------------------------------------------------------------------ + // Multi-segment invocation + //------------------------------------------------------------------------------ + + /// Invoke a three-kernel sorting pass at the current bit. + template + CUB_RUNTIME_FUNCTION __forceinline__ + cudaError_t InvokePass( + const KeyT *d_keys_in, + KeyT *d_keys_out, + const ValueT *d_values_in, + ValueT *d_values_out, + int ¤t_bit, + PassConfigT &pass_config) + { + cudaError error = cudaSuccess; + do + { + int pass_bits = CUB_MIN(pass_config.radix_bits, (end_bit - current_bit)); + + // Log kernel configuration + #ifdef CUB_DETAIL_DEBUG_ENABLE_LOG + _CubLog("Invoking segmented_kernels<<<%lld, %lld, 0, %lld>>>(), " + "%lld items per thread, %lld SM occupancy, " + "current bit %d, bit_grain %d\n", + (long long)num_segments, + (long long)pass_config.segmented_config.block_threads, + (long long)stream, + (long long)pass_config.segmented_config.items_per_thread, + (long long)pass_config.segmented_config.sm_occupancy, + current_bit, + pass_bits); + #endif + + THRUST_NS_QUALIFIER::cuda_cub::launcher::triple_chevron( + num_segments, pass_config.segmented_config.block_threads, 0, + stream + ).doit(pass_config.segmented_kernel, + d_keys_in, d_keys_out, + d_values_in, d_values_out, + d_begin_offsets, d_end_offsets, num_segments, + current_bit, pass_bits, decomposer); + + // Check for failure to launch + if (CubDebug(error = cudaPeekAtLastError())) + { + break; + } + + // Sync the stream if specified to flush runtime errors + error = detail::DebugSyncStream(stream); + if (CubDebug(error)) + { + break; + } + + // Update current bit + current_bit += pass_bits; + } + while (0); + + return error; + } + + + /// PassConfig data structure + template + struct PassConfig + { + SegmentedKernelT segmented_kernel; + KernelConfig segmented_config; + int radix_bits; + int radix_digits; + + /// Initialize pass configuration + template + CUB_RUNTIME_FUNCTION __forceinline__ + cudaError_t InitPassConfig(SegmentedKernelT segmented_kernel) + { + this->segmented_kernel = segmented_kernel; + this->radix_bits = SegmentedPolicyT::RADIX_BITS; + this->radix_digits = 1 << radix_bits; + + return CubDebug(segmented_config.Init(segmented_kernel)); + } + }; + + + /// Invocation (run multiple digit passes) + template < + typename ActivePolicyT, ///< Umbrella policy active for the target device + typename SegmentedKernelT> ///< Function type of cub::DeviceSegmentedRadixSortKernel + CUB_RUNTIME_FUNCTION __forceinline__ + cudaError_t InvokePasses( + SegmentedKernelT segmented_kernel, ///< [in] Kernel function pointer to parameterization of cub::DeviceSegmentedRadixSortKernel + SegmentedKernelT alt_segmented_kernel) ///< [in] Alternate kernel function pointer to parameterization of cub::DeviceSegmentedRadixSortKernel + { + cudaError error = cudaSuccess; + do + { + // Init regular and alternate kernel configurations + PassConfig pass_config, alt_pass_config; + if ((error = pass_config.template InitPassConfig(segmented_kernel))) break; + if ((error = alt_pass_config.template InitPassConfig(alt_segmented_kernel))) break; + + // Temporary storage allocation requirements + void* allocations[2] = {}; + size_t allocation_sizes[2] = + { + (is_overwrite_okay) ? 0 : num_items * sizeof(KeyT), // bytes needed for 3rd keys buffer + (is_overwrite_okay || (KEYS_ONLY)) ? 0 : num_items * sizeof(ValueT), // bytes needed for 3rd values buffer + }; + + // Alias the temporary allocations from the single storage blob (or compute the necessary size of the blob) + if (CubDebug(error = AliasTemporaries(d_temp_storage, temp_storage_bytes, allocations, allocation_sizes))) break; + + // Return if the caller is simply requesting the size of the storage allocation + if (d_temp_storage == NULL) + { + if (temp_storage_bytes == 0) + temp_storage_bytes = 1; + return cudaSuccess; + } + + // Pass planning. Run passes of the alternate digit-size configuration until we have an even multiple of our preferred digit size + int radix_bits = ActivePolicyT::SegmentedPolicy::RADIX_BITS; + int alt_radix_bits = ActivePolicyT::AltSegmentedPolicy::RADIX_BITS; + int num_bits = end_bit - begin_bit; + int num_passes = CUB_MAX(DivideAndRoundUp(num_bits, radix_bits), 1); + bool is_num_passes_odd = num_passes & 1; + int max_alt_passes = (num_passes * radix_bits) - num_bits; + int alt_end_bit = CUB_MIN(end_bit, begin_bit + (max_alt_passes * alt_radix_bits)); + + DoubleBuffer d_keys_remaining_passes( + (is_overwrite_okay || is_num_passes_odd) ? d_keys.Alternate() : static_cast(allocations[0]), + (is_overwrite_okay) ? d_keys.Current() : (is_num_passes_odd) ? static_cast(allocations[0]) : d_keys.Alternate()); + + DoubleBuffer d_values_remaining_passes( + (is_overwrite_okay || is_num_passes_odd) ? d_values.Alternate() : static_cast(allocations[1]), + (is_overwrite_okay) ? d_values.Current() : (is_num_passes_odd) ? static_cast(allocations[1]) : d_values.Alternate()); + + // Run first pass, consuming from the input's current buffers + int current_bit = begin_bit; + + if (CubDebug(error = InvokePass( + d_keys.Current(), d_keys_remaining_passes.Current(), + d_values.Current(), d_values_remaining_passes.Current(), + current_bit, + (current_bit < alt_end_bit) ? alt_pass_config : pass_config))) break; + + // Run remaining passes + while (current_bit < end_bit) + { + if (CubDebug(error = InvokePass( + d_keys_remaining_passes.d_buffers[d_keys_remaining_passes.selector], d_keys_remaining_passes.d_buffers[d_keys_remaining_passes.selector ^ 1], + d_values_remaining_passes.d_buffers[d_keys_remaining_passes.selector], d_values_remaining_passes.d_buffers[d_keys_remaining_passes.selector ^ 1], + current_bit, + (current_bit < alt_end_bit) ? alt_pass_config : pass_config))) break; + + // Invert selectors and update current bit + d_keys_remaining_passes.selector ^= 1; + d_values_remaining_passes.selector ^= 1; + } + + // Update selector + if (!is_overwrite_okay) { + num_passes = 1; // Sorted data always ends up in the other vector + } + + d_keys.selector = (d_keys.selector + num_passes) & 1; + d_values.selector = (d_values.selector + num_passes) & 1; + } + while (0); + + return error; + } + + + //------------------------------------------------------------------------------ + // Chained policy invocation + //------------------------------------------------------------------------------ + + /// Invocation + template + CUB_RUNTIME_FUNCTION __forceinline__ + cudaError_t Invoke() + { + typedef typename DispatchSegmentedRadixSort::MaxPolicy MaxPolicyT; + + // Return if empty problem, or if no bits to sort and double-buffering is used + if (num_items == 0 || (begin_bit == end_bit && is_overwrite_okay)) + { + if (d_temp_storage == nullptr) + { + temp_storage_bytes = 1; + } + return cudaSuccess; + } + + // Force kernel code-generation in all compiler passes + return InvokePasses( + DeviceSegmentedRadixSortKernel, + DeviceSegmentedRadixSortKernel); + } + + + //------------------------------------------------------------------------------ + // Dispatch entrypoints + //------------------------------------------------------------------------------ + + + /// Internal dispatch routine + CUB_RUNTIME_FUNCTION __forceinline__ + static cudaError_t Dispatch( + void* d_temp_storage, ///< [in] Device-accessible allocation of temporary storage. When NULL, the required allocation size is written to \p temp_storage_bytes and no work is done. + size_t &temp_storage_bytes, ///< [in,out] Reference to size in bytes of \p d_temp_storage allocation + DoubleBuffer &d_keys, ///< [in,out] Double-buffer whose current buffer contains the unsorted input keys and, upon return, is updated to point to the sorted output keys + DoubleBuffer &d_values, ///< [in,out] Double-buffer whose current buffer contains the unsorted input values and, upon return, is updated to point to the sorted output values + int num_items, ///< [in] Number of items to sort + int num_segments, ///< [in] The number of segments that comprise the sorting data + BeginOffsetIteratorT d_begin_offsets, ///< [in] Random-access input iterator to the sequence of beginning offsets of length \p num_segments, such that d_begin_offsets[i] is the first element of the ith data segment in d_keys_* and d_values_* + EndOffsetIteratorT d_end_offsets, ///< [in] Random-access input iterator to the sequence of ending offsets of length \p num_segments, such that d_end_offsets[i]-1 is the last element of the ith data segment in d_keys_* and d_values_*. If d_end_offsets[i]-1 <= d_begin_offsets[i], the ith is considered empty. + int begin_bit, ///< [in] The beginning (least-significant) bit index needed for key comparison + int end_bit, ///< [in] The past-the-end (most-significant) bit index needed for key comparison + bool is_overwrite_okay, ///< [in] Whether is okay to overwrite source buffers + cudaStream_t stream) ///< [in] CUDA stream to launch kernels within. Default is stream0. + { + typedef typename DispatchSegmentedRadixSort::MaxPolicy MaxPolicyT; + + cudaError_t error; + do { + // Get PTX version + int ptx_version = 0; + if (CubDebug(error = PtxVersion(ptx_version))) break; + + // Create dispatch functor + DispatchSegmentedRadixSort dispatch( + d_temp_storage, temp_storage_bytes, + d_keys, d_values, + num_items, num_segments, d_begin_offsets, d_end_offsets, + begin_bit, end_bit, is_overwrite_okay, + stream, ptx_version); + + // Dispatch to chained policy + if (CubDebug(error = MaxPolicyT::Invoke(ptx_version, dispatch))) break; + + } while (0); + + return error; + } + + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION __forceinline__ static cudaError_t + Dispatch(void *d_temp_storage, + size_t &temp_storage_bytes, + DoubleBuffer &d_keys, + DoubleBuffer &d_values, + int num_items, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + int begin_bit, + int end_bit, + bool is_overwrite_okay, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return Dispatch(d_temp_storage, + temp_storage_bytes, + d_keys, + d_values, + num_items, + num_segments, + d_begin_offsets, + d_end_offsets, + begin_bit, + end_bit, + is_overwrite_okay, + stream); + } +}; + + +CUB_NAMESPACE_END + + +#if defined(__clang__) +# pragma clang diagnostic pop +#endif + diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_reduce.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_reduce.cuh new file mode 100644 index 0000000000000000000000000000000000000000..994adc0954c446a8253f4ee5eba8f2a798067987 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_reduce.cuh @@ -0,0 +1,1402 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2022, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * @file cub::DeviceReduce provides device-wide, parallel operations for + * computing a reduction across a sequence of data items residing within + * device-accessible memory. + */ + +#pragma once + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +CUB_NAMESPACE_BEGIN + +namespace detail +{ +namespace reduce +{ + +/** + * All cub::DeviceReduce::* algorithms are using the same implementation. Some of them, however, + * should use initial value only for empty problems. If this struct is used as initial value with + * one of the `DeviceReduce` algorithms, the `init` value wrapped by this struct will only be used + * for empty problems; it will not be incorporated into the aggregate of non-empty problems. + */ +template +struct empty_problem_init_t +{ + T init; + + __host__ __device__ operator T() const { return init; } +}; + +/** + * @brief Applies initial value to the block aggregate and stores the result to the output iterator. + * + * @param d_out Iterator to the output aggregate + * @param reduction_op Binary reduction functor + * @param init Initial value + * @param block_aggregate Aggregate value computed by the block + */ +template +__host__ __device__ void finalize_and_store_aggregate(OutputIteratorT d_out, + ReductionOpT reduction_op, + InitT init, + AccumT block_aggregate) +{ + *d_out = reduction_op(init, block_aggregate); +} + +/** + * @brief Ignores initial value and stores the block aggregate to the output iterator. + * + * @param d_out Iterator to the output aggregate + * @param block_aggregate Aggregate value computed by the block + */ +template +__host__ __device__ void finalize_and_store_aggregate(OutputIteratorT d_out, + ReductionOpT, + empty_problem_init_t, + AccumT block_aggregate) +{ + *d_out = block_aggregate; +} +} // namespace reduce +} // namespace detail + +/****************************************************************************** + * Kernel entry points + *****************************************************************************/ + +/** + * @brief Reduce region kernel entry point (multi-block). Computes privatized + * reductions, one per thread block. + * + * @tparam ChainedPolicyT + * Chained tuning policy + * + * @tparam InputIteratorT + * Random-access input iterator type for reading input items \iterator + * + * @tparam OffsetT + * Signed integer type for global offsets + * + * @tparam ReductionOpT + * Binary reduction functor type having member + * `auto operator()(const T &a, const U &b)` + * + * @tparam InitT + * Initial value type + * + * @tparam AccumT + * Accumulator type + * + * @param[in] d_in + * Pointer to the input sequence of data items + * + * @param[out] d_out + * Pointer to the output aggregate + * + * @param[in] num_items + * Total number of input data items + * + * @param[in] even_share + * Even-share descriptor for mapping an equal number of tiles onto each + * thread block + * + * @param[in] reduction_op + * Binary reduction functor + */ +template +__launch_bounds__(int(ChainedPolicyT::ActivePolicy::ReducePolicy::BLOCK_THREADS)) +__global__ void DeviceReduceKernel(InputIteratorT d_in, + AccumT* d_out, + OffsetT num_items, + GridEvenShare even_share, + ReductionOpT reduction_op) +{ + // Thread block type for reducing input tiles + using AgentReduceT = + AgentReduce; + + // Shared memory storage + __shared__ typename AgentReduceT::TempStorage temp_storage; + + // Consume input tiles + AccumT block_aggregate = + AgentReduceT(temp_storage, d_in, reduction_op).ConsumeTiles(even_share); + + // Output result + if (threadIdx.x == 0) + { + detail::uninitialized_copy(d_out + blockIdx.x, block_aggregate); + } +} + +/** + * @brief Reduce a single tile kernel entry point (single-block). Can be used + * to aggregate privatized thread block reductions from a previous + * multi-block reduction pass. + * + * @tparam ChainedPolicyT + * Chained tuning policy + * + * @tparam InputIteratorT + * Random-access input iterator type for reading input items \iterator + * + * @tparam OutputIteratorT + * Output iterator type for recording the reduced aggregate \iterator + * + * @tparam OffsetT + * Signed integer type for global offsets + * + * @tparam ReductionOpT + * Binary reduction functor type having member + * `T operator()(const T &a, const U &b)` + * + * @tparam InitT + * Initial value type + * + * @tparam AccumT + * Accumulator type + * + * @param[in] d_in + * Pointer to the input sequence of data items + * + * @param[out] d_out + * Pointer to the output aggregate + * + * @param[in] num_items + * Total number of input data items + * + * @param[in] reduction_op + * Binary reduction functor + * + * @param[in] init + * The initial value of the reduction + */ +template +__launch_bounds__(int(ChainedPolicyT::ActivePolicy::SingleTilePolicy::BLOCK_THREADS), 1) +__global__ void DeviceReduceSingleTileKernel(InputIteratorT d_in, + OutputIteratorT d_out, + OffsetT num_items, + ReductionOpT reduction_op, + InitT init) +{ + // Thread block type for reducing input tiles + using AgentReduceT = + AgentReduce; + + // Shared memory storage + __shared__ typename AgentReduceT::TempStorage temp_storage; + + // Check if empty problem + if (num_items == 0) + { + if (threadIdx.x == 0) + { + *d_out = init; + } + + return; + } + + // Consume input tiles + AccumT block_aggregate = AgentReduceT(temp_storage, d_in, reduction_op) + .ConsumeRange(OffsetT(0), num_items); + + // Output result + if (threadIdx.x == 0) + { + detail::reduce::finalize_and_store_aggregate(d_out, reduction_op, init, block_aggregate); + } +} + +/// Normalize input iterator to segment offset +template +__device__ __forceinline__ void NormalizeReductionOutput(T & /*val*/, + OffsetT /*base_offset*/, + IteratorT /*itr*/) +{} + +/// Normalize input iterator to segment offset (specialized for arg-index) +template +__device__ __forceinline__ void NormalizeReductionOutput( + KeyValuePairT &val, + OffsetT base_offset, + ArgIndexInputIterator /*itr*/) +{ + val.key -= base_offset; +} + +/** + * Segmented reduction (one block per segment) + * @tparam ChainedPolicyT + * Chained tuning policy + * + * @tparam InputIteratorT + * Random-access input iterator type for reading input items \iterator + * + * @tparam OutputIteratorT + * Output iterator type for recording the reduced aggregate \iterator + * + * @tparam BeginOffsetIteratorT + * Random-access input iterator type for reading segment beginning offsets + * \iterator + * + * @tparam EndOffsetIteratorT + * Random-access input iterator type for reading segment ending offsets + * \iterator + * + * @tparam OffsetT + * Signed integer type for global offsets + * + * @tparam ReductionOpT + * Binary reduction functor type having member + * `T operator()(const T &a, const U &b)` + * + * @tparam InitT + * Initial value type + * + * @param[in] d_in + * Pointer to the input sequence of data items + * + * @param[out] d_out + * Pointer to the output aggregate + * + * @param[in] d_begin_offsets + * Random-access input iterator to the sequence of beginning offsets of + * length `num_segments`, such that `d_begin_offsets[i]` is the first element + * of the *i*th data segment in `d_keys_*` and `d_values_*` + * + * @param[in] d_end_offsets + * Random-access input iterator to the sequence of ending offsets of length + * `num_segments`, such that `d_end_offsets[i] - 1` is the last element of + * the *i*th data segment in `d_keys_*` and `d_values_*`. + * If `d_end_offsets[i] - 1 <= d_begin_offsets[i]`, the *i*th is + * considered empty. + * + * @param[in] num_segments + * The number of segments that comprise the sorting data + * + * @param[in] reduction_op + * Binary reduction functor + * + * @param[in] init + * The initial value of the reduction + */ +template +__launch_bounds__(int(ChainedPolicyT::ActivePolicy::ReducePolicy::BLOCK_THREADS)) +__global__ void DeviceSegmentedReduceKernel( + InputIteratorT d_in, + OutputIteratorT d_out, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + int /*num_segments*/, + ReductionOpT reduction_op, + InitT init) +{ + // Thread block type for reducing input tiles + using AgentReduceT = + AgentReduce; + + // Shared memory storage + __shared__ typename AgentReduceT::TempStorage temp_storage; + + OffsetT segment_begin = d_begin_offsets[blockIdx.x]; + OffsetT segment_end = d_end_offsets[blockIdx.x]; + + // Check if empty problem + if (segment_begin == segment_end) + { + if (threadIdx.x == 0) + { + *(d_out + blockIdx.x) = init; + } + return; + } + + // Consume input tiles + AccumT block_aggregate = AgentReduceT(temp_storage, d_in, reduction_op) + .ConsumeRange(segment_begin, segment_end); + + // Normalize as needed + NormalizeReductionOutput(block_aggregate, segment_begin, d_in); + + if (threadIdx.x == 0) + { + detail::reduce::finalize_and_store_aggregate(d_out + blockIdx.x, + reduction_op, + init, + block_aggregate); + } +} + +/****************************************************************************** + * Policy + ******************************************************************************/ + +/** + * @tparam AccumT + * Accumulator data type + * + * OffsetT + * Signed integer type for global offsets + * + * ReductionOpT + * Binary reduction functor type having member + * `auto operator()(const T &a, const U &b)` + */ +template < + typename AccumT, + typename OffsetT, + typename ReductionOpT> +struct DeviceReducePolicy +{ + //--------------------------------------------------------------------------- + // Architecture-specific tuning policies + //--------------------------------------------------------------------------- + + /// SM30 + struct Policy300 : ChainedPolicy<300, Policy300, Policy300> + { + static constexpr int threads_per_block = 256; + static constexpr int items_per_thread = 20; + static constexpr int items_per_vec_load = 2; + + // ReducePolicy (GTX670: 154.0 @ 48M 4B items) + using ReducePolicy = AgentReducePolicy; + + // SingleTilePolicy + using SingleTilePolicy = ReducePolicy; + + // SegmentedReducePolicy + using SegmentedReducePolicy = ReducePolicy; + }; + + /// SM35 + struct Policy350 : ChainedPolicy<350, Policy350, Policy300> + { + static constexpr int threads_per_block = 256; + static constexpr int items_per_thread = 20; + static constexpr int items_per_vec_load = 4; + + // ReducePolicy (GTX Titan: 255.1 GB/s @ 48M 4B items; 228.7 GB/s @ 192M 1B + // items) + using ReducePolicy = AgentReducePolicy; + + // SingleTilePolicy + using SingleTilePolicy = ReducePolicy; + + // SegmentedReducePolicy + using SegmentedReducePolicy = ReducePolicy; + }; + + /// SM60 + struct Policy600 : ChainedPolicy<600, Policy600, Policy350> + { + static constexpr int threads_per_block = 256; + static constexpr int items_per_thread = 16; + static constexpr int items_per_vec_load = 4; + + // ReducePolicy (P100: 591 GB/s @ 64M 4B items; 583 GB/s @ 256M 1B items) + using ReducePolicy = AgentReducePolicy; + + // SingleTilePolicy + using SingleTilePolicy = ReducePolicy; + + // SegmentedReducePolicy + using SegmentedReducePolicy = ReducePolicy; + }; + + using MaxPolicy = Policy600; +}; + + + +/****************************************************************************** + * Single-problem dispatch + *****************************************************************************/ + +/** + * @brief Utility class for dispatching the appropriately-tuned kernels for + * device-wide reduction + * + * @tparam InputIteratorT + * Random-access input iterator type for reading input items \iterator + * + * @tparam OutputIteratorT + * Output iterator type for recording the reduced aggregate \iterator + * + * @tparam OffsetT + * Signed integer type for global offsets + * + * @tparam ReductionOpT + * Binary reduction functor type having member + * `auto operator()(const T &a, const U &b)` + * + * @tparam InitT + * Initial value type + */ +template < + typename InputIteratorT, + typename OutputIteratorT, + typename OffsetT, + typename ReductionOpT, + typename InitT = + cub::detail::non_void_value_t< + OutputIteratorT, + cub::detail::value_t>, + typename AccumT = + detail::accumulator_t< + ReductionOpT, + InitT, + cub::detail::value_t>, + typename SelectedPolicy = DeviceReducePolicy> +struct DispatchReduce : SelectedPolicy +{ + //--------------------------------------------------------------------------- + // Problem state + //--------------------------------------------------------------------------- + + /// Device-accessible allocation of temporary storage. When `nullptr`, the + /// required allocation size is written to `temp_storage_bytes` and no work + /// is done. + void *d_temp_storage; + + /// Reference to size in bytes of `d_temp_storage` allocation + size_t &temp_storage_bytes; + + /// Pointer to the input sequence of data items + InputIteratorT d_in; + + /// Pointer to the output aggregate + OutputIteratorT d_out; + + /// Total number of input items (i.e., length of `d_in`) + OffsetT num_items; + + /// Binary reduction functor + ReductionOpT reduction_op; + + /// The initial value of the reduction + InitT init; + + /// CUDA stream to launch kernels within. Default is stream0. + cudaStream_t stream; + + int ptx_version; + + //--------------------------------------------------------------------------- + // Constructor + //--------------------------------------------------------------------------- + + /// Constructor + CUB_RUNTIME_FUNCTION __forceinline__ DispatchReduce(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OutputIteratorT d_out, + OffsetT num_items, + ReductionOpT reduction_op, + InitT init, + cudaStream_t stream, + int ptx_version) + : d_temp_storage(d_temp_storage) + , temp_storage_bytes(temp_storage_bytes) + , d_in(d_in) + , d_out(d_out) + , num_items(num_items) + , reduction_op(reduction_op) + , init(init) + , stream(stream) + , ptx_version(ptx_version) + {} + + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION __forceinline__ + DispatchReduce(void* d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OutputIteratorT d_out, + OffsetT num_items, + ReductionOpT reduction_op, + InitT init, + cudaStream_t stream, + bool debug_synchronous, + int ptx_version) + : d_temp_storage(d_temp_storage) + , temp_storage_bytes(temp_storage_bytes) + , d_in(d_in) + , d_out(d_out) + , num_items(num_items) + , reduction_op(reduction_op) + , init(init) + , stream(stream) + , ptx_version(ptx_version) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + } + + //--------------------------------------------------------------------------- + // Small-problem (single tile) invocation + //--------------------------------------------------------------------------- + + /** + * @brief Invoke a single block block to reduce in-core + * + * @tparam ActivePolicyT + * Umbrella policy active for the target device + * + * @tparam SingleTileKernelT + * Function type of cub::DeviceReduceSingleTileKernel + * + * @param[in] single_tile_kernel + * Kernel function pointer to parameterization of + * cub::DeviceReduceSingleTileKernel + */ + template + CUB_RUNTIME_FUNCTION __forceinline__ cudaError_t + InvokeSingleTile(SingleTileKernelT single_tile_kernel) + { + cudaError error = cudaSuccess; + do + { + // Return if the caller is simply requesting the size of the storage + // allocation + if (d_temp_storage == NULL) + { + temp_storage_bytes = 1; + break; + } + + // Log single_reduce_sweep_kernel configuration + #ifdef CUB_DETAIL_DEBUG_ENABLE_LOG + _CubLog("Invoking DeviceReduceSingleTileKernel<<<1, %d, 0, %lld>>>(), " + "%d items per thread\n", + ActivePolicyT::SingleTilePolicy::BLOCK_THREADS, + (long long)stream, + ActivePolicyT::SingleTilePolicy::ITEMS_PER_THREAD); + #endif + + // Invoke single_reduce_sweep_kernel + THRUST_NS_QUALIFIER::cuda_cub::launcher::triple_chevron( + 1, ActivePolicyT::SingleTilePolicy::BLOCK_THREADS, 0, stream) + .doit(single_tile_kernel, d_in, d_out, num_items, reduction_op, init); + + // Check for failure to launch + if (CubDebug(error = cudaPeekAtLastError())) + { + break; + } + + // Sync the stream if specified to flush runtime errors + error = detail::DebugSyncStream(stream); + if (CubDebug(error)) + { + break; + } + } while (0); + + return error; + } + + //--------------------------------------------------------------------------- + // Normal problem size invocation (two-pass) + //--------------------------------------------------------------------------- + + /** + * @brief Invoke two-passes to reduce + * @tparam ActivePolicyT + * Umbrella policy active for the target device + * + * @tparam ReduceKernelT + * Function type of cub::DeviceReduceKernel + * + * @tparam SingleTileKernelT + * Function type of cub::DeviceReduceSingleTileKernel + * + * @param[in] reduce_kernel + * Kernel function pointer to parameterization of cub::DeviceReduceKernel + * + * @param[in] single_tile_kernel + * Kernel function pointer to parameterization of + * cub::DeviceReduceSingleTileKernel + */ + template + CUB_RUNTIME_FUNCTION __forceinline__ cudaError_t + InvokePasses(ReduceKernelT reduce_kernel, + SingleTileKernelT single_tile_kernel) + { + cudaError error = cudaSuccess; + do + { + // Get device ordinal + int device_ordinal; + if (CubDebug(error = cudaGetDevice(&device_ordinal))) + break; + + // Get SM count + int sm_count; + if (CubDebug( + error = cudaDeviceGetAttribute(&sm_count, + cudaDevAttrMultiProcessorCount, + device_ordinal))) + { + break; + } + + // Init regular kernel configuration + KernelConfig reduce_config; + if (CubDebug( + error = reduce_config.Init( + reduce_kernel))) + { + break; + } + + int reduce_device_occupancy = reduce_config.sm_occupancy * sm_count; + + // Even-share work distribution + int max_blocks = reduce_device_occupancy * CUB_SUBSCRIPTION_FACTOR(0); + GridEvenShare even_share; + even_share.DispatchInit(num_items, max_blocks, reduce_config.tile_size); + + // Temporary storage allocation requirements + void *allocations[1] = {}; + size_t allocation_sizes[1] = { + max_blocks * sizeof(AccumT) // bytes needed for privatized block + // reductions + }; + + // Alias the temporary allocations from the single storage blob (or + // compute the necessary size of the blob) + if (CubDebug(error = AliasTemporaries(d_temp_storage, + temp_storage_bytes, + allocations, + allocation_sizes))) + { + break; + } + + if (d_temp_storage == NULL) + { + // Return if the caller is simply requesting the size of the storage + // allocation + return cudaSuccess; + } + + // Alias the allocation for the privatized per-block reductions + AccumT *d_block_reductions = (AccumT *)allocations[0]; + + // Get grid size for device_reduce_sweep_kernel + int reduce_grid_size = even_share.grid_size; + + // Log device_reduce_sweep_kernel configuration + #ifdef CUB_DETAIL_DEBUG_ENABLE_LOG + _CubLog("Invoking DeviceReduceKernel<<<%d, %d, 0, %lld>>>(), %d items " + "per thread, %d SM occupancy\n", + reduce_grid_size, + ActivePolicyT::ReducePolicy::BLOCK_THREADS, + (long long)stream, + ActivePolicyT::ReducePolicy::ITEMS_PER_THREAD, + reduce_config.sm_occupancy); + #endif + + // Invoke DeviceReduceKernel + THRUST_NS_QUALIFIER::cuda_cub::launcher::triple_chevron( + reduce_grid_size, + ActivePolicyT::ReducePolicy::BLOCK_THREADS, + 0, + stream) + .doit(reduce_kernel, + d_in, + d_block_reductions, + num_items, + even_share, + reduction_op); + + // Check for failure to launch + if (CubDebug(error = cudaPeekAtLastError())) + { + break; + } + + // Sync the stream if specified to flush runtime errors + error = detail::DebugSyncStream(stream); + if (CubDebug(error)) + { + break; + } + + // Log single_reduce_sweep_kernel configuration + #ifdef CUB_DETAIL_DEBUG_ENABLE_LOG + _CubLog("Invoking DeviceReduceSingleTileKernel<<<1, %d, 0, %lld>>>(), " + "%d items per thread\n", + ActivePolicyT::SingleTilePolicy::BLOCK_THREADS, + (long long)stream, + ActivePolicyT::SingleTilePolicy::ITEMS_PER_THREAD); + #endif + + // Invoke DeviceReduceSingleTileKernel + THRUST_NS_QUALIFIER::cuda_cub::launcher::triple_chevron( + 1, + ActivePolicyT::SingleTilePolicy::BLOCK_THREADS, + 0, + stream) + .doit(single_tile_kernel, + d_block_reductions, + d_out, + reduce_grid_size, // triple_chevron is not type safe, make sure to use int + reduction_op, + init); + + // Check for failure to launch + if (CubDebug(error = cudaPeekAtLastError())) + { + break; + } + + // Sync the stream if specified to flush runtime errors + error = detail::DebugSyncStream(stream); + if (CubDebug(error)) + { + break; + } + } while (0); + + return error; + } + + //--------------------------------------------------------------------------- + // Chained policy invocation + //--------------------------------------------------------------------------- + + /// Invocation + template + CUB_RUNTIME_FUNCTION __forceinline__ cudaError_t Invoke() + { + typedef typename ActivePolicyT::SingleTilePolicy SingleTilePolicyT; + typedef typename DispatchReduce::MaxPolicy MaxPolicyT; + + // Force kernel code-generation in all compiler passes + if (num_items <= (SingleTilePolicyT::BLOCK_THREADS * + SingleTilePolicyT::ITEMS_PER_THREAD)) + { + // Small, single tile size + return InvokeSingleTile( + DeviceReduceSingleTileKernel); + } + else + { + // Regular size + return InvokePasses( + DeviceReduceKernel, + DeviceReduceSingleTileKernel); + } + } + + //--------------------------------------------------------------------------- + // Dispatch entrypoints + //--------------------------------------------------------------------------- + + /** + * @brief Internal dispatch routine for computing a device-wide reduction + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no work + * is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in] d_in + * Pointer to the input sequence of data items + * + * @param[out] d_out + * Pointer to the output aggregate + * + * @param[in] num_items + * Total number of input items (i.e., length of `d_in`) + * + * @param[in] reduction_op + * Binary reduction functor + * + * @param[in] init + * The initial value of the reduction + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. + * Default is stream0. + */ + CUB_RUNTIME_FUNCTION __forceinline__ static cudaError_t + Dispatch(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OutputIteratorT d_out, + OffsetT num_items, + ReductionOpT reduction_op, + InitT init, + cudaStream_t stream) + { + typedef typename DispatchReduce::MaxPolicy MaxPolicyT; + + cudaError error = cudaSuccess; + do + { + // Get PTX version + int ptx_version = 0; + if (CubDebug(error = PtxVersion(ptx_version))) + { + break; + } + + // Create dispatch functor + DispatchReduce dispatch(d_temp_storage, + temp_storage_bytes, + d_in, + d_out, + num_items, + reduction_op, + init, + stream, + ptx_version); + + // Dispatch to chained policy + if (CubDebug(error = MaxPolicyT::Invoke(ptx_version, dispatch))) + { + break; + } + } while (0); + + return error; + } + + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION __forceinline__ static cudaError_t + Dispatch(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OutputIteratorT d_out, + OffsetT num_items, + ReductionOpT reduction_op, + InitT init, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return Dispatch(d_temp_storage, + temp_storage_bytes, + d_in, + d_out, + num_items, + reduction_op, + init, + stream); + } +}; + + + +/****************************************************************************** + * Segmented dispatch + *****************************************************************************/ + +/** + * @brief Utility class for dispatching the appropriately-tuned kernels for + * device-wide reduction + * + * @tparam InputIteratorT + * Random-access input iterator type for reading input items \iterator + * + * @tparam OutputIteratorT + * Output iterator type for recording the reduced aggregate \iterator + * + * @tparam BeginOffsetIteratorT + * Random-access input iterator type for reading segment beginning offsets + * \iterator + * + * @tparam EndOffsetIteratorT + * Random-access input iterator type for reading segment ending offsets + * \iterator + * + * @tparam OffsetT + * Signed integer type for global offsets + * + * @tparam ReductionOpT + * Binary reduction functor type having member + * `auto operator()(const T &a, const U &b)` + * + * @tparam InitT + * value type + */ +template < + typename InputIteratorT, + typename OutputIteratorT, + typename BeginOffsetIteratorT, + typename EndOffsetIteratorT, + typename OffsetT, + typename ReductionOpT, + typename InitT = + cub::detail::non_void_value_t< + OutputIteratorT, + cub::detail::value_t>, + typename AccumT = + detail::accumulator_t< + ReductionOpT, + InitT, + cub::detail::value_t>, + typename SelectedPolicy = DeviceReducePolicy> +struct DispatchSegmentedReduce : SelectedPolicy +{ + //--------------------------------------------------------------------------- + // Problem state + //--------------------------------------------------------------------------- + + /// Device-accessible allocation of temporary storage. When `nullptr`, the + /// required allocation size is written to `temp_storage_bytes` and no work + /// is done. + void *d_temp_storage; + + /// Reference to size in bytes of `d_temp_storage` allocation + size_t &temp_storage_bytes; + + /// Pointer to the input sequence of data items + InputIteratorT d_in; + + /// Pointer to the output aggregate + OutputIteratorT d_out; + + /// The number of segments that comprise the sorting data + OffsetT num_segments; + + /// Random-access input iterator to the sequence of beginning offsets of + /// length `num_segments`, such that `d_begin_offsets[i]` is the first + /// element of the *i*th data segment in `d_keys_*` and + /// `d_values_*` + BeginOffsetIteratorT d_begin_offsets; + + /// Random-access input iterator to the sequence of ending offsets of length + /// `num_segments`, such that `d_end_offsets[i] - 1` is the last element of + /// the *i*th data segment in `d_keys_*` and `d_values_*`. + /// If `d_end_offsets[i] - 1 <= d_begin_offsets[i]`, the *i*th is + /// considered empty. + EndOffsetIteratorT d_end_offsets; + + /// Binary reduction functor + ReductionOpT reduction_op; + + /// The initial value of the reduction + InitT init; + + /// CUDA stream to launch kernels within. Default is stream0. + cudaStream_t stream; + + int ptx_version; + + //--------------------------------------------------------------------------- + // Constructor + //--------------------------------------------------------------------------- + + /// Constructor + CUB_RUNTIME_FUNCTION __forceinline__ + DispatchSegmentedReduce(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OutputIteratorT d_out, + OffsetT num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + ReductionOpT reduction_op, + InitT init, + cudaStream_t stream, + int ptx_version) + : d_temp_storage(d_temp_storage) + , temp_storage_bytes(temp_storage_bytes) + , d_in(d_in) + , d_out(d_out) + , num_segments(num_segments) + , d_begin_offsets(d_begin_offsets) + , d_end_offsets(d_end_offsets) + , reduction_op(reduction_op) + , init(init) + , stream(stream) + , ptx_version(ptx_version) + {} + + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION __forceinline__ + DispatchSegmentedReduce(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OutputIteratorT d_out, + OffsetT num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + ReductionOpT reduction_op, + InitT init, + cudaStream_t stream, + bool debug_synchronous, + int ptx_version) + : d_temp_storage(d_temp_storage) + , temp_storage_bytes(temp_storage_bytes) + , d_in(d_in) + , d_out(d_out) + , num_segments(num_segments) + , d_begin_offsets(d_begin_offsets) + , d_end_offsets(d_end_offsets) + , reduction_op(reduction_op) + , init(init) + , stream(stream) + , ptx_version(ptx_version) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + } + + //--------------------------------------------------------------------------- + // Chained policy invocation + //--------------------------------------------------------------------------- + + /** + * @brief Invocation + * + * @tparam ActivePolicyT + * Umbrella policy active for the target device + * + * @tparam DeviceSegmentedReduceKernelT + * Function type of cub::DeviceSegmentedReduceKernel + * + * @param[in] segmented_reduce_kernel + * Kernel function pointer to parameterization of + * cub::DeviceSegmentedReduceKernel + */ + template + CUB_RUNTIME_FUNCTION __forceinline__ cudaError_t + InvokePasses(DeviceSegmentedReduceKernelT segmented_reduce_kernel) + { + cudaError error = cudaSuccess; + + do + { + // Return if the caller is simply requesting the size of the storage + // allocation + if (d_temp_storage == NULL) + { + temp_storage_bytes = 1; + return cudaSuccess; + } + + // Init kernel configuration + KernelConfig segmented_reduce_config; + if (CubDebug( + error = segmented_reduce_config + .Init( + segmented_reduce_kernel))) + { + break; + } + + // Log device_reduce_sweep_kernel configuration + #ifdef CUB_DETAIL_DEBUG_ENABLE_LOG + _CubLog("Invoking SegmentedDeviceReduceKernel<<<%d, %d, 0, %lld>>>(), " + "%d items per thread, %d SM occupancy\n", + num_segments, + ActivePolicyT::SegmentedReducePolicy::BLOCK_THREADS, + (long long)stream, + ActivePolicyT::SegmentedReducePolicy::ITEMS_PER_THREAD, + segmented_reduce_config.sm_occupancy); + #endif + + // Invoke DeviceReduceKernel + THRUST_NS_QUALIFIER::cuda_cub::launcher::triple_chevron( + num_segments, + ActivePolicyT::SegmentedReducePolicy::BLOCK_THREADS, + 0, + stream) + .doit(segmented_reduce_kernel, + d_in, + d_out, + d_begin_offsets, + d_end_offsets, + num_segments, + reduction_op, + init); + + // Check for failure to launch + if (CubDebug(error = cudaPeekAtLastError())) + { + break; + } + + // Sync the stream if specified to flush runtime errors + error = detail::DebugSyncStream(stream); + if (CubDebug(error)) + { + break; + } + } while (0); + + return error; + } + + /// Invocation + template + CUB_RUNTIME_FUNCTION __forceinline__ cudaError_t Invoke() + { + typedef typename DispatchSegmentedReduce::MaxPolicy MaxPolicyT; + + // Force kernel code-generation in all compiler passes + return InvokePasses( + DeviceSegmentedReduceKernel); + } + + //--------------------------------------------------------------------------- + // Dispatch entrypoints + //--------------------------------------------------------------------------- + + /** + * @brief Internal dispatch routine for computing a device-wide reduction + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no work + * is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in] d_in + * Pointer to the input sequence of data items + * + * @param[out] d_out + * Pointer to the output aggregate + * + * @param[in] num_segments + * The number of segments that comprise the sorting data + * + * @param[in] d_begin_offsets + * Random-access input iterator to the sequence of beginning offsets of + * length `num_segments`, such that `d_begin_offsets[i]` is the first + * element of the *i*th data segment in `d_keys_*` and + * `d_values_*` + * + * @param[in] d_end_offsets + * Random-access input iterator to the sequence of ending offsets of length + * `num_segments`, such that `d_end_offsets[i] - 1` is the last element of + * the *i*th data segment in `d_keys_*` and `d_values_*`. + * If `d_end_offsets[i] - 1 <= d_begin_offsets[i]`, the *i*th is + * considered empty. + * + * @param[in] reduction_op + * Binary reduction functor + * + * @param[in] init + * The initial value of the reduction + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. + * Default is stream0. + */ + CUB_RUNTIME_FUNCTION __forceinline__ static cudaError_t + Dispatch(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OutputIteratorT d_out, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + ReductionOpT reduction_op, + InitT init, + cudaStream_t stream) + { + typedef typename DispatchSegmentedReduce::MaxPolicy MaxPolicyT; + + if (num_segments <= 0) + { + return cudaSuccess; + } + + cudaError error = cudaSuccess; + + do + { + // Get PTX version + int ptx_version = 0; + if (CubDebug(error = PtxVersion(ptx_version))) + { + break; + } + + // Create dispatch functor + DispatchSegmentedReduce dispatch(d_temp_storage, + temp_storage_bytes, + d_in, + d_out, + num_segments, + d_begin_offsets, + d_end_offsets, + reduction_op, + init, + stream, + ptx_version); + + // Dispatch to chained policy + if (CubDebug(error = MaxPolicyT::Invoke(ptx_version, dispatch))) + { + break; + } + } while (0); + + return error; + } + + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION __forceinline__ static cudaError_t + Dispatch(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OutputIteratorT d_out, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + ReductionOpT reduction_op, + InitT init, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return Dispatch(d_temp_storage, + temp_storage_bytes, + d_in, + d_out, + num_segments, + d_begin_offsets, + d_end_offsets, + reduction_op, + init, + stream); + } +}; + + +CUB_NAMESPACE_END + diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_reduce_by_key.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_reduce_by_key.cuh new file mode 100644 index 0000000000000000000000000000000000000000..981455f9c80734ba806bd7056ad27234142f9593 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_reduce_by_key.cuh @@ -0,0 +1,610 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2022, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * @file cub::DeviceReduceByKey provides device-wide, parallel operations for + * reducing segments of values residing within device-accessible memory. + */ + +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include +#include + +#include + +CUB_NAMESPACE_BEGIN + +/****************************************************************************** + * Kernel entry points + *****************************************************************************/ + +/** + * @brief Multi-block reduce-by-key sweep kernel entry point + * + * @tparam AgentReduceByKeyPolicyT + * Parameterized AgentReduceByKeyPolicyT tuning policy type + * + * @tparam KeysInputIteratorT + * Random-access input iterator type for keys + * + * @tparam UniqueOutputIteratorT + * Random-access output iterator type for keys + * + * @tparam ValuesInputIteratorT + * Random-access input iterator type for values + * + * @tparam AggregatesOutputIteratorT + * Random-access output iterator type for values + * + * @tparam NumRunsOutputIteratorT + * Output iterator type for recording number of segments encountered + * + * @tparam ScanTileStateT + * Tile status interface type + * + * @tparam EqualityOpT + * KeyT equality operator type + * + * @tparam ReductionOpT + * ValueT reduction operator type + * + * @tparam OffsetT + * Signed integer type for global offsets + * + * @param d_keys_in + * Pointer to the input sequence of keys + * + * @param d_unique_out + * Pointer to the output sequence of unique keys (one key per run) + * + * @param d_values_in + * Pointer to the input sequence of corresponding values + * + * @param d_aggregates_out + * Pointer to the output sequence of value aggregates (one aggregate per run) + * + * @param d_num_runs_out + * Pointer to total number of runs encountered + * (i.e., the length of d_unique_out) + * + * @param tile_state + * Tile status interface + * + * @param start_tile + * The starting tile for the current grid + * + * @param equality_op + * KeyT equality operator + * + * @param reduction_op + * ValueT reduction operator + * + * @param num_items + * Total number of items to select from + */ +template +__launch_bounds__(int(ChainedPolicyT::ActivePolicy::ReduceByKeyPolicyT::BLOCK_THREADS)) __global__ + void DeviceReduceByKeyKernel(KeysInputIteratorT d_keys_in, + UniqueOutputIteratorT d_unique_out, + ValuesInputIteratorT d_values_in, + AggregatesOutputIteratorT d_aggregates_out, + NumRunsOutputIteratorT d_num_runs_out, + ScanTileStateT tile_state, + int start_tile, + EqualityOpT equality_op, + ReductionOpT reduction_op, + OffsetT num_items) +{ + using AgentReduceByKeyPolicyT = typename ChainedPolicyT::ActivePolicy::ReduceByKeyPolicyT; + + // Thread block type for reducing tiles of value segments + using AgentReduceByKeyT = AgentReduceByKey; + + // Shared memory for AgentReduceByKey + __shared__ typename AgentReduceByKeyT::TempStorage temp_storage; + + // Process tiles + AgentReduceByKeyT(temp_storage, + d_keys_in, + d_unique_out, + d_values_in, + d_aggregates_out, + d_num_runs_out, + equality_op, + reduction_op) + .ConsumeRange(num_items, tile_state, start_tile); +} + +namespace detail +{ + +template +struct device_reduce_by_key_policy_hub +{ + static constexpr int MAX_INPUT_BYTES = CUB_MAX(sizeof(KeyOutputT), sizeof(AccumT)); + static constexpr int COMBINED_INPUT_BYTES = sizeof(KeyOutputT) + sizeof(AccumT); + + /// SM35 + struct Policy350 : ChainedPolicy<350, Policy350, Policy350> + { + static constexpr int NOMINAL_4B_ITEMS_PER_THREAD = 6; + static constexpr int ITEMS_PER_THREAD = + (MAX_INPUT_BYTES <= 8) + ? 6 + : CUB_MIN(NOMINAL_4B_ITEMS_PER_THREAD, + CUB_MAX(1, + ((NOMINAL_4B_ITEMS_PER_THREAD * 8) + COMBINED_INPUT_BYTES - 1) / + COMBINED_INPUT_BYTES)); + + using ReduceByKeyPolicyT = + AgentReduceByKeyPolicy<128, + ITEMS_PER_THREAD, + BLOCK_LOAD_DIRECT, + LOAD_LDG, + BLOCK_SCAN_WARP_SCANS, + detail::default_reduce_by_key_delay_constructor_t>; + }; + + using MaxPolicy = Policy350; +}; + +} + +/****************************************************************************** + * Dispatch + ******************************************************************************/ + +/** + * @brief Utility class for dispatching the appropriately-tuned kernels for + * DeviceReduceByKey + * + * @tparam KeysInputIteratorT + * Random-access input iterator type for keys + * + * @tparam UniqueOutputIteratorT + * Random-access output iterator type for keys + * + * @tparam ValuesInputIteratorT + * Random-access input iterator type for values + * + * @tparam AggregatesOutputIteratorT + * Random-access output iterator type for values + * + * @tparam NumRunsOutputIteratorT + * Output iterator type for recording number of segments encountered + * + * @tparam EqualityOpT + * KeyT equality operator type + * + * @tparam ReductionOpT + * ValueT reduction operator type + * + * @tparam OffsetT + * Signed integer type for global offsets + * + * @tparam SelectedPolicy + * Implementation detail, do not specify directly, requirements on the + * content of this type are subject to breaking change. + */ +template , + cub::detail::value_t>, + typename SelectedPolicy = // + detail::device_reduce_by_key_policy_hub< // + AccumT, // + cub::detail::non_void_value_t< // + UniqueOutputIteratorT, // + cub::detail::value_t>>> +struct DispatchReduceByKey +{ + //------------------------------------------------------------------------- + // Types and constants + //------------------------------------------------------------------------- + + // The input values type + using ValueInputT = cub::detail::value_t; + + static constexpr int INIT_KERNEL_THREADS = 128; + + // Tile status descriptor interface type + using ScanTileStateT = ReduceByKeyScanTileState; + + void *d_temp_storage; + size_t &temp_storage_bytes; + KeysInputIteratorT d_keys_in; + UniqueOutputIteratorT d_unique_out; + ValuesInputIteratorT d_values_in; + AggregatesOutputIteratorT d_aggregates_out; + NumRunsOutputIteratorT d_num_runs_out; + EqualityOpT equality_op; + ReductionOpT reduction_op; + OffsetT num_items; + cudaStream_t stream; + + CUB_RUNTIME_FUNCTION __forceinline__ + DispatchReduceByKey(void *d_temp_storage, + size_t &temp_storage_bytes, + KeysInputIteratorT d_keys_in, + UniqueOutputIteratorT d_unique_out, + ValuesInputIteratorT d_values_in, + AggregatesOutputIteratorT d_aggregates_out, + NumRunsOutputIteratorT d_num_runs_out, + EqualityOpT equality_op, + ReductionOpT reduction_op, + OffsetT num_items, + cudaStream_t stream) + : d_temp_storage(d_temp_storage) + , temp_storage_bytes(temp_storage_bytes) + , d_keys_in(d_keys_in) + , d_unique_out(d_unique_out) + , d_values_in(d_values_in) + , d_aggregates_out(d_aggregates_out) + , d_num_runs_out(d_num_runs_out) + , equality_op(equality_op) + , reduction_op(reduction_op) + , num_items(num_items) + , stream(stream) + {} + + //--------------------------------------------------------------------- + // Dispatch entrypoints + //--------------------------------------------------------------------- + + template + CUB_RUNTIME_FUNCTION __forceinline__ cudaError_t Invoke(ScanInitKernelT init_kernel, + ReduceByKeyKernelT reduce_by_key_kernel) + { + using AgentReduceByKeyPolicyT = typename ActivePolicyT::ReduceByKeyPolicyT; + const int block_threads = AgentReduceByKeyPolicyT::BLOCK_THREADS; + const int items_per_thread = AgentReduceByKeyPolicyT::ITEMS_PER_THREAD; + + cudaError error = cudaSuccess; + do + { + // Get device ordinal + int device_ordinal; + if (CubDebug(error = cudaGetDevice(&device_ordinal))) + { + break; + } + + // Number of input tiles + int tile_size = block_threads * items_per_thread; + int num_tiles = static_cast(cub::DivideAndRoundUp(num_items, tile_size)); + + // Specify temporary storage allocation requirements + size_t allocation_sizes[1]; + if (CubDebug(error = ScanTileStateT::AllocationSize(num_tiles, allocation_sizes[0]))) + { + break; // bytes needed for tile status descriptors + } + + // Compute allocation pointers into the single storage blob (or compute + // the necessary size of the blob) + void *allocations[1] = {}; + if (CubDebug( + error = + AliasTemporaries(d_temp_storage, temp_storage_bytes, allocations, allocation_sizes))) + { + break; + } + + if (d_temp_storage == nullptr) + { + // Return if the caller is simply requesting the size of the storage + // allocation + break; + } + + // Construct the tile status interface + ScanTileStateT tile_state; + if (CubDebug(error = tile_state.Init(num_tiles, allocations[0], allocation_sizes[0]))) + { + break; + } + + // Log init_kernel configuration + int init_grid_size = CUB_MAX(1, cub::DivideAndRoundUp(num_tiles, INIT_KERNEL_THREADS)); + +#ifdef CUB_DETAIL_DEBUG_ENABLE_LOG + _CubLog("Invoking init_kernel<<<%d, %d, 0, %lld>>>()\n", + init_grid_size, + INIT_KERNEL_THREADS, + (long long)stream); +#endif + + // Invoke init_kernel to initialize tile descriptors + THRUST_NS_QUALIFIER::cuda_cub::launcher::triple_chevron(init_grid_size, + INIT_KERNEL_THREADS, + 0, + stream) + .doit(init_kernel, tile_state, num_tiles, d_num_runs_out); + + // Check for failure to launch + if (CubDebug(error = cudaPeekAtLastError())) + { + break; + } + + // Sync the stream if specified to flush runtime errors + error = detail::DebugSyncStream(stream); + if (CubDebug(error)) + { + break; + } + + // Return if empty problem + if (num_items == 0) + { + break; + } + + // Get SM occupancy for reduce_by_key_kernel + int reduce_by_key_sm_occupancy; + if (CubDebug(error = MaxSmOccupancy(reduce_by_key_sm_occupancy, + reduce_by_key_kernel, + block_threads))) + { + break; + } + + // Get max x-dimension of grid + int max_dim_x; + if (CubDebug( + error = cudaDeviceGetAttribute(&max_dim_x, cudaDevAttrMaxGridDimX, device_ordinal))) + { + break; + } + + // Run grids in epochs (in case number of tiles exceeds max x-dimension + int scan_grid_size = CUB_MIN(num_tiles, max_dim_x); + for (int start_tile = 0; start_tile < num_tiles; start_tile += scan_grid_size) + { +// Log reduce_by_key_kernel configuration +#ifdef CUB_DETAIL_DEBUG_ENABLE_LOG + _CubLog("Invoking %d reduce_by_key_kernel<<<%d, %d, 0, %lld>>>(), %d " + "items per thread, %d SM occupancy\n", + start_tile, + scan_grid_size, + block_threads, + (long long)stream, + items_per_thread, + reduce_by_key_sm_occupancy); +#endif + + // Invoke reduce_by_key_kernel + THRUST_NS_QUALIFIER::cuda_cub::launcher::triple_chevron(scan_grid_size, + block_threads, + 0, + stream) + .doit(reduce_by_key_kernel, + d_keys_in, + d_unique_out, + d_values_in, + d_aggregates_out, + d_num_runs_out, + tile_state, + start_tile, + equality_op, + reduction_op, + num_items); + + // Check for failure to launch + if (CubDebug(error = cudaPeekAtLastError())) + { + break; + } + + // Sync the stream if specified to flush runtime errors + error = detail::DebugSyncStream(stream); + if (CubDebug(error)) + { + break; + } + } + } while (0); + + return error; + } + + template + CUB_RUNTIME_FUNCTION __forceinline__ cudaError_t Invoke() + { + using MaxPolicyT = typename SelectedPolicy::MaxPolicy; + return Invoke(DeviceCompactInitKernel, + DeviceReduceByKeyKernel); + } + + /** + * Internal dispatch routine + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no + * work is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in] d_keys_in + * Pointer to the input sequence of keys + * + * @param[out] d_unique_out + * Pointer to the output sequence of unique keys (one key per run) + * + * @param[in] d_values_in + * Pointer to the input sequence of corresponding values + * + * @param[out] d_aggregates_out + * Pointer to the output sequence of value aggregates + * (one aggregate per run) + * + * @param[out] d_num_runs_out + * Pointer to total number of runs encountered + * (i.e., the length of d_unique_out) + * + * @param[in] equality_op + * KeyT equality operator + * + * @param[in] reduction_op + * ValueT reduction operator + * + * @param[in] num_items + * Total number of items to select from + * + * @param[in] stream + * CUDA stream to launch kernels within. Default is stream0. + */ + CUB_RUNTIME_FUNCTION __forceinline__ static cudaError_t + Dispatch(void *d_temp_storage, + size_t &temp_storage_bytes, + KeysInputIteratorT d_keys_in, + UniqueOutputIteratorT d_unique_out, + ValuesInputIteratorT d_values_in, + AggregatesOutputIteratorT d_aggregates_out, + NumRunsOutputIteratorT d_num_runs_out, + EqualityOpT equality_op, + ReductionOpT reduction_op, + OffsetT num_items, + cudaStream_t stream) + { + using MaxPolicyT = typename SelectedPolicy::MaxPolicy; + + cudaError error = cudaSuccess; + + do + { + // Get PTX version + int ptx_version = 0; + if (CubDebug(error = PtxVersion(ptx_version))) + { + break; + } + + DispatchReduceByKey dispatch(d_temp_storage, + temp_storage_bytes, + d_keys_in, + d_unique_out, + d_values_in, + d_aggregates_out, + d_num_runs_out, + equality_op, + reduction_op, + num_items, + stream); + + // Dispatch + if (CubDebug(error = MaxPolicyT::Invoke(ptx_version, dispatch))) + { + break; + } + } while (0); + + return error; + } + + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION __forceinline__ static cudaError_t + Dispatch(void *d_temp_storage, + size_t &temp_storage_bytes, + KeysInputIteratorT d_keys_in, + UniqueOutputIteratorT d_unique_out, + ValuesInputIteratorT d_values_in, + AggregatesOutputIteratorT d_aggregates_out, + NumRunsOutputIteratorT d_num_runs_out, + EqualityOpT equality_op, + ReductionOpT reduction_op, + OffsetT num_items, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return Dispatch(d_temp_storage, + temp_storage_bytes, + d_keys_in, + d_unique_out, + d_values_in, + d_aggregates_out, + d_num_runs_out, + equality_op, + reduction_op, + num_items, + stream); + } +}; + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_rle.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_rle.cuh new file mode 100644 index 0000000000000000000000000000000000000000..2f7a82c198dd0f92d70872a648cba6af99d3ef11 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_rle.cuh @@ -0,0 +1,590 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * @file + * cub::DeviceRle provides device-wide, parallel operations for run-length-encoding sequences of + * data items residing within device-accessible memory. + */ + +#pragma once + +#include +#include +#include +#include +#include +#include +#include + +#include + +#include +#include + +#include + +CUB_NAMESPACE_BEGIN + +/****************************************************************************** + * Kernel entry points + *****************************************************************************/ + +/** + * Select kernel entry point (multi-block) + * + * Performs functor-based selection if SelectOp functor type != NullType + * Otherwise performs flag-based selection if FlagIterator's value type != NullType + * Otherwise performs discontinuity selection (keep unique) + * + * @tparam AgentRlePolicyT + * Parameterized AgentRlePolicyT tuning policy type + * + * @tparam InputIteratorT + * Random-access input iterator type for reading input items \iterator + * + * @tparam OffsetsOutputIteratorT + * Random-access output iterator type for writing run-offset values \iterator + * + * @tparam LengthsOutputIteratorT + * Random-access output iterator type for writing run-length values \iterator + * + * @tparam NumRunsOutputIteratorT + * Output iterator type for recording the number of runs encountered \iterator + * + * @tparam ScanTileStateT + * Tile status interface type + * + * @tparam EqualityOpT + * T equality operator type + * + * @tparam OffsetT + * Signed integer type for global offsets + * + * @param d_in + * Pointer to input sequence of data items + * + * @param d_offsets_out + * Pointer to output sequence of run-offsets + * + * @param d_lengths_out + * Pointer to output sequence of run-lengths + * + * @param d_num_runs_out + * Pointer to total number of runs (i.e., length of `d_offsets_out`) + * + * @param tile_status + * Tile status interface + * + * @param equality_op + * Equality operator for input items + * + * @param num_items + * Total number of input items (i.e., length of `d_in`) + * + * @param num_tiles + * Total number of tiles for the entire problem + */ +template +__launch_bounds__(int(ChainedPolicyT::ActivePolicy::RleSweepPolicyT::BLOCK_THREADS)) __global__ + void DeviceRleSweepKernel(InputIteratorT d_in, + OffsetsOutputIteratorT d_offsets_out, + LengthsOutputIteratorT d_lengths_out, + NumRunsOutputIteratorT d_num_runs_out, + ScanTileStateT tile_status, + EqualityOpT equality_op, + OffsetT num_items, + int num_tiles) +{ + using AgentRlePolicyT = typename ChainedPolicyT::ActivePolicy::RleSweepPolicyT; + + // Thread block type for selecting data from input tiles + using AgentRleT = AgentRle; + + // Shared memory for AgentRle + __shared__ typename AgentRleT::TempStorage temp_storage; + + // Process tiles + AgentRleT(temp_storage, d_in, d_offsets_out, d_lengths_out, equality_op, num_items) + .ConsumeRange(num_tiles, tile_status, d_num_runs_out); +} + +/****************************************************************************** + * Dispatch + ******************************************************************************/ + +namespace detail +{ + +template +struct device_rle_policy_hub +{ + /// SM35 + struct Policy350 : ChainedPolicy<350, Policy350, Policy350> + { + enum + { + NOMINAL_4B_ITEMS_PER_THREAD = 15, + + ITEMS_PER_THREAD = CUB_MIN(NOMINAL_4B_ITEMS_PER_THREAD, + CUB_MAX(1, (NOMINAL_4B_ITEMS_PER_THREAD * 4 / sizeof(T)))), + }; + + using RleSweepPolicyT = + AgentRlePolicy<96, + ITEMS_PER_THREAD, + BLOCK_LOAD_DIRECT, + LOAD_LDG, + true, + BLOCK_SCAN_WARP_SCANS, + detail::default_reduce_by_key_delay_constructor_t>; + }; + + using MaxPolicy = Policy350; +}; + +} // namespace detail + +/** + * Utility class for dispatching the appropriately-tuned kernels for DeviceRle + * + * @tparam InputIteratorT + * Random-access input iterator type for reading input items \iterator + * + * @tparam OffsetsOutputIteratorT + * Random-access output iterator type for writing run-offset values \iterator + * + * @tparam LengthsOutputIteratorT + * Random-access output iterator type for writing run-length values \iterator + * + * @tparam NumRunsOutputIteratorT + * Output iterator type for recording the number of runs encountered \iterator + * + * @tparam EqualityOpT + * T equality operator type + * + * @tparam OffsetT + * Signed integer type for global offsets + * + * @tparam SelectedPolicy + * Implementation detail, do not specify directly, requirements on the + * content of this type are subject to breaking change. + */ +template >> +struct DeviceRleDispatch +{ + /****************************************************************************** + * Types and constants + ******************************************************************************/ + + // The lengths output value type + using LengthT = cub::detail::non_void_value_t; + + enum + { + INIT_KERNEL_THREADS = 128, + }; + + // Tile status descriptor interface type + using ScanTileStateT = ReduceByKeyScanTileState; + + void *d_temp_storage; + size_t &temp_storage_bytes; + InputIteratorT d_in; + OffsetsOutputIteratorT d_offsets_out; + LengthsOutputIteratorT d_lengths_out; + NumRunsOutputIteratorT d_num_runs_out; + EqualityOpT equality_op; + OffsetT num_items; + cudaStream_t stream; + + CUB_RUNTIME_FUNCTION __forceinline__ DeviceRleDispatch(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OffsetsOutputIteratorT d_offsets_out, + LengthsOutputIteratorT d_lengths_out, + NumRunsOutputIteratorT d_num_runs_out, + EqualityOpT equality_op, + OffsetT num_items, + cudaStream_t stream) + : d_temp_storage(d_temp_storage) + , temp_storage_bytes(temp_storage_bytes) + , d_in(d_in) + , d_offsets_out(d_offsets_out) + , d_lengths_out(d_lengths_out) + , d_num_runs_out(d_num_runs_out) + , equality_op(equality_op) + , num_items(num_items) + , stream(stream) + {} + + /****************************************************************************** + * Dispatch entrypoints + ******************************************************************************/ + + /** + * Internal dispatch routine for computing a device-wide run-length-encode using the + * specified kernel functions. + * + * @tparam DeviceScanInitKernelPtr + * Function type of cub::DeviceScanInitKernel + * + * @tparam DeviceRleSweepKernelPtr + * Function type of cub::DeviceRleSweepKernelPtr + * + * @param d_temp_storage + * Device-accessible allocation of temporary storage. + * When NULL, the required allocation size is written to + * `temp_storage_bytes` and no work is done. + * + * @param temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param d_in + * Pointer to the input sequence of data items + * + * @param d_offsets_out + * Pointer to the output sequence of run-offsets + * + * @param d_lengths_out + * Pointer to the output sequence of run-lengths + * + * @param d_num_runs_out + * Pointer to the total number of runs encountered (i.e., length of `d_offsets_out`) + * + * @param equality_op + * Equality operator for input items + * + * @param num_items + * Total number of input items (i.e., length of `d_in`) + * + * @param stream + * CUDA stream to launch kernels within. Default is stream0. + * + * @param ptx_version + * PTX version of dispatch kernels + * + * @param device_scan_init_kernel + * Kernel function pointer to parameterization of cub::DeviceScanInitKernel + * + * @param device_rle_sweep_kernel + * Kernel function pointer to parameterization of cub::DeviceRleSweepKernel + */ + template + CUB_RUNTIME_FUNCTION __forceinline__ cudaError_t + Invoke(DeviceScanInitKernelPtr device_scan_init_kernel, + DeviceRleSweepKernelPtr device_rle_sweep_kernel) + { + cudaError error = cudaSuccess; + + const int block_threads = ActivePolicyT::RleSweepPolicyT::BLOCK_THREADS; + const int items_per_thread = ActivePolicyT::RleSweepPolicyT::ITEMS_PER_THREAD; + + do + { + // Get device ordinal + int device_ordinal; + if (CubDebug(error = cudaGetDevice(&device_ordinal))) + break; + + // Number of input tiles + int tile_size = block_threads * items_per_thread; + int num_tiles = static_cast(cub::DivideAndRoundUp(num_items, tile_size)); + + // Specify temporary storage allocation requirements + size_t allocation_sizes[1]; + if (CubDebug(error = ScanTileStateT::AllocationSize(num_tiles, allocation_sizes[0]))) + { + break; // bytes needed for tile status descriptors + } + + // Compute allocation pointers into the single storage blob (or compute the necessary size of + // the blob) + void *allocations[1] = {}; + if (CubDebug( + error = + AliasTemporaries(d_temp_storage, temp_storage_bytes, allocations, allocation_sizes))) + { + break; + } + + if (d_temp_storage == nullptr) + { + // Return if the caller is simply requesting the size of the storage allocation + break; + } + + // Construct the tile status interface + ScanTileStateT tile_status; + if (CubDebug(error = tile_status.Init(num_tiles, allocations[0], allocation_sizes[0]))) + { + break; + } + + // Log device_scan_init_kernel configuration + int init_grid_size = CUB_MAX(1, cub::DivideAndRoundUp(num_tiles, INIT_KERNEL_THREADS)); + +#ifdef CUB_DETAIL_DEBUG_ENABLE_LOG + _CubLog("Invoking device_scan_init_kernel<<<%d, %d, 0, %lld>>>()\n", + init_grid_size, + INIT_KERNEL_THREADS, + (long long)stream); +#endif + + // Invoke device_scan_init_kernel to initialize tile descriptors and queue descriptors + THRUST_NS_QUALIFIER::cuda_cub::launcher::triple_chevron(init_grid_size, + INIT_KERNEL_THREADS, + 0, + stream) + .doit(device_scan_init_kernel, tile_status, num_tiles, d_num_runs_out); + + // Check for failure to launch + if (CubDebug(error = cudaPeekAtLastError())) + { + break; + } + + // Sync the stream if specified to flush runtime errors + error = detail::DebugSyncStream(stream); + if (CubDebug(error)) + { + break; + } + + // Return if empty problem + if (num_items == 0) + { + break; + } + + // Get SM occupancy for device_rle_sweep_kernel + int device_rle_kernel_sm_occupancy; + if (CubDebug(error = MaxSmOccupancy(device_rle_kernel_sm_occupancy, // out + device_rle_sweep_kernel, + block_threads))) + { + break; + } + + // Get max x-dimension of grid + int max_dim_x; + if (CubDebug( + error = cudaDeviceGetAttribute(&max_dim_x, cudaDevAttrMaxGridDimX, device_ordinal))) + { + break; + } + + // Get grid size for scanning tiles + dim3 scan_grid_size; + scan_grid_size.z = 1; + scan_grid_size.y = cub::DivideAndRoundUp(num_tiles, max_dim_x); + scan_grid_size.x = CUB_MIN(num_tiles, max_dim_x); + +// Log device_rle_sweep_kernel configuration +#ifdef CUB_DETAIL_DEBUG_ENABLE_LOG + _CubLog("Invoking device_rle_sweep_kernel<<<{%d,%d,%d}, %d, 0, %lld>>>(), %d items per " + "thread, %d SM occupancy\n", + scan_grid_size.x, + scan_grid_size.y, + scan_grid_size.z, + block_threads, + (long long)stream, + items_per_thread, + device_rle_kernel_sm_occupancy); +#endif + + // Invoke device_rle_sweep_kernel + THRUST_NS_QUALIFIER::cuda_cub::launcher::triple_chevron(scan_grid_size, + block_threads, + 0, + stream) + .doit(device_rle_sweep_kernel, + d_in, + d_offsets_out, + d_lengths_out, + d_num_runs_out, + tile_status, + equality_op, + num_items, + num_tiles); + + // Check for failure to launch + if (CubDebug(error = cudaPeekAtLastError())) + { + break; + } + + // Sync the stream if specified to flush runtime errors + error = detail::DebugSyncStream(stream); + if (CubDebug(error)) + { + break; + } + } while (0); + + return error; + } + + template + CUB_RUNTIME_FUNCTION __forceinline__ cudaError_t Invoke() + { + using MaxPolicyT = typename SelectedPolicy::MaxPolicy; + return Invoke(DeviceCompactInitKernel, + DeviceRleSweepKernel); + } + + /** + * Internal dispatch routine + * + * @param d_temp_storage + * Device-accessible allocation of temporary storage. + * When NULL, the required allocation size is written to + * `temp_storage_bytes` and no work is done. + * + * @param temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param d_in + * Pointer to input sequence of data items + * + * @param d_offsets_out + * Pointer to output sequence of run-offsets + * + * @param d_lengths_out + * Pointer to output sequence of run-lengths + * + * @param d_num_runs_out + * Pointer to total number of runs (i.e., length of `d_offsets_out`) + * + * @param equality_op + * Equality operator for input items + * + * @param num_items + * Total number of input items (i.e., length of `d_in`) + * + * @param stream + * [optional] CUDA stream to launch kernels within. + * Default is stream0. + */ + CUB_RUNTIME_FUNCTION __forceinline__ static cudaError_t + Dispatch(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OffsetsOutputIteratorT d_offsets_out, + LengthsOutputIteratorT d_lengths_out, + NumRunsOutputIteratorT d_num_runs_out, + EqualityOpT equality_op, + OffsetT num_items, + cudaStream_t stream) + { + using MaxPolicyT = typename SelectedPolicy::MaxPolicy; + + cudaError error = cudaSuccess; + + do + { + // Get PTX version + int ptx_version = 0; + if (CubDebug(error = PtxVersion(ptx_version))) + { + break; + } + + DeviceRleDispatch dispatch(d_temp_storage, + temp_storage_bytes, + d_in, + d_offsets_out, + d_lengths_out, + d_num_runs_out, + equality_op, + num_items, + stream); + + // Dispatch + if (CubDebug(error = MaxPolicyT::Invoke(ptx_version, dispatch))) + { + break; + } + } while (0); + + return error; + } + + CUB_RUNTIME_FUNCTION __forceinline__ static cudaError_t + Dispatch(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OffsetsOutputIteratorT d_offsets_out, + LengthsOutputIteratorT d_lengths_out, + NumRunsOutputIteratorT d_num_runs_out, + EqualityOpT equality_op, + OffsetT num_items, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return Dispatch(d_temp_storage, + temp_storage_bytes, + d_in, + d_offsets_out, + d_lengths_out, + d_num_runs_out, + equality_op, + num_items, + stream); + } +}; + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_scan.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_scan.cuh new file mode 100644 index 0000000000000000000000000000000000000000..1529e21bbb2104fc353e47ba31c061a2405b98a7 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_scan.cuh @@ -0,0 +1,773 @@ + +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2022, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * @file cub::DeviceScan provides device-wide, parallel operations for + * computing a prefix scan across a sequence of data items residing + * within device-accessible memory. + */ + +#pragma once + +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +CUB_NAMESPACE_BEGIN + +/****************************************************************************** + * Kernel entry points + *****************************************************************************/ + +/** + * @brief Initialization kernel for tile status initialization (multi-block) + * + * @tparam ScanTileStateT + * Tile status interface type + * + * @param[in] tile_state + * Tile status interface + * + * @param[in] num_tiles + * Number of tiles + */ +template +__global__ void DeviceScanInitKernel(ScanTileStateT tile_state, int num_tiles) +{ + // Initialize tile status + tile_state.InitializeStatus(num_tiles); +} + +/** + * Initialization kernel for tile status initialization (multi-block) + * + * @tparam ScanTileStateT + * Tile status interface type + * + * @tparam NumSelectedIteratorT + * Output iterator type for recording the number of items selected + * + * @param[in] tile_state + * Tile status interface + * + * @param[in] num_tiles + * Number of tiles + * + * @param[out] d_num_selected_out + * Pointer to the total number of items selected + * (i.e., length of `d_selected_out`) + */ +template +__global__ void DeviceCompactInitKernel(ScanTileStateT tile_state, + int num_tiles, + NumSelectedIteratorT d_num_selected_out) +{ + // Initialize tile status + tile_state.InitializeStatus(num_tiles); + + // Initialize d_num_selected_out + if ((blockIdx.x == 0) && (threadIdx.x == 0)) + { + *d_num_selected_out = 0; + } +} + +/** + * @brief Scan kernel entry point (multi-block) + * + * + * @tparam ChainedPolicyT + * Chained tuning policy + * + * @tparam InputIteratorT + * Random-access input iterator type for reading scan inputs \iterator + * + * @tparam OutputIteratorT + * Random-access output iterator type for writing scan outputs \iterator + * + * @tparam ScanTileStateT + * Tile status interface type + * + * @tparam ScanOpT + * Binary scan functor type having member + * `auto operator()(const T &a, const U &b)` + * + * @tparam InitValueT + * Initial value to seed the exclusive scan + * (cub::NullType for inclusive scans) + * + * @tparam OffsetT + * Signed integer type for global offsets + * + * @paramInput d_in + * data + * + * @paramOutput d_out + * data + * + * @paramTile tile_state + * status interface + * + * @paramThe start_tile + * starting tile for the current grid + * + * @paramBinary scan_op + * scan functor + * + * @paramInitial init_value + * value to seed the exclusive scan + * + * @paramTotal num_items + * number of scan items for the entire problem + */ +template +__launch_bounds__(int(ChainedPolicyT::ActivePolicy::ScanPolicyT::BLOCK_THREADS)) + __global__ void DeviceScanKernel(InputIteratorT d_in, + OutputIteratorT d_out, + ScanTileStateT tile_state, + int start_tile, + ScanOpT scan_op, + InitValueT init_value, + OffsetT num_items) +{ + using RealInitValueT = typename InitValueT::value_type; + typedef typename ChainedPolicyT::ActivePolicy::ScanPolicyT ScanPolicyT; + + // Thread block type for scanning input tiles + typedef AgentScan + AgentScanT; + + // Shared memory for AgentScan + __shared__ typename AgentScanT::TempStorage temp_storage; + + RealInitValueT real_init_value = init_value; + + // Process tiles + AgentScanT(temp_storage, d_in, d_out, scan_op, real_init_value) + .ConsumeRange(num_items, tile_state, start_tile); +} + +/****************************************************************************** + * Policy + ******************************************************************************/ + +namespace detail +{ +namespace scan +{ + +template +struct tuning +{ + static constexpr int threads = Threads; + static constexpr int items = Items; + + using delay_constructor = detail::fixed_delay_constructor_t; +}; + +template ::PRIMITIVE, + std::size_t AccumSize = sizeof(AccumT)> +struct sm90_tuning +{ + static constexpr int threads = 128; + static constexpr int items = 15; + + using delay_constructor = detail::default_delay_constructor_t; +}; + +// clang-format off +template struct sm90_tuning : tuning<192, 22, 168, 1140> {}; +template struct sm90_tuning : tuning<512, 12, 376, 1125> {}; +template struct sm90_tuning : tuning<128, 24, 648, 1245> {}; +template struct sm90_tuning : tuning<224, 24, 632, 1290> {}; + +template <> struct sm90_tuning : tuning<128, 24, 688, 1140> {}; +template <> struct sm90_tuning : tuning<224, 24, 576, 1215> {}; + +#if CUB_IS_INT128_ENABLED +template <> struct sm90_tuning< __int128_t, true, false, sizeof(__int128_t)> : tuning<576, 21, 860, 630> {}; +template <> struct sm90_tuning<__uint128_t, true, false, sizeof(__uint128_t)> : tuning<576, 21, 860, 630> {}; +#endif +// clang-format on + +} // namespace scan +} // namespace detail + +template +struct DeviceScanPolicy +{ + // For large values, use timesliced loads/stores to fit shared memory. + static constexpr bool LargeValues = sizeof(AccumT) > 128; + static constexpr BlockLoadAlgorithm ScanTransposedLoad = + LargeValues ? BLOCK_LOAD_WARP_TRANSPOSE_TIMESLICED + : BLOCK_LOAD_WARP_TRANSPOSE; + static constexpr BlockStoreAlgorithm ScanTransposedStore = + LargeValues ? BLOCK_STORE_WARP_TRANSPOSE_TIMESLICED + : BLOCK_STORE_WARP_TRANSPOSE; + + template + using policy_t = + AgentScanPolicy, + DelayConstructorT>; + + /// SM350 + struct Policy350 : ChainedPolicy<350, Policy350, Policy350> + { + // GTX Titan: 29.5B items/s (232.4 GB/s) @ 48M 32-bit T + using ScanPolicyT = policy_t<128, + 12, ///< Threads per block, items per thread + AccumT, + BLOCK_LOAD_DIRECT, + LOAD_CA, + BLOCK_STORE_WARP_TRANSPOSE_TIMESLICED, + BLOCK_SCAN_RAKING, + detail::default_delay_constructor_t>; + }; + + /// SM520 + struct Policy520 : ChainedPolicy<520, Policy520, Policy350> + { + // Titan X: 32.47B items/s @ 48M 32-bit T + using ScanPolicyT = policy_t<128, + 12, ///< Threads per block, items per thread + AccumT, + BLOCK_LOAD_DIRECT, + LOAD_CA, + ScanTransposedStore, + BLOCK_SCAN_WARP_SCANS, + detail::default_delay_constructor_t>; + }; + + /// SM600 + struct Policy600 : ChainedPolicy<600, Policy600, Policy520> + { + using ScanPolicyT = policy_t<128, + 15, ///< Threads per block, items per thread + AccumT, + ScanTransposedLoad, + LOAD_DEFAULT, + ScanTransposedStore, + BLOCK_SCAN_WARP_SCANS, + detail::default_delay_constructor_t>; + }; + + /// SM900 + struct Policy900 : ChainedPolicy<900, Policy900, Policy600> + { + using tuning = detail::scan::sm90_tuning::value>; + + using ScanPolicyT = policy_t; + }; + + using MaxPolicy = Policy900; +}; + +/****************************************************************************** + * Dispatch + ******************************************************************************/ + +/** + * @brief Utility class for dispatching the appropriately-tuned kernels for + * DeviceScan + * + * @tparam InputIteratorT + * Random-access input iterator type for reading scan inputs \iterator + * + * @tparam OutputIteratorT + * Random-access output iterator type for writing scan outputs \iterator + * + * @tparam ScanOpT + * Binary scan functor type having member + * `auto operator()(const T &a, const U &b)` + * + * @tparam InitValueT + * The init_value element type for ScanOpT (cub::NullType for inclusive scans) + * + * @tparam OffsetT + * Signed integer type for global offsets + * + */ +template ::value, + cub::detail::value_t, + typename InitValueT::value_type>, + cub::detail::value_t>, + typename SelectedPolicy = DeviceScanPolicy> +struct DispatchScan : SelectedPolicy +{ + //--------------------------------------------------------------------- + // Constants and Types + //--------------------------------------------------------------------- + + static constexpr int INIT_KERNEL_THREADS = 128; + + // The input value type + using InputT = cub::detail::value_t; + + /// Device-accessible allocation of temporary storage. When NULL, the + /// required allocation size is written to \p temp_storage_bytes and no work + /// is done. + void *d_temp_storage; + + /// Reference to size in bytes of \p d_temp_storage allocation + size_t &temp_storage_bytes; + + /// Iterator to the input sequence of data items + InputIteratorT d_in; + + /// Iterator to the output sequence of data items + OutputIteratorT d_out; + + /// Binary scan functor + ScanOpT scan_op; + + /// Initial value to seed the exclusive scan + InitValueT init_value; + + /// Total number of input items (i.e., the length of \p d_in) + OffsetT num_items; + + /// CUDA stream to launch kernels within. Default is stream0. + cudaStream_t stream; + + int ptx_version; + + /** + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no + * work is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in] d_in + * Iterator to the input sequence of data items + * + * @param[out] d_out + * Iterator to the output sequence of data items + * + * @param[in] num_items + * Total number of input items (i.e., the length of `d_in`) + * + * @param[in] scan_op + * Binary scan functor + * + * @param[in] init_value + * Initial value to seed the exclusive scan + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. + * Default is stream0. + */ + CUB_RUNTIME_FUNCTION __forceinline__ DispatchScan(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OutputIteratorT d_out, + OffsetT num_items, + ScanOpT scan_op, + InitValueT init_value, + cudaStream_t stream, + int ptx_version) + : d_temp_storage(d_temp_storage) + , temp_storage_bytes(temp_storage_bytes) + , d_in(d_in) + , d_out(d_out) + , scan_op(scan_op) + , init_value(init_value) + , num_items(num_items) + , stream(stream) + , ptx_version(ptx_version) + {} + + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION __forceinline__ DispatchScan(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OutputIteratorT d_out, + OffsetT num_items, + ScanOpT scan_op, + InitValueT init_value, + cudaStream_t stream, + bool debug_synchronous, + int ptx_version) + : d_temp_storage(d_temp_storage) + , temp_storage_bytes(temp_storage_bytes) + , d_in(d_in) + , d_out(d_out) + , scan_op(scan_op) + , init_value(init_value) + , num_items(num_items) + , stream(stream) + , ptx_version(ptx_version) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + } + + template + CUB_RUNTIME_FUNCTION __host__ __forceinline__ cudaError_t + Invoke(InitKernel init_kernel, ScanKernel scan_kernel) + { + typedef typename ActivePolicyT::ScanPolicyT Policy; + typedef typename cub::ScanTileState ScanTileStateT; + + // `LOAD_LDG` makes in-place execution UB and doesn't lead to better + // performance. + static_assert(Policy::LOAD_MODIFIER != CacheLoadModifier::LOAD_LDG, + "The memory consistency model does not apply to texture " + "accesses"); + + cudaError error = cudaSuccess; + do + { + // Get device ordinal + int device_ordinal; + if (CubDebug(error = cudaGetDevice(&device_ordinal))) + { + break; + } + + // Number of input tiles + int tile_size = Policy::BLOCK_THREADS * Policy::ITEMS_PER_THREAD; + int num_tiles = + static_cast(cub::DivideAndRoundUp(num_items, tile_size)); + + // Specify temporary storage allocation requirements + size_t allocation_sizes[1]; + if (CubDebug(error = ScanTileStateT::AllocationSize(num_tiles, + allocation_sizes[0]))) + { + break; // bytes needed for tile status descriptors + } + + // Compute allocation pointers into the single storage blob (or compute + // the necessary size of the blob) + void *allocations[1] = {}; + if (CubDebug(error = AliasTemporaries(d_temp_storage, + temp_storage_bytes, + allocations, + allocation_sizes))) + { + break; + } + + if (d_temp_storage == NULL) + { + // Return if the caller is simply requesting the size of the storage + // allocation + break; + } + + // Return if empty problem + if (num_items == 0) + { + break; + } + + // Construct the tile status interface + ScanTileStateT tile_state; + if (CubDebug(error = tile_state.Init(num_tiles, + allocations[0], + allocation_sizes[0]))) + { + break; + } + + // Log init_kernel configuration + int init_grid_size = cub::DivideAndRoundUp(num_tiles, + INIT_KERNEL_THREADS); + + #ifdef CUB_DETAIL_DEBUG_ENABLE_LOG + _CubLog("Invoking init_kernel<<<%d, %d, 0, %lld>>>()\n", + init_grid_size, + INIT_KERNEL_THREADS, + (long long)stream); + #endif + + // Invoke init_kernel to initialize tile descriptors + THRUST_NS_QUALIFIER::cuda_cub::launcher::triple_chevron( + init_grid_size, + INIT_KERNEL_THREADS, + 0, + stream) + .doit(init_kernel, tile_state, num_tiles); + + // Check for failure to launch + if (CubDebug(error = cudaPeekAtLastError())) + { + break; + } + + // Sync the stream if specified to flush runtime errors + error = detail::DebugSyncStream(stream); + if (CubDebug(error)) + { + break; + } + + // Get SM occupancy for scan_kernel + int scan_sm_occupancy; + if (CubDebug(error = MaxSmOccupancy(scan_sm_occupancy, // out + scan_kernel, + Policy::BLOCK_THREADS))) + { + break; + } + + // Get max x-dimension of grid + int max_dim_x; + if (CubDebug(error = cudaDeviceGetAttribute(&max_dim_x, + cudaDevAttrMaxGridDimX, + device_ordinal))) + { + break; + } + + // Run grids in epochs (in case number of tiles exceeds max x-dimension + int scan_grid_size = CUB_MIN(num_tiles, max_dim_x); + for (int start_tile = 0; start_tile < num_tiles; + start_tile += scan_grid_size) + { + // Log scan_kernel configuration + #ifdef CUB_DETAIL_DEBUG_ENABLE_LOG + _CubLog("Invoking %d scan_kernel<<<%d, %d, 0, %lld>>>(), %d items " + "per thread, %d SM occupancy\n", + start_tile, + scan_grid_size, + Policy::BLOCK_THREADS, + (long long)stream, + Policy::ITEMS_PER_THREAD, + scan_sm_occupancy); + #endif + + // Invoke scan_kernel + THRUST_NS_QUALIFIER::cuda_cub::launcher::triple_chevron( + scan_grid_size, + Policy::BLOCK_THREADS, + 0, + stream) + .doit(scan_kernel, + d_in, + d_out, + tile_state, + start_tile, + scan_op, + init_value, + num_items); + + // Check for failure to launch + if (CubDebug(error = cudaPeekAtLastError())) + { + break; + } + + // Sync the stream if specified to flush runtime errors + error = detail::DebugSyncStream(stream); + if (CubDebug(error)) + { + break; + } + } + } while (0); + + return error; + } + + template + CUB_RUNTIME_FUNCTION __host__ __forceinline__ cudaError_t Invoke() + { + typedef typename DispatchScan::MaxPolicy MaxPolicyT; + typedef typename cub::ScanTileState ScanTileStateT; + // Ensure kernels are instantiated. + return Invoke(DeviceScanInitKernel, + DeviceScanKernel); + } + + /** + * @brief Internal dispatch routine + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no + * work is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in] d_in + * Iterator to the input sequence of data items + * + * @param[out] d_out + * Iterator to the output sequence of data items + * + * @param[in] scan_op + * Binary scan functor + * + * @param[in] init_value + * Initial value to seed the exclusive scan + * + * @param[in] num_items + * Total number of input items (i.e., the length of `d_in`) + * + * @param[in] stream + * **[optional]** CUDA stream to launch kernels within. + * Default is stream0. + * + */ + CUB_RUNTIME_FUNCTION __forceinline__ static cudaError_t + Dispatch(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OutputIteratorT d_out, + ScanOpT scan_op, + InitValueT init_value, + OffsetT num_items, + cudaStream_t stream) + { + typedef typename DispatchScan::MaxPolicy MaxPolicyT; + + cudaError_t error; + do + { + // Get PTX version + int ptx_version = 0; + if (CubDebug(error = PtxVersion(ptx_version))) + { + break; + } + + // Create dispatch functor + DispatchScan dispatch(d_temp_storage, + temp_storage_bytes, + d_in, + d_out, + num_items, + scan_op, + init_value, + stream, + ptx_version); + + // Dispatch to chained policy + if (CubDebug(error = MaxPolicyT::Invoke(ptx_version, dispatch))) + { + break; + } + } while (0); + + return error; + } + + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION __forceinline__ static cudaError_t + Dispatch(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + OutputIteratorT d_out, + ScanOpT scan_op, + InitValueT init_value, + OffsetT num_items, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return Dispatch(d_temp_storage, + temp_storage_bytes, + d_in, + d_out, + scan_op, + init_value, + num_items, + stream); + } +}; + +CUB_NAMESPACE_END + diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_scan_by_key.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_scan_by_key.cuh new file mode 100644 index 0000000000000000000000000000000000000000..cfc499a35d0946947535f8fd4e4f6cc9dfe92f34 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_scan_by_key.cuh @@ -0,0 +1,736 @@ +/****************************************************************************** + * Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * @file DeviceScan provides device-wide, parallel operations for computing a + * prefix scan across a sequence of data items residing within + * device-accessible memory. + */ + +#pragma once + +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +CUB_NAMESPACE_BEGIN + +/****************************************************************************** + * Kernel entry points + *****************************************************************************/ + +/** + * @brief Scan kernel entry point (multi-block) + * + * @tparam ChainedPolicyT + * Chained tuning policy + * + * @tparam KeysInputIteratorT + * Random-access input iterator type + * + * @tparam ValuesInputIteratorT + * Random-access input iterator type + * + * @tparam ValuesOutputIteratorT + * Random-access output iterator type + * + * @tparam ScanByKeyTileStateT + * Tile status interface type + * + * @tparam EqualityOp + * Equality functor type + * + * @tparam ScanOpT + * Scan functor type + * + * @tparam InitValueT + * The init_value element for ScanOpT type (cub::NullType for inclusive scan) + * + * @tparam OffsetT + * Signed integer type for global offsets + * + * @param d_keys_in + * Input keys data + * + * @param d_keys_prev_in + * Predecessor items for each tile + * + * @param d_values_in + * Input values data + * + * @param d_values_out + * Output values data + * + * @param tile_state + * Tile status interface + * + * @param start_tile + * The starting tile for the current grid + * + * @param equality_op + * Binary equality functor + * + * @param scan_op + * Binary scan functor + * + * @param init_value + * Initial value to seed the exclusive scan + * + * @param num_items + * Total number of scan items for the entire problem + */ +template > +__launch_bounds__(int(ChainedPolicyT::ActivePolicy::ScanByKeyPolicyT::BLOCK_THREADS)) +__global__ void DeviceScanByKeyKernel(KeysInputIteratorT d_keys_in, + KeyT *d_keys_prev_in, + ValuesInputIteratorT d_values_in, + ValuesOutputIteratorT d_values_out, + ScanByKeyTileStateT tile_state, + int start_tile, + EqualityOp equality_op, + ScanOpT scan_op, + InitValueT init_value, + OffsetT num_items) +{ + using ScanByKeyPolicyT = + typename ChainedPolicyT::ActivePolicy::ScanByKeyPolicyT; + + // Thread block type for scanning input tiles + using AgentScanByKeyT = AgentScanByKey; + + // Shared memory for AgentScanByKey + __shared__ typename AgentScanByKeyT::TempStorage temp_storage; + + // Process tiles + AgentScanByKeyT(temp_storage, + d_keys_in, + d_keys_prev_in, + d_values_in, + d_values_out, + equality_op, + scan_op, + init_value) + .ConsumeRange(num_items, tile_state, start_tile); +} + +template +__global__ void DeviceScanByKeyInitKernel( + ScanTileStateT tile_state, + KeysInputIteratorT d_keys_in, + cub::detail::value_t *d_keys_prev_in, + unsigned items_per_tile, + int num_tiles) +{ + // Initialize tile status + tile_state.InitializeStatus(num_tiles); + + const unsigned tid = threadIdx.x + blockDim.x * blockIdx.x; + const unsigned tile_base = tid * items_per_tile; + + if (tid > 0 && tid < num_tiles) + { + d_keys_prev_in[tid] = d_keys_in[tile_base - 1]; + } +} + +/****************************************************************************** + * Policy + ******************************************************************************/ + +template +struct DeviceScanByKeyPolicy +{ + using KeyT = cub::detail::value_t; + + static constexpr size_t MaxInputBytes = (cub::max)(sizeof(KeyT), + sizeof(AccumT)); + + static constexpr size_t CombinedInputBytes = sizeof(KeyT) + sizeof(AccumT); + + // SM350 + struct Policy350 : ChainedPolicy<350, Policy350, Policy350> + { + static constexpr int NOMINAL_4B_ITEMS_PER_THREAD = 6; + static constexpr int ITEMS_PER_THREAD = + ((MaxInputBytes <= 8) + ? 6 + : Nominal4BItemsToItemsCombined(NOMINAL_4B_ITEMS_PER_THREAD, + CombinedInputBytes)); + + using ScanByKeyPolicyT = + AgentScanByKeyPolicy<128, + ITEMS_PER_THREAD, + BLOCK_LOAD_WARP_TRANSPOSE, + LOAD_CA, + BLOCK_SCAN_WARP_SCANS, + BLOCK_STORE_WARP_TRANSPOSE, + detail::default_reduce_by_key_delay_constructor_t>; + }; + + // SM520 + struct Policy520 : ChainedPolicy<520, Policy520, Policy350> + { + static constexpr int NOMINAL_4B_ITEMS_PER_THREAD = 9; + static constexpr int ITEMS_PER_THREAD = + ((MaxInputBytes <= 8) + ? 9 + : Nominal4BItemsToItemsCombined(NOMINAL_4B_ITEMS_PER_THREAD, + CombinedInputBytes)); + + using ScanByKeyPolicyT = + AgentScanByKeyPolicy<256, + ITEMS_PER_THREAD, + BLOCK_LOAD_WARP_TRANSPOSE, + LOAD_CA, + BLOCK_SCAN_WARP_SCANS, + BLOCK_STORE_WARP_TRANSPOSE, + detail::default_reduce_by_key_delay_constructor_t>; + }; + + using MaxPolicy = Policy520; +}; + +/****************************************************************************** + * Dispatch + ******************************************************************************/ + +/** + * @brief Utility class for dispatching the appropriately-tuned kernels + * for DeviceScan + * + * @tparam KeysInputIteratorT + * Random-access input iterator type + * + * @tparam ValuesInputIteratorT + * Random-access input iterator type + * + * @tparam ValuesOutputIteratorT + * Random-access output iterator type + * + * @tparam EqualityOp + * Equality functor type + * + * @tparam ScanOpT + * Scan functor type + * + * @tparam InitValueT + * The init_value element for ScanOpT type (cub::NullType for inclusive scan) + * + * @tparam OffsetT + * Signed integer type for global offsets + * + */ +template < + typename KeysInputIteratorT, + typename ValuesInputIteratorT, + typename ValuesOutputIteratorT, + typename EqualityOp, + typename ScanOpT, + typename InitValueT, + typename OffsetT, + typename AccumT = + detail::accumulator_t< + ScanOpT, + cub::detail::conditional_t< + std::is_same::value, + cub::detail::value_t, + InitValueT>, + cub::detail::value_t>, + typename SelectedPolicy = + DeviceScanByKeyPolicy> +struct DispatchScanByKey : SelectedPolicy +{ + //--------------------------------------------------------------------- + // Constants and Types + //--------------------------------------------------------------------- + + static constexpr int INIT_KERNEL_THREADS = 128; + + // The input key type + using KeyT = cub::detail::value_t; + + // The input value type + using InputT = cub::detail::value_t; + + /// Device-accessible allocation of temporary storage. When `nullptr`, the + /// required allocation size is written to `temp_storage_bytes` and no work + /// is done. + void *d_temp_storage; + + /// Reference to size in bytes of `d_temp_storage` allocation + size_t &temp_storage_bytes; + + /// Iterator to the input sequence of key items + KeysInputIteratorT d_keys_in; + + /// Iterator to the input sequence of value items + ValuesInputIteratorT d_values_in; + + /// Iterator to the input sequence of value items + ValuesOutputIteratorT d_values_out; + + /// Binary equality functor + EqualityOp equality_op; + + /// Binary scan functor + ScanOpT scan_op; + + /// Initial value to seed the exclusive scan + InitValueT init_value; + + /// Total number of input items (i.e., the length of `d_in`) + OffsetT num_items; + + /// CUDA stream to launch kernels within. + cudaStream_t stream; + int ptx_version; + + /** + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no + * work is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in] d_keys_in + * Iterator to the input sequence of key items + * + * @param[in] d_values_in + * Iterator to the input sequence of value items + * + * @param[out] d_values_out + * Iterator to the input sequence of value items + * + * @param[in] equality_op + * Binary equality functor + * + * @param[in] scan_op + * Binary scan functor + * + * @param[in] init_value + * Initial value to seed the exclusive scan + * + * @param[in] num_items + * Total number of input items (i.e., the length of `d_in`) + * + * @param[in] stream + * CUDA stream to launch kernels within. + */ + CUB_RUNTIME_FUNCTION __forceinline__ + DispatchScanByKey(void *d_temp_storage, + size_t &temp_storage_bytes, + KeysInputIteratorT d_keys_in, + ValuesInputIteratorT d_values_in, + ValuesOutputIteratorT d_values_out, + EqualityOp equality_op, + ScanOpT scan_op, + InitValueT init_value, + OffsetT num_items, + cudaStream_t stream, + int ptx_version) + : d_temp_storage(d_temp_storage) + , temp_storage_bytes(temp_storage_bytes) + , d_keys_in(d_keys_in) + , d_values_in(d_values_in) + , d_values_out(d_values_out) + , equality_op(equality_op) + , scan_op(scan_op) + , init_value(init_value) + , num_items(num_items) + , stream(stream) + , ptx_version(ptx_version) + {} + + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION __forceinline__ + DispatchScanByKey(void *d_temp_storage, + size_t &temp_storage_bytes, + KeysInputIteratorT d_keys_in, + ValuesInputIteratorT d_values_in, + ValuesOutputIteratorT d_values_out, + EqualityOp equality_op, + ScanOpT scan_op, + InitValueT init_value, + OffsetT num_items, + cudaStream_t stream, + bool debug_synchronous, + int ptx_version) + : d_temp_storage(d_temp_storage) + , temp_storage_bytes(temp_storage_bytes) + , d_keys_in(d_keys_in) + , d_values_in(d_values_in) + , d_values_out(d_values_out) + , equality_op(equality_op) + , scan_op(scan_op) + , init_value(init_value) + , num_items(num_items) + , stream(stream) + , ptx_version(ptx_version) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + } + + template + CUB_RUNTIME_FUNCTION __host__ __forceinline__ cudaError_t + Invoke(InitKernel init_kernel, ScanKernel scan_kernel) + { + using Policy = typename ActivePolicyT::ScanByKeyPolicyT; + using ScanByKeyTileStateT = ReduceByKeyScanTileState; + + cudaError error = cudaSuccess; + do + { + // Get device ordinal + int device_ordinal; + if (CubDebug(error = cudaGetDevice(&device_ordinal))) + { + break; + } + + // Number of input tiles + int tile_size = Policy::BLOCK_THREADS * Policy::ITEMS_PER_THREAD; + int num_tiles = + static_cast(cub::DivideAndRoundUp(num_items, tile_size)); + + // Specify temporary storage allocation requirements + size_t allocation_sizes[2]; + if (CubDebug( + error = ScanByKeyTileStateT::AllocationSize(num_tiles, + allocation_sizes[0]))) + { + break; // bytes needed for tile status descriptors + } + + allocation_sizes[1] = sizeof(KeyT) * (num_tiles + 1); + + // Compute allocation pointers into the single storage blob (or compute + // the necessary size of the blob) + void *allocations[2] = {}; + if (CubDebug(error = AliasTemporaries(d_temp_storage, + temp_storage_bytes, + allocations, + allocation_sizes))) + { + break; + } + + if (d_temp_storage == NULL) + { + // Return if the caller is simply requesting the size of the storage + // allocation + break; + } + + // Return if empty problem + if (num_items == 0) + { + break; + } + + KeyT *d_keys_prev_in = reinterpret_cast(allocations[1]); + + // Construct the tile status interface + ScanByKeyTileStateT tile_state; + if (CubDebug(error = tile_state.Init(num_tiles, + allocations[0], + allocation_sizes[0]))) + { + break; + } + + // Log init_kernel configuration + int init_grid_size = cub::DivideAndRoundUp(num_tiles, + INIT_KERNEL_THREADS); + #ifdef CUB_DETAIL_DEBUG_ENABLE_LOG + _CubLog("Invoking init_kernel<<<%d, %d, 0, %lld>>>()\n", + init_grid_size, + INIT_KERNEL_THREADS, + (long long)stream); + #endif + + // Invoke init_kernel to initialize tile descriptors + THRUST_NS_QUALIFIER::cuda_cub::launcher::triple_chevron( + init_grid_size, + INIT_KERNEL_THREADS, + 0, + stream) + .doit(init_kernel, + tile_state, + d_keys_in, + d_keys_prev_in, + tile_size, + num_tiles); + + // Check for failure to launch + if (CubDebug(error = cudaPeekAtLastError())) + { + break; + } + + // Sync the stream if specified to flush runtime errors + + error = detail::DebugSyncStream(stream); + if (CubDebug(error)) + { + break; + } + + // Get SM occupancy for scan_kernel + int scan_sm_occupancy; + if (CubDebug(error = MaxSmOccupancy(scan_sm_occupancy, // out + scan_kernel, + Policy::BLOCK_THREADS))) + { + break; + } + + // Get max x-dimension of grid + int max_dim_x; + if (CubDebug(error = cudaDeviceGetAttribute(&max_dim_x, + cudaDevAttrMaxGridDimX, + device_ordinal))) + { + break; + } + + // Run grids in epochs (in case number of tiles exceeds max x-dimension + int scan_grid_size = CUB_MIN(num_tiles, max_dim_x); + for (int start_tile = 0; start_tile < num_tiles; + start_tile += scan_grid_size) + { + // Log scan_kernel configuration + #ifdef CUB_DETAIL_DEBUG_ENABLE_LOG + _CubLog("Invoking %d scan_kernel<<<%d, %d, 0, %lld>>>(), %d items " + "per thread, %d SM occupancy\n", + start_tile, + scan_grid_size, + Policy::BLOCK_THREADS, + (long long)stream, + Policy::ITEMS_PER_THREAD, + scan_sm_occupancy); + #endif + + // Invoke scan_kernel + THRUST_NS_QUALIFIER::cuda_cub::launcher::triple_chevron( + scan_grid_size, + Policy::BLOCK_THREADS, + 0, + stream) + .doit(scan_kernel, + d_keys_in, + d_keys_prev_in, + d_values_in, + d_values_out, + tile_state, + start_tile, + equality_op, + scan_op, + init_value, + num_items); + + // Check for failure to launch + if (CubDebug(error = cudaPeekAtLastError())) + { + break; + } + + // Sync the stream if specified to flush runtime errors + error = detail::DebugSyncStream(stream); + if (CubDebug(error)) + { + break; + } + } + } while (0); + + return error; + } + + template + CUB_RUNTIME_FUNCTION __host__ __forceinline__ cudaError_t Invoke() + { + using MaxPolicyT = typename DispatchScanByKey::MaxPolicy; + using ScanByKeyTileStateT = ReduceByKeyScanTileState; + + // Ensure kernels are instantiated. + return Invoke( + DeviceScanByKeyInitKernel, + DeviceScanByKeyKernel); + } + + /** + * @brief Internal dispatch routine + * + * @param[in] d_temp_storage + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to `temp_storage_bytes` and no + * work is done. + * + * @param[in,out] temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param[in] d_keys_in + * Iterator to the input sequence of key items + * + * @param[in] d_values_in + * Iterator to the input sequence of value items + * + * @param[out] d_values_out + * Iterator to the input sequence of value items + * + * @param[in] equality_op + * Binary equality functor + * + * @param[in] scan_op + * Binary scan functor + * + * @param[in] init_value + * Initial value to seed the exclusive scan + * + * @param[in] num_items + * Total number of input items (i.e., the length of `d_in`) + * + * @param[in] stream + * CUDA stream to launch kernels within. + */ + CUB_RUNTIME_FUNCTION __forceinline__ static cudaError_t + Dispatch(void *d_temp_storage, + size_t &temp_storage_bytes, + KeysInputIteratorT d_keys_in, + ValuesInputIteratorT d_values_in, + ValuesOutputIteratorT d_values_out, + EqualityOp equality_op, + ScanOpT scan_op, + InitValueT init_value, + OffsetT num_items, + cudaStream_t stream) + { + using MaxPolicyT = typename DispatchScanByKey::MaxPolicy; + + cudaError_t error; + + do + { + // Get PTX version + int ptx_version = 0; + if (CubDebug(error = PtxVersion(ptx_version))) + { + break; + } + + // Create dispatch functor + DispatchScanByKey dispatch(d_temp_storage, + temp_storage_bytes, + d_keys_in, + d_values_in, + d_values_out, + equality_op, + scan_op, + init_value, + num_items, + stream, + ptx_version); + + // Dispatch to chained policy + if (CubDebug(error = MaxPolicyT::Invoke(ptx_version, dispatch))) + { + break; + } + } while (0); + + return error; + } + + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION __forceinline__ static cudaError_t + Dispatch(void *d_temp_storage, + size_t &temp_storage_bytes, + KeysInputIteratorT d_keys_in, + ValuesInputIteratorT d_values_in, + ValuesOutputIteratorT d_values_out, + EqualityOp equality_op, + ScanOpT scan_op, + InitValueT init_value, + OffsetT num_items, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return Dispatch(d_temp_storage, + temp_storage_bytes, + d_keys_in, + d_values_in, + d_values_out, + equality_op, + scan_op, + init_value, + num_items, + stream); + } +}; + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_segmented_sort.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_segmented_sort.cuh new file mode 100644 index 0000000000000000000000000000000000000000..d00e998f165f63833969c56fedd1cd3bcdcc5a08 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_segmented_sort.cuh @@ -0,0 +1,1783 @@ +/****************************************************************************** + * Copyright (c) 2011-2021, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include + +#include + + +CUB_NAMESPACE_BEGIN + + +/** + * @brief Fallback kernel, in case there's not enough segments to + * take advantage of partitioning. + * + * In this case, the sorting method is still selected based on the segment size. + * If a single warp can sort the segment, the algorithm will use the sub-warp + * merge sort. Otherwise, the algorithm will use the in-shared-memory version of + * block radix sort. If data don't fit into shared memory, the algorithm will + * use in-global-memory radix sort. + * + * @param[in] d_keys_in_orig + * Input keys buffer + * + * @param[out] d_keys_out_orig + * Output keys buffer + * + * @param[in,out] d_keys_double_buffer + * Double keys buffer + * + * @param[in] d_values_in_orig + * Input values buffer + * + * @param[out] d_values_out_orig + * Output values buffer + * + * @param[in,out] d_values_double_buffer + * Double values buffer + * + * @param[in] d_begin_offsets + * Random-access input iterator to the sequence of beginning offsets of length + * @p num_segments, such that `d_begin_offsets[i]` is the first element of the + * i-th data segment in `d_keys_*` and `d_values_*` + * + * @param[in] d_end_offsets + * Random-access input iterator to the sequence of ending offsets of length + * @p num_segments, such that `d_end_offsets[i]-1` is the last element of the + * i-th data segment in `d_keys_*` and `d_values_*`. + * If `d_end_offsets[i]-1 <= d_begin_offsets[i]`, the i-th segment is + * considered empty. + */ +template +__launch_bounds__(ChainedPolicyT::ActivePolicy::LargeSegmentPolicy::BLOCK_THREADS) +__global__ void DeviceSegmentedSortFallbackKernel( + const KeyT *d_keys_in_orig, + KeyT *d_keys_out_orig, + cub::detail::device_double_buffer d_keys_double_buffer, + const ValueT *d_values_in_orig, + ValueT *d_values_out_orig, + cub::detail::device_double_buffer d_values_double_buffer, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets) +{ + using ActivePolicyT = typename ChainedPolicyT::ActivePolicy; + using LargeSegmentPolicyT = typename ActivePolicyT::LargeSegmentPolicy; + using MediumPolicyT = + typename ActivePolicyT::SmallAndMediumSegmentedSortPolicyT::MediumPolicyT; + + const unsigned int segment_id = blockIdx.x; + OffsetT segment_begin = d_begin_offsets[segment_id]; + OffsetT segment_end = d_end_offsets[segment_id]; + OffsetT num_items = segment_end - segment_begin; + + if (num_items <= 0) + { + return; + } + + using AgentSegmentedRadixSortT = + cub::AgentSegmentedRadixSort; + + using WarpReduceT = cub::WarpReduce; + + using AgentWarpMergeSortT = + AgentSubWarpSort; + + __shared__ union + { + typename AgentSegmentedRadixSortT::TempStorage block_sort; + typename WarpReduceT::TempStorage warp_reduce; + typename AgentWarpMergeSortT::TempStorage medium_warp_sort; + } temp_storage; + + constexpr bool keys_only = std::is_same::value; + AgentSegmentedRadixSortT agent(num_items, temp_storage.block_sort); + + constexpr int begin_bit = 0; + constexpr int end_bit = sizeof(KeyT) * 8; + + constexpr int cacheable_tile_size = LargeSegmentPolicyT::BLOCK_THREADS * + LargeSegmentPolicyT::ITEMS_PER_THREAD; + + d_keys_in_orig += segment_begin; + d_keys_out_orig += segment_begin; + + if (!keys_only) + { + d_values_in_orig += segment_begin; + d_values_out_orig += segment_begin; + } + + if (num_items <= MediumPolicyT::ITEMS_PER_TILE) + { + // Sort by a single warp + if (threadIdx.x < MediumPolicyT::WARP_THREADS) + { + AgentWarpMergeSortT(temp_storage.medium_warp_sort) + .ProcessSegment(num_items, + d_keys_in_orig, + d_keys_out_orig, + d_values_in_orig, + d_values_out_orig); + } + } + else if (num_items < cacheable_tile_size) + { + // Sort by a CTA if data fits into shared memory + agent.ProcessSinglePass(begin_bit, + end_bit, + d_keys_in_orig, + d_values_in_orig, + d_keys_out_orig, + d_values_out_orig); + } + else + { + // Sort by a CTA with multiple reads from global memory + int current_bit = begin_bit; + int pass_bits = (cub::min)(int{LargeSegmentPolicyT::RADIX_BITS}, + (end_bit - current_bit)); + + d_keys_double_buffer = cub::detail::device_double_buffer( + d_keys_double_buffer.current() + segment_begin, + d_keys_double_buffer.alternate() + segment_begin); + + if (!keys_only) + { + d_values_double_buffer = cub::detail::device_double_buffer( + d_values_double_buffer.current() + segment_begin, + d_values_double_buffer.alternate() + segment_begin); + } + + agent.ProcessIterative(current_bit, + pass_bits, + d_keys_in_orig, + d_values_in_orig, + d_keys_double_buffer.current(), + d_values_double_buffer.current()); + current_bit += pass_bits; + + #pragma unroll 1 + while (current_bit < end_bit) + { + pass_bits = (cub::min)(int{LargeSegmentPolicyT::RADIX_BITS}, + (end_bit - current_bit)); + + CTA_SYNC(); + agent.ProcessIterative(current_bit, + pass_bits, + d_keys_double_buffer.current(), + d_values_double_buffer.current(), + d_keys_double_buffer.alternate(), + d_values_double_buffer.alternate()); + + d_keys_double_buffer.swap(); + d_values_double_buffer.swap(); + current_bit += pass_bits; + } + } +} + + +/** + * @brief Single kernel for moderate size (less than a few thousand items) + * segments. + * + * This kernel allocates a sub-warp per segment. Therefore, this kernel assigns + * a single thread block to multiple segments. Segments fall into two + * categories. An architectural warp usually sorts segments in the medium-size + * category, while a few threads sort segments in the small-size category. Since + * segments are partitioned, we know the last thread block index assigned to + * sort medium-size segments. A particular thread block can check this number to + * find out which category it was assigned to sort. In both cases, the + * merge sort is used. + * + * @param[in] small_segments + * Number of segments that can be sorted by a warp part + * + * @param[in] medium_segments + * Number of segments that can be sorted by a warp + * + * @param[in] medium_blocks + * Number of CTAs assigned to process medium segments + * + * @param[in] d_small_segments_indices + * Small segments mapping of length @p small_segments, such that + * `d_small_segments_indices[i]` is the input segment index + * + * @param[in] d_medium_segments_indices + * Medium segments mapping of length @p medium_segments, such that + * `d_medium_segments_indices[i]` is the input segment index + * + * @param[in] d_keys_in_orig + * Input keys buffer + * + * @param[out] d_keys_out_orig + * Output keys buffer + * + * @param[in] d_values_in_orig + * Input values buffer + * + * @param[out] d_values_out_orig + * Output values buffer + * + * @param[in] d_begin_offsets + * Random-access input iterator to the sequence of beginning offsets of length + * @p num_segments, such that `d_begin_offsets[i]` is the first element of the + * ith data segment in `d_keys_*` and `d_values_*` + * + * @param[in] d_end_offsets + * Random-access input iterator to the sequence of ending offsets of length + * @p num_segments, such that `d_end_offsets[i]-1` is the last element of the + * ith data segment in `d_keys_*` and `d_values_*`. If + * `d_end_offsets[i]-1 <= d_begin_offsets[i]`, the ith is + * considered empty. + */ +template +__launch_bounds__(ChainedPolicyT::ActivePolicy::SmallAndMediumSegmentedSortPolicyT::BLOCK_THREADS) +__global__ void DeviceSegmentedSortKernelSmall( + unsigned int small_segments, + unsigned int medium_segments, + unsigned int medium_blocks, + const unsigned int *d_small_segments_indices, + const unsigned int *d_medium_segments_indices, + const KeyT *d_keys_in, + KeyT *d_keys_out, + const ValueT *d_values_in, + ValueT *d_values_out, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets) +{ + const unsigned int tid = threadIdx.x; + const unsigned int bid = blockIdx.x; + + using ActivePolicyT = typename ChainedPolicyT::ActivePolicy; + using SmallAndMediumPolicyT = + typename ActivePolicyT::SmallAndMediumSegmentedSortPolicyT; + using MediumPolicyT = typename SmallAndMediumPolicyT::MediumPolicyT; + using SmallPolicyT = typename SmallAndMediumPolicyT::SmallPolicyT; + + constexpr int threads_per_medium_segment = MediumPolicyT::WARP_THREADS; + constexpr int threads_per_small_segment = SmallPolicyT::WARP_THREADS; + + using MediumAgentWarpMergeSortT = + AgentSubWarpSort; + + using SmallAgentWarpMergeSortT = + AgentSubWarpSort; + + constexpr auto segments_per_medium_block = + static_cast(SmallAndMediumPolicyT::SEGMENTS_PER_MEDIUM_BLOCK); + + constexpr auto segments_per_small_block = + static_cast(SmallAndMediumPolicyT::SEGMENTS_PER_SMALL_BLOCK); + + __shared__ union + { + typename MediumAgentWarpMergeSortT::TempStorage + medium_storage[segments_per_medium_block]; + + typename SmallAgentWarpMergeSortT::TempStorage + small_storage[segments_per_small_block]; + } temp_storage; + + if (bid < medium_blocks) + { + const unsigned int sid_within_block = tid / threads_per_medium_segment; + const unsigned int medium_segment_id = bid * segments_per_medium_block + + sid_within_block; + + if (medium_segment_id < medium_segments) + { + const unsigned int global_segment_id = + d_medium_segments_indices[medium_segment_id]; + + const OffsetT segment_begin = d_begin_offsets[global_segment_id]; + const OffsetT segment_end = d_end_offsets[global_segment_id]; + const OffsetT num_items = segment_end - segment_begin; + + MediumAgentWarpMergeSortT(temp_storage.medium_storage[sid_within_block]) + .ProcessSegment(num_items, + d_keys_in + segment_begin, + d_keys_out + segment_begin, + d_values_in + segment_begin, + d_values_out + segment_begin); + } + } + else + { + const unsigned int sid_within_block = tid / threads_per_small_segment; + const unsigned int small_segment_id = + (bid - medium_blocks) * segments_per_small_block + sid_within_block; + + if (small_segment_id < small_segments) + { + const unsigned int global_segment_id = + d_small_segments_indices[small_segment_id]; + + const OffsetT segment_begin = d_begin_offsets[global_segment_id]; + const OffsetT segment_end = d_end_offsets[global_segment_id]; + const OffsetT num_items = segment_end - segment_begin; + + SmallAgentWarpMergeSortT(temp_storage.small_storage[sid_within_block]) + .ProcessSegment(num_items, + d_keys_in + segment_begin, + d_keys_out + segment_begin, + d_values_in + segment_begin, + d_values_out + segment_begin); + } + } +} + +/** + * @brief Single kernel for large size (more than a few thousand items) segments. + * + * @param[in] d_keys_in_orig + * Input keys buffer + * + * @param[out] d_keys_out_orig + * Output keys buffer + * + * @param[in] d_values_in_orig + * Input values buffer + * + * @param[out] d_values_out_orig + * Output values buffer + * + * @param[in] d_begin_offsets + * Random-access input iterator to the sequence of beginning offsets of length + * @p num_segments, such that `d_begin_offsets[i]` is the first element of the + * ith data segment in `d_keys_*` and `d_values_*` + * + * @param[in] d_end_offsets + * Random-access input iterator to the sequence of ending offsets of length + * @p num_segments, such that `d_end_offsets[i]-1` is the last element of the + * ith data segment in `d_keys_*` and `d_values_*`. If + * `d_end_offsets[i]-1 <= d_begin_offsets[i]`, the ith is + * considered empty. + */ +template +__launch_bounds__(ChainedPolicyT::ActivePolicy::LargeSegmentPolicy::BLOCK_THREADS) +__global__ void DeviceSegmentedSortKernelLarge( + const unsigned int *d_segments_indices, + const KeyT *d_keys_in_orig, + KeyT *d_keys_out_orig, + cub::detail::device_double_buffer d_keys_double_buffer, + const ValueT *d_values_in_orig, + ValueT *d_values_out_orig, + cub::detail::device_double_buffer d_values_double_buffer, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets) +{ + using ActivePolicyT = typename ChainedPolicyT::ActivePolicy; + using LargeSegmentPolicyT = typename ActivePolicyT::LargeSegmentPolicy; + + constexpr int small_tile_size = LargeSegmentPolicyT::BLOCK_THREADS * + LargeSegmentPolicyT::ITEMS_PER_THREAD; + + using AgentSegmentedRadixSortT = + cub::AgentSegmentedRadixSort; + + __shared__ typename AgentSegmentedRadixSortT::TempStorage storage; + + const unsigned int bid = blockIdx.x; + + constexpr int begin_bit = 0; + constexpr int end_bit = sizeof(KeyT) * 8; + + const unsigned int global_segment_id = d_segments_indices[bid]; + const OffsetT segment_begin = d_begin_offsets[global_segment_id]; + const OffsetT segment_end = d_end_offsets[global_segment_id]; + const OffsetT num_items = segment_end - segment_begin; + + constexpr bool keys_only = std::is_same::value; + AgentSegmentedRadixSortT agent(num_items, storage); + + d_keys_in_orig += segment_begin; + d_keys_out_orig += segment_begin; + + if (!keys_only) + { + d_values_in_orig += segment_begin; + d_values_out_orig += segment_begin; + } + + if (num_items < small_tile_size) + { + // Sort in shared memory if the segment fits into it + agent.ProcessSinglePass(begin_bit, + end_bit, + d_keys_in_orig, + d_values_in_orig, + d_keys_out_orig, + d_values_out_orig); + } + else + { + // Sort reading global memory multiple times + int current_bit = begin_bit; + int pass_bits = (cub::min)(int{LargeSegmentPolicyT::RADIX_BITS}, + (end_bit - current_bit)); + + d_keys_double_buffer = cub::detail::device_double_buffer( + d_keys_double_buffer.current() + segment_begin, + d_keys_double_buffer.alternate() + segment_begin); + + if (!keys_only) + { + d_values_double_buffer = cub::detail::device_double_buffer( + d_values_double_buffer.current() + segment_begin, + d_values_double_buffer.alternate() + segment_begin); + } + + agent.ProcessIterative(current_bit, + pass_bits, + d_keys_in_orig, + d_values_in_orig, + d_keys_double_buffer.current(), + d_values_double_buffer.current()); + current_bit += pass_bits; + + #pragma unroll 1 + while (current_bit < end_bit) + { + pass_bits = (cub::min)(int{LargeSegmentPolicyT::RADIX_BITS}, + (end_bit - current_bit)); + + CTA_SYNC(); + agent.ProcessIterative(current_bit, + pass_bits, + d_keys_double_buffer.current(), + d_values_double_buffer.current(), + d_keys_double_buffer.alternate(), + d_values_double_buffer.alternate()); + + d_keys_double_buffer.swap(); + d_values_double_buffer.swap(); + current_bit += pass_bits; + } + } +} + +/* + * Continuation is called after the partitioning stage. It launches kernels + * to sort large and small segments using the partitioning results. Separation + * of this stage is required to eliminate device-side synchronization in + * the CDP mode. + */ +template +CUB_RUNTIME_FUNCTION cudaError_t +DeviceSegmentedSortContinuation( + LargeKernelT large_kernel, + SmallKernelT small_kernel, + int num_segments, + KeyT *d_current_keys, + KeyT *d_final_keys, + detail::device_double_buffer d_keys_double_buffer, + ValueT *d_current_values, + ValueT *d_final_values, + detail::device_double_buffer d_values_double_buffer, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + unsigned int *group_sizes, + unsigned int *large_and_medium_segments_indices, + unsigned int *small_segments_indices, + cudaStream_t stream) +{ + cudaError error = cudaSuccess; + + const unsigned int large_segments = group_sizes[0]; + + if (large_segments > 0) + { + // One CTA per segment + const unsigned int blocks_in_grid = large_segments; + + #ifdef CUB_DETAIL_DEBUG_ENABLE_LOG + _CubLog("Invoking " + "DeviceSegmentedSortKernelLarge<<<%d, %d, 0, %lld>>>()\n", + static_cast(blocks_in_grid), + LargeSegmentPolicyT::BLOCK_THREADS, + (long long)stream); + #endif + + THRUST_NS_QUALIFIER::cuda_cub::launcher::triple_chevron( + blocks_in_grid, + LargeSegmentPolicyT::BLOCK_THREADS, + 0, + stream) + .doit(large_kernel, + large_and_medium_segments_indices, + d_current_keys, + d_final_keys, + d_keys_double_buffer, + d_current_values, + d_final_values, + d_values_double_buffer, + d_begin_offsets, + d_end_offsets); + + // Check for failure to launch + if (CubDebug(error = cudaPeekAtLastError())) + { + return error; + } + + // Sync the stream if specified to flush runtime errors + error = detail::DebugSyncStream(stream); + if (CubDebug(error)) + { + return error; + } + } + + const unsigned int small_segments = group_sizes[1]; + const unsigned int medium_segments = + static_cast(num_segments) - + (large_segments + small_segments); + + const unsigned int small_blocks = + DivideAndRoundUp(small_segments, + SmallAndMediumPolicyT::SEGMENTS_PER_SMALL_BLOCK); + + const unsigned int medium_blocks = + DivideAndRoundUp(medium_segments, + SmallAndMediumPolicyT::SEGMENTS_PER_MEDIUM_BLOCK); + + const unsigned int small_and_medium_blocks_in_grid = small_blocks + + medium_blocks; + + if (small_and_medium_blocks_in_grid) + { + #ifdef CUB_DETAIL_DEBUG_ENABLE_LOG + _CubLog("Invoking " + "DeviceSegmentedSortKernelSmall<<<%d, %d, 0, %lld>>>()\n", + static_cast(small_and_medium_blocks_in_grid), + SmallAndMediumPolicyT::BLOCK_THREADS, + (long long)stream); + #endif + + THRUST_NS_QUALIFIER::cuda_cub::launcher::triple_chevron( + small_and_medium_blocks_in_grid, + SmallAndMediumPolicyT::BLOCK_THREADS, + 0, + stream) + .doit(small_kernel, + small_segments, + medium_segments, + medium_blocks, + small_segments_indices, + large_and_medium_segments_indices + num_segments - medium_segments, + d_current_keys, + d_final_keys, + d_current_values, + d_final_values, + d_begin_offsets, + d_end_offsets); + + // Check for failure to launch + if (CubDebug(error = cudaPeekAtLastError())) + { + return error; + } + + // Sync the stream if specified to flush runtime errors + error = detail::DebugSyncStream(stream); + if (CubDebug(error)) + { + return error; + } + } + + return error; +} + +#ifdef CUB_RDC_ENABLED +/* + * Continuation kernel is used only in the CDP mode. It's used to + * launch DeviceSegmentedSortContinuation as a separate kernel. + */ +template +__launch_bounds__(1) __global__ void +DeviceSegmentedSortContinuationKernel( + LargeKernelT large_kernel, + SmallKernelT small_kernel, + int num_segments, + KeyT *d_current_keys, + KeyT *d_final_keys, + detail::device_double_buffer d_keys_double_buffer, + ValueT *d_current_values, + ValueT *d_final_values, + detail::device_double_buffer d_values_double_buffer, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + unsigned int *group_sizes, + unsigned int *large_and_medium_segments_indices, + unsigned int *small_segments_indices) +{ + using ActivePolicyT = typename ChainedPolicyT::ActivePolicy; + using LargeSegmentPolicyT = typename ActivePolicyT::LargeSegmentPolicy; + using SmallAndMediumPolicyT = + typename ActivePolicyT::SmallAndMediumSegmentedSortPolicyT; + + // In case of CDP: + // 1. each CTA has a different main stream + // 2. all streams are non-blocking + // 3. child grid always completes before the parent grid + // 4. streams can be used only from the CTA in which they were created + // 5. streams created on the host cannot be used on the device + // + // Due to (4, 5), we can't pass the user-provided stream in the continuation. + // Due to (1, 2, 3) it's safe to pass the main stream. + cudaError_t error = + DeviceSegmentedSortContinuation( + large_kernel, + small_kernel, + num_segments, + d_current_keys, + d_final_keys, + d_keys_double_buffer, + d_current_values, + d_final_values, + d_values_double_buffer, + d_begin_offsets, + d_end_offsets, + group_sizes, + large_and_medium_segments_indices, + small_segments_indices, + 0); // always launching on the main stream (see motivation above) + + CubDebug(error); +} +#endif // CUB_RDC_ENABLED + +template +struct DeviceSegmentedSortPolicy +{ + using DominantT = + cub::detail::conditional_t<(sizeof(ValueT) > sizeof(KeyT)), ValueT, KeyT>; + + constexpr static int KEYS_ONLY = std::is_same::value; + + //---------------------------------------------------------------------------- + // Architecture-specific tuning policies + //---------------------------------------------------------------------------- + + struct Policy350 : ChainedPolicy<350, Policy350, Policy350> + { + constexpr static int BLOCK_THREADS = 128; + constexpr static int RADIX_BITS = sizeof(KeyT) > 1 ? 6 : 4; + constexpr static int PARTITIONING_THRESHOLD = 300; + + using LargeSegmentPolicy = + AgentRadixSortDownsweepPolicy; + + constexpr static int ITEMS_PER_SMALL_THREAD = + Nominal4BItemsToItems(5); + + constexpr static int ITEMS_PER_MEDIUM_THREAD = + Nominal4BItemsToItems(5); + + using SmallAndMediumSegmentedSortPolicyT = + AgentSmallAndMediumSegmentedSortPolicy< + + BLOCK_THREADS, + + // Small policy + cub::AgentSubWarpMergeSortPolicy<4, + ITEMS_PER_SMALL_THREAD, + WarpLoadAlgorithm::WARP_LOAD_DIRECT, + CacheLoadModifier::LOAD_DEFAULT>, + + // Medium policy + cub::AgentSubWarpMergeSortPolicy<32, + ITEMS_PER_MEDIUM_THREAD, + WarpLoadAlgorithm::WARP_LOAD_DIRECT, + CacheLoadModifier::LOAD_DEFAULT>>; + }; + + struct Policy500 : ChainedPolicy<500, Policy500, Policy350> + { + constexpr static int BLOCK_THREADS = 256; + constexpr static int RADIX_BITS = sizeof(KeyT) > 1 ? 6 : 4; + constexpr static int PARTITIONING_THRESHOLD = 300; + + using LargeSegmentPolicy = + AgentRadixSortDownsweepPolicy; + + constexpr static int ITEMS_PER_SMALL_THREAD = + Nominal4BItemsToItems(7); + + constexpr static int ITEMS_PER_MEDIUM_THREAD = + Nominal4BItemsToItems(7); + + using SmallAndMediumSegmentedSortPolicyT = + AgentSmallAndMediumSegmentedSortPolicy< + + BLOCK_THREADS, + + // Small policy + cub::AgentSubWarpMergeSortPolicy<4, // Threads per segment + ITEMS_PER_SMALL_THREAD, + WarpLoadAlgorithm::WARP_LOAD_DIRECT, + CacheLoadModifier::LOAD_DEFAULT>, + + // Medium policy + cub::AgentSubWarpMergeSortPolicy<32, // Threads per segment + ITEMS_PER_MEDIUM_THREAD, + WarpLoadAlgorithm::WARP_LOAD_DIRECT, + CacheLoadModifier::LOAD_DEFAULT>>; + }; + + struct Policy600 : ChainedPolicy<600, Policy600, Policy500> + { + constexpr static int BLOCK_THREADS = 256; + constexpr static int RADIX_BITS = sizeof(KeyT) > 1 ? 6 : 4; + constexpr static int PARTITIONING_THRESHOLD = 500; + + using LargeSegmentPolicy = + AgentRadixSortDownsweepPolicy; + + constexpr static int ITEMS_PER_SMALL_THREAD = + Nominal4BItemsToItems(9); + + constexpr static int ITEMS_PER_MEDIUM_THREAD = + Nominal4BItemsToItems(9); + + using SmallAndMediumSegmentedSortPolicyT = + AgentSmallAndMediumSegmentedSortPolicy< + + BLOCK_THREADS, + + // Small policy + cub::AgentSubWarpMergeSortPolicy<4, // Threads per segment + ITEMS_PER_SMALL_THREAD, + WarpLoadAlgorithm::WARP_LOAD_DIRECT, + CacheLoadModifier::LOAD_DEFAULT>, + + // Medium policy + cub::AgentSubWarpMergeSortPolicy<32, // Threads per segment + ITEMS_PER_MEDIUM_THREAD, + WarpLoadAlgorithm::WARP_LOAD_DIRECT, + CacheLoadModifier::LOAD_DEFAULT>>; + }; + + struct Policy610 : ChainedPolicy<610, Policy610, Policy600> + { + constexpr static int BLOCK_THREADS = 256; + constexpr static int RADIX_BITS = sizeof(KeyT) > 1 ? 6 : 4; + constexpr static int PARTITIONING_THRESHOLD = 500; + + using LargeSegmentPolicy = + AgentRadixSortDownsweepPolicy; + + constexpr static int ITEMS_PER_SMALL_THREAD = + Nominal4BItemsToItems(9); + + constexpr static int ITEMS_PER_MEDIUM_THREAD = + Nominal4BItemsToItems(9); + + using SmallAndMediumSegmentedSortPolicyT = + AgentSmallAndMediumSegmentedSortPolicy< + + BLOCK_THREADS, + + // Small policy + cub::AgentSubWarpMergeSortPolicy<4, // Threads per segment + ITEMS_PER_SMALL_THREAD, + WarpLoadAlgorithm::WARP_LOAD_DIRECT, + CacheLoadModifier::LOAD_DEFAULT>, + + // Medium policy + cub::AgentSubWarpMergeSortPolicy<32, // Threads per segment + ITEMS_PER_MEDIUM_THREAD, + WarpLoadAlgorithm::WARP_LOAD_DIRECT, + CacheLoadModifier::LOAD_DEFAULT>>; + }; + + struct Policy620 : ChainedPolicy<620, Policy620, Policy610> + { + constexpr static int BLOCK_THREADS = 256; + constexpr static int RADIX_BITS = sizeof(KeyT) > 1 ? 5 : 4; + constexpr static int PARTITIONING_THRESHOLD = 500; + + using LargeSegmentPolicy = + AgentRadixSortDownsweepPolicy; + + constexpr static int ITEMS_PER_SMALL_THREAD = + Nominal4BItemsToItems(9); + + constexpr static int ITEMS_PER_MEDIUM_THREAD = + Nominal4BItemsToItems(9); + + using SmallAndMediumSegmentedSortPolicyT = + AgentSmallAndMediumSegmentedSortPolicy< + + BLOCK_THREADS, + + // Small policy + cub::AgentSubWarpMergeSortPolicy<4, // Threads per segment + ITEMS_PER_SMALL_THREAD, + WarpLoadAlgorithm::WARP_LOAD_DIRECT, + CacheLoadModifier::LOAD_DEFAULT>, + + // Medium policy + cub::AgentSubWarpMergeSortPolicy<32, // Threads per segment + ITEMS_PER_MEDIUM_THREAD, + WarpLoadAlgorithm::WARP_LOAD_DIRECT, + CacheLoadModifier::LOAD_DEFAULT>>; + }; + + struct Policy700 : ChainedPolicy<700, Policy700, Policy620> + { + constexpr static int BLOCK_THREADS = 256; + constexpr static int RADIX_BITS = sizeof(KeyT) > 1 ? 6 : 4; + constexpr static int PARTITIONING_THRESHOLD = 500; + + using LargeSegmentPolicy = + AgentRadixSortDownsweepPolicy; + + constexpr static int ITEMS_PER_SMALL_THREAD = + Nominal4BItemsToItems(7); + + constexpr static int ITEMS_PER_MEDIUM_THREAD = + Nominal4BItemsToItems(KEYS_ONLY ? 11 : 7); + + using SmallAndMediumSegmentedSortPolicyT = + AgentSmallAndMediumSegmentedSortPolicy< + + BLOCK_THREADS, + + // Small policy + cub::AgentSubWarpMergeSortPolicy<(KEYS_ONLY ? 4 : 8), // Threads per segment + ITEMS_PER_SMALL_THREAD, + WarpLoadAlgorithm::WARP_LOAD_DIRECT, + CacheLoadModifier::LOAD_DEFAULT>, + + // Medium policy + cub::AgentSubWarpMergeSortPolicy<32, // Threads per segment + ITEMS_PER_MEDIUM_THREAD, + WarpLoadAlgorithm::WARP_LOAD_DIRECT, + CacheLoadModifier::LOAD_DEFAULT>>; + }; + + struct Policy800 : ChainedPolicy<800, Policy800, Policy700> + { + constexpr static int BLOCK_THREADS = 256; + constexpr static int PARTITIONING_THRESHOLD = 500; + + using LargeSegmentPolicy = + cub::AgentRadixSortDownsweepPolicy 1) ? 6 : 4>; + + constexpr static int ITEMS_PER_SMALL_THREAD = + Nominal4BItemsToItems(9); + + constexpr static int ITEMS_PER_MEDIUM_THREAD = + Nominal4BItemsToItems(KEYS_ONLY ? 7 : 11); + + using SmallAndMediumSegmentedSortPolicyT = + AgentSmallAndMediumSegmentedSortPolicy< + + BLOCK_THREADS, + + // Small policy + cub::AgentSubWarpMergeSortPolicy<(KEYS_ONLY ? 4 : 2), // Threads per segment + ITEMS_PER_SMALL_THREAD, + WarpLoadAlgorithm::WARP_LOAD_TRANSPOSE, + CacheLoadModifier::LOAD_DEFAULT>, + + // Medium policy + cub::AgentSubWarpMergeSortPolicy<32, // Threads per segment + ITEMS_PER_MEDIUM_THREAD, + WarpLoadAlgorithm::WARP_LOAD_TRANSPOSE, + CacheLoadModifier::LOAD_DEFAULT>>; + }; + + struct Policy860 : ChainedPolicy<860, Policy860, Policy800> + { + constexpr static int BLOCK_THREADS = 256; + constexpr static int PARTITIONING_THRESHOLD = 500; + + using LargeSegmentPolicy = + cub::AgentRadixSortDownsweepPolicy 1) ? 6 : 4>; + + constexpr static bool LARGE_ITEMS = sizeof(DominantT) > 4; + + constexpr static int ITEMS_PER_SMALL_THREAD = + Nominal4BItemsToItems(LARGE_ITEMS ? 7 : 9); + + constexpr static int ITEMS_PER_MEDIUM_THREAD = + Nominal4BItemsToItems(LARGE_ITEMS ? 9 : 7); + + using SmallAndMediumSegmentedSortPolicyT = + AgentSmallAndMediumSegmentedSortPolicy< + + BLOCK_THREADS, + + // Small policy + cub::AgentSubWarpMergeSortPolicy<(LARGE_ITEMS ? 8 : 2), // Threads per segment + ITEMS_PER_SMALL_THREAD, + WarpLoadAlgorithm::WARP_LOAD_TRANSPOSE, + CacheLoadModifier::LOAD_LDG>, + + // Medium policy + cub::AgentSubWarpMergeSortPolicy<16, // Threads per segment + ITEMS_PER_MEDIUM_THREAD, + WarpLoadAlgorithm::WARP_LOAD_TRANSPOSE, + CacheLoadModifier::LOAD_LDG>>; + }; + + /// MaxPolicy + using MaxPolicy = Policy860; +}; + +template > +struct DispatchSegmentedSort : SelectedPolicy +{ + static constexpr int KEYS_ONLY = std::is_same::value; + + struct LargeSegmentsSelectorT + { + OffsetT value{}; + BeginOffsetIteratorT d_offset_begin{}; + EndOffsetIteratorT d_offset_end{}; + + __host__ __device__ __forceinline__ + LargeSegmentsSelectorT(OffsetT value, + BeginOffsetIteratorT d_offset_begin, + EndOffsetIteratorT d_offset_end) + : value(value) + , d_offset_begin(d_offset_begin) + , d_offset_end(d_offset_end) + {} + + __host__ __device__ __forceinline__ bool + operator()(unsigned int segment_id) const + { + const OffsetT segment_size = d_offset_end[segment_id] - + d_offset_begin[segment_id]; + return segment_size > value; + } + }; + + struct SmallSegmentsSelectorT + { + OffsetT value{}; + BeginOffsetIteratorT d_offset_begin{}; + EndOffsetIteratorT d_offset_end{}; + + __host__ __device__ __forceinline__ + SmallSegmentsSelectorT(OffsetT value, + BeginOffsetIteratorT d_offset_begin, + EndOffsetIteratorT d_offset_end) + : value(value) + , d_offset_begin(d_offset_begin) + , d_offset_end(d_offset_end) + {} + + __host__ __device__ __forceinline__ bool + operator()(unsigned int segment_id) const + { + const OffsetT segment_size = d_offset_end[segment_id] - + d_offset_begin[segment_id]; + return segment_size < value; + } + }; + + // Partition selects large and small groups. The middle group is not selected. + constexpr static std::size_t num_selected_groups = 2; + + /** + * Device-accessible allocation of temporary storage. When `nullptr`, the + * required allocation size is written to @p temp_storage_bytes and no work + * is done. + */ + void *d_temp_storage; + + /// Reference to size in bytes of @p d_temp_storage allocation + std::size_t &temp_storage_bytes; + + /** + * Double-buffer whose current buffer contains the unsorted input keys and, + * upon return, is updated to point to the sorted output keys + */ + DoubleBuffer &d_keys; + + /** + * Double-buffer whose current buffer contains the unsorted input values and, + * upon return, is updated to point to the sorted output values + */ + DoubleBuffer &d_values; + + /// Number of items to sort + OffsetT num_items; + + /// The number of segments that comprise the sorting data + int num_segments; + + /** + * Random-access input iterator to the sequence of beginning offsets of length + * @p num_segments, such that `d_begin_offsets[i]` is the first element of the + * ith data segment in `d_keys_*` and `d_values_*` + */ + BeginOffsetIteratorT d_begin_offsets; + + /** + * Random-access input iterator to the sequence of ending offsets of length + * @p num_segments, such that d_end_offsets[i]-1 is the last element + * of the ith data segment in `d_keys_*` and + * `d_values_*`. If `d_end_offsets[i]-1 <= d_begin_offsets[i]`, + * the ith is considered empty. + */ + EndOffsetIteratorT d_end_offsets; + + /// Whether is okay to overwrite source buffers + bool is_overwrite_okay; + + /// CUDA stream to launch kernels within. + cudaStream_t stream; + + CUB_RUNTIME_FUNCTION __forceinline__ + DispatchSegmentedSort(void *d_temp_storage, + std::size_t &temp_storage_bytes, + DoubleBuffer &d_keys, + DoubleBuffer &d_values, + OffsetT num_items, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + bool is_overwrite_okay, + cudaStream_t stream) + : d_temp_storage(d_temp_storage) + , temp_storage_bytes(temp_storage_bytes) + , d_keys(d_keys) + , d_values(d_values) + , num_items(num_items) + , num_segments(num_segments) + , d_begin_offsets(d_begin_offsets) + , d_end_offsets(d_end_offsets) + , is_overwrite_okay(is_overwrite_okay) + , stream(stream) + {} + + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION __forceinline__ + DispatchSegmentedSort(void *d_temp_storage, + std::size_t &temp_storage_bytes, + DoubleBuffer &d_keys, + DoubleBuffer &d_values, + OffsetT num_items, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + bool is_overwrite_okay, + cudaStream_t stream, + bool debug_synchronous) + : d_temp_storage(d_temp_storage) + , temp_storage_bytes(temp_storage_bytes) + , d_keys(d_keys) + , d_values(d_values) + , num_items(num_items) + , num_segments(num_segments) + , d_begin_offsets(d_begin_offsets) + , d_end_offsets(d_end_offsets) + , is_overwrite_okay(is_overwrite_okay) + , stream(stream) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + } + + template + CUB_RUNTIME_FUNCTION __forceinline__ cudaError_t Invoke() + { + using MaxPolicyT = typename DispatchSegmentedSort::MaxPolicy; + using LargeSegmentPolicyT = typename ActivePolicyT::LargeSegmentPolicy; + using SmallAndMediumPolicyT = + typename ActivePolicyT::SmallAndMediumSegmentedSortPolicyT; + + static_assert( + LargeSegmentPolicyT::LOAD_MODIFIER != CacheLoadModifier::LOAD_LDG, + "The memory consistency model does not apply to texture accesses"); + + static_assert( + KEYS_ONLY + || LargeSegmentPolicyT::LOAD_ALGORITHM != BLOCK_LOAD_STRIPED + || SmallAndMediumPolicyT::MediumPolicyT::LOAD_ALGORITHM != WARP_LOAD_STRIPED + || SmallAndMediumPolicyT::SmallPolicyT::LOAD_ALGORITHM != WARP_LOAD_STRIPED, + "Striped load will make this algorithm unstable"); + + static_assert( + SmallAndMediumPolicyT::MediumPolicyT::STORE_ALGORITHM != WARP_STORE_STRIPED + || SmallAndMediumPolicyT::SmallPolicyT::STORE_ALGORITHM != WARP_STORE_STRIPED, + "Striped stores will produce unsorted results"); + + constexpr int radix_bits = LargeSegmentPolicyT::RADIX_BITS; + + cudaError error = cudaSuccess; + + do + { + //------------------------------------------------------------------------ + // Prepare temporary storage layout + //------------------------------------------------------------------------ + + const bool partition_segments = num_segments > + ActivePolicyT::PARTITIONING_THRESHOLD; + + cub::detail::temporary_storage::layout<5> temporary_storage_layout; + + auto keys_slot = temporary_storage_layout.get_slot(0); + auto values_slot = temporary_storage_layout.get_slot(1); + auto large_and_medium_partitioning_slot = temporary_storage_layout.get_slot(2); + auto small_partitioning_slot = temporary_storage_layout.get_slot(3); + auto group_sizes_slot = temporary_storage_layout.get_slot(4); + + auto keys_allocation = keys_slot->create_alias(); + auto values_allocation = values_slot->create_alias(); + + if (!is_overwrite_okay) + { + keys_allocation.grow(num_items); + + if (!KEYS_ONLY) + { + values_allocation.grow(num_items); + } + } + + auto large_and_medium_segments_indices = + large_and_medium_partitioning_slot->create_alias(); + auto small_segments_indices = + small_partitioning_slot->create_alias(); + auto group_sizes = group_sizes_slot->create_alias(); + + std::size_t three_way_partition_temp_storage_bytes {}; + + LargeSegmentsSelectorT large_segments_selector( + SmallAndMediumPolicyT::MediumPolicyT::ITEMS_PER_TILE, + d_begin_offsets, + d_end_offsets); + + SmallSegmentsSelectorT small_segments_selector( + SmallAndMediumPolicyT::SmallPolicyT::ITEMS_PER_TILE + 1, + d_begin_offsets, + d_end_offsets); + + auto device_partition_temp_storage = + keys_slot->create_alias(); + + if (partition_segments) + { + large_and_medium_segments_indices.grow(num_segments); + small_segments_indices.grow(num_segments); + group_sizes.grow(num_selected_groups); + + auto medium_indices_iterator = + THRUST_NS_QUALIFIER::make_reverse_iterator( + large_and_medium_segments_indices.get()); + + cub::DevicePartition::If( + nullptr, + three_way_partition_temp_storage_bytes, + THRUST_NS_QUALIFIER::counting_iterator(0), + large_and_medium_segments_indices.get(), + small_segments_indices.get(), + medium_indices_iterator, + group_sizes.get(), + num_segments, + large_segments_selector, + small_segments_selector, + stream); + + device_partition_temp_storage.grow( + three_way_partition_temp_storage_bytes); + } + + if (d_temp_storage == nullptr) + { + temp_storage_bytes = temporary_storage_layout.get_size(); + + // Return if the caller is simply requesting the size of the storage + // allocation + break; + } + + if (num_items == 0 || num_segments == 0) + { + break; + } + + if (CubDebug( + error = temporary_storage_layout.map_to_buffer(d_temp_storage, + temp_storage_bytes))) + { + break; + } + + //------------------------------------------------------------------------ + // Sort + //------------------------------------------------------------------------ + + const bool is_num_passes_odd = GetNumPasses(radix_bits) & 1; + + /** + * This algorithm sorts segments that don't fit into shared memory with + * the in-global-memory radix sort. Radix sort splits key representation + * into multiple "digits". Each digit is RADIX_BITS wide. The algorithm + * iterates over these digits. Each of these iterations consists of a + * couple of stages. The first stage computes a histogram for a current + * digit in each segment key. This histogram helps to determine the + * starting position of the keys group with a similar digit. + * For example: + * keys_digits = [ 1, 0, 0, 1 ] + * digit_prefix = [ 0, 2 ] + * The second stage checks the keys again and increments the prefix to + * determine the final position of the key: + * + * expression | key | idx | result + * ----------------------------------- | ----- | ------- | -------------- + * result[prefix[keys[0]]++] = keys[0] | 1 | 2 | [ ?, ?, 1, ? ] + * result[prefix[keys[1]]++] = keys[0] | 0 | 0 | [ 0, ?, 1, ? ] + * result[prefix[keys[2]]++] = keys[0] | 0 | 1 | [ 0, 0, 1, ? ] + * result[prefix[keys[3]]++] = keys[0] | 1 | 3 | [ 0, 0, 1, 1 ] + * + * If the resulting memory is aliased to the input one, we'll face the + * following issues: + * + * input | key | idx | result/input | issue + * -------------- | ----- | ------- | ---------------- | ---------------- + * [ 1, 0, 0, 1 ] | 1 | 2 | [ 1, 0, 1, 1 ] | overwrite keys[2] + * [ 1, 0, 1, 1 ] | 0 | 0 | [ 0, 0, 1, 1 ] | + * [ 0, 0, 1, 1 ] | 1 | 3 | [ 0, 0, 1, 1 ] | extra key + * [ 0, 0, 1, 1 ] | 1 | 4 | [ 0, 0, 1, 1 ] 1 | OOB access + * + * To avoid these issues, we have to use extra memory. The extra memory + * holds temporary storage for writing intermediate results of each stage. + * Since we iterate over digits in keys, we potentially need: + * `sizeof(KeyT) * num_items * DivideAndRoundUp(sizeof(KeyT),RADIX_BITS)` + * auxiliary memory bytes. To reduce the auxiliary memory storage + * requirements, the algorithm relies on a double buffer facility. The + * idea behind it is in swapping destination and source buffers at each + * iteration. This way, we can use only two buffers. One of these buffers + * can be the final algorithm output destination. Therefore, only one + * auxiliary array is needed. Depending on the number of iterations, we + * can initialize the double buffer so that the algorithm output array + * will match the double buffer result one at the final iteration. + * A user can provide this algorithm with a double buffer straightaway to + * further reduce the auxiliary memory requirements. `is_overwrite_okay` + * indicates this use case. + */ + detail::device_double_buffer d_keys_double_buffer( + (is_overwrite_okay || is_num_passes_odd) ? d_keys.Alternate() : keys_allocation.get(), + (is_overwrite_okay) ? d_keys.Current() : (is_num_passes_odd) ? keys_allocation.get() : d_keys.Alternate()); + + detail::device_double_buffer d_values_double_buffer( + (is_overwrite_okay || is_num_passes_odd) ? d_values.Alternate() : values_allocation.get(), + (is_overwrite_okay) ? d_values.Current() : (is_num_passes_odd) ? values_allocation.get() : d_values.Alternate()); + + if (partition_segments) + { + // Partition input segments into size groups and assign specialized + // kernels for each of them. + error = + SortWithPartitioning( + DeviceSegmentedSortKernelLarge, + DeviceSegmentedSortKernelSmall, + three_way_partition_temp_storage_bytes, + d_keys_double_buffer, + d_values_double_buffer, + large_segments_selector, + small_segments_selector, + device_partition_temp_storage, + large_and_medium_segments_indices, + small_segments_indices, + group_sizes); + } + else + { + // If there are not enough segments, there's no reason to spend time + // on extra partitioning steps. + + error = SortWithoutPartitioning( + DeviceSegmentedSortFallbackKernel, + d_keys_double_buffer, + d_values_double_buffer); + } + + d_keys.selector = GetFinalSelector(d_keys.selector, radix_bits); + d_values.selector = GetFinalSelector(d_values.selector, radix_bits); + + } while (false); + + return error; + } + + CUB_RUNTIME_FUNCTION __forceinline__ static cudaError_t + Dispatch(void *d_temp_storage, + std::size_t &temp_storage_bytes, + DoubleBuffer &d_keys, + DoubleBuffer &d_values, + OffsetT num_items, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + bool is_overwrite_okay, + cudaStream_t stream) + { + using MaxPolicyT = typename DispatchSegmentedSort::MaxPolicy; + + cudaError error = cudaSuccess; + + do + { + // Get PTX version + int ptx_version = 0; + if (CubDebug(error = PtxVersion(ptx_version))) + { + break; + } + + // Create dispatch functor + DispatchSegmentedSort dispatch(d_temp_storage, + temp_storage_bytes, + d_keys, + d_values, + num_items, + num_segments, + d_begin_offsets, + d_end_offsets, + is_overwrite_okay, + stream); + + // Dispatch to chained policy + if (CubDebug(error = MaxPolicyT::Invoke(ptx_version, dispatch))) + { + break; + } + } while (false); + + return error; + } + + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION __forceinline__ static cudaError_t + Dispatch(void *d_temp_storage, + std::size_t &temp_storage_bytes, + DoubleBuffer &d_keys, + DoubleBuffer &d_values, + OffsetT num_items, + int num_segments, + BeginOffsetIteratorT d_begin_offsets, + EndOffsetIteratorT d_end_offsets, + bool is_overwrite_okay, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return Dispatch(d_temp_storage, + temp_storage_bytes, + d_keys, + d_values, + num_items, + num_segments, + d_begin_offsets, + d_end_offsets, + is_overwrite_okay, + stream); + } + +private: + CUB_RUNTIME_FUNCTION __forceinline__ + int GetNumPasses(int radix_bits) + { + const int byte_size = 8; + const int num_bits = sizeof(KeyT) * byte_size; + const int num_passes = DivideAndRoundUp(num_bits, radix_bits); + return num_passes; + } + + CUB_RUNTIME_FUNCTION __forceinline__ + int GetFinalSelector(int selector, int radix_bits) + { + // Sorted data always ends up in the other vector + if (!is_overwrite_okay) + { + return (selector + 1) & 1; + } + + return (selector + GetNumPasses(radix_bits)) & 1; + } + + template + CUB_RUNTIME_FUNCTION __forceinline__ + T* GetFinalOutput(int radix_bits, + DoubleBuffer &buffer) + { + const int final_selector = GetFinalSelector(buffer.selector, radix_bits); + return buffer.d_buffers[final_selector]; + } + + template + CUB_RUNTIME_FUNCTION __forceinline__ cudaError_t + SortWithPartitioning( + LargeKernelT large_kernel, + SmallKernelT small_kernel, + std::size_t three_way_partition_temp_storage_bytes, + cub::detail::device_double_buffer &d_keys_double_buffer, + cub::detail::device_double_buffer &d_values_double_buffer, + LargeSegmentsSelectorT &large_segments_selector, + SmallSegmentsSelectorT &small_segments_selector, + cub::detail::temporary_storage::alias &device_partition_temp_storage, + cub::detail::temporary_storage::alias &large_and_medium_segments_indices, + cub::detail::temporary_storage::alias &small_segments_indices, + cub::detail::temporary_storage::alias &group_sizes) + { + cudaError_t error = cudaSuccess; + + auto medium_indices_iterator = + THRUST_NS_QUALIFIER::make_reverse_iterator( + large_and_medium_segments_indices.get() + num_segments); + + error = cub::DevicePartition::If( + device_partition_temp_storage.get(), + three_way_partition_temp_storage_bytes, + THRUST_NS_QUALIFIER::counting_iterator(0), + large_and_medium_segments_indices.get(), + small_segments_indices.get(), + medium_indices_iterator, + group_sizes.get(), + num_segments, + large_segments_selector, + small_segments_selector, + stream); + if (CubDebug(error)) + { + return error; + } + + // The device path is only used (and only compiles) when CDP is enabled. + // It's defined in a macro since we can't put `#ifdef`s inside of + // `NV_IF_TARGET`. +#ifndef CUB_RDC_ENABLED + +#define CUB_TEMP_DEVICE_CODE + +#else // CUB_RDC_ENABLED + +#define CUB_TEMP_DEVICE_CODE \ + using MaxPolicyT = typename DispatchSegmentedSort::MaxPolicy; \ + error = \ + THRUST_NS_QUALIFIER::cuda_cub::launcher::triple_chevron(1, 1, 0, stream) \ + .doit(DeviceSegmentedSortContinuationKernel, \ + large_kernel, \ + small_kernel, \ + num_segments, \ + d_keys.Current(), \ + GetFinalOutput(LargeSegmentPolicyT::RADIX_BITS, d_keys), \ + d_keys_double_buffer, \ + d_values.Current(), \ + GetFinalOutput(LargeSegmentPolicyT::RADIX_BITS, d_values), \ + d_values_double_buffer, \ + d_begin_offsets, \ + d_end_offsets, \ + group_sizes.get(), \ + large_and_medium_segments_indices.get(), \ + small_segments_indices.get()); \ + \ + if (CubDebug(error)) \ + { \ + return error; \ + } \ + \ + error = detail::DebugSyncStream(stream); \ + if (CubDebug(error)) \ + { \ + return error; \ + } + +#endif // CUB_RDC_ENABLED + + // Clang format mangles some of this NV_IF_TARGET block + // clang-format off + NV_IF_TARGET( + NV_IS_HOST, + ( + unsigned int h_group_sizes[num_selected_groups]; + + if (CubDebug(error = cudaMemcpyAsync(h_group_sizes, + group_sizes.get(), + num_selected_groups * + sizeof(unsigned int), + cudaMemcpyDeviceToHost, + stream))) + { + return error; + } + + if (CubDebug(error = SyncStream(stream))) + { + return error; + } + + error = DeviceSegmentedSortContinuation( + large_kernel, + small_kernel, + num_segments, + d_keys.Current(), + GetFinalOutput(LargeSegmentPolicyT::RADIX_BITS, d_keys), + d_keys_double_buffer, + d_values.Current(), + GetFinalOutput(LargeSegmentPolicyT::RADIX_BITS, d_values), + d_values_double_buffer, + d_begin_offsets, + d_end_offsets, + h_group_sizes, + large_and_medium_segments_indices.get(), + small_segments_indices.get(), + stream);), + // NV_IS_DEVICE: + (CUB_TEMP_DEVICE_CODE)); + // clang-format on + +#undef CUB_TEMP_DEVICE_CODE + + return error; + } + + template + CUB_RUNTIME_FUNCTION __forceinline__ cudaError_t SortWithoutPartitioning( + FallbackKernelT fallback_kernel, + cub::detail::device_double_buffer &d_keys_double_buffer, + cub::detail::device_double_buffer &d_values_double_buffer) + { + cudaError_t error = cudaSuccess; + + const auto blocks_in_grid = static_cast(num_segments); + const auto threads_in_block = + static_cast(LargeSegmentPolicyT::BLOCK_THREADS); + + // Log kernel configuration + #ifdef CUB_DETAIL_DEBUG_ENABLE_LOG + _CubLog("Invoking DeviceSegmentedSortFallbackKernel<<<%d, %d, " + "0, %lld>>>(), %d items per thread, bit_grain %d\n", + blocks_in_grid, + threads_in_block, + (long long)stream, + LargeSegmentPolicyT::ITEMS_PER_THREAD, + LargeSegmentPolicyT::RADIX_BITS); + #endif + + // Invoke fallback kernel + THRUST_NS_QUALIFIER::cuda_cub::launcher::triple_chevron(blocks_in_grid, + threads_in_block, + 0, + stream) + .doit(fallback_kernel, + d_keys.Current(), + GetFinalOutput(LargeSegmentPolicyT::RADIX_BITS, d_keys), + d_keys_double_buffer, + d_values.Current(), + GetFinalOutput(LargeSegmentPolicyT::RADIX_BITS, d_values), + d_values_double_buffer, + d_begin_offsets, + d_end_offsets); + + // Check for failure to launch + if (CubDebug(error = cudaPeekAtLastError())) + { + return error; + } + + // Sync the stream if specified to flush runtime errors + error = detail::DebugSyncStream(stream); + if (CubDebug(error)) + { + return error; + } + + return error; + } +}; + + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_select_if.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_select_if.cuh new file mode 100644 index 0000000000000000000000000000000000000000..c64885dc534dfadb7406498ea7f631bb527c47ba --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_select_if.cuh @@ -0,0 +1,629 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * @file + * cub::DeviceSelect provides device-wide, parallel operations for selecting items from sequences + * of data items residing within device-accessible memory. + */ + +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include + +#include +#include + +CUB_NAMESPACE_BEGIN + +/****************************************************************************** + * Kernel entry points + *****************************************************************************/ + +/** + * Select kernel entry point (multi-block) + * + * Performs functor-based selection if SelectOpT functor type != NullType + * Otherwise performs flag-based selection if FlagsInputIterator's value type != NullType + * Otherwise performs discontinuity selection (keep unique) + * + * @tparam InputIteratorT + * Random-access input iterator type for reading input items + * + * @tparam FlagsInputIteratorT + * Random-access input iterator type for reading selection flags (NullType* if a selection functor + * or discontinuity flagging is to be used for selection) + * + * @tparam SelectedOutputIteratorT + * Random-access output iterator type for writing selected items + * + * @tparam NumSelectedIteratorT + * Output iterator type for recording the number of items selected + * + * @tparam ScanTileStateT + * Tile status interface type + * + * @tparam SelectOpT + * Selection operator type (NullType if selection flags or discontinuity flagging is + * to be used for selection) + * + * @tparam EqualityOpT + * Equality operator type (NullType if selection functor or selection flags is + * to be used for selection) + * + * @tparam OffsetT + * Signed integer type for global offsets + * + * @tparam KEEP_REJECTS + * Whether or not we push rejected items to the back of the output + * + * @param[in] d_in + * Pointer to the input sequence of data items + * + * @param[in] d_flags + * Pointer to the input sequence of selection flags (if applicable) + * + * @param[out] d_selected_out + * Pointer to the output sequence of selected data items + * + * @param[out] d_num_selected_out + * Pointer to the total number of items selected (i.e., length of \p d_selected_out) + * + * @param[in] tile_status + * Tile status interface + * + * @param[in] select_op + * Selection operator + * + * @param[in] equality_op + * Equality operator + * + * @param[in] num_items + * Total number of input items (i.e., length of \p d_in) + * + * @param[in] num_tiles + * Total number of tiles for the entire problem + */ +template +__launch_bounds__(int(ChainedPolicyT::ActivePolicy::SelectIfPolicyT::BLOCK_THREADS)) __global__ + void DeviceSelectSweepKernel(InputIteratorT d_in, + FlagsInputIteratorT d_flags, + SelectedOutputIteratorT d_selected_out, + NumSelectedIteratorT d_num_selected_out, + ScanTileStateT tile_status, + SelectOpT select_op, + EqualityOpT equality_op, + OffsetT num_items, + int num_tiles) +{ + using AgentSelectIfPolicyT = typename ChainedPolicyT::ActivePolicy::SelectIfPolicyT; + + // Thread block type for selecting data from input tiles + using AgentSelectIfT = AgentSelectIf; + + // Shared memory for AgentSelectIf + __shared__ typename AgentSelectIfT::TempStorage temp_storage; + + // Process tiles + AgentSelectIfT(temp_storage, d_in, d_flags, d_selected_out, select_op, equality_op, num_items).ConsumeRange( + num_tiles, + tile_status, + d_num_selected_out); +} + + +namespace detail +{ + +template +struct device_select_policy_hub +{ + struct Policy350 : ChainedPolicy<350, Policy350, Policy350> + { + static constexpr int NOMINAL_4B_ITEMS_PER_THREAD = 10; + + static constexpr int ITEMS_PER_THREAD = + CUB_MIN(NOMINAL_4B_ITEMS_PER_THREAD, + CUB_MAX(1, (NOMINAL_4B_ITEMS_PER_THREAD * 4 / sizeof(InputT)))); + + using SelectIfPolicyT = AgentSelectIfPolicy<128, + ITEMS_PER_THREAD, + BLOCK_LOAD_DIRECT, + MayAlias ? LOAD_CA : LOAD_LDG, + BLOCK_SCAN_WARP_SCANS, + detail::fixed_delay_constructor_t<350, 450>>; + }; + + using MaxPolicy = Policy350; +}; + +} // detail + + +/****************************************************************************** + * Dispatch + ******************************************************************************/ + +/** + * Utility class for dispatching the appropriately-tuned kernels for DeviceSelect + * + * @tparam InputIteratorT + * Random-access input iterator type for reading input items + * + * @tparam FlagsInputIteratorT + * Random-access input iterator type for reading selection flags + * (NullType* if a selection functor or discontinuity flagging is to be used for selection) + * + * @tparam SelectedOutputIteratorT + * Random-access output iterator type for writing selected items + * + * @tparam NumSelectedIteratorT + * Output iterator type for recording the number of items selected + * + * @tparam SelectOpT + * Selection operator type (NullType if selection flags or discontinuity flagging is + * to be used for selection) + * + * @tparam EqualityOpT + * Equality operator type (NullType if selection functor or selection flags is to + * be used for selection) + * + * @tparam OffsetT + * Signed integer type for global offsets + * + * @tparam KEEP_REJECTS + * Whether or not we push rejected items to the back of the output + */ +template , MayAlias>> +struct DispatchSelectIf : SelectedPolicy +{ + /****************************************************************************** + * Types and constants + ******************************************************************************/ + + // The input value type + using InputT = cub::detail::value_t; + + // The flag value type + using FlagT = cub::detail::value_t; + + // Tile status descriptor interface type + using ScanTileStateT = ScanTileState; + + static constexpr int INIT_KERNEL_THREADS = 128; + + /// Device-accessible allocation of temporary storage. + /// When `nullptr`, the required allocation size is written to `temp_storage_bytes` + /// and no work is done. + void* d_temp_storage; + + /// Reference to size in bytes of `d_temp_storage` allocation + size_t& temp_storage_bytes; + + /// Pointer to the input sequence of data items + InputIteratorT d_in; + + /// Pointer to the input sequence of selection flags (if applicable) + FlagsInputIteratorT d_flags; + + /// Pointer to the output sequence of selected data items + SelectedOutputIteratorT d_selected_out; + + /// Pointer to the total number of items selected (i.e., length of `d_selected_out`) + NumSelectedIteratorT d_num_selected_out; + + /// Selection operator + SelectOpT select_op; + + /// Equality operator + EqualityOpT equality_op; + + /// Total number of input items (i.e., length of `d_in`) + OffsetT num_items; + + /// CUDA stream to launch kernels within. Default is stream0. + cudaStream_t stream; + + int ptx_version; + + /** + * @param d_temp_storage + * Device-accessible allocation of temporary storage. + * When `nullptr`, the required allocation size is written to `temp_storage_bytes` + * and no work is done. + * + * @param temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param d_in + * Pointer to the input sequence of data items + * + * @param d_flags + * Pointer to the input sequence of selection flags (if applicable) + * + * @param d_selected_out + * Pointer to the output sequence of selected data items + * + * @param d_num_selected_out + * Pointer to the total number of items selected (i.e., length of `d_selected_out`) + * + * @param select_op + * Selection operator + * + * @param equality_op + * Equality operator + * + * @param num_items + * Total number of input items (i.e., length of `d_in`) + * + * @param stream + * CUDA stream to launch kernels within. Default is stream0. + */ + CUB_RUNTIME_FUNCTION __forceinline__ DispatchSelectIf(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + FlagsInputIteratorT d_flags, + SelectedOutputIteratorT d_selected_out, + NumSelectedIteratorT d_num_selected_out, + SelectOpT select_op, + EqualityOpT equality_op, + OffsetT num_items, + cudaStream_t stream, + int ptx_version) + : d_temp_storage(d_temp_storage) + , temp_storage_bytes(temp_storage_bytes) + , d_in(d_in) + , d_flags(d_flags) + , d_selected_out(d_selected_out) + , d_num_selected_out(d_num_selected_out) + , select_op(select_op) + , equality_op(equality_op) + , num_items(num_items) + , stream(stream) + , ptx_version(ptx_version) + {} + + /****************************************************************************** + * Dispatch entrypoints + ******************************************************************************/ + + /** + * Internal dispatch routine for computing a device-wide selection using the + * specified kernel functions. + */ + template + CUB_RUNTIME_FUNCTION __forceinline__ cudaError_t Invoke(ScanInitKernelPtrT scan_init_kernel, + SelectIfKernelPtrT select_if_kernel) + { + cudaError error = cudaSuccess; + + const int block_threads = ActivePolicyT::SelectIfPolicyT::BLOCK_THREADS; + const int items_per_thread = ActivePolicyT::SelectIfPolicyT::ITEMS_PER_THREAD; + const int tile_size = block_threads * items_per_thread; + + do + { + // Get device ordinal + int device_ordinal; + if (CubDebug(error = cudaGetDevice(&device_ordinal))) + { + break; + } + + // Number of input tiles + int num_tiles = static_cast(cub::DivideAndRoundUp(num_items, tile_size)); + + // Specify temporary storage allocation requirements + size_t allocation_sizes[1]; + + // bytes needed for tile status descriptors + if (CubDebug(error = ScanTileStateT::AllocationSize(num_tiles, allocation_sizes[0]))) + { + break; + } + + // Compute allocation pointers into the single storage blob (or compute the necessary size of the blob) + void* allocations[1] = {}; + if (CubDebug(error = AliasTemporaries(d_temp_storage, temp_storage_bytes, allocations, allocation_sizes))) + { + break; + } + + if (d_temp_storage == nullptr) + { + // Return if the caller is simply requesting the size of the storage allocation + break; + } + + // Construct the tile status interface + ScanTileStateT tile_status; + if (CubDebug(error = tile_status.Init(num_tiles, allocations[0], allocation_sizes[0]))) + { + break; + } + + // Log scan_init_kernel configuration + int init_grid_size = CUB_MAX(1, cub::DivideAndRoundUp(num_tiles, INIT_KERNEL_THREADS)); + + #ifdef CUB_DETAIL_DEBUG_ENABLE_LOG + _CubLog("Invoking scan_init_kernel<<<%d, %d, 0, %lld>>>()\n", init_grid_size, INIT_KERNEL_THREADS, (long long) stream); + #endif + + // Invoke scan_init_kernel to initialize tile descriptors + THRUST_NS_QUALIFIER::cuda_cub::launcher::triple_chevron( + init_grid_size, INIT_KERNEL_THREADS, 0, stream + ).doit(scan_init_kernel, + tile_status, + num_tiles, + d_num_selected_out); + + // Check for failure to launch + if (CubDebug(error = cudaPeekAtLastError())) + { + break; + } + + // Sync the stream if specified to flush runtime errors + error = detail::DebugSyncStream(stream); + if (CubDebug(error)) + { + break; + } + + // Return if empty problem + if (num_items == 0) + { + break; + } + + // Get max x-dimension of grid + int max_dim_x; + if (CubDebug(error = cudaDeviceGetAttribute(&max_dim_x, cudaDevAttrMaxGridDimX, device_ordinal))) + { + break; + } + + // Get grid size for scanning tiles + dim3 scan_grid_size; + scan_grid_size.z = 1; + scan_grid_size.y = cub::DivideAndRoundUp(num_tiles, max_dim_x); + scan_grid_size.x = CUB_MIN(num_tiles, max_dim_x); + + // Log select_if_kernel configuration + #ifdef CUB_DETAIL_DEBUG_ENABLE_LOG + { + // Get SM occupancy for select_if_kernel + int range_select_sm_occupancy; + if (CubDebug(error = MaxSmOccupancy(range_select_sm_occupancy, // out + select_if_kernel, + block_threads))) + { + break; + } + + _CubLog("Invoking select_if_kernel<<<{%d,%d,%d}, %d, 0, " + "%lld>>>(), %d items per thread, %d SM occupancy\n", + scan_grid_size.x, + scan_grid_size.y, + scan_grid_size.z, + block_threads, + (long long)stream, + items_per_thread, + range_select_sm_occupancy); + } + #endif + + // Invoke select_if_kernel + THRUST_NS_QUALIFIER::cuda_cub::launcher::triple_chevron( + scan_grid_size, block_threads, 0, stream + ).doit(select_if_kernel, + d_in, + d_flags, + d_selected_out, + d_num_selected_out, + tile_status, + select_op, + equality_op, + num_items, + num_tiles); + + // Check for failure to launch + if (CubDebug(error = cudaPeekAtLastError())) + { + break; + } + + // Sync the stream if specified to flush runtime errors + error = detail::DebugSyncStream(stream); + if (CubDebug(error)) + { + break; + } + } + while (0); + + return error; + } + + template + CUB_RUNTIME_FUNCTION __forceinline__ cudaError_t Invoke() + { + using MaxPolicyT = typename SelectedPolicy::MaxPolicy; + + return Invoke(DeviceCompactInitKernel, + DeviceSelectSweepKernel); + } + + /** + * Internal dispatch routine + * + * @param d_temp_storage + * Device-accessible allocation of temporary storage. + * When `nullptr`, the required allocation size is written to `temp_storage_bytes` + * and no work is done. + * + * @param temp_storage_bytes + * Reference to size in bytes of `d_temp_storage` allocation + * + * @param d_in + * Pointer to the input sequence of data items + * + * @param d_flags + * Pointer to the input sequence of selection flags (if applicable) + * + * @param d_selected_out + * Pointer to the output sequence of selected data items + * + * @param d_num_selected_out + * Pointer to the total number of items selected (i.e., length of `d_selected_out`) + * + * @param select_op + * Selection operator + * + * @param equality_op + * Equality operator + * + * @param num_items + * Total number of input items (i.e., length of `d_in`) + * + * @param stream + * CUDA stream to launch kernels within. Default is stream0. + */ + CUB_RUNTIME_FUNCTION __forceinline__ static cudaError_t + Dispatch(void *d_temp_storage, + size_t &temp_storage_bytes, + InputIteratorT d_in, + FlagsInputIteratorT d_flags, + SelectedOutputIteratorT d_selected_out, + NumSelectedIteratorT d_num_selected_out, + SelectOpT select_op, + EqualityOpT equality_op, + OffsetT num_items, + cudaStream_t stream) + { + using MaxPolicyT = typename SelectedPolicy::MaxPolicy; + + int ptx_version = 0; + if (cudaError_t error = CubDebug(PtxVersion(ptx_version))) + { + return error; + } + + DispatchSelectIf dispatch(d_temp_storage, + temp_storage_bytes, + d_in, + d_flags, + d_selected_out, + d_num_selected_out, + select_op, + equality_op, + num_items, + stream, + ptx_version); + + return CubDebug(MaxPolicyT::Invoke(ptx_version, dispatch)); + } + + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION __forceinline__ + static cudaError_t Dispatch( + void* d_temp_storage, + size_t& temp_storage_bytes, + InputIteratorT d_in, + FlagsInputIteratorT d_flags, + SelectedOutputIteratorT d_selected_out, + NumSelectedIteratorT d_num_selected_out, + SelectOpT select_op, + EqualityOpT equality_op, + OffsetT num_items, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return Dispatch(d_temp_storage, + temp_storage_bytes, + d_in, + d_flags, + d_selected_out, + d_num_selected_out, + select_op, + equality_op, + num_items, + stream); + } +}; + + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_spmv_orig.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_spmv_orig.cuh new file mode 100644 index 0000000000000000000000000000000000000000..c38c4bfb48896056b0550452b17f72bd94ca3ee3 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_spmv_orig.cuh @@ -0,0 +1,875 @@ + +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * cub::DeviceSpmv provides device-wide parallel operations for performing sparse-matrix * vector multiplication (SpMV). + */ + +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include +#include + +#include + +CUB_NAMESPACE_BEGIN + + +/****************************************************************************** + * SpMV kernel entry points + *****************************************************************************/ + +/** + * Spmv search kernel. Identifies merge path starting coordinates for each tile. + */ +template < + typename AgentSpmvPolicyT, ///< Parameterized SpmvPolicy tuning policy type + typename ValueT, ///< Matrix and vector value type + typename OffsetT> ///< Signed integer type for sequence offsets +__global__ void DeviceSpmv1ColKernel( + SpmvParams spmv_params) ///< [in] SpMV input parameter bundle +{ + typedef CacheModifiedInputIterator< + AgentSpmvPolicyT::VECTOR_VALUES_LOAD_MODIFIER, + ValueT, + OffsetT> + VectorValueIteratorT; + + VectorValueIteratorT wrapped_vector_x(spmv_params.d_vector_x); + + int row_idx = (blockIdx.x * blockDim.x) + threadIdx.x; + if (row_idx < spmv_params.num_rows) + { + OffsetT end_nonzero_idx = spmv_params.d_row_end_offsets[row_idx]; + OffsetT nonzero_idx = spmv_params.d_row_end_offsets[row_idx - 1]; + + ValueT value = 0.0; + if (end_nonzero_idx != nonzero_idx) + { + value = spmv_params.d_values[nonzero_idx] * wrapped_vector_x[spmv_params.d_column_indices[nonzero_idx]]; + } + + spmv_params.d_vector_y[row_idx] = value; + } +} + + +/** + * Spmv search kernel. Identifies merge path starting coordinates for each tile. + */ +template < + typename SpmvPolicyT, ///< Parameterized SpmvPolicy tuning policy type + typename OffsetT, ///< Signed integer type for sequence offsets + typename CoordinateT, ///< Merge path coordinate type + typename SpmvParamsT> ///< SpmvParams type +__global__ void DeviceSpmvSearchKernel( + int num_merge_tiles, ///< [in] Number of SpMV merge tiles (spmv grid size) + CoordinateT* d_tile_coordinates, ///< [out] Pointer to the temporary array of tile starting coordinates + SpmvParamsT spmv_params) ///< [in] SpMV input parameter bundle +{ + /// Constants + enum + { + BLOCK_THREADS = SpmvPolicyT::BLOCK_THREADS, + ITEMS_PER_THREAD = SpmvPolicyT::ITEMS_PER_THREAD, + TILE_ITEMS = BLOCK_THREADS * ITEMS_PER_THREAD, + }; + + typedef CacheModifiedInputIterator< + SpmvPolicyT::ROW_OFFSETS_SEARCH_LOAD_MODIFIER, + OffsetT, + OffsetT> + RowOffsetsSearchIteratorT; + + // Find the starting coordinate for all tiles (plus the end coordinate of the last one) + int tile_idx = (blockIdx.x * blockDim.x) + threadIdx.x; + if (tile_idx < num_merge_tiles + 1) + { + OffsetT diagonal = (tile_idx * TILE_ITEMS); + CoordinateT tile_coordinate; + CountingInputIterator nonzero_indices(0); + + // Search the merge path + MergePathSearch( + diagonal, + RowOffsetsSearchIteratorT(spmv_params.d_row_end_offsets), + nonzero_indices, + spmv_params.num_rows, + spmv_params.num_nonzeros, + tile_coordinate); + + // Output starting offset + d_tile_coordinates[tile_idx] = tile_coordinate; + } +} + + +/** + * Spmv agent entry point + */ +template < + typename SpmvPolicyT, ///< Parameterized SpmvPolicy tuning policy type + typename ScanTileStateT, ///< Tile status interface type + typename ValueT, ///< Matrix and vector value type + typename OffsetT, ///< Signed integer type for sequence offsets + typename CoordinateT, ///< Merge path coordinate type + bool HAS_ALPHA, ///< Whether the input parameter Alpha is 1 + bool HAS_BETA> ///< Whether the input parameter Beta is 0 +__launch_bounds__ (int(SpmvPolicyT::BLOCK_THREADS)) +__global__ void DeviceSpmvKernel( + SpmvParams spmv_params, ///< [in] SpMV input parameter bundle + CoordinateT* d_tile_coordinates, ///< [in] Pointer to the temporary array of tile starting coordinates + KeyValuePair* d_tile_carry_pairs, ///< [out] Pointer to the temporary array carry-out dot product row-ids, one per block + int num_tiles, ///< [in] Number of merge tiles + ScanTileStateT tile_state, ///< [in] Tile status interface for fixup reduce-by-key kernel + int num_segment_fixup_tiles) ///< [in] Number of reduce-by-key tiles (fixup grid size) +{ + // Spmv agent type specialization + typedef AgentSpmv< + SpmvPolicyT, + ValueT, + OffsetT, + HAS_ALPHA, + HAS_BETA> + AgentSpmvT; + + // Shared memory for AgentSpmv + __shared__ typename AgentSpmvT::TempStorage temp_storage; + + AgentSpmvT(temp_storage, spmv_params).ConsumeTile( + d_tile_coordinates, + d_tile_carry_pairs, + num_tiles); + + // Initialize fixup tile status + tile_state.InitializeStatus(num_segment_fixup_tiles); + +} + +template ///< Whether the input parameter Beta is 0 +__global__ void DeviceSpmvEmptyMatrixKernel(SpmvParams spmv_params) +{ + const int row = static_cast(threadIdx.x + blockIdx.x * blockDim.x); + + if (row < spmv_params.num_rows) + { + ValueT result = 0.0; + + CUB_IF_CONSTEXPR(HAS_BETA) + { + result += spmv_params.beta * spmv_params.d_vector_y[row]; + } + + spmv_params.d_vector_y[row] = result; + } +} + +/** + * Multi-block reduce-by-key sweep kernel entry point + */ +template < + typename AgentSegmentFixupPolicyT, ///< Parameterized AgentSegmentFixupPolicy tuning policy type + typename PairsInputIteratorT, ///< Random-access input iterator type for keys + typename AggregatesOutputIteratorT, ///< Random-access output iterator type for values + typename OffsetT, ///< Signed integer type for global offsets + typename ScanTileStateT> ///< Tile status interface type +__launch_bounds__ (int(AgentSegmentFixupPolicyT::BLOCK_THREADS)) +__global__ void DeviceSegmentFixupKernel( + PairsInputIteratorT d_pairs_in, ///< [in] Pointer to the array carry-out dot product row-ids, one per spmv block + AggregatesOutputIteratorT d_aggregates_out, ///< [in,out] Output value aggregates + OffsetT num_items, ///< [in] Total number of items to select from + int num_tiles, ///< [in] Total number of tiles for the entire problem + ScanTileStateT tile_state) ///< [in] Tile status interface +{ + // Thread block type for reducing tiles of value segments + typedef AgentSegmentFixup< + AgentSegmentFixupPolicyT, + PairsInputIteratorT, + AggregatesOutputIteratorT, + cub::Equality, + cub::Sum, + OffsetT> + AgentSegmentFixupT; + + // Shared memory for AgentSegmentFixup + __shared__ typename AgentSegmentFixupT::TempStorage temp_storage; + + // Process tiles + AgentSegmentFixupT(temp_storage, d_pairs_in, d_aggregates_out, cub::Equality(), cub::Sum()).ConsumeRange( + num_items, + num_tiles, + tile_state); +} + + +/****************************************************************************** + * Dispatch + ******************************************************************************/ + +/** + * Utility class for dispatching the appropriately-tuned kernels for DeviceSpmv + */ +template < + typename ValueT, ///< Matrix and vector value type + typename OffsetT> ///< Signed integer type for global offsets +struct DispatchSpmv +{ + //--------------------------------------------------------------------- + // Constants and Types + //--------------------------------------------------------------------- + + enum + { + INIT_KERNEL_THREADS = 128, + EMPTY_MATRIX_KERNEL_THREADS = 128 + }; + + // SpmvParams bundle type + typedef SpmvParams SpmvParamsT; + + // 2D merge path coordinate type + typedef typename CubVector::Type CoordinateT; + + // Tile status descriptor interface type + typedef ReduceByKeyScanTileState ScanTileStateT; + + // Tuple type for scanning (pairs accumulated segment-value with segment-index) + typedef KeyValuePair KeyValuePairT; + + + //--------------------------------------------------------------------- + // Tuning policies + //--------------------------------------------------------------------- + + /// SM35 + struct Policy350 + { + typedef AgentSpmvPolicy< + (sizeof(ValueT) > 4) ? 96 : 128, + (sizeof(ValueT) > 4) ? 4 : 7, + LOAD_LDG, + LOAD_CA, + LOAD_LDG, + LOAD_LDG, + LOAD_LDG, + (sizeof(ValueT) > 4) ? true : false, + BLOCK_SCAN_WARP_SCANS> + SpmvPolicyT; + + typedef AgentSegmentFixupPolicy< + 128, + 3, + BLOCK_LOAD_VECTORIZE, + LOAD_LDG, + BLOCK_SCAN_WARP_SCANS> + SegmentFixupPolicyT; + }; + + + /// SM37 + struct Policy370 + { + + typedef AgentSpmvPolicy< + (sizeof(ValueT) > 4) ? 128 : 128, + (sizeof(ValueT) > 4) ? 9 : 14, + LOAD_LDG, + LOAD_CA, + LOAD_LDG, + LOAD_LDG, + LOAD_LDG, + false, + BLOCK_SCAN_WARP_SCANS> + SpmvPolicyT; + + typedef AgentSegmentFixupPolicy< + 128, + 3, + BLOCK_LOAD_VECTORIZE, + LOAD_LDG, + BLOCK_SCAN_WARP_SCANS> + SegmentFixupPolicyT; + }; + + /// SM50 + struct Policy500 + { + typedef AgentSpmvPolicy< + (sizeof(ValueT) > 4) ? 64 : 128, + (sizeof(ValueT) > 4) ? 6 : 7, + LOAD_LDG, + LOAD_DEFAULT, + (sizeof(ValueT) > 4) ? LOAD_LDG : LOAD_DEFAULT, + (sizeof(ValueT) > 4) ? LOAD_LDG : LOAD_DEFAULT, + LOAD_LDG, + (sizeof(ValueT) > 4) ? true : false, + (sizeof(ValueT) > 4) ? BLOCK_SCAN_WARP_SCANS : BLOCK_SCAN_RAKING_MEMOIZE> + SpmvPolicyT; + + + typedef AgentSegmentFixupPolicy< + 128, + 3, + BLOCK_LOAD_VECTORIZE, + LOAD_LDG, + BLOCK_SCAN_RAKING_MEMOIZE> + SegmentFixupPolicyT; + }; + + + /// SM60 + struct Policy600 + { + typedef AgentSpmvPolicy< + (sizeof(ValueT) > 4) ? 64 : 128, + (sizeof(ValueT) > 4) ? 5 : 7, + LOAD_DEFAULT, + LOAD_DEFAULT, + LOAD_DEFAULT, + LOAD_DEFAULT, + LOAD_DEFAULT, + false, + BLOCK_SCAN_WARP_SCANS> + SpmvPolicyT; + + + typedef AgentSegmentFixupPolicy< + 128, + 3, + BLOCK_LOAD_DIRECT, + LOAD_LDG, + BLOCK_SCAN_WARP_SCANS> + SegmentFixupPolicyT; + }; + + + + //--------------------------------------------------------------------- + // Tuning policies of current PTX compiler pass + //--------------------------------------------------------------------- + +#if (CUB_PTX_ARCH >= 600) + typedef Policy600 PtxPolicy; + +#elif (CUB_PTX_ARCH >= 500) + typedef Policy500 PtxPolicy; + +#elif (CUB_PTX_ARCH >= 370) + typedef Policy370 PtxPolicy; + +#else + typedef Policy350 PtxPolicy; + +#endif + + // "Opaque" policies (whose parameterizations aren't reflected in the type signature) + struct PtxSpmvPolicyT : PtxPolicy::SpmvPolicyT {}; + struct PtxSegmentFixupPolicy : PtxPolicy::SegmentFixupPolicyT {}; + + + //--------------------------------------------------------------------- + // Utilities + //--------------------------------------------------------------------- + + /** + * Initialize kernel dispatch configurations with the policies corresponding to the PTX assembly we will use + */ + template + CUB_RUNTIME_FUNCTION __forceinline__ + static void InitConfigs( + int ptx_version, + KernelConfig &spmv_config, + KernelConfig &segment_fixup_config) + { + NV_IF_TARGET( + NV_IS_DEVICE, + ( // We're on the device, so initialize the kernel dispatch + // configurations with the current PTX policy + spmv_config.template Init(); + segment_fixup_config.template Init();), + ( + // We're on the host, so lookup and initialize the kernel dispatch + // configurations with the policies that match the device's PTX + // version + if (ptx_version >= 600) { + spmv_config.template Init(); + segment_fixup_config + .template Init(); + } else if (ptx_version >= 500) { + spmv_config.template Init(); + segment_fixup_config + .template Init(); + } else if (ptx_version >= 370) { + spmv_config.template Init(); + segment_fixup_config + .template Init(); + } else { + spmv_config.template Init(); + segment_fixup_config + .template Init(); + })); + } + + + /** + * Kernel kernel dispatch configuration. + */ + struct KernelConfig + { + int block_threads; + int items_per_thread; + int tile_items; + + template + CUB_RUNTIME_FUNCTION __forceinline__ + void Init() + { + block_threads = PolicyT::BLOCK_THREADS; + items_per_thread = PolicyT::ITEMS_PER_THREAD; + tile_items = block_threads * items_per_thread; + } + }; + + + //--------------------------------------------------------------------- + // Dispatch entrypoints + //--------------------------------------------------------------------- + + /** + * Internal dispatch routine for computing a device-wide reduction using the + * specified kernel functions. + * + * If the input is larger than a single tile, this method uses two-passes of + * kernel invocations. + */ + template < + typename Spmv1ColKernelT, ///< Function type of cub::DeviceSpmv1ColKernel + typename SpmvSearchKernelT, ///< Function type of cub::AgentSpmvSearchKernel + typename SpmvKernelT, ///< Function type of cub::AgentSpmvKernel + typename SegmentFixupKernelT, ///< Function type of cub::DeviceSegmentFixupKernelT + typename SpmvEmptyMatrixKernelT> ///< Function type of cub::DeviceSpmvEmptyMatrixKernel + CUB_RUNTIME_FUNCTION __forceinline__ + static cudaError_t Dispatch( + void* d_temp_storage, ///< [in] Device-accessible allocation of temporary storage. When NULL, the required allocation size is written to \p temp_storage_bytes and no work is done. + size_t& temp_storage_bytes, ///< [in,out] Reference to size in bytes of \p d_temp_storage allocation + SpmvParamsT& spmv_params, ///< SpMV input parameter bundle + cudaStream_t stream, ///< [in] CUDA stream to launch kernels within. Default is stream0. + Spmv1ColKernelT spmv_1col_kernel, ///< [in] Kernel function pointer to parameterization of DeviceSpmv1ColKernel + SpmvSearchKernelT spmv_search_kernel, ///< [in] Kernel function pointer to parameterization of AgentSpmvSearchKernel + SpmvKernelT spmv_kernel, ///< [in] Kernel function pointer to parameterization of AgentSpmvKernel + SegmentFixupKernelT segment_fixup_kernel, ///< [in] Kernel function pointer to parameterization of cub::DeviceSegmentFixupKernel + SpmvEmptyMatrixKernelT spmv_empty_matrix_kernel, ///< [in] Kernel function pointer to parameterization of cub::DeviceSpmvEmptyMatrixKernel + KernelConfig spmv_config, ///< [in] Dispatch parameters that match the policy that \p spmv_kernel was compiled for + KernelConfig segment_fixup_config) ///< [in] Dispatch parameters that match the policy that \p segment_fixup_kernel was compiled for + { + cudaError error = cudaSuccess; + do + { + if (spmv_params.num_rows < 0 || spmv_params.num_cols < 0) + { + return cudaErrorInvalidValue; + } + + if (spmv_params.num_rows == 0 || spmv_params.num_cols == 0) + { // Empty problem, no-op. + if (d_temp_storage == NULL) + { + temp_storage_bytes = 1; + } + + break; + } + + if (spmv_params.num_nonzeros == 0) + { + if (d_temp_storage == NULL) + { + // Return if the caller is simply requesting the size of the storage allocation + temp_storage_bytes = 1; + break; + } + + const int threads_in_block = EMPTY_MATRIX_KERNEL_THREADS; + const int blocks_in_grid = cub::DivideAndRoundUp(spmv_params.num_rows, + threads_in_block); + + #ifdef CUB_DETAIL_DEBUG_ENABLE_LOG + _CubLog("Invoking spmv_empty_matrix_kernel<<<%d, %d, 0, %lld>>>()\n", + blocks_in_grid, + threads_in_block, + (long long)stream); + #endif + error = THRUST_NS_QUALIFIER::cuda_cub::launcher::triple_chevron(blocks_in_grid, + threads_in_block, + 0, + stream) + .doit(spmv_empty_matrix_kernel, spmv_params); + + if (CubDebug(error)) + { + break; + } + + // Sync the stream if specified to flush runtime errors + error = detail::DebugSyncStream(stream); + if (CubDebug(error)) + { + break; + } + + break; + } + + if (spmv_params.num_cols == 1) + { + if (d_temp_storage == NULL) + { + // Return if the caller is simply requesting the size of the storage allocation + temp_storage_bytes = 1; + break; + } + + // Get search/init grid dims + int degen_col_kernel_block_size = INIT_KERNEL_THREADS; + int degen_col_kernel_grid_size = cub::DivideAndRoundUp(spmv_params.num_rows, degen_col_kernel_block_size); + + #ifdef CUB_DETAIL_DEBUG_ENABLE_LOG + _CubLog("Invoking spmv_1col_kernel<<<%d, %d, 0, %lld>>>()\n", + degen_col_kernel_grid_size, degen_col_kernel_block_size, (long long) stream); + #endif + + // Invoke spmv_search_kernel + THRUST_NS_QUALIFIER::cuda_cub::launcher::triple_chevron( + degen_col_kernel_grid_size, degen_col_kernel_block_size, 0, + stream + ).doit(spmv_1col_kernel, + spmv_params); + + // Check for failure to launch + if (CubDebug(error = cudaPeekAtLastError())) + { + break; + } + + // Sync the stream if specified to flush runtime errors + error = detail::DebugSyncStream(stream); + if (CubDebug(error)) + { + break; + } + + break; + } + + // Get device ordinal + int device_ordinal; + if (CubDebug(error = cudaGetDevice(&device_ordinal))) break; + + // Get SM count + int sm_count; + if (CubDebug(error = cudaDeviceGetAttribute (&sm_count, cudaDevAttrMultiProcessorCount, device_ordinal))) break; + + // Get max x-dimension of grid + int max_dim_x; + if (CubDebug(error = cudaDeviceGetAttribute(&max_dim_x, cudaDevAttrMaxGridDimX, device_ordinal))) break; + + // Total number of spmv work items + int num_merge_items = spmv_params.num_rows + spmv_params.num_nonzeros; + + // Tile sizes of kernels + int merge_tile_size = spmv_config.block_threads * spmv_config.items_per_thread; + int segment_fixup_tile_size = segment_fixup_config.block_threads * segment_fixup_config.items_per_thread; + + // Number of tiles for kernels + int num_merge_tiles = cub::DivideAndRoundUp(num_merge_items, merge_tile_size); + int num_segment_fixup_tiles = cub::DivideAndRoundUp(num_merge_tiles, segment_fixup_tile_size); + + // Get SM occupancy for kernels + int spmv_sm_occupancy; + if (CubDebug(error = MaxSmOccupancy( + spmv_sm_occupancy, + spmv_kernel, + spmv_config.block_threads))) break; + + int segment_fixup_sm_occupancy; + if (CubDebug(error = MaxSmOccupancy( + segment_fixup_sm_occupancy, + segment_fixup_kernel, + segment_fixup_config.block_threads))) break; + + // Get grid dimensions + dim3 spmv_grid_size( + CUB_MIN(num_merge_tiles, max_dim_x), + cub::DivideAndRoundUp(num_merge_tiles, max_dim_x), + 1); + + dim3 segment_fixup_grid_size( + CUB_MIN(num_segment_fixup_tiles, max_dim_x), + cub::DivideAndRoundUp(num_segment_fixup_tiles, max_dim_x), + 1); + + // Get the temporary storage allocation requirements + size_t allocation_sizes[3]; + if (CubDebug(error = ScanTileStateT::AllocationSize(num_segment_fixup_tiles, allocation_sizes[0]))) break; // bytes needed for reduce-by-key tile status descriptors + allocation_sizes[1] = num_merge_tiles * sizeof(KeyValuePairT); // bytes needed for block carry-out pairs + allocation_sizes[2] = (num_merge_tiles + 1) * sizeof(CoordinateT); // bytes needed for tile starting coordinates + + // Alias the temporary allocations from the single storage blob (or compute the necessary size of the blob) + void* allocations[3] = {}; + if (CubDebug(error = AliasTemporaries(d_temp_storage, temp_storage_bytes, allocations, allocation_sizes))) break; + if (d_temp_storage == NULL) + { + // Return if the caller is simply requesting the size of the storage allocation + break; + } + + // Construct the tile status interface + ScanTileStateT tile_state; + if (CubDebug(error = tile_state.Init(num_segment_fixup_tiles, allocations[0], allocation_sizes[0]))) break; + + // Alias the other allocations + KeyValuePairT* d_tile_carry_pairs = (KeyValuePairT*) allocations[1]; // Agent carry-out pairs + CoordinateT* d_tile_coordinates = (CoordinateT*) allocations[2]; // Agent starting coordinates + + // Get search/init grid dims + int search_block_size = INIT_KERNEL_THREADS; + int search_grid_size = cub::DivideAndRoundUp(num_merge_tiles + 1, search_block_size); + + if (search_grid_size < sm_count) +// if (num_merge_tiles < spmv_sm_occupancy * sm_count) + { + // Not enough spmv tiles to saturate the device: have spmv blocks search their own staring coords + d_tile_coordinates = NULL; + } + else + { + // Use separate search kernel if we have enough spmv tiles to saturate the device + + // Log spmv_search_kernel configuration + #ifdef CUB_DETAIL_DEBUG_ENABLE_LOG + _CubLog("Invoking spmv_search_kernel<<<%d, %d, 0, %lld>>>()\n", + search_grid_size, search_block_size, (long long) stream); + #endif + + // Invoke spmv_search_kernel + THRUST_NS_QUALIFIER::cuda_cub::launcher::triple_chevron( + search_grid_size, search_block_size, 0, stream + ).doit(spmv_search_kernel, + num_merge_tiles, + d_tile_coordinates, + spmv_params); + + // Check for failure to launch + if (CubDebug(error = cudaPeekAtLastError())) break; + + // Sync the stream if specified to flush runtime errors + error = detail::DebugSyncStream(stream); + if (CubDebug(error)) + { + break; + } + } + + // Log spmv_kernel configuration + #ifdef CUB_DETAIL_DEBUG_ENABLE_LOG + _CubLog("Invoking spmv_kernel<<<{%d,%d,%d}, %d, 0, %lld>>>(), %d items per thread, %d SM occupancy\n", + spmv_grid_size.x, spmv_grid_size.y, spmv_grid_size.z, spmv_config.block_threads, (long long) stream, spmv_config.items_per_thread, spmv_sm_occupancy); + #endif + + // Invoke spmv_kernel + THRUST_NS_QUALIFIER::cuda_cub::launcher::triple_chevron( + spmv_grid_size, spmv_config.block_threads, 0, stream + ).doit(spmv_kernel, + spmv_params, + d_tile_coordinates, + d_tile_carry_pairs, + num_merge_tiles, + tile_state, + num_segment_fixup_tiles); + + // Check for failure to launch + if (CubDebug(error = cudaPeekAtLastError())) break; + + // Sync the stream if specified to flush runtime errors + error = detail::DebugSyncStream(stream); + if (CubDebug(error)) + { + break; + } + + // Run reduce-by-key fixup if necessary + if (num_merge_tiles > 1) + { + // Log segment_fixup_kernel configuration + #ifdef CUB_DETAIL_DEBUG_ENABLE_LOG + _CubLog("Invoking segment_fixup_kernel<<<{%d,%d,%d}, %d, 0, %lld>>>(), %d items per thread, %d SM occupancy\n", + segment_fixup_grid_size.x, segment_fixup_grid_size.y, segment_fixup_grid_size.z, segment_fixup_config.block_threads, (long long) stream, segment_fixup_config.items_per_thread, segment_fixup_sm_occupancy); + #endif + + // Invoke segment_fixup_kernel + THRUST_NS_QUALIFIER::cuda_cub::launcher::triple_chevron( + segment_fixup_grid_size, segment_fixup_config.block_threads, + 0, stream + ).doit(segment_fixup_kernel, + d_tile_carry_pairs, + spmv_params.d_vector_y, + num_merge_tiles, + num_segment_fixup_tiles, + tile_state); + + // Check for failure to launch + if (CubDebug(error = cudaPeekAtLastError())) break; + + // Sync the stream if specified to flush runtime errors + error = detail::DebugSyncStream(stream); + if (CubDebug(error)) + { + break; + } + } + } + while (0); + + return error; + } + + template + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION __forceinline__ static cudaError_t + Dispatch(void *d_temp_storage, + size_t &temp_storage_bytes, + SpmvParamsT &spmv_params, + cudaStream_t stream, + bool debug_synchronous, + Spmv1ColKernelT spmv_1col_kernel, + SpmvSearchKernelT spmv_search_kernel, + SpmvKernelT spmv_kernel, + SegmentFixupKernelT segment_fixup_kernel, + SpmvEmptyMatrixKernelT spmv_empty_matrix_kernel, + KernelConfig spmv_config, + KernelConfig segment_fixup_config) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return Dispatch(d_temp_storage, + temp_storage_bytes, + spmv_params, + stream, + spmv_1col_kernel, + spmv_search_kernel, + spmv_kernel, + segment_fixup_kernel, + spmv_empty_matrix_kernel, + spmv_config, + segment_fixup_config); + } + + /** + * Internal dispatch routine for computing a device-wide reduction + */ + CUB_RUNTIME_FUNCTION __forceinline__ + static cudaError_t Dispatch( + void* d_temp_storage, ///< [in] Device-accessible allocation of temporary storage. When NULL, the required allocation size is written to \p temp_storage_bytes and no work is done. + size_t& temp_storage_bytes, ///< [in,out] Reference to size in bytes of \p d_temp_storage allocation + SpmvParamsT& spmv_params, ///< SpMV input parameter bundle + cudaStream_t stream = 0) ///< [in] [optional] CUDA stream to launch kernels within. Default is stream0. + { + cudaError error = cudaSuccess; + do + { + // Get PTX version + int ptx_version = 0; + if (CubDebug(error = PtxVersion(ptx_version))) break; + + // Get kernel kernel dispatch configurations + KernelConfig spmv_config, segment_fixup_config; + InitConfigs(ptx_version, spmv_config, segment_fixup_config); + + constexpr bool has_alpha = false; + constexpr bool has_beta = false; + + if (CubDebug(error = Dispatch( + d_temp_storage, temp_storage_bytes, spmv_params, stream, + DeviceSpmv1ColKernel, + DeviceSpmvSearchKernel, + DeviceSpmvKernel, + DeviceSegmentFixupKernel, + DeviceSpmvEmptyMatrixKernel, + spmv_config, segment_fixup_config))) break; + + } + while (0); + + return error; + } + + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION __forceinline__ static cudaError_t + Dispatch(void *d_temp_storage, + size_t &temp_storage_bytes, + SpmvParamsT &spmv_params, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return Dispatch(d_temp_storage, temp_storage_bytes, spmv_params, stream); + } +}; + + +CUB_NAMESPACE_END + + diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_three_way_partition.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_three_way_partition.cuh new file mode 100644 index 0000000000000000000000000000000000000000..b13e171fc8f2bbfcec129cc85f4f376184c98093 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_three_way_partition.cuh @@ -0,0 +1,512 @@ +/****************************************************************************** + * Copyright (c) 2011-2021, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +#pragma once + +#include +#include +#include +#include +#include +#include +#include + +#include + +#include +#include + +#include + +CUB_NAMESPACE_BEGIN + +/****************************************************************************** + * Kernel entry points + *****************************************************************************/ + +template +__launch_bounds__(int(ChainedPolicyT::ActivePolicy::ThreeWayPartitionPolicy::BLOCK_THREADS)) __global__ + void DeviceThreeWayPartitionKernel(InputIteratorT d_in, + FirstOutputIteratorT d_first_part_out, + SecondOutputIteratorT d_second_part_out, + UnselectedOutputIteratorT d_unselected_out, + NumSelectedIteratorT d_num_selected_out, + ScanTileStateT tile_status_1, + ScanTileStateT tile_status_2, + SelectFirstPartOp select_first_part_op, + SelectSecondPartOp select_second_part_op, + OffsetT num_items, + int num_tiles) +{ + using AgentThreeWayPartitionPolicyT = + typename ChainedPolicyT::ActivePolicy::ThreeWayPartitionPolicy; + + // Thread block type for selecting data from input tiles + using AgentThreeWayPartitionT = AgentThreeWayPartition; + + // Shared memory for AgentThreeWayPartition + __shared__ typename AgentThreeWayPartitionT::TempStorage temp_storage; + + // Process tiles + AgentThreeWayPartitionT(temp_storage, + d_in, + d_first_part_out, + d_second_part_out, + d_unselected_out, + select_first_part_op, + select_second_part_op, + num_items) + .ConsumeRange(num_tiles, tile_status_1, tile_status_2, d_num_selected_out); +} + +/** + * @brief Initialization kernel for tile status initialization (multi-block) + * + * @tparam ScanTileStateT + * Tile status interface type + * + * @tparam NumSelectedIteratorT + * Output iterator type for recording the number of items selected + * + * @param[in] tile_state_1 + * Tile status interface + * + * @param[in] tile_state_2 + * Tile status interface + * + * @param[in] num_tiles + * Number of tiles + * + * @param[out] d_num_selected_out + * Pointer to the total number of items selected + * (i.e., length of @p d_selected_out) + */ +template +__global__ void DeviceThreeWayPartitionInitKernel(ScanTileStateT tile_state_1, + ScanTileStateT tile_state_2, + int num_tiles, + NumSelectedIteratorT d_num_selected_out) +{ + // Initialize tile status + tile_state_1.InitializeStatus(num_tiles); + tile_state_2.InitializeStatus(num_tiles); + + // Initialize d_num_selected_out + if (blockIdx.x == 0) + { + if (threadIdx.x < 2) + { + d_num_selected_out[threadIdx.x] = 0; + } + } +} + +namespace detail +{ + +template +struct device_three_way_partition_policy_hub +{ + /// SM35 + struct Policy350 : ChainedPolicy<350, Policy350, Policy350> + { + constexpr static int ITEMS_PER_THREAD = Nominal4BItemsToItems(9); + + using ThreeWayPartitionPolicy = cub::AgentThreeWayPartitionPolicy<256, + ITEMS_PER_THREAD, + cub::BLOCK_LOAD_DIRECT, + cub::LOAD_DEFAULT, + cub::BLOCK_SCAN_WARP_SCANS>; + }; + + using MaxPolicy = Policy350; +}; + +} // namespace detail + +/****************************************************************************** + * Dispatch + ******************************************************************************/ + +template >> +struct DispatchThreeWayPartitionIf +{ + /***************************************************************************** + * Types and constants + ****************************************************************************/ + + using ScanTileStateT = cub::ScanTileState; + + constexpr static int INIT_KERNEL_THREADS = 256; + + void *d_temp_storage; + std::size_t &temp_storage_bytes; + InputIteratorT d_in; + FirstOutputIteratorT d_first_part_out; + SecondOutputIteratorT d_second_part_out; + UnselectedOutputIteratorT d_unselected_out; + NumSelectedIteratorT d_num_selected_out; + SelectFirstPartOp select_first_part_op; + SelectSecondPartOp select_second_part_op; + OffsetT num_items; + cudaStream_t stream; + + CUB_RUNTIME_FUNCTION __forceinline__ + DispatchThreeWayPartitionIf(void *d_temp_storage, + std::size_t &temp_storage_bytes, + InputIteratorT d_in, + FirstOutputIteratorT d_first_part_out, + SecondOutputIteratorT d_second_part_out, + UnselectedOutputIteratorT d_unselected_out, + NumSelectedIteratorT d_num_selected_out, + SelectFirstPartOp select_first_part_op, + SelectSecondPartOp select_second_part_op, + OffsetT num_items, + cudaStream_t stream) + : d_temp_storage(d_temp_storage) + , temp_storage_bytes(temp_storage_bytes) + , d_in(d_in) + , d_first_part_out(d_first_part_out) + , d_second_part_out(d_second_part_out) + , d_unselected_out(d_unselected_out) + , d_num_selected_out(d_num_selected_out) + , select_first_part_op(select_first_part_op) + , select_second_part_op(select_second_part_op) + , num_items(num_items) + , stream(stream) + {} + + /***************************************************************************** + * Dispatch entrypoints + ****************************************************************************/ + + template + CUB_RUNTIME_FUNCTION __forceinline__ cudaError_t + Invoke(ScanInitKernelPtrT three_way_partition_init_kernel, + SelectIfKernelPtrT three_way_partition_kernel) + { + cudaError error = cudaSuccess; + + const int block_threads = ActivePolicyT::ThreeWayPartitionPolicy::BLOCK_THREADS; + const int items_per_thread = ActivePolicyT::ThreeWayPartitionPolicy::ITEMS_PER_THREAD; + + do + { + // Get device ordinal + int device_ordinal; + if (CubDebug(error = cudaGetDevice(&device_ordinal))) + { + break; + } + + // Number of input tiles + int tile_size = block_threads * items_per_thread; + int num_tiles = static_cast(DivideAndRoundUp(num_items, tile_size)); + + // Specify temporary storage allocation requirements + size_t allocation_sizes[2]; // bytes needed for tile status descriptors + + if (CubDebug(error = ScanTileStateT::AllocationSize(num_tiles, allocation_sizes[0]))) + { + break; + } + + allocation_sizes[1] = allocation_sizes[0]; + + // Compute allocation pointers into the single storage blob (or compute + // the necessary size of the blob) + void *allocations[2] = {}; + if (CubDebug(error = cub::AliasTemporaries(d_temp_storage, + temp_storage_bytes, + allocations, + allocation_sizes))) + { + break; + } + + if (d_temp_storage == nullptr) + { + // Return if the caller is simply requesting the size of the storage + // allocation + break; + } + + // Return if empty problem + if (num_items == 0) + { + break; + } + + // Construct the tile status interface + ScanTileStateT tile_status_1; + ScanTileStateT tile_status_2; + + if (CubDebug(error = tile_status_1.Init(num_tiles, allocations[0], allocation_sizes[0]))) + { + break; + } + + if (CubDebug(error = tile_status_2.Init(num_tiles, allocations[1], allocation_sizes[1]))) + { + break; + } + + // Log three_way_partition_init_kernel configuration + int init_grid_size = CUB_MAX(1, DivideAndRoundUp(num_tiles, INIT_KERNEL_THREADS)); + +#ifdef CUB_DETAIL_DEBUG_ENABLE_LOG + _CubLog("Invoking three_way_partition_init_kernel<<<%d, %d, 0, %lld>>>()\n", + init_grid_size, + INIT_KERNEL_THREADS, + reinterpret_cast(stream)); +#endif + + // Invoke three_way_partition_init_kernel to initialize tile descriptors + THRUST_NS_QUALIFIER::cuda_cub::launcher::triple_chevron(init_grid_size, + INIT_KERNEL_THREADS, + 0, + stream) + .doit(three_way_partition_init_kernel, + tile_status_1, + tile_status_2, + num_tiles, + d_num_selected_out); + + // Check for failure to launch + if (CubDebug(error = cudaPeekAtLastError())) + { + break; + } + + // Sync the stream if specified to flush runtime errors + error = detail::DebugSyncStream(stream); + if (CubDebug(error)) + { + break; + } + + // Get max x-dimension of grid + int max_dim_x; + if (CubDebug( + error = cudaDeviceGetAttribute(&max_dim_x, cudaDevAttrMaxGridDimX, device_ordinal))) + { + break; + } + + // Get grid size for scanning tiles + dim3 scan_grid_size; + scan_grid_size.z = 1; + scan_grid_size.y = DivideAndRoundUp(num_tiles, max_dim_x); + scan_grid_size.x = CUB_MIN(num_tiles, max_dim_x); + +// Log select_if_kernel configuration +#ifdef CUB_DETAIL_DEBUG_ENABLE_LOG + { + // Get SM occupancy for select_if_kernel + int range_select_sm_occupancy; + if (CubDebug(error = MaxSmOccupancy(range_select_sm_occupancy, // out + three_way_partition_kernel, + block_threads))) + { + break; + } + + _CubLog("Invoking three_way_partition_kernel<<<{%d,%d,%d}, %d, 0, %lld>>>(), %d " + "items per thread, %d SM occupancy\n", + scan_grid_size.x, + scan_grid_size.y, + scan_grid_size.z, + block_threads, + reinterpret_cast(stream), + items_per_thread, + range_select_sm_occupancy); + } +#endif + + // Invoke select_if_kernel + THRUST_NS_QUALIFIER::cuda_cub::launcher::triple_chevron( + scan_grid_size, + block_threads, + 0, + stream) + .doit(three_way_partition_kernel, + d_in, + d_first_part_out, + d_second_part_out, + d_unselected_out, + d_num_selected_out, + tile_status_1, + tile_status_2, + select_first_part_op, + select_second_part_op, + num_items, + num_tiles); + + // Check for failure to launch + if (CubDebug(error = cudaPeekAtLastError())) + { + break; + } + + // Sync the stream if specified to flush runtime errors + error = detail::DebugSyncStream(stream); + if (CubDebug(error)) + { + break; + } + } while (0); + + return error; + } + + template + CUB_RUNTIME_FUNCTION __forceinline__ cudaError_t + Invoke() + { + using MaxPolicyT = typename SelectedPolicy::MaxPolicy; + return Invoke( + DeviceThreeWayPartitionInitKernel, + DeviceThreeWayPartitionKernel); + } + + /** + * Internal dispatch routine + */ + CUB_RUNTIME_FUNCTION __forceinline__ static cudaError_t + Dispatch(void *d_temp_storage, + std::size_t &temp_storage_bytes, + InputIteratorT d_in, + FirstOutputIteratorT d_first_part_out, + SecondOutputIteratorT d_second_part_out, + UnselectedOutputIteratorT d_unselected_out, + NumSelectedIteratorT d_num_selected_out, + SelectFirstPartOp select_first_part_op, + SelectSecondPartOp select_second_part_op, + OffsetT num_items, + cudaStream_t stream) + { + using MaxPolicyT = typename SelectedPolicy::MaxPolicy; + + cudaError error = cudaSuccess; + + do + { + // Get PTX version + int ptx_version = 0; + if (CubDebug(error = cub::PtxVersion(ptx_version))) + { + break; + } + + DispatchThreeWayPartitionIf dispatch(d_temp_storage, + temp_storage_bytes, + d_in, + d_first_part_out, + d_second_part_out, + d_unselected_out, + d_num_selected_out, + select_first_part_op, + select_second_part_op, + num_items, + stream); + + // Dispatch + if (CubDebug(error = MaxPolicyT::Invoke(ptx_version, dispatch))) + { + break; + } + } while (0); + + return error; + } + + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION __forceinline__ static cudaError_t + Dispatch(void *d_temp_storage, + std::size_t &temp_storage_bytes, + InputIteratorT d_in, + FirstOutputIteratorT d_first_part_out, + SecondOutputIteratorT d_second_part_out, + UnselectedOutputIteratorT d_unselected_out, + NumSelectedIteratorT d_num_selected_out, + SelectFirstPartOp select_first_part_op, + SelectSecondPartOp select_second_part_op, + OffsetT num_items, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return Dispatch(d_temp_storage, + temp_storage_bytes, + d_in, + d_first_part_out, + d_second_part_out, + d_unselected_out, + d_num_selected_out, + select_first_part_op, + select_second_part_op, + num_items, + stream); + } +}; + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_unique_by_key.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_unique_by_key.cuh new file mode 100644 index 0000000000000000000000000000000000000000..02ecd33e6511772a4fa25e197928e0784dc6ba99 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/device/dispatch/dispatch_unique_by_key.cuh @@ -0,0 +1,493 @@ + +/****************************************************************************** + * Copyright (c) NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * cub::DeviceSelect::UniqueByKey provides device-wide, parallel operations for selecting unique items by key from sequences of data items residing within device-accessible memory. + */ + +#include +#include +#include +#include +#include + +#include + +CUB_NAMESPACE_BEGIN + +/****************************************************************************** + * Kernel entry points + *****************************************************************************/ + +/** + * Unique by key kernel entry point (multi-block) + */ +template < + typename ChainedPolicyT, + typename KeyInputIteratorT, ///< Random-access input iterator type for keys + typename ValueInputIteratorT, ///< Random-access input iterator type for values + typename KeyOutputIteratorT, ///< Random-access output iterator type for keys + typename ValueOutputIteratorT, ///< Random-access output iterator type for values + typename NumSelectedIteratorT, ///< Output iterator type for recording the number of items selected + typename ScanTileStateT, ///< Tile status interface type + typename EqualityOpT, ///< Equality operator type + typename OffsetT> ///< Signed integer type for global offsets +__launch_bounds__ (int(ChainedPolicyT::ActivePolicy::UniqueByKeyPolicyT::BLOCK_THREADS)) +__global__ void DeviceUniqueByKeySweepKernel( + KeyInputIteratorT d_keys_in, ///< [in] Pointer to the input sequence of keys + ValueInputIteratorT d_values_in, ///< [in] Pointer to the input sequence of values + KeyOutputIteratorT d_keys_out, ///< [out] Pointer to the output sequence of selected data items + ValueOutputIteratorT d_values_out, ///< [out] Pointer to the output sequence of selected data items + NumSelectedIteratorT d_num_selected_out, ///< [out] Pointer to the total number of items selected (i.e., length of \p d_keys_out or \p d_values_out) + ScanTileStateT tile_state, ///< [in] Tile status interface + EqualityOpT equality_op, ///< [in] Equality operator + OffsetT num_items, ///< [in] Total number of input items (i.e., length of \p d_keys_in or \p d_values_in) + int num_tiles) ///< [in] Total number of tiles for the entire problem +{ + using AgentUniqueByKeyPolicyT = typename ChainedPolicyT::ActivePolicy::UniqueByKeyPolicyT; + + // Thread block type for selecting data from input tiles + using AgentUniqueByKeyT = AgentUniqueByKey; + + // Shared memory for AgentUniqueByKey + __shared__ typename AgentUniqueByKeyT::TempStorage temp_storage; + + // Process tiles + AgentUniqueByKeyT(temp_storage, d_keys_in, d_values_in, d_keys_out, d_values_out, equality_op, num_items).ConsumeRange( + num_tiles, + tile_state, + d_num_selected_out); +} + + +/****************************************************************************** + * Policy + ******************************************************************************/ + +template +struct DeviceUniqueByKeyPolicy +{ + using KeyT = typename std::iterator_traits::value_type; + + // SM350 + struct Policy350 : ChainedPolicy<350, Policy350, Policy350> + { + const static int INPUT_SIZE = sizeof(KeyT); + enum + { + NOMINAL_4B_ITEMS_PER_THREAD = 9, + ITEMS_PER_THREAD = Nominal4BItemsToItems(NOMINAL_4B_ITEMS_PER_THREAD), + }; + + using UniqueByKeyPolicyT = AgentUniqueByKeyPolicy<128, + ITEMS_PER_THREAD, + cub::BLOCK_LOAD_WARP_TRANSPOSE, + cub::LOAD_LDG, + cub::BLOCK_SCAN_WARP_SCANS, + detail::default_delay_constructor_t>; + }; + + // SM520 + struct Policy520 : ChainedPolicy<520, Policy520, Policy350> + { + const static int INPUT_SIZE = sizeof(KeyT); + enum + { + NOMINAL_4B_ITEMS_PER_THREAD = 11, + ITEMS_PER_THREAD = Nominal4BItemsToItems(NOMINAL_4B_ITEMS_PER_THREAD), + }; + + using UniqueByKeyPolicyT = AgentUniqueByKeyPolicy<64, + ITEMS_PER_THREAD, + cub::BLOCK_LOAD_WARP_TRANSPOSE, + cub::LOAD_LDG, + cub::BLOCK_SCAN_WARP_SCANS, + detail::default_delay_constructor_t>; + }; + + /// MaxPolicy + using MaxPolicy = Policy520; +}; + + +/****************************************************************************** + * Dispatch + ******************************************************************************/ + +/** + * Utility class for dispatching the appropriately-tuned kernels for DeviceSelect + */ +template < + typename KeyInputIteratorT, ///< Random-access input iterator type for keys + typename ValueInputIteratorT, ///< Random-access input iterator type for values + typename KeyOutputIteratorT, ///< Random-access output iterator type for keys + typename ValueOutputIteratorT, ///< Random-access output iterator type for values + typename NumSelectedIteratorT, ///< Output iterator type for recording the number of items selected + typename EqualityOpT, ///< Equality operator type + typename OffsetT, ///< Signed integer type for global offsets + typename SelectedPolicy = DeviceUniqueByKeyPolicy> +struct DispatchUniqueByKey: SelectedPolicy +{ + /****************************************************************************** + * Types and constants + ******************************************************************************/ + + enum + { + INIT_KERNEL_THREADS = 128, + }; + + // The input key and value type + using KeyT = typename std::iterator_traits::value_type; + using ValueT = typename std::iterator_traits::value_type; + + // Tile status descriptor interface type + using ScanTileStateT = ScanTileState; + + + void* d_temp_storage; ///< [in] Device-accessible allocation of temporary storage. When NULL, the required allocation size is written to \p temp_storage_bytes and no work is done. + size_t& temp_storage_bytes; ///< [in,out] Reference to size in bytes of \p d_temp_storage allocation + KeyInputIteratorT d_keys_in; ///< [in] Pointer to the input sequence of keys + ValueInputIteratorT d_values_in; ///< [in] Pointer to the input sequence of values + KeyOutputIteratorT d_keys_out; ///< [out] Pointer to the output sequence of selected data items + ValueOutputIteratorT d_values_out; ///< [out] Pointer to the output sequence of selected data items + NumSelectedIteratorT d_num_selected_out; ///< [out] Pointer to the total number of items selected (i.e., length of \p d_keys_out or \p d_values_out) + EqualityOpT equality_op; ///< [in] Equality operator + OffsetT num_items; ///< [in] Total number of input items (i.e., length of \p d_keys_in or \p d_values_in) + cudaStream_t stream; ///< [in] [optional] CUDA stream to launch kernels within. Default is stream0. + + CUB_RUNTIME_FUNCTION __forceinline__ + DispatchUniqueByKey( + void* d_temp_storage, ///< [in] Device-accessible allocation of temporary storage. When NULL, the required allocation size is written to \p temp_storage_bytes and no work is done. + size_t& temp_storage_bytes, ///< [in,out] Reference to size in bytes of \p d_temp_storage allocation + KeyInputIteratorT d_keys_in, ///< [in] Pointer to the input sequence of keys + ValueInputIteratorT d_values_in, ///< [in] Pointer to the input sequence of values + KeyOutputIteratorT d_keys_out, ///< [out] Pointer to the output sequence of selected data items + ValueOutputIteratorT d_values_out, ///< [out] Pointer to the output sequence of selected data items + NumSelectedIteratorT d_num_selected_out, ///< [out] Pointer to the total number of items selected (i.e., length of \p d_keys_out or \p d_values_out) + EqualityOpT equality_op, ///< [in] Equality operator + OffsetT num_items, ///< [in] Total number of input items (i.e., length of \p d_keys_in or \p d_values_in) + cudaStream_t stream ///< [in] [optional] CUDA stream to launch kernels within. Default is stream0. + ): + d_temp_storage(d_temp_storage), + temp_storage_bytes(temp_storage_bytes), + d_keys_in(d_keys_in), + d_values_in(d_values_in), + d_keys_out(d_keys_out), + d_values_out(d_values_out), + d_num_selected_out(d_num_selected_out), + equality_op(equality_op), + num_items(num_items), + stream(stream) + {} + + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION __forceinline__ + DispatchUniqueByKey( + void* d_temp_storage, + size_t& temp_storage_bytes, + KeyInputIteratorT d_keys_in, + ValueInputIteratorT d_values_in, + KeyOutputIteratorT d_keys_out, + ValueOutputIteratorT d_values_out, + NumSelectedIteratorT d_num_selected_out, + EqualityOpT equality_op, + OffsetT num_items, + cudaStream_t stream, + bool debug_synchronous + ): + d_temp_storage(d_temp_storage), + temp_storage_bytes(temp_storage_bytes), + d_keys_in(d_keys_in), + d_values_in(d_values_in), + d_keys_out(d_keys_out), + d_values_out(d_values_out), + d_num_selected_out(d_num_selected_out), + equality_op(equality_op), + num_items(num_items), + stream(stream) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + } + + + /****************************************************************************** + * Dispatch entrypoints + ******************************************************************************/ + + template + CUB_RUNTIME_FUNCTION __host__ __forceinline__ + cudaError_t Invoke(InitKernel init_kernel, ScanKernel scan_kernel) + { + using Policy = typename ActivePolicyT::UniqueByKeyPolicyT; + using UniqueByKeyAgentT = AgentUniqueByKey; + + cudaError error = cudaSuccess; + do + { + // Get device ordinal + int device_ordinal; + if (CubDebug(error = cudaGetDevice(&device_ordinal))) break; + + // Number of input tiles + int tile_size = Policy::BLOCK_THREADS * Policy::ITEMS_PER_THREAD; + int num_tiles = static_cast(cub::DivideAndRoundUp(num_items, tile_size)); + + // Size of virtual shared memory + int max_shmem = 0; + if (CubDebug( + error = cudaDeviceGetAttribute(&max_shmem, + cudaDevAttrMaxSharedMemoryPerBlock, + device_ordinal))) + { + break; + } + std::size_t vshmem_size = detail::VshmemSize(max_shmem, sizeof(typename UniqueByKeyAgentT::TempStorage), num_tiles); + + // Specify temporary storage allocation requirements + size_t allocation_sizes[2] = {0, vshmem_size}; + if (CubDebug(error = ScanTileStateT::AllocationSize(num_tiles, allocation_sizes[0]))) break; // bytes needed for tile status descriptors + + // Compute allocation pointers into the single storage blob (or compute the necessary size of the blob) + void *allocations[2] = {NULL, NULL}; + if (CubDebug(error = AliasTemporaries(d_temp_storage, temp_storage_bytes, allocations, allocation_sizes))) break; + if (d_temp_storage == NULL) + { + // Return if the caller is simply requesting the size of the storage allocation + break; + } + + // Construct the tile status interface + ScanTileStateT tile_state; + if (CubDebug(error = tile_state.Init(num_tiles, allocations[0], allocation_sizes[0]))) break; + + // Log init_kernel configuration + num_tiles = CUB_MAX(1, num_tiles); + int init_grid_size = cub::DivideAndRoundUp(num_tiles, INIT_KERNEL_THREADS); + + #ifdef CUB_DETAIL_DEBUG_ENABLE_LOG + _CubLog("Invoking init_kernel<<<%d, %d, 0, %lld>>>()\n", init_grid_size, INIT_KERNEL_THREADS, (long long) stream); + #endif + + // Invoke init_kernel to initialize tile descriptors + THRUST_NS_QUALIFIER::cuda_cub::launcher::triple_chevron( + init_grid_size, INIT_KERNEL_THREADS, 0, stream + ).doit(init_kernel, tile_state, num_tiles, d_num_selected_out); + + // Check for failure to launch + if (CubDebug(error = cudaPeekAtLastError())) break; + + // Sync the stream if specified to flush runtime errors + error = detail::DebugSyncStream(stream); + if (CubDebug(error)) + { + break; + } + + // Return if empty problem + if (num_items == 0) break; + + // Get max x-dimension of grid + int max_dim_x; + if (CubDebug(error = cudaDeviceGetAttribute(&max_dim_x, cudaDevAttrMaxGridDimX, device_ordinal))) break; + + // Get grid size for scanning tiles + dim3 scan_grid_size; + scan_grid_size.z = 1; + scan_grid_size.y = cub::DivideAndRoundUp(num_tiles, max_dim_x); + scan_grid_size.x = CUB_MIN(num_tiles, max_dim_x); + + // Log select_if_kernel configuration + #ifdef CUB_DETAIL_DEBUG_ENABLE_LOG + { + // Get SM occupancy for unique_by_key_kernel + int scan_sm_occupancy; + if (CubDebug(error = MaxSmOccupancy(scan_sm_occupancy, // out + scan_kernel, + Policy::BLOCK_THREADS))) + { + break; + } + + _CubLog("Invoking unique_by_key_kernel<<<{%d,%d,%d}, %d, 0, " + "%lld>>>(), %d items per thread, %d SM occupancy\n", + scan_grid_size.x, + scan_grid_size.y, + scan_grid_size.z, + Policy::BLOCK_THREADS, + (long long)stream, + Policy::ITEMS_PER_THREAD, + scan_sm_occupancy); + } + #endif + + // Invoke select_if_kernel + error = THRUST_NS_QUALIFIER::cuda_cub::launcher::triple_chevron( + scan_grid_size, Policy::BLOCK_THREADS, 0, stream + ).doit(scan_kernel, + d_keys_in, + d_values_in, + d_keys_out, + d_values_out, + d_num_selected_out, + tile_state, + equality_op, + num_items, + num_tiles); + + // Check for failure to launch + if (CubDebug(error)) + { + break; + } + + // Sync the stream if specified to flush runtime errors + error = detail::DebugSyncStream(stream); + if (CubDebug(error)) + { + break; + } + } + while(0); + + return error; + } + + template + CUB_RUNTIME_FUNCTION __host__ __forceinline__ + cudaError_t Invoke() + { + using MaxPolicyT = typename DispatchUniqueByKey::MaxPolicy; + + // Ensure kernels are instantiated. + return Invoke( + DeviceCompactInitKernel, + DeviceUniqueByKeySweepKernel< + MaxPolicyT, + KeyInputIteratorT, + ValueInputIteratorT, + KeyOutputIteratorT, + ValueOutputIteratorT, + NumSelectedIteratorT, + ScanTileStateT, + EqualityOpT, + OffsetT> + ); + } + + + /** + * Internal dispatch routine + */ + CUB_RUNTIME_FUNCTION __forceinline__ + static cudaError_t Dispatch( + void* d_temp_storage, ///< [in] Device-accessible allocation of temporary storage. When NULL, the required allocation size is written to \p temp_storage_bytes and no work is done. + size_t &temp_storage_bytes, ///< [in,out] Reference to size in bytes of \p d_temp_storage allocation + KeyInputIteratorT d_keys_in, ///< [in] Pointer to the input sequence of keys + ValueInputIteratorT d_values_in, ///< [in] Pointer to the input sequence of values + KeyOutputIteratorT d_keys_out, ///< [out] Pointer to the output sequence of selected data items + ValueOutputIteratorT d_values_out, ///< [out] Pointer to the output sequence of selected data items + NumSelectedIteratorT d_num_selected_out, ///< [out] Pointer to the total number of items selected (i.e., length of \p d_keys_out or \p d_values_out) + EqualityOpT equality_op, ///< [in] Equality operator + OffsetT num_items, ///< [in] Total number of input items (i.e., the length of \p d_in) + cudaStream_t stream) ///< [in] [optional] CUDA stream to launch kernels within. Default is stream0. + { + using MaxPolicyT = typename DispatchUniqueByKey::MaxPolicy; + + cudaError_t error; + do + { + // Get PTX version + int ptx_version = 0; + if (CubDebug(error = PtxVersion(ptx_version))) break; + + // Create dispatch functor + DispatchUniqueByKey dispatch( + d_temp_storage, + temp_storage_bytes, + d_keys_in, + d_values_in, + d_keys_out, + d_values_out, + d_num_selected_out, + equality_op, + num_items, + stream); + + // Dispatch to chained policy + if (CubDebug(error = MaxPolicyT::Invoke(ptx_version, dispatch))) break; + } + while (0); + + return error; + } + + CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED + CUB_RUNTIME_FUNCTION __forceinline__ + static cudaError_t Dispatch( + void* d_temp_storage, + size_t &temp_storage_bytes, + KeyInputIteratorT d_keys_in, + ValueInputIteratorT d_values_in, + KeyOutputIteratorT d_keys_out, + ValueOutputIteratorT d_values_out, + NumSelectedIteratorT d_num_selected_out, + EqualityOpT equality_op, + OffsetT num_items, + cudaStream_t stream, + bool debug_synchronous) + { + CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG + + return Dispatch(d_temp_storage, + temp_storage_bytes, + d_keys_in, + d_values_in, + d_keys_out, + d_values_out, + d_num_selected_out, + equality_op, + num_items, + stream); + } +}; + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/grid/grid_barrier.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/grid/grid_barrier.cuh new file mode 100644 index 0000000000000000000000000000000000000000..ca946f3cc84095ce9150160107a956e8cff9bd75 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/grid/grid_barrier.cuh @@ -0,0 +1,206 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * cub::GridBarrier implements a software global barrier among thread blocks within a CUDA grid + */ + +#pragma once + +#include "../util_debug.cuh" +#include "../config.cuh" +#include "../thread/thread_load.cuh" + +CUB_NAMESPACE_BEGIN + + +/** + * \addtogroup GridModule + * @{ + */ + + +/** + * \brief GridBarrier implements a software global barrier among thread blocks within a CUDA grid + */ +class GridBarrier +{ +protected : + + typedef unsigned int SyncFlag; + + // Counters in global device memory + SyncFlag* d_sync; + +public: + + /** + * Constructor + */ + GridBarrier() : d_sync(NULL) {} + + + /** + * Synchronize + */ + __device__ __forceinline__ void Sync() const + { + volatile SyncFlag *d_vol_sync = d_sync; + + // Threadfence and syncthreads to make sure global writes are visible before + // thread-0 reports in with its sync counter + __threadfence(); + CTA_SYNC(); + + if (blockIdx.x == 0) + { + // Report in ourselves + if (threadIdx.x == 0) + { + d_vol_sync[blockIdx.x] = 1; + } + + CTA_SYNC(); + + // Wait for everyone else to report in + for (int peer_block = threadIdx.x; peer_block < gridDim.x; peer_block += blockDim.x) + { + while (ThreadLoad(d_sync + peer_block) == 0) + { + __threadfence_block(); + } + } + + CTA_SYNC(); + + // Let everyone know it's safe to proceed + for (int peer_block = threadIdx.x; peer_block < gridDim.x; peer_block += blockDim.x) + { + d_vol_sync[peer_block] = 0; + } + } + else + { + if (threadIdx.x == 0) + { + // Report in + d_vol_sync[blockIdx.x] = 1; + + // Wait for acknowledgment + while (ThreadLoad(d_sync + blockIdx.x) == 1) + { + __threadfence_block(); + } + } + + CTA_SYNC(); + } + } +}; + + +/** + * \brief GridBarrierLifetime extends GridBarrier to provide lifetime management of the temporary device storage needed for cooperation. + * + * Uses RAII for lifetime, i.e., device resources are reclaimed when + * the destructor is called. + */ +class GridBarrierLifetime : public GridBarrier +{ +protected: + + // Number of bytes backed by d_sync + size_t sync_bytes; + +public: + + /** + * Constructor + */ + GridBarrierLifetime() : GridBarrier(), sync_bytes(0) {} + + + /** + * DeviceFrees and resets the progress counters + */ + cudaError_t HostReset() + { + cudaError_t retval = cudaSuccess; + if (d_sync) + { + CubDebug(retval = cudaFree(d_sync)); + d_sync = NULL; + } + sync_bytes = 0; + return retval; + } + + + /** + * Destructor + */ + virtual ~GridBarrierLifetime() + { + HostReset(); + } + + + /** + * Sets up the progress counters for the next kernel launch (lazily + * allocating and initializing them if necessary) + */ + cudaError_t Setup(int sweep_grid_size) + { + cudaError_t retval = cudaSuccess; + do { + size_t new_sync_bytes = sweep_grid_size * sizeof(SyncFlag); + if (new_sync_bytes > sync_bytes) + { + if (d_sync) + { + if (CubDebug(retval = cudaFree(d_sync))) break; + } + + sync_bytes = new_sync_bytes; + + // Allocate and initialize to zero + if (CubDebug(retval = cudaMalloc((void**) &d_sync, sync_bytes))) break; + if (CubDebug(retval = cudaMemset(d_sync, 0, new_sync_bytes))) break; + } + } while (0); + + return retval; + } +}; + + +/** @} */ // end group GridModule + +CUB_NAMESPACE_END + diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/grid/grid_even_share.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/grid/grid_even_share.cuh new file mode 100644 index 0000000000000000000000000000000000000000..d2150511321c299680f42d49aefb86183fba0bb5 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/grid/grid_even_share.cuh @@ -0,0 +1,222 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * cub::GridEvenShare is a descriptor utility for distributing input among CUDA thread blocks in an "even-share" fashion. Each thread block gets roughly the same number of fixed-size work units (grains). + */ + + +#pragma once + +#include "../config.cuh" +#include "../util_namespace.cuh" +#include "../util_macro.cuh" +#include "../util_math.cuh" +#include "../util_type.cuh" +#include "grid_mapping.cuh" + +CUB_NAMESPACE_BEGIN + + +/** + * \addtogroup GridModule + * @{ + */ + + +/** + * \brief GridEvenShare is a descriptor utility for distributing input among + * CUDA thread blocks in an "even-share" fashion. Each thread block gets roughly + * the same number of input tiles. + * + * \par Overview + * Each thread block is assigned a consecutive sequence of input tiles. To help + * preserve alignment and eliminate the overhead of guarded loads for all but the + * last thread block, to GridEvenShare assigns one of three different amounts of + * work to a given thread block: "big", "normal", or "last". The "big" workloads + * are one scheduling grain larger than "normal". The "last" work unit for the + * last thread block may be partially-full if the input is not an even multiple of + * the scheduling grain size. + * + * \par + * Before invoking a child grid, a parent thread will typically construct an + * instance of GridEvenShare. The instance can be passed to child thread blocks + * which can initialize their per-thread block offsets using \p BlockInit(). + */ +template +struct GridEvenShare +{ +private: + + int total_tiles; + int big_shares; + OffsetT big_share_items; + OffsetT normal_share_items; + OffsetT normal_base_offset; + +public: + + /// Total number of input items + OffsetT num_items; + + /// Grid size in thread blocks + int grid_size; + + /// OffsetT into input marking the beginning of the owning thread block's segment of input tiles + OffsetT block_offset; + + /// OffsetT into input of marking the end (one-past) of the owning thread block's segment of input tiles + OffsetT block_end; + + /// Stride between input tiles + OffsetT block_stride; + + + /** + * \brief Constructor. + */ + __host__ __device__ __forceinline__ GridEvenShare() : + total_tiles(0), + big_shares(0), + big_share_items(0), + normal_share_items(0), + normal_base_offset(0), + num_items(0), + grid_size(0), + block_offset(0), + block_end(0), + block_stride(0) + {} + + + /** + * \brief Dispatch initializer. To be called prior prior to kernel launch. + */ + __host__ __device__ __forceinline__ void DispatchInit( + OffsetT num_items_, ///< Total number of input items + int max_grid_size, ///< Maximum grid size allowable (actual grid size may be less if not warranted by the the number of input items) + int tile_items) ///< Number of data items per input tile + { + this->block_offset = num_items_; // Initialize past-the-end + this->block_end = num_items_; // Initialize past-the-end + this->num_items = num_items_; + this->total_tiles = static_cast(cub::DivideAndRoundUp(num_items_, tile_items)); + this->grid_size = CUB_MIN(total_tiles, max_grid_size); + int avg_tiles_per_block = total_tiles / grid_size; + // leftover grains go to big blocks: + this->big_shares = total_tiles - (avg_tiles_per_block * grid_size); + this->normal_share_items = avg_tiles_per_block * tile_items; + this->normal_base_offset = big_shares * tile_items; + this->big_share_items = normal_share_items + tile_items; + } + + + /** + * \brief Initializes ranges for the specified thread block index. Specialized + * for a "raking" access pattern in which each thread block is assigned a + * consecutive sequence of input tiles. + */ + template + __device__ __forceinline__ void BlockInit( + int block_id, + Int2Type /*strategy_tag*/) + { + block_stride = TILE_ITEMS; + if (block_id < big_shares) + { + // This thread block gets a big share of grains (avg_tiles_per_block + 1) + block_offset = (block_id * big_share_items); + block_end = block_offset + big_share_items; + } + else if (block_id < total_tiles) + { + // This thread block gets a normal share of grains (avg_tiles_per_block) + block_offset = normal_base_offset + (block_id * normal_share_items); + // Avoid generating values greater than num_items, as it may cause overflow + block_end = block_offset + CUB_MIN(num_items - block_offset, normal_share_items); + } + // Else default past-the-end + } + + + /** + * \brief Block-initialization, specialized for a "raking" access + * pattern in which each thread block is assigned a consecutive sequence + * of input tiles. + */ + template + __device__ __forceinline__ void BlockInit( + int block_id, + Int2Type /*strategy_tag*/) + { + block_stride = grid_size * TILE_ITEMS; + block_offset = (block_id * TILE_ITEMS); + block_end = num_items; + } + + + /** + * \brief Block-initialization, specialized for "strip mining" access + * pattern in which the input tiles assigned to each thread block are + * separated by a stride equal to the the extent of the grid. + */ + template < + int TILE_ITEMS, + GridMappingStrategy STRATEGY> + __device__ __forceinline__ void BlockInit() + { + BlockInit(blockIdx.x, Int2Type()); + } + + + /** + * \brief Block-initialization, specialized for a "raking" access + * pattern in which each thread block is assigned a consecutive sequence + * of input tiles. + */ + template + __device__ __forceinline__ void BlockInit( + OffsetT block_offset, ///< [in] Threadblock begin offset (inclusive) + OffsetT block_end) ///< [in] Threadblock end offset (exclusive) + { + this->block_offset = block_offset; + this->block_end = block_end; + this->block_stride = TILE_ITEMS; + } + + +}; + + + + + +/** @} */ // end group GridModule + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/grid/grid_mapping.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/grid/grid_mapping.cuh new file mode 100644 index 0000000000000000000000000000000000000000..b57f193deb883f421076fc52bff75f23423251d6 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/grid/grid_mapping.cuh @@ -0,0 +1,108 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * cub::GridMappingStrategy enumerates alternative strategies for mapping constant-sized tiles of device-wide data onto a grid of CUDA thread blocks. + */ + +#pragma once + +#include "../config.cuh" + +CUB_NAMESPACE_BEGIN + + +/** + * \addtogroup GridModule + * @{ + */ + + +/****************************************************************************** + * Mapping policies + *****************************************************************************/ + + +/** + * \brief cub::GridMappingStrategy enumerates alternative strategies for mapping constant-sized tiles of device-wide data onto a grid of CUDA thread blocks. + */ +enum GridMappingStrategy +{ + /** + * \brief An a "raking" access pattern in which each thread block is + * assigned a consecutive sequence of input tiles + * + * \par Overview + * The input is evenly partitioned into \p p segments, where \p p is + * constant and corresponds loosely to the number of thread blocks that may + * actively reside on the target device. Each segment is comprised of + * consecutive tiles, where a tile is a small, constant-sized unit of input + * to be processed to completion before the thread block terminates or + * obtains more work. The kernel invokes \p p thread blocks, each + * of which iteratively consumes a segment of n/p elements + * in tile-size increments. + */ + GRID_MAPPING_RAKE, + + /** + * \brief An a "strip mining" access pattern in which the input tiles assigned + * to each thread block are separated by a stride equal to the the extent of + * the grid. + * + * \par Overview + * The input is evenly partitioned into \p p sets, where \p p is + * constant and corresponds loosely to the number of thread blocks that may + * actively reside on the target device. Each set is comprised of + * data tiles separated by stride \p tiles, where a tile is a small, + * constant-sized unit of input to be processed to completion before the + * thread block terminates or obtains more work. The kernel invokes \p p + * thread blocks, each of which iteratively consumes a segment of + * n/p elements in tile-size increments. + */ + GRID_MAPPING_STRIP_MINE, + + /** + * \brief A dynamic "queue-based" strategy for assigning input tiles to thread blocks. + * + * \par Overview + * The input is treated as a queue to be dynamically consumed by a grid of + * thread blocks. Work is atomically dequeued in tiles, where a tile is a + * unit of input to be processed to completion before the thread block + * terminates or obtains more work. The grid size \p p is constant, + * loosely corresponding to the number of thread blocks that may actively + * reside on the target device. + */ + GRID_MAPPING_DYNAMIC, +}; + + +/** @} */ // end group GridModule + +CUB_NAMESPACE_END + diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/grid/grid_queue.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/grid/grid_queue.cuh new file mode 100644 index 0000000000000000000000000000000000000000..e1933e3d3819b0ad251857cb10312d0ccf93babd --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/grid/grid_queue.cuh @@ -0,0 +1,237 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * cub::GridQueue is a descriptor utility for dynamic queue management. + */ + +#pragma once + +#include +#include + +#include + +CUB_NAMESPACE_BEGIN + + +/** + * \addtogroup GridModule + * @{ + */ + + +/** + * \brief GridQueue is a descriptor utility for dynamic queue management. + * + * \par Overview + * GridQueue descriptors provides abstractions for "filling" or + * "draining" globally-shared vectors. + * + * \par + * A "filling" GridQueue works by atomically-adding to a zero-initialized counter, + * returning a unique offset for the calling thread to write its items. + * The GridQueue maintains the total "fill-size". The fill counter must be reset + * using GridQueue::ResetFill by the host or kernel instance prior to the kernel instance that + * will be filling. + * + * \par + * Similarly, a "draining" GridQueue works by works by atomically-incrementing a + * zero-initialized counter, returning a unique offset for the calling thread to + * read its items. Threads can safely drain until the array's logical fill-size is + * exceeded. The drain counter must be reset using GridQueue::ResetDrain or + * GridQueue::FillAndResetDrain by the host or kernel instance prior to the kernel instance that + * will be filling. (For dynamic work distribution of existing data, the corresponding fill-size + * is simply the number of elements in the array.) + * + * \par + * Iterative work management can be implemented simply with a pair of flip-flopping + * work buffers, each with an associated set of fill and drain GridQueue descriptors. + * + * \tparam OffsetT Signed integer type for global offsets + */ +template +class GridQueue +{ +private: + + /// Counter indices + enum + { + FILL = 0, + DRAIN = 1, + }; + + /// Pair of counters + OffsetT *d_counters; + +public: + + /// Returns the device allocation size in bytes needed to construct a GridQueue instance + __host__ __device__ __forceinline__ + static size_t AllocationSize() + { + return sizeof(OffsetT) * 2; + } + + + /// Constructs an invalid GridQueue descriptor + __host__ __device__ __forceinline__ GridQueue() + : + d_counters(NULL) + {} + + + /// Constructs a GridQueue descriptor around the device storage allocation + __host__ __device__ __forceinline__ GridQueue( + void *d_storage) ///< Device allocation to back the GridQueue. Must be at least as big as AllocationSize(). + : + d_counters((OffsetT*) d_storage) + {} + + + /// This operation sets the fill-size and resets the drain counter, preparing the GridQueue for draining in the next kernel instance. To be called by the host or by a kernel prior to that which will be draining. + __host__ __device__ __forceinline__ cudaError_t FillAndResetDrain( + OffsetT fill_size, + cudaStream_t stream = 0) + { + cudaError_t result = cudaErrorUnknown; + + NV_IF_TARGET(NV_IS_DEVICE, + ( + (void)stream; + d_counters[FILL] = fill_size; + d_counters[DRAIN] = 0; + result = cudaSuccess; + ), ( + OffsetT counters[2]; + counters[FILL] = fill_size; + counters[DRAIN] = 0; + result = CubDebug(cudaMemcpyAsync(d_counters, counters, sizeof(OffsetT) * 2, cudaMemcpyHostToDevice, stream)); + )); + + return result; + } + + + /// This operation resets the drain so that it may advance to meet the existing fill-size. To be called by the host or by a kernel prior to that which will be draining. + __host__ __device__ __forceinline__ cudaError_t ResetDrain(cudaStream_t stream = 0) + { + cudaError_t result = cudaErrorUnknown; + + NV_IF_TARGET(NV_IS_DEVICE, + ( + (void)stream; + d_counters[DRAIN] = 0; + result = cudaSuccess; + ), ( + result = CubDebug(cudaMemsetAsync(d_counters + DRAIN, 0, sizeof(OffsetT), stream)); + )); + + return result; + } + + + /// This operation resets the fill counter. To be called by the host or by a kernel prior to that which will be filling. + __host__ __device__ __forceinline__ cudaError_t ResetFill(cudaStream_t stream = 0) + { + cudaError_t result = cudaErrorUnknown; + + NV_IF_TARGET(NV_IS_DEVICE, + ( + (void)stream; + d_counters[FILL] = 0; + result = cudaSuccess; + ), ( + result = CubDebug(cudaMemsetAsync(d_counters + FILL, 0, sizeof(OffsetT), stream)); + )); + + return result; + } + + + /// Returns the fill-size established by the parent or by the previous kernel. + __host__ __device__ __forceinline__ cudaError_t FillSize( + OffsetT &fill_size, + cudaStream_t stream = 0) + { + cudaError_t result = cudaErrorUnknown; + + NV_IF_TARGET(NV_IS_DEVICE, + ( + (void)stream; + fill_size = d_counters[FILL]; + result = cudaSuccess; + ), ( + result = CubDebug(cudaMemcpyAsync(&fill_size, d_counters + FILL, sizeof(OffsetT), cudaMemcpyDeviceToHost, stream)); + )); + + return result; + } + + + /// Drain \p num_items from the queue. Returns offset from which to read items. To be called from CUDA kernel. + __device__ __forceinline__ OffsetT Drain(OffsetT num_items) + { + return atomicAdd(d_counters + DRAIN, num_items); + } + + + /// Fill \p num_items into the queue. Returns offset from which to write items. To be called from CUDA kernel. + __device__ __forceinline__ OffsetT Fill(OffsetT num_items) + { + return atomicAdd(d_counters + FILL, num_items); + } +}; + + +#ifndef DOXYGEN_SHOULD_SKIP_THIS // Do not document + + +/** + * Reset grid queue (call with 1 block of 1 thread) + */ +template +__global__ void FillAndResetDrainKernel( + GridQueue grid_queue, + OffsetT num_items) +{ + grid_queue.FillAndResetDrain(num_items); +} + + + +#endif // DOXYGEN_SHOULD_SKIP_THIS + + +/** @} */ // end group GridModule + +CUB_NAMESPACE_END + + diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/host/mutex.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/host/mutex.cuh new file mode 100644 index 0000000000000000000000000000000000000000..4ee4028845295ce43fb12a8af5a6d10396456d63 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/host/mutex.cuh @@ -0,0 +1,66 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2023, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * Simple portable mutex + */ + +#pragma once + +#include + +#include +#include + + +CUB_NAMESPACE_BEGIN + + +/** + * Wraps std::mutex + * @deprecated [Since CUB 2.1.0] The `cub::Mutex` is deprecated and will be removed + * in a future release. Use `std::mutex` instead. + */ +struct CUB_DEPRECATED Mutex +{ + std::mutex mtx; + + void Lock() + { + mtx.lock(); + } + + void Unlock() + { + mtx.unlock(); + } +}; + + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/iterator/arg_index_input_iterator.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/iterator/arg_index_input_iterator.cuh new file mode 100644 index 0000000000000000000000000000000000000000..822869a5a54ef9d7aa79cdf223c6ffabfbc55496 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/iterator/arg_index_input_iterator.cuh @@ -0,0 +1,254 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * Random-access iterator types + */ + +#pragma once + +#include +#include + +#include "../config.cuh" +#include "../thread/thread_load.cuh" +#include "../thread/thread_store.cuh" +#include "../util_device.cuh" + +#include + +#if (THRUST_VERSION >= 100700) + // This iterator is compatible with Thrust API 1.7 and newer + #include + #include +#endif // THRUST_VERSION + +CUB_NAMESPACE_BEGIN + +/** + * \addtogroup UtilIterator + * @{ + */ + + +/** + * \brief A random-access input wrapper for pairing dereferenced values with their corresponding indices (forming \p KeyValuePair tuples). + * + * \par Overview + * - ArgIndexInputIteratorTwraps a random access input iterator \p itr of type \p InputIteratorT. + * Dereferencing an ArgIndexInputIteratorTat offset \p i produces a \p KeyValuePair value whose + * \p key field is \p i and whose \p value field is itr[i]. + * - Can be used with any data type. + * - Can be constructed, manipulated, and exchanged within and between host and device + * functions. Wrapped host memory can only be dereferenced on the host, and wrapped + * device memory can only be dereferenced on the device. + * - Compatible with Thrust API v1.7 or newer. + * + * \par Snippet + * The code snippet below illustrates the use of \p ArgIndexInputIteratorTto + * dereference an array of doubles + * \par + * \code + * #include // or equivalently + * + * // Declare, allocate, and initialize a device array + * double *d_in; // e.g., [8.0, 6.0, 7.0, 5.0, 3.0, 0.0, 9.0] + * + * // Create an iterator wrapper + * cub::ArgIndexInputIterator itr(d_in); + * + * // Within device code: + * typedef typename cub::ArgIndexInputIterator::value_type Tuple; + * Tuple item_offset_pair.key = *itr; + * printf("%f @ %d\n", + * item_offset_pair.value, + * item_offset_pair.key); // 8.0 @ 0 + * + * itr = itr + 6; + * item_offset_pair.key = *itr; + * printf("%f @ %d\n", + * item_offset_pair.value, + * item_offset_pair.key); // 9.0 @ 6 + * + * \endcode + * + * \tparam InputIteratorT The value type of the wrapped input iterator + * \tparam OffsetT The difference type of this iterator (Default: \p ptrdiff_t) + * \tparam OutputValueT The paired value type of the tuple (Default: value type of input iterator) + */ +template < + typename InputIteratorT, + typename OffsetT = ptrdiff_t, + typename OutputValueT = cub::detail::value_t> +class ArgIndexInputIterator +{ +public: + + // Required iterator traits + typedef ArgIndexInputIterator self_type; ///< My own type + typedef OffsetT difference_type; ///< Type to express the result of subtracting one iterator from another + typedef KeyValuePair value_type; ///< The type of the element the iterator can point to + typedef value_type* pointer; ///< The type of a pointer to an element the iterator can point to + typedef value_type reference; ///< The type of a reference to an element the iterator can point to + +#if (THRUST_VERSION >= 100700) + // Use Thrust's iterator categories so we can use these iterators in Thrust 1.7 (or newer) methods + typedef typename THRUST_NS_QUALIFIER::detail::iterator_facade_category< + THRUST_NS_QUALIFIER::any_system_tag, + THRUST_NS_QUALIFIER::random_access_traversal_tag, + value_type, + reference + >::type iterator_category; ///< The iterator category +#else + typedef std::random_access_iterator_tag iterator_category; ///< The iterator category +#endif // THRUST_VERSION + +private: + + InputIteratorT itr; + difference_type offset; + +public: + + /// Constructor + __host__ __device__ __forceinline__ ArgIndexInputIterator( + InputIteratorT itr, ///< Input iterator to wrap + difference_type offset = 0) ///< OffsetT (in items) from \p itr denoting the position of the iterator + : + itr(itr), + offset(offset) + {} + + /// Postfix increment + __host__ __device__ __forceinline__ self_type operator++(int) + { + self_type retval = *this; + offset++; + return retval; + } + + /// Prefix increment + __host__ __device__ __forceinline__ self_type operator++() + { + offset++; + return *this; + } + + /// Indirection + __host__ __device__ __forceinline__ reference operator*() const + { + value_type retval; + retval.value = itr[offset]; + retval.key = offset; + return retval; + } + + /// Addition + template + __host__ __device__ __forceinline__ self_type operator+(Distance n) const + { + self_type retval(itr, offset + n); + return retval; + } + + /// Addition assignment + template + __host__ __device__ __forceinline__ self_type& operator+=(Distance n) + { + offset += n; + return *this; + } + + /// Subtraction + template + __host__ __device__ __forceinline__ self_type operator-(Distance n) const + { + self_type retval(itr, offset - n); + return retval; + } + + /// Subtraction assignment + template + __host__ __device__ __forceinline__ self_type& operator-=(Distance n) + { + offset -= n; + return *this; + } + + /// Distance + __host__ __device__ __forceinline__ difference_type operator-(self_type other) const + { + return offset - other.offset; + } + + /// Array subscript + template + __host__ __device__ __forceinline__ reference operator[](Distance n) const + { + self_type offset = (*this) + n; + return *offset; + } + + /// Structure dereference + __host__ __device__ __forceinline__ pointer operator->() + { + return &(*(*this)); + } + + /// Equal to + __host__ __device__ __forceinline__ bool operator==(const self_type& rhs) + { + return ((itr == rhs.itr) && (offset == rhs.offset)); + } + + /// Not equal to + __host__ __device__ __forceinline__ bool operator!=(const self_type& rhs) + { + return ((itr != rhs.itr) || (offset != rhs.offset)); + } + + /// Normalize + __host__ __device__ __forceinline__ void normalize() + { + itr += offset; + offset = 0; + } + + /// ostream operator + friend std::ostream& operator<<(std::ostream& os, const self_type& /*itr*/) + { + return os; + } +}; + + + +/** @} */ // end group UtilIterator + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/iterator/cache_modified_input_iterator.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/iterator/cache_modified_input_iterator.cuh new file mode 100644 index 0000000000000000000000000000000000000000..0224d148ec9ac9d80a2db57cba38927365d63bc0 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/iterator/cache_modified_input_iterator.cuh @@ -0,0 +1,235 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * Random-access iterator types + */ + +#pragma once + +#include +#include + +#include "../config.cuh" +#include "../thread/thread_load.cuh" +#include "../thread/thread_store.cuh" +#include "../util_device.cuh" + +#if (THRUST_VERSION >= 100700) + // This iterator is compatible with Thrust API 1.7 and newer + #include + #include +#endif // THRUST_VERSION + + +CUB_NAMESPACE_BEGIN + + + +/** + * \addtogroup UtilIterator + * @{ + */ + + +/** + * \brief A random-access input wrapper for dereferencing array values using a PTX cache load modifier. + * + * \par Overview + * - CacheModifiedInputIterator is a random-access input iterator that wraps a native + * device pointer of type ValueType*. \p ValueType references are + * made by reading \p ValueType values through loads modified by \p MODIFIER. + * - Can be used to load any data type from memory using PTX cache load modifiers (e.g., "LOAD_LDG", + * "LOAD_CG", "LOAD_CA", "LOAD_CS", "LOAD_CV", etc.). + * - Can be constructed, manipulated, and exchanged within and between host and device + * functions, but can only be dereferenced within device functions. + * - Compatible with Thrust API v1.7 or newer. + * + * \par Snippet + * The code snippet below illustrates the use of \p CacheModifiedInputIterator to + * dereference a device array of double using the "ldg" PTX load modifier + * (i.e., load values through texture cache). + * \par + * \code + * #include // or equivalently + * + * // Declare, allocate, and initialize a device array + * double *d_in; // e.g., [8.0, 6.0, 7.0, 5.0, 3.0, 0.0, 9.0] + * + * // Create an iterator wrapper + * cub::CacheModifiedInputIterator itr(d_in); + * + * // Within device code: + * printf("%f\n", itr[0]); // 8.0 + * printf("%f\n", itr[1]); // 6.0 + * printf("%f\n", itr[6]); // 9.0 + * + * \endcode + * + * \tparam CacheLoadModifier The cub::CacheLoadModifier to use when accessing data + * \tparam ValueType The value type of this iterator + * \tparam OffsetT The difference type of this iterator (Default: \p ptrdiff_t) + */ +template < + CacheLoadModifier MODIFIER, + typename ValueType, + typename OffsetT = ptrdiff_t> +class CacheModifiedInputIterator +{ +public: + + // Required iterator traits + typedef CacheModifiedInputIterator self_type; ///< My own type + typedef OffsetT difference_type; ///< Type to express the result of subtracting one iterator from another + typedef ValueType value_type; ///< The type of the element the iterator can point to + typedef ValueType* pointer; ///< The type of a pointer to an element the iterator can point to + typedef ValueType reference; ///< The type of a reference to an element the iterator can point to + +#if (THRUST_VERSION >= 100700) + // Use Thrust's iterator categories so we can use these iterators in Thrust 1.7 (or newer) methods + typedef typename THRUST_NS_QUALIFIER::detail::iterator_facade_category< + THRUST_NS_QUALIFIER::device_system_tag, + THRUST_NS_QUALIFIER::random_access_traversal_tag, + value_type, + reference + >::type iterator_category; ///< The iterator category +#else + typedef std::random_access_iterator_tag iterator_category; ///< The iterator category +#endif // THRUST_VERSION + + +public: + + /// Wrapped native pointer + ValueType* ptr; + + /// Constructor + template + __host__ __device__ __forceinline__ CacheModifiedInputIterator( + QualifiedValueType* ptr) ///< Native pointer to wrap + : + ptr(const_cast::type *>(ptr)) + {} + + /// Postfix increment + __host__ __device__ __forceinline__ self_type operator++(int) + { + self_type retval = *this; + ptr++; + return retval; + } + + /// Prefix increment + __host__ __device__ __forceinline__ self_type operator++() + { + ptr++; + return *this; + } + + /// Indirection + __device__ __forceinline__ reference operator*() const + { + return ThreadLoad(ptr); + } + + /// Addition + template + __host__ __device__ __forceinline__ self_type operator+(Distance n) const + { + self_type retval(ptr + n); + return retval; + } + + /// Addition assignment + template + __host__ __device__ __forceinline__ self_type& operator+=(Distance n) + { + ptr += n; + return *this; + } + + /// Subtraction + template + __host__ __device__ __forceinline__ self_type operator-(Distance n) const + { + self_type retval(ptr - n); + return retval; + } + + /// Subtraction assignment + template + __host__ __device__ __forceinline__ self_type& operator-=(Distance n) + { + ptr -= n; + return *this; + } + + /// Distance + __host__ __device__ __forceinline__ difference_type operator-(self_type other) const + { + return ptr - other.ptr; + } + + /// Array subscript + template + __device__ __forceinline__ reference operator[](Distance n) const + { + return ThreadLoad(ptr + n); + } + + /// Structure dereference + __device__ __forceinline__ pointer operator->() + { + return &ThreadLoad(ptr); + } + + /// Equal to + __host__ __device__ __forceinline__ bool operator==(const self_type& rhs) + { + return (ptr == rhs.ptr); + } + + /// Not equal to + __host__ __device__ __forceinline__ bool operator!=(const self_type& rhs) + { + return (ptr != rhs.ptr); + } + + /// ostream operator + friend std::ostream& operator<<(std::ostream& os, const self_type& /*itr*/) + { + return os; + } +}; + + + +/** @} */ // end group UtilIterator + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/iterator/cache_modified_output_iterator.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/iterator/cache_modified_output_iterator.cuh new file mode 100644 index 0000000000000000000000000000000000000000..be08dbce0bffc502b7f130b1a60593989d61748d --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/iterator/cache_modified_output_iterator.cuh @@ -0,0 +1,249 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * Random-access iterator types + */ + +#pragma once + +#include +#include + +#include "../thread/thread_load.cuh" +#include "../thread/thread_store.cuh" +#include "../config.cuh" +#include "../util_device.cuh" + +#if (THRUST_VERSION >= 100700) + // This iterator is compatible with Thrust API 1.7 and newer + #include + #include +#endif // THRUST_VERSION + + +CUB_NAMESPACE_BEGIN + + +/** + * \addtogroup UtilIterator + * @{ + */ + + +/** + * \brief A random-access output wrapper for storing array values using a PTX cache-modifier. + * + * \par Overview + * - CacheModifiedOutputIterator is a random-access output iterator that wraps a native + * device pointer of type ValueType*. \p ValueType references are + * made by writing \p ValueType values through stores modified by \p MODIFIER. + * - Can be used to store any data type to memory using PTX cache store modifiers (e.g., "STORE_WB", + * "STORE_CG", "STORE_CS", "STORE_WT", etc.). + * - Can be constructed, manipulated, and exchanged within and between host and device + * functions, but can only be dereferenced within device functions. + * - Compatible with Thrust API v1.7 or newer. + * + * \par Snippet + * The code snippet below illustrates the use of \p CacheModifiedOutputIterator to + * dereference a device array of doubles using the "wt" PTX load modifier + * (i.e., write-through to system memory). + * \par + * \code + * #include // or equivalently + * + * // Declare, allocate, and initialize a device array + * double *d_out; // e.g., [, , , , , , ] + * + * // Create an iterator wrapper + * cub::CacheModifiedOutputIterator itr(d_out); + * + * // Within device code: + * itr[0] = 8.0; + * itr[1] = 66.0; + * itr[55] = 24.0; + * + * \endcode + * + * \par Usage Considerations + * - Can only be dereferenced within device code + * + * \tparam CacheStoreModifier The cub::CacheStoreModifier to use when accessing data + * \tparam ValueType The value type of this iterator + * \tparam OffsetT The difference type of this iterator (Default: \p ptrdiff_t) + */ +template < + CacheStoreModifier MODIFIER, + typename ValueType, + typename OffsetT = ptrdiff_t> +class CacheModifiedOutputIterator +{ +private: + + // Proxy object + struct Reference + { + ValueType* ptr; + + /// Constructor + __host__ __device__ __forceinline__ Reference(ValueType* ptr) : ptr(ptr) {} + + /// Assignment + __device__ __forceinline__ ValueType operator =(ValueType val) + { + ThreadStore(ptr, val); + return val; + } + }; + +public: + + // Required iterator traits + typedef CacheModifiedOutputIterator self_type; ///< My own type + typedef OffsetT difference_type; ///< Type to express the result of subtracting one iterator from another + typedef void value_type; ///< The type of the element the iterator can point to + typedef void pointer; ///< The type of a pointer to an element the iterator can point to + typedef Reference reference; ///< The type of a reference to an element the iterator can point to + +#if (THRUST_VERSION >= 100700) + // Use Thrust's iterator categories so we can use these iterators in Thrust 1.7 (or newer) methods + typedef typename THRUST_NS_QUALIFIER::detail::iterator_facade_category< + THRUST_NS_QUALIFIER::device_system_tag, + THRUST_NS_QUALIFIER::random_access_traversal_tag, + value_type, + reference + >::type iterator_category; ///< The iterator category +#else + typedef std::random_access_iterator_tag iterator_category; ///< The iterator category +#endif // THRUST_VERSION + +private: + + ValueType* ptr; + +public: + + /// Constructor + template + __host__ __device__ __forceinline__ CacheModifiedOutputIterator( + QualifiedValueType* ptr) ///< Native pointer to wrap + : + ptr(const_cast::type *>(ptr)) + {} + + /// Postfix increment + __host__ __device__ __forceinline__ self_type operator++(int) + { + self_type retval = *this; + ptr++; + return retval; + } + + + /// Prefix increment + __host__ __device__ __forceinline__ self_type operator++() + { + ptr++; + return *this; + } + + /// Indirection + __host__ __device__ __forceinline__ reference operator*() const + { + return Reference(ptr); + } + + /// Addition + template + __host__ __device__ __forceinline__ self_type operator+(Distance n) const + { + self_type retval(ptr + n); + return retval; + } + + /// Addition assignment + template + __host__ __device__ __forceinline__ self_type& operator+=(Distance n) + { + ptr += n; + return *this; + } + + /// Subtraction + template + __host__ __device__ __forceinline__ self_type operator-(Distance n) const + { + self_type retval(ptr - n); + return retval; + } + + /// Subtraction assignment + template + __host__ __device__ __forceinline__ self_type& operator-=(Distance n) + { + ptr -= n; + return *this; + } + + /// Distance + __host__ __device__ __forceinline__ difference_type operator-(self_type other) const + { + return ptr - other.ptr; + } + + /// Array subscript + template + __host__ __device__ __forceinline__ reference operator[](Distance n) const + { + return Reference(ptr + n); + } + + /// Equal to + __host__ __device__ __forceinline__ bool operator==(const self_type& rhs) + { + return (ptr == rhs.ptr); + } + + /// Not equal to + __host__ __device__ __forceinline__ bool operator!=(const self_type& rhs) + { + return (ptr != rhs.ptr); + } + + /// ostream operator + friend std::ostream& operator<<(std::ostream& os, const self_type& itr) + { + return os; + } +}; + + +/** @} */ // end group UtilIterator + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/iterator/constant_input_iterator.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/iterator/constant_input_iterator.cuh new file mode 100644 index 0000000000000000000000000000000000000000..dc2d72e897829e5d27a1e883c53673502ffb431c --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/iterator/constant_input_iterator.cuh @@ -0,0 +1,230 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * Random-access iterator types + */ + +#pragma once + +#include +#include + +#include "../thread/thread_load.cuh" +#include "../thread/thread_store.cuh" +#include "../config.cuh" + +#if (THRUST_VERSION >= 100700) + // This iterator is compatible with Thrust API 1.7 and newer + #include + #include +#endif // THRUST_VERSION + + +CUB_NAMESPACE_BEGIN + + +/** + * \addtogroup UtilIterator + * @{ + */ + + +/** + * \brief A random-access input generator for dereferencing a sequence of homogeneous values + * + * \par Overview + * - Read references to a ConstantInputIteratorTiterator always return the supplied constant + * of type \p ValueType. + * - Can be used with any data type. + * - Can be constructed, manipulated, dereferenced, and exchanged within and between host and device + * functions. + * - Compatible with Thrust API v1.7 or newer. + * + * \par Snippet + * The code snippet below illustrates the use of \p ConstantInputIteratorTto + * dereference a sequence of homogeneous doubles. + * \par + * \code + * #include // or equivalently + * + * cub::ConstantInputIterator itr(5.0); + * + * printf("%f\n", itr[0]); // 5.0 + * printf("%f\n", itr[1]); // 5.0 + * printf("%f\n", itr[2]); // 5.0 + * printf("%f\n", itr[50]); // 5.0 + * + * \endcode + * + * \tparam ValueType The value type of this iterator + * \tparam OffsetT The difference type of this iterator (Default: \p ptrdiff_t) + */ +template < + typename ValueType, + typename OffsetT = ptrdiff_t> +class ConstantInputIterator +{ +public: + + // Required iterator traits + typedef ConstantInputIterator self_type; ///< My own type + typedef OffsetT difference_type; ///< Type to express the result of subtracting one iterator from another + typedef ValueType value_type; ///< The type of the element the iterator can point to + typedef ValueType* pointer; ///< The type of a pointer to an element the iterator can point to + typedef ValueType reference; ///< The type of a reference to an element the iterator can point to + +#if (THRUST_VERSION >= 100700) + // Use Thrust's iterator categories so we can use these iterators in Thrust 1.7 (or newer) methods + typedef typename THRUST_NS_QUALIFIER::detail::iterator_facade_category< + THRUST_NS_QUALIFIER::any_system_tag, + THRUST_NS_QUALIFIER::random_access_traversal_tag, + value_type, + reference + >::type iterator_category; ///< The iterator category +#else + typedef std::random_access_iterator_tag iterator_category; ///< The iterator category +#endif // THRUST_VERSION + +private: + + ValueType val; + OffsetT offset; +#ifdef _WIN32 + OffsetT pad[CUB_MAX(1, (16 / sizeof(OffsetT) - 1))]; // Workaround for win32 parameter-passing bug (ulonglong2 argmin DeviceReduce) +#endif + +public: + + /// Constructor + __host__ __device__ __forceinline__ ConstantInputIterator( + ValueType val, ///< Starting value for the iterator instance to report + OffsetT offset = 0) ///< Base offset + : + val(val), + offset(offset) + {} + + /// Postfix increment + __host__ __device__ __forceinline__ self_type operator++(int) + { + self_type retval = *this; + offset++; + return retval; + } + + /// Prefix increment + __host__ __device__ __forceinline__ self_type operator++() + { + offset++; + return *this; + } + + /// Indirection + __host__ __device__ __forceinline__ reference operator*() const + { + return val; + } + + /// Addition + template + __host__ __device__ __forceinline__ self_type operator+(Distance n) const + { + self_type retval(val, offset + n); + return retval; + } + + /// Addition assignment + template + __host__ __device__ __forceinline__ self_type& operator+=(Distance n) + { + offset += n; + return *this; + } + + /// Subtraction + template + __host__ __device__ __forceinline__ self_type operator-(Distance n) const + { + self_type retval(val, offset - n); + return retval; + } + + /// Subtraction assignment + template + __host__ __device__ __forceinline__ self_type& operator-=(Distance n) + { + offset -= n; + return *this; + } + + /// Distance + __host__ __device__ __forceinline__ difference_type operator-(self_type other) const + { + return offset - other.offset; + } + + /// Array subscript + template + __host__ __device__ __forceinline__ reference operator[](Distance /*n*/) const + { + return val; + } + + /// Structure dereference + __host__ __device__ __forceinline__ pointer operator->() + { + return &val; + } + + /// Equal to + __host__ __device__ __forceinline__ bool operator==(const self_type& rhs) + { + return (offset == rhs.offset) && ((val == rhs.val)); + } + + /// Not equal to + __host__ __device__ __forceinline__ bool operator!=(const self_type& rhs) + { + return (offset != rhs.offset) || (val!= rhs.val); + } + + /// ostream operator + friend std::ostream& operator<<(std::ostream& os, const self_type& itr) + { + os << "[" << itr.val << "," << itr.offset << "]"; + return os; + } + +}; + + +/** @} */ // end group UtilIterator + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/iterator/counting_input_iterator.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/iterator/counting_input_iterator.cuh new file mode 100644 index 0000000000000000000000000000000000000000..e81f1d9680ecc277b5249bb9646f504d0f65d77f --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/iterator/counting_input_iterator.cuh @@ -0,0 +1,223 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * Random-access iterator types + */ + +#pragma once + +#include +#include + +#include "../thread/thread_load.cuh" +#include "../thread/thread_store.cuh" +#include "../config.cuh" +#include "../util_device.cuh" + +#if (THRUST_VERSION >= 100700) + // This iterator is compatible with Thrust API 1.7 and newer + #include + #include +#endif // THRUST_VERSION + + +CUB_NAMESPACE_BEGIN + +/** + * \addtogroup UtilIterator + * @{ + */ + +/** + * \brief A random-access input generator for dereferencing a sequence of incrementing integer values. + * + * \par Overview + * - After initializing a CountingInputIteratorTto a certain integer \p base, read references + * at \p offset will return the value \p base + \p offset. + * - Can be constructed, manipulated, dereferenced, and exchanged within and between host and device + * functions. + * - Compatible with Thrust API v1.7 or newer. + * + * \par Snippet + * The code snippet below illustrates the use of \p CountingInputIteratorTto + * dereference a sequence of incrementing integers. + * \par + * \code + * #include // or equivalently + * + * cub::CountingInputIterator itr(5); + * + * printf("%d\n", itr[0]); // 5 + * printf("%d\n", itr[1]); // 6 + * printf("%d\n", itr[2]); // 7 + * printf("%d\n", itr[50]); // 55 + * + * \endcode + * + * \tparam ValueType The value type of this iterator + * \tparam OffsetT The difference type of this iterator (Default: \p ptrdiff_t) + */ +template < + typename ValueType, + typename OffsetT = ptrdiff_t> +class CountingInputIterator +{ +public: + + // Required iterator traits + typedef CountingInputIterator self_type; ///< My own type + typedef OffsetT difference_type; ///< Type to express the result of subtracting one iterator from another + typedef ValueType value_type; ///< The type of the element the iterator can point to + typedef ValueType* pointer; ///< The type of a pointer to an element the iterator can point to + typedef ValueType reference; ///< The type of a reference to an element the iterator can point to + +#if (THRUST_VERSION >= 100700) + // Use Thrust's iterator categories so we can use these iterators in Thrust 1.7 (or newer) methods + typedef typename THRUST_NS_QUALIFIER::detail::iterator_facade_category< + THRUST_NS_QUALIFIER::any_system_tag, + THRUST_NS_QUALIFIER::random_access_traversal_tag, + value_type, + reference + >::type iterator_category; ///< The iterator category +#else + typedef std::random_access_iterator_tag iterator_category; ///< The iterator category +#endif // THRUST_VERSION + +private: + + ValueType val; + +public: + + /// Constructor + __host__ __device__ __forceinline__ CountingInputIterator( + const ValueType &val) ///< Starting value for the iterator instance to report + : + val(val) + {} + + /// Postfix increment + __host__ __device__ __forceinline__ self_type operator++(int) + { + self_type retval = *this; + val++; + return retval; + } + + /// Prefix increment + __host__ __device__ __forceinline__ self_type operator++() + { + val++; + return *this; + } + + /// Indirection + __host__ __device__ __forceinline__ reference operator*() const + { + return val; + } + + /// Addition + template + __host__ __device__ __forceinline__ self_type operator+(Distance n) const + { + self_type retval(val + (ValueType) n); + return retval; + } + + /// Addition assignment + template + __host__ __device__ __forceinline__ self_type& operator+=(Distance n) + { + val += (ValueType) n; + return *this; + } + + /// Subtraction + template + __host__ __device__ __forceinline__ self_type operator-(Distance n) const + { + self_type retval(val - (ValueType) n); + return retval; + } + + /// Subtraction assignment + template + __host__ __device__ __forceinline__ self_type& operator-=(Distance n) + { + val -= n; + return *this; + } + + /// Distance + __host__ __device__ __forceinline__ difference_type operator-(self_type other) const + { + return (difference_type) (val - other.val); + } + + /// Array subscript + template + __host__ __device__ __forceinline__ reference operator[](Distance n) const + { + return val + (ValueType) n; + } + + /// Structure dereference + __host__ __device__ __forceinline__ pointer operator->() + { + return &val; + } + + /// Equal to + __host__ __device__ __forceinline__ bool operator==(const self_type& rhs) + { + return (val == rhs.val); + } + + /// Not equal to + __host__ __device__ __forceinline__ bool operator!=(const self_type& rhs) + { + return (val != rhs.val); + } + + /// ostream operator + friend std::ostream& operator<<(std::ostream& os, const self_type& itr) + { + os << "[" << itr.val << "]"; + return os; + } + +}; + + + +/** @} */ // end group UtilIterator + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/iterator/discard_output_iterator.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/iterator/discard_output_iterator.cuh new file mode 100644 index 0000000000000000000000000000000000000000..ac47a3ff344026bcf96c05e2981bd2adeccc43db --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/iterator/discard_output_iterator.cuh @@ -0,0 +1,208 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * Random-access iterator types + */ + +#pragma once + +#include +#include + +#include "../config.cuh" + +#if (THRUST_VERSION >= 100700) + // This iterator is compatible with Thrust API 1.7 and newer + #include + #include +#endif // THRUST_VERSION + + +CUB_NAMESPACE_BEGIN + + +/** + * \addtogroup UtilIterator + * @{ + */ + + +/** + * \brief A discard iterator + */ +template +class DiscardOutputIterator +{ +public: + + // Required iterator traits + typedef DiscardOutputIterator self_type; ///< My own type + typedef OffsetT difference_type; ///< Type to express the result of subtracting one iterator from another + typedef void value_type; ///< The type of the element the iterator can point to + typedef void pointer; ///< The type of a pointer to an element the iterator can point to + typedef void reference; ///< The type of a reference to an element the iterator can point to + +#if (THRUST_VERSION >= 100700) + // Use Thrust's iterator categories so we can use these iterators in Thrust 1.7 (or newer) methods + typedef typename THRUST_NS_QUALIFIER::detail::iterator_facade_category< + THRUST_NS_QUALIFIER::any_system_tag, + THRUST_NS_QUALIFIER::random_access_traversal_tag, + value_type, + reference + >::type iterator_category; ///< The iterator category +#else + typedef std::random_access_iterator_tag iterator_category; ///< The iterator category +#endif // THRUST_VERSION + +private: + + OffsetT offset; + +#if defined(_WIN32) || !defined(_WIN64) + // Workaround for win32 parameter-passing bug (ulonglong2 argmin DeviceReduce) + OffsetT pad[CUB_MAX(1, (16 / sizeof(OffsetT) - 1))] = {}; +#endif + +public: + + /// Constructor + __host__ __device__ __forceinline__ DiscardOutputIterator( + OffsetT offset = 0) ///< Base offset + : + offset(offset) + {} + + /// Postfix increment + __host__ __device__ __forceinline__ self_type operator++(int) + { + self_type retval = *this; + offset++; + return retval; + } + + /// Prefix increment + __host__ __device__ __forceinline__ self_type operator++() + { + offset++; + return *this; + } + + /// Indirection + __host__ __device__ __forceinline__ self_type& operator*() + { + // return self reference, which can be assigned to anything + return *this; + } + + /// Addition + template + __host__ __device__ __forceinline__ self_type operator+(Distance n) const + { + self_type retval(offset + n); + return retval; + } + + /// Addition assignment + template + __host__ __device__ __forceinline__ self_type& operator+=(Distance n) + { + offset += n; + return *this; + } + + /// Subtraction + template + __host__ __device__ __forceinline__ self_type operator-(Distance n) const + { + self_type retval(offset - n); + return retval; + } + + /// Subtraction assignment + template + __host__ __device__ __forceinline__ self_type& operator-=(Distance n) + { + offset -= n; + return *this; + } + + /// Distance + __host__ __device__ __forceinline__ difference_type operator-(self_type other) const + { + return offset - other.offset; + } + + /// Array subscript + template + __host__ __device__ __forceinline__ self_type& operator[](Distance n) + { + // return self reference, which can be assigned to anything + return *this; + } + + /// Structure dereference + __host__ __device__ __forceinline__ pointer operator->() + { + return; + } + + /// Assignment to anything else (no-op) + template + __host__ __device__ __forceinline__ void operator=(T const&) + {} + + /// Cast to void* operator + __host__ __device__ __forceinline__ operator void*() const { return NULL; } + + /// Equal to + __host__ __device__ __forceinline__ bool operator==(const self_type& rhs) + { + return (offset == rhs.offset); + } + + /// Not equal to + __host__ __device__ __forceinline__ bool operator!=(const self_type& rhs) + { + return (offset != rhs.offset); + } + + /// ostream operator + friend std::ostream& operator<<(std::ostream& os, const self_type& itr) + { + os << "[" << itr.offset << "]"; + return os; + } + +}; + + +/** @} */ // end group UtilIterator + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/iterator/tex_obj_input_iterator.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/iterator/tex_obj_input_iterator.cuh new file mode 100644 index 0000000000000000000000000000000000000000..1611f0ee363290882ae1ead5de4e96db8707911e --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/iterator/tex_obj_input_iterator.cuh @@ -0,0 +1,315 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * Random-access iterator types + */ + +#pragma once + +#include +#include +#include +#include +#include + +#include + +#include +#include + +#if (THRUST_VERSION >= 100700) + // This iterator is compatible with Thrust API 1.7 and newer + #include + #include +#endif // THRUST_VERSION + + +CUB_NAMESPACE_BEGIN + +/** + * \addtogroup UtilIterator + * @{ + */ + + + +/** + * \brief A random-access input wrapper for dereferencing array values through texture cache. Uses newer Kepler-style texture objects. + * + * \par Overview + * - TexObjInputIterator wraps a native device pointer of type ValueType*. References + * to elements are to be loaded through texture cache. + * - Can be used to load any data type from memory through texture cache. + * - Can be manipulated and exchanged within and between host and device + * functions, can only be constructed within host functions, and can only be + * dereferenced within device functions. + * - With regard to nested/dynamic parallelism, TexObjInputIterator iterators may only be + * created by the host thread, but can be used by any descendant kernel. + * - Compatible with Thrust API v1.7 or newer. + * + * \par Snippet + * The code snippet below illustrates the use of \p TexObjInputIterator to + * dereference a device array of doubles through texture cache. + * \par + * \code + * #include // or equivalently + * + * // Declare, allocate, and initialize a device array + * int num_items; // e.g., 7 + * double *d_in; // e.g., [8.0, 6.0, 7.0, 5.0, 3.0, 0.0, 9.0] + * + * // Create an iterator wrapper + * cub::TexObjInputIterator itr; + * itr.BindTexture(d_in, sizeof(double) * num_items); + * ... + * + * // Within device code: + * printf("%f\n", itr[0]); // 8.0 + * printf("%f\n", itr[1]); // 6.0 + * printf("%f\n", itr[6]); // 9.0 + * + * ... + * itr.UnbindTexture(); + * + * \endcode + * + * \tparam T The value type of this iterator + * \tparam OffsetT The difference type of this iterator (Default: \p ptrdiff_t) + */ +template < + typename T, + typename OffsetT = ptrdiff_t> +class TexObjInputIterator +{ +public: + + // Required iterator traits + typedef TexObjInputIterator self_type; ///< My own type + typedef OffsetT difference_type; ///< Type to express the result of subtracting one iterator from another + typedef T value_type; ///< The type of the element the iterator can point to + typedef T* pointer; ///< The type of a pointer to an element the iterator can point to + typedef T reference; ///< The type of a reference to an element the iterator can point to + +#if (THRUST_VERSION >= 100700) + // Use Thrust's iterator categories so we can use these iterators in Thrust 1.7 (or newer) methods + typedef typename THRUST_NS_QUALIFIER::detail::iterator_facade_category< + THRUST_NS_QUALIFIER::device_system_tag, + THRUST_NS_QUALIFIER::random_access_traversal_tag, + value_type, + reference + >::type iterator_category; ///< The iterator category +#else + typedef std::random_access_iterator_tag iterator_category; ///< The iterator category +#endif // THRUST_VERSION + +private: + + // Largest texture word we can use in device + typedef typename UnitWord::TextureWord TextureWord; + + // Number of texture words per T + enum { + TEXTURE_MULTIPLE = sizeof(T) / sizeof(TextureWord) + }; + +private: + + T* ptr; + difference_type tex_offset; + cudaTextureObject_t tex_obj; + +public: + + /// Constructor + __host__ __device__ __forceinline__ TexObjInputIterator() + : + ptr(NULL), + tex_offset(0), + tex_obj(0) + {} + + /// Use this iterator to bind \p ptr with a texture reference + template + cudaError_t BindTexture( + QualifiedT *ptr, ///< Native pointer to wrap that is aligned to cudaDeviceProp::textureAlignment + size_t bytes, ///< Number of bytes in the range + size_t tex_offset = 0) ///< OffsetT (in items) from \p ptr denoting the position of the iterator + { + this->ptr = const_cast::type *>(ptr); + this->tex_offset = static_cast(tex_offset); + + cudaChannelFormatDesc channel_desc = cudaCreateChannelDesc(); + cudaResourceDesc res_desc; + cudaTextureDesc tex_desc; + memset(&res_desc, 0, sizeof(cudaResourceDesc)); + memset(&tex_desc, 0, sizeof(cudaTextureDesc)); + res_desc.resType = cudaResourceTypeLinear; + res_desc.res.linear.devPtr = this->ptr; + res_desc.res.linear.desc = channel_desc; + res_desc.res.linear.sizeInBytes = bytes; + tex_desc.readMode = cudaReadModeElementType; + return CubDebug(cudaCreateTextureObject(&tex_obj, &res_desc, &tex_desc, NULL)); + } + + /// Unbind this iterator from its texture reference + cudaError_t UnbindTexture() + { + return CubDebug(cudaDestroyTextureObject(tex_obj)); + } + + /// Postfix increment + __host__ __device__ __forceinline__ self_type operator++(int) + { + self_type retval = *this; + tex_offset++; + return retval; + } + + /// Prefix increment + __host__ __device__ __forceinline__ self_type operator++() + { + tex_offset++; + return *this; + } + + /// Indirection + __host__ __device__ __forceinline__ reference operator*() const + { + NV_IF_TARGET(NV_IS_HOST, + (return ptr[tex_offset];), + (return this->device_deref();)); + } + + /// Addition + template + __host__ __device__ __forceinline__ self_type operator+(Distance n) const + { + self_type retval; + retval.ptr = ptr; + retval.tex_obj = tex_obj; + retval.tex_offset = tex_offset + n; + return retval; + } + + /// Addition assignment + template + __host__ __device__ __forceinline__ self_type& operator+=(Distance n) + { + tex_offset += n; + return *this; + } + + /// Subtraction + template + __host__ __device__ __forceinline__ self_type operator-(Distance n) const + { + self_type retval; + retval.ptr = ptr; + retval.tex_obj = tex_obj; + retval.tex_offset = tex_offset - n; + return retval; + } + + /// Subtraction assignment + template + __host__ __device__ __forceinline__ self_type& operator-=(Distance n) + { + tex_offset -= n; + return *this; + } + + /// Distance + __host__ __device__ __forceinline__ difference_type operator-(self_type other) const + { + return tex_offset - other.tex_offset; + } + + /// Array subscript + template + __host__ __device__ __forceinline__ reference operator[](Distance n) const + { + self_type offset = (*this) + n; + return *offset; + } + + /// Structure dereference + __host__ __device__ __forceinline__ pointer operator->() + { + return &(*(*this)); + } + + /// Equal to + __host__ __device__ __forceinline__ bool operator==(const self_type& rhs) + { + return ((ptr == rhs.ptr) && (tex_offset == rhs.tex_offset) && (tex_obj == rhs.tex_obj)); + } + + /// Not equal to + __host__ __device__ __forceinline__ bool operator!=(const self_type& rhs) + { + return ((ptr != rhs.ptr) || (tex_offset != rhs.tex_offset) || (tex_obj != rhs.tex_obj)); + } + + /// ostream operator + friend std::ostream& operator<<(std::ostream& os, const self_type& itr) + { + os << "cub::TexObjInputIterator( ptr=" << itr.ptr + << ", offset=" << itr.tex_offset + << ", tex_obj=" << itr.tex_obj << " )"; + return os; + } + +private: + // This is hoisted out of operator* because #pragma can't be used inside of + // NV_IF_TARGET + __device__ __forceinline__ reference device_deref() const + { + // Move array of uninitialized words, then alias and assign to return + // value + TextureWord words[TEXTURE_MULTIPLE]; + + const auto tex_idx_base = tex_offset * TEXTURE_MULTIPLE; + + #pragma unroll + for (int i = 0; i < TEXTURE_MULTIPLE; ++i) + { + words[i] = tex1Dfetch(tex_obj, tex_idx_base + i); + } + + // Load from words + return *reinterpret_cast(words); + } +}; + + + +/** @} */ // end group UtilIterator + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/iterator/tex_ref_input_iterator.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/iterator/tex_ref_input_iterator.cuh new file mode 100644 index 0000000000000000000000000000000000000000..0d877e1db49972ac0f207ee54e983bba8bbba3e9 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/iterator/tex_ref_input_iterator.cuh @@ -0,0 +1,108 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * Random-access iterator types + */ + +#pragma once + +#include +#include + +#include + +CUB_NAMESPACE_BEGIN + +/** + * \addtogroup UtilIterator + * @{ + */ + +/** + * \brief A random-access input wrapper for dereferencing array values through texture cache. + * + * \deprecated [Since 1.13.0] The CUDA texture management APIs used by + * TexRefInputIterator are deprecated. Use cub::TexObjInputIterator instead. + * + * \par Overview + * - TexRefInputIterator wraps a native device pointer of type ValueType*. References + * to elements are to be loaded through texture cache. + * - Can be used to load any data type from memory through texture cache. + * - Can be manipulated and exchanged within and between host and device + * functions, can only be constructed within host functions, and can only be + * dereferenced within device functions. + * - The \p UNIQUE_ID template parameter is used to statically name the underlying texture + * reference. Only one TexRefInputIterator instance can be bound at any given time for a + * specific combination of (1) data type \p T, (2) \p UNIQUE_ID, (3) host + * thread, and (4) compilation .o unit. + * - With regard to nested/dynamic parallelism, TexRefInputIterator iterators may only be + * created by the host thread and used by a top-level kernel (i.e. the one which is launched + * from the host). + * - Compatible with Thrust API v1.7 or newer. + * + * \par Snippet + * The code snippet below illustrates the use of \p TexRefInputIterator to + * dereference a device array of doubles through texture cache. + * \par + * \code + * #include // or equivalently + * + * // Declare, allocate, and initialize a device array + * int num_items; // e.g., 7 + * double *d_in; // e.g., [8.0, 6.0, 7.0, 5.0, 3.0, 0.0, 9.0] + * + * // Create an iterator wrapper + * cub::TexRefInputIterator itr; + * itr.BindTexture(d_in, sizeof(double) * num_items); + * ... + * + * // Within device code: + * printf("%f\n", itr[0]); // 8.0 + * printf("%f\n", itr[1]); // 6.0 + * printf("%f\n", itr[6]); // 9.0 + * + * ... + * itr.UnbindTexture(); + * + * \endcode + * + * \tparam T The value type of this iterator + * \tparam UNIQUE_ID A globally-unique identifier (within the compilation unit) to name the underlying texture reference + * \tparam OffsetT The difference type of this iterator (Default: \p ptrdiff_t) + */ +template < + typename T, + int /*UNIQUE_ID*/, + typename OffsetT = std::ptrdiff_t> +using TexRefInputIterator CUB_DEPRECATED = cub::TexObjInputIterator; + +/** @} */ // end group UtilIterator + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/iterator/transform_input_iterator.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/iterator/transform_input_iterator.cuh new file mode 100644 index 0000000000000000000000000000000000000000..e9f01227cc495553b896601bc1e4c7f44c3fbdf9 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/iterator/transform_input_iterator.cuh @@ -0,0 +1,241 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * Random-access iterator types + */ + +#pragma once + +#include +#include + +#include "../thread/thread_load.cuh" +#include "../thread/thread_store.cuh" +#include "../config.cuh" +#include "../util_device.cuh" + +#if (THRUST_VERSION >= 100700) + // This iterator is compatible with Thrust API 1.7 and newer + #include + #include +#endif // THRUST_VERSION + + +CUB_NAMESPACE_BEGIN + +/** + * \addtogroup UtilIterator + * @{ + */ + + +/** + * \brief A random-access input wrapper for transforming dereferenced values. + * + * \par Overview + * - TransformInputIteratorTwraps a unary conversion functor of type \p + * ConversionOp and a random-access input iterator of type InputIteratorT, + * using the former to produce references of type \p ValueType from the latter. + * - Can be used with any data type. + * - Can be constructed, manipulated, and exchanged within and between host and device + * functions. Wrapped host memory can only be dereferenced on the host, and wrapped + * device memory can only be dereferenced on the device. + * - Compatible with Thrust API v1.7 or newer. + * + * \par Snippet + * The code snippet below illustrates the use of \p TransformInputIteratorTto + * dereference an array of integers, tripling the values and converting them to doubles. + * \par + * \code + * #include // or equivalently + * + * // Functor for tripling integer values and converting to doubles + * struct TripleDoubler + * { + * __host__ __device__ __forceinline__ + * double operator()(const int &a) const { + * return double(a * 3); + * } + * }; + * + * // Declare, allocate, and initialize a device array + * int *d_in; // e.g., [8, 6, 7, 5, 3, 0, 9] + * TripleDoubler conversion_op; + * + * // Create an iterator wrapper + * cub::TransformInputIterator itr(d_in, conversion_op); + * + * // Within device code: + * printf("%f\n", itr[0]); // 24.0 + * printf("%f\n", itr[1]); // 18.0 + * printf("%f\n", itr[6]); // 27.0 + * + * \endcode + * + * \tparam ValueType The value type of this iterator + * \tparam ConversionOp Unary functor type for mapping objects of type \p InputType to type \p ValueType. Must have member ValueType operator()(const InputType &datum). + * \tparam InputIteratorT The type of the wrapped input iterator + * \tparam OffsetT The difference type of this iterator (Default: \p ptrdiff_t) + * + */ +template < + typename ValueType, + typename ConversionOp, + typename InputIteratorT, + typename OffsetT = ptrdiff_t> +class TransformInputIterator +{ +public: + + // Required iterator traits + typedef TransformInputIterator self_type; ///< My own type + typedef OffsetT difference_type; ///< Type to express the result of subtracting one iterator from another + typedef ValueType value_type; ///< The type of the element the iterator can point to + typedef ValueType* pointer; ///< The type of a pointer to an element the iterator can point to + typedef ValueType reference; ///< The type of a reference to an element the iterator can point to + +#if (THRUST_VERSION >= 100700) + // Use Thrust's iterator categories so we can use these iterators in Thrust 1.7 (or newer) methods + typedef typename THRUST_NS_QUALIFIER::detail::iterator_facade_category< + THRUST_NS_QUALIFIER::any_system_tag, + THRUST_NS_QUALIFIER::random_access_traversal_tag, + value_type, + reference + >::type iterator_category; ///< The iterator category +#else + typedef std::random_access_iterator_tag iterator_category; ///< The iterator category +#endif // THRUST_VERSION + +private: + + ConversionOp conversion_op; + InputIteratorT input_itr; + +public: + + /// Constructor + __host__ __device__ __forceinline__ TransformInputIterator( + InputIteratorT input_itr, ///< Input iterator to wrap + ConversionOp conversion_op) ///< Conversion functor to wrap + : + conversion_op(conversion_op), + input_itr(input_itr) + {} + + /// Postfix increment + __host__ __device__ __forceinline__ self_type operator++(int) + { + self_type retval = *this; + input_itr++; + return retval; + } + + /// Prefix increment + __host__ __device__ __forceinline__ self_type operator++() + { + input_itr++; + return *this; + } + + /// Indirection + __host__ __device__ __forceinline__ reference operator*() const + { + return conversion_op(*input_itr); + } + + /// Addition + template + __host__ __device__ __forceinline__ self_type operator+(Distance n) const + { + self_type retval(input_itr + n, conversion_op); + return retval; + } + + /// Addition assignment + template + __host__ __device__ __forceinline__ self_type& operator+=(Distance n) + { + input_itr += n; + return *this; + } + + /// Subtraction + template + __host__ __device__ __forceinline__ self_type operator-(Distance n) const + { + self_type retval(input_itr - n, conversion_op); + return retval; + } + + /// Subtraction assignment + template + __host__ __device__ __forceinline__ self_type& operator-=(Distance n) + { + input_itr -= n; + return *this; + } + + /// Distance + __host__ __device__ __forceinline__ difference_type operator-(self_type other) const + { + return input_itr - other.input_itr; + } + + /// Array subscript + template + __host__ __device__ __forceinline__ reference operator[](Distance n) const + { + return conversion_op(input_itr[n]); + } + + /// Equal to + __host__ __device__ __forceinline__ bool operator==(const self_type& rhs) + { + return (input_itr == rhs.input_itr); + } + + /// Not equal to + __host__ __device__ __forceinline__ bool operator!=(const self_type& rhs) + { + return (input_itr != rhs.input_itr); + } + + /// ostream operator + friend std::ostream& operator<<(std::ostream& os, const self_type& /* itr */) + { + return os; + } +}; + + + +/** @} */ // end group UtilIterator + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/thread/thread_load.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/thread/thread_load.cuh new file mode 100644 index 0000000000000000000000000000000000000000..73d251c33168506e55b64f0e373ffa8a7a4c027d --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/thread/thread_load.cuh @@ -0,0 +1,409 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * Thread utilities for reading memory using PTX cache modifiers. + */ + +#pragma once + +#include + +#include "../config.cuh" +#include "../util_ptx.cuh" +#include "../util_type.cuh" + +CUB_NAMESPACE_BEGIN + +/** + * \addtogroup UtilIo + * @{ + */ + +//----------------------------------------------------------------------------- +// Tags and constants +//----------------------------------------------------------------------------- + +/** + * \brief Enumeration of cache modifiers for memory load operations. + */ +enum CacheLoadModifier +{ + LOAD_DEFAULT, ///< Default (no modifier) + LOAD_CA, ///< Cache at all levels + LOAD_CG, ///< Cache at global level + LOAD_CS, ///< Cache streaming (likely to be accessed once) + LOAD_CV, ///< Cache as volatile (including cached system lines) + LOAD_LDG, ///< Cache as texture + LOAD_VOLATILE, ///< Volatile (any memory space) +}; + + +/** + * \name Thread I/O (cache modified) + * @{ + */ + +/** + * \brief Thread utility for reading memory using cub::CacheLoadModifier cache modifiers. Can be used to load any data type. + * + * \par Example + * \code + * #include // or equivalently + * + * // 32-bit load using cache-global modifier: + * int *d_in; + * int val = cub::ThreadLoad(d_in + threadIdx.x); + * + * // 16-bit load using default modifier + * short *d_in; + * short val = cub::ThreadLoad(d_in + threadIdx.x); + * + * // 256-bit load using cache-volatile modifier + * double4 *d_in; + * double4 val = cub::ThreadLoad(d_in + threadIdx.x); + * + * // 96-bit load using cache-streaming modifier + * struct TestFoo { bool a; short b; }; + * TestFoo *d_struct; + * TestFoo val = cub::ThreadLoad(d_in + threadIdx.x); + * \endcode + * + * \tparam MODIFIER [inferred] CacheLoadModifier enumeration + * \tparam InputIteratorT [inferred] Input iterator type \iterator + */ +template +__device__ __forceinline__ cub::detail::value_t +ThreadLoad(InputIteratorT itr); + +//@} end member group + + +#ifndef DOXYGEN_SHOULD_SKIP_THIS // Do not document + + +/// Helper structure for templated load iteration (inductive case) +template +struct IterateThreadLoad +{ + template + static __device__ __forceinline__ void Load(T const *ptr, T *vals) + { + vals[COUNT] = ThreadLoad(ptr + COUNT); + IterateThreadLoad::template Load(ptr, vals); + } + + template + static __device__ __forceinline__ void Dereference(InputIteratorT itr, T *vals) + { + vals[COUNT] = itr[COUNT]; + IterateThreadLoad::Dereference(itr, vals); + } +}; + + +/// Helper structure for templated load iteration (termination case) +template +struct IterateThreadLoad +{ + template + static __device__ __forceinline__ void Load(T const * /*ptr*/, T * /*vals*/) {} + + template + static __device__ __forceinline__ void Dereference(InputIteratorT /*itr*/, T * /*vals*/) {} +}; + + +/** + * Define a uint4 (16B) ThreadLoad specialization for the given Cache load modifier + */ +#define _CUB_LOAD_16(cub_modifier, ptx_modifier) \ + template<> \ + __device__ __forceinline__ uint4 ThreadLoad(uint4 const *ptr) \ + { \ + uint4 retval; \ + asm volatile ("ld."#ptx_modifier".v4.u32 {%0, %1, %2, %3}, [%4];" : \ + "=r"(retval.x), \ + "=r"(retval.y), \ + "=r"(retval.z), \ + "=r"(retval.w) : \ + _CUB_ASM_PTR_(ptr)); \ + return retval; \ + } \ + template<> \ + __device__ __forceinline__ ulonglong2 ThreadLoad(ulonglong2 const *ptr) \ + { \ + ulonglong2 retval; \ + asm volatile ("ld."#ptx_modifier".v2.u64 {%0, %1}, [%2];" : \ + "=l"(retval.x), \ + "=l"(retval.y) : \ + _CUB_ASM_PTR_(ptr)); \ + return retval; \ + } + +/** + * Define a uint2 (8B) ThreadLoad specialization for the given Cache load modifier + */ +#define _CUB_LOAD_8(cub_modifier, ptx_modifier) \ + template<> \ + __device__ __forceinline__ ushort4 ThreadLoad(ushort4 const *ptr) \ + { \ + ushort4 retval; \ + asm volatile ("ld."#ptx_modifier".v4.u16 {%0, %1, %2, %3}, [%4];" : \ + "=h"(retval.x), \ + "=h"(retval.y), \ + "=h"(retval.z), \ + "=h"(retval.w) : \ + _CUB_ASM_PTR_(ptr)); \ + return retval; \ + } \ + template<> \ + __device__ __forceinline__ uint2 ThreadLoad(uint2 const *ptr) \ + { \ + uint2 retval; \ + asm volatile ("ld."#ptx_modifier".v2.u32 {%0, %1}, [%2];" : \ + "=r"(retval.x), \ + "=r"(retval.y) : \ + _CUB_ASM_PTR_(ptr)); \ + return retval; \ + } \ + template<> \ + __device__ __forceinline__ unsigned long long ThreadLoad(unsigned long long const *ptr) \ + { \ + unsigned long long retval; \ + asm volatile ("ld."#ptx_modifier".u64 %0, [%1];" : \ + "=l"(retval) : \ + _CUB_ASM_PTR_(ptr)); \ + return retval; \ + } + +/** + * Define a uint (4B) ThreadLoad specialization for the given Cache load modifier + */ +#define _CUB_LOAD_4(cub_modifier, ptx_modifier) \ + template<> \ + __device__ __forceinline__ unsigned int ThreadLoad(unsigned int const *ptr) \ + { \ + unsigned int retval; \ + asm volatile ("ld."#ptx_modifier".u32 %0, [%1];" : \ + "=r"(retval) : \ + _CUB_ASM_PTR_(ptr)); \ + return retval; \ + } + + +/** + * Define a unsigned short (2B) ThreadLoad specialization for the given Cache load modifier + */ +#define _CUB_LOAD_2(cub_modifier, ptx_modifier) \ + template<> \ + __device__ __forceinline__ unsigned short ThreadLoad(unsigned short const *ptr) \ + { \ + unsigned short retval; \ + asm volatile ("ld."#ptx_modifier".u16 %0, [%1];" : \ + "=h"(retval) : \ + _CUB_ASM_PTR_(ptr)); \ + return retval; \ + } + + +/** + * Define an unsigned char (1B) ThreadLoad specialization for the given Cache load modifier + */ +#define _CUB_LOAD_1(cub_modifier, ptx_modifier) \ + template<> \ + __device__ __forceinline__ unsigned char ThreadLoad(unsigned char const *ptr) \ + { \ + unsigned short retval; \ + asm volatile ( \ + "{" \ + " .reg .u8 datum;" \ + " ld."#ptx_modifier".u8 datum, [%1];" \ + " cvt.u16.u8 %0, datum;" \ + "}" : \ + "=h"(retval) : \ + _CUB_ASM_PTR_(ptr)); \ + return (unsigned char) retval; \ + } + + +/** + * Define powers-of-two ThreadLoad specializations for the given Cache load modifier + */ +#define _CUB_LOAD_ALL(cub_modifier, ptx_modifier) \ + _CUB_LOAD_16(cub_modifier, ptx_modifier) \ + _CUB_LOAD_8(cub_modifier, ptx_modifier) \ + _CUB_LOAD_4(cub_modifier, ptx_modifier) \ + _CUB_LOAD_2(cub_modifier, ptx_modifier) \ + _CUB_LOAD_1(cub_modifier, ptx_modifier) \ + + +/** + * Define powers-of-two ThreadLoad specializations for the various Cache load modifiers + */ +_CUB_LOAD_ALL(LOAD_CA, ca) +_CUB_LOAD_ALL(LOAD_CG, cg) +_CUB_LOAD_ALL(LOAD_CS, cs) +_CUB_LOAD_ALL(LOAD_CV, cv) +_CUB_LOAD_ALL(LOAD_LDG, global.nc) + + +// Macro cleanup +#undef _CUB_LOAD_ALL +#undef _CUB_LOAD_1 +#undef _CUB_LOAD_2 +#undef _CUB_LOAD_4 +#undef _CUB_LOAD_8 +#undef _CUB_LOAD_16 + + + +/** + * ThreadLoad definition for LOAD_DEFAULT modifier on iterator types + */ +template +__device__ __forceinline__ cub::detail::value_t +ThreadLoad(InputIteratorT itr, + Int2Type /*modifier*/, + Int2Type /*is_pointer*/) +{ + return *itr; +} + + +/** + * ThreadLoad definition for LOAD_DEFAULT modifier on pointer types + */ +template +__device__ __forceinline__ T ThreadLoad( + T *ptr, + Int2Type /*modifier*/, + Int2Type /*is_pointer*/) +{ + return *ptr; +} + + +/** + * ThreadLoad definition for LOAD_VOLATILE modifier on primitive pointer types + */ +template +__device__ __forceinline__ T ThreadLoadVolatilePointer( + T *ptr, + Int2Type /*is_primitive*/) +{ + T retval = *reinterpret_cast(ptr); + return retval; +} + + +/** + * ThreadLoad definition for LOAD_VOLATILE modifier on non-primitive pointer types + */ +template +__device__ __forceinline__ T ThreadLoadVolatilePointer( + T *ptr, + Int2Type /*is_primitive*/) +{ + typedef typename UnitWord::VolatileWord VolatileWord; // Word type for memcopying + + const int VOLATILE_MULTIPLE = sizeof(T) / sizeof(VolatileWord); + + T retval; + VolatileWord *words = reinterpret_cast(&retval); + IterateThreadLoad<0, VOLATILE_MULTIPLE>::Dereference( + reinterpret_cast(ptr), + words); + return retval; +} + + +/** + * ThreadLoad definition for LOAD_VOLATILE modifier on pointer types + */ +template +__device__ __forceinline__ T ThreadLoad( + T *ptr, + Int2Type /*modifier*/, + Int2Type /*is_pointer*/) +{ + // Apply tags for partial-specialization + return ThreadLoadVolatilePointer(ptr, Int2Type::PRIMITIVE>()); +} + + +/** + * ThreadLoad definition for generic modifiers on pointer types + */ +template +__device__ __forceinline__ T ThreadLoad( + T const *ptr, + Int2Type /*modifier*/, + Int2Type /*is_pointer*/) +{ + typedef typename UnitWord::DeviceWord DeviceWord; + + const int DEVICE_MULTIPLE = sizeof(T) / sizeof(DeviceWord); + + DeviceWord words[DEVICE_MULTIPLE]; + + IterateThreadLoad<0, DEVICE_MULTIPLE>::template Load( + reinterpret_cast(const_cast(ptr)), + words); + + return *reinterpret_cast(words); +} + + +/** + * ThreadLoad definition for generic modifiers + */ +template < + CacheLoadModifier MODIFIER, + typename InputIteratorT> +__device__ __forceinline__ cub::detail::value_t +ThreadLoad(InputIteratorT itr) +{ + // Apply tags for partial-specialization + return ThreadLoad( + itr, + Int2Type(), + Int2Type::value>()); +} + + + +#endif // DOXYGEN_SHOULD_SKIP_THIS + + +/** @} */ // end group UtilIo + + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/thread/thread_operators.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/thread/thread_operators.cuh new file mode 100644 index 0000000000000000000000000000000000000000..c6b097ea354f7a8039eaafa204b0ac1f3598b190 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/thread/thread_operators.cuh @@ -0,0 +1,423 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2022, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * @file + * Simple binary operator functor types + */ + +/****************************************************************************** + * Simple functor operators + ******************************************************************************/ + +#pragma once + +#include +#include +#include + +#include +#include +#include + +CUB_NAMESPACE_BEGIN + + +/** + * @addtogroup UtilModule + * @{ + */ + +/// @brief Inequality functor (wraps equality functor) +template +struct InequalityWrapper +{ + /// Wrapped equality operator + EqualityOp op; + + /// Constructor + __host__ __device__ __forceinline__ InequalityWrapper(EqualityOp op) + : op(op) + {} + + /// Boolean inequality operator, returns `t != u` + template + __host__ __device__ __forceinline__ bool operator()(T &&t, U &&u) + { + return !op(::cuda::std::forward(t), ::cuda::std::forward(u)); + } +}; + +#if CUB_CPP_DIALECT > 2011 +using Equality = ::cuda::std::equal_to<>; +using Inequality = ::cuda::std::not_equal_to<>; +using Sum = ::cuda::std::plus<>; +using Difference = ::cuda::std::minus<>; +using Division = ::cuda::std::divides<>; +#else +/// @brief Default equality functor +struct Equality +{ + /// Boolean equality operator, returns `t == u` + template + __host__ __device__ __forceinline__ bool operator()(T &&t, U &&u) const + { + return ::cuda::std::forward(t) == ::cuda::std::forward(u); + } +}; + +/// @brief Default inequality functor +struct Inequality +{ + /// Boolean inequality operator, returns `t != u` + template + __host__ __device__ __forceinline__ bool operator()(T &&t, U &&u) const + { + return ::cuda::std::forward(t) != ::cuda::std::forward(u); + } +}; + +/// @brief Default sum functor +struct Sum +{ + /// Binary sum operator, returns `t + u` + template + __host__ __device__ __forceinline__ auto operator()(T &&t, U &&u) const + -> decltype(::cuda::std::forward(t) + ::cuda::std::forward(u)) + { + return ::cuda::std::forward(t) + ::cuda::std::forward(u); + } +}; + +/// @brief Default difference functor +struct Difference +{ + /// Binary difference operator, returns `t - u` + template + __host__ __device__ __forceinline__ auto operator()(T &&t, U &&u) const + -> decltype(::cuda::std::forward(t) - ::cuda::std::forward(u)) + { + return ::cuda::std::forward(t) - ::cuda::std::forward(u); + } +}; + +/// @brief Default division functor +struct Division +{ + /// Binary division operator, returns `t / u` + template + __host__ __device__ __forceinline__ auto operator()(T &&t, U &&u) const + -> decltype(::cuda::std::forward(t) / ::cuda::std::forward(u)) + { + return ::cuda::std::forward(t) / ::cuda::std::forward(u); + } +}; +#endif + +/// @brief Default max functor +struct Max +{ + /// Boolean max operator, returns `(t > u) ? t : u` + template + __host__ __device__ __forceinline__ + typename ::cuda::std::common_type::type + operator()(T &&t, U &&u) const + { + return CUB_MAX(t, u); + } +}; + +/// @brief Arg max functor (keeps the value and offset of the first occurrence +/// of the larger item) +struct ArgMax +{ + /// Boolean max operator, preferring the item having the smaller offset in + /// case of ties + template + __host__ __device__ __forceinline__ KeyValuePair + operator()(const KeyValuePair &a, + const KeyValuePair &b) const + { + // Mooch BUG (device reduce argmax gk110 3.2 million random fp32) + // return ((b.value > a.value) || + // ((a.value == b.value) && (b.key < a.key))) + // ? b : a; + + if ((b.value > a.value) || ((a.value == b.value) && (b.key < a.key))) + { + return b; + } + + return a; + } +}; + +/// @brief Default min functor +struct Min +{ + /// Boolean min operator, returns `(t < u) ? t : u` + template + __host__ __device__ __forceinline__ + typename ::cuda::std::common_type::type + operator()(T &&t, U &&u) const + { + return CUB_MIN(t, u); + } +}; + +/// @brief Arg min functor (keeps the value and offset of the first occurrence +/// of the smallest item) +struct ArgMin +{ + /// Boolean min operator, preferring the item having the smaller offset in + /// case of ties + template + __host__ __device__ __forceinline__ KeyValuePair + operator()(const KeyValuePair &a, + const KeyValuePair &b) const + { + // Mooch BUG (device reduce argmax gk110 3.2 million random fp32) + // return ((b.value < a.value) || + // ((a.value == b.value) && (b.key < a.key))) + // ? b : a; + + if ((b.value < a.value) || ((a.value == b.value) && (b.key < a.key))) + { + return b; + } + + return a; + } +}; + +namespace detail +{ +template +struct basic_binary_op_t +{ + static constexpr bool value = false; +}; + +template <> +struct basic_binary_op_t +{ + static constexpr bool value = true; +}; + +template <> +struct basic_binary_op_t +{ + static constexpr bool value = true; +}; + +template <> +struct basic_binary_op_t +{ + static constexpr bool value = true; +}; +} // namespace detail + +/// @brief Default cast functor +template +struct CastOp +{ + /// Cast operator, returns `(B) a` + template + __host__ __device__ __forceinline__ B operator()(A &&a) const + { + return (B)a; + } +}; + +/// @brief Binary operator wrapper for switching non-commutative scan arguments +template +class SwizzleScanOp +{ +private: + /// Wrapped scan operator + ScanOp scan_op; + +public: + /// Constructor + __host__ __device__ __forceinline__ SwizzleScanOp(ScanOp scan_op) + : scan_op(scan_op) + {} + + /// Switch the scan arguments + template + __host__ __device__ __forceinline__ T operator()(const T &a, const T &b) + { + T _a(a); + T _b(b); + + return scan_op(_b, _a); + } +}; + +/** + * @brief Reduce-by-segment functor. + * + * Given two cub::KeyValuePair inputs `a` and `b` and a binary associative + * combining operator `f(const T &x, const T &y)`, an instance of this functor + * returns a cub::KeyValuePair whose `key` field is `a.key + b.key`, and whose + * `value` field is either `b.value` if `b.key` is non-zero, or + * `f(a.value, b.value)` otherwise. + * + * ReduceBySegmentOp is an associative, non-commutative binary combining + * operator for input sequences of cub::KeyValuePair pairings. Such sequences + * are typically used to represent a segmented set of values to be reduced + * and a corresponding set of {0,1}-valued integer "head flags" demarcating the + * first value of each segment. + * + * @tparam ReductionOpT Binary reduction operator to apply to values + */ +template +struct ReduceBySegmentOp +{ + /// Wrapped reduction operator + ReductionOpT op; + + /// Constructor + __host__ __device__ __forceinline__ ReduceBySegmentOp() {} + + /// Constructor + __host__ __device__ __forceinline__ ReduceBySegmentOp(ReductionOpT op) + : op(op) + {} + + /** + * @brief Scan operator + * + * @tparam KeyValuePairT + * KeyValuePair pairing of T (value) and OffsetT (head flag) + * + * @param[in] first + * First partial reduction + * + * @param[in] second + * Second partial reduction + */ + template + __host__ __device__ __forceinline__ KeyValuePairT + operator()(const KeyValuePairT &first, const KeyValuePairT &second) + { + KeyValuePairT retval; + retval.key = first.key + second.key; +#ifdef _NVHPC_CUDA // WAR bug on nvc++ + if (second.key) + { + retval.value = second.value; + } + else + { + // If second.value isn't copied into a temporary here, nvc++ will + // crash while compiling the TestScanByKeyWithLargeTypes test in + // thrust/testing/scan_by_key.cu: + auto v2 = second.value; + retval.value = op(first.value, v2); + } +#else // not nvc++: + // if (second.key) { + // The second partial reduction spans a segment reset, so it's value + // aggregate becomes the running aggregate + // else { + // The second partial reduction does not span a reset, so accumulate both + // into the running aggregate + // } + retval.value = (second.key) ? second.value : op(first.value, second.value); +#endif + return retval; + } +}; + +/** + * @tparam ReductionOpT Binary reduction operator to apply to values + */ +template +struct ReduceByKeyOp +{ + /// Wrapped reduction operator + ReductionOpT op; + + /// Constructor + __host__ __device__ __forceinline__ ReduceByKeyOp() {} + + /// Constructor + __host__ __device__ __forceinline__ ReduceByKeyOp(ReductionOpT op) + : op(op) + {} + + /** + * @brief Scan operator + * + * @param[in] first First partial reduction + * @param[in] second Second partial reduction + */ + template + __host__ __device__ __forceinline__ KeyValuePairT + operator()(const KeyValuePairT &first, const KeyValuePairT &second) + { + KeyValuePairT retval = second; + + if (first.key == second.key) + { + retval.value = op(first.value, retval.value); + } + + return retval; + } +}; + +template +struct BinaryFlip +{ + BinaryOpT binary_op; + + __device__ __host__ explicit BinaryFlip(BinaryOpT binary_op) + : binary_op(binary_op) + {} + + template + __device__ auto + operator()(T &&t, U &&u) -> decltype(binary_op(::cuda::std::forward(u), + ::cuda::std::forward(t))) + { + return binary_op(::cuda::std::forward(u), ::cuda::std::forward(t)); + } +}; + +template +__device__ __host__ BinaryFlip MakeBinaryFlip(BinaryOpT binary_op) +{ + return BinaryFlip(binary_op); +} + +/** @} */ // end group UtilModule + + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/thread/thread_reduce.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/thread/thread_reduce.cuh new file mode 100644 index 0000000000000000000000000000000000000000..9e4fb79d45f0ed9f2fd31f442ea982563b1f4d90 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/thread/thread_reduce.cuh @@ -0,0 +1,154 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * Thread utilities for sequential reduction over statically-sized array types + */ + +#pragma once + +#include "../thread/thread_operators.cuh" +#include "../detail/type_traits.cuh" +#include "../config.cuh" + +CUB_NAMESPACE_BEGIN + +/// Internal namespace (to prevent ADL mishaps between static functions when mixing different CUB installations) +namespace internal { + +/** + * Sequential reduction over statically-sized array types + */ +template < + int LENGTH, + typename T, + typename ReductionOp, + typename PrefixT, + typename AccumT = detail::accumulator_t> +__device__ __forceinline__ AccumT ThreadReduce( + T* input, ///< [in] Input array + ReductionOp reduction_op, ///< [in] Binary reduction operator + PrefixT prefix, ///< [in] Prefix to seed reduction with + Int2Type /*length*/) +{ + AccumT retval = prefix; + + #pragma unroll + for (int i = 0; i < LENGTH; ++i) + retval = reduction_op(retval, input[i]); + + return retval; +} + + +/** + * \brief Perform a sequential reduction over \p LENGTH elements of the \p input array, seeded with the specified \p prefix. The aggregate is returned. + * + * \tparam LENGTH LengthT of input array + * \tparam T [inferred] The data type to be reduced. + * \tparam ScanOp [inferred] Binary reduction operator type having member T operator()(const T &a, const T &b) + */ +template < + int LENGTH, + typename T, + typename ReductionOp, + typename PrefixT, + typename AccumT = detail::accumulator_t> +__device__ __forceinline__ AccumT ThreadReduce( + T* input, ///< [in] Input array + ReductionOp reduction_op, ///< [in] Binary reduction operator + PrefixT prefix) ///< [in] Prefix to seed reduction with +{ + return ThreadReduce(input, reduction_op, prefix, Int2Type()); +} + + +/** + * \brief Perform a sequential reduction over \p LENGTH elements of the \p input array. The aggregate is returned. + * + * \tparam LENGTH LengthT of input array + * \tparam T [inferred] The data type to be reduced. + * \tparam ScanOp [inferred] Binary reduction operator type having member T operator()(const T &a, const T &b) + */ +template < + int LENGTH, + typename T, + typename ReductionOp> +__device__ __forceinline__ T ThreadReduce( + T* input, ///< [in] Input array + ReductionOp reduction_op) ///< [in] Binary reduction operator +{ + T prefix = input[0]; + return ThreadReduce(input + 1, reduction_op, prefix); +} + + +/** + * \brief Perform a sequential reduction over the statically-sized \p input array, seeded with the specified \p prefix. The aggregate is returned. + * + * \tparam LENGTH [inferred] LengthT of \p input array + * \tparam T [inferred] The data type to be reduced. + * \tparam ScanOp [inferred] Binary reduction operator type having member T operator()(const T &a, const T &b) + */ +template < + int LENGTH, + typename T, + typename ReductionOp, + typename PrefixT, + typename AccumT = detail::accumulator_t> +__device__ __forceinline__ AccumT ThreadReduce( + T (&input)[LENGTH], ///< [in] Input array + ReductionOp reduction_op, ///< [in] Binary reduction operator + PrefixT prefix) ///< [in] Prefix to seed reduction with +{ + return ThreadReduce(input, reduction_op, prefix, Int2Type()); +} + + +/** + * \brief Serial reduction with the specified operator + * + * \tparam LENGTH [inferred] LengthT of \p input array + * \tparam T [inferred] The data type to be reduced. + * \tparam ScanOp [inferred] Binary reduction operator type having member T operator()(const T &a, const T &b) + */ +template < + int LENGTH, + typename T, + typename ReductionOp> +__device__ __forceinline__ T ThreadReduce( + T (&input)[LENGTH], ///< [in] Input array + ReductionOp reduction_op) ///< [in] Binary reduction operator +{ + return ThreadReduce((T*) input, reduction_op); +} + + +} // internal namespace +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/thread/thread_scan.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/thread/thread_scan.cuh new file mode 100644 index 0000000000000000000000000000000000000000..b5e42710fcda7f6de4764887daa0642a47e0fec1 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/thread/thread_scan.cuh @@ -0,0 +1,263 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * Thread utilities for sequential prefix scan over statically-sized array types + */ + +#pragma once + +#include "../config.cuh" +#include "../thread/thread_operators.cuh" + +CUB_NAMESPACE_BEGIN + +/// Internal namespace (to prevent ADL mishaps between static functions when mixing different CUB installations) +namespace internal { + + +/** + * \addtogroup UtilModule + * @{ + */ + +/** + * \name Sequential prefix scan over statically-sized array types + * @{ + */ + +template < + int LENGTH, + typename T, + typename ScanOp> +__device__ __forceinline__ T ThreadScanExclusive( + T inclusive, + T exclusive, + T *input, ///< [in] Input array + T *output, ///< [out] Output array (may be aliased to \p input) + ScanOp scan_op, ///< [in] Binary scan operator + Int2Type /*length*/) +{ + #pragma unroll + for (int i = 0; i < LENGTH; ++i) + { + inclusive = scan_op(exclusive, input[i]); + output[i] = exclusive; + exclusive = inclusive; + } + + return inclusive; +} + + + +/** + * \brief Perform a sequential exclusive prefix scan over \p LENGTH elements of the \p input array, seeded with the specified \p prefix. The aggregate is returned. + * + * \tparam LENGTH LengthT of \p input and \p output arrays + * \tparam T [inferred] The data type to be scanned. + * \tparam ScanOp [inferred] Binary scan operator type having member T operator()(const T &a, const T &b) + */ +template < + int LENGTH, + typename T, + typename ScanOp> +__device__ __forceinline__ T ThreadScanExclusive( + T *input, ///< [in] Input array + T *output, ///< [out] Output array (may be aliased to \p input) + ScanOp scan_op, ///< [in] Binary scan operator + T prefix, ///< [in] Prefix to seed scan with + bool apply_prefix = true) ///< [in] Whether or not the calling thread should apply its prefix. If not, the first output element is undefined. (Handy for preventing thread-0 from applying a prefix.) +{ + T inclusive = input[0]; + if (apply_prefix) + { + inclusive = scan_op(prefix, inclusive); + } + output[0] = prefix; + T exclusive = inclusive; + + return ThreadScanExclusive(inclusive, exclusive, input + 1, output + 1, scan_op, Int2Type()); +} + + +/** + * \brief Perform a sequential exclusive prefix scan over the statically-sized \p input array, seeded with the specified \p prefix. The aggregate is returned. + * + * \tparam LENGTH [inferred] LengthT of \p input and \p output arrays + * \tparam T [inferred] The data type to be scanned. + * \tparam ScanOp [inferred] Binary scan operator type having member T operator()(const T &a, const T &b) + */ +template < + int LENGTH, + typename T, + typename ScanOp> +__device__ __forceinline__ T ThreadScanExclusive( + T (&input)[LENGTH], ///< [in] Input array + T (&output)[LENGTH], ///< [out] Output array (may be aliased to \p input) + ScanOp scan_op, ///< [in] Binary scan operator + T prefix, ///< [in] Prefix to seed scan with + bool apply_prefix = true) ///< [in] Whether or not the calling thread should apply its prefix. (Handy for preventing thread-0 from applying a prefix.) +{ + return ThreadScanExclusive((T*) input, (T*) output, scan_op, prefix, apply_prefix); +} + + + + + + + + + +template < + int LENGTH, + typename T, + typename ScanOp> +__device__ __forceinline__ T ThreadScanInclusive( + T inclusive, + T *input, ///< [in] Input array + T *output, ///< [out] Output array (may be aliased to \p input) + ScanOp scan_op, ///< [in] Binary scan operator + Int2Type /*length*/) +{ + #pragma unroll + for (int i = 0; i < LENGTH; ++i) + { + inclusive = scan_op(inclusive, input[i]); + output[i] = inclusive; + } + + return inclusive; +} + + +/** + * \brief Perform a sequential inclusive prefix scan over \p LENGTH elements of the \p input array. The aggregate is returned. + * + * \tparam LENGTH LengthT of \p input and \p output arrays + * \tparam T [inferred] The data type to be scanned. + * \tparam ScanOp [inferred] Binary scan operator type having member T operator()(const T &a, const T &b) + */ +template < + int LENGTH, + typename T, + typename ScanOp> +__device__ __forceinline__ T ThreadScanInclusive( + T *input, ///< [in] Input array + T *output, ///< [out] Output array (may be aliased to \p input) + ScanOp scan_op) ///< [in] Binary scan operator +{ + T inclusive = input[0]; + output[0] = inclusive; + + // Continue scan + return ThreadScanInclusive(inclusive, input + 1, output + 1, scan_op, Int2Type()); +} + + +/** + * \brief Perform a sequential inclusive prefix scan over the statically-sized \p input array. The aggregate is returned. + * + * \tparam LENGTH [inferred] LengthT of \p input and \p output arrays + * \tparam T [inferred] The data type to be scanned. + * \tparam ScanOp [inferred] Binary scan operator type having member T operator()(const T &a, const T &b) + */ +template < + int LENGTH, + typename T, + typename ScanOp> +__device__ __forceinline__ T ThreadScanInclusive( + T (&input)[LENGTH], ///< [in] Input array + T (&output)[LENGTH], ///< [out] Output array (may be aliased to \p input) + ScanOp scan_op) ///< [in] Binary scan operator +{ + return ThreadScanInclusive((T*) input, (T*) output, scan_op); +} + + +/** + * \brief Perform a sequential inclusive prefix scan over \p LENGTH elements of the \p input array, seeded with the specified \p prefix. The aggregate is returned. + * + * \tparam LENGTH LengthT of \p input and \p output arrays + * \tparam T [inferred] The data type to be scanned. + * \tparam ScanOp [inferred] Binary scan operator type having member T operator()(const T &a, const T &b) + */ +template < + int LENGTH, + typename T, + typename ScanOp> +__device__ __forceinline__ T ThreadScanInclusive( + T *input, ///< [in] Input array + T *output, ///< [out] Output array (may be aliased to \p input) + ScanOp scan_op, ///< [in] Binary scan operator + T prefix, ///< [in] Prefix to seed scan with + bool apply_prefix = true) ///< [in] Whether or not the calling thread should apply its prefix. (Handy for preventing thread-0 from applying a prefix.) +{ + T inclusive = input[0]; + if (apply_prefix) + { + inclusive = scan_op(prefix, inclusive); + } + output[0] = inclusive; + + // Continue scan + return ThreadScanInclusive(inclusive, input + 1, output + 1, scan_op, Int2Type()); +} + + +/** + * \brief Perform a sequential inclusive prefix scan over the statically-sized \p input array, seeded with the specified \p prefix. The aggregate is returned. + * + * \tparam LENGTH [inferred] LengthT of \p input and \p output arrays + * \tparam T [inferred] The data type to be scanned. + * \tparam ScanOp [inferred] Binary scan operator type having member T operator()(const T &a, const T &b) + */ +template < + int LENGTH, + typename T, + typename ScanOp> +__device__ __forceinline__ T ThreadScanInclusive( + T (&input)[LENGTH], ///< [in] Input array + T (&output)[LENGTH], ///< [out] Output array (may be aliased to \p input) + ScanOp scan_op, ///< [in] Binary scan operator + T prefix, ///< [in] Prefix to seed scan with + bool apply_prefix = true) ///< [in] Whether or not the calling thread should apply its prefix. (Handy for preventing thread-0 from applying a prefix.) +{ + return ThreadScanInclusive((T*) input, (T*) output, scan_op, prefix, apply_prefix); +} + + +//@} end member group + +/** @} */ // end group UtilModule + + +} // internal namespace +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/thread/thread_search.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/thread/thread_search.cuh new file mode 100644 index 0000000000000000000000000000000000000000..62b3cdb4e5d499c4d6a8611ecf2aca06d964ecf5 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/thread/thread_search.cuh @@ -0,0 +1,185 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * Thread utilities for sequential search + */ + +#pragma once + +#include +#include +#include +#include + +#include + +CUB_NAMESPACE_BEGIN + + +/** + * Computes the begin offsets into A and B for the specific diagonal + */ +template < + typename AIteratorT, + typename BIteratorT, + typename OffsetT, + typename CoordinateT> +__host__ __device__ __forceinline__ void MergePathSearch( + OffsetT diagonal, + AIteratorT a, + BIteratorT b, + OffsetT a_len, + OffsetT b_len, + CoordinateT& path_coordinate) +{ + /// The value type of the input iterator + using T = cub::detail::value_t; + + OffsetT split_min = CUB_MAX(diagonal - b_len, 0); + OffsetT split_max = CUB_MIN(diagonal, a_len); + + while (split_min < split_max) + { + OffsetT split_pivot = (split_min + split_max) >> 1; + if (a[split_pivot] <= b[diagonal - split_pivot - 1]) + { + // Move candidate split range up A, down B + split_min = split_pivot + 1; + } + else + { + // Move candidate split range up B, down A + split_max = split_pivot; + } + } + + path_coordinate.x = CUB_MIN(split_min, a_len); + path_coordinate.y = diagonal - split_min; +} + + + +/** + * \brief Returns the offset of the first value within \p input which does not compare less than \p val + */ +template < + typename InputIteratorT, + typename OffsetT, + typename T> +__device__ __forceinline__ OffsetT LowerBound( + InputIteratorT input, ///< [in] Input sequence + OffsetT num_items, ///< [in] Input sequence length + T val) ///< [in] Search key +{ + OffsetT retval = 0; + while (num_items > 0) + { + OffsetT half = num_items >> 1; + if (input[retval + half] < val) + { + retval = retval + (half + 1); + num_items = num_items - (half + 1); + } + else + { + num_items = half; + } + } + + return retval; +} + + +/** + * \brief Returns the offset of the first value within \p input which compares greater than \p val + */ +template < + typename InputIteratorT, + typename OffsetT, + typename T> +__device__ __forceinline__ OffsetT UpperBound( + InputIteratorT input, ///< [in] Input sequence + OffsetT num_items, ///< [in] Input sequence length + T val) ///< [in] Search key +{ + OffsetT retval = 0; + while (num_items > 0) + { + OffsetT half = num_items >> 1; + if (val < input[retval + half]) + { + num_items = half; + } + else + { + retval = retval + (half + 1); + num_items = num_items - (half + 1); + } + } + + return retval; +} + + +#if defined(__CUDA_FP16_TYPES_EXIST__) +template < + typename InputIteratorT, + typename OffsetT> +__device__ __forceinline__ OffsetT UpperBound( + InputIteratorT input, ///< [in] Input sequence + OffsetT num_items, ///< [in] Input sequence length + __half val) ///< [in] Search key +{ + OffsetT retval = 0; + while (num_items > 0) + { + OffsetT half = num_items >> 1; + + bool lt; + NV_IF_TARGET(NV_PROVIDES_SM_53, + (lt = val < input[retval + half];), + (lt = __half2float(val) < __half2float(input[retval + half]);)); + + if (lt) + { + num_items = half; + } + else + { + retval = retval + (half + 1); + num_items = num_items - (half + 1); + } + } + + return retval; +} +#endif + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/thread/thread_sort.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/thread/thread_sort.cuh new file mode 100644 index 0000000000000000000000000000000000000000..5d486789684c3e1c2c59c6cfc7044398c0ce51da --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/thread/thread_sort.cuh @@ -0,0 +1,105 @@ +/****************************************************************************** + * Copyright (c) 2011-2021, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +#pragma once + +#include "../config.cuh" +#include "../util_ptx.cuh" +#include "../util_type.cuh" + +CUB_NAMESPACE_BEGIN + + +template +__device__ __forceinline__ void Swap(T &lhs, T &rhs) +{ + T temp = lhs; + lhs = rhs; + rhs = temp; +} + + +/** + * @brief Sorts data using odd-even sort method + * + * The sorting method is stable. Further details can be found in: + * A. Nico Habermann. Parallel neighbor sort (or the glory of the induction + * principle). Technical Report AD-759 248, Carnegie Mellon University, 1972. + * + * @tparam KeyT + * Key type + * + * @tparam ValueT + * Value type. If `cub::NullType` is used as `ValueT`, only keys are sorted. + * + * @tparam CompareOp + * functor type having member `bool operator()(KeyT lhs, KeyT rhs)` + * + * @tparam ITEMS_PER_THREAD + * The number of items per thread + * + * @param[in,out] keys + * Keys to sort + * + * @param[in,out] items + * Values to sort + * + * @param[in] compare_op + * Comparison function object which returns true if the first argument is + * ordered before the second + */ +template +__device__ __forceinline__ void +StableOddEvenSort(KeyT (&keys)[ITEMS_PER_THREAD], + ValueT (&items)[ITEMS_PER_THREAD], + CompareOp compare_op) +{ + constexpr bool KEYS_ONLY = std::is_same::value; + + #pragma unroll + for (int i = 0; i < ITEMS_PER_THREAD; ++i) + { + #pragma unroll + for (int j = 1 & i; j < ITEMS_PER_THREAD - 1; j += 2) + { + if (compare_op(keys[j + 1], keys[j])) + { + Swap(keys[j], keys[j + 1]); + if (!KEYS_ONLY) + { + Swap(items[j], items[j + 1]); + } + } + } // inner loop + } // outer loop +} + + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/thread/thread_store.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/thread/thread_store.cuh new file mode 100644 index 0000000000000000000000000000000000000000..7f711bf0619d8cff96809bad59bb5aa5ce573fd6 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/thread/thread_store.cuh @@ -0,0 +1,407 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * Thread utilities for writing memory using PTX cache modifiers. + */ + +#pragma once + +#include +#include +#include + +CUB_NAMESPACE_BEGIN + +/** + * \addtogroup UtilIo + * @{ + */ + + +//----------------------------------------------------------------------------- +// Tags and constants +//----------------------------------------------------------------------------- + +/** + * \brief Enumeration of cache modifiers for memory store operations. + */ +enum CacheStoreModifier +{ + STORE_DEFAULT, ///< Default (no modifier) + STORE_WB, ///< Cache write-back all coherent levels + STORE_CG, ///< Cache at global level + STORE_CS, ///< Cache streaming (likely to be accessed once) + STORE_WT, ///< Cache write-through (to system memory) + STORE_VOLATILE, ///< Volatile shared (any memory space) +}; + + +/** + * \name Thread I/O (cache modified) + * @{ + */ + +/** + * \brief Thread utility for writing memory using cub::CacheStoreModifier cache modifiers. Can be used to store any data type. + * + * \par Example + * \code + * #include // or equivalently + * + * // 32-bit store using cache-global modifier: + * int *d_out; + * int val; + * cub::ThreadStore(d_out + threadIdx.x, val); + * + * // 16-bit store using default modifier + * short *d_out; + * short val; + * cub::ThreadStore(d_out + threadIdx.x, val); + * + * // 256-bit store using write-through modifier + * double4 *d_out; + * double4 val; + * cub::ThreadStore(d_out + threadIdx.x, val); + * + * // 96-bit store using cache-streaming cache modifier + * struct TestFoo { bool a; short b; }; + * TestFoo *d_struct; + * TestFoo val; + * cub::ThreadStore(d_out + threadIdx.x, val); + * \endcode + * + * \tparam MODIFIER [inferred] CacheStoreModifier enumeration + * \tparam InputIteratorT [inferred] Output iterator type \iterator + * \tparam T [inferred] Data type of output value + */ +template < + CacheStoreModifier MODIFIER, + typename OutputIteratorT, + typename T> +__device__ __forceinline__ void ThreadStore(OutputIteratorT itr, T val); + + +//@} end member group + + +#ifndef DOXYGEN_SHOULD_SKIP_THIS // Do not document + + +/// Helper structure for templated store iteration (inductive case) +template +struct IterateThreadStore +{ + template + static __device__ __forceinline__ void Store(T *ptr, T *vals) + { + ThreadStore(ptr + COUNT, vals[COUNT]); + IterateThreadStore::template Store(ptr, vals); + } + + template + static __device__ __forceinline__ void Dereference(OutputIteratorT ptr, T *vals) + { + ptr[COUNT] = vals[COUNT]; + IterateThreadStore::Dereference(ptr, vals); + } + +}; + +/// Helper structure for templated store iteration (termination case) +template +struct IterateThreadStore +{ + template + static __device__ __forceinline__ void Store(T * /*ptr*/, T * /*vals*/) {} + + template + static __device__ __forceinline__ void Dereference(OutputIteratorT /*ptr*/, T * /*vals*/) {} +}; + + +/** + * Define a uint4 (16B) ThreadStore specialization for the given Cache load modifier + */ +#define _CUB_STORE_16(cub_modifier, ptx_modifier) \ + template<> \ + __device__ __forceinline__ void ThreadStore(uint4* ptr, uint4 val) \ + { \ + asm volatile ("st."#ptx_modifier".v4.u32 [%0], {%1, %2, %3, %4};" : : \ + _CUB_ASM_PTR_(ptr), \ + "r"(val.x), \ + "r"(val.y), \ + "r"(val.z), \ + "r"(val.w)); \ + } \ + template<> \ + __device__ __forceinline__ void ThreadStore(ulonglong2* ptr, ulonglong2 val) \ + { \ + asm volatile ("st."#ptx_modifier".v2.u64 [%0], {%1, %2};" : : \ + _CUB_ASM_PTR_(ptr), \ + "l"(val.x), \ + "l"(val.y)); \ + } + + +/** + * Define a uint2 (8B) ThreadStore specialization for the given Cache load modifier + */ +#define _CUB_STORE_8(cub_modifier, ptx_modifier) \ + template<> \ + __device__ __forceinline__ void ThreadStore(ushort4* ptr, ushort4 val) \ + { \ + asm volatile ("st."#ptx_modifier".v4.u16 [%0], {%1, %2, %3, %4};" : : \ + _CUB_ASM_PTR_(ptr), \ + "h"(val.x), \ + "h"(val.y), \ + "h"(val.z), \ + "h"(val.w)); \ + } \ + template<> \ + __device__ __forceinline__ void ThreadStore(uint2* ptr, uint2 val) \ + { \ + asm volatile ("st."#ptx_modifier".v2.u32 [%0], {%1, %2};" : : \ + _CUB_ASM_PTR_(ptr), \ + "r"(val.x), \ + "r"(val.y)); \ + } \ + template<> \ + __device__ __forceinline__ void ThreadStore(unsigned long long* ptr, unsigned long long val) \ + { \ + asm volatile ("st."#ptx_modifier".u64 [%0], %1;" : : \ + _CUB_ASM_PTR_(ptr), \ + "l"(val)); \ + } + +/** + * Define a unsigned int (4B) ThreadStore specialization for the given Cache load modifier + */ +#define _CUB_STORE_4(cub_modifier, ptx_modifier) \ + template<> \ + __device__ __forceinline__ void ThreadStore(unsigned int* ptr, unsigned int val) \ + { \ + asm volatile ("st."#ptx_modifier".u32 [%0], %1;" : : \ + _CUB_ASM_PTR_(ptr), \ + "r"(val)); \ + } + + +/** + * Define a unsigned short (2B) ThreadStore specialization for the given Cache load modifier + */ +#define _CUB_STORE_2(cub_modifier, ptx_modifier) \ + template<> \ + __device__ __forceinline__ void ThreadStore(unsigned short* ptr, unsigned short val) \ + { \ + asm volatile ("st."#ptx_modifier".u16 [%0], %1;" : : \ + _CUB_ASM_PTR_(ptr), \ + "h"(val)); \ + } + + +/** + * Define a unsigned char (1B) ThreadStore specialization for the given Cache load modifier + */ +#define _CUB_STORE_1(cub_modifier, ptx_modifier) \ + template<> \ + __device__ __forceinline__ void ThreadStore(unsigned char* ptr, unsigned char val) \ + { \ + asm volatile ( \ + "{" \ + " .reg .u8 datum;" \ + " cvt.u8.u16 datum, %1;" \ + " st."#ptx_modifier".u8 [%0], datum;" \ + "}" : : \ + _CUB_ASM_PTR_(ptr), \ + "h"((unsigned short) val)); \ + } + +/** + * Define powers-of-two ThreadStore specializations for the given Cache load modifier + */ +#define _CUB_STORE_ALL(cub_modifier, ptx_modifier) \ + _CUB_STORE_16(cub_modifier, ptx_modifier) \ + _CUB_STORE_8(cub_modifier, ptx_modifier) \ + _CUB_STORE_4(cub_modifier, ptx_modifier) \ + _CUB_STORE_2(cub_modifier, ptx_modifier) \ + _CUB_STORE_1(cub_modifier, ptx_modifier) \ + + +/** + * Define ThreadStore specializations for the various Cache load modifiers + */ +_CUB_STORE_ALL(STORE_WB, wb) +_CUB_STORE_ALL(STORE_CG, cg) +_CUB_STORE_ALL(STORE_CS, cs) +_CUB_STORE_ALL(STORE_WT, wt) + +// Macro cleanup +#undef _CUB_STORE_ALL +#undef _CUB_STORE_1 +#undef _CUB_STORE_2 +#undef _CUB_STORE_4 +#undef _CUB_STORE_8 +#undef _CUB_STORE_16 + + +/** + * ThreadStore definition for STORE_DEFAULT modifier on iterator types + */ +template +__device__ __forceinline__ void ThreadStore( + OutputIteratorT itr, + T val, + Int2Type /*modifier*/, + Int2Type /*is_pointer*/) +{ + *itr = val; +} + + +/** + * ThreadStore definition for STORE_DEFAULT modifier on pointer types + */ +template +__device__ __forceinline__ void ThreadStore( + T *ptr, + T val, + Int2Type /*modifier*/, + Int2Type /*is_pointer*/) +{ + *ptr = val; +} + + +/** + * ThreadStore definition for STORE_VOLATILE modifier on primitive pointer types + */ +template +__device__ __forceinline__ void ThreadStoreVolatilePtr( + T *ptr, + T val, + Int2Type /*is_primitive*/) +{ + *reinterpret_cast(ptr) = val; +} + + +/** + * ThreadStore definition for STORE_VOLATILE modifier on non-primitive pointer types + */ +template +__device__ __forceinline__ void ThreadStoreVolatilePtr( + T *ptr, + T val, + Int2Type /*is_primitive*/) +{ + // Create a temporary using shuffle-words, then store using volatile-words + typedef typename UnitWord::VolatileWord VolatileWord; + typedef typename UnitWord::ShuffleWord ShuffleWord; + + const int VOLATILE_MULTIPLE = sizeof(T) / sizeof(VolatileWord); + const int SHUFFLE_MULTIPLE = sizeof(T) / sizeof(ShuffleWord); + + VolatileWord words[VOLATILE_MULTIPLE]; + + #pragma unroll + for (int i = 0; i < SHUFFLE_MULTIPLE; ++i) + reinterpret_cast(words)[i] = reinterpret_cast(&val)[i]; + + IterateThreadStore<0, VOLATILE_MULTIPLE>::template Dereference( + reinterpret_cast(ptr), + words); +} + + +/** + * ThreadStore definition for STORE_VOLATILE modifier on pointer types + */ +template +__device__ __forceinline__ void ThreadStore( + T *ptr, + T val, + Int2Type /*modifier*/, + Int2Type /*is_pointer*/) +{ + ThreadStoreVolatilePtr(ptr, val, Int2Type::PRIMITIVE>()); +} + + +/** + * ThreadStore definition for generic modifiers on pointer types + */ +template +__device__ __forceinline__ void ThreadStore( + T *ptr, + T val, + Int2Type /*modifier*/, + Int2Type /*is_pointer*/) +{ + // Create a temporary using shuffle-words, then store using device-words + typedef typename UnitWord::DeviceWord DeviceWord; + typedef typename UnitWord::ShuffleWord ShuffleWord; + + const int DEVICE_MULTIPLE = sizeof(T) / sizeof(DeviceWord); + const int SHUFFLE_MULTIPLE = sizeof(T) / sizeof(ShuffleWord); + + DeviceWord words[DEVICE_MULTIPLE]; + + #pragma unroll + for (int i = 0; i < SHUFFLE_MULTIPLE; ++i) + reinterpret_cast(words)[i] = reinterpret_cast(&val)[i]; + + IterateThreadStore<0, DEVICE_MULTIPLE>::template Store( + reinterpret_cast(ptr), + words); +} + + +/** + * ThreadStore definition for generic modifiers + */ +template +__device__ __forceinline__ void ThreadStore(OutputIteratorT itr, T val) +{ + ThreadStore( + itr, + val, + Int2Type(), + Int2Type::value>()); +} + + + +#endif // DOXYGEN_SHOULD_SKIP_THIS + + +/** @} */ // end group UtilIo + + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/util_allocator.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/util_allocator.cuh new file mode 100644 index 0000000000000000000000000000000000000000..3c0588a8adc036fed8bbd1702d2e23de3fae175c --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/util_allocator.cuh @@ -0,0 +1,718 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/****************************************************************************** + * Simple caching allocator for device memory allocations. The allocator is + * thread-safe and capable of managing device allocations on multiple devices. + ******************************************************************************/ + +#pragma once + +#include "util_namespace.cuh" +#include "util_debug.cuh" + +#include +#include +#include + +#include + +CUB_NAMESPACE_BEGIN + + +/** + * \addtogroup UtilMgmt + * @{ + */ + + +/****************************************************************************** + * CachingDeviceAllocator (host use) + ******************************************************************************/ + +/** + * \brief A simple caching allocator for device memory allocations. + * + * \par Overview + * The allocator is thread-safe and stream-safe and is capable of managing cached + * device allocations on multiple devices. It behaves as follows: + * + * \par + * - Allocations from the allocator are associated with an \p active_stream. Once freed, + * the allocation becomes available immediately for reuse within the \p active_stream + * with which it was associated with during allocation, and it becomes available for + * reuse within other streams when all prior work submitted to \p active_stream has completed. + * - Allocations are categorized and cached by bin size. A new allocation request of + * a given size will only consider cached allocations within the corresponding bin. + * - Bin limits progress geometrically in accordance with the growth factor + * \p bin_growth provided during construction. Unused device allocations within + * a larger bin cache are not reused for allocation requests that categorize to + * smaller bin sizes. + * - Allocation requests below (\p bin_growth ^ \p min_bin) are rounded up to + * (\p bin_growth ^ \p min_bin). + * - Allocations above (\p bin_growth ^ \p max_bin) are not rounded up to the nearest + * bin and are simply freed when they are deallocated instead of being returned + * to a bin-cache. + * - If the total storage of cached allocations on a given device will exceed + * \p max_cached_bytes, allocations for that device are simply freed when they are + * deallocated instead of being returned to their bin-cache. + * + * \par + * For example, the default-constructed CachingDeviceAllocator is configured with: + * - \p bin_growth = 8 + * - \p min_bin = 3 + * - \p max_bin = 7 + * - \p max_cached_bytes = 6MB - 1B + * + * \par + * which delineates five bin-sizes: 512B, 4KB, 32KB, 256KB, and 2MB + * and sets a maximum of 6,291,455 cached bytes per device + * + */ +struct CachingDeviceAllocator +{ + + //--------------------------------------------------------------------- + // Constants + //--------------------------------------------------------------------- + + /// Out-of-bounds bin + static const unsigned int INVALID_BIN = (unsigned int) -1; + + /// Invalid size + static const size_t INVALID_SIZE = (size_t) -1; + +#ifndef DOXYGEN_SHOULD_SKIP_THIS // Do not document + + /// Invalid device ordinal + static const int INVALID_DEVICE_ORDINAL = -1; + + //--------------------------------------------------------------------- + // Type definitions and helper types + //--------------------------------------------------------------------- + + /** + * Descriptor for device memory allocations + */ + struct BlockDescriptor + { + void* d_ptr; // Device pointer + size_t bytes; // Size of allocation in bytes + unsigned int bin; // Bin enumeration + int device; // device ordinal + cudaStream_t associated_stream; // Associated associated_stream + cudaEvent_t ready_event; // Signal when associated stream has run to the point at which this block was freed + + // Constructor (suitable for searching maps for a specific block, given its pointer and device) + BlockDescriptor(void *d_ptr, int device) : + d_ptr(d_ptr), + bytes(0), + bin(INVALID_BIN), + device(device), + associated_stream(0), + ready_event(0) + {} + + // Constructor (suitable for searching maps for a range of suitable blocks, given a device) + BlockDescriptor(int device) : + d_ptr(NULL), + bytes(0), + bin(INVALID_BIN), + device(device), + associated_stream(0), + ready_event(0) + {} + + // Comparison functor for comparing device pointers + static bool PtrCompare(const BlockDescriptor &a, const BlockDescriptor &b) + { + if (a.device == b.device) + return (a.d_ptr < b.d_ptr); + else + return (a.device < b.device); + } + + // Comparison functor for comparing allocation sizes + static bool SizeCompare(const BlockDescriptor &a, const BlockDescriptor &b) + { + if (a.device == b.device) + return (a.bytes < b.bytes); + else + return (a.device < b.device); + } + }; + + /// BlockDescriptor comparator function interface + typedef bool (*Compare)(const BlockDescriptor &, const BlockDescriptor &); + + class TotalBytes { + public: + size_t free; + size_t live; + TotalBytes() { free = live = 0; } + }; + + /// Set type for cached blocks (ordered by size) + typedef std::multiset CachedBlocks; + + /// Set type for live blocks (ordered by ptr) + typedef std::multiset BusyBlocks; + + /// Map type of device ordinals to the number of cached bytes cached by each device + typedef std::map GpuCachedBytes; + + + //--------------------------------------------------------------------- + // Utility functions + //--------------------------------------------------------------------- + + /** + * Integer pow function for unsigned base and exponent + */ + static unsigned int IntPow( + unsigned int base, + unsigned int exp) + { + unsigned int retval = 1; + while (exp > 0) + { + if (exp & 1) { + retval = retval * base; // multiply the result by the current base + } + base = base * base; // square the base + exp = exp >> 1; // divide the exponent in half + } + return retval; + } + + + /** + * Round up to the nearest power-of + */ + void NearestPowerOf( + unsigned int &power, + size_t &rounded_bytes, + unsigned int base, + size_t value) + { + power = 0; + rounded_bytes = 1; + + if (value * base < value) + { + // Overflow + power = sizeof(size_t) * 8; + rounded_bytes = size_t(0) - 1; + return; + } + + while (rounded_bytes < value) + { + rounded_bytes *= base; + power++; + } + } + + + //--------------------------------------------------------------------- + // Fields + //--------------------------------------------------------------------- + + std::mutex mutex; /// Mutex for thread-safety + + unsigned int bin_growth; /// Geometric growth factor for bin-sizes + unsigned int min_bin; /// Minimum bin enumeration + unsigned int max_bin; /// Maximum bin enumeration + + size_t min_bin_bytes; /// Minimum bin size + size_t max_bin_bytes; /// Maximum bin size + size_t max_cached_bytes; /// Maximum aggregate cached bytes per device + + const bool skip_cleanup; /// Whether or not to skip a call to FreeAllCached() when destructor is called. (The CUDA runtime may have already shut down for statically declared allocators) + bool debug; /// Whether or not to print (de)allocation events to stdout + + GpuCachedBytes cached_bytes; /// Map of device ordinal to aggregate cached bytes on that device + CachedBlocks cached_blocks; /// Set of cached device allocations available for reuse + BusyBlocks live_blocks; /// Set of live device allocations currently in use + +#endif // DOXYGEN_SHOULD_SKIP_THIS + + //--------------------------------------------------------------------- + // Methods + //--------------------------------------------------------------------- + + /** + * \brief Constructor. + */ + CachingDeviceAllocator( + unsigned int bin_growth, ///< Geometric growth factor for bin-sizes + unsigned int min_bin = 1, ///< Minimum bin (default is bin_growth ^ 1) + unsigned int max_bin = INVALID_BIN, ///< Maximum bin (default is no max bin) + size_t max_cached_bytes = INVALID_SIZE, ///< Maximum aggregate cached bytes per device (default is no limit) + bool skip_cleanup = false, ///< Whether or not to skip a call to \p FreeAllCached() when the destructor is called (default is to deallocate) + bool debug = false) ///< Whether or not to print (de)allocation events to stdout (default is no stderr output) + : + bin_growth(bin_growth), + min_bin(min_bin), + max_bin(max_bin), + min_bin_bytes(IntPow(bin_growth, min_bin)), + max_bin_bytes(IntPow(bin_growth, max_bin)), + max_cached_bytes(max_cached_bytes), + skip_cleanup(skip_cleanup), + debug(debug), + cached_blocks(BlockDescriptor::SizeCompare), + live_blocks(BlockDescriptor::PtrCompare) + {} + + + /** + * \brief Default constructor. + * + * Configured with: + * \par + * - \p bin_growth = 8 + * - \p min_bin = 3 + * - \p max_bin = 7 + * - \p max_cached_bytes = (\p bin_growth ^ \p max_bin) * 3) - 1 = 6,291,455 bytes + * + * which delineates five bin-sizes: 512B, 4KB, 32KB, 256KB, and 2MB and + * sets a maximum of 6,291,455 cached bytes per device + */ + CachingDeviceAllocator( + bool skip_cleanup = false, + bool debug = false) + : + bin_growth(8), + min_bin(3), + max_bin(7), + min_bin_bytes(IntPow(bin_growth, min_bin)), + max_bin_bytes(IntPow(bin_growth, max_bin)), + max_cached_bytes((max_bin_bytes * 3) - 1), + skip_cleanup(skip_cleanup), + debug(debug), + cached_blocks(BlockDescriptor::SizeCompare), + live_blocks(BlockDescriptor::PtrCompare) + {} + + + /** + * \brief Sets the limit on the number bytes this allocator is allowed to cache per device. + * + * Changing the ceiling of cached bytes does not cause any allocations (in-use or + * cached-in-reserve) to be freed. See \p FreeAllCached(). + */ + cudaError_t SetMaxCachedBytes(size_t max_cached_bytes_) + { + // Lock + mutex.lock(); + + if (debug) _CubLog("Changing max_cached_bytes (%lld -> %lld)\n", (long long) this->max_cached_bytes, (long long) max_cached_bytes_); + + this->max_cached_bytes = max_cached_bytes_; + + // Unlock + mutex.unlock(); + + return cudaSuccess; + } + + + /** + * \brief Provides a suitable allocation of device memory for the given size on the specified device. + * + * Once freed, the allocation becomes available immediately for reuse within the \p active_stream + * with which it was associated with during allocation, and it becomes available for reuse within other + * streams when all prior work submitted to \p active_stream has completed. + */ + cudaError_t DeviceAllocate( + int device, ///< [in] Device on which to place the allocation + void **d_ptr, ///< [out] Reference to pointer to the allocation + size_t bytes, ///< [in] Minimum number of bytes for the allocation + cudaStream_t active_stream = 0) ///< [in] The stream to be associated with this allocation + { + *d_ptr = NULL; + int entrypoint_device = INVALID_DEVICE_ORDINAL; + cudaError_t error = cudaSuccess; + + if (device == INVALID_DEVICE_ORDINAL) + { + if (CubDebug(error = cudaGetDevice(&entrypoint_device))) return error; + device = entrypoint_device; + } + + // Create a block descriptor for the requested allocation + bool found = false; + BlockDescriptor search_key(device); + search_key.associated_stream = active_stream; + NearestPowerOf(search_key.bin, search_key.bytes, bin_growth, bytes); + + if (search_key.bin > max_bin) + { + // Bin is greater than our maximum bin: allocate the request + // exactly and give out-of-bounds bin. It will not be cached + // for reuse when returned. + search_key.bin = INVALID_BIN; + search_key.bytes = bytes; + } + else + { + // Search for a suitable cached allocation: lock + mutex.lock(); + + if (search_key.bin < min_bin) + { + // Bin is less than minimum bin: round up + search_key.bin = min_bin; + search_key.bytes = min_bin_bytes; + } + + // Iterate through the range of cached blocks on the same device in the same bin + CachedBlocks::iterator block_itr = cached_blocks.lower_bound(search_key); + while ((block_itr != cached_blocks.end()) + && (block_itr->device == device) + && (block_itr->bin == search_key.bin)) + { + // To prevent races with reusing blocks returned by the host but still + // in use by the device, only consider cached blocks that are + // either (from the active stream) or (from an idle stream) + bool is_reusable = false; + if (active_stream == block_itr->associated_stream) + { + is_reusable = true; + } + else + { + const cudaError_t event_status = cudaEventQuery(block_itr->ready_event); + if(event_status != cudaErrorNotReady) + { + CubDebug(event_status); + is_reusable = true; + } + } + + if(is_reusable) + { + // Reuse existing cache block. Insert into live blocks. + found = true; + search_key = *block_itr; + search_key.associated_stream = active_stream; + live_blocks.insert(search_key); + + // Remove from free blocks + cached_bytes[device].free -= search_key.bytes; + cached_bytes[device].live += search_key.bytes; + + if (debug) _CubLog("\tDevice %d reused cached block at %p (%lld bytes) for stream %lld (previously associated with stream %lld).\n", + device, search_key.d_ptr, (long long) search_key.bytes, (long long) search_key.associated_stream, (long long) block_itr->associated_stream); + + cached_blocks.erase(block_itr); + + break; + } + block_itr++; + } + + // Done searching: unlock + mutex.unlock(); + } + + // Allocate the block if necessary + if (!found) + { + // Set runtime's current device to specified device (entrypoint may not be set) + if (device != entrypoint_device) + { + if (CubDebug(error = cudaGetDevice(&entrypoint_device))) return error; + if (CubDebug(error = cudaSetDevice(device))) return error; + } + + // Attempt to allocate + if (CubDebug(error = cudaMalloc(&search_key.d_ptr, search_key.bytes)) == cudaErrorMemoryAllocation) + { + // The allocation attempt failed: free all cached blocks on device and retry + if (debug) _CubLog("\tDevice %d failed to allocate %lld bytes for stream %lld, retrying after freeing cached allocations", + device, (long long) search_key.bytes, (long long) search_key.associated_stream); + + error = cudaSuccess; // Reset the error we will return + cudaGetLastError(); // Reset CUDART's error + + // Lock + mutex.lock(); + + // Iterate the range of free blocks on the same device + BlockDescriptor free_key(device); + CachedBlocks::iterator block_itr = cached_blocks.lower_bound(free_key); + + while ((block_itr != cached_blocks.end()) && (block_itr->device == device)) + { + // No need to worry about synchronization with the device: cudaFree is + // blocking and will synchronize across all kernels executing + // on the current device + + // Free device memory and destroy stream event. + if (CubDebug(error = cudaFree(block_itr->d_ptr))) break; + if (CubDebug(error = cudaEventDestroy(block_itr->ready_event))) break; + + // Reduce balance and erase entry + cached_bytes[device].free -= block_itr->bytes; + + if (debug) _CubLog("\tDevice %d freed %lld bytes.\n\t\t %lld available blocks cached (%lld bytes), %lld live blocks (%lld bytes) outstanding.\n", + device, (long long) block_itr->bytes, (long long) cached_blocks.size(), (long long) cached_bytes[device].free, (long long) live_blocks.size(), (long long) cached_bytes[device].live); + + cached_blocks.erase(block_itr); + + block_itr++; + } + + // Unlock + mutex.unlock(); + + // Return under error + if (error) return error; + + // Try to allocate again + if (CubDebug(error = cudaMalloc(&search_key.d_ptr, search_key.bytes))) return error; + } + + // Create ready event + if (CubDebug(error = cudaEventCreateWithFlags(&search_key.ready_event, cudaEventDisableTiming))) + return error; + + // Insert into live blocks + mutex.lock(); + live_blocks.insert(search_key); + cached_bytes[device].live += search_key.bytes; + mutex.unlock(); + + if (debug) _CubLog("\tDevice %d allocated new device block at %p (%lld bytes associated with stream %lld).\n", + device, search_key.d_ptr, (long long) search_key.bytes, (long long) search_key.associated_stream); + + // Attempt to revert back to previous device if necessary + if ((entrypoint_device != INVALID_DEVICE_ORDINAL) && (entrypoint_device != device)) + { + if (CubDebug(error = cudaSetDevice(entrypoint_device))) return error; + } + } + + // Copy device pointer to output parameter + *d_ptr = search_key.d_ptr; + + if (debug) _CubLog("\t\t%lld available blocks cached (%lld bytes), %lld live blocks outstanding(%lld bytes).\n", + (long long) cached_blocks.size(), (long long) cached_bytes[device].free, (long long) live_blocks.size(), (long long) cached_bytes[device].live); + + return error; + } + + + /** + * \brief Provides a suitable allocation of device memory for the given size on the current device. + * + * Once freed, the allocation becomes available immediately for reuse within the \p active_stream + * with which it was associated with during allocation, and it becomes available for reuse within other + * streams when all prior work submitted to \p active_stream has completed. + */ + cudaError_t DeviceAllocate( + void **d_ptr, ///< [out] Reference to pointer to the allocation + size_t bytes, ///< [in] Minimum number of bytes for the allocation + cudaStream_t active_stream = 0) ///< [in] The stream to be associated with this allocation + { + return DeviceAllocate(INVALID_DEVICE_ORDINAL, d_ptr, bytes, active_stream); + } + + + /** + * \brief Frees a live allocation of device memory on the specified device, returning it to the allocator. + * + * Once freed, the allocation becomes available immediately for reuse within the \p active_stream + * with which it was associated with during allocation, and it becomes available for reuse within other + * streams when all prior work submitted to \p active_stream has completed. + */ + cudaError_t DeviceFree( + int device, + void* d_ptr) + { + int entrypoint_device = INVALID_DEVICE_ORDINAL; + cudaError_t error = cudaSuccess; + + if (device == INVALID_DEVICE_ORDINAL) + { + if (CubDebug(error = cudaGetDevice(&entrypoint_device))) + return error; + device = entrypoint_device; + } + + // Lock + mutex.lock(); + + // Find corresponding block descriptor + bool recached = false; + BlockDescriptor search_key(d_ptr, device); + BusyBlocks::iterator block_itr = live_blocks.find(search_key); + if (block_itr != live_blocks.end()) + { + // Remove from live blocks + search_key = *block_itr; + live_blocks.erase(block_itr); + cached_bytes[device].live -= search_key.bytes; + + // Keep the returned allocation if bin is valid and we won't exceed the max cached threshold + if ((search_key.bin != INVALID_BIN) && (cached_bytes[device].free + search_key.bytes <= max_cached_bytes)) + { + // Insert returned allocation into free blocks + recached = true; + cached_blocks.insert(search_key); + cached_bytes[device].free += search_key.bytes; + + if (debug) _CubLog("\tDevice %d returned %lld bytes from associated stream %lld.\n\t\t %lld available blocks cached (%lld bytes), %lld live blocks outstanding. (%lld bytes)\n", + device, (long long) search_key.bytes, (long long) search_key.associated_stream, (long long) cached_blocks.size(), + (long long) cached_bytes[device].free, (long long) live_blocks.size(), (long long) cached_bytes[device].live); + } + } + + // Unlock + mutex.unlock(); + + // First set to specified device (entrypoint may not be set) + if (device != entrypoint_device) + { + if (CubDebug(error = cudaGetDevice(&entrypoint_device))) return error; + if (CubDebug(error = cudaSetDevice(device))) return error; + } + + if (recached) + { + // Insert the ready event in the associated stream (must have current device set properly) + if (CubDebug(error = cudaEventRecord(search_key.ready_event, search_key.associated_stream))) return error; + } + + if (!recached) + { + // Free the allocation from the runtime and cleanup the event. + if (CubDebug(error = cudaFree(d_ptr))) return error; + if (CubDebug(error = cudaEventDestroy(search_key.ready_event))) return error; + + if (debug) _CubLog("\tDevice %d freed %lld bytes from associated stream %lld.\n\t\t %lld available blocks cached (%lld bytes), %lld live blocks (%lld bytes) outstanding.\n", + device, (long long) search_key.bytes, (long long) search_key.associated_stream, (long long) cached_blocks.size(), (long long) cached_bytes[device].free, (long long) live_blocks.size(), (long long) cached_bytes[device].live); + } + + // Reset device + if ((entrypoint_device != INVALID_DEVICE_ORDINAL) && (entrypoint_device != device)) + { + if (CubDebug(error = cudaSetDevice(entrypoint_device))) return error; + } + + return error; + } + + + /** + * \brief Frees a live allocation of device memory on the current device, returning it to the allocator. + * + * Once freed, the allocation becomes available immediately for reuse within the \p active_stream + * with which it was associated with during allocation, and it becomes available for reuse within other + * streams when all prior work submitted to \p active_stream has completed. + */ + cudaError_t DeviceFree( + void* d_ptr) + { + return DeviceFree(INVALID_DEVICE_ORDINAL, d_ptr); + } + + + /** + * \brief Frees all cached device allocations on all devices + */ + cudaError_t FreeAllCached() + { + cudaError_t error = cudaSuccess; + int entrypoint_device = INVALID_DEVICE_ORDINAL; + int current_device = INVALID_DEVICE_ORDINAL; + + mutex.lock(); + + while (!cached_blocks.empty()) + { + // Get first block + CachedBlocks::iterator begin = cached_blocks.begin(); + + // Get entry-point device ordinal if necessary + if (entrypoint_device == INVALID_DEVICE_ORDINAL) + { + if (CubDebug(error = cudaGetDevice(&entrypoint_device))) break; + } + + // Set current device ordinal if necessary + if (begin->device != current_device) + { + if (CubDebug(error = cudaSetDevice(begin->device))) break; + current_device = begin->device; + } + + // Free device memory + if (CubDebug(error = cudaFree(begin->d_ptr))) break; + if (CubDebug(error = cudaEventDestroy(begin->ready_event))) break; + + // Reduce balance and erase entry + const size_t block_bytes = begin->bytes; + cached_bytes[current_device].free -= block_bytes; + cached_blocks.erase(begin); + + if (debug) _CubLog("\tDevice %d freed %lld bytes.\n\t\t %lld available blocks cached (%lld bytes), %lld live blocks (%lld bytes) outstanding.\n", + current_device, (long long) block_bytes, (long long) cached_blocks.size(), (long long) cached_bytes[current_device].free, (long long) live_blocks.size(), (long long) cached_bytes[current_device].live); + + } + + mutex.unlock(); + + // Attempt to revert back to entry-point device if necessary + if (entrypoint_device != INVALID_DEVICE_ORDINAL) + { + if (CubDebug(error = cudaSetDevice(entrypoint_device))) return error; + } + + return error; + } + + + /** + * \brief Destructor + */ + virtual ~CachingDeviceAllocator() + { + if (!skip_cleanup) + FreeAllCached(); + } + +}; + + + + +/** @} */ // end group UtilMgmt + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/util_arch.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/util_arch.cuh new file mode 100644 index 0000000000000000000000000000000000000000..d2506e93cfca9a7f5005076a46eb009a43b64d5b --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/util_arch.cuh @@ -0,0 +1,164 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * Static architectural properties by SM version. + */ + +#pragma once + +#include +#include +#include + +// Legacy include; this functionality used to be defined in here. +#include + +CUB_NAMESPACE_BEGIN + +#ifndef DOXYGEN_SHOULD_SKIP_THIS // Do not document + +// \deprecated [Since 2.1.0] +#define CUB_USE_COOPERATIVE_GROUPS + +/// In device code, CUB_PTX_ARCH expands to the PTX version for which we are +/// compiling. In host code, CUB_PTX_ARCH's value is implementation defined. +#ifndef CUB_PTX_ARCH + #if defined(_NVHPC_CUDA) + // __NVCOMPILER_CUDA_ARCH__ is the target PTX version, and is defined + // when compiling both host code and device code. Currently, only one + // PTX version can be targeted. + #define CUB_PTX_ARCH __NVCOMPILER_CUDA_ARCH__ + #elif !defined(__CUDA_ARCH__) + #define CUB_PTX_ARCH 0 + #else + #define CUB_PTX_ARCH __CUDA_ARCH__ + #endif +#endif + +// These definitions were intended for internal use only and are now obsolete. +// If you relied on them, consider porting your code to use the functionality +// in libcu++'s header. +// For a temporary workaround, define CUB_PROVIDE_LEGACY_ARCH_MACROS to make +// them available again. These should be considered deprecated and will be +// fully removed in a future version. +#ifdef CUB_PROVIDE_LEGACY_ARCH_MACROS + #ifndef CUB_IS_DEVICE_CODE + #if defined(_NVHPC_CUDA) + #define CUB_IS_DEVICE_CODE __builtin_is_device_code() + #define CUB_IS_HOST_CODE (!__builtin_is_device_code()) + #define CUB_INCLUDE_DEVICE_CODE 1 + #define CUB_INCLUDE_HOST_CODE 1 + #elif CUB_PTX_ARCH > 0 + #define CUB_IS_DEVICE_CODE 1 + #define CUB_IS_HOST_CODE 0 + #define CUB_INCLUDE_DEVICE_CODE 1 + #define CUB_INCLUDE_HOST_CODE 0 + #else + #define CUB_IS_DEVICE_CODE 0 + #define CUB_IS_HOST_CODE 1 + #define CUB_INCLUDE_DEVICE_CODE 0 + #define CUB_INCLUDE_HOST_CODE 1 + #endif + #endif +#endif // CUB_PROVIDE_LEGACY_ARCH_MACROS + +/// Maximum number of devices supported. +#ifndef CUB_MAX_DEVICES + #define CUB_MAX_DEVICES (128) +#endif + +static_assert(CUB_MAX_DEVICES > 0, "CUB_MAX_DEVICES must be greater than 0."); + + +/// Number of threads per warp +#ifndef CUB_LOG_WARP_THREADS + #define CUB_LOG_WARP_THREADS(unused) (5) + #define CUB_WARP_THREADS(unused) (1 << CUB_LOG_WARP_THREADS(0)) + + #define CUB_PTX_WARP_THREADS CUB_WARP_THREADS(0) + #define CUB_PTX_LOG_WARP_THREADS CUB_LOG_WARP_THREADS(0) +#endif + + +/// Number of smem banks +#ifndef CUB_LOG_SMEM_BANKS + #define CUB_LOG_SMEM_BANKS(unused) (5) + #define CUB_SMEM_BANKS(unused) (1 << CUB_LOG_SMEM_BANKS(0)) + + #define CUB_PTX_LOG_SMEM_BANKS CUB_LOG_SMEM_BANKS(0) + #define CUB_PTX_SMEM_BANKS CUB_SMEM_BANKS +#endif + + +/// Oversubscription factor +#ifndef CUB_SUBSCRIPTION_FACTOR + #define CUB_SUBSCRIPTION_FACTOR(unused) (5) + #define CUB_PTX_SUBSCRIPTION_FACTOR CUB_SUBSCRIPTION_FACTOR(0) +#endif + + +/// Prefer padding overhead vs X-way conflicts greater than this threshold +#ifndef CUB_PREFER_CONFLICT_OVER_PADDING + #define CUB_PREFER_CONFLICT_OVER_PADDING(unused) (1) + #define CUB_PTX_PREFER_CONFLICT_OVER_PADDING CUB_PREFER_CONFLICT_OVER_PADDING(0) +#endif + + +template < + int NOMINAL_4B_BLOCK_THREADS, + int NOMINAL_4B_ITEMS_PER_THREAD, + typename T> +struct RegBoundScaling +{ + enum { + ITEMS_PER_THREAD = CUB_MAX(1, NOMINAL_4B_ITEMS_PER_THREAD * 4 / CUB_MAX(4, sizeof(T))), + BLOCK_THREADS = CUB_MIN(NOMINAL_4B_BLOCK_THREADS, (((1024 * 48) / (sizeof(T) * ITEMS_PER_THREAD)) + 31) / 32 * 32), + }; +}; + + +template < + int NOMINAL_4B_BLOCK_THREADS, + int NOMINAL_4B_ITEMS_PER_THREAD, + typename T> +struct MemBoundScaling +{ + enum { + ITEMS_PER_THREAD = CUB_MAX(1, CUB_MIN(NOMINAL_4B_ITEMS_PER_THREAD * 4 / sizeof(T), NOMINAL_4B_ITEMS_PER_THREAD * 2)), + BLOCK_THREADS = CUB_MIN(NOMINAL_4B_BLOCK_THREADS, (((1024 * 48) / (sizeof(T) * ITEMS_PER_THREAD)) + 31) / 32 * 32), + }; +}; + + + + +#endif // Do not document + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/util_compiler.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/util_compiler.cuh new file mode 100644 index 0000000000000000000000000000000000000000..7cda3c44012496b7cce26c8f94cc7e17fa5179e0 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/util_compiler.cuh @@ -0,0 +1,81 @@ +/****************************************************************************** + * Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + *AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + *IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * Detect compiler information. + */ + +#pragma once + +// enumerate host compilers we know about +#define CUB_HOST_COMPILER_UNKNOWN 0 +#define CUB_HOST_COMPILER_MSVC 1 +#define CUB_HOST_COMPILER_GCC 2 +#define CUB_HOST_COMPILER_CLANG 3 + +// enumerate device compilers we know about +#define CUB_DEVICE_COMPILER_UNKNOWN 0 +#define CUB_DEVICE_COMPILER_MSVC 1 +#define CUB_DEVICE_COMPILER_GCC 2 +#define CUB_DEVICE_COMPILER_NVCC 3 +#define CUB_DEVICE_COMPILER_CLANG 4 + +// figure out which host compiler we're using +#if defined(_MSC_VER) +# define CUB_HOST_COMPILER CUB_HOST_COMPILER_MSVC +# define CUB_MSVC_VERSION _MSC_VER +# define CUB_MSVC_VERSION_FULL _MSC_FULL_VER +#elif defined(__clang__) +# define CUB_HOST_COMPILER CUB_HOST_COMPILER_CLANG +# define CUB_CLANG_VERSION \ + (__clang_major__ * 10000 + __clang_minor__ * 100 + __clang_patchlevel__) +#elif defined(__GNUC__) +# define CUB_HOST_COMPILER CUB_HOST_COMPILER_GCC +# define CUB_GCC_VERSION \ + (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) +#else +# define CUB_HOST_COMPILER CUB_HOST_COMPILER_UNKNOWN +#endif // CUB_HOST_COMPILER + +// figure out which device compiler we're using +#if defined(__CUDACC__) || defined(_NVHPC_CUDA) +# define CUB_DEVICE_COMPILER CUB_DEVICE_COMPILER_NVCC +#elif CUB_HOST_COMPILER == CUB_HOST_COMPILER_MSVC +# define CUB_DEVICE_COMPILER CUB_DEVICE_COMPILER_MSVC +#elif CUB_HOST_COMPILER == CUB_HOST_COMPILER_GCC +# define CUB_DEVICE_COMPILER CUB_DEVICE_COMPILER_GCC +#elif CUB_HOST_COMPILER == CUB_HOST_COMPILER_CLANG +// CUDA-capable clang should behave similar to NVCC. +# if defined(__CUDA__) +# define CUB_DEVICE_COMPILER CUB_DEVICE_COMPILER_NVCC +# else +# define CUB_DEVICE_COMPILER CUB_DEVICE_COMPILER_CLANG +# endif +#else +# define CUB_DEVICE_COMPILER CUB_DEVICE_COMPILER_UNKNOWN +#endif diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/util_cpp_dialect.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/util_cpp_dialect.cuh new file mode 100644 index 0000000000000000000000000000000000000000..23adf8e8dc79c263b7fb964f7d1a4c456018e85e --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/util_cpp_dialect.cuh @@ -0,0 +1,151 @@ +/****************************************************************************** + * Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + *AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + *IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/*! \file + * \brief Detect the version of the C++ standard used by the compiler. + */ + +#pragma once + +#include "util_compiler.cuh" + +// Deprecation warnings may be silenced by defining the following macros. These +// may be combined. +// - CUB_IGNORE_DEPRECATED_CPP_DIALECT: +// Ignore all deprecated C++ dialects and outdated compilers. +// - CUB_IGNORE_DEPRECATED_CPP_11: +// Ignore deprecation warnings when compiling with C++11. C++03 and outdated +// compilers will still issue warnings. +// - CUB_IGNORE_DEPRECATED_COMPILER +// Ignore deprecation warnings when using deprecated compilers. Compiling +// with C++03 and C++11 will still issue warnings. + +// Check for the thrust opt-outs as well: +#if !defined(CUB_IGNORE_DEPRECATED_CPP_DIALECT) && \ + defined(THRUST_IGNORE_DEPRECATED_CPP_DIALECT) +# define CUB_IGNORE_DEPRECATED_CPP_DIALECT +#endif +#if !defined(CUB_IGNORE_DEPRECATED_CPP_11) && \ + defined(THRUST_IGNORE_DEPRECATED_CPP_11) +# define CUB_IGNORE_DEPRECATED_CPP_11 +#endif +#if !defined(CUB_IGNORE_DEPRECATED_COMPILER) && \ + defined(THRUST_IGNORE_DEPRECATED_COMPILER) +# define CUB_IGNORE_DEPRECATED_COMPILER +#endif + +#ifdef CUB_IGNORE_DEPRECATED_CPP_DIALECT +# define CUB_IGNORE_DEPRECATED_CPP_11 +# define CUB_IGNORE_DEPRECATED_COMPILER +#endif + +// Define this to override the built-in detection. +#ifndef CUB_CPP_DIALECT + +// MSVC does not define __cplusplus correctly. _MSVC_LANG is used instead. +// This macro is only defined in MSVC 2015U3+. +# ifdef _MSVC_LANG // Do not replace with CUB_HOST_COMPILER test (see above) +// MSVC2015 reports C++14 but lacks extended constexpr support. Treat as C++11. +# if CUB_MSVC_VERSION < 1910 && _MSVC_LANG > 201103L /* MSVC < 2017 && CPP > 2011 */ +# define CUB_CPLUSPLUS 201103L /* Fix to 2011 */ +# else +# define CUB_CPLUSPLUS _MSVC_LANG /* We'll trust this for now. */ +# endif // MSVC 2015 C++14 fix +# else +# define CUB_CPLUSPLUS __cplusplus +# endif + +// Detect current dialect: +# if CUB_CPLUSPLUS < 201103L +# define CUB_CPP_DIALECT 2003 +# elif CUB_CPLUSPLUS < 201402L +# define CUB_CPP_DIALECT 2011 +# elif CUB_CPLUSPLUS < 201703L +# define CUB_CPP_DIALECT 2014 +# elif CUB_CPLUSPLUS == 201703L +# define CUB_CPP_DIALECT 2017 +# elif CUB_CPLUSPLUS > 201703L // unknown, but is higher than 2017. +# define CUB_CPP_DIALECT 2020 +# endif + +# undef CUB_CPLUSPLUS // cleanup + +#endif // !CUB_CPP_DIALECT + +// Define CUB_COMPILER_DEPRECATION macro: +#if CUB_HOST_COMPILER == CUB_HOST_COMPILER_MSVC +# define CUB_COMP_DEPR_IMPL(msg) \ + __pragma(message(__FILE__ ":" CUB_COMP_DEPR_IMPL0(__LINE__) ": warning: " #msg)) +# define CUB_COMP_DEPR_IMPL0(x) CUB_COMP_DEPR_IMPL1(x) +# define CUB_COMP_DEPR_IMPL1(x) #x +#else // clang / gcc: +# define CUB_COMP_DEPR_IMPL(msg) CUB_COMP_DEPR_IMPL0(GCC warning #msg) +# define CUB_COMP_DEPR_IMPL0(expr) _Pragma(#expr) +# define CUB_COMP_DEPR_IMPL1 /* intentionally blank */ +#endif + +#define CUB_COMPILER_DEPRECATION(REQ) \ + CUB_COMP_DEPR_IMPL(CUB requires at least REQ. Define CUB_IGNORE_DEPRECATED_CPP_DIALECT to suppress this message.) + +#define CUB_COMPILER_DEPRECATION_SOFT(REQ, CUR) \ + CUB_COMP_DEPR_IMPL(CUB requires at least REQ. CUR is deprecated but still supported. CUR support will be removed in a future release. Define CUB_IGNORE_DEPRECATED_CPP_DIALECT to suppress this message.) + +#ifndef CUB_IGNORE_DEPRECATED_COMPILER + +// Compiler checks: +# if CUB_HOST_COMPILER == CUB_HOST_COMPILER_GCC && CUB_GCC_VERSION < 50000 + CUB_COMPILER_DEPRECATION(GCC 5.0); +# elif CUB_HOST_COMPILER == CUB_HOST_COMPILER_CLANG && CUB_CLANG_VERSION < 70000 + CUB_COMPILER_DEPRECATION(Clang 7.0); +# elif CUB_HOST_COMPILER == CUB_HOST_COMPILER_MSVC && CUB_MSVC_VERSION < 1910 + // <2017. Hard upgrade message: + CUB_COMPILER_DEPRECATION(MSVC 2019 (19.20/16.0/14.20)); +# elif CUB_HOST_COMPILER == CUB_HOST_COMPILER_MSVC && CUB_MSVC_VERSION < 1920 + // >=2017, <2019. Soft deprecation message: + CUB_COMPILER_DEPRECATION_SOFT(MSVC 2019 (19.20/16.0/14.20), MSVC 2017); +# endif + +#endif // CUB_IGNORE_DEPRECATED_COMPILER + +#ifndef CUB_IGNORE_DEPRECATED_DIALECT + +// Dialect checks: +# if CUB_CPP_DIALECT < 2011 + // +#include + +#include + +#include + +CUB_NAMESPACE_BEGIN + + +#ifdef DOXYGEN_SHOULD_SKIP_THIS // Only parse this during doxygen passes: + +/** + * @def CUB_DEBUG_LOG + * + * Causes kernel launch configurations to be printed to the console + */ +#define CUB_DEBUG_LOG + +/** + * @def CUB_DEBUG_SYNC + * + * Causes synchronization of the stream after every kernel launch to check + * for errors. Also causes kernel launch configurations to be printed to the + * console. + */ +#define CUB_DEBUG_SYNC + +/** + * @def CUB_DEBUG_HOST_ASSERTIONS + * + * Extends `CUB_DEBUG_SYNC` effects by checking host-side precondition + * assertions. + */ +#define CUB_DEBUG_HOST_ASSERTIONS + +/** + * @def CUB_DEBUG_DEVICE_ASSERTIONS + * + * Extends `CUB_DEBUG_HOST_ASSERTIONS` effects by checking device-side + * precondition assertions. + */ +#define CUB_DEBUG_DEVICE_ASSERTIONS + +/** + * @def CUB_DEBUG_ALL + * + * Causes host and device-side precondition assertions to be checked. Apart + * from that, causes synchronization of the stream after every kernel launch to + * check for errors. Also causes kernel launch configurations to be printed to + * the console. + */ +#define CUB_DEBUG_ALL + +#endif // DOXYGEN_SHOULD_SKIP_THIS + +/** + * \addtogroup UtilMgmt + * @{ + */ + + +// `CUB_DETAIL_DEBUG_LEVEL_*`: Implementation details, internal use only: + +#define CUB_DETAIL_DEBUG_LEVEL_NONE 0 +#define CUB_DETAIL_DEBUG_LEVEL_HOST_ASSERTIONS_ONLY 1 +#define CUB_DETAIL_DEBUG_LEVEL_LOG 2 +#define CUB_DETAIL_DEBUG_LEVEL_SYNC 3 +#define CUB_DETAIL_DEBUG_LEVEL_HOST_ASSERTIONS 4 +#define CUB_DETAIL_DEBUG_LEVEL_DEVICE_ASSERTIONS 5 +#define CUB_DETAIL_DEBUG_LEVEL_ALL 1000 + +// `CUB_DEBUG_*`: User interfaces: + +// Extra logging, no syncs +#ifdef CUB_DEBUG_LOG +#define CUB_DETAIL_DEBUG_LEVEL CUB_DETAIL_DEBUG_LEVEL_LOG +#endif + +// Logging + syncs +#ifdef CUB_DEBUG_SYNC +#define CUB_DETAIL_DEBUG_LEVEL CUB_DETAIL_DEBUG_LEVEL_SYNC +#endif + +// Logging + syncs + host assertions +#ifdef CUB_DEBUG_HOST_ASSERTIONS +#define CUB_DETAIL_DEBUG_LEVEL CUB_DETAIL_DEBUG_LEVEL_HOST_ASSERTIONS +#endif + +// Logging + syncs + host assertions + device assertions +#ifdef CUB_DEBUG_DEVICE_ASSERTIONS +#define CUB_DETAIL_DEBUG_LEVEL CUB_DETAIL_DEBUG_LEVEL_DEVICE_ASSERTIONS +#endif + +// All +#ifdef CUB_DEBUG_ALL +#define CUB_DETAIL_DEBUG_LEVEL CUB_DETAIL_DEBUG_LEVEL_ALL +#endif + +// Default case, no extra debugging: +#ifndef CUB_DETAIL_DEBUG_LEVEL +#ifdef NDEBUG +#define CUB_DETAIL_DEBUG_LEVEL CUB_DETAIL_DEBUG_LEVEL_NONE +#else +#define CUB_DETAIL_DEBUG_LEVEL CUB_DETAIL_DEBUG_LEVEL_HOST_ASSERTIONS_ONLY +#endif +#endif + +/* + * `CUB_DETAIL_DEBUG_ENABLE_*`: + * Internal implementation details, used for testing enabled debug features: + */ + +#if CUB_DETAIL_DEBUG_LEVEL >= CUB_DETAIL_DEBUG_LEVEL_LOG +#define CUB_DETAIL_DEBUG_ENABLE_LOG +#endif + +#if CUB_DETAIL_DEBUG_LEVEL >= CUB_DETAIL_DEBUG_LEVEL_SYNC +#define CUB_DETAIL_DEBUG_ENABLE_SYNC +#endif + +#if (CUB_DETAIL_DEBUG_LEVEL >= CUB_DETAIL_DEBUG_LEVEL_HOST_ASSERTIONS) || \ + (CUB_DETAIL_DEBUG_LEVEL == CUB_DETAIL_DEBUG_LEVEL_HOST_ASSERTIONS_ONLY) +#define CUB_DETAIL_DEBUG_ENABLE_HOST_ASSERTIONS +#endif + +#if CUB_DETAIL_DEBUG_LEVEL >= CUB_DETAIL_DEBUG_LEVEL_DEVICE_ASSERTIONS +#define CUB_DETAIL_DEBUG_ENABLE_DEVICE_ASSERTIONS +#endif + + +/// CUB error reporting macro (prints error messages to stderr) +#if (defined(DEBUG) || defined(_DEBUG)) && !defined(CUB_STDERR) + #define CUB_STDERR +#endif + +/** + * \brief %If \p CUB_STDERR is defined and \p error is not \p cudaSuccess, the + * corresponding error message is printed to \p stderr (or \p stdout in device + * code) along with the supplied source context. + * + * \return The CUDA error. + */ +__host__ __device__ +__forceinline__ +cudaError_t Debug(cudaError_t error, const char *filename, int line) +{ + // Clear the global CUDA error state which may have been set by the last + // call. Otherwise, errors may "leak" to unrelated kernel launches. + + // clang-format off + #ifndef CUB_RDC_ENABLED + #define CUB_TEMP_DEVICE_CODE + #else + #define CUB_TEMP_DEVICE_CODE cudaGetLastError() + #endif + + NV_IF_TARGET( + NV_IS_HOST, + (cudaGetLastError();), + (CUB_TEMP_DEVICE_CODE;) + ); + + #undef CUB_TEMP_DEVICE_CODE + // clang-format on + +#ifdef CUB_STDERR + if (error) + { + NV_IF_TARGET( + NV_IS_HOST, ( + fprintf(stderr, + "CUDA error %d [%s, %d]: %s\n", + error, + filename, + line, + cudaGetErrorString(error)); + fflush(stderr); + ), + ( + printf("CUDA error %d [block (%d,%d,%d) thread (%d,%d,%d), %s, %d]\n", + error, + blockIdx.z, + blockIdx.y, + blockIdx.x, + threadIdx.z, + threadIdx.y, + threadIdx.x, + filename, + line); + ) + ); + } +#else + (void)filename; + (void)line; +#endif + + return error; +} + +/** + * \brief Debug macro + */ +#ifndef CubDebug + #define CubDebug(e) CUB_NS_QUALIFIER::Debug((cudaError_t) (e), __FILE__, __LINE__) +#endif + + +/** + * \brief Debug macro with exit + */ +#ifndef CubDebugExit + #define CubDebugExit(e) if (CUB_NS_QUALIFIER::Debug((cudaError_t) (e), __FILE__, __LINE__)) { exit(1); } +#endif + + +/** + * \brief Log macro for printf statements. + */ +#if !defined(_CubLog) +#if defined(_NVHPC_CUDA) || !(defined(__clang__) && defined(__CUDA__)) + +// NVCC / NVC++ +#define _CubLog(format, ...) \ + do \ + { \ + NV_IF_TARGET(NV_IS_HOST, \ + (printf(format, __VA_ARGS__);), \ + (printf("[block (%d,%d,%d), thread (%d,%d,%d)]: " format, \ + blockIdx.z, \ + blockIdx.y, \ + blockIdx.x, \ + threadIdx.z, \ + threadIdx.y, \ + threadIdx.x, \ + __VA_ARGS__);)); \ + } while (false) + +#else // Clang: + +// XXX shameless hack for clang around variadic printf... +// Compilies w/o supplying -std=c++11 but shows warning, +// so we silence them :) +#pragma clang diagnostic ignored "-Wc++11-extensions" +#pragma clang diagnostic ignored "-Wunnamed-type-template-args" +template +inline __host__ __device__ void va_printf(char const *format, + Args const &...args) +{ +#ifdef __CUDA_ARCH__ + printf(format, + blockIdx.z, + blockIdx.y, + blockIdx.x, + threadIdx.z, + threadIdx.y, + threadIdx.x, + args...); +#else + printf(format, args...); +#endif +} +#ifndef __CUDA_ARCH__ +#define _CubLog(format, ...) CUB_NS_QUALIFIER::va_printf(format, __VA_ARGS__); +#else +#define _CubLog(format, ...) \ + CUB_NS_QUALIFIER::va_printf("[block (%d,%d,%d), thread " \ + "(%d,%d,%d)]: " format, \ + __VA_ARGS__); +#endif +#endif +#endif + +/** @} */ // end group UtilMgmt + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/util_deprecated.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/util_deprecated.cuh new file mode 100644 index 0000000000000000000000000000000000000000..a988c9fca908ef44306b4af48d55cedc6cca32a5 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/util_deprecated.cuh @@ -0,0 +1,79 @@ +/****************************************************************************** + * Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + *AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + *IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * Define CUB_DEPRECATED macro. + */ + +#pragma once + + +#include +#include +#include +#include + + +#if defined(THRUST_IGNORE_DEPRECATED_API) && !defined(CUB_IGNORE_DEPRECATED_API) +# define CUB_IGNORE_DEPRECATED_API +#endif + +#ifdef CUB_IGNORE_DEPRECATED_API +# define CUB_DEPRECATED +# define CUB_DEPRECATED_BECAUSE(MSG) +#elif CUB_CPP_DIALECT >= 2014 +# define CUB_DEPRECATED [[deprecated]] +# define CUB_DEPRECATED_BECAUSE(MSG) [[deprecated(MSG)]] +#elif CUB_HOST_COMPILER == CUB_HOST_COMPILER_MSVC +# define CUB_DEPRECATED __declspec(deprecated) +# define CUB_DEPRECATED_BECAUSE(MSG) __declspec(deprecated(MSG)) +#elif CUB_HOST_COMPILER == CUB_HOST_COMPILER_CLANG +# define CUB_DEPRECATED __attribute__((deprecated)) +# define CUB_DEPRECATED_BECAUSE(MSG) __attribute__((deprecated(MSG))) +#elif CUB_HOST_COMPILER == CUB_HOST_COMPILER_GCC +# define CUB_DEPRECATED __attribute__((deprecated)) +# define CUB_DEPRECATED_BECAUSE(MSG) __attribute__((deprecated(MSG))) +#else +# define CUB_DEPRECATED +# define CUB_DEPRECATED_BECAUSE(MSG) +#endif + +#define CUB_DETAIL_RUNTIME_DEBUG_SYNC_IS_NOT_SUPPORTED \ + CUB_DEPRECATED_BECAUSE( \ + "CUB no longer accepts `debug_synchronous` parameter. " \ + "Define CUB_DEBUG_SYNC instead, or silence this message with " \ + "CUB_IGNORE_DEPRECATED_API.") + +#define CUB_DETAIL_RUNTIME_DEBUG_SYNC_USAGE_LOG \ + if (debug_synchronous) \ + { \ + _CubLog("%s\n", \ + "CUB no longer accepts `debug_synchronous` parameter. " \ + "Define CUB_DEBUG_SYNC instead."); \ + } + diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/util_device.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/util_device.cuh new file mode 100644 index 0000000000000000000000000000000000000000..cb798372fc3ee668d1a4b3c2eefe8f71b894f5c0 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/util_device.cuh @@ -0,0 +1,714 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2020, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * Properties of a given CUDA device and the corresponding PTX bundle + */ + +#pragma once + +#include + +#include +#include +#include +#include +#include +#include +#include + +#include + +#include +#include +#include + +CUB_NAMESPACE_BEGIN + + +/** + * \addtogroup UtilMgmt + * @{ + */ + +#ifndef DOXYGEN_SHOULD_SKIP_THIS // Do not document + + +/** + * \brief Alias temporaries to externally-allocated device storage (or simply return the amount of storage needed). + */ +template +__host__ __device__ __forceinline__ +cudaError_t AliasTemporaries( + void *d_temp_storage, ///< [in] Device-accessible allocation of temporary storage. When NULL, the required allocation size is written to \p temp_storage_bytes and no work is done. + size_t& temp_storage_bytes, ///< [in,out] Size in bytes of \t d_temp_storage allocation + void* (&allocations)[ALLOCATIONS], ///< [in,out] Pointers to device allocations needed + size_t (&allocation_sizes)[ALLOCATIONS]) ///< [in] Sizes in bytes of device allocations needed +{ + const int ALIGN_BYTES = 256; + const int ALIGN_MASK = ~(ALIGN_BYTES - 1); + + // Compute exclusive prefix sum over allocation requests + size_t allocation_offsets[ALLOCATIONS]; + size_t bytes_needed = 0; + for (int i = 0; i < ALLOCATIONS; ++i) + { + size_t allocation_bytes = (allocation_sizes[i] + ALIGN_BYTES - 1) & ALIGN_MASK; + allocation_offsets[i] = bytes_needed; + bytes_needed += allocation_bytes; + } + bytes_needed += ALIGN_BYTES - 1; + + // Check if the caller is simply requesting the size of the storage allocation + if (!d_temp_storage) + { + temp_storage_bytes = bytes_needed; + return cudaSuccess; + } + + // Check if enough storage provided + if (temp_storage_bytes < bytes_needed) + { + return CubDebug(cudaErrorInvalidValue); + } + + // Alias + d_temp_storage = (void *) ((size_t(d_temp_storage) + ALIGN_BYTES - 1) & ALIGN_MASK); + for (int i = 0; i < ALLOCATIONS; ++i) + { + allocations[i] = static_cast(d_temp_storage) + allocation_offsets[i]; + } + + return cudaSuccess; +} + + +/** + * \brief Empty kernel for querying PTX manifest metadata (e.g., version) for the current device + */ +template +__global__ void EmptyKernel(void) { } + +#endif // DOXYGEN_SHOULD_SKIP_THIS + +/** + * \brief Returns the current device or -1 if an error occurred. + */ +CUB_RUNTIME_FUNCTION inline int CurrentDevice() +{ + int device = -1; + if (CubDebug(cudaGetDevice(&device))) return -1; + return device; +} + +/** + * \brief RAII helper which saves the current device and switches to the + * specified device on construction and switches to the saved device on + * destruction. + */ +struct SwitchDevice +{ +private: + int const old_device; + bool const needs_reset; +public: + __host__ inline SwitchDevice(int new_device) + : old_device(CurrentDevice()), needs_reset(old_device != new_device) + { + if (needs_reset) + CubDebug(cudaSetDevice(new_device)); + } + + __host__ inline ~SwitchDevice() + { + if (needs_reset) + CubDebug(cudaSetDevice(old_device)); + } +}; + +/** + * \brief Returns the number of CUDA devices available or -1 if an error + * occurred. + */ +CUB_RUNTIME_FUNCTION inline int DeviceCountUncached() +{ + int count = -1; + if (CubDebug(cudaGetDeviceCount(&count))) + // CUDA makes no guarantees about the state of the output parameter if + // `cudaGetDeviceCount` fails; in practice, they don't, but out of + // paranoia we'll reset `count` to `-1`. + count = -1; + return count; +} + +/** + * \brief Cache for an arbitrary value produced by a nullary function. + */ +template +struct ValueCache +{ + T const value; + + /** + * \brief Call the nullary function to produce the value and construct the + * cache. + */ + __host__ inline ValueCache() : value(Function()) {} +}; + +// Host code, only safely usable in C++11 or newer, where thread-safe +// initialization of static locals is guaranteed. This is a separate function +// to avoid defining a local static in a host/device function. +__host__ inline int DeviceCountCachedValue() +{ + static ValueCache cache; + return cache.value; +} + +/** + * \brief Returns the number of CUDA devices available. + * + * \note This function may cache the result internally. + * + * \note This function is thread safe. + */ +CUB_RUNTIME_FUNCTION inline int DeviceCount() +{ + int result = -1; + + NV_IF_TARGET(NV_IS_HOST, + (result = DeviceCountCachedValue();), + (result = DeviceCountUncached();)); + + return result; +} + +/** + * \brief Per-device cache for a CUDA attribute value; the attribute is queried + * and stored for each device upon construction. + */ +struct PerDeviceAttributeCache +{ + struct DevicePayload + { + int attribute; + cudaError_t error; + }; + + // Each entry starts in the `DeviceEntryEmpty` state, then proceeds to the + // `DeviceEntryInitializing` state, and then proceeds to the + // `DeviceEntryReady` state. These are the only state transitions allowed; + // e.g. a linear sequence of transitions. + enum DeviceEntryStatus + { + DeviceEntryEmpty = 0, + DeviceEntryInitializing, + DeviceEntryReady + }; + + struct DeviceEntry + { + std::atomic flag; + DevicePayload payload; + }; + +private: + std::array entries_; + +public: + /** + * \brief Construct the cache. + */ + __host__ inline PerDeviceAttributeCache() : entries_() + { + assert(DeviceCount() <= CUB_MAX_DEVICES); + } + + /** + * \brief Retrieves the payload of the cached function \p f for \p device. + * + * \note You must pass a morally equivalent function in to every call or + * this function has undefined behavior. + */ + template + __host__ DevicePayload operator()(Invocable&& f, int device) + { + if (device >= DeviceCount()) + return DevicePayload{0, cudaErrorInvalidDevice}; + + auto& entry = entries_[device]; + auto& flag = entry.flag; + auto& payload = entry.payload; + + DeviceEntryStatus old_status = DeviceEntryEmpty; + + // First, check for the common case of the entry being ready. + if (flag.load(std::memory_order_acquire) != DeviceEntryReady) + { + // Assume the entry is empty and attempt to lock it so we can fill + // it by trying to set the state from `DeviceEntryReady` to + // `DeviceEntryInitializing`. + if (flag.compare_exchange_strong(old_status, DeviceEntryInitializing, + std::memory_order_acq_rel, + std::memory_order_acquire)) + { + // We successfully set the state to `DeviceEntryInitializing`; + // we have the lock and it's our job to initialize this entry + // and then release it. + + // We don't use `CubDebug` here because we let the user code + // decide whether or not errors are hard errors. + payload.error = ::cuda::std::forward(f)(payload.attribute); + if (payload.error) + // Clear the global CUDA error state which may have been + // set by the last call. Otherwise, errors may "leak" to + // unrelated kernel launches. + cudaGetLastError(); + + // Release the lock by setting the state to `DeviceEntryReady`. + flag.store(DeviceEntryReady, std::memory_order_release); + } + + // If the `compare_exchange_weak` failed, then `old_status` has + // been updated with the value of `flag` that it observed. + + else if (old_status == DeviceEntryInitializing) + { + // Another execution agent is initializing this entry; we need + // to wait for them to finish; we'll know they're done when we + // observe the entry status as `DeviceEntryReady`. + do { old_status = flag.load(std::memory_order_acquire); } + while (old_status != DeviceEntryReady); + // FIXME: Use `atomic::wait` instead when we have access to + // host-side C++20 atomics. We could use libcu++, but it only + // supports atomics for SM60 and up, even if you're only using + // them in host code. + } + } + + // We now know that the state of our entry is `DeviceEntryReady`, so + // just return the entry's payload. + return entry.payload; + } +}; + +/** + * \brief Retrieves the PTX version that will be used on the current device (major * 100 + minor * 10). + */ +CUB_RUNTIME_FUNCTION inline cudaError_t PtxVersionUncached(int& ptx_version) +{ + // Instantiate `EmptyKernel` in both host and device code to ensure + // it can be called. + typedef void (*EmptyKernelPtr)(); + EmptyKernelPtr empty_kernel = EmptyKernel; + + // This is necessary for unused variable warnings in host compilers. The + // usual syntax of (void)empty_kernel; was not sufficient on MSVC2015. + (void)reinterpret_cast(empty_kernel); + + // Define a temporary macro that expands to the current target ptx version + // in device code. + // may provide an abstraction for this eventually. For now, + // we have to keep this usage of __CUDA_ARCH__. +#if defined(_NVHPC_CUDA) +#define CUB_TEMP_GET_PTX __builtin_current_device_sm() +#else +#define CUB_TEMP_GET_PTX __CUDA_ARCH__ +#endif + + cudaError_t result = cudaSuccess; + NV_IF_TARGET( + NV_IS_HOST, + ( + cudaFuncAttributes empty_kernel_attrs; + + result = cudaFuncGetAttributes(&empty_kernel_attrs, + reinterpret_cast(empty_kernel)); + CubDebug(result); + + ptx_version = empty_kernel_attrs.ptxVersion * 10; + ), + // NV_IS_DEVICE + ( + // This is necessary to ensure instantiation of EmptyKernel in device + // code. The `reinterpret_cast` is necessary to suppress a + // set-but-unused warnings. This is a meme now: + // https://twitter.com/blelbach/status/1222391615576100864 + (void)reinterpret_cast(empty_kernel); + + ptx_version = CUB_TEMP_GET_PTX; + )); + +#undef CUB_TEMP_GET_PTX + + return result; +} + +/** + * \brief Retrieves the PTX version that will be used on \p device (major * 100 + minor * 10). + */ +__host__ inline cudaError_t PtxVersionUncached(int& ptx_version, int device) +{ + SwitchDevice sd(device); + (void)sd; + return PtxVersionUncached(ptx_version); +} + +template +__host__ inline PerDeviceAttributeCache& GetPerDeviceAttributeCache() +{ + // C++11 guarantees that initialization of static locals is thread safe. + static PerDeviceAttributeCache cache; + return cache; +} + +struct PtxVersionCacheTag {}; +struct SmVersionCacheTag {}; + +/** + * \brief Retrieves the PTX version that will be used on \p device (major * 100 + minor * 10). + * + * \note This function may cache the result internally. + * + * \note This function is thread safe. + */ +__host__ inline cudaError_t PtxVersion(int& ptx_version, int device) +{ + auto const payload = GetPerDeviceAttributeCache()( + // If this call fails, then we get the error code back in the payload, + // which we check with `CubDebug` below. + [=] (int& pv) { return PtxVersionUncached(pv, device); }, + device); + + if (!CubDebug(payload.error)) + ptx_version = payload.attribute; + + return payload.error; +} + +/** + * \brief Retrieves the PTX version that will be used on the current device (major * 100 + minor * 10). + * + * \note This function may cache the result internally. + * + * \note This function is thread safe. + */ +CUB_RUNTIME_FUNCTION inline cudaError_t PtxVersion(int &ptx_version) +{ + cudaError_t result = cudaErrorUnknown; + NV_IF_TARGET( + NV_IS_HOST, + ( + auto const device = CurrentDevice(); + auto const payload = GetPerDeviceAttributeCache()( + // If this call fails, then we get the error code back in the payload, + // which we check with `CubDebug` below. + [=](int &pv) { return PtxVersionUncached(pv, device); }, + device); + + if (!CubDebug(payload.error)) + { + ptx_version = payload.attribute; + } + + result = payload.error; + ), + ( // NV_IS_DEVICE: + result = PtxVersionUncached(ptx_version); + )); + + return result; +} + +/** + * \brief Retrieves the SM version of \p device (major * 100 + minor * 10) + */ +CUB_RUNTIME_FUNCTION inline cudaError_t SmVersionUncached(int& sm_version, int device = CurrentDevice()) +{ + cudaError_t error = cudaSuccess; + do + { + int major = 0, minor = 0; + if (CubDebug(error = cudaDeviceGetAttribute(&major, cudaDevAttrComputeCapabilityMajor, device))) break; + if (CubDebug(error = cudaDeviceGetAttribute(&minor, cudaDevAttrComputeCapabilityMinor, device))) break; + sm_version = major * 100 + minor * 10; + } + while (0); + + return error; +} + +/** + * \brief Retrieves the SM version of \p device (major * 100 + minor * 10) + * + * \note This function may cache the result internally. + * + * \note This function is thread safe. + */ +CUB_RUNTIME_FUNCTION inline cudaError_t SmVersion(int &sm_version, + int device = CurrentDevice()) +{ + cudaError_t result = cudaErrorUnknown; + + NV_IF_TARGET( + NV_IS_HOST, + ( + auto const payload = GetPerDeviceAttributeCache()( + // If this call fails, then we get the error code back in + // the payload, which we check with `CubDebug` below. + [=](int &pv) { return SmVersionUncached(pv, device); }, + device); + + if (!CubDebug(payload.error)) + { + sm_version = payload.attribute; + }; + + result = payload.error; + ), + ( // NV_IS_DEVICE + result = SmVersionUncached(sm_version, device); + )); + + return result; +} + +/** + * Synchronize the specified \p stream. + */ +CUB_RUNTIME_FUNCTION inline cudaError_t SyncStream(cudaStream_t stream) +{ + cudaError_t result = cudaErrorNotSupported; + + NV_IF_TARGET(NV_IS_HOST, + (result = CubDebug(cudaStreamSynchronize(stream));), + ((void)stream; + result = CubDebug(cub::detail::device_synchronize());)); + + return result; +} + +namespace detail +{ + +/** + * Same as SyncStream, but intended for use with the debug_synchronous flags + * in device algorithms. This should not be used if synchronization is required + * for correctness. + * + * If `debug_synchronous` is false, this function will immediately return + * cudaSuccess. If true, one of the following will occur: + * + * If synchronization is supported by the current compilation target and + * settings, the sync is performed and the sync result is returned. + * + * If syncs are not supported then no sync is performed, but a message is logged + * via _CubLog and cudaSuccess is returned. + */ +CUB_RUNTIME_FUNCTION inline cudaError_t DebugSyncStream(cudaStream_t stream) +{ +#ifndef CUB_DETAIL_DEBUG_ENABLE_SYNC + + (void)stream; + return cudaSuccess; + +#else // CUB_DETAIL_DEBUG_ENABLE_SYNC: + +#define CUB_TMP_SYNC_AVAILABLE \ + _CubLog("%s\n", "Synchronizing..."); \ + return SyncStream(stream) + +#define CUB_TMP_DEVICE_SYNC_UNAVAILABLE \ + (void)stream; \ + _CubLog("WARNING: Skipping CUB `debug_synchronous` synchronization (%s).\n", \ + "device-side sync requires // or equivalently + * + * template + * __global__ void ExampleKernel() + * { + * // Allocate shared memory for BlockScan + * __shared__ volatile T buffer[4096]; + * + * ... + * } + * + * ... + * + * // Determine SM occupancy for ExampleKernel specialized for unsigned char + * int max_sm_occupancy; + * MaxSmOccupancy(max_sm_occupancy, ExampleKernel, 64); + * + * // max_sm_occupancy <-- 4 on SM10 + * // max_sm_occupancy <-- 8 on SM20 + * // max_sm_occupancy <-- 12 on SM35 + * + * \endcode + * + */ +template +CUB_RUNTIME_FUNCTION inline +cudaError_t MaxSmOccupancy( + int& max_sm_occupancy, ///< [out] maximum number of thread blocks that can reside on a single SM + KernelPtr kernel_ptr, ///< [in] Kernel pointer for which to compute SM occupancy + int block_threads, ///< [in] Number of threads per thread block + int dynamic_smem_bytes = 0) ///< [in] Dynamically allocated shared memory in bytes. Default is 0. +{ + return CubDebug(cudaOccupancyMaxActiveBlocksPerMultiprocessor( + &max_sm_occupancy, + kernel_ptr, + block_threads, + dynamic_smem_bytes)); +} + + +/****************************************************************************** + * Policy management + ******************************************************************************/ + +/** + * Kernel dispatch configuration + */ +struct KernelConfig +{ + int block_threads; + int items_per_thread; + int tile_size; + int sm_occupancy; + + CUB_RUNTIME_FUNCTION __forceinline__ + KernelConfig() : block_threads(0), items_per_thread(0), tile_size(0), sm_occupancy(0) {} + + template + CUB_RUNTIME_FUNCTION __forceinline__ + cudaError_t Init(KernelPtrT kernel_ptr) + { + block_threads = AgentPolicyT::BLOCK_THREADS; + items_per_thread = AgentPolicyT::ITEMS_PER_THREAD; + tile_size = block_threads * items_per_thread; + cudaError_t retval = MaxSmOccupancy(sm_occupancy, kernel_ptr, block_threads); + return retval; + } +}; + + + +/// Helper for dispatching into a policy chain +template +struct ChainedPolicy +{ + /// The policy for the active compiler pass + using ActivePolicy = + cub::detail::conditional_t<(CUB_PTX_ARCH < PTX_VERSION), + typename PrevPolicyT::ActivePolicy, + PolicyT>; + + /// Specializes and dispatches op in accordance to the first policy in the chain of adequate PTX version + template + CUB_RUNTIME_FUNCTION __forceinline__ + static cudaError_t Invoke(int ptx_version, FunctorT& op) + { + if (ptx_version < PTX_VERSION) { + return PrevPolicyT::Invoke(ptx_version, op); + } + return op.template Invoke(); + } +}; + +/// Helper for dispatching into a policy chain (end-of-chain specialization) +template +struct ChainedPolicy +{ + /// The policy for the active compiler pass + typedef PolicyT ActivePolicy; + + /// Specializes and dispatches op in accordance to the first policy in the chain of adequate PTX version + template + CUB_RUNTIME_FUNCTION __forceinline__ + static cudaError_t Invoke(int /*ptx_version*/, FunctorT& op) { + return op.template Invoke(); + } +}; + + + + +/** @} */ // end group UtilMgmt + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/util_macro.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/util_macro.cuh new file mode 100644 index 0000000000000000000000000000000000000000..c486aa439f672abe07d60ac9c6aff448ddfcb55f --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/util_macro.cuh @@ -0,0 +1,118 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/****************************************************************************** + * Common C/C++ macro utilities + ******************************************************************************/ + +#pragma once + +#include + +#include "util_namespace.cuh" + +CUB_NAMESPACE_BEGIN + + +/** + * \addtogroup UtilModule + * @{ + */ + +#ifndef CUB_ALIGN + #if defined(_WIN32) || defined(_WIN64) + /// Align struct + #define CUB_ALIGN(bytes) __declspec(align(32)) + #else + /// Align struct + #define CUB_ALIGN(bytes) __attribute__((aligned(bytes))) + #endif +#endif + +#define CUB_PREVENT_MACRO_SUBSTITUTION + +template +constexpr __host__ __device__ auto min CUB_PREVENT_MACRO_SUBSTITUTION(T &&t, + U &&u) + -> decltype(t < u ? ::cuda::std::forward(t) : ::cuda::std::forward(u)) +{ + return t < u ? ::cuda::std::forward(t) : ::cuda::std::forward(u); +} + +template +constexpr __host__ __device__ auto max CUB_PREVENT_MACRO_SUBSTITUTION(T &&t, + U &&u) + -> decltype(t < u ? ::cuda::std::forward(u) : ::cuda::std::forward(t)) +{ + return t < u ? ::cuda::std::forward(u) : ::cuda::std::forward(t); +} + +#ifndef CUB_MAX + /// Select maximum(a, b) + #define CUB_MAX(a, b) (((b) > (a)) ? (b) : (a)) +#endif + +#ifndef CUB_MIN + /// Select minimum(a, b) + #define CUB_MIN(a, b) (((b) < (a)) ? (b) : (a)) +#endif + +#ifndef CUB_QUOTIENT_FLOOR + /// Quotient of x/y rounded down to nearest integer + #define CUB_QUOTIENT_FLOOR(x, y) ((x) / (y)) +#endif + +#ifndef CUB_QUOTIENT_CEILING + /// Quotient of x/y rounded up to nearest integer + #define CUB_QUOTIENT_CEILING(x, y) (((x) + (y) - 1) / (y)) +#endif + +#ifndef CUB_ROUND_UP_NEAREST + /// x rounded up to the nearest multiple of y + #define CUB_ROUND_UP_NEAREST(x, y) ((((x) + (y) - 1) / (y)) * y) +#endif + +#ifndef CUB_ROUND_DOWN_NEAREST + /// x rounded down to the nearest multiple of y + #define CUB_ROUND_DOWN_NEAREST(x, y) (((x) / (y)) * y) +#endif + + +#ifndef CUB_STATIC_ASSERT + #ifndef DOXYGEN_SHOULD_SKIP_THIS // Do not document + #define CUB_CAT_(a, b) a ## b + #define CUB_CAT(a, b) CUB_CAT_(a, b) + #endif // DOXYGEN_SHOULD_SKIP_THIS + + /// Static assert + #define CUB_STATIC_ASSERT(cond, msg) typedef int CUB_CAT(cub_static_assert, __LINE__)[(cond) ? 1 : -1] +#endif + +/** @} */ // end group UtilModule + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/util_math.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/util_math.cuh new file mode 100644 index 0000000000000000000000000000000000000000..d69fc2ee2d5976e85d7e3452c4b2f3426a80c445 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/util_math.cuh @@ -0,0 +1,123 @@ +/****************************************************************************** + * Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + *AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + *IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * Define helper math functions. + */ + +#pragma once + +#include + +#include "util_namespace.cuh" +#include "util_macro.cuh" + +CUB_NAMESPACE_BEGIN + +namespace detail +{ + +template +using is_integral_or_enum = + std::integral_constant::value || std::is_enum::value>; + +__host__ __device__ __forceinline__ constexpr std::size_t +VshmemSize(std::size_t max_shmem, + std::size_t shmem_per_block, + std::size_t num_blocks) +{ + return shmem_per_block > max_shmem ? shmem_per_block * num_blocks : 0; +} + +} + +/** + * Divide n by d, round up if any remainder, and return the result. + * + * Effectively performs `(n + d - 1) / d`, but is robust against the case where + * `(n + d - 1)` would overflow. + */ +template +__host__ __device__ __forceinline__ constexpr NumeratorT +DivideAndRoundUp(NumeratorT n, DenominatorT d) +{ + static_assert(cub::detail::is_integral_or_enum::value && + cub::detail::is_integral_or_enum::value, + "DivideAndRoundUp is only intended for integral types."); + + // Static cast to undo integral promotion. + return static_cast(n / d + (n % d != 0 ? 1 : 0)); +} + +constexpr __device__ __host__ int +Nominal4BItemsToItemsCombined(int nominal_4b_items_per_thread, int combined_bytes) +{ + return (cub::min)(nominal_4b_items_per_thread, + (cub::max)(1, + nominal_4b_items_per_thread * 8 / + combined_bytes)); +} + +template +constexpr __device__ __host__ int +Nominal4BItemsToItems(int nominal_4b_items_per_thread) +{ + return (cub::min)(nominal_4b_items_per_thread, + (cub::max)(1, + nominal_4b_items_per_thread * 4 / + static_cast(sizeof(T)))); +} + +template +constexpr __device__ __host__ int +Nominal8BItemsToItems(int nominal_8b_items_per_thread) +{ + return sizeof(ItemT) <= 8u + ? nominal_8b_items_per_thread + : (cub::min)(nominal_8b_items_per_thread, + (cub::max)(1, + ((nominal_8b_items_per_thread * 8) + + static_cast(sizeof(ItemT)) - 1) / + static_cast(sizeof(ItemT)))); +} + +/** + * \brief Computes the midpoint of the integers + * + * Extra operation is performed in order to prevent overflow. + * + * \return Half the sum of \p begin and \p end + */ +template +constexpr __device__ __host__ T MidPoint(T begin, T end) +{ + return begin + (end - begin) / 2; +} + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/util_namespace.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/util_namespace.cuh new file mode 100644 index 0000000000000000000000000000000000000000..cc8e353767fc98690721e5aaea02e51234f99af0 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/util_namespace.cuh @@ -0,0 +1,216 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2021, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file util_namespace.cuh + * \brief Utilities that allow `cub::` to be placed inside an + * application-specific namespace. + */ + + +#pragma once + +// This is not used by this file; this is a hack so that we can detect the +// CUB version from Thrust on older versions of CUB that did not have +// version.cuh. +#include "version.cuh" + +// Prior to 1.13.1, only the PREFIX/POSTFIX macros were used. Notify users +// that they must now define the qualifier macro, too. +#if (defined(CUB_NS_PREFIX) || defined(CUB_NS_POSTFIX)) && !defined(CUB_NS_QUALIFIER) +#error CUB requires a definition of CUB_NS_QUALIFIER when CUB_NS_PREFIX/POSTFIX are defined. +#endif + +/** + * \def THRUST_CUB_WRAPPED_NAMESPACE + * If defined, this value will be used as the name of a namespace that wraps the + * `thrust::` and `cub::` namespaces. + * This macro should not be used with any other CUB namespace macros. + */ +#ifdef THRUST_CUB_WRAPPED_NAMESPACE +#define CUB_WRAPPED_NAMESPACE THRUST_CUB_WRAPPED_NAMESPACE +#endif + +/** + * \def CUB_WRAPPED_NAMESPACE + * If defined, this value will be used as the name of a namespace that wraps the + * `cub::` namespace. + * If THRUST_CUB_WRAPPED_NAMESPACE is set, this will inherit that macro's value. + * This macro should not be used with any other CUB namespace macros. + */ +#ifdef CUB_WRAPPED_NAMESPACE +#define CUB_NS_PREFIX \ + namespace CUB_WRAPPED_NAMESPACE \ + { + +#define CUB_NS_POSTFIX } + +#define CUB_NS_QUALIFIER ::CUB_WRAPPED_NAMESPACE::cub +#endif + +/** + * \def CUB_NS_PREFIX + * This macro is inserted prior to all `namespace cub { ... }` blocks. It is + * derived from CUB_WRAPPED_NAMESPACE, if set, and will be empty otherwise. + * It may be defined by users, in which case CUB_NS_PREFIX, + * CUB_NS_POSTFIX, and CUB_NS_QUALIFIER must all be set consistently. + */ +#ifndef CUB_NS_PREFIX +#define CUB_NS_PREFIX +#endif + +/** + * \def CUB_NS_POSTFIX + * This macro is inserted following the closing braces of all + * `namespace cub { ... }` block. It is defined appropriately when + * CUB_WRAPPED_NAMESPACE is set, and will be empty otherwise. It may be + * defined by users, in which case CUB_NS_PREFIX, CUB_NS_POSTFIX, and + * CUB_NS_QUALIFIER must all be set consistently. + */ +#ifndef CUB_NS_POSTFIX +#define CUB_NS_POSTFIX +#endif + +/** + * \def CUB_NS_QUALIFIER + * This macro is used to qualify members of cub:: when accessing them from + * outside of their namespace. By default, this is just `::cub`, and will be + * set appropriately when CUB_WRAPPED_NAMESPACE is defined. This macro may be + * defined by users, in which case CUB_NS_PREFIX, CUB_NS_POSTFIX, and + * CUB_NS_QUALIFIER must all be set consistently. + */ +#ifndef CUB_NS_QUALIFIER +#define CUB_NS_QUALIFIER ::cub +#endif + +#if !defined(CUB_DETAIL_MAGIC_NS_NAME) +#define CUB_DETAIL_COUNT_N(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, \ + _14, _15, _16, _17, _18, _19, _20, N, ...) \ + N +#define CUB_DETAIL_COUNT(...) \ + CUB_DETAIL_IDENTITY(CUB_DETAIL_COUNT_N(__VA_ARGS__, 20, 19, 18, 17, 16, 15, 14, 13, 12, \ + 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1)) +#define CUB_DETAIL_IDENTITY(N) N +#define CUB_DETAIL_APPLY(MACRO, ...) CUB_DETAIL_IDENTITY(MACRO(__VA_ARGS__)) +#define CUB_DETAIL_MAGIC_NS_NAME1(P1) \ + CUB_##P1##_NS +#define CUB_DETAIL_MAGIC_NS_NAME2(P1, P2) \ + CUB_##P1##_##P2##_NS +#define CUB_DETAIL_MAGIC_NS_NAME3(P1, P2, P3) \ + CUB_##P1##_##P2##_##P3##_NS +#define CUB_DETAIL_MAGIC_NS_NAME4(P1, P2, P3, P4) \ + CUB_##P1##_##P2##_##P3##_##P4##_NS +#define CUB_DETAIL_MAGIC_NS_NAME5(P1, P2, P3, P4, P5) \ + CUB_##P1##_##P2##_##P3##_##P4##_##P5##_NS +#define CUB_DETAIL_MAGIC_NS_NAME6(P1, P2, P3, P4, P5, P6) \ + CUB_##P1##_##P2##_##P3##_##P4##_##P5##_##P6##_NS +#define CUB_DETAIL_MAGIC_NS_NAME7(P1, P2, P3, P4, P5, P6, P7) \ + CUB_##P1##_##P2##_##P3##_##P4##_##P5##_##P6##_##P7##_NS +#define CUB_DETAIL_MAGIC_NS_NAME8(P1, P2, P3, P4, P5, P6, P7, P8) \ + CUB_##P1##_##P2##_##P3##_##P4##_##P5##_##P6##_##P7##_##P8##_NS +#define CUB_DETAIL_MAGIC_NS_NAME9(P1, P2, P3, P4, P5, P6, P7, P8, P9) \ + CUB_##P1##_##P2##_##P3##_##P4##_##P5##_##P6##_##P7##_##P8##_##P9##_NS +#define CUB_DETAIL_MAGIC_NS_NAME10(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10) \ + CUB_##P1##_##P2##_##P3##_##P4##_##P5##_##P6##_##P7##_##P8##_##P9##_##P10##_NS +#define CUB_DETAIL_MAGIC_NS_NAME11(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11) \ + CUB_##P1##_##P2##_##P3##_##P4##_##P5##_##P6##_##P7##_##P8##_##P9##_##P10##_##P11##_NS +#define CUB_DETAIL_MAGIC_NS_NAME12(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12) \ + CUB_##P1##_##P2##_##P3##_##P4##_##P5##_##P6##_##P7##_##P8##_##P9##_##P10##_##P11##_##P12##_NS +#define CUB_DETAIL_MAGIC_NS_NAME13(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13) \ + CUB_##P1##_##P2##_##P3##_##P4##_##P5##_##P6##_##P7##_##P8##_##P9##_##P10##_##P11##_##P12##_##P13##_NS +#define CUB_DETAIL_MAGIC_NS_NAME14(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14) \ + CUB_##P1##_##P2##_##P3##_##P4##_##P5##_##P6##_##P7##_##P8##_##P9##_##P10##_##P11##_##P12##_##P13##_##P14##_NS +#define CUB_DETAIL_MAGIC_NS_NAME15(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15) \ + CUB_##P1##_##P2##_##P3##_##P4##_##P5##_##P6##_##P7##_##P8##_##P9##_##P10##_##P11##_##P12##_##P13##_##P14##_##P15##_NS +#define CUB_DETAIL_MAGIC_NS_NAME16(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16) \ + CUB_##P1##_##P2##_##P3##_##P4##_##P5##_##P6##_##P7##_##P8##_##P9##_##P10##_##P11##_##P12##_##P13##_##P14##_##P15##_##P16##_NS +#define CUB_DETAIL_MAGIC_NS_NAME17(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17) \ + CUB_##P1##_##P2##_##P3##_##P4##_##P5##_##P6##_##P7##_##P8##_##P9##_##P10##_##P11##_##P12##_##P13##_##P14##_##P15##_##P16##_##P17##_NS +#define CUB_DETAIL_MAGIC_NS_NAME18(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18) \ + CUB_##P1##_##P2##_##P3##_##P4##_##P5##_##P6##_##P7##_##P8##_##P9##_##P10##_##P11##_##P12##_##P13##_##P14##_##P15##_##P16##_##P17##_##P18##_NS +#define CUB_DETAIL_MAGIC_NS_NAME19(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18, P19) \ + CUB_##P1##_##P2##_##P3##_##P4##_##P5##_##P6##_##P7##_##P8##_##P9##_##P10##_##P11##_##P12##_##P13##_##P14##_##P15##_##P16##_##P17##_##P18##_##P19##_NS +#define CUB_DETAIL_MAGIC_NS_NAME20(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18, P19, P20) \ + CUB_##P1##_##P2##_##P3##_##P4##_##P5##_##P6##_##P7##_##P8##_##P9##_##P10##_##P11##_##P12##_##P13##_##P14##_##P15##_##P16##_##P17##_##P18##_##P19##_##P20##_NS +#define CUB_DETAIL_DISPATCH(N) CUB_DETAIL_MAGIC_NS_NAME ## N +#define CUB_DETAIL_MAGIC_NS_NAME(...) CUB_DETAIL_IDENTITY(CUB_DETAIL_APPLY(CUB_DETAIL_DISPATCH, CUB_DETAIL_COUNT(__VA_ARGS__))(__VA_ARGS__)) +#endif // !defined(CUB_DETAIL_MAGIC_NS_NAME) + +#if defined(CUB_DISABLE_NAMESPACE_MAGIC) +#if !defined(CUB_WRAPPED_NAMESPACE) +#if !defined(CUB_IGNORE_NAMESPACE_MAGIC_ERROR) +#error "Disabling namespace magic is unsafe without wrapping namespace" +#endif // !defined(CUB_IGNORE_NAMESPACE_MAGIC_ERROR) +#endif // !defined(CUB_WRAPPED_NAMESPACE) +#define CUB_DETAIL_MAGIC_NS_BEGIN +#define CUB_DETAIL_MAGIC_NS_END +#else // not defined(CUB_DISABLE_NAMESPACE_MAGIC) +#if defined(_NVHPC_CUDA) +#define CUB_DETAIL_MAGIC_NS_BEGIN inline namespace CUB_DETAIL_MAGIC_NS_NAME(CUB_VERSION, NV_TARGET_SM_INTEGER_LIST) { +#define CUB_DETAIL_MAGIC_NS_END } +#else // not defined(_NVHPC_CUDA) +#define CUB_DETAIL_MAGIC_NS_BEGIN inline namespace CUB_DETAIL_MAGIC_NS_NAME(CUB_VERSION, __CUDA_ARCH_LIST__) { +#define CUB_DETAIL_MAGIC_NS_END } +#endif // not defined(_NVHPC_CUDA) +#endif // not defined(CUB_DISABLE_NAMESPACE_MAGIC) + +/** + * \def CUB_NAMESPACE_BEGIN + * This macro is used to open a `cub::` namespace block, along with any + * enclosing namespaces requested by CUB_WRAPPED_NAMESPACE, etc. + * This macro is defined by CUB and may not be overridden. + */ +#define CUB_NAMESPACE_BEGIN \ + CUB_NS_PREFIX \ + namespace cub \ + { \ + CUB_DETAIL_MAGIC_NS_BEGIN + +/** + * \def CUB_NAMESPACE_END + * This macro is used to close a `cub::` namespace block, along with any + * enclosing namespaces requested by CUB_WRAPPED_NAMESPACE, etc. + * This macro is defined by CUB and may not be overridden. + */ +#define CUB_NAMESPACE_END \ + CUB_DETAIL_MAGIC_NS_END \ + } /* end namespace cub */ \ + CUB_NS_POSTFIX + +// Declare these namespaces here for the purpose of Doxygenating them +CUB_NS_PREFIX + +/*! \namespace cub + * \brief \p cub is the top-level namespace which contains all CUB + * functions and types. + */ +namespace cub +{ +} + +CUB_NS_POSTFIX diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/util_ptx.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/util_ptx.cuh new file mode 100644 index 0000000000000000000000000000000000000000..0fb9b35735008cb4b6ed97a7e24a591a4231e239 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/util_ptx.cuh @@ -0,0 +1,806 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * PTX intrinsics + */ + + +#pragma once + +#include "util_type.cuh" +#include "util_arch.cuh" +#include "util_namespace.cuh" +#include "util_debug.cuh" + + +CUB_NAMESPACE_BEGIN + + +/** + * \addtogroup UtilPtx + * @{ + */ + + +/****************************************************************************** + * PTX helper macros + ******************************************************************************/ + +#ifndef DOXYGEN_SHOULD_SKIP_THIS // Do not document + +/** + * Register modifier for pointer-types (for inlining PTX assembly) + */ +#if defined(_WIN64) || defined(__LP64__) + #define __CUB_LP64__ 1 + // 64-bit register modifier for inlined asm + #define _CUB_ASM_PTR_ "l" + #define _CUB_ASM_PTR_SIZE_ "u64" +#else + #define __CUB_LP64__ 0 + // 32-bit register modifier for inlined asm + #define _CUB_ASM_PTR_ "r" + #define _CUB_ASM_PTR_SIZE_ "u32" +#endif + +#endif // DOXYGEN_SHOULD_SKIP_THIS + + +/****************************************************************************** + * Inlined PTX intrinsics + ******************************************************************************/ + +namespace detail +{ +/** + * @brief Shifts @p val left by the amount specified by unsigned 32-bit value in @p num_bits. If @p + * num_bits is larger than 32 bits, @p num_bits is clamped to 32. + */ +__device__ __forceinline__ uint32_t LogicShiftLeft(uint32_t val, uint32_t num_bits) +{ + uint32_t ret{}; + asm("shl.b32 %0, %1, %2;" : "=r"(ret) : "r"(val), "r"(num_bits)); + return ret; +} + +/** + * @brief Shifts @p val right by the amount specified by unsigned 32-bit value in @p num_bits. If @p + * num_bits is larger than 32 bits, @p num_bits is clamped to 32. + */ +__device__ __forceinline__ uint32_t LogicShiftRight(uint32_t val, uint32_t num_bits) +{ + uint32_t ret{}; + asm("shr.b32 %0, %1, %2;" : "=r"(ret) : "r"(val), "r"(num_bits)); + return ret; +} +} // namespace detail + +/** + * \brief Shift-right then add. Returns (\p x >> \p shift) + \p addend. + */ +__device__ __forceinline__ unsigned int SHR_ADD( + unsigned int x, + unsigned int shift, + unsigned int addend) +{ + unsigned int ret; + asm ("vshr.u32.u32.u32.clamp.add %0, %1, %2, %3;" : + "=r"(ret) : "r"(x), "r"(shift), "r"(addend)); + return ret; +} + + +/** + * \brief Shift-left then add. Returns (\p x << \p shift) + \p addend. + */ +__device__ __forceinline__ unsigned int SHL_ADD( + unsigned int x, + unsigned int shift, + unsigned int addend) +{ + unsigned int ret; + asm ("vshl.u32.u32.u32.clamp.add %0, %1, %2, %3;" : + "=r"(ret) : "r"(x), "r"(shift), "r"(addend)); + return ret; +} + +#ifndef DOXYGEN_SHOULD_SKIP_THIS // Do not document + +/** + * Bitfield-extract. + */ +template +__device__ __forceinline__ unsigned int BFE( + UnsignedBits source, + unsigned int bit_start, + unsigned int num_bits, + Int2Type /*byte_len*/) +{ + unsigned int bits; + asm ("bfe.u32 %0, %1, %2, %3;" : "=r"(bits) : "r"((unsigned int) source), "r"(bit_start), "r"(num_bits)); + return bits; +} + + +/** + * Bitfield-extract for 64-bit types. + */ +template +__device__ __forceinline__ unsigned int BFE( + UnsignedBits source, + unsigned int bit_start, + unsigned int num_bits, + Int2Type<8> /*byte_len*/) +{ + const unsigned long long MASK = (1ull << num_bits) - 1; + return (source >> bit_start) & MASK; +} + +#if CUB_IS_INT128_ENABLED +/** + * Bitfield-extract for 128-bit types. + */ +template +__device__ __forceinline__ unsigned int BFE( + UnsignedBits source, + unsigned int bit_start, + unsigned int num_bits, + Int2Type<16> /*byte_len*/) +{ + const __uint128_t MASK = (__uint128_t{1} << num_bits) - 1; + return (source >> bit_start) & MASK; +} +#endif + +#endif // DOXYGEN_SHOULD_SKIP_THIS + +/** + * \brief Bitfield-extract. Extracts \p num_bits from \p source starting at bit-offset \p bit_start. The input \p source may be an 8b, 16b, 32b, or 64b unsigned integer type. + */ +template +__device__ __forceinline__ unsigned int BFE( + UnsignedBits source, + unsigned int bit_start, + unsigned int num_bits) +{ + return BFE(source, bit_start, num_bits, Int2Type()); +} + + +/** + * \brief Bitfield insert. Inserts the \p num_bits least significant bits of \p y into \p x at bit-offset \p bit_start. + */ +__device__ __forceinline__ void BFI( + unsigned int &ret, + unsigned int x, + unsigned int y, + unsigned int bit_start, + unsigned int num_bits) +{ + asm ("bfi.b32 %0, %1, %2, %3, %4;" : + "=r"(ret) : "r"(y), "r"(x), "r"(bit_start), "r"(num_bits)); +} + + +/** + * \brief Three-operand add. Returns \p x + \p y + \p z. + */ +__device__ __forceinline__ unsigned int IADD3(unsigned int x, unsigned int y, unsigned int z) +{ + asm ("vadd.u32.u32.u32.add %0, %1, %2, %3;" : "=r"(x) : "r"(x), "r"(y), "r"(z)); + return x; +} + + +/** + * \brief Byte-permute. Pick four arbitrary bytes from two 32-bit registers, and reassemble them into a 32-bit destination register. For SM2.0 or later. + * + * \par + * The bytes in the two source registers \p a and \p b are numbered from 0 to 7: + * {\p b, \p a} = {{b7, b6, b5, b4}, {b3, b2, b1, b0}}. For each of the four bytes + * {b3, b2, b1, b0} selected in the return value, a 4-bit selector is defined within + * the four lower "nibbles" of \p index: {\p index } = {n7, n6, n5, n4, n3, n2, n1, n0} + * + * \par Snippet + * The code snippet below illustrates byte-permute. + * \par + * \code + * #include + * + * __global__ void ExampleKernel(...) + * { + * int a = 0x03020100; + * int b = 0x07060504; + * int index = 0x00007531; + * + * int selected = PRMT(a, b, index); // 0x07050301 + * + * \endcode + * + */ +__device__ __forceinline__ int PRMT(unsigned int a, unsigned int b, unsigned int index) +{ + int ret; + asm ("prmt.b32 %0, %1, %2, %3;" : "=r"(ret) : "r"(a), "r"(b), "r"(index)); + return ret; +} + +#ifndef DOXYGEN_SHOULD_SKIP_THIS // Do not document + +/** + * Sync-threads barrier. + */ +__device__ __forceinline__ void BAR(int count) +{ + asm volatile("bar.sync 1, %0;" : : "r"(count)); +} + +/** + * CTA barrier + */ +__device__ __forceinline__ void CTA_SYNC() +{ + __syncthreads(); +} + + +/** + * CTA barrier with predicate + */ +__device__ __forceinline__ int CTA_SYNC_AND(int p) +{ + return __syncthreads_and(p); +} + + +/** + * CTA barrier with predicate + */ +__device__ __forceinline__ int CTA_SYNC_OR(int p) +{ + return __syncthreads_or(p); +} + + +/** + * Warp barrier + */ +__device__ __forceinline__ void WARP_SYNC(unsigned int member_mask) +{ + __syncwarp(member_mask); +} + + +/** + * Warp any + */ +__device__ __forceinline__ int WARP_ANY(int predicate, unsigned int member_mask) +{ + return __any_sync(member_mask, predicate); +} + + +/** + * Warp any + */ +__device__ __forceinline__ int WARP_ALL(int predicate, unsigned int member_mask) +{ + return __all_sync(member_mask, predicate); +} + + +/** + * Warp ballot + */ +__device__ __forceinline__ int WARP_BALLOT(int predicate, unsigned int member_mask) +{ + return __ballot_sync(member_mask, predicate); +} + + +/** + * Warp synchronous shfl_up + */ +__device__ __forceinline__ +unsigned int SHFL_UP_SYNC(unsigned int word, int src_offset, int flags, unsigned int member_mask) +{ + asm volatile("shfl.sync.up.b32 %0, %1, %2, %3, %4;" + : "=r"(word) : "r"(word), "r"(src_offset), "r"(flags), "r"(member_mask)); + return word; +} + +/** + * Warp synchronous shfl_down + */ +__device__ __forceinline__ +unsigned int SHFL_DOWN_SYNC(unsigned int word, int src_offset, int flags, unsigned int member_mask) +{ + asm volatile("shfl.sync.down.b32 %0, %1, %2, %3, %4;" + : "=r"(word) : "r"(word), "r"(src_offset), "r"(flags), "r"(member_mask)); + return word; +} + +/** + * Warp synchronous shfl_idx + */ +__device__ __forceinline__ +unsigned int SHFL_IDX_SYNC(unsigned int word, int src_lane, int flags, unsigned int member_mask) +{ + asm volatile("shfl.sync.idx.b32 %0, %1, %2, %3, %4;" + : "=r"(word) : "r"(word), "r"(src_lane), "r"(flags), "r"(member_mask)); + return word; +} + +/** + * Warp synchronous shfl_idx + */ +__device__ __forceinline__ +unsigned int SHFL_IDX_SYNC(unsigned int word, int src_lane, unsigned int member_mask) +{ + return __shfl_sync(member_mask, word, src_lane); +} + +/** + * Floating point multiply. (Mantissa LSB rounds towards zero.) + */ +__device__ __forceinline__ float FMUL_RZ(float a, float b) +{ + float d; + asm ("mul.rz.f32 %0, %1, %2;" : "=f"(d) : "f"(a), "f"(b)); + return d; +} + + +/** + * Floating point multiply-add. (Mantissa LSB rounds towards zero.) + */ +__device__ __forceinline__ float FFMA_RZ(float a, float b, float c) +{ + float d; + asm ("fma.rz.f32 %0, %1, %2, %3;" : "=f"(d) : "f"(a), "f"(b), "f"(c)); + return d; +} + +#endif // DOXYGEN_SHOULD_SKIP_THIS + +/** + * \brief Terminates the calling thread + */ +__device__ __forceinline__ void ThreadExit() { + asm volatile("exit;"); +} + + +/** + * \brief Abort execution and generate an interrupt to the host CPU + */ +__device__ __forceinline__ void ThreadTrap() { + asm volatile("trap;"); +} + + +/** + * \brief Returns the row-major linear thread identifier for a multidimensional thread block + */ +__device__ __forceinline__ int RowMajorTid(int block_dim_x, int block_dim_y, int block_dim_z) +{ + return ((block_dim_z == 1) ? 0 : (threadIdx.z * block_dim_x * block_dim_y)) + + ((block_dim_y == 1) ? 0 : (threadIdx.y * block_dim_x)) + + threadIdx.x; +} + + +/** + * \brief Returns the warp lane ID of the calling thread + */ +__device__ __forceinline__ unsigned int LaneId() +{ + unsigned int ret; + asm ("mov.u32 %0, %%laneid;" : "=r"(ret) ); + return ret; +} + + +/** + * \brief Returns the warp ID of the calling thread. Warp ID is guaranteed to be unique among warps, but may not correspond to a zero-based ranking within the thread block. + */ +__device__ __forceinline__ unsigned int WarpId() +{ + unsigned int ret; + asm ("mov.u32 %0, %%warpid;" : "=r"(ret) ); + return ret; +} + +/** + * @brief Returns the warp mask for a warp of @p LOGICAL_WARP_THREADS threads + * + * @par + * If the number of threads assigned to the virtual warp is not a power of two, + * it's assumed that only one virtual warp exists. + * + * @tparam LOGICAL_WARP_THREADS [optional] The number of threads per + * "logical" warp (may be less than the number of + * hardware warp threads). + * @param warp_id Id of virtual warp within architectural warp + */ +template +__host__ __device__ __forceinline__ +unsigned int WarpMask(unsigned int warp_id) +{ + constexpr bool is_pow_of_two = PowerOfTwo::VALUE; + constexpr bool is_arch_warp = LOGICAL_WARP_THREADS == CUB_WARP_THREADS(0); + + unsigned int member_mask = 0xFFFFFFFFu >> + (CUB_WARP_THREADS(0) - LOGICAL_WARP_THREADS); + + if (is_pow_of_two && !is_arch_warp) + { + member_mask <<= warp_id * LOGICAL_WARP_THREADS; + } + + return member_mask; +} + +/** + * \brief Returns the warp lane mask of all lanes less than the calling thread + */ +__device__ __forceinline__ unsigned int LaneMaskLt() +{ + unsigned int ret; + asm ("mov.u32 %0, %%lanemask_lt;" : "=r"(ret) ); + return ret; +} + +/** + * \brief Returns the warp lane mask of all lanes less than or equal to the calling thread + */ +__device__ __forceinline__ unsigned int LaneMaskLe() +{ + unsigned int ret; + asm ("mov.u32 %0, %%lanemask_le;" : "=r"(ret) ); + return ret; +} + +/** + * \brief Returns the warp lane mask of all lanes greater than the calling thread + */ +__device__ __forceinline__ unsigned int LaneMaskGt() +{ + unsigned int ret; + asm ("mov.u32 %0, %%lanemask_gt;" : "=r"(ret) ); + return ret; +} + +/** + * \brief Returns the warp lane mask of all lanes greater than or equal to the calling thread + */ +__device__ __forceinline__ unsigned int LaneMaskGe() +{ + unsigned int ret; + asm ("mov.u32 %0, %%lanemask_ge;" : "=r"(ret) ); + return ret; +} + +/** @} */ // end group UtilPtx + + + + +/** + * \brief Shuffle-up for any data type. Each warp-lanei obtains the value \p input contributed by warp-lanei-src_offset. For thread lanes \e i < src_offset, the thread's own \p input is returned to the thread. ![](shfl_up_logo.png) + * \ingroup WarpModule + * + * \tparam LOGICAL_WARP_THREADS The number of threads per "logical" warp. Must be a power-of-two <= 32. + * \tparam T [inferred] The input/output element type + * + * \par + * - Available only for SM3.0 or newer + * + * \par Snippet + * The code snippet below illustrates each thread obtaining a \p double value from the + * predecessor of its predecessor. + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(...) + * { + * // Obtain one input item per thread + * double thread_data = ... + * + * // Obtain item from two ranks below + * double peer_data = ShuffleUp<32>(thread_data, 2, 0, 0xffffffff); + * + * \endcode + * \par + * Suppose the set of input \p thread_data across the first warp of threads is {1.0, 2.0, 3.0, 4.0, 5.0, ..., 32.0}. + * The corresponding output \p peer_data will be {1.0, 2.0, 1.0, 2.0, 3.0, ..., 30.0}. + * + */ +template < + int LOGICAL_WARP_THREADS, ///< Number of threads per logical warp + typename T> +__device__ __forceinline__ T ShuffleUp( + T input, ///< [in] The value to broadcast + int src_offset, ///< [in] The relative down-offset of the peer to read from + int first_thread, ///< [in] Index of first lane in logical warp (typically 0) + unsigned int member_mask) ///< [in] 32-bit mask of participating warp lanes +{ + /// The 5-bit SHFL mask for logically splitting warps into sub-segments starts 8-bits up + enum { + SHFL_C = (32 - LOGICAL_WARP_THREADS) << 8 + }; + + typedef typename UnitWord::ShuffleWord ShuffleWord; + + const int WORDS = (sizeof(T) + sizeof(ShuffleWord) - 1) / sizeof(ShuffleWord); + + T output; + ShuffleWord *output_alias = reinterpret_cast(&output); + ShuffleWord *input_alias = reinterpret_cast(&input); + + unsigned int shuffle_word; + shuffle_word = SHFL_UP_SYNC((unsigned int)input_alias[0], src_offset, first_thread | SHFL_C, member_mask); + output_alias[0] = shuffle_word; + + #pragma unroll + for (int WORD = 1; WORD < WORDS; ++WORD) + { + shuffle_word = SHFL_UP_SYNC((unsigned int)input_alias[WORD], src_offset, first_thread | SHFL_C, member_mask); + output_alias[WORD] = shuffle_word; + } + + return output; +} + + +/** + * \brief Shuffle-down for any data type. Each warp-lanei obtains the value \p input contributed by warp-lanei+src_offset. For thread lanes \e i >= WARP_THREADS, the thread's own \p input is returned to the thread. ![](shfl_down_logo.png) + * \ingroup WarpModule + * + * \tparam LOGICAL_WARP_THREADS The number of threads per "logical" warp. Must be a power-of-two <= 32. + * \tparam T [inferred] The input/output element type + * + * \par + * - Available only for SM3.0 or newer + * + * \par Snippet + * The code snippet below illustrates each thread obtaining a \p double value from the + * successor of its successor. + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(...) + * { + * // Obtain one input item per thread + * double thread_data = ... + * + * // Obtain item from two ranks below + * double peer_data = ShuffleDown<32>(thread_data, 2, 31, 0xffffffff); + * + * \endcode + * \par + * Suppose the set of input \p thread_data across the first warp of threads is {1.0, 2.0, 3.0, 4.0, 5.0, ..., 32.0}. + * The corresponding output \p peer_data will be {3.0, 4.0, 5.0, 6.0, 7.0, ..., 32.0}. + * + */ +template < + int LOGICAL_WARP_THREADS, ///< Number of threads per logical warp + typename T> +__device__ __forceinline__ T ShuffleDown( + T input, ///< [in] The value to broadcast + int src_offset, ///< [in] The relative up-offset of the peer to read from + int last_thread, ///< [in] Index of last thread in logical warp (typically 31 for a 32-thread warp) + unsigned int member_mask) ///< [in] 32-bit mask of participating warp lanes +{ + /// The 5-bit SHFL mask for logically splitting warps into sub-segments starts 8-bits up + enum { + SHFL_C = (32 - LOGICAL_WARP_THREADS) << 8 + }; + + typedef typename UnitWord::ShuffleWord ShuffleWord; + + const int WORDS = (sizeof(T) + sizeof(ShuffleWord) - 1) / sizeof(ShuffleWord); + + T output; + ShuffleWord *output_alias = reinterpret_cast(&output); + ShuffleWord *input_alias = reinterpret_cast(&input); + + unsigned int shuffle_word; + shuffle_word = SHFL_DOWN_SYNC((unsigned int)input_alias[0], src_offset, last_thread | SHFL_C, member_mask); + output_alias[0] = shuffle_word; + + #pragma unroll + for (int WORD = 1; WORD < WORDS; ++WORD) + { + shuffle_word = SHFL_DOWN_SYNC((unsigned int)input_alias[WORD], src_offset, last_thread | SHFL_C, member_mask); + output_alias[WORD] = shuffle_word; + } + + return output; +} + + +/** + * \brief Shuffle-broadcast for any data type. Each warp-lanei obtains the value \p input + * contributed by warp-lanesrc_lane. For \p src_lane < 0 or \p src_lane >= WARP_THREADS, + * then the thread's own \p input is returned to the thread. ![](shfl_broadcast_logo.png) + * + * \tparam LOGICAL_WARP_THREADS The number of threads per "logical" warp. Must be a power-of-two <= 32. + * \tparam T [inferred] The input/output element type + * + * \ingroup WarpModule + * + * \par + * - Available only for SM3.0 or newer + * + * \par Snippet + * The code snippet below illustrates each thread obtaining a \p double value from warp-lane0. + * + * \par + * \code + * #include // or equivalently + * + * __global__ void ExampleKernel(...) + * { + * // Obtain one input item per thread + * double thread_data = ... + * + * // Obtain item from thread 0 + * double peer_data = ShuffleIndex<32>(thread_data, 0, 0xffffffff); + * + * \endcode + * \par + * Suppose the set of input \p thread_data across the first warp of threads is {1.0, 2.0, 3.0, 4.0, 5.0, ..., 32.0}. + * The corresponding output \p peer_data will be {1.0, 1.0, 1.0, 1.0, 1.0, ..., 1.0}. + * + */ +template < + int LOGICAL_WARP_THREADS, ///< Number of threads per logical warp + typename T> +__device__ __forceinline__ T ShuffleIndex( + T input, ///< [in] The value to broadcast + int src_lane, ///< [in] Which warp lane is to do the broadcasting + unsigned int member_mask) ///< [in] 32-bit mask of participating warp lanes +{ + /// The 5-bit SHFL mask for logically splitting warps into sub-segments starts 8-bits up + enum { + SHFL_C = ((32 - LOGICAL_WARP_THREADS) << 8) | (LOGICAL_WARP_THREADS - 1) + }; + + typedef typename UnitWord::ShuffleWord ShuffleWord; + + const int WORDS = (sizeof(T) + sizeof(ShuffleWord) - 1) / sizeof(ShuffleWord); + + T output; + ShuffleWord *output_alias = reinterpret_cast(&output); + ShuffleWord *input_alias = reinterpret_cast(&input); + + unsigned int shuffle_word; + shuffle_word = SHFL_IDX_SYNC((unsigned int)input_alias[0], + src_lane, + SHFL_C, + member_mask); + + output_alias[0] = shuffle_word; + + #pragma unroll + for (int WORD = 1; WORD < WORDS; ++WORD) + { + shuffle_word = SHFL_IDX_SYNC((unsigned int)input_alias[WORD], + src_lane, + SHFL_C, + member_mask); + + output_alias[WORD] = shuffle_word; + } + + return output; +} + + +#ifndef DOXYGEN_SHOULD_SKIP_THIS // Do not document +namespace detail +{ + +/** + * Implementation detail for `MatchAny`. It provides specializations for full and partial warps. + * For partial warps, inactive threads must be masked out. This is done in the partial warp + * specialization below. + * Usage: + * ``` + * // returns a mask of threads with the same 4 least-significant bits of `label` + * // in a warp with 16 active threads + * warp_matcher_t<4, 16>::match_any(label); + * + * // returns a mask of threads with the same 4 least-significant bits of `label` + * // in a warp with 32 active threads (no extra work is done) + * warp_matcher_t<4, 32>::match_any(label); + * ``` + */ +template +struct warp_matcher_t +{ + + static __device__ unsigned int match_any(unsigned int label) + { + return warp_matcher_t::match_any(label) & ~(~0 << WARP_ACTIVE_THREADS); + } + +}; + +template +struct warp_matcher_t +{ + + // match.any.sync.b32 is slower when matching a few bits + // using a ballot loop instead + static __device__ unsigned int match_any(unsigned int label) + { + unsigned int retval; + + // Extract masks of common threads for each bit + #pragma unroll + for (int BIT = 0; BIT < LABEL_BITS; ++BIT) + { + unsigned int mask; + unsigned int current_bit = 1 << BIT; + asm ("{\n" + " .reg .pred p;\n" + " and.b32 %0, %1, %2;" + " setp.eq.u32 p, %0, %2;\n" + " vote.ballot.sync.b32 %0, p, 0xffffffff;\n" + " @!p not.b32 %0, %0;\n" + "}\n" : "=r"(mask) : "r"(label), "r"(current_bit)); + + // Remove peers who differ + retval = (BIT == 0) ? mask : retval & mask; + } + + return retval; + } + +}; + +} // namespace detail +#endif // DOXYGEN_SHOULD_SKIP_THIS + +/** + * Compute a 32b mask of threads having the same least-significant + * LABEL_BITS of \p label as the calling thread. + */ +template +inline __device__ unsigned int MatchAny(unsigned int label) +{ + return detail::warp_matcher_t::match_any(label); +} + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/util_type.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/util_type.cuh new file mode 100644 index 0000000000000000000000000000000000000000..d0fa9c9c608e6f0b56bfaf8396fa9ebeb1e22766 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/util_type.cuh @@ -0,0 +1,1320 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * Common type manipulation (metaprogramming) utilities + */ + +#pragma once + +#include +#include +#include +#include + +#include + +#if !_NVHPC_CUDA + #include +#endif +#if !_NVHPC_CUDA && !defined(CUB_DISABLE_BF16_SUPPORT) + #include +#endif + +#include +#include +#include +#include +#include +#include + +#include + +CUB_NAMESPACE_BEGIN + +#ifndef CUB_IS_INT128_ENABLED +#if defined(__CUDACC_RTC__) +#if defined(__CUDACC_RTC_INT128__) +#define CUB_IS_INT128_ENABLED 1 +#endif // !defined(__CUDACC_RTC_INT128__) +#else // !defined(__CUDACC_RTC__) +#if CUDA_VERSION >= 11050 +#if (CUB_HOST_COMPILER == CUB_HOST_COMPILER_GCC) || \ + (CUB_HOST_COMPILER == CUB_HOST_COMPILER_CLANG) || \ + defined(__ICC) || defined(_NVHPC_CUDA) +#define CUB_IS_INT128_ENABLED 1 +#endif // GCC || CLANG || ICC || NVHPC +#endif // CTK >= 11.5 +#endif // !defined(__CUDACC_RTC__) +#endif // !defined(CUB_IS_INT128_ENABLED) + +/** + * \addtogroup UtilModule + * @{ + */ + + + +/****************************************************************************** + * Conditional types + ******************************************************************************/ + + +#ifndef DOXYGEN_SHOULD_SKIP_THIS // Do not document +namespace detail +{ + + +template +using conditional_t = typename std::conditional::type; + + +template +using value_t = typename std::iterator_traits::value_type; + +template ::type>::type, + void>::value> +struct non_void_value_impl +{ + using type = FallbackT; +}; + +template +struct non_void_value_impl +{ + using type = typename ::cuda::std::conditional< + ::cuda::std::is_same::value_type, void>::value, + FallbackT, + typename std::iterator_traits::value_type>::type; +}; + +/** + * The output value type + * type = (if IteratorT's value type is void) ? + * ... then the FallbackT, + * ... else the IteratorT's value type + */ +template +using non_void_value_t = typename non_void_value_impl::type; +} // namespace detail + + +/** + * \brief Type selection (IF ? ThenType : ElseType) + * + * \deprecated [Since 1.16.0] The cub::If APIs are deprecated. + * Use cub::detail::conditional_t instead. + */ +template +struct CUB_DEPRECATED If +{ + using Type = cub::detail::conditional_t; +}; + + +/****************************************************************************** + * Type equality + ******************************************************************************/ + +/** + * \brief Type equality test + * + * \deprecated [Since 1.16.0] The cub::Equals APIs are deprecated. + * Use std::is_same instead. + */ +template +struct CUB_DEPRECATED Equals +{ + static constexpr int VALUE = std::is_same::value ? 1 : 0; + static constexpr int NEGATE = VALUE ? 0 : 1; +}; + + +/****************************************************************************** + * Static math + ******************************************************************************/ + +/** + * \brief Statically determine log2(N), rounded up. + * + * For example: + * Log2<8>::VALUE // 3 + * Log2<3>::VALUE // 2 + */ +template +struct Log2 +{ + /// Static logarithm value + enum { VALUE = Log2> 1), COUNT + 1>::VALUE }; // Inductive case +}; + +#ifndef DOXYGEN_SHOULD_SKIP_THIS // Do not document + +template +struct Log2 +{ + enum {VALUE = (1 << (COUNT - 1) < N) ? // Base case + COUNT : + COUNT - 1 }; +}; + +#endif // DOXYGEN_SHOULD_SKIP_THIS + +/** + * \brief Statically determine if N is a power-of-two + */ +template +struct PowerOfTwo +{ + enum { VALUE = ((N & (N - 1)) == 0) }; +}; + + + +/****************************************************************************** + * Pointer vs. iterator detection + ******************************************************************************/ + +/** + * \brief Pointer vs. iterator + * + * \deprecated [Since 1.16.0] The cub::IsPointer APIs are deprecated. + * Use std::is_pointer instead. + */ +template +struct CUB_DEPRECATED IsPointer +{ + static constexpr int VALUE = std::is_pointer::value; +}; + + +/****************************************************************************** + * Qualifier detection + ******************************************************************************/ + +/** + * \brief Volatile modifier test + * + * \deprecated [Since 1.16.0] The cub::IsVolatile APIs are deprecated. + * Use std::is_volatile instead. + */ +template +struct CUB_DEPRECATED IsVolatile +{ + static constexpr int VALUE = std::is_volatile::value; +}; + +/****************************************************************************** + * Qualifier removal + ******************************************************************************/ + +/** + * \brief Removes \p const and \p volatile qualifiers from type \p Tp. + * + * \deprecated [Since 1.16.0] The cub::RemoveQualifiers APIs are deprecated. + * Use std::remove_cv instead. + * + * For example: + * typename RemoveQualifiers::Type // int; + */ +template +struct CUB_DEPRECATED RemoveQualifiers +{ + using Type = typename std::remove_cv::type; +}; +#endif // DOXYGEN_SHOULD_SKIP_THIS + + +/****************************************************************************** + * Marker types + ******************************************************************************/ + +#ifndef DOXYGEN_SHOULD_SKIP_THIS // Do not document + +/** + * \brief A simple "NULL" marker type + */ +struct NullType +{ + using value_type = NullType; + + template + __host__ __device__ __forceinline__ NullType& operator =(const T&) { return *this; } + + __host__ __device__ __forceinline__ bool operator ==(const NullType&) { return true; } + + __host__ __device__ __forceinline__ bool operator !=(const NullType&) { return false; } +}; + + +/** + * \brief Allows for the treatment of an integral constant as a type at compile-time (e.g., to achieve static call dispatch based on constant integral values) + */ +template +struct Int2Type +{ + enum {VALUE = A}; +}; + +/** + * \brief Allows algorithms that take a value as input to take a future value that is not computed yet at launch time. + * + * Note that it is user's responsibility to ensure that the result will be ready before use via external synchronization + * or stream-ordering dependencies. + * + * \code + * int *d_intermediate_result; + * allocator.DeviceAllocate((void **)&d_intermediate_result, sizeof(int)); + * compute_intermediate_result<<>>( + * d_intermediate_result, // output + * arg1, // input + * arg2); // input + * cub::FutureValue init_value(d_intermediate_result); + * cub::DeviceScan::ExclusiveScan( + * d_temp_storage, + * temp_storage_bytes, + * d_in, + * d_out, + * cub::Sum(), + * init_value, + * num_items); + * allocator.DeviceFree(d_intermediate_result); + * \endcode + */ +template +struct FutureValue +{ + using value_type = T; + using iterator_type = IterT; + explicit __host__ __device__ __forceinline__ FutureValue(IterT iter):m_iter(iter) {} + __host__ __device__ __forceinline__ operator T() { + return *m_iter; + } + +private: + IterT m_iter; +}; + +namespace detail { + +/** + * \brief Allows algorithms to instantiate a single kernel to support both immediate value and future value. + */ +template +struct InputValue +{ + using value_type = T; + using iterator_type = IterT; + __host__ __device__ __forceinline__ operator T() { + if (m_is_future) { + return m_future_value; + } + return m_immediate_value; + } + explicit __host__ __device__ __forceinline__ InputValue(T immediate_value): m_is_future(false), m_immediate_value(immediate_value) {} + explicit __host__ __device__ __forceinline__ InputValue(FutureValue future_value): m_is_future(true), m_future_value(future_value) {} + __host__ __device__ __forceinline__ InputValue(const InputValue &other): m_is_future(other.m_is_future) { + if (m_is_future) { + m_future_value = other.m_future_value; + } else { + detail::uninitialized_copy(&m_immediate_value, + other.m_immediate_value); + } + } + +private: + bool m_is_future; + union + { + FutureValue m_future_value; + T m_immediate_value; + }; +}; + +} // namespace detail + + +/****************************************************************************** + * Size and alignment + ******************************************************************************/ + +/// Structure alignment +template +struct AlignBytes +{ + struct Pad + { + T val; + char byte; + }; + + enum + { + /// The "true CUDA" alignment of T in bytes + ALIGN_BYTES = sizeof(Pad) - sizeof(T) + }; + + /// The "truly aligned" type + typedef T Type; +}; + +// Specializations where host C++ compilers (e.g., 32-bit Windows) may disagree +// with device C++ compilers (EDG) on types passed as template parameters through +// kernel functions + +#define __CUB_ALIGN_BYTES(t, b) \ + template <> struct AlignBytes \ + { enum { ALIGN_BYTES = b }; typedef __align__(b) t Type; }; + +__CUB_ALIGN_BYTES(short4, 8) +__CUB_ALIGN_BYTES(ushort4, 8) +__CUB_ALIGN_BYTES(int2, 8) +__CUB_ALIGN_BYTES(uint2, 8) +__CUB_ALIGN_BYTES(long long, 8) +__CUB_ALIGN_BYTES(unsigned long long, 8) +__CUB_ALIGN_BYTES(float2, 8) +__CUB_ALIGN_BYTES(double, 8) +#ifdef _WIN32 + __CUB_ALIGN_BYTES(long2, 8) + __CUB_ALIGN_BYTES(ulong2, 8) +#else + __CUB_ALIGN_BYTES(long2, 16) + __CUB_ALIGN_BYTES(ulong2, 16) +#endif +__CUB_ALIGN_BYTES(int4, 16) +__CUB_ALIGN_BYTES(uint4, 16) +__CUB_ALIGN_BYTES(float4, 16) +__CUB_ALIGN_BYTES(long4, 16) +__CUB_ALIGN_BYTES(ulong4, 16) +__CUB_ALIGN_BYTES(longlong2, 16) +__CUB_ALIGN_BYTES(ulonglong2, 16) +__CUB_ALIGN_BYTES(double2, 16) +__CUB_ALIGN_BYTES(longlong4, 16) +__CUB_ALIGN_BYTES(ulonglong4, 16) +__CUB_ALIGN_BYTES(double4, 16) + +// clang-format off +template struct AlignBytes : AlignBytes {}; +template struct AlignBytes : AlignBytes {}; +template struct AlignBytes : AlignBytes {}; +// clang-format on + +/// Unit-words of data movement +template +struct UnitWord +{ + enum { + ALIGN_BYTES = AlignBytes::ALIGN_BYTES + }; + + template + struct IsMultiple + { + enum { + UNIT_ALIGN_BYTES = AlignBytes::ALIGN_BYTES, + IS_MULTIPLE = (sizeof(T) % sizeof(Unit) == 0) && (int(ALIGN_BYTES) % int(UNIT_ALIGN_BYTES) == 0) + }; + }; + + /// Biggest shuffle word that T is a whole multiple of and is not larger than + /// the alignment of T + using ShuffleWord = cub::detail::conditional_t< + IsMultiple::IS_MULTIPLE, + unsigned int, + cub::detail::conditional_t::IS_MULTIPLE, + unsigned short, + unsigned char>>; + + /// Biggest volatile word that T is a whole multiple of and is not larger than + /// the alignment of T + using VolatileWord = + cub::detail::conditional_t::IS_MULTIPLE, + unsigned long long, + ShuffleWord>; + + /// Biggest memory-access word that T is a whole multiple of and is not larger + /// than the alignment of T + using DeviceWord = + cub::detail::conditional_t::IS_MULTIPLE, + ulonglong2, + VolatileWord>; + + /// Biggest texture reference word that T is a whole multiple of and is not + /// larger than the alignment of T + using TextureWord = cub::detail::conditional_t< + IsMultiple::IS_MULTIPLE, + uint4, + cub::detail::conditional_t::IS_MULTIPLE, uint2, ShuffleWord>>; +}; + +// float2 specialization workaround (for SM10-SM13) +template <> +struct UnitWord +{ + typedef int ShuffleWord; + typedef unsigned long long VolatileWord; + typedef unsigned long long DeviceWord; + typedef float2 TextureWord; +}; + +// float4 specialization workaround (for SM10-SM13) +template <> +struct UnitWord +{ + typedef int ShuffleWord; + typedef unsigned long long VolatileWord; + typedef ulonglong2 DeviceWord; + typedef float4 TextureWord; +}; + + +// char2 specialization workaround (for SM10-SM13) +template <> +struct UnitWord +{ + typedef unsigned short ShuffleWord; + typedef unsigned short VolatileWord; + typedef unsigned short DeviceWord; + typedef unsigned short TextureWord; +}; + +// clang-format off +template struct UnitWord : UnitWord {}; +template struct UnitWord : UnitWord {}; +template struct UnitWord : UnitWord {}; +// clang-format on + + +/****************************************************************************** + * Vector type inference utilities. + ******************************************************************************/ + +/** + * \brief Exposes a member typedef \p Type that names the corresponding CUDA vector type if one exists. Otherwise \p Type refers to the CubVector structure itself, which will wrap the corresponding \p x, \p y, etc. vector fields. + */ +template struct CubVector; + + +enum +{ + /// The maximum number of elements in CUDA vector types + MAX_VEC_ELEMENTS = 4, +}; + + +/** + * Generic vector-1 type + */ +template +struct CubVector +{ + T x; + + typedef T BaseType; + typedef CubVector Type; +}; + +/** + * Generic vector-2 type + */ +template +struct CubVector +{ + T x; + T y; + + typedef T BaseType; + typedef CubVector Type; +}; + +/** + * Generic vector-3 type + */ +template +struct CubVector +{ + T x; + T y; + T z; + + typedef T BaseType; + typedef CubVector Type; +}; + +/** + * Generic vector-4 type + */ +template +struct CubVector +{ + T x; + T y; + T z; + T w; + + typedef T BaseType; + typedef CubVector Type; +}; + + +/** + * Macro for expanding partially-specialized built-in vector types + */ +#define CUB_DEFINE_VECTOR_TYPE(base_type,short_type) \ + \ + template<> struct CubVector : short_type##1 \ + { \ + typedef base_type BaseType; \ + typedef short_type##1 Type; \ + __host__ __device__ __forceinline__ CubVector operator+(const CubVector &other) const { \ + CubVector retval; \ + retval.x = x + other.x; \ + return retval; \ + } \ + __host__ __device__ __forceinline__ CubVector operator-(const CubVector &other) const { \ + CubVector retval; \ + retval.x = x - other.x; \ + return retval; \ + } \ + }; \ + \ + template<> struct CubVector : short_type##2 \ + { \ + typedef base_type BaseType; \ + typedef short_type##2 Type; \ + __host__ __device__ __forceinline__ CubVector operator+(const CubVector &other) const { \ + CubVector retval; \ + retval.x = x + other.x; \ + retval.y = y + other.y; \ + return retval; \ + } \ + __host__ __device__ __forceinline__ CubVector operator-(const CubVector &other) const { \ + CubVector retval; \ + retval.x = x - other.x; \ + retval.y = y - other.y; \ + return retval; \ + } \ + }; \ + \ + template<> struct CubVector : short_type##3 \ + { \ + typedef base_type BaseType; \ + typedef short_type##3 Type; \ + __host__ __device__ __forceinline__ CubVector operator+(const CubVector &other) const { \ + CubVector retval; \ + retval.x = x + other.x; \ + retval.y = y + other.y; \ + retval.z = z + other.z; \ + return retval; \ + } \ + __host__ __device__ __forceinline__ CubVector operator-(const CubVector &other) const { \ + CubVector retval; \ + retval.x = x - other.x; \ + retval.y = y - other.y; \ + retval.z = z - other.z; \ + return retval; \ + } \ + }; \ + \ + template<> struct CubVector : short_type##4 \ + { \ + typedef base_type BaseType; \ + typedef short_type##4 Type; \ + __host__ __device__ __forceinline__ CubVector operator+(const CubVector &other) const { \ + CubVector retval; \ + retval.x = x + other.x; \ + retval.y = y + other.y; \ + retval.z = z + other.z; \ + retval.w = w + other.w; \ + return retval; \ + } \ + __host__ __device__ __forceinline__ CubVector operator-(const CubVector &other) const { \ + CubVector retval; \ + retval.x = x - other.x; \ + retval.y = y - other.y; \ + retval.z = z - other.z; \ + retval.w = w - other.w; \ + return retval; \ + } \ + }; + + + +// Expand CUDA vector types for built-in primitives +// clang-format off +CUB_DEFINE_VECTOR_TYPE(char, char) +CUB_DEFINE_VECTOR_TYPE(signed char, char) +CUB_DEFINE_VECTOR_TYPE(short, short) +CUB_DEFINE_VECTOR_TYPE(int, int) +CUB_DEFINE_VECTOR_TYPE(long, long) +CUB_DEFINE_VECTOR_TYPE(long long, longlong) +CUB_DEFINE_VECTOR_TYPE(unsigned char, uchar) +CUB_DEFINE_VECTOR_TYPE(unsigned short, ushort) +CUB_DEFINE_VECTOR_TYPE(unsigned int, uint) +CUB_DEFINE_VECTOR_TYPE(unsigned long, ulong) +CUB_DEFINE_VECTOR_TYPE(unsigned long long, ulonglong) +CUB_DEFINE_VECTOR_TYPE(float, float) +CUB_DEFINE_VECTOR_TYPE(double, double) +CUB_DEFINE_VECTOR_TYPE(bool, uchar) +// clang-format on + +// Undefine macros +#undef CUB_DEFINE_VECTOR_TYPE + + +/****************************************************************************** + * Wrapper types + ******************************************************************************/ + +/** + * \brief A storage-backing wrapper that allows types with non-trivial constructors to be aliased in unions + */ +template +struct Uninitialized +{ + /// Biggest memory-access word that T is a whole multiple of and is not larger than the alignment of T + typedef typename UnitWord::DeviceWord DeviceWord; + + static constexpr std::size_t DATA_SIZE = sizeof(T); + static constexpr std::size_t WORD_SIZE = sizeof(DeviceWord); + static constexpr std::size_t WORDS = DATA_SIZE / WORD_SIZE; + + /// Backing storage + DeviceWord storage[WORDS]; + + /// Alias + __host__ __device__ __forceinline__ T& Alias() + { + return reinterpret_cast(*this); + } +}; + + +/** + * \brief A key identifier paired with a corresponding value + */ +template < + typename _Key, + typename _Value +#if defined(_WIN32) && !defined(_WIN64) + , bool KeyIsLT = (AlignBytes<_Key>::ALIGN_BYTES < AlignBytes<_Value>::ALIGN_BYTES) + , bool ValIsLT = (AlignBytes<_Value>::ALIGN_BYTES < AlignBytes<_Key>::ALIGN_BYTES) +#endif // #if defined(_WIN32) && !defined(_WIN64) + > +struct KeyValuePair +{ + typedef _Key Key; ///< Key data type + typedef _Value Value; ///< Value data type + + Key key; ///< Item key + Value value; ///< Item value + + /// Constructor + __host__ __device__ __forceinline__ + KeyValuePair() {} + + /// Constructor + __host__ __device__ __forceinline__ + KeyValuePair(Key const& key, Value const& value) : key(key), value(value) {} + + /// Inequality operator + __host__ __device__ __forceinline__ bool operator !=(const KeyValuePair &b) + { + return (value != b.value) || (key != b.key); + } +}; + +#if defined(_WIN32) && !defined(_WIN64) + +/** + * Win32 won't do 16B alignment. This can present two problems for + * should-be-16B-aligned (but actually 8B aligned) built-in and intrinsics members: + * 1) If a smaller-aligned item were to be listed first, the host compiler places the + * should-be-16B item at too early an offset (and disagrees with device compiler) + * 2) Or, if a smaller-aligned item lists second, the host compiler gets the size + * of the struct wrong (and disagrees with device compiler) + * + * So we put the larger-should-be-aligned item first, and explicitly pad the + * end of the struct + */ + +/// Smaller key specialization +template +struct KeyValuePair +{ + typedef K Key; + typedef V Value; + + typedef char Pad[AlignBytes::ALIGN_BYTES - AlignBytes::ALIGN_BYTES]; + + Value value; // Value has larger would-be alignment and goes first + Key key; + Pad pad; + + /// Constructor + __host__ __device__ __forceinline__ + KeyValuePair() {} + + /// Constructor + __host__ __device__ __forceinline__ + KeyValuePair(Key const& key, Value const& value) : key(key), value(value) {} + + /// Inequality operator + __host__ __device__ __forceinline__ bool operator !=(const KeyValuePair &b) + { + return (value != b.value) || (key != b.key); + } +}; + + +/// Smaller value specialization +template +struct KeyValuePair +{ + typedef K Key; + typedef V Value; + + typedef char Pad[AlignBytes::ALIGN_BYTES - AlignBytes::ALIGN_BYTES]; + + Key key; // Key has larger would-be alignment and goes first + Value value; + Pad pad; + + /// Constructor + __host__ __device__ __forceinline__ + KeyValuePair() {} + + /// Constructor + __host__ __device__ __forceinline__ + KeyValuePair(Key const& key, Value const& value) : key(key), value(value) {} + + /// Inequality operator + __host__ __device__ __forceinline__ bool operator !=(const KeyValuePair &b) + { + return (value != b.value) || (key != b.key); + } +}; + +#endif // #if defined(_WIN32) && !defined(_WIN64) + + +/** + * \brief A wrapper for passing simple static arrays as kernel parameters + */ +template +struct ArrayWrapper +{ + + /// Statically-sized array of type \p T + T array[COUNT]; + + /// Constructor + __host__ __device__ __forceinline__ ArrayWrapper() {} +}; + + +/** + * \brief Double-buffer storage wrapper for multi-pass stream transformations that require more than one storage array for streaming intermediate results back and forth. + * + * Many multi-pass computations require a pair of "ping-pong" storage + * buffers (e.g., one for reading from and the other for writing to, and then + * vice-versa for the subsequent pass). This structure wraps a set of device + * buffers and a "selector" member to track which is "current". + */ +template +struct DoubleBuffer +{ + /// Pair of device buffer pointers + T *d_buffers[2]; + + /// Selector into \p d_buffers (i.e., the active/valid buffer) + int selector; + + /// \brief Constructor + __host__ __device__ __forceinline__ DoubleBuffer() + { + selector = 0; + d_buffers[0] = NULL; + d_buffers[1] = NULL; + } + + /// \brief Constructor + __host__ __device__ __forceinline__ DoubleBuffer( + T *d_current, ///< The currently valid buffer + T *d_alternate) ///< Alternate storage buffer of the same size as \p d_current + { + selector = 0; + d_buffers[0] = d_current; + d_buffers[1] = d_alternate; + } + + /// \brief Return pointer to the currently valid buffer + __host__ __device__ __forceinline__ T* Current() { return d_buffers[selector]; } + + /// \brief Return pointer to the currently invalid buffer + __host__ __device__ __forceinline__ T* Alternate() { return d_buffers[selector ^ 1]; } + +}; + + + +/****************************************************************************** + * Typedef-detection + ******************************************************************************/ + + +/** + * \brief Defines a structure \p detector_name that is templated on type \p T. The \p detector_name struct exposes a constant member \p VALUE indicating whether or not parameter \p T exposes a nested type \p nested_type_name + */ +#define CUB_DEFINE_DETECT_NESTED_TYPE(detector_name, nested_type_name) \ + template \ + struct detector_name \ + { \ + template \ + static char& test(typename C::nested_type_name*); \ + template \ + static int& test(...); \ + enum \ + { \ + VALUE = sizeof(test(0)) < sizeof(int) \ + }; \ + }; + + + +/****************************************************************************** + * Simple enable-if (similar to Boost) + ******************************************************************************/ + +/** + * \brief Simple enable-if (similar to Boost) + * + * \deprecated [Since 1.16.0] The cub::If APIs are deprecated. + * Use std::enable_if instead. + */ +template +struct CUB_DEPRECATED EnableIf +{ + using Type = typename std::enable_if::type; +}; + +/****************************************************************************** + * Typedef-detection + ******************************************************************************/ + +/** + * \brief Determine whether or not BinaryOp's functor is of the form bool operator()(const T& a, const T&b) or bool operator()(const T& a, const T&b, unsigned int idx) + */ +template +struct BinaryOpHasIdxParam +{ +private: +/* + template struct SFINAE1 {}; + template struct SFINAE2 {}; + template struct SFINAE3 {}; + template struct SFINAE4 {}; +*/ + template struct SFINAE5 {}; + template struct SFINAE6 {}; + template struct SFINAE7 {}; + template struct SFINAE8 {}; +/* + template static char Test(SFINAE1 *); + template static char Test(SFINAE2 *); + template static char Test(SFINAE3 *); + template static char Test(SFINAE4 *); +*/ + template __host__ __device__ static char Test(SFINAE5 *); + template __host__ __device__ static char Test(SFINAE6 *); + template __host__ __device__ static char Test(SFINAE7 *); + template __host__ __device__ static char Test(SFINAE8 *); + + template static int Test(...); + +public: + + /// Whether the functor BinaryOp has a third unsigned int index param + static const bool HAS_PARAM = sizeof(Test(NULL)) == sizeof(char); +}; + + + + +/****************************************************************************** + * Simple type traits utilities. + * + * For example: + * Traits::CATEGORY // SIGNED_INTEGER + * Traits::NULL_TYPE // true + * Traits::CATEGORY // NOT_A_NUMBER + * Traits::PRIMITIVE; // false + * + ******************************************************************************/ + +/** + * \brief Basic type traits categories + */ +enum Category +{ + NOT_A_NUMBER, + SIGNED_INTEGER, + UNSIGNED_INTEGER, + FLOATING_POINT +}; + + +/** + * \brief Basic type traits + */ +template +struct BaseTraits +{ + /// Category + static const Category CATEGORY = _CATEGORY; + enum + { + PRIMITIVE = _PRIMITIVE, + NULL_TYPE = _NULL_TYPE, + }; +}; + + +/** + * Basic type traits (unsigned primitive specialization) + */ +template +struct BaseTraits +{ + typedef _UnsignedBits UnsignedBits; + + static const Category CATEGORY = UNSIGNED_INTEGER; + static const UnsignedBits LOWEST_KEY = UnsignedBits(0); + static const UnsignedBits MAX_KEY = UnsignedBits(-1); + + enum + { + PRIMITIVE = true, + NULL_TYPE = false, + }; + + + static __host__ __device__ __forceinline__ UnsignedBits TwiddleIn(UnsignedBits key) + { + return key; + } + + static __host__ __device__ __forceinline__ UnsignedBits TwiddleOut(UnsignedBits key) + { + return key; + } + + static __host__ __device__ __forceinline__ T Max() + { + UnsignedBits retval_bits = MAX_KEY; + T retval; + memcpy(&retval, &retval_bits, sizeof(T)); + return retval; + } + + static __host__ __device__ __forceinline__ T Lowest() + { + UnsignedBits retval_bits = LOWEST_KEY; + T retval; + memcpy(&retval, &retval_bits, sizeof(T)); + return retval; + } +}; + + +/** + * Basic type traits (signed primitive specialization) + */ +template +struct BaseTraits +{ + typedef _UnsignedBits UnsignedBits; + + static const Category CATEGORY = SIGNED_INTEGER; + static const UnsignedBits HIGH_BIT = UnsignedBits(1) << ((sizeof(UnsignedBits) * 8) - 1); + static const UnsignedBits LOWEST_KEY = HIGH_BIT; + static const UnsignedBits MAX_KEY = UnsignedBits(-1) ^ HIGH_BIT; + + enum + { + PRIMITIVE = true, + NULL_TYPE = false, + }; + + static __host__ __device__ __forceinline__ UnsignedBits TwiddleIn(UnsignedBits key) + { + return key ^ HIGH_BIT; + }; + + static __host__ __device__ __forceinline__ UnsignedBits TwiddleOut(UnsignedBits key) + { + return key ^ HIGH_BIT; + }; + + static __host__ __device__ __forceinline__ T Max() + { + UnsignedBits retval = MAX_KEY; + return reinterpret_cast(retval); + } + + static __host__ __device__ __forceinline__ T Lowest() + { + UnsignedBits retval = LOWEST_KEY; + return reinterpret_cast(retval); + } +}; + +template +struct FpLimits; + +template <> +struct FpLimits +{ + static __host__ __device__ __forceinline__ float Max() { + return FLT_MAX; + } + + static __host__ __device__ __forceinline__ float Lowest() { + return FLT_MAX * float(-1); + } +}; + +template <> +struct FpLimits +{ + static __host__ __device__ __forceinline__ double Max() { + return DBL_MAX; + } + + static __host__ __device__ __forceinline__ double Lowest() { + return DBL_MAX * double(-1); + } +}; + +#if !_NVHPC_CUDA +template <> +struct FpLimits<__half> +{ + static __host__ __device__ __forceinline__ __half Max() { + unsigned short max_word = 0x7BFF; + return reinterpret_cast<__half&>(max_word); + } + + static __host__ __device__ __forceinline__ __half Lowest() { + unsigned short lowest_word = 0xFBFF; + return reinterpret_cast<__half&>(lowest_word); + } +}; +#endif + +#if !_NVHPC_CUDA && !defined(CUB_DISABLE_BF16_SUPPORT) +template <> +struct FpLimits<__nv_bfloat16> +{ + static __host__ __device__ __forceinline__ __nv_bfloat16 Max() { + unsigned short max_word = 0x7F7F; + return reinterpret_cast<__nv_bfloat16&>(max_word); + } + + static __host__ __device__ __forceinline__ __nv_bfloat16 Lowest() { + unsigned short lowest_word = 0xFF7F; + return reinterpret_cast<__nv_bfloat16&>(lowest_word); + } +}; +#endif + +/** + * Basic type traits (fp primitive specialization) + */ +template +struct BaseTraits +{ + typedef _UnsignedBits UnsignedBits; + + static const Category CATEGORY = FLOATING_POINT; + static const UnsignedBits HIGH_BIT = UnsignedBits(1) << ((sizeof(UnsignedBits) * 8) - 1); + static const UnsignedBits LOWEST_KEY = UnsignedBits(-1); + static const UnsignedBits MAX_KEY = UnsignedBits(-1) ^ HIGH_BIT; + + enum + { + PRIMITIVE = true, + NULL_TYPE = false, + }; + + static __host__ __device__ __forceinline__ UnsignedBits TwiddleIn(UnsignedBits key) + { + UnsignedBits mask = (key & HIGH_BIT) ? UnsignedBits(-1) : HIGH_BIT; + return key ^ mask; + }; + + static __host__ __device__ __forceinline__ UnsignedBits TwiddleOut(UnsignedBits key) + { + UnsignedBits mask = (key & HIGH_BIT) ? HIGH_BIT : UnsignedBits(-1); + return key ^ mask; + }; + + static __host__ __device__ __forceinline__ T Max() { + return FpLimits::Max(); + } + + static __host__ __device__ __forceinline__ T Lowest() { + return FpLimits::Lowest(); + } +}; + + +/** + * \brief Numeric type traits + */ +// clang-format off +template struct NumericTraits : BaseTraits {}; + +template <> struct NumericTraits : BaseTraits {}; + +template <> struct NumericTraits : BaseTraits<(std::numeric_limits::is_signed) ? SIGNED_INTEGER : UNSIGNED_INTEGER, true, false, unsigned char, char> {}; +template <> struct NumericTraits : BaseTraits {}; +template <> struct NumericTraits : BaseTraits {}; +template <> struct NumericTraits : BaseTraits {}; +template <> struct NumericTraits : BaseTraits {}; +template <> struct NumericTraits : BaseTraits {}; + +template <> struct NumericTraits : BaseTraits {}; +template <> struct NumericTraits : BaseTraits {}; +template <> struct NumericTraits : BaseTraits {}; +template <> struct NumericTraits : BaseTraits {}; +template <> struct NumericTraits : BaseTraits {}; + + +#if CUB_IS_INT128_ENABLED +template <> +struct NumericTraits<__uint128_t> +{ + using T = __uint128_t; + using UnsignedBits = __uint128_t; + + static constexpr Category CATEGORY = UNSIGNED_INTEGER; + static constexpr UnsignedBits LOWEST_KEY = UnsignedBits(0); + static constexpr UnsignedBits MAX_KEY = UnsignedBits(-1); + + static constexpr bool PRIMITIVE = false; + static constexpr bool NULL_TYPE = false; + + static __host__ __device__ __forceinline__ UnsignedBits TwiddleIn(UnsignedBits key) + { + return key; + } + + static __host__ __device__ __forceinline__ UnsignedBits TwiddleOut(UnsignedBits key) + { + return key; + } + + static __host__ __device__ __forceinline__ T Max() + { + return MAX_KEY; + } + + static __host__ __device__ __forceinline__ T Lowest() + { + return LOWEST_KEY; + } +}; + +template <> +struct NumericTraits<__int128_t> +{ + using T = __int128_t; + using UnsignedBits = __uint128_t; + + static constexpr Category CATEGORY = SIGNED_INTEGER; + static constexpr UnsignedBits HIGH_BIT = UnsignedBits(1) << ((sizeof(UnsignedBits) * 8) - 1); + static constexpr UnsignedBits LOWEST_KEY = HIGH_BIT; + static constexpr UnsignedBits MAX_KEY = UnsignedBits(-1) ^ HIGH_BIT; + + static constexpr bool PRIMITIVE = false; + static constexpr bool NULL_TYPE = false; + + static __host__ __device__ __forceinline__ UnsignedBits TwiddleIn(UnsignedBits key) + { + return key ^ HIGH_BIT; + }; + + static __host__ __device__ __forceinline__ UnsignedBits TwiddleOut(UnsignedBits key) + { + return key ^ HIGH_BIT; + }; + + static __host__ __device__ __forceinline__ T Max() + { + UnsignedBits retval = MAX_KEY; + return reinterpret_cast(retval); + } + + static __host__ __device__ __forceinline__ T Lowest() + { + UnsignedBits retval = LOWEST_KEY; + return reinterpret_cast(retval); + } +}; +#endif + +template <> struct NumericTraits : BaseTraits {}; +template <> struct NumericTraits : BaseTraits {}; +#if !_NVHPC_CUDA + template <> struct NumericTraits<__half> : BaseTraits {}; +#endif +#if !_NVHPC_CUDA && !defined(CUB_DISABLE_BF16_SUPPORT) + template <> struct NumericTraits<__nv_bfloat16> : BaseTraits {}; +#endif + +template <> struct NumericTraits : BaseTraits::VolatileWord, bool> {}; +// clang-format on + +/** + * \brief Type traits + */ +template +struct Traits : NumericTraits::type> {}; + + +#endif // DOXYGEN_SHOULD_SKIP_THIS + + +/** @} */ // end group UtilModule + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/version.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/version.cuh new file mode 100644 index 0000000000000000000000000000000000000000..d51023912fa30731cb54543a891917e2aee6d623 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/version.cuh @@ -0,0 +1,70 @@ +/****************************************************************************** + * Copyright (c) 2011-2022, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/*! \file version.cuh + * \brief Compile-time macros encoding CUB release version + * + * is the only CUB header that is guaranteed to + * change with every CUB release. + * + */ + +#pragma once + +/*! \def CUB_VERSION + * \brief The preprocessor macro \p CUB_VERSION encodes the version + * number of the CUB library. + * + * CUB_VERSION % 100 is the sub-minor version. + * CUB_VERSION / 100 % 1000 is the minor version. + * CUB_VERSION / 100000 is the major version. + */ +#define CUB_VERSION 200200 + +/*! \def CUB_MAJOR_VERSION + * \brief The preprocessor macro \p CUB_MAJOR_VERSION encodes the + * major version number of the CUB library. + */ +#define CUB_MAJOR_VERSION (CUB_VERSION / 100000) + +/*! \def CUB_MINOR_VERSION + * \brief The preprocessor macro \p CUB_MINOR_VERSION encodes the + * minor version number of the CUB library. + */ +#define CUB_MINOR_VERSION (CUB_VERSION / 100 % 1000) + +/*! \def CUB_SUBMINOR_VERSION + * \brief The preprocessor macro \p CUB_SUBMINOR_VERSION encodes the + * sub-minor version number of the CUB library. + */ +#define CUB_SUBMINOR_VERSION (CUB_VERSION % 100) + +/*! \def CUB_PATCH_NUMBER + * \brief The preprocessor macro \p CUB_PATCH_NUMBER encodes the + * patch number of the CUB library. + */ +#define CUB_PATCH_NUMBER 0 diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/warp/specializations/warp_reduce_shfl.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/warp/specializations/warp_reduce_shfl.cuh new file mode 100644 index 0000000000000000000000000000000000000000..59da2c780e0a1c60f72cf31d634db0ea7cb9a0e8 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/warp/specializations/warp_reduce_shfl.cuh @@ -0,0 +1,583 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * cub::WarpReduceShfl provides SHFL-based variants of parallel reduction of items partitioned across a CUDA thread warp. + */ + +#pragma once + +#include "../../config.cuh" +#include "../../thread/thread_operators.cuh" +#include "../../util_ptx.cuh" +#include "../../util_type.cuh" + +#include + +#include +#include + +CUB_NAMESPACE_BEGIN + + +namespace detail +{ + +template +struct reduce_add_exists : ::cuda::std::false_type +{}; + +template +struct reduce_add_exists : ::cuda::std::true_type +{}; + +template +struct reduce_min_exists : ::cuda::std::false_type +{}; + +template +struct reduce_min_exists : ::cuda::std::true_type +{}; + +template +struct reduce_max_exists : ::cuda::std::false_type +{}; + +template +struct reduce_max_exists : ::cuda::std::true_type +{}; + +} + + +/** + * \brief WarpReduceShfl provides SHFL-based variants of parallel reduction of items partitioned across a CUDA thread warp. + * + * LOGICAL_WARP_THREADS must be a power-of-two + */ +template < + typename T, ///< Data type being reduced + int LOGICAL_WARP_THREADS, ///< Number of threads per logical warp + int LEGACY_PTX_ARCH = 0> ///< The PTX compute capability for which to to specialize this collective +struct WarpReduceShfl +{ + static_assert(PowerOfTwo::VALUE, + "LOGICAL_WARP_THREADS must be a power of two"); + + //--------------------------------------------------------------------- + // Constants and type definitions + //--------------------------------------------------------------------- + + enum + { + /// Whether the logical warp size and the PTX warp size coincide + IS_ARCH_WARP = (LOGICAL_WARP_THREADS == CUB_WARP_THREADS(0)), + + /// The number of warp reduction steps + STEPS = Log2::VALUE, + + /// Number of logical warps in a PTX warp + LOGICAL_WARPS = CUB_WARP_THREADS(0) / LOGICAL_WARP_THREADS, + + /// The 5-bit SHFL mask for logically splitting warps into sub-segments starts 8-bits up + SHFL_C = (CUB_WARP_THREADS(0) - LOGICAL_WARP_THREADS) << 8 + + }; + + template + struct IsInteger + { + enum { + ///Whether the data type is a small (32b or less) integer for which we can use a single SFHL instruction per exchange + IS_SMALL_UNSIGNED = (Traits::CATEGORY == UNSIGNED_INTEGER) && (sizeof(S) <= sizeof(unsigned int)) + }; + }; + + + /// Shared memory storage layout type + typedef NullType TempStorage; + + + //--------------------------------------------------------------------- + // Thread fields + //--------------------------------------------------------------------- + + /// Lane index in logical warp + int lane_id; + + /// Logical warp index in 32-thread physical warp + int warp_id; + + /// 32-thread physical warp member mask of logical warp + uint32_t member_mask; + + + //--------------------------------------------------------------------- + // Construction + //--------------------------------------------------------------------- + + /// Constructor + __device__ __forceinline__ WarpReduceShfl( + TempStorage &/*temp_storage*/) + : lane_id(static_cast(LaneId())) + , warp_id(IS_ARCH_WARP ? 0 : (lane_id / LOGICAL_WARP_THREADS)) + , member_mask(WarpMask(warp_id)) + { + if (!IS_ARCH_WARP) + { + lane_id = lane_id % LOGICAL_WARP_THREADS; + } + } + + + //--------------------------------------------------------------------- + // Reduction steps + //--------------------------------------------------------------------- + + /// Reduction (specialized for summation across uint32 types) + __device__ __forceinline__ unsigned int ReduceStep( + unsigned int input, ///< [in] Calling thread's input item. + cub::Sum /*reduction_op*/, ///< [in] Binary reduction operator + int last_lane, ///< [in] Index of last lane in segment + int offset) ///< [in] Up-offset to pull from + { + unsigned int output; + int shfl_c = last_lane | SHFL_C; // Shuffle control (mask and last_lane) + + // Use predicate set from SHFL to guard against invalid peers + asm volatile( + "{" + " .reg .u32 r0;" + " .reg .pred p;" + " shfl.sync.down.b32 r0|p, %1, %2, %3, %5;" + " @p add.u32 r0, r0, %4;" + " mov.u32 %0, r0;" + "}" + : "=r"(output) : "r"(input), "r"(offset), "r"(shfl_c), "r"(input), "r"(member_mask)); + + return output; + } + + + /// Reduction (specialized for summation across fp32 types) + __device__ __forceinline__ float ReduceStep( + float input, ///< [in] Calling thread's input item. + cub::Sum /*reduction_op*/, ///< [in] Binary reduction operator + int last_lane, ///< [in] Index of last lane in segment + int offset) ///< [in] Up-offset to pull from + { + float output; + int shfl_c = last_lane | SHFL_C; // Shuffle control (mask and last_lane) + + // Use predicate set from SHFL to guard against invalid peers + asm volatile( + "{" + " .reg .f32 r0;" + " .reg .pred p;" + " shfl.sync.down.b32 r0|p, %1, %2, %3, %5;" + " @p add.f32 r0, r0, %4;" + " mov.f32 %0, r0;" + "}" + : "=f"(output) : "f"(input), "r"(offset), "r"(shfl_c), "f"(input), "r"(member_mask)); + + return output; + } + + + /// Reduction (specialized for summation across unsigned long long types) + __device__ __forceinline__ unsigned long long ReduceStep( + unsigned long long input, ///< [in] Calling thread's input item. + cub::Sum /*reduction_op*/, ///< [in] Binary reduction operator + int last_lane, ///< [in] Index of last lane in segment + int offset) ///< [in] Up-offset to pull from + { + unsigned long long output; + int shfl_c = last_lane | SHFL_C; // Shuffle control (mask and last_lane) + + asm volatile( + "{" + " .reg .u32 lo;" + " .reg .u32 hi;" + " .reg .pred p;" + " mov.b64 {lo, hi}, %1;" + " shfl.sync.down.b32 lo|p, lo, %2, %3, %4;" + " shfl.sync.down.b32 hi|p, hi, %2, %3, %4;" + " mov.b64 %0, {lo, hi};" + " @p add.u64 %0, %0, %1;" + "}" + : "=l"(output) : "l"(input), "r"(offset), "r"(shfl_c), "r"(member_mask)); + + return output; + } + + + /// Reduction (specialized for summation across long long types) + __device__ __forceinline__ long long ReduceStep( + long long input, ///< [in] Calling thread's input item. + cub::Sum /*reduction_op*/, ///< [in] Binary reduction operator + int last_lane, ///< [in] Index of last lane in segment + int offset) ///< [in] Up-offset to pull from + { + long long output; + int shfl_c = last_lane | SHFL_C; // Shuffle control (mask and last_lane) + + // Use predicate set from SHFL to guard against invalid peers + asm volatile( + "{" + " .reg .u32 lo;" + " .reg .u32 hi;" + " .reg .pred p;" + " mov.b64 {lo, hi}, %1;" + " shfl.sync.down.b32 lo|p, lo, %2, %3, %4;" + " shfl.sync.down.b32 hi|p, hi, %2, %3, %4;" + " mov.b64 %0, {lo, hi};" + " @p add.s64 %0, %0, %1;" + "}" + : "=l"(output) : "l"(input), "r"(offset), "r"(shfl_c), "r"(member_mask)); + + return output; + } + + + /// Reduction (specialized for summation across double types) + __device__ __forceinline__ double ReduceStep( + double input, ///< [in] Calling thread's input item. + cub::Sum /*reduction_op*/, ///< [in] Binary reduction operator + int last_lane, ///< [in] Index of last lane in segment + int offset) ///< [in] Up-offset to pull from + { + double output; + int shfl_c = last_lane | SHFL_C; // Shuffle control (mask and last_lane) + + // Use predicate set from SHFL to guard against invalid peers + asm volatile( + "{" + " .reg .u32 lo;" + " .reg .u32 hi;" + " .reg .pred p;" + " .reg .f64 r0;" + " mov.b64 %0, %1;" + " mov.b64 {lo, hi}, %1;" + " shfl.sync.down.b32 lo|p, lo, %2, %3, %4;" + " shfl.sync.down.b32 hi|p, hi, %2, %3, %4;" + " mov.b64 r0, {lo, hi};" + " @p add.f64 %0, %0, r0;" + "}" + : "=d"(output) : "d"(input), "r"(offset), "r"(shfl_c), "r"(member_mask)); + + return output; + } + + + /// Reduction (specialized for swizzled ReduceByKeyOp across KeyValuePair types) + template + __device__ __forceinline__ KeyValuePair ReduceStep( + KeyValuePair input, ///< [in] Calling thread's input item. + SwizzleScanOp > /*reduction_op*/, ///< [in] Binary reduction operator + int last_lane, ///< [in] Index of last lane in segment + int offset) ///< [in] Up-offset to pull from + { + KeyValuePair output; + + KeyT other_key = ShuffleDown(input.key, offset, last_lane, member_mask); + + output.key = input.key; + output.value = ReduceStep( + input.value, + cub::Sum(), + last_lane, + offset, + Int2Type::IS_SMALL_UNSIGNED>()); + + if (input.key != other_key) + output.value = input.value; + + return output; + } + + + + /// Reduction (specialized for swizzled ReduceBySegmentOp across KeyValuePair types) + template + __device__ __forceinline__ KeyValuePair ReduceStep( + KeyValuePair input, ///< [in] Calling thread's input item. + SwizzleScanOp > /*reduction_op*/, ///< [in] Binary reduction operator + int last_lane, ///< [in] Index of last lane in segment + int offset) ///< [in] Up-offset to pull from + { + KeyValuePair output; + + output.value = ReduceStep(input.value, cub::Sum(), last_lane, offset, Int2Type::IS_SMALL_UNSIGNED>()); + output.key = ReduceStep(input.key, cub::Sum(), last_lane, offset, Int2Type::IS_SMALL_UNSIGNED>()); + + if (input.key > 0) + output.value = input.value; + + return output; + } + + + /// Reduction step (generic) + template + __device__ __forceinline__ _T ReduceStep( + _T input, ///< [in] Calling thread's input item. + ReductionOp reduction_op, ///< [in] Binary reduction operator + int last_lane, ///< [in] Index of last lane in segment + int offset) ///< [in] Up-offset to pull from + { + _T output = input; + + _T temp = ShuffleDown(output, offset, last_lane, member_mask); + + // Perform reduction op if valid + if (offset + lane_id <= last_lane) + output = reduction_op(input, temp); + + return output; + } + + + /// Reduction step (specialized for small unsigned integers size 32b or less) + template + __device__ __forceinline__ _T ReduceStep( + _T input, ///< [in] Calling thread's input item. + ReductionOp reduction_op, ///< [in] Binary reduction operator + int last_lane, ///< [in] Index of last lane in segment + int offset, ///< [in] Up-offset to pull from + Int2Type /*is_small_unsigned*/) ///< [in] Marker type indicating whether T is a small unsigned integer + { + return ReduceStep(input, reduction_op, last_lane, offset); + } + + + /// Reduction step (specialized for types other than small unsigned integers size 32b or less) + template + __device__ __forceinline__ _T ReduceStep( + _T input, ///< [in] Calling thread's input item. + ReductionOp reduction_op, ///< [in] Binary reduction operator + int last_lane, ///< [in] Index of last lane in segment + int offset, ///< [in] Up-offset to pull from + Int2Type /*is_small_unsigned*/) ///< [in] Marker type indicating whether T is a small unsigned integer + { + return ReduceStep(input, reduction_op, last_lane, offset); + } + + + //--------------------------------------------------------------------- + // Templated inclusive scan iteration + //--------------------------------------------------------------------- + + template + __device__ __forceinline__ void ReduceStep( + T& input, ///< [in] Calling thread's input item. + ReductionOp reduction_op, ///< [in] Binary reduction operator + int last_lane, ///< [in] Index of last lane in segment + Int2Type /*step*/) + { + input = ReduceStep(input, reduction_op, last_lane, 1 << STEP, Int2Type::IS_SMALL_UNSIGNED>()); + + ReduceStep(input, reduction_op, last_lane, Int2Type()); + } + + template + __device__ __forceinline__ void ReduceStep( + T& /*input*/, ///< [in] Calling thread's input item. + ReductionOp /*reduction_op*/, ///< [in] Binary reduction operator + int /*last_lane*/, ///< [in] Index of last lane in segment + Int2Type /*step*/) + {} + + + //--------------------------------------------------------------------- + // Reduction operations + //--------------------------------------------------------------------- + template + __device__ __forceinline__ T ReduceImpl( + Int2Type<0> /* all_lanes_valid */, + T input, ///< [in] Calling thread's input + int valid_items, ///< [in] Total number of valid items across the logical warp + ReductionOp reduction_op) ///< [in] Binary reduction operator + { + int last_lane = valid_items - 1; + + T output = input; + + // Template-iterate reduction steps + ReduceStep(output, reduction_op, last_lane, Int2Type<0>()); + + return output; + } + + template + __device__ __forceinline__ T ReduceImpl( + Int2Type<1> /* all_lanes_valid */, + T input, ///< [in] Calling thread's input + int /* valid_items */, ///< [in] Total number of valid items across the logical warp + ReductionOp reduction_op) ///< [in] Binary reduction operator + { + int last_lane = LOGICAL_WARP_THREADS - 1; + + T output = input; + + // Template-iterate reduction steps + ReduceStep(output, reduction_op, last_lane, Int2Type<0>()); + + return output; + } + + template + __device__ __forceinline__ + typename std::enable_if< + (std::is_same::value || std::is_same::value) + && detail::reduce_add_exists<>::value, T>::type + ReduceImpl(Int2Type<1> /* all_lanes_valid */, + T input, + int /* valid_items */, + cub::Sum /* reduction_op */) + { + T output = input; + + NV_IF_TARGET(NV_PROVIDES_SM_80, + (output = __reduce_add_sync(member_mask, input);), + (output = ReduceImpl(Int2Type<1>{}, + input, + LOGICAL_WARP_THREADS, + cub::Sum{});)); + + return output; + } + + template + __device__ __forceinline__ + typename std::enable_if< + (std::is_same::value || std::is_same::value) + && detail::reduce_min_exists<>::value, T>::type + ReduceImpl(Int2Type<1> /* all_lanes_valid */, + T input, + int /* valid_items */, + cub::Min /* reduction_op */) + { + T output = input; + + NV_IF_TARGET(NV_PROVIDES_SM_80, + (output = __reduce_min_sync(member_mask, input);), + (output = ReduceImpl(Int2Type<1>{}, + input, + LOGICAL_WARP_THREADS, + cub::Min{});)); + + return output; + } + + template + __device__ __forceinline__ + typename std::enable_if< + (std::is_same::value || std::is_same::value) + && detail::reduce_max_exists<>::value, T>::type + ReduceImpl(Int2Type<1> /* all_lanes_valid */, + T input, + int /* valid_items */, + cub::Max /* reduction_op */) + { + T output = input; + + NV_IF_TARGET(NV_PROVIDES_SM_80, + (output = __reduce_max_sync(member_mask, input);), + (output = ReduceImpl(Int2Type<1>{}, + input, + LOGICAL_WARP_THREADS, + cub::Max{});)); + + return output; + } + + /// Reduction + template < + bool ALL_LANES_VALID, ///< Whether all lanes in each warp are contributing a valid fold of items + typename ReductionOp> + __device__ __forceinline__ T Reduce( + T input, ///< [in] Calling thread's input + int valid_items, ///< [in] Total number of valid items across the logical warp + ReductionOp reduction_op) ///< [in] Binary reduction operator + { + return ReduceImpl( + Int2Type{}, input, valid_items, reduction_op); + } + + + /// Segmented reduction + template < + bool HEAD_SEGMENTED, ///< Whether flags indicate a segment-head or a segment-tail + typename FlagT, + typename ReductionOp> + __device__ __forceinline__ T SegmentedReduce( + T input, ///< [in] Calling thread's input + FlagT flag, ///< [in] Whether or not the current lane is a segment head/tail + ReductionOp reduction_op) ///< [in] Binary reduction operator + { + // Get the start flags for each thread in the warp. + int warp_flags = WARP_BALLOT(flag, member_mask); + + // Convert to tail-segmented + if (HEAD_SEGMENTED) + warp_flags >>= 1; + + // Mask out the bits below the current thread + warp_flags &= LaneMaskGe(); + + // Mask of physical lanes outside the logical warp and convert to logical lanemask + if (!IS_ARCH_WARP) + { + warp_flags = (warp_flags & member_mask) >> (warp_id * LOGICAL_WARP_THREADS); + } + + // Mask in the last lane of logical warp + warp_flags |= 1u << (LOGICAL_WARP_THREADS - 1); + + // Find the next set flag + int last_lane = __clz(__brev(warp_flags)); + + T output = input; + +// // Iterate reduction steps +// #pragma unroll +// for (int STEP = 0; STEP < STEPS; STEP++) +// { +// output = ReduceStep(output, reduction_op, last_lane, 1 << STEP, Int2Type::IS_SMALL_UNSIGNED>()); +// } + + // Template-iterate reduction steps + ReduceStep(output, reduction_op, last_lane, Int2Type<0>()); + + return output; + } +}; + + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/warp/specializations/warp_reduce_smem.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/warp/specializations/warp_reduce_smem.cuh new file mode 100644 index 0000000000000000000000000000000000000000..79c7a0ccddd13e2fa56774c0bb09b82a7edc460d --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/warp/specializations/warp_reduce_smem.cuh @@ -0,0 +1,360 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * cub::WarpReduceSmem provides smem-based variants of parallel reduction of items partitioned across a CUDA thread warp. + */ + +#pragma once + +#include "../../config.cuh" +#include "../../thread/thread_operators.cuh" +#include "../../thread/thread_load.cuh" +#include "../../thread/thread_store.cuh" +#include "../../util_type.cuh" + +CUB_NAMESPACE_BEGIN + +/** + * \brief WarpReduceSmem provides smem-based variants of parallel reduction of items partitioned across a CUDA thread warp. + */ +template < + typename T, ///< Data type being reduced + int LOGICAL_WARP_THREADS, ///< Number of threads per logical warp + int LEGACY_PTX_ARCH = 0> ///< The PTX compute capability for which to to specialize this collective +struct WarpReduceSmem +{ + /****************************************************************************** + * Constants and type definitions + ******************************************************************************/ + + enum + { + /// Whether the logical warp size and the PTX warp size coincide + IS_ARCH_WARP = (LOGICAL_WARP_THREADS == CUB_WARP_THREADS(0)), + + /// Whether the logical warp size is a power-of-two + IS_POW_OF_TWO = PowerOfTwo::VALUE, + + /// The number of warp scan steps + STEPS = Log2::VALUE, + + /// The number of threads in half a warp + HALF_WARP_THREADS = 1 << (STEPS - 1), + + /// The number of shared memory elements per warp + WARP_SMEM_ELEMENTS = LOGICAL_WARP_THREADS + HALF_WARP_THREADS, + + /// FlagT status (when not using ballot) + UNSET = 0x0, // Is initially unset + SET = 0x1, // Is initially set + SEEN = 0x2, // Has seen another head flag from a successor peer + }; + + /// Shared memory flag type + typedef unsigned char SmemFlag; + + /// Shared memory storage layout type (1.5 warps-worth of elements for each warp) + struct _TempStorage + { + T reduce[WARP_SMEM_ELEMENTS]; + SmemFlag flags[WARP_SMEM_ELEMENTS]; + }; + + // Alias wrapper allowing storage to be unioned + struct TempStorage : Uninitialized<_TempStorage> {}; + + + /****************************************************************************** + * Thread fields + ******************************************************************************/ + + _TempStorage &temp_storage; + unsigned int lane_id; + unsigned int member_mask; + + + /****************************************************************************** + * Construction + ******************************************************************************/ + + /// Constructor + explicit __device__ __forceinline__ WarpReduceSmem(TempStorage &temp_storage) + : temp_storage(temp_storage.Alias()) + , lane_id(IS_ARCH_WARP ? LaneId() : LaneId() % LOGICAL_WARP_THREADS) + , member_mask( + WarpMask(LaneId() / LOGICAL_WARP_THREADS)) + {} + + /****************************************************************************** + * Utility methods + ******************************************************************************/ + + //--------------------------------------------------------------------- + // Regular reduction + //--------------------------------------------------------------------- + + /** + * Reduction step + */ + template < + bool ALL_LANES_VALID, ///< Whether all lanes in each warp are contributing a valid fold of items + typename ReductionOp, + int STEP> + __device__ __forceinline__ T ReduceStep( + T input, ///< [in] Calling thread's input + int valid_items, ///< [in] Total number of valid items across the logical warp + ReductionOp reduction_op, ///< [in] Reduction operator + Int2Type /*step*/) + { + const int OFFSET = 1 << STEP; + + // Share input through buffer + ThreadStore(&temp_storage.reduce[lane_id], input); + + WARP_SYNC(member_mask); + + // Update input if peer_addend is in range + if ((ALL_LANES_VALID && IS_POW_OF_TWO) || ((lane_id + OFFSET) < valid_items)) + { + T peer_addend = ThreadLoad(&temp_storage.reduce[lane_id + OFFSET]); + input = reduction_op(input, peer_addend); + } + + WARP_SYNC(member_mask); + + return ReduceStep(input, valid_items, reduction_op, Int2Type()); + } + + + /** + * Reduction step (terminate) + */ + template < + bool ALL_LANES_VALID, ///< Whether all lanes in each warp are contributing a valid fold of items + typename ReductionOp> + __device__ __forceinline__ T ReduceStep( + T input, ///< [in] Calling thread's input + int valid_items, ///< [in] Total number of valid items across the logical warp + ReductionOp /*reduction_op*/, ///< [in] Reduction operator + Int2Type /*step*/) + { + return input; + } + + + //--------------------------------------------------------------------- + // Segmented reduction + //--------------------------------------------------------------------- + + + /** + * Ballot-based segmented reduce + */ + template < + bool HEAD_SEGMENTED, ///< Whether flags indicate a segment-head or a segment-tail + typename FlagT, + typename ReductionOp> + __device__ __forceinline__ T SegmentedReduce( + T input, ///< [in] Calling thread's input + FlagT flag, ///< [in] Whether or not the current lane is a segment head/tail + ReductionOp reduction_op, ///< [in] Reduction operator + Int2Type /*has_ballot*/) ///< [in] Marker type for whether the target arch has ballot functionality + { + // Get the start flags for each thread in the warp. + int warp_flags = WARP_BALLOT(flag, member_mask); + + if (!HEAD_SEGMENTED) + warp_flags <<= 1; + + // Keep bits above the current thread. + warp_flags &= LaneMaskGt(); + + // Accommodate packing of multiple logical warps in a single physical warp + if (!IS_ARCH_WARP) + { + warp_flags >>= (LaneId() / LOGICAL_WARP_THREADS) * LOGICAL_WARP_THREADS; + } + + // Find next flag + int next_flag = __clz(__brev(warp_flags)); + + // Clip the next segment at the warp boundary if necessary + if (LOGICAL_WARP_THREADS != 32) + next_flag = CUB_MIN(next_flag, LOGICAL_WARP_THREADS); + + #pragma unroll + for (int STEP = 0; STEP < STEPS; STEP++) + { + const int OFFSET = 1 << STEP; + + // Share input into buffer + ThreadStore(&temp_storage.reduce[lane_id], input); + + WARP_SYNC(member_mask); + + // Update input if peer_addend is in range + if (OFFSET + lane_id < next_flag) + { + T peer_addend = ThreadLoad(&temp_storage.reduce[lane_id + OFFSET]); + input = reduction_op(input, peer_addend); + } + + WARP_SYNC(member_mask); + } + + return input; + } + + + /** + * Smem-based segmented reduce + */ + template < + bool HEAD_SEGMENTED, ///< Whether flags indicate a segment-head or a segment-tail + typename FlagT, + typename ReductionOp> + __device__ __forceinline__ T SegmentedReduce( + T input, ///< [in] Calling thread's input + FlagT flag, ///< [in] Whether or not the current lane is a segment head/tail + ReductionOp reduction_op, ///< [in] Reduction operator + Int2Type /*has_ballot*/) ///< [in] Marker type for whether the target arch has ballot functionality + { + enum + { + UNSET = 0x0, // Is initially unset + SET = 0x1, // Is initially set + SEEN = 0x2, // Has seen another head flag from a successor peer + }; + + // Alias flags onto shared data storage + volatile SmemFlag *flag_storage = temp_storage.flags; + + SmemFlag flag_status = (flag) ? SET : UNSET; + + for (int STEP = 0; STEP < STEPS; STEP++) + { + const int OFFSET = 1 << STEP; + + // Share input through buffer + ThreadStore(&temp_storage.reduce[lane_id], input); + + WARP_SYNC(member_mask); + + // Get peer from buffer + T peer_addend = ThreadLoad(&temp_storage.reduce[lane_id + OFFSET]); + + WARP_SYNC(member_mask); + + // Share flag through buffer + flag_storage[lane_id] = flag_status; + + // Get peer flag from buffer + SmemFlag peer_flag_status = flag_storage[lane_id + OFFSET]; + + // Update input if peer was in range + if (lane_id < LOGICAL_WARP_THREADS - OFFSET) + { + if (HEAD_SEGMENTED) + { + // Head-segmented + if ((flag_status & SEEN) == 0) + { + // Has not seen a more distant head flag + if (peer_flag_status & SET) + { + // Has now seen a head flag + flag_status |= SEEN; + } + else + { + // Peer is not a head flag: grab its count + input = reduction_op(input, peer_addend); + } + + // Update seen status to include that of peer + flag_status |= (peer_flag_status & SEEN); + } + } + else + { + // Tail-segmented. Simply propagate flag status + if (!flag_status) + { + input = reduction_op(input, peer_addend); + flag_status |= peer_flag_status; + } + + } + } + } + + return input; + } + + + /****************************************************************************** + * Interface + ******************************************************************************/ + + /** + * Reduction + */ + template < + bool ALL_LANES_VALID, ///< Whether all lanes in each warp are contributing a valid fold of items + typename ReductionOp> + __device__ __forceinline__ T Reduce( + T input, ///< [in] Calling thread's input + int valid_items, ///< [in] Total number of valid items across the logical warp + ReductionOp reduction_op) ///< [in] Reduction operator + { + return ReduceStep(input, valid_items, reduction_op, Int2Type<0>()); + } + + + /** + * Segmented reduction + */ + template < + bool HEAD_SEGMENTED, ///< Whether flags indicate a segment-head or a segment-tail + typename FlagT, + typename ReductionOp> + __device__ __forceinline__ T SegmentedReduce( + T input, ///< [in] Calling thread's input + FlagT flag, ///< [in] Whether or not the current lane is a segment head/tail + ReductionOp reduction_op) ///< [in] Reduction operator + { + return SegmentedReduce(input, flag, reduction_op, Int2Type()); + } + + +}; + + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/warp/specializations/warp_scan_shfl.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/warp/specializations/warp_scan_shfl.cuh new file mode 100644 index 0000000000000000000000000000000000000000..c2988711c8dfecc523e7fee0380180f9c66b2912 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/warp/specializations/warp_scan_shfl.cuh @@ -0,0 +1,537 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * cub::WarpScanShfl provides SHFL-based variants of parallel prefix scan of items partitioned across a CUDA thread warp. + */ + +#pragma once + +#include "../../config.cuh" +#include "../../thread/thread_operators.cuh" +#include "../../util_type.cuh" +#include "../../util_ptx.cuh" + +CUB_NAMESPACE_BEGIN + +/** + * \brief WarpScanShfl provides SHFL-based variants of parallel prefix scan of items partitioned across a CUDA thread warp. + * + * LOGICAL_WARP_THREADS must be a power-of-two + */ +template < + typename T, ///< Data type being scanned + int LOGICAL_WARP_THREADS, ///< Number of threads per logical warp + int LEGACY_PTX_ARCH = 0> ///< The PTX compute capability for which to to specialize this collective +struct WarpScanShfl +{ + //--------------------------------------------------------------------- + // Constants and type definitions + //--------------------------------------------------------------------- + + enum + { + /// Whether the logical warp size and the PTX warp size coincide + IS_ARCH_WARP = (LOGICAL_WARP_THREADS == CUB_WARP_THREADS(0)), + + /// The number of warp scan steps + STEPS = Log2::VALUE, + + /// The 5-bit SHFL mask for logically splitting warps into sub-segments starts 8-bits up + SHFL_C = (CUB_WARP_THREADS(0) - LOGICAL_WARP_THREADS) << 8 + }; + + template + struct IntegerTraits + { + enum { + ///Whether the data type is a small (32b or less) integer for which we can use a single SFHL instruction per exchange + IS_SMALL_UNSIGNED = (Traits::CATEGORY == UNSIGNED_INTEGER) && (sizeof(S) <= sizeof(unsigned int)) + }; + }; + + /// Shared memory storage layout type + struct TempStorage {}; + + + //--------------------------------------------------------------------- + // Thread fields + //--------------------------------------------------------------------- + + /// Lane index in logical warp + unsigned int lane_id; + + /// Logical warp index in 32-thread physical warp + unsigned int warp_id; + + /// 32-thread physical warp member mask of logical warp + unsigned int member_mask; + + //--------------------------------------------------------------------- + // Construction + //--------------------------------------------------------------------- + + /// Constructor + explicit __device__ __forceinline__ + WarpScanShfl(TempStorage & /*temp_storage*/) + : lane_id(LaneId()) + , warp_id(IS_ARCH_WARP ? 0 : (lane_id / LOGICAL_WARP_THREADS)) + , member_mask(WarpMask(warp_id)) + { + if (!IS_ARCH_WARP) + { + lane_id = lane_id % LOGICAL_WARP_THREADS; + } + } + + + //--------------------------------------------------------------------- + // Inclusive scan steps + //--------------------------------------------------------------------- + + /// Inclusive prefix scan step (specialized for summation across int32 types) + __device__ __forceinline__ int InclusiveScanStep( + int input, ///< [in] Calling thread's input item. + cub::Sum /*scan_op*/, ///< [in] Binary scan operator + int first_lane, ///< [in] Index of first lane in segment + int offset) ///< [in] Up-offset to pull from + { + int output; + int shfl_c = first_lane | SHFL_C; // Shuffle control (mask and first-lane) + + // Use predicate set from SHFL to guard against invalid peers + asm volatile( + "{" + " .reg .s32 r0;" + " .reg .pred p;" + " shfl.sync.up.b32 r0|p, %1, %2, %3, %5;" + " @p add.s32 r0, r0, %4;" + " mov.s32 %0, r0;" + "}" + : "=r"(output) : "r"(input), "r"(offset), "r"(shfl_c), "r"(input), "r"(member_mask)); + + return output; + } + + /// Inclusive prefix scan step (specialized for summation across uint32 types) + __device__ __forceinline__ unsigned int InclusiveScanStep( + unsigned int input, ///< [in] Calling thread's input item. + cub::Sum /*scan_op*/, ///< [in] Binary scan operator + int first_lane, ///< [in] Index of first lane in segment + int offset) ///< [in] Up-offset to pull from + { + unsigned int output; + int shfl_c = first_lane | SHFL_C; // Shuffle control (mask and first-lane) + + // Use predicate set from SHFL to guard against invalid peers + asm volatile( + "{" + " .reg .u32 r0;" + " .reg .pred p;" + " shfl.sync.up.b32 r0|p, %1, %2, %3, %5;" + " @p add.u32 r0, r0, %4;" + " mov.u32 %0, r0;" + "}" + : "=r"(output) : "r"(input), "r"(offset), "r"(shfl_c), "r"(input), "r"(member_mask)); + + return output; + } + + + /// Inclusive prefix scan step (specialized for summation across fp32 types) + __device__ __forceinline__ float InclusiveScanStep( + float input, ///< [in] Calling thread's input item. + cub::Sum /*scan_op*/, ///< [in] Binary scan operator + int first_lane, ///< [in] Index of first lane in segment + int offset) ///< [in] Up-offset to pull from + { + float output; + int shfl_c = first_lane | SHFL_C; // Shuffle control (mask and first-lane) + + // Use predicate set from SHFL to guard against invalid peers + asm volatile( + "{" + " .reg .f32 r0;" + " .reg .pred p;" + " shfl.sync.up.b32 r0|p, %1, %2, %3, %5;" + " @p add.f32 r0, r0, %4;" + " mov.f32 %0, r0;" + "}" + : "=f"(output) : "f"(input), "r"(offset), "r"(shfl_c), "f"(input), "r"(member_mask)); + + return output; + } + + + /// Inclusive prefix scan step (specialized for summation across unsigned long long types) + __device__ __forceinline__ unsigned long long InclusiveScanStep( + unsigned long long input, ///< [in] Calling thread's input item. + cub::Sum /*scan_op*/, ///< [in] Binary scan operator + int first_lane, ///< [in] Index of first lane in segment + int offset) ///< [in] Up-offset to pull from + { + unsigned long long output; + int shfl_c = first_lane | SHFL_C; // Shuffle control (mask and first-lane) + + // Use predicate set from SHFL to guard against invalid peers + asm volatile( + "{" + " .reg .u64 r0;" + " .reg .u32 lo;" + " .reg .u32 hi;" + " .reg .pred p;" + " mov.b64 {lo, hi}, %1;" + " shfl.sync.up.b32 lo|p, lo, %2, %3, %5;" + " shfl.sync.up.b32 hi|p, hi, %2, %3, %5;" + " mov.b64 r0, {lo, hi};" + " @p add.u64 r0, r0, %4;" + " mov.u64 %0, r0;" + "}" + : "=l"(output) : "l"(input), "r"(offset), "r"(shfl_c), "l"(input), "r"(member_mask)); + + return output; + } + + + /// Inclusive prefix scan step (specialized for summation across long long types) + __device__ __forceinline__ long long InclusiveScanStep( + long long input, ///< [in] Calling thread's input item. + cub::Sum /*scan_op*/, ///< [in] Binary scan operator + int first_lane, ///< [in] Index of first lane in segment + int offset) ///< [in] Up-offset to pull from + { + long long output; + int shfl_c = first_lane | SHFL_C; // Shuffle control (mask and first-lane) + + // Use predicate set from SHFL to guard against invalid peers + asm volatile( + "{" + " .reg .s64 r0;" + " .reg .u32 lo;" + " .reg .u32 hi;" + " .reg .pred p;" + " mov.b64 {lo, hi}, %1;" + " shfl.sync.up.b32 lo|p, lo, %2, %3, %5;" + " shfl.sync.up.b32 hi|p, hi, %2, %3, %5;" + " mov.b64 r0, {lo, hi};" + " @p add.s64 r0, r0, %4;" + " mov.s64 %0, r0;" + "}" + : "=l"(output) : "l"(input), "r"(offset), "r"(shfl_c), "l"(input), "r"(member_mask)); + + return output; + } + + + /// Inclusive prefix scan step (specialized for summation across fp64 types) + __device__ __forceinline__ double InclusiveScanStep( + double input, ///< [in] Calling thread's input item. + cub::Sum /*scan_op*/, ///< [in] Binary scan operator + int first_lane, ///< [in] Index of first lane in segment + int offset) ///< [in] Up-offset to pull from + { + double output; + int shfl_c = first_lane | SHFL_C; // Shuffle control (mask and first-lane) + + // Use predicate set from SHFL to guard against invalid peers + asm volatile( + "{" + " .reg .u32 lo;" + " .reg .u32 hi;" + " .reg .pred p;" + " .reg .f64 r0;" + " mov.b64 %0, %1;" + " mov.b64 {lo, hi}, %1;" + " shfl.sync.up.b32 lo|p, lo, %2, %3, %4;" + " shfl.sync.up.b32 hi|p, hi, %2, %3, %4;" + " mov.b64 r0, {lo, hi};" + " @p add.f64 %0, %0, r0;" + "}" + : "=d"(output) : "d"(input), "r"(offset), "r"(shfl_c), "r"(member_mask)); + + return output; + } + + +/* + /// Inclusive prefix scan (specialized for ReduceBySegmentOp across KeyValuePair types) + template + __device__ __forceinline__ KeyValuePairInclusiveScanStep( + KeyValuePair input, ///< [in] Calling thread's input item. + ReduceBySegmentOp scan_op, ///< [in] Binary scan operator + int first_lane, ///< [in] Index of first lane in segment + int offset) ///< [in] Up-offset to pull from + { + KeyValuePair output; + + output.value = InclusiveScanStep(input.value, cub::Sum(), first_lane, offset, Int2Type::IS_SMALL_UNSIGNED>()); + output.key = InclusiveScanStep(input.key, cub::Sum(), first_lane, offset, Int2Type::IS_SMALL_UNSIGNED>()); + + if (input.key > 0) + output.value = input.value; + + return output; + } +*/ + + /// Inclusive prefix scan step (generic) + template + __device__ __forceinline__ _T InclusiveScanStep( + _T input, ///< [in] Calling thread's input item. + ScanOpT scan_op, ///< [in] Binary scan operator + int first_lane, ///< [in] Index of first lane in segment + int offset) ///< [in] Up-offset to pull from + { + _T temp = ShuffleUp(input, offset, first_lane, member_mask); + + // Perform scan op if from a valid peer + _T output = scan_op(temp, input); + if (static_cast(lane_id) < first_lane + offset) + output = input; + + return output; + } + + + /// Inclusive prefix scan step (specialized for small integers size 32b or less) + template + __device__ __forceinline__ _T InclusiveScanStep( + _T input, ///< [in] Calling thread's input item. + ScanOpT scan_op, ///< [in] Binary scan operator + int first_lane, ///< [in] Index of first lane in segment + int offset, ///< [in] Up-offset to pull from + Int2Type /*is_small_unsigned*/) ///< [in] Marker type indicating whether T is a small integer + { + return InclusiveScanStep(input, scan_op, first_lane, offset); + } + + + /// Inclusive prefix scan step (specialized for types other than small integers size 32b or less) + template + __device__ __forceinline__ _T InclusiveScanStep( + _T input, ///< [in] Calling thread's input item. + ScanOpT scan_op, ///< [in] Binary scan operator + int first_lane, ///< [in] Index of first lane in segment + int offset, ///< [in] Up-offset to pull from + Int2Type /*is_small_unsigned*/) ///< [in] Marker type indicating whether T is a small integer + { + return InclusiveScanStep(input, scan_op, first_lane, offset); + } + + + /****************************************************************************** + * Interface + ******************************************************************************/ + + //--------------------------------------------------------------------- + // Broadcast + //--------------------------------------------------------------------- + + /// Broadcast + __device__ __forceinline__ T Broadcast( + T input, ///< [in] The value to broadcast + int src_lane) ///< [in] Which warp lane is to do the broadcasting + { + return ShuffleIndex(input, src_lane, member_mask); + } + + + //--------------------------------------------------------------------- + // Inclusive operations + //--------------------------------------------------------------------- + + /// Inclusive scan + template + __device__ __forceinline__ void InclusiveScan( + _T input, ///< [in] Calling thread's input item. + _T &inclusive_output, ///< [out] Calling thread's output item. May be aliased with \p input. + ScanOpT scan_op) ///< [in] Binary scan operator + { + inclusive_output = input; + + // Iterate scan steps + int segment_first_lane = 0; + + // Iterate scan steps + #pragma unroll + for (int STEP = 0; STEP < STEPS; STEP++) + { + inclusive_output = InclusiveScanStep( + inclusive_output, + scan_op, + segment_first_lane, + (1 << STEP), + Int2Type::IS_SMALL_UNSIGNED>()); + } + + } + + /// Inclusive scan, specialized for reduce-value-by-key + template + __device__ __forceinline__ void InclusiveScan( + KeyValuePair input, ///< [in] Calling thread's input item. + KeyValuePair &inclusive_output, ///< [out] Calling thread's output item. May be aliased with \p input. + ReduceByKeyOp scan_op) ///< [in] Binary scan operator + { + inclusive_output = input; + + KeyT pred_key = ShuffleUp(inclusive_output.key, 1, 0, member_mask); + + unsigned int ballot = WARP_BALLOT((pred_key != inclusive_output.key), member_mask); + + // Mask away all lanes greater than ours + ballot = ballot & LaneMaskLe(); + + // Find index of first set bit + int segment_first_lane = CUB_MAX(0, 31 - __clz(ballot)); + + // Iterate scan steps + #pragma unroll + for (int STEP = 0; STEP < STEPS; STEP++) + { + inclusive_output.value = InclusiveScanStep( + inclusive_output.value, + scan_op.op, + segment_first_lane, + (1 << STEP), + Int2Type::IS_SMALL_UNSIGNED>()); + } + } + + + /// Inclusive scan with aggregate + template + __device__ __forceinline__ void InclusiveScan( + T input, ///< [in] Calling thread's input item. + T &inclusive_output, ///< [out] Calling thread's output item. May be aliased with \p input. + ScanOpT scan_op, ///< [in] Binary scan operator + T &warp_aggregate) ///< [out] Warp-wide aggregate reduction of input items. + { + InclusiveScan(input, inclusive_output, scan_op); + + // Grab aggregate from last warp lane + warp_aggregate = ShuffleIndex(inclusive_output, LOGICAL_WARP_THREADS - 1, member_mask); + } + + + //--------------------------------------------------------------------- + // Get exclusive from inclusive + //--------------------------------------------------------------------- + + /// Update inclusive and exclusive using input and inclusive + template + __device__ __forceinline__ void Update( + T /*input*/, ///< [in] + T &inclusive, ///< [in, out] + T &exclusive, ///< [out] + ScanOpT /*scan_op*/, ///< [in] + IsIntegerT /*is_integer*/) ///< [in] + { + // initial value unknown + exclusive = ShuffleUp(inclusive, 1, 0, member_mask); + } + + /// Update inclusive and exclusive using input and inclusive (specialized for summation of integer types) + __device__ __forceinline__ void Update( + T input, + T &inclusive, + T &exclusive, + cub::Sum /*scan_op*/, + Int2Type /*is_integer*/) + { + // initial value presumed 0 + exclusive = inclusive - input; + } + + /// Update inclusive and exclusive using initial value using input, inclusive, and initial value + template + __device__ __forceinline__ void Update ( + T /*input*/, + T &inclusive, + T &exclusive, + ScanOpT scan_op, + T initial_value, + IsIntegerT /*is_integer*/) + { + inclusive = scan_op(initial_value, inclusive); + exclusive = ShuffleUp(inclusive, 1, 0, member_mask); + + if (lane_id == 0) + exclusive = initial_value; + } + + /// Update inclusive and exclusive using initial value using input and inclusive (specialized for summation of integer types) + __device__ __forceinline__ void Update ( + T input, + T &inclusive, + T &exclusive, + cub::Sum scan_op, + T initial_value, + Int2Type /*is_integer*/) + { + inclusive = scan_op(initial_value, inclusive); + exclusive = inclusive - input; + } + + + /// Update inclusive, exclusive, and warp aggregate using input and inclusive + template + __device__ __forceinline__ void Update ( + T input, + T &inclusive, + T &exclusive, + T &warp_aggregate, + ScanOpT scan_op, + IsIntegerT is_integer) + { + warp_aggregate = ShuffleIndex(inclusive, LOGICAL_WARP_THREADS - 1, member_mask); + Update(input, inclusive, exclusive, scan_op, is_integer); + } + + /// Update inclusive, exclusive, and warp aggregate using input, inclusive, and initial value + template + __device__ __forceinline__ void Update ( + T input, + T &inclusive, + T &exclusive, + T &warp_aggregate, + ScanOpT scan_op, + T initial_value, + IsIntegerT is_integer) + { + warp_aggregate = ShuffleIndex(inclusive, LOGICAL_WARP_THREADS - 1, member_mask); + Update(input, inclusive, exclusive, scan_op, initial_value, is_integer); + } + + + +}; + + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/warp/specializations/warp_scan_smem.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/warp/specializations/warp_scan_smem.cuh new file mode 100644 index 0000000000000000000000000000000000000000..bd17118e999617a99d5a9b7fdc4af588e3af73c1 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/warp/specializations/warp_scan_smem.cuh @@ -0,0 +1,388 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * cub::WarpScanSmem provides smem-based variants of parallel prefix scan of items partitioned across a CUDA thread warp. + */ + +#pragma once + +#include "../../config.cuh" +#include "../../thread/thread_operators.cuh" +#include "../../thread/thread_load.cuh" +#include "../../thread/thread_store.cuh" +#include "../../util_type.cuh" + +CUB_NAMESPACE_BEGIN + +/** + * \brief WarpScanSmem provides smem-based variants of parallel prefix scan of items partitioned across a CUDA thread warp. + */ +template < + typename T, ///< Data type being scanned + int LOGICAL_WARP_THREADS, ///< Number of threads per logical warp + int LEGACY_PTX_ARCH = 0> ///< The PTX compute capability for which to to specialize this collective +struct WarpScanSmem +{ + /****************************************************************************** + * Constants and type definitions + ******************************************************************************/ + + enum + { + /// Whether the logical warp size and the PTX warp size coincide + IS_ARCH_WARP = (LOGICAL_WARP_THREADS == CUB_WARP_THREADS(0)), + + /// The number of warp scan steps + STEPS = Log2::VALUE, + + /// The number of threads in half a warp + HALF_WARP_THREADS = 1 << (STEPS - 1), + + /// The number of shared memory elements per warp + WARP_SMEM_ELEMENTS = LOGICAL_WARP_THREADS + HALF_WARP_THREADS, + }; + + /// Storage cell type (workaround for SM1x compiler bugs with custom-ops like Max() on signed chars) + using CellT = T; + + /// Shared memory storage layout type (1.5 warps-worth of elements for each warp) + typedef CellT _TempStorage[WARP_SMEM_ELEMENTS]; + + // Alias wrapper allowing storage to be unioned + struct TempStorage : Uninitialized<_TempStorage> {}; + + + /****************************************************************************** + * Thread fields + ******************************************************************************/ + + _TempStorage &temp_storage; + unsigned int lane_id; + unsigned int member_mask; + + + /****************************************************************************** + * Construction + ******************************************************************************/ + + /// Constructor + explicit __device__ __forceinline__ WarpScanSmem( + TempStorage &temp_storage) + : + temp_storage(temp_storage.Alias()), + + lane_id(IS_ARCH_WARP ? + LaneId() : + LaneId() % LOGICAL_WARP_THREADS), + + member_mask( + WarpMask(LaneId() / LOGICAL_WARP_THREADS)) + {} + + + /****************************************************************************** + * Utility methods + ******************************************************************************/ + + /// Basic inclusive scan iteration (template unrolled, inductive-case specialization) + template < + bool HAS_IDENTITY, + int STEP, + typename ScanOp> + __device__ __forceinline__ void ScanStep( + T &partial, + ScanOp scan_op, + Int2Type /*step*/) + { + const int OFFSET = 1 << STEP; + + // Share partial into buffer + ThreadStore(&temp_storage[HALF_WARP_THREADS + lane_id], (CellT) partial); + + WARP_SYNC(member_mask); + + // Update partial if addend is in range + if (HAS_IDENTITY || (lane_id >= OFFSET)) + { + T addend = (T) ThreadLoad(&temp_storage[HALF_WARP_THREADS + lane_id - OFFSET]); + partial = scan_op(addend, partial); + } + WARP_SYNC(member_mask); + + ScanStep(partial, scan_op, Int2Type()); + } + + + /// Basic inclusive scan iteration(template unrolled, base-case specialization) + template < + bool HAS_IDENTITY, + typename ScanOp> + __device__ __forceinline__ void ScanStep( + T &/*partial*/, + ScanOp /*scan_op*/, + Int2Type /*step*/) + {} + + + /// Inclusive prefix scan (specialized for summation across primitive types) + __device__ __forceinline__ void InclusiveScan( + T input, ///< [in] Calling thread's input item. + T &output, ///< [out] Calling thread's output item. May be aliased with \p input. + Sum scan_op, ///< [in] Binary scan operator + Int2Type /*is_primitive*/) ///< [in] Marker type indicating whether T is primitive type + { + T identity = 0; + ThreadStore(&temp_storage[lane_id], (CellT) identity); + + WARP_SYNC(member_mask); + + // Iterate scan steps + output = input; + ScanStep(output, scan_op, Int2Type<0>()); + } + + + /// Inclusive prefix scan + template + __device__ __forceinline__ void InclusiveScan( + T input, ///< [in] Calling thread's input item. + T &output, ///< [out] Calling thread's output item. May be aliased with \p input. + ScanOp scan_op, ///< [in] Binary scan operator + Int2Type /*is_primitive*/) ///< [in] Marker type indicating whether T is primitive type + { + // Iterate scan steps + output = input; + ScanStep(output, scan_op, Int2Type<0>()); + } + + + /****************************************************************************** + * Interface + ******************************************************************************/ + + //--------------------------------------------------------------------- + // Broadcast + //--------------------------------------------------------------------- + + /// Broadcast + __device__ __forceinline__ T Broadcast( + T input, ///< [in] The value to broadcast + unsigned int src_lane) ///< [in] Which warp lane is to do the broadcasting + { + if (lane_id == src_lane) + { + ThreadStore(temp_storage, (CellT) input); + } + + WARP_SYNC(member_mask); + + return (T)ThreadLoad(temp_storage); + } + + + //--------------------------------------------------------------------- + // Inclusive operations + //--------------------------------------------------------------------- + + /// Inclusive scan + template + __device__ __forceinline__ void InclusiveScan( + T input, ///< [in] Calling thread's input item. + T &inclusive_output, ///< [out] Calling thread's output item. May be aliased with \p input. + ScanOp scan_op) ///< [in] Binary scan operator + { + InclusiveScan(input, inclusive_output, scan_op, Int2Type::PRIMITIVE>()); + } + + + /// Inclusive scan with aggregate + template + __device__ __forceinline__ void InclusiveScan( + T input, ///< [in] Calling thread's input item. + T &inclusive_output, ///< [out] Calling thread's output item. May be aliased with \p input. + ScanOp scan_op, ///< [in] Binary scan operator + T &warp_aggregate) ///< [out] Warp-wide aggregate reduction of input items. + { + InclusiveScan(input, inclusive_output, scan_op); + + // Retrieve aggregate + ThreadStore(&temp_storage[HALF_WARP_THREADS + lane_id], (CellT) inclusive_output); + + WARP_SYNC(member_mask); + + warp_aggregate = (T) ThreadLoad(&temp_storage[WARP_SMEM_ELEMENTS - 1]); + + WARP_SYNC(member_mask); + } + + + //--------------------------------------------------------------------- + // Get exclusive from inclusive + //--------------------------------------------------------------------- + + /// Update inclusive and exclusive using input and inclusive + template + __device__ __forceinline__ void Update( + T /*input*/, ///< [in] + T &inclusive, ///< [in, out] + T &exclusive, ///< [out] + ScanOpT /*scan_op*/, ///< [in] + IsIntegerT /*is_integer*/) ///< [in] + { + // initial value unknown + ThreadStore(&temp_storage[HALF_WARP_THREADS + lane_id], (CellT) inclusive); + + WARP_SYNC(member_mask); + + exclusive = (T) ThreadLoad(&temp_storage[HALF_WARP_THREADS + lane_id - 1]); + } + + /// Update inclusive and exclusive using input and inclusive (specialized for summation of integer types) + __device__ __forceinline__ void Update( + T input, + T &inclusive, + T &exclusive, + cub::Sum /*scan_op*/, + Int2Type /*is_integer*/) + { + // initial value presumed 0 + exclusive = inclusive - input; + } + + /// Update inclusive and exclusive using initial value using input, inclusive, and initial value + template + __device__ __forceinline__ void Update ( + T /*input*/, + T &inclusive, + T &exclusive, + ScanOpT scan_op, + T initial_value, + IsIntegerT /*is_integer*/) + { + inclusive = scan_op(initial_value, inclusive); + ThreadStore(&temp_storage[HALF_WARP_THREADS + lane_id], (CellT) inclusive); + + WARP_SYNC(member_mask); + + exclusive = (T) ThreadLoad(&temp_storage[HALF_WARP_THREADS + lane_id - 1]); + if (lane_id == 0) + exclusive = initial_value; + } + + /// Update inclusive and exclusive using initial value using input and inclusive (specialized for summation of integer types) + __device__ __forceinline__ void Update ( + T input, + T &inclusive, + T &exclusive, + cub::Sum scan_op, + T initial_value, + Int2Type /*is_integer*/) + { + inclusive = scan_op(initial_value, inclusive); + exclusive = inclusive - input; + } + + + /// Update inclusive, exclusive, and warp aggregate using input and inclusive + template + __device__ __forceinline__ void Update ( + T /*input*/, + T &inclusive, + T &exclusive, + T &warp_aggregate, + ScanOpT /*scan_op*/, + IsIntegerT /*is_integer*/) + { + // Initial value presumed to be unknown or identity (either way our padding is correct) + ThreadStore(&temp_storage[HALF_WARP_THREADS + lane_id], (CellT) inclusive); + + WARP_SYNC(member_mask); + + exclusive = (T) ThreadLoad(&temp_storage[HALF_WARP_THREADS + lane_id - 1]); + warp_aggregate = (T) ThreadLoad(&temp_storage[WARP_SMEM_ELEMENTS - 1]); + } + + /// Update inclusive, exclusive, and warp aggregate using input and inclusive (specialized for summation of integer types) + __device__ __forceinline__ void Update ( + T input, + T &inclusive, + T &exclusive, + T &warp_aggregate, + cub::Sum /*scan_o*/, + Int2Type /*is_integer*/) + { + // Initial value presumed to be unknown or identity (either way our padding is correct) + ThreadStore(&temp_storage[HALF_WARP_THREADS + lane_id], (CellT) inclusive); + + WARP_SYNC(member_mask); + + warp_aggregate = (T) ThreadLoad(&temp_storage[WARP_SMEM_ELEMENTS - 1]); + exclusive = inclusive - input; + } + + /// Update inclusive, exclusive, and warp aggregate using input, inclusive, and initial value + template + __device__ __forceinline__ void Update ( + T /*input*/, + T &inclusive, + T &exclusive, + T &warp_aggregate, + ScanOpT scan_op, + T initial_value, + IsIntegerT /*is_integer*/) + { + // Broadcast warp aggregate + ThreadStore(&temp_storage[HALF_WARP_THREADS + lane_id], (CellT) inclusive); + + WARP_SYNC(member_mask); + + warp_aggregate = (T) ThreadLoad(&temp_storage[WARP_SMEM_ELEMENTS - 1]); + + WARP_SYNC(member_mask); + + // Update inclusive with initial value + inclusive = scan_op(initial_value, inclusive); + + // Get exclusive from exclusive + ThreadStore(&temp_storage[HALF_WARP_THREADS + lane_id - 1], (CellT) inclusive); + + WARP_SYNC(member_mask); + + exclusive = (T) ThreadLoad(&temp_storage[HALF_WARP_THREADS + lane_id - 2]); + + if (lane_id == 0) + exclusive = initial_value; + } + + +}; + + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/warp/warp_exchange.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/warp/warp_exchange.cuh new file mode 100644 index 0000000000000000000000000000000000000000..c1d20f5233b0e4e3b4fbcef80d7315e90cb09804 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/warp/warp_exchange.cuh @@ -0,0 +1,472 @@ +/****************************************************************************** + * Copyright (c) 2011-2021, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * @file + * The cub::WarpExchange class provides [collective](index.html#sec0) + * methods for rearranging data partitioned across a CUDA warp. + */ + +#pragma once + +#include +#include +#include + + +CUB_NAMESPACE_BEGIN + + +/** + * @brief The WarpExchange class provides [collective](index.html#sec0) + * methods for rearranging data partitioned across a CUDA warp. + * @ingroup WarpModule + * + * @tparam T + * The data type to be exchanged. + * + * @tparam ITEMS_PER_THREAD + * The number of items partitioned onto each thread. + * + * @tparam LOGICAL_WARP_THREADS + * [optional] The number of threads per "logical" warp (may be less + * than the number of hardware warp threads). Default is the warp size of the + * targeted CUDA compute-capability (e.g., 32 threads for SM86). Must be a + * power of two. + * + * @tparam LEGACY_PTX_ARCH + * Unused. + * + * @par Overview + * - It is commonplace for a warp of threads to rearrange data items between + * threads. For example, the global memory accesses prefer patterns where + * data items are "striped" across threads (where consecutive threads access + * consecutive items), yet most warp-wide operations prefer a "blocked" + * partitioning of items across threads (where consecutive items belong to a + * single thread). + * - WarpExchange supports the following types of data exchanges: + * - Transposing between [blocked](index.html#sec5sec3) and + * [striped](index.html#sec5sec3) arrangements + * - Scattering ranked items to a + * [striped arrangement](index.html#sec5sec3) + * + * @par A Simple Example + * @par + * The code snippet below illustrates the conversion from a "blocked" to a + * "striped" arrangement of 64 integer items partitioned across 16 threads where + * each thread owns 4 items. + * @par + * @code + * #include // or equivalently + * + * __global__ void ExampleKernel(int *d_data, ...) + * { + * constexpr int warp_threads = 16; + * constexpr int block_threads = 256; + * constexpr int items_per_thread = 4; + * constexpr int warps_per_block = block_threads / warp_threads; + * const int warp_id = static_cast(threadIdx.x) / warp_threads; + * + * // Specialize WarpExchange for a virtual warp of 16 threads owning 4 integer items each + * using WarpExchangeT = + * cub::WarpExchange; + * + * // Allocate shared memory for WarpExchange + * __shared__ typename WarpExchangeT::TempStorage temp_storage[warps_per_block]; + * + * // Load a tile of data striped across threads + * int thread_data[items_per_thread]; + * // ... + * + * // Collectively exchange data into a blocked arrangement across threads + * WarpExchangeT(temp_storage[warp_id]).StripedToBlocked(thread_data, thread_data); + * @endcode + * @par + * Suppose the set of striped input @p thread_data across the block of threads + * is { [0,16,32,48], [1,17,33,49], ..., [15, 32, 47, 63] }. + * The corresponding output @p thread_data in those threads will be + * { [0,1,2,3], [4,5,6,7], [8,9,10,11], ..., [60,61,62,63] }. + */ +template +class WarpExchange +{ + static_assert(PowerOfTwo::VALUE, + "LOGICAL_WARP_THREADS must be a power of two"); + + constexpr static int ITEMS_PER_TILE = + ITEMS_PER_THREAD * LOGICAL_WARP_THREADS + 1; + + constexpr static bool IS_ARCH_WARP = LOGICAL_WARP_THREADS == CUB_WARP_THREADS(0); + + constexpr static int LOG_SMEM_BANKS = CUB_LOG_SMEM_BANKS(0); + + // Insert padding if the number of items per thread is a power of two + // and > 4 (otherwise we can typically use 128b loads) + constexpr static bool INSERT_PADDING = (ITEMS_PER_THREAD > 4) && + (PowerOfTwo::VALUE); + + constexpr static int PADDING_ITEMS = INSERT_PADDING + ? (ITEMS_PER_TILE >> LOG_SMEM_BANKS) + : 0; + + union _TempStorage + { + InputT items_shared[ITEMS_PER_TILE + PADDING_ITEMS]; + }; // union TempStorage + + /// Shared storage reference + _TempStorage &temp_storage; + + const unsigned int lane_id; + const unsigned int warp_id; + const unsigned int member_mask; + +public: + + /// \smemstorage{WarpExchange} + struct TempStorage : Uninitialized<_TempStorage> {}; + + /*************************************************************************//** + * @name Collective constructors + ****************************************************************************/ + //@{ + + WarpExchange() = delete; + + /** + * @brief Collective constructor using the specified memory allocation as + * temporary storage. + */ + explicit __device__ __forceinline__ + WarpExchange(TempStorage &temp_storage) + : temp_storage(temp_storage.Alias()) + , lane_id(IS_ARCH_WARP ? LaneId() : (LaneId() % LOGICAL_WARP_THREADS)) + , warp_id(IS_ARCH_WARP ? 0 : (LaneId() / LOGICAL_WARP_THREADS)) + , member_mask(WarpMask(warp_id)) + { + + } + + //@} end member group + /*************************************************************************//** + * @name Data movement + ****************************************************************************/ + //@{ + + /** + * @brief Transposes data items from blocked arrangement to + * striped arrangement. + * + * @par + * \smemreuse + * + * @par Snippet + * The code snippet below illustrates the conversion from a "blocked" to a + * "striped" arrangement of 64 integer items partitioned across 16 threads + * where each thread owns 4 items. + * @par + * @code + * #include // or equivalently + * + * __global__ void ExampleKernel(int *d_data, ...) + * { + * constexpr int warp_threads = 16; + * constexpr int block_threads = 256; + * constexpr int items_per_thread = 4; + * constexpr int warps_per_block = block_threads / warp_threads; + * const int warp_id = static_cast(threadIdx.x) / warp_threads; + * + * // Specialize WarpExchange for a virtual warp of 16 threads owning 4 integer items each + * using WarpExchangeT = cub::WarpExchange; + * + * // Allocate shared memory for WarpExchange + * __shared__ typename WarpExchangeT::TempStorage temp_storage[warps_per_block]; + * + * // Obtain a segment of consecutive items that are blocked across threads + * int thread_data[items_per_thread]; + * // ... + * + * // Collectively exchange data into a striped arrangement across threads + * WarpExchangeT(temp_storage[warp_id]).BlockedToStriped(thread_data, thread_data); + * @endcode + * @par + * Suppose the set of striped input @p thread_data across the block of threads + * is { [0,1,2,3], [4,5,6,7], [8,9,10,11], ..., [60,61,62,63] }. + * The corresponding output @p thread_data in those threads will be + * { [0,16,32,48], [1,17,33,49], ..., [15, 32, 47, 63] }. + * + * @param[in] input_items + * Items to exchange, converting between blocked and + * striped arrangements. + * + * @param[out] output_items + * Items from exchange, converting between striped and + * blocked arrangements. May be aliased to @p input_items. + */ + template + __device__ __forceinline__ void + BlockedToStriped(const InputT (&input_items)[ITEMS_PER_THREAD], + OutputT (&output_items)[ITEMS_PER_THREAD]) + { + for (int item = 0; item < ITEMS_PER_THREAD; item++) + { + const int idx = ITEMS_PER_THREAD * lane_id + item; + temp_storage.items_shared[idx] = input_items[item]; + } + WARP_SYNC(member_mask); + + for (int item = 0; item < ITEMS_PER_THREAD; item++) + { + const int idx = LOGICAL_WARP_THREADS * item + lane_id; + output_items[item] = temp_storage.items_shared[idx]; + } + } + + /** + * @brief Transposes data items from striped arrangement to + * blocked arrangement. + * + * @par + * \smemreuse + * + * @par Snippet + * The code snippet below illustrates the conversion from a "striped" to a + * "blocked" arrangement of 64 integer items partitioned across 16 threads + * where each thread owns 4 items. + * @par + * @code + * #include // or equivalently + * + * __global__ void ExampleKernel(int *d_data, ...) + * { + * constexpr int warp_threads = 16; + * constexpr int block_threads = 256; + * constexpr int items_per_thread = 4; + * constexpr int warps_per_block = block_threads / warp_threads; + * const int warp_id = static_cast(threadIdx.x) / warp_threads; + * + * // Specialize WarpExchange for a virtual warp of 16 threads owning 4 integer items each + * using WarpExchangeT = cub::WarpExchange; + * + * // Allocate shared memory for WarpExchange + * __shared__ typename WarpExchangeT::TempStorage temp_storage[warps_per_block]; + * + * // Load a tile of data striped across threads + * int thread_data[items_per_thread]; + * // ... + * + * // Collectively exchange data into a blocked arrangement across threads + * WarpExchangeT(temp_storage[warp_id]).StripedToBlocked(thread_data, thread_data); + * @endcode + * @par + * Suppose the set of striped input @p thread_data across the block of threads + * is { [0,16,32,48], [1,17,33,49], ..., [15, 32, 47, 63] }. + * The corresponding output @p thread_data in those threads will be + * { [0,1,2,3], [4,5,6,7], [8,9,10,11], ..., [60,61,62,63] }. + * + * @param[in] input_items + * Items to exchange + * + * @param[out] output_items + * Items from exchange. May be aliased to @p input_items. + */ + template + __device__ __forceinline__ void + StripedToBlocked(const InputT (&input_items)[ITEMS_PER_THREAD], + OutputT (&output_items)[ITEMS_PER_THREAD]) + { + for (int item = 0; item < ITEMS_PER_THREAD; item++) + { + const int idx = LOGICAL_WARP_THREADS * item + lane_id; + temp_storage.items_shared[idx] = input_items[item]; + } + WARP_SYNC(member_mask); + + for (int item = 0; item < ITEMS_PER_THREAD; item++) + { + const int idx = ITEMS_PER_THREAD * lane_id + item; + output_items[item] = temp_storage.items_shared[idx]; + } + } + + /** + * @brief Exchanges valid data items annotated by rank + * into striped arrangement. + * + * @par + * \smemreuse + * + * @par Snippet + * The code snippet below illustrates the conversion from a "scatter" to a + * "striped" arrangement of 64 integer items partitioned across 16 threads + * where each thread owns 4 items. + * @par + * @code + * #include // or equivalently + * + * __global__ void ExampleKernel(int *d_data, ...) + * { + * constexpr int warp_threads = 16; + * constexpr int block_threads = 256; + * constexpr int items_per_thread = 4; + * constexpr int warps_per_block = block_threads / warp_threads; + * const int warp_id = static_cast(threadIdx.x) / warp_threads; + * + * // Specialize WarpExchange for a virtual warp of 16 threads owning 4 integer items each + * using WarpExchangeT = cub::WarpExchange; + * + * // Allocate shared memory for WarpExchange + * __shared__ typename WarpExchangeT::TempStorage temp_storage[warps_per_block]; + * + * // Obtain a segment of consecutive items that are blocked across threads + * int thread_data[items_per_thread]; + * int thread_ranks[items_per_thread]; + * // ... + * + * // Collectively exchange data into a striped arrangement across threads + * WarpExchangeT(temp_storage[warp_id]).ScatterToStriped( + * thread_data, thread_ranks); + * @endcode + * @par + * Suppose the set of input @p thread_data across the block of threads + * is `{ [0,1,2,3], [4,5,6,7], ..., [60,61,62,63] }`, and the set of + * @p thread_ranks is `{ [63,62,61,60], ..., [7,6,5,4], [3,2,1,0] }`. The + * corresponding output @p thread_data in those threads will be + * `{ [63, 47, 31, 15], [62, 46, 30, 14], ..., [48, 32, 16, 0] }`. + * + * @tparam OffsetT [inferred] Signed integer type for local offsets + * + * @param[in,out] items Items to exchange + * @param[in] ranks Corresponding scatter ranks + */ + template + __device__ __forceinline__ void + ScatterToStriped(InputT (&items)[ITEMS_PER_THREAD], + OffsetT (&ranks)[ITEMS_PER_THREAD]) + { + ScatterToStriped(items, items, ranks); + } + + /** + * @brief Exchanges valid data items annotated by rank + * into striped arrangement. + * + * @par + * \smemreuse + * + * @par Snippet + * The code snippet below illustrates the conversion from a "scatter" to a + * "striped" arrangement of 64 integer items partitioned across 16 threads + * where each thread owns 4 items. + * @par + * @code + * #include // or equivalently + * + * __global__ void ExampleKernel(int *d_data, ...) + * { + * constexpr int warp_threads = 16; + * constexpr int block_threads = 256; + * constexpr int items_per_thread = 4; + * constexpr int warps_per_block = block_threads / warp_threads; + * const int warp_id = static_cast(threadIdx.x) / warp_threads; + * + * // Specialize WarpExchange for a virtual warp of 16 threads owning 4 integer items each + * using WarpExchangeT = cub::WarpExchange; + * + * // Allocate shared memory for WarpExchange + * __shared__ typename WarpExchangeT::TempStorage temp_storage[warps_per_block]; + * + * // Obtain a segment of consecutive items that are blocked across threads + * int thread_input[items_per_thread]; + * int thread_ranks[items_per_thread]; + * // ... + * + * // Collectively exchange data into a striped arrangement across threads + * int thread_output[items_per_thread]; + * WarpExchangeT(temp_storage[warp_id]).ScatterToStriped( + * thread_input, thread_output, thread_ranks); + * @endcode + * @par + * Suppose the set of input @p thread_input across the block of threads + * is `{ [0,1,2,3], [4,5,6,7], ..., [60,61,62,63] }`, and the set of + * @p thread_ranks is `{ [63,62,61,60], ..., [7,6,5,4], [3,2,1,0] }`. The + * corresponding @p thread_output in those threads will be + * `{ [63, 47, 31, 15], [62, 46, 30, 14], ..., [48, 32, 16, 0] }`. + * + * @tparam OffsetT [inferred] Signed integer type for local offsets + * + * @param[in] input_items + * Items to exchange + * + * @param[out] output_items + * Items from exchange. May be aliased to @p input_items. + * + * @param[in] ranks + * Corresponding scatter ranks + */ + template + __device__ __forceinline__ void + ScatterToStriped(const InputT (&input_items)[ITEMS_PER_THREAD], + OutputT (&output_items)[ITEMS_PER_THREAD], + OffsetT (&ranks)[ITEMS_PER_THREAD]) + { + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + { + if (INSERT_PADDING) + { + ranks[ITEM] = SHR_ADD(ranks[ITEM], LOG_SMEM_BANKS, ranks[ITEM]); + } + + temp_storage.items_shared[ranks[ITEM]] = input_items[ITEM]; + } + + WARP_SYNC(member_mask); + + #pragma unroll + for (int ITEM = 0; ITEM < ITEMS_PER_THREAD; ITEM++) + { + int item_offset = (ITEM * LOGICAL_WARP_THREADS) + lane_id; + + if (INSERT_PADDING) + { + item_offset = SHR_ADD(item_offset, LOG_SMEM_BANKS, item_offset); + } + + output_items[ITEM] = temp_storage.items_shared[item_offset]; + } + } + + //@} end member group +}; + + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/warp/warp_load.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/warp/warp_load.cuh new file mode 100644 index 0000000000000000000000000000000000000000..664bf1185bd0c8dbf168097480ca742c116b9bbd --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/warp/warp_load.cuh @@ -0,0 +1,690 @@ +/****************************************************************************** + * Copyright (c) 2011-2021, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * @file + * Operations for reading linear tiles of data into the CUDA warp. + */ + +#pragma once + +#include +#include + +#include +#include +#include +#include +#include +#include + + +CUB_NAMESPACE_BEGIN + + +/** + * @brief cub::WarpLoadAlgorithm enumerates alternative algorithms for + * cub::WarpLoad to read a linear segment of data from memory into a + * a CUDA warp. + */ +enum WarpLoadAlgorithm +{ + /** + * @par Overview + * + * A [blocked arrangement](index.html#sec5sec3) of data is read + * directly from memory. + * + * @par Performance Considerations + * The utilization of memory transactions (coalescing) decreases as the + * access stride between threads increases (i.e., the number items per thread). + */ + WARP_LOAD_DIRECT, + + /** + * @par Overview + * + * A [striped arrangement](index.html#sec5sec3) of data is read + * directly from memory. + * + * @par Performance Considerations + * The utilization of memory transactions (coalescing) doesn't depend on + * the number of items per thread. + */ + WARP_LOAD_STRIPED, + + /** + * @par Overview + * + * A [blocked arrangement](index.html#sec5sec3) of data is read + * from memory using CUDA's built-in vectorized loads as a coalescing optimization. + * For example, ld.global.v4.s32 instructions will be generated + * when @p T = @p int and @p ITEMS_PER_THREAD % 4 == 0. + * + * @par Performance Considerations + * - The utilization of memory transactions (coalescing) remains high until the the + * access stride between threads (i.e., the number items per thread) exceeds the + * maximum vector load width (typically 4 items or 64B, whichever is lower). + * - The following conditions will prevent vectorization and loading will fall + * back to cub::WARP_LOAD_DIRECT: + * - @p ITEMS_PER_THREAD is odd + * - The @p InputIteratorT is not a simple pointer type + * - The block input offset is not quadword-aligned + * - The data type @p T is not a built-in primitive or CUDA vector type + * (e.g., @p short, @p int2, @p double, @p float2, etc.) + */ + WARP_LOAD_VECTORIZE, + + /** + * @par Overview + * + * A [striped arrangement](index.html#sec5sec3) of data is read + * efficiently from memory and then locally transposed into a + * [blocked arrangement](index.html#sec5sec3). + * + * @par Performance Considerations + * - The utilization of memory transactions (coalescing) remains high + * regardless of items loaded per thread. + * - The local reordering incurs slightly longer latencies and throughput than + * the direct cub::WARP_LOAD_DIRECT and cub::WARP_LOAD_VECTORIZE + * alternatives. + */ + WARP_LOAD_TRANSPOSE +}; + +/** + * @brief The WarpLoad class provides [collective](index.html#sec0) + * data movement methods for loading a linear segment of items from + * memory into a [blocked arrangement](index.html#sec5sec3) + * across a CUDA thread block. + * @ingroup WarpModule + * @ingroup UtilIo + * + * @tparam InputT + * The data type to read into (which must be convertible from the input + * iterator's value type). + * + * @tparam ITEMS_PER_THREAD + * The number of consecutive items partitioned onto each thread. + * + * @tparam ALGORITHM + * [optional] cub::WarpLoadAlgorithm tuning policy. + * default: cub::WARP_LOAD_DIRECT. + * + * @tparam LOGICAL_WARP_THREADS + * [optional] The number of threads per "logical" warp (may be less + * than the number of hardware warp threads). Default is the warp size of the + * targeted CUDA compute-capability (e.g., 32 threads for SM86). Must be a + * power of two. + * + * @tparam LEGACY_PTX_ARCH + * Unused. + * + * @par Overview + * - The WarpLoad class provides a single data movement abstraction that can be + * specialized to implement different cub::WarpLoadAlgorithm strategies. This + * facilitates different performance policies for different architectures, data + * types, granularity sizes, etc. + * - WarpLoad can be optionally specialized by different data movement strategies: + * -# cub::WARP_LOAD_DIRECT. A [blocked arrangement](index.html#sec5sec3) + * of data is read directly from memory. [More...](@ref cub::WarpLoadAlgorithm) +* -# cub::WARP_LOAD_STRIPED,. A [striped arrangement](index.html#sec5sec3) + * of data is read directly from memory. [More...](@ref cub::WarpLoadAlgorithm) + * -# cub::WARP_LOAD_VECTORIZE. A [blocked arrangement](index.html#sec5sec3) + * of data is read directly from memory using CUDA's built-in vectorized + * loads as a coalescing optimization. [More...](@ref cub::WarpLoadAlgorithm) + * -# cub::WARP_LOAD_TRANSPOSE. A [striped arrangement](index.html#sec5sec3) + * of data is read directly from memory and is then locally transposed into a + * [blocked arrangement](index.html#sec5sec3). [More...](@ref cub::WarpLoadAlgorithm) + * + * @par A Simple Example + * @par + * The code snippet below illustrates the loading of a linear segment of 64 + * integers into a "blocked" arrangement across 16 threads where each thread + * owns 4 consecutive items. The load is specialized for @p WARP_LOAD_TRANSPOSE, + * meaning memory references are efficiently coalesced using a warp-striped access + * pattern (after which items are locally reordered among threads). + * @par + * @code + * #include // or equivalently + * + * __global__ void ExampleKernel(int *d_data, ...) + * { + * constexpr int warp_threads = 16; + * constexpr int block_threads = 256; + * constexpr int items_per_thread = 4; + * + * // Specialize WarpLoad for a warp of 16 threads owning 4 integer items each + * using WarpLoadT = WarpLoad; + * + * constexpr int warps_in_block = block_threads / warp_threads; + * constexpr int tile_size = items_per_thread * warp_threads; + * const int warp_id = static_cast(threadIdx.x) / warp_threads; + * + * // Allocate shared memory for WarpLoad + * __shared__ typename WarpLoadT::TempStorage temp_storage[warps_in_block]; + * + * // Load a segment of consecutive items that are blocked across threads + * int thread_data[items_per_thread]; + * WarpLoadT(temp_storage[warp_id]).Load(d_data + warp_id * tile_size, + * thread_data); + * @endcode + * @par + * Suppose the input @p d_data is 0, 1, 2, 3, 4, 5, .... + * The set of @p thread_data across the first logical warp of threads in those + * threads will be: + * { [0,1,2,3], [4,5,6,7], ..., [60,61,62,63] }. + */ +template +class WarpLoad +{ + constexpr static bool IS_ARCH_WARP = LOGICAL_WARP_THREADS == CUB_WARP_THREADS(0); + + static_assert(PowerOfTwo::VALUE, + "LOGICAL_WARP_THREADS must be a power of two"); + +private: + + /***************************************************************************** + * Algorithmic variants + ****************************************************************************/ + + /// Load helper + template + struct LoadInternal; + + + template + struct LoadInternal + { + using TempStorage = NullType; + + int linear_tid; + + __device__ __forceinline__ + LoadInternal(TempStorage & /*temp_storage*/, + int linear_tid) + : linear_tid(linear_tid) + {} + + template + __device__ __forceinline__ void Load( + InputIteratorT block_itr, + InputT (&items)[ITEMS_PER_THREAD]) + { + LoadDirectBlocked(linear_tid, block_itr, items); + } + + template + __device__ __forceinline__ void Load( + InputIteratorT block_itr, + InputT (&items)[ITEMS_PER_THREAD], + int valid_items) + { + LoadDirectBlocked(linear_tid, block_itr, items, valid_items); + } + + template + __device__ __forceinline__ void Load( + InputIteratorT block_itr, + InputT (&items)[ITEMS_PER_THREAD], + int valid_items, + DefaultT oob_default) + { + LoadDirectBlocked(linear_tid, block_itr, items, valid_items, oob_default); + } + }; + + + template + struct LoadInternal + { + using TempStorage = NullType; + + int linear_tid; + + __device__ __forceinline__ + LoadInternal(TempStorage & /*temp_storage*/, + int linear_tid) + : linear_tid(linear_tid) + {} + + template + __device__ __forceinline__ void Load( + InputIteratorT block_itr, + InputT (&items)[ITEMS_PER_THREAD]) + { + LoadDirectStriped(linear_tid, block_itr, items); + } + + template + __device__ __forceinline__ void Load( + InputIteratorT block_itr, + InputT (&items)[ITEMS_PER_THREAD], + int valid_items) + { + LoadDirectStriped(linear_tid, + block_itr, + items, + valid_items); + } + + template + __device__ __forceinline__ void Load( + InputIteratorT block_itr, + InputT (&items)[ITEMS_PER_THREAD], + int valid_items, + DefaultT oob_default) + { + LoadDirectStriped(linear_tid, + block_itr, + items, + valid_items, + oob_default); + } + }; + + + template + struct LoadInternal + { + using TempStorage = NullType; + + int linear_tid; + + __device__ __forceinline__ + LoadInternal(TempStorage &/*temp_storage*/, + int linear_tid) + : linear_tid(linear_tid) + {} + + template + __device__ __forceinline__ void Load( + InputT *block_ptr, + InputT (&items)[ITEMS_PER_THREAD]) + { + InternalLoadDirectBlockedVectorized(linear_tid, + block_ptr, + items); + } + + template + __device__ __forceinline__ void Load( + const InputT *block_ptr, + InputT (&items)[ITEMS_PER_THREAD]) + { + InternalLoadDirectBlockedVectorized(linear_tid, + block_ptr, + items); + } + + template < + CacheLoadModifier MODIFIER, + typename ValueType, + typename OffsetT> + __device__ __forceinline__ void Load( + CacheModifiedInputIterator block_itr, + InputT (&items)[ITEMS_PER_THREAD]) + { + InternalLoadDirectBlockedVectorized(linear_tid, + block_itr.ptr, + items); + } + + template + __device__ __forceinline__ void Load( + _InputIteratorT block_itr, + InputT (&items)[ITEMS_PER_THREAD]) + { + LoadDirectBlocked(linear_tid, block_itr, items); + } + + template + __device__ __forceinline__ void Load( + InputIteratorT block_itr, + InputT (&items)[ITEMS_PER_THREAD], + int valid_items) + { + LoadDirectBlocked(linear_tid, block_itr, items, valid_items); + } + + template + __device__ __forceinline__ void Load( + InputIteratorT block_itr, + InputT (&items)[ITEMS_PER_THREAD], + int valid_items, + DefaultT oob_default) + { + LoadDirectBlocked(linear_tid, block_itr, items, valid_items, oob_default); + } + }; + + + template + struct LoadInternal + { + using WarpExchangeT = + WarpExchange; + + struct _TempStorage : WarpExchangeT::TempStorage + {}; + + struct TempStorage : Uninitialized<_TempStorage> {}; + + _TempStorage &temp_storage; + + int linear_tid; + + __device__ __forceinline__ LoadInternal( + TempStorage &temp_storage, + int linear_tid) + : + temp_storage(temp_storage.Alias()), + linear_tid(linear_tid) + {} + + template + __device__ __forceinline__ void Load( + InputIteratorT block_itr, + InputT (&items)[ITEMS_PER_THREAD]) + { + LoadDirectStriped(linear_tid, block_itr, items); + WarpExchangeT(temp_storage).StripedToBlocked(items, items); + } + + template + __device__ __forceinline__ void Load( + InputIteratorT block_itr, + InputT (&items)[ITEMS_PER_THREAD], + int valid_items) + { + LoadDirectStriped(linear_tid, block_itr, items, valid_items); + WarpExchangeT(temp_storage).StripedToBlocked(items, items); + } + + template + __device__ __forceinline__ void Load( + InputIteratorT block_itr, + InputT (&items)[ITEMS_PER_THREAD], + int valid_items, + DefaultT oob_default) + { + LoadDirectStriped(linear_tid, block_itr, items, valid_items, oob_default); + WarpExchangeT(temp_storage).StripedToBlocked(items, items); + } + }; + + /***************************************************************************** + * Type definitions + ****************************************************************************/ + + /// Internal load implementation to use + using InternalLoad = LoadInternal; + + /// Shared memory storage layout type + using _TempStorage = typename InternalLoad::TempStorage; + + + /***************************************************************************** + * Utility methods + ****************************************************************************/ + + /// Internal storage allocator + __device__ __forceinline__ _TempStorage& PrivateStorage() + { + __shared__ _TempStorage private_storage; + return private_storage; + } + + + /***************************************************************************** + * Thread fields + ****************************************************************************/ + + /// Thread reference to shared storage + _TempStorage &temp_storage; + + /// Linear thread-id + int linear_tid; + +public: + + /// @smemstorage{WarpLoad} + struct TempStorage : Uninitialized<_TempStorage> {}; + + /*************************************************************************//** + * @name Collective constructors + ****************************************************************************/ + //@{ + + /** + * @brief Collective constructor using a private static allocation of + * shared memory as temporary storage. + */ + __device__ __forceinline__ + WarpLoad() + : temp_storage(PrivateStorage()) + , linear_tid(IS_ARCH_WARP ? LaneId() : (LaneId() % LOGICAL_WARP_THREADS)) + {} + + /** + * @brief Collective constructor using the specified memory allocation as + * temporary storage. + */ + __device__ __forceinline__ + WarpLoad(TempStorage &temp_storage) + : temp_storage(temp_storage.Alias()) + , linear_tid(IS_ARCH_WARP ? LaneId() : (LaneId() % LOGICAL_WARP_THREADS)) + {} + + //@} end member group + /*************************************************************************//** + * @name Data movement + ****************************************************************************/ + //@{ + + /** + * @brief Load a linear segment of items from memory. + * + * @par + * \smemreuse + * + * @par Snippet + * @code + * #include // or equivalently + * + * __global__ void ExampleKernel(int *d_data, ...) + * { + * constexpr int warp_threads = 16; + * constexpr int block_threads = 256; + * constexpr int items_per_thread = 4; + * + * // Specialize WarpLoad for a warp of 16 threads owning 4 integer items each + * using WarpLoadT = WarpLoad; + * + * constexpr int warps_in_block = block_threads / warp_threads; + * constexpr int tile_size = items_per_thread * warp_threads; + * const int warp_id = static_cast(threadIdx.x) / warp_threads; + * + * // Allocate shared memory for WarpLoad + * __shared__ typename WarpLoadT::TempStorage temp_storage[warps_in_block]; + * + * // Load a segment of consecutive items that are blocked across threads + * int thread_data[items_per_thread]; + * WarpLoadT(temp_storage[warp_id]).Load(d_data + warp_id * tile_size, + * thread_data); + * @endcode + * @par + * Suppose the input @p d_data is 0, 1, 2, 3, 4, 5, .... + * The set of @p thread_data across the first logical warp of threads in those + * threads will be: + * { [0,1,2,3], [4,5,6,7], ..., [60,61,62,63] }. + * + * @param[in] block_itr The thread block's base input iterator for loading from + * @param[out] items Data to load + */ + template + __device__ __forceinline__ void Load(InputIteratorT block_itr, + InputT (&items)[ITEMS_PER_THREAD]) + { + InternalLoad(temp_storage, linear_tid).Load(block_itr, items); + } + + /** + * @brief Load a linear segment of items from memory, guarded by range. + * + * @par + * \smemreuse + * + * @par Snippet + * @code + * #include // or equivalently + * + * __global__ void ExampleKernel(int *d_data, int valid_items, ...) + * { + * constexpr int warp_threads = 16; + * constexpr int block_threads = 256; + * constexpr int items_per_thread = 4; + * + * // Specialize WarpLoad for a warp of 16 threads owning 4 integer items each + * using WarpLoadT = WarpLoad; + * + * constexpr int warps_in_block = block_threads / warp_threads; + * constexpr int tile_size = items_per_thread * warp_threads; + * const int warp_id = static_cast(threadIdx.x) / warp_threads; + * + * // Allocate shared memory for WarpLoad + * __shared__ typename WarpLoadT::TempStorage temp_storage[warps_in_block]; + * + * // Load a segment of consecutive items that are blocked across threads + * int thread_data[items_per_thread]; + * WarpLoadT(temp_storage[warp_id]).Load(d_data + warp_id * tile_size, + * thread_data, + * valid_items); + * @endcod + * @par + * Suppose the input @p d_data is 0, 1, 2, 3, 4, 5, ... and @p valid_items + * is @p 5. + * The set of @p thread_data across the first logical warp of threads in those + * threads will be: + * { [0,1,2,3], [4,?,?,?], ..., [?,?,?,?] } with only the first + * two threads being unmasked to load portions of valid data (and other items + * remaining unassigned). + * + * @param[in] block_itr The thread block's base input iterator for loading from + * @param[out] items Data to load + * @param[in] valid_items Number of valid items to load + */ + template + __device__ __forceinline__ void Load(InputIteratorT block_itr, + InputT (&items)[ITEMS_PER_THREAD], + int valid_items) + { + InternalLoad(temp_storage, linear_tid).Load(block_itr, items, valid_items); + } + + + /** + * @brief Load a linear segment of items from memory, guarded by range. + * + * @par + * \smemreuse + * + * @par Snippet + * @code + * #include // or equivalently + * + * __global__ void ExampleKernel(int *d_data, int valid_items, ...) + * { + * constexpr int warp_threads = 16; + * constexpr int block_threads = 256; + * constexpr int items_per_thread = 4; + * + * // Specialize WarpLoad for a warp of 16 threads owning 4 integer items each + * using WarpLoadT = WarpLoad; + * + * constexpr int warps_in_block = block_threads / warp_threads; + * constexpr int tile_size = items_per_thread * warp_threads; + * const int warp_id = static_cast(threadIdx.x) / warp_threads; + * + * // Allocate shared memory for WarpLoad + * __shared__ typename WarpLoadT::TempStorage temp_storage[warps_in_block]; + * + * // Load a segment of consecutive items that are blocked across threads + * int thread_data[items_per_thread]; + * WarpLoadT(temp_storage[warp_id]).Load(d_data + warp_id * tile_size, + * thread_data, + * valid_items, + * -1); + * @endcode + * @par + * Suppose the input @p d_data is 0, 1, 2, 3, 4, 5, ..., @p valid_items + * is @p 5, and the out-of-bounds default is @p -1. + * The set of @p thread_data across the first logical warp of threads in those + * threads will be: + * { [0,1,2,3], [4,-1,-1,-1], ..., [-1,-1,-1,-1] } with only the first + * two threads being unmasked to load portions of valid data (and other items + * are assigned @p -1). + * + * @param[in] block_itr The thread block's base input iterator for loading from + * @param[out] items Data to load + * @param[in] valid_items Number of valid items to load + * @param[in] oob_default Default value to assign out-of-bound items + */ + template + __device__ __forceinline__ void Load(InputIteratorT block_itr, + InputT (&items)[ITEMS_PER_THREAD], + int valid_items, + DefaultT oob_default) + { + InternalLoad(temp_storage, linear_tid) + .Load(block_itr, items, valid_items, oob_default); + } + + //@} end member group +}; + + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/warp/warp_merge_sort.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/warp/warp_merge_sort.cuh new file mode 100644 index 0000000000000000000000000000000000000000..1d6e1bd38fa159e3861f8a8300ea34bcb781ee69 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/warp/warp_merge_sort.cuh @@ -0,0 +1,172 @@ +/****************************************************************************** + * Copyright (c) 2011-2021, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +#pragma once + +#include +#include +#include +#include + + +CUB_NAMESPACE_BEGIN + + +/** + * @brief The WarpMergeSort class provides methods for sorting items partitioned + * across a CUDA warp using a merge sorting method. + * @ingroup WarpModule + * + * @tparam KeyT + * Key type + * + * @tparam ITEMS_PER_THREAD + * The number of items per thread + * + * @tparam LOGICAL_WARP_THREADS + * [optional] The number of threads per "logical" warp (may be less + * than the number of hardware warp threads). Default is the warp size of the + * targeted CUDA compute-capability (e.g., 32 threads for SM86). Must be a + * power of two. + * + * @tparam ValueT + * [optional] Value type (default: cub::NullType, which indicates a + * keys-only sort) + * + * @tparam LEGACY_PTX_ARCH + * Unused. + * + * @par Overview + * WarpMergeSort arranges items into ascending order using a comparison + * functor with less-than semantics. Merge sort can handle arbitrary types + * and comparison functors. + * + * @par A Simple Example + * @par + * The code snippet below illustrates a sort of 64 integer keys that are + * partitioned across 16 threads where each thread owns 4 consecutive items. + * @par + * @code + * #include // or equivalently + * + * struct CustomLess + * { + * template + * __device__ bool operator()(const DataType &lhs, const DataType &rhs) + * { + * return lhs < rhs; + * } + * }; + * + * __global__ void ExampleKernel(...) + * { + * constexpr int warp_threads = 16; + * constexpr int block_threads = 256; + * constexpr int items_per_thread = 4; + * constexpr int warps_per_block = block_threads / warp_threads; + * const int warp_id = static_cast(threadIdx.x) / warp_threads; + * + * // Specialize WarpMergeSort for a virtual warp of 16 threads + * // owning 4 integer items each + * using WarpMergeSortT = + * cub::WarpMergeSort; + * + * // Allocate shared memory for WarpMergeSort + * __shared__ typename WarpMergeSortT::TempStorage temp_storage[warps_per_block]; + * + * // Obtain a segment of consecutive items that are blocked across threads + * int thread_keys[items_per_thread]; + * // ... + * + * WarpMergeSortT(temp_storage[warp_id]).Sort(thread_keys, CustomLess()); + * // ... + * } + * @endcode + * @par + * Suppose the set of input @p thread_keys across a warp of threads is + * `{ [0,64,1,63], [2,62,3,61], [4,60,5,59], ..., [31,34,32,33] }`. + * The corresponding output @p thread_keys in those threads will be + * `{ [0,1,2,3], [4,5,6,7], [8,9,10,11], ..., [31,32,33,34] }`. + */ +template < + typename KeyT, + int ITEMS_PER_THREAD, + int LOGICAL_WARP_THREADS = CUB_WARP_THREADS(0), + typename ValueT = NullType, + int LEGACY_PTX_ARCH = 0> +class WarpMergeSort + : public BlockMergeSortStrategy< + KeyT, + ValueT, + LOGICAL_WARP_THREADS, + ITEMS_PER_THREAD, + WarpMergeSort> +{ +private: + constexpr static bool IS_ARCH_WARP = LOGICAL_WARP_THREADS == CUB_WARP_THREADS(0); + constexpr static bool KEYS_ONLY = std::is_same::value; + constexpr static int TILE_SIZE = ITEMS_PER_THREAD * LOGICAL_WARP_THREADS; + + using BlockMergeSortStrategyT = BlockMergeSortStrategy; + + const unsigned int warp_id; + const unsigned int member_mask; + +public: + WarpMergeSort() = delete; + + __device__ __forceinline__ + WarpMergeSort(typename BlockMergeSortStrategyT::TempStorage &temp_storage) + : BlockMergeSortStrategyT(temp_storage, + IS_ARCH_WARP + ? LaneId() + : (LaneId() % LOGICAL_WARP_THREADS)) + , warp_id(IS_ARCH_WARP ? 0 : (LaneId() / LOGICAL_WARP_THREADS)) + , member_mask(WarpMask(warp_id)) + { + } + + __device__ __forceinline__ unsigned int get_member_mask() const + { + return member_mask; + } + +private: + __device__ __forceinline__ void SyncImplementation() const + { + WARP_SYNC(member_mask); + } + + friend BlockMergeSortStrategyT; +}; + + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/warp/warp_reduce.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/warp/warp_reduce.cuh new file mode 100644 index 0000000000000000000000000000000000000000..357ad07b0e3c0a07afb8bd6ce38ac167f1d045ba --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/warp/warp_reduce.cuh @@ -0,0 +1,673 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * The cub::WarpReduce class provides [collective](index.html#sec0) methods for computing a parallel reduction of items partitioned across a CUDA thread warp. + */ + +#pragma once + +#include "../config.cuh" +#include "specializations/warp_reduce_shfl.cuh" +#include "specializations/warp_reduce_smem.cuh" +#include "../thread/thread_operators.cuh" +#include "../util_type.cuh" + +CUB_NAMESPACE_BEGIN + + +/** + * \addtogroup WarpModule + * @{ + */ + +/** + * \brief The WarpReduce class provides [collective](index.html#sec0) methods for computing a parallel reduction of items partitioned across a CUDA thread warp. ![](warp_reduce_logo.png) + * + * \tparam T The reduction input/output element type + * \tparam LOGICAL_WARP_THREADS [optional] The number of threads per "logical" warp (may be less than the number of hardware warp threads). Default is the warp size of the targeted CUDA compute-capability (e.g., 32 threads for SM20). + * \tparam LEGACY_PTX_ARCH [optional] Unused. + * + * \par Overview + * - A reduction (or fold) + * uses a binary combining operator to compute a single aggregate from a list of input elements. + * - Supports "logical" warps smaller than the physical warp size (e.g., logical warps of 8 threads) + * - The number of entrant threads must be an multiple of \p LOGICAL_WARP_THREADS + * + * \par Performance Considerations + * - Uses special instructions when applicable (e.g., warp \p SHFL instructions) + * - Uses synchronization-free communication between warp lanes when applicable + * - Incurs zero bank conflicts for most types + * - Computation is slightly more efficient (i.e., having lower instruction overhead) for: + * - Summation (vs. generic reduction) + * - The architecture's warp size is a whole multiple of \p LOGICAL_WARP_THREADS + * + * \par Simple Examples + * \warpcollective{WarpReduce} + * \par + * The code snippet below illustrates four concurrent warp sum reductions within a block of + * 128 threads (one per each of the 32-thread warps). + * \par + * \code + * #include + * + * __global__ void ExampleKernel(...) + * { + * // Specialize WarpReduce for type int + * typedef cub::WarpReduce WarpReduce; + * + * // Allocate WarpReduce shared memory for 4 warps + * __shared__ typename WarpReduce::TempStorage temp_storage[4]; + * + * // Obtain one input item per thread + * int thread_data = ... + * + * // Return the warp-wide sums to each lane0 (threads 0, 32, 64, and 96) + * int warp_id = threadIdx.x / 32; + * int aggregate = WarpReduce(temp_storage[warp_id]).Sum(thread_data); + * + * \endcode + * \par + * Suppose the set of input \p thread_data across the block of threads is {0, 1, 2, 3, ..., 127}. + * The corresponding output \p aggregate in threads 0, 32, 64, and 96 will \p 496, \p 1520, + * \p 2544, and \p 3568, respectively (and is undefined in other threads). + * + * \par + * The code snippet below illustrates a single warp sum reduction within a block of + * 128 threads. + * \par + * \code + * #include + * + * __global__ void ExampleKernel(...) + * { + * // Specialize WarpReduce for type int + * typedef cub::WarpReduce WarpReduce; + * + * // Allocate WarpReduce shared memory for one warp + * __shared__ typename WarpReduce::TempStorage temp_storage; + * ... + * + * // Only the first warp performs a reduction + * if (threadIdx.x < 32) + * { + * // Obtain one input item per thread + * int thread_data = ... + * + * // Return the warp-wide sum to lane0 + * int aggregate = WarpReduce(temp_storage).Sum(thread_data); + * + * \endcode + * \par + * Suppose the set of input \p thread_data across the warp of threads is {0, 1, 2, 3, ..., 31}. + * The corresponding output \p aggregate in thread0 will be \p 496 (and is undefined in other threads). + * + */ +template < + typename T, + int LOGICAL_WARP_THREADS = CUB_PTX_WARP_THREADS, + int LEGACY_PTX_ARCH = 0> +class WarpReduce +{ +private: + + /****************************************************************************** + * Constants and type definitions + ******************************************************************************/ + + enum + { + /// Whether the logical warp size and the PTX warp size coincide + IS_ARCH_WARP = (LOGICAL_WARP_THREADS == CUB_WARP_THREADS(0)), + + /// Whether the logical warp size is a power-of-two + IS_POW_OF_TWO = PowerOfTwo::VALUE, + }; + +public: + +#ifndef DOXYGEN_SHOULD_SKIP_THIS // Do not document + + /// Internal specialization. + /// Use SHFL-based reduction if LOGICAL_WARP_THREADS is a power-of-two + using InternalWarpReduce = cub::detail::conditional_t< + IS_POW_OF_TWO, + WarpReduceShfl, + WarpReduceSmem>; + +#endif // DOXYGEN_SHOULD_SKIP_THIS + + +private: + + /// Shared memory storage layout type for WarpReduce + typedef typename InternalWarpReduce::TempStorage _TempStorage; + + + /****************************************************************************** + * Thread fields + ******************************************************************************/ + + /// Shared storage reference + _TempStorage &temp_storage; + + + /****************************************************************************** + * Utility methods + ******************************************************************************/ + +public: + + /// \smemstorage{WarpReduce} + struct TempStorage : Uninitialized<_TempStorage> {}; + + + /******************************************************************//** + * \name Collective constructors + *********************************************************************/ + //@{ + + + /** + * \brief Collective constructor using the specified memory allocation as temporary storage. Logical warp and lane identifiers are constructed from threadIdx.x. + */ + __device__ __forceinline__ WarpReduce( + TempStorage &temp_storage) ///< [in] Reference to memory allocation having layout type TempStorage + : + temp_storage(temp_storage.Alias()) + {} + + + //@} end member group + /******************************************************************//** + * \name Summation reductions + *********************************************************************/ + //@{ + + + /** + * \brief Computes a warp-wide sum in the calling warp. The output is valid in warp lane0. + * + * \smemreuse + * + * \par Snippet + * The code snippet below illustrates four concurrent warp sum reductions within a block of + * 128 threads (one per each of the 32-thread warps). + * \par + * \code + * #include + * + * __global__ void ExampleKernel(...) + * { + * // Specialize WarpReduce for type int + * typedef cub::WarpReduce WarpReduce; + * + * // Allocate WarpReduce shared memory for 4 warps + * __shared__ typename WarpReduce::TempStorage temp_storage[4]; + * + * // Obtain one input item per thread + * int thread_data = ... + * + * // Return the warp-wide sums to each lane0 + * int warp_id = threadIdx.x / 32; + * int aggregate = WarpReduce(temp_storage[warp_id]).Sum(thread_data); + * + * \endcode + * \par + * Suppose the set of input \p thread_data across the block of threads is {0, 1, 2, 3, ..., 127}. + * The corresponding output \p aggregate in threads 0, 32, 64, and 96 will \p 496, \p 1520, + * \p 2544, and \p 3568, respectively (and is undefined in other threads). + * + */ + __device__ __forceinline__ T Sum( + T input) ///< [in] Calling thread's input + { + return InternalWarpReduce(temp_storage).template Reduce(input, LOGICAL_WARP_THREADS, cub::Sum()); + } + + /** + * \brief Computes a partially-full warp-wide sum in the calling warp. The output is valid in warp lane0. + * + * All threads across the calling warp must agree on the same value for \p valid_items. Otherwise the result is undefined. + * + * \smemreuse + * + * \par Snippet + * The code snippet below illustrates a sum reduction within a single, partially-full + * block of 32 threads (one warp). + * \par + * \code + * #include + * + * __global__ void ExampleKernel(int *d_data, int valid_items) + * { + * // Specialize WarpReduce for type int + * typedef cub::WarpReduce WarpReduce; + * + * // Allocate WarpReduce shared memory for one warp + * __shared__ typename WarpReduce::TempStorage temp_storage; + * + * // Obtain one input item per thread if in range + * int thread_data; + * if (threadIdx.x < valid_items) + * thread_data = d_data[threadIdx.x]; + * + * // Return the warp-wide sums to each lane0 + * int aggregate = WarpReduce(temp_storage).Sum( + * thread_data, valid_items); + * + * \endcode + * \par + * Suppose the input \p d_data is {0, 1, 2, 3, 4, ... and \p valid_items + * is \p 4. The corresponding output \p aggregate in thread0 is \p 6 (and is + * undefined in other threads). + * + */ + __device__ __forceinline__ T Sum( + T input, ///< [in] Calling thread's input + int valid_items) ///< [in] Total number of valid items in the calling thread's logical warp (may be less than \p LOGICAL_WARP_THREADS) + { + // Determine if we don't need bounds checking + return InternalWarpReduce(temp_storage).template Reduce(input, valid_items, cub::Sum()); + } + + + /** + * \brief Computes a segmented sum in the calling warp where segments are defined by head-flags. The sum of each segment is returned to the first lane in that segment (which always includes lane0). + * + * \smemreuse + * + * \par Snippet + * The code snippet below illustrates a head-segmented warp sum + * reduction within a block of 32 threads (one warp). + * \par + * \code + * #include + * + * __global__ void ExampleKernel(...) + * { + * // Specialize WarpReduce for type int + * typedef cub::WarpReduce WarpReduce; + * + * // Allocate WarpReduce shared memory for one warp + * __shared__ typename WarpReduce::TempStorage temp_storage; + * + * // Obtain one input item and flag per thread + * int thread_data = ... + * int head_flag = ... + * + * // Return the warp-wide sums to each lane0 + * int aggregate = WarpReduce(temp_storage).HeadSegmentedSum( + * thread_data, head_flag); + * + * \endcode + * \par + * Suppose the set of input \p thread_data and \p head_flag across the block of threads + * is {0, 1, 2, 3, ..., 31 and is {1, 0, 0, 0, 1, 0, 0, 0, ..., 1, 0, 0, 0, + * respectively. The corresponding output \p aggregate in threads 0, 4, 8, etc. will be + * \p 6, \p 22, \p 38, etc. (and is undefined in other threads). + * + * \tparam ReductionOp [inferred] Binary reduction operator type having member T operator()(const T &a, const T &b) + * + */ + template < + typename FlagT> + __device__ __forceinline__ T HeadSegmentedSum( + T input, ///< [in] Calling thread's input + FlagT head_flag) ///< [in] Head flag denoting whether or not \p input is the start of a new segment + { + return HeadSegmentedReduce(input, head_flag, cub::Sum()); + } + + + /** + * \brief Computes a segmented sum in the calling warp where segments are defined by tail-flags. The sum of each segment is returned to the first lane in that segment (which always includes lane0). + * + * \smemreuse + * + * \par Snippet + * The code snippet below illustrates a tail-segmented warp sum + * reduction within a block of 32 threads (one warp). + * \par + * \code + * #include + * + * __global__ void ExampleKernel(...) + * { + * // Specialize WarpReduce for type int + * typedef cub::WarpReduce WarpReduce; + * + * // Allocate WarpReduce shared memory for one warp + * __shared__ typename WarpReduce::TempStorage temp_storage; + * + * // Obtain one input item and flag per thread + * int thread_data = ... + * int tail_flag = ... + * + * // Return the warp-wide sums to each lane0 + * int aggregate = WarpReduce(temp_storage).TailSegmentedSum( + * thread_data, tail_flag); + * + * \endcode + * \par + * Suppose the set of input \p thread_data and \p tail_flag across the block of threads + * is {0, 1, 2, 3, ..., 31 and is {0, 0, 0, 1, 0, 0, 0, 1, ..., 0, 0, 0, 1, + * respectively. The corresponding output \p aggregate in threads 0, 4, 8, etc. will be + * \p 6, \p 22, \p 38, etc. (and is undefined in other threads). + * + * \tparam ReductionOp [inferred] Binary reduction operator type having member T operator()(const T &a, const T &b) + */ + template < + typename FlagT> + __device__ __forceinline__ T TailSegmentedSum( + T input, ///< [in] Calling thread's input + FlagT tail_flag) ///< [in] Head flag denoting whether or not \p input is the start of a new segment + { + return TailSegmentedReduce(input, tail_flag, cub::Sum()); + } + + + + //@} end member group + /******************************************************************//** + * \name Generic reductions + *********************************************************************/ + //@{ + + /** + * \brief Computes a warp-wide reduction in the calling warp using the specified binary reduction functor. The output is valid in warp lane0. + * + * Supports non-commutative reduction operators + * + * \smemreuse + * + * \par Snippet + * The code snippet below illustrates four concurrent warp max reductions within a block of + * 128 threads (one per each of the 32-thread warps). + * \par + * \code + * #include + * + * __global__ void ExampleKernel(...) + * { + * // Specialize WarpReduce for type int + * typedef cub::WarpReduce WarpReduce; + * + * // Allocate WarpReduce shared memory for 4 warps + * __shared__ typename WarpReduce::TempStorage temp_storage[4]; + * + * // Obtain one input item per thread + * int thread_data = ... + * + * // Return the warp-wide reductions to each lane0 + * int warp_id = threadIdx.x / 32; + * int aggregate = WarpReduce(temp_storage[warp_id]).Reduce( + * thread_data, cub::Max()); + * + * \endcode + * \par + * Suppose the set of input \p thread_data across the block of threads is {0, 1, 2, 3, ..., 127}. + * The corresponding output \p aggregate in threads 0, 32, 64, and 96 will \p 31, \p 63, + * \p 95, and \p 127, respectively (and is undefined in other threads). + * + * \tparam ReductionOp [inferred] Binary reduction operator type having member T operator()(const T &a, const T &b) + */ + template + __device__ __forceinline__ T Reduce( + T input, ///< [in] Calling thread's input + ReductionOp reduction_op) ///< [in] Binary reduction operator + { + return InternalWarpReduce(temp_storage).template Reduce(input, LOGICAL_WARP_THREADS, reduction_op); + } + + /** + * \brief Computes a partially-full warp-wide reduction in the calling warp using the specified binary reduction functor. The output is valid in warp lane0. + * + * All threads across the calling warp must agree on the same value for \p valid_items. Otherwise the result is undefined. + * + * Supports non-commutative reduction operators + * + * \smemreuse + * + * \par Snippet + * The code snippet below illustrates a max reduction within a single, partially-full + * block of 32 threads (one warp). + * \par + * \code + * #include + * + * __global__ void ExampleKernel(int *d_data, int valid_items) + * { + * // Specialize WarpReduce for type int + * typedef cub::WarpReduce WarpReduce; + * + * // Allocate WarpReduce shared memory for one warp + * __shared__ typename WarpReduce::TempStorage temp_storage; + * + * // Obtain one input item per thread if in range + * int thread_data; + * if (threadIdx.x < valid_items) + * thread_data = d_data[threadIdx.x]; + * + * // Return the warp-wide reductions to each lane0 + * int aggregate = WarpReduce(temp_storage).Reduce( + * thread_data, cub::Max(), valid_items); + * + * \endcode + * \par + * Suppose the input \p d_data is {0, 1, 2, 3, 4, ... and \p valid_items + * is \p 4. The corresponding output \p aggregate in thread0 is \p 3 (and is + * undefined in other threads). + * + * \tparam ReductionOp [inferred] Binary reduction operator type having member T operator()(const T &a, const T &b) + */ + template + __device__ __forceinline__ T Reduce( + T input, ///< [in] Calling thread's input + ReductionOp reduction_op, ///< [in] Binary reduction operator + int valid_items) ///< [in] Total number of valid items in the calling thread's logical warp (may be less than \p LOGICAL_WARP_THREADS) + { + return InternalWarpReduce(temp_storage).template Reduce(input, valid_items, reduction_op); + } + + + /** + * \brief Computes a segmented reduction in the calling warp where segments are defined by head-flags. The reduction of each segment is returned to the first lane in that segment (which always includes lane0). + * + * Supports non-commutative reduction operators + * + * \smemreuse + * + * \par Snippet + * The code snippet below illustrates a head-segmented warp max + * reduction within a block of 32 threads (one warp). + * \par + * \code + * #include + * + * __global__ void ExampleKernel(...) + * { + * // Specialize WarpReduce for type int + * typedef cub::WarpReduce WarpReduce; + * + * // Allocate WarpReduce shared memory for one warp + * __shared__ typename WarpReduce::TempStorage temp_storage; + * + * // Obtain one input item and flag per thread + * int thread_data = ... + * int head_flag = ... + * + * // Return the warp-wide reductions to each lane0 + * int aggregate = WarpReduce(temp_storage).HeadSegmentedReduce( + * thread_data, head_flag, cub::Max()); + * + * \endcode + * \par + * Suppose the set of input \p thread_data and \p head_flag across the block of threads + * is {0, 1, 2, 3, ..., 31 and is {1, 0, 0, 0, 1, 0, 0, 0, ..., 1, 0, 0, 0, + * respectively. The corresponding output \p aggregate in threads 0, 4, 8, etc. will be + * \p 3, \p 7, \p 11, etc. (and is undefined in other threads). + * + * \tparam ReductionOp [inferred] Binary reduction operator type having member T operator()(const T &a, const T &b) + */ + template < + typename ReductionOp, + typename FlagT> + __device__ __forceinline__ T HeadSegmentedReduce( + T input, ///< [in] Calling thread's input + FlagT head_flag, ///< [in] Head flag denoting whether or not \p input is the start of a new segment + ReductionOp reduction_op) ///< [in] Reduction operator + { + return InternalWarpReduce(temp_storage).template SegmentedReduce(input, head_flag, reduction_op); + } + + + /** + * \brief Computes a segmented reduction in the calling warp where segments are defined by tail-flags. The reduction of each segment is returned to the first lane in that segment (which always includes lane0). + * + * Supports non-commutative reduction operators + * + * \smemreuse + * + * \par Snippet + * The code snippet below illustrates a tail-segmented warp max + * reduction within a block of 32 threads (one warp). + * \par + * \code + * #include + * + * __global__ void ExampleKernel(...) + * { + * // Specialize WarpReduce for type int + * typedef cub::WarpReduce WarpReduce; + * + * // Allocate WarpReduce shared memory for one warp + * __shared__ typename WarpReduce::TempStorage temp_storage; + * + * // Obtain one input item and flag per thread + * int thread_data = ... + * int tail_flag = ... + * + * // Return the warp-wide reductions to each lane0 + * int aggregate = WarpReduce(temp_storage).TailSegmentedReduce( + * thread_data, tail_flag, cub::Max()); + * + * \endcode + * \par + * Suppose the set of input \p thread_data and \p tail_flag across the block of threads + * is {0, 1, 2, 3, ..., 31 and is {0, 0, 0, 1, 0, 0, 0, 1, ..., 0, 0, 0, 1, + * respectively. The corresponding output \p aggregate in threads 0, 4, 8, etc. will be + * \p 3, \p 7, \p 11, etc. (and is undefined in other threads). + * + * \tparam ReductionOp [inferred] Binary reduction operator type having member T operator()(const T &a, const T &b) + */ + template < + typename ReductionOp, + typename FlagT> + __device__ __forceinline__ T TailSegmentedReduce( + T input, ///< [in] Calling thread's input + FlagT tail_flag, ///< [in] Tail flag denoting whether or not \p input is the end of the current segment + ReductionOp reduction_op) ///< [in] Reduction operator + { + return InternalWarpReduce(temp_storage).template SegmentedReduce(input, tail_flag, reduction_op); + } + + + + //@} end member group +}; + +template +class WarpReduce +{ +private: + using _TempStorage = cub::NullType; + +public: + struct TempStorage : Uninitialized<_TempStorage> + {}; + + __device__ __forceinline__ WarpReduce(TempStorage & /*temp_storage */) + {} + + __device__ __forceinline__ T Sum(T input) { return input; } + + __device__ __forceinline__ T Sum(T input, int /* valid_items */) + { + return input; + } + + template + __device__ __forceinline__ T HeadSegmentedSum(T input, FlagT /* head_flag */) + { + return input; + } + + template + __device__ __forceinline__ T TailSegmentedSum(T input, FlagT /* tail_flag */) + { + return input; + } + + template + __device__ __forceinline__ T Reduce(T input, ReductionOp /* reduction_op */) + { + return input; + } + + template + __device__ __forceinline__ T Reduce(T input, + ReductionOp /* reduction_op */, + int /* valid_items */) + { + return input; + } + + template + __device__ __forceinline__ T + HeadSegmentedReduce(T input, + FlagT /* head_flag */, + ReductionOp /* reduction_op */) + { + return input; + } + + template + __device__ __forceinline__ T + TailSegmentedReduce(T input, + FlagT /* tail_flag */, + ReductionOp /* reduction_op */) + { + return input; + } +}; + +/** @} */ // end group WarpModule + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/warp/warp_scan.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/warp/warp_scan.cuh new file mode 100644 index 0000000000000000000000000000000000000000..63f08c8bbd75e0d72854d4504b2773d3826654af --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/warp/warp_scan.cuh @@ -0,0 +1,932 @@ +/****************************************************************************** + * Copyright (c) 2011, Duane Merrill. All rights reserved. + * Copyright (c) 2011-2018, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * \file + * The cub::WarpScan class provides [collective](index.html#sec0) methods for computing a parallel prefix scan of items partitioned across a CUDA thread warp. + */ + +#pragma once + +#include "../config.cuh" +#include "specializations/warp_scan_shfl.cuh" +#include "specializations/warp_scan_smem.cuh" +#include "../thread/thread_operators.cuh" +#include "../util_type.cuh" + +CUB_NAMESPACE_BEGIN + +/** + * \addtogroup WarpModule + * @{ + */ + +/** + * \brief The WarpScan class provides [collective](index.html#sec0) methods for computing a parallel prefix scan of items partitioned across a CUDA thread warp. ![](warp_scan_logo.png) + * + * \tparam T The scan input/output element type + * \tparam LOGICAL_WARP_THREADS [optional] The number of threads per "logical" warp (may be less than the number of hardware warp threads). Default is the warp size associated with the CUDA Compute Capability targeted by the compiler (e.g., 32 threads for SM20). + * \tparam LEGACY_PTX_ARCH [optional] Unused. + * + * \par Overview + * - Given a list of input elements and a binary reduction operator, a [prefix scan](http://en.wikipedia.org/wiki/Prefix_sum) + * produces an output list where each element is computed to be the reduction + * of the elements occurring earlier in the input list. Prefix sum + * connotes a prefix scan with the addition operator. The term \em inclusive indicates + * that the ith output reduction incorporates the ith input. + * The term \em exclusive indicates the ith input is not incorporated into + * the ith output reduction. + * - Supports non-commutative scan operators + * - Supports "logical" warps smaller than the physical warp size (e.g., a logical warp of 8 threads) + * - The number of entrant threads must be an multiple of \p LOGICAL_WARP_THREADS + * + * \par Performance Considerations + * - Uses special instructions when applicable (e.g., warp \p SHFL) + * - Uses synchronization-free communication between warp lanes when applicable + * - Incurs zero bank conflicts for most types + * - Computation is slightly more efficient (i.e., having lower instruction overhead) for: + * - Summation (vs. generic scan) + * - The architecture's warp size is a whole multiple of \p LOGICAL_WARP_THREADS + * + * \par Simple Examples + * \warpcollective{WarpScan} + * \par + * The code snippet below illustrates four concurrent warp prefix sums within a block of + * 128 threads (one per each of the 32-thread warps). + * \par + * \code + * #include + * + * __global__ void ExampleKernel(...) + * { + * // Specialize WarpScan for type int + * typedef cub::WarpScan WarpScan; + * + * // Allocate WarpScan shared memory for 4 warps + * __shared__ typename WarpScan::TempStorage temp_storage[4]; + * + * // Obtain one input item per thread + * int thread_data = ... + * + * // Compute warp-wide prefix sums + * int warp_id = threadIdx.x / 32; + * WarpScan(temp_storage[warp_id]).ExclusiveSum(thread_data, thread_data); + * + * \endcode + * \par + * Suppose the set of input \p thread_data across the block of threads is {1, 1, 1, 1, ...}. + * The corresponding output \p thread_data in each of the four warps of threads will be + * 0, 1, 2, 3, ..., 31}. + * + * \par + * The code snippet below illustrates a single warp prefix sum within a block of + * 128 threads. + * \par + * \code + * #include + * + * __global__ void ExampleKernel(...) + * { + * // Specialize WarpScan for type int + * typedef cub::WarpScan WarpScan; + * + * // Allocate WarpScan shared memory for one warp + * __shared__ typename WarpScan::TempStorage temp_storage; + * ... + * + * // Only the first warp performs a prefix sum + * if (threadIdx.x < 32) + * { + * // Obtain one input item per thread + * int thread_data = ... + * + * // Compute warp-wide prefix sums + * WarpScan(temp_storage).ExclusiveSum(thread_data, thread_data); + * + * \endcode + * \par + * Suppose the set of input \p thread_data across the warp of threads is {1, 1, 1, 1, ...}. + * The corresponding output \p thread_data will be {0, 1, 2, 3, ..., 31}. + * + */ +template < + typename T, + int LOGICAL_WARP_THREADS = CUB_PTX_WARP_THREADS, + int LEGACY_PTX_ARCH = 0> +class WarpScan +{ +private: + + /****************************************************************************** + * Constants and type definitions + ******************************************************************************/ + + enum + { + /// Whether the logical warp size and the PTX warp size coincide + IS_ARCH_WARP = (LOGICAL_WARP_THREADS == CUB_WARP_THREADS(0)), + + /// Whether the logical warp size is a power-of-two + IS_POW_OF_TWO = ((LOGICAL_WARP_THREADS & (LOGICAL_WARP_THREADS - 1)) == 0), + + /// Whether the data type is an integer (which has fully-associative addition) + IS_INTEGER = ((Traits::CATEGORY == SIGNED_INTEGER) || (Traits::CATEGORY == UNSIGNED_INTEGER)) + }; + + /// Internal specialization. + /// Use SHFL-based scan if LOGICAL_WARP_THREADS is a power-of-two + using InternalWarpScan = cub::detail::conditional_t< + IS_POW_OF_TWO, + WarpScanShfl, + WarpScanSmem>; + + /// Shared memory storage layout type for WarpScan + typedef typename InternalWarpScan::TempStorage _TempStorage; + + + /****************************************************************************** + * Thread fields + ******************************************************************************/ + + /// Shared storage reference + _TempStorage &temp_storage; + unsigned int lane_id; + + + + /****************************************************************************** + * Public types + ******************************************************************************/ + +public: + + /// \smemstorage{WarpScan} + struct TempStorage : Uninitialized<_TempStorage> {}; + + + /******************************************************************//** + * \name Collective constructors + *********************************************************************/ + //@{ + + /** + * \brief Collective constructor using the specified memory allocation as temporary storage. Logical warp and lane identifiers are constructed from threadIdx.x. + */ + __device__ __forceinline__ WarpScan( + TempStorage &temp_storage) ///< [in] Reference to memory allocation having layout type TempStorage + : + temp_storage(temp_storage.Alias()), + lane_id(IS_ARCH_WARP ? + LaneId() : + LaneId() % LOGICAL_WARP_THREADS) + {} + + + //@} end member group + /******************************************************************//** + * \name Inclusive prefix sums + *********************************************************************/ + //@{ + + + /** + * \brief Computes an inclusive prefix sum across the calling warp. + * + * \par + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates four concurrent warp-wide inclusive prefix sums within a block of + * 128 threads (one per each of the 32-thread warps). + * \par + * \code + * #include + * + * __global__ void ExampleKernel(...) + * { + * // Specialize WarpScan for type int + * typedef cub::WarpScan WarpScan; + * + * // Allocate WarpScan shared memory for 4 warps + * __shared__ typename WarpScan::TempStorage temp_storage[4]; + * + * // Obtain one input item per thread + * int thread_data = ... + * + * // Compute inclusive warp-wide prefix sums + * int warp_id = threadIdx.x / 32; + * WarpScan(temp_storage[warp_id]).InclusiveSum(thread_data, thread_data); + * + * \endcode + * \par + * Suppose the set of input \p thread_data across the block of threads is {1, 1, 1, 1, ...}. + * The corresponding output \p thread_data in each of the four warps of threads will be + * 1, 2, 3, ..., 32}. + */ + __device__ __forceinline__ void InclusiveSum( + T input, ///< [in] Calling thread's input item. + T &inclusive_output) ///< [out] Calling thread's output item. May be aliased with \p input. + { + InclusiveScan(input, inclusive_output, cub::Sum()); + } + + + /** + * \brief Computes an inclusive prefix sum across the calling warp. Also provides every thread with the warp-wide \p warp_aggregate of all inputs. + * + * \par + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates four concurrent warp-wide inclusive prefix sums within a block of + * 128 threads (one per each of the 32-thread warps). + * \par + * \code + * #include + * + * __global__ void ExampleKernel(...) + * { + * // Specialize WarpScan for type int + * typedef cub::WarpScan WarpScan; + * + * // Allocate WarpScan shared memory for 4 warps + * __shared__ typename WarpScan::TempStorage temp_storage[4]; + * + * // Obtain one input item per thread + * int thread_data = ... + * + * // Compute inclusive warp-wide prefix sums + * int warp_aggregate; + * int warp_id = threadIdx.x / 32; + * WarpScan(temp_storage[warp_id]).InclusiveSum(thread_data, thread_data, warp_aggregate); + * + * \endcode + * \par + * Suppose the set of input \p thread_data across the block of threads is {1, 1, 1, 1, ...}. + * The corresponding output \p thread_data in each of the four warps of threads will be + * 1, 2, 3, ..., 32}. Furthermore, \p warp_aggregate for all threads in all warps will be \p 32. + */ + __device__ __forceinline__ void InclusiveSum( + T input, ///< [in] Calling thread's input item. + T &inclusive_output, ///< [out] Calling thread's output item. May be aliased with \p input. + T &warp_aggregate) ///< [out] Warp-wide aggregate reduction of input items. + { + InclusiveScan(input, inclusive_output, cub::Sum(), warp_aggregate); + } + + + //@} end member group + /******************************************************************//** + * \name Exclusive prefix sums + *********************************************************************/ + //@{ + + + /** + * \brief Computes an exclusive prefix sum across the calling warp. The value of 0 is applied as the initial value, and is assigned to \p exclusive_output in thread0. + * + * \par + * - \identityzero + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates four concurrent warp-wide exclusive prefix sums within a block of + * 128 threads (one per each of the 32-thread warps). + * \par + * \code + * #include + * + * __global__ void ExampleKernel(...) + * { + * // Specialize WarpScan for type int + * typedef cub::WarpScan WarpScan; + * + * // Allocate WarpScan shared memory for 4 warps + * __shared__ typename WarpScan::TempStorage temp_storage[4]; + * + * // Obtain one input item per thread + * int thread_data = ... + * + * // Compute exclusive warp-wide prefix sums + * int warp_id = threadIdx.x / 32; + * WarpScan(temp_storage[warp_id]).ExclusiveSum(thread_data, thread_data); + * + * \endcode + * \par + * Suppose the set of input \p thread_data across the block of threads is {1, 1, 1, 1, ...}. + * The corresponding output \p thread_data in each of the four warps of threads will be + * 0, 1, 2, ..., 31}. + * + */ + __device__ __forceinline__ void ExclusiveSum( + T input, ///< [in] Calling thread's input item. + T &exclusive_output) ///< [out] Calling thread's output item. May be aliased with \p input. + { + T initial_value {}; + ExclusiveScan(input, exclusive_output, initial_value, cub::Sum()); + } + + + /** + * \brief Computes an exclusive prefix sum across the calling warp. The value of 0 is applied as the initial value, and is assigned to \p exclusive_output in thread0. Also provides every thread with the warp-wide \p warp_aggregate of all inputs. + * + * \par + * - \identityzero + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates four concurrent warp-wide exclusive prefix sums within a block of + * 128 threads (one per each of the 32-thread warps). + * \par + * \code + * #include + * + * __global__ void ExampleKernel(...) + * { + * // Specialize WarpScan for type int + * typedef cub::WarpScan WarpScan; + * + * // Allocate WarpScan shared memory for 4 warps + * __shared__ typename WarpScan::TempStorage temp_storage[4]; + * + * // Obtain one input item per thread + * int thread_data = ... + * + * // Compute exclusive warp-wide prefix sums + * int warp_aggregate; + * int warp_id = threadIdx.x / 32; + * WarpScan(temp_storage[warp_id]).ExclusiveSum(thread_data, thread_data, warp_aggregate); + * + * \endcode + * \par + * Suppose the set of input \p thread_data across the block of threads is {1, 1, 1, 1, ...}. + * The corresponding output \p thread_data in each of the four warps of threads will be + * 0, 1, 2, ..., 31}. Furthermore, \p warp_aggregate for all threads in all warps will be \p 32. + */ + __device__ __forceinline__ void ExclusiveSum( + T input, ///< [in] Calling thread's input item. + T &exclusive_output, ///< [out] Calling thread's output item. May be aliased with \p input. + T &warp_aggregate) ///< [out] Warp-wide aggregate reduction of input items. + { + T initial_value {}; + ExclusiveScan(input, exclusive_output, initial_value, cub::Sum(), warp_aggregate); + } + + + //@} end member group + /******************************************************************//** + * \name Inclusive prefix scans + *********************************************************************/ + //@{ + + /** + * \brief Computes an inclusive prefix scan using the specified binary scan functor across the calling warp. + * + * \par + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates four concurrent warp-wide inclusive prefix max scans within a block of + * 128 threads (one per each of the 32-thread warps). + * \par + * \code + * #include + * + * __global__ void ExampleKernel(...) + * { + * // Specialize WarpScan for type int + * typedef cub::WarpScan WarpScan; + * + * // Allocate WarpScan shared memory for 4 warps + * __shared__ typename WarpScan::TempStorage temp_storage[4]; + * + * // Obtain one input item per thread + * int thread_data = ... + * + * // Compute inclusive warp-wide prefix max scans + * int warp_id = threadIdx.x / 32; + * WarpScan(temp_storage[warp_id]).InclusiveScan(thread_data, thread_data, cub::Max()); + * + * \endcode + * \par + * Suppose the set of input \p thread_data across the block of threads is {0, -1, 2, -3, ..., 126, -127}. + * The corresponding output \p thread_data in the first warp would be + * 0, 0, 2, 2, ..., 30, 30, the output for the second warp would be 32, 32, 34, 34, ..., 62, 62, etc. + * + * \tparam ScanOp [inferred] Binary scan operator type having member T operator()(const T &a, const T &b) + */ + template + __device__ __forceinline__ void InclusiveScan( + T input, ///< [in] Calling thread's input item. + T &inclusive_output, ///< [out] Calling thread's output item. May be aliased with \p input. + ScanOp scan_op) ///< [in] Binary scan operator + { + InternalWarpScan(temp_storage).InclusiveScan(input, inclusive_output, scan_op); + } + + + /** + * \brief Computes an inclusive prefix scan using the specified binary scan functor across the calling warp. Also provides every thread with the warp-wide \p warp_aggregate of all inputs. + * + * \par + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates four concurrent warp-wide inclusive prefix max scans within a block of + * 128 threads (one per each of the 32-thread warps). + * \par + * \code + * #include + * + * __global__ void ExampleKernel(...) + * { + * // Specialize WarpScan for type int + * typedef cub::WarpScan WarpScan; + * + * // Allocate WarpScan shared memory for 4 warps + * __shared__ typename WarpScan::TempStorage temp_storage[4]; + * + * // Obtain one input item per thread + * int thread_data = ... + * + * // Compute inclusive warp-wide prefix max scans + * int warp_aggregate; + * int warp_id = threadIdx.x / 32; + * WarpScan(temp_storage[warp_id]).InclusiveScan( + * thread_data, thread_data, cub::Max(), warp_aggregate); + * + * \endcode + * \par + * Suppose the set of input \p thread_data across the block of threads is {0, -1, 2, -3, ..., 126, -127}. + * The corresponding output \p thread_data in the first warp would be + * 0, 0, 2, 2, ..., 30, 30, the output for the second warp would be 32, 32, 34, 34, ..., 62, 62, etc. + * Furthermore, \p warp_aggregate would be assigned \p 30 for threads in the first warp, \p 62 for threads + * in the second warp, etc. + * + * \tparam ScanOp [inferred] Binary scan operator type having member T operator()(const T &a, const T &b) + */ + template + __device__ __forceinline__ void InclusiveScan( + T input, ///< [in] Calling thread's input item. + T &inclusive_output, ///< [out] Calling thread's output item. May be aliased with \p input. + ScanOp scan_op, ///< [in] Binary scan operator + T &warp_aggregate) ///< [out] Warp-wide aggregate reduction of input items. + { + InternalWarpScan(temp_storage).InclusiveScan(input, inclusive_output, scan_op, warp_aggregate); + } + + + //@} end member group + /******************************************************************//** + * \name Exclusive prefix scans + *********************************************************************/ + //@{ + + /** + * \brief Computes an exclusive prefix scan using the specified binary scan functor across the calling warp. Because no initial value is supplied, the \p output computed for warp-lane0 is undefined. + * + * \par + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates four concurrent warp-wide exclusive prefix max scans within a block of + * 128 threads (one per each of the 32-thread warps). + * \par + * \code + * #include + * + * __global__ void ExampleKernel(...) + * { + * // Specialize WarpScan for type int + * typedef cub::WarpScan WarpScan; + * + * // Allocate WarpScan shared memory for 4 warps + * __shared__ typename WarpScan::TempStorage temp_storage[4]; + * + * // Obtain one input item per thread + * int thread_data = ... + * + * // Compute exclusive warp-wide prefix max scans + * int warp_id = threadIdx.x / 32; + * WarpScan(temp_storage[warp_id]).ExclusiveScan(thread_data, thread_data, cub::Max()); + * + * \endcode + * \par + * Suppose the set of input \p thread_data across the block of threads is {0, -1, 2, -3, ..., 126, -127}. + * The corresponding output \p thread_data in the first warp would be + * ?, 0, 0, 2, ..., 28, 30, the output for the second warp would be ?, 32, 32, 34, ..., 60, 62, etc. + * (The output \p thread_data in warp lane0 is undefined.) + * + * \tparam ScanOp [inferred] Binary scan operator type having member T operator()(const T &a, const T &b) + */ + template + __device__ __forceinline__ void ExclusiveScan( + T input, ///< [in] Calling thread's input item. + T &exclusive_output, ///< [out] Calling thread's output item. May be aliased with \p input. + ScanOp scan_op) ///< [in] Binary scan operator + { + InternalWarpScan internal(temp_storage); + + T inclusive_output; + internal.InclusiveScan(input, inclusive_output, scan_op); + + internal.Update( + input, + inclusive_output, + exclusive_output, + scan_op, + Int2Type()); + } + + + /** + * \brief Computes an exclusive prefix scan using the specified binary scan functor across the calling warp. + * + * \par + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates four concurrent warp-wide exclusive prefix max scans within a block of + * 128 threads (one per each of the 32-thread warps). + * \par + * \code + * #include + * + * __global__ void ExampleKernel(...) + * { + * // Specialize WarpScan for type int + * typedef cub::WarpScan WarpScan; + * + * // Allocate WarpScan shared memory for 4 warps + * __shared__ typename WarpScan::TempStorage temp_storage[4]; + * + * // Obtain one input item per thread + * int thread_data = ... + * + * // Compute exclusive warp-wide prefix max scans + * int warp_id = threadIdx.x / 32; + * WarpScan(temp_storage[warp_id]).ExclusiveScan(thread_data, thread_data, INT_MIN, cub::Max()); + * + * \endcode + * \par + * Suppose the set of input \p thread_data across the block of threads is {0, -1, 2, -3, ..., 126, -127}. + * The corresponding output \p thread_data in the first warp would be + * INT_MIN, 0, 0, 2, ..., 28, 30, the output for the second warp would be 30, 32, 32, 34, ..., 60, 62, etc. + * + * \tparam ScanOp [inferred] Binary scan operator type having member T operator()(const T &a, const T &b) + */ + template + __device__ __forceinline__ void ExclusiveScan( + T input, ///< [in] Calling thread's input item. + T &exclusive_output, ///< [out] Calling thread's output item. May be aliased with \p input. + T initial_value, ///< [in] Initial value to seed the exclusive scan + ScanOp scan_op) ///< [in] Binary scan operator + { + InternalWarpScan internal(temp_storage); + + T inclusive_output; + internal.InclusiveScan(input, inclusive_output, scan_op); + + internal.Update( + input, + inclusive_output, + exclusive_output, + scan_op, + initial_value, + Int2Type()); + } + + + /** + * \brief Computes an exclusive prefix scan using the specified binary scan functor across the calling warp. Because no initial value is supplied, the \p output computed for warp-lane0 is undefined. Also provides every thread with the warp-wide \p warp_aggregate of all inputs. + * + * \par + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates four concurrent warp-wide exclusive prefix max scans within a block of + * 128 threads (one per each of the 32-thread warps). + * \par + * \code + * #include + * + * __global__ void ExampleKernel(...) + * { + * // Specialize WarpScan for type int + * typedef cub::WarpScan WarpScan; + * + * // Allocate WarpScan shared memory for 4 warps + * __shared__ typename WarpScan::TempStorage temp_storage[4]; + * + * // Obtain one input item per thread + * int thread_data = ... + * + * // Compute exclusive warp-wide prefix max scans + * int warp_aggregate; + * int warp_id = threadIdx.x / 32; + * WarpScan(temp_storage[warp_id]).ExclusiveScan(thread_data, thread_data, cub::Max(), warp_aggregate); + * + * \endcode + * \par + * Suppose the set of input \p thread_data across the block of threads is {0, -1, 2, -3, ..., 126, -127}. + * The corresponding output \p thread_data in the first warp would be + * ?, 0, 0, 2, ..., 28, 30, the output for the second warp would be ?, 32, 32, 34, ..., 60, 62, etc. + * (The output \p thread_data in warp lane0 is undefined.) Furthermore, \p warp_aggregate would be assigned \p 30 for threads in the first warp, \p 62 for threads + * in the second warp, etc. + * + * \tparam ScanOp [inferred] Binary scan operator type having member T operator()(const T &a, const T &b) + */ + template + __device__ __forceinline__ void ExclusiveScan( + T input, ///< [in] Calling thread's input item. + T &exclusive_output, ///< [out] Calling thread's output item. May be aliased with \p input. + ScanOp scan_op, ///< [in] Binary scan operator + T &warp_aggregate) ///< [out] Warp-wide aggregate reduction of input items. + { + InternalWarpScan internal(temp_storage); + + T inclusive_output; + internal.InclusiveScan(input, inclusive_output, scan_op); + + internal.Update( + input, + inclusive_output, + exclusive_output, + warp_aggregate, + scan_op, + Int2Type()); + } + + + /** + * \brief Computes an exclusive prefix scan using the specified binary scan functor across the calling warp. Also provides every thread with the warp-wide \p warp_aggregate of all inputs. + * + * \par + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates four concurrent warp-wide exclusive prefix max scans within a block of + * 128 threads (one per each of the 32-thread warps). + * \par + * \code + * #include + * + * __global__ void ExampleKernel(...) + * { + * // Specialize WarpScan for type int + * typedef cub::WarpScan WarpScan; + * + * // Allocate WarpScan shared memory for 4 warps + * __shared__ typename WarpScan::TempStorage temp_storage[4]; + * + * // Obtain one input item per thread + * int thread_data = ... + * + * // Compute exclusive warp-wide prefix max scans + * int warp_aggregate; + * int warp_id = threadIdx.x / 32; + * WarpScan(temp_storage[warp_id]).ExclusiveScan(thread_data, thread_data, INT_MIN, cub::Max(), warp_aggregate); + * + * \endcode + * \par + * Suppose the set of input \p thread_data across the block of threads is {0, -1, 2, -3, ..., 126, -127}. + * The corresponding output \p thread_data in the first warp would be + * INT_MIN, 0, 0, 2, ..., 28, 30, the output for the second warp would be 30, 32, 32, 34, ..., 60, 62, etc. + * Furthermore, \p warp_aggregate would be assigned \p 30 for threads in the first warp, \p 62 for threads + * in the second warp, etc. + * + * \tparam ScanOp [inferred] Binary scan operator type having member T operator()(const T &a, const T &b) + */ + template + __device__ __forceinline__ void ExclusiveScan( + T input, ///< [in] Calling thread's input item. + T &exclusive_output, ///< [out] Calling thread's output item. May be aliased with \p input. + T initial_value, ///< [in] Initial value to seed the exclusive scan + ScanOp scan_op, ///< [in] Binary scan operator + T &warp_aggregate) ///< [out] Warp-wide aggregate reduction of input items. + { + InternalWarpScan internal(temp_storage); + + T inclusive_output; + internal.InclusiveScan(input, inclusive_output, scan_op); + + internal.Update( + input, + inclusive_output, + exclusive_output, + warp_aggregate, + scan_op, + initial_value, + Int2Type()); + } + + + //@} end member group + /******************************************************************//** + * \name Combination (inclusive & exclusive) prefix scans + *********************************************************************/ + //@{ + + + /** + * \brief Computes both inclusive and exclusive prefix scans using the specified binary scan functor across the calling warp. Because no initial value is supplied, the \p exclusive_output computed for warp-lane0 is undefined. + * + * \par + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates four concurrent warp-wide exclusive prefix max scans within a block of + * 128 threads (one per each of the 32-thread warps). + * \par + * \code + * #include + * + * __global__ void ExampleKernel(...) + * { + * // Specialize WarpScan for type int + * typedef cub::WarpScan WarpScan; + * + * // Allocate WarpScan shared memory for 4 warps + * __shared__ typename WarpScan::TempStorage temp_storage[4]; + * + * // Obtain one input item per thread + * int thread_data = ... + * + * // Compute exclusive warp-wide prefix max scans + * int inclusive_partial, exclusive_partial; + * WarpScan(temp_storage[warp_id]).Scan(thread_data, inclusive_partial, exclusive_partial, cub::Max()); + * + * \endcode + * \par + * Suppose the set of input \p thread_data across the block of threads is {0, -1, 2, -3, ..., 126, -127}. + * The corresponding output \p inclusive_partial in the first warp would be + * 0, 0, 2, 2, ..., 30, 30, the output for the second warp would be 32, 32, 34, 34, ..., 62, 62, etc. + * The corresponding output \p exclusive_partial in the first warp would be + * ?, 0, 0, 2, ..., 28, 30, the output for the second warp would be ?, 32, 32, 34, ..., 60, 62, etc. + * (The output \p thread_data in warp lane0 is undefined.) + * + * \tparam ScanOp [inferred] Binary scan operator type having member T operator()(const T &a, const T &b) + */ + template + __device__ __forceinline__ void Scan( + T input, ///< [in] Calling thread's input item. + T &inclusive_output, ///< [out] Calling thread's inclusive-scan output item. + T &exclusive_output, ///< [out] Calling thread's exclusive-scan output item. + ScanOp scan_op) ///< [in] Binary scan operator + { + InternalWarpScan internal(temp_storage); + + internal.InclusiveScan(input, inclusive_output, scan_op); + + internal.Update( + input, + inclusive_output, + exclusive_output, + scan_op, + Int2Type()); + } + + + /** + * \brief Computes both inclusive and exclusive prefix scans using the specified binary scan functor across the calling warp. + * + * \par + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates four concurrent warp-wide prefix max scans within a block of + * 128 threads (one per each of the 32-thread warps). + * \par + * \code + * #include + * + * __global__ void ExampleKernel(...) + * { + * // Specialize WarpScan for type int + * typedef cub::WarpScan WarpScan; + * + * // Allocate WarpScan shared memory for 4 warps + * __shared__ typename WarpScan::TempStorage temp_storage[4]; + * + * // Obtain one input item per thread + * int thread_data = ... + * + * // Compute inclusive warp-wide prefix max scans + * int warp_id = threadIdx.x / 32; + * int inclusive_partial, exclusive_partial; + * WarpScan(temp_storage[warp_id]).Scan(thread_data, inclusive_partial, exclusive_partial, INT_MIN, cub::Max()); + * + * \endcode + * \par + * Suppose the set of input \p thread_data across the block of threads is {0, -1, 2, -3, ..., 126, -127}. + * The corresponding output \p inclusive_partial in the first warp would be + * 0, 0, 2, 2, ..., 30, 30, the output for the second warp would be 32, 32, 34, 34, ..., 62, 62, etc. + * The corresponding output \p exclusive_partial in the first warp would be + * INT_MIN, 0, 0, 2, ..., 28, 30, the output for the second warp would be 30, 32, 32, 34, ..., 60, 62, etc. + * + * \tparam ScanOp [inferred] Binary scan operator type having member T operator()(const T &a, const T &b) + */ + template + __device__ __forceinline__ void Scan( + T input, ///< [in] Calling thread's input item. + T &inclusive_output, ///< [out] Calling thread's inclusive-scan output item. + T &exclusive_output, ///< [out] Calling thread's exclusive-scan output item. + T initial_value, ///< [in] Initial value to seed the exclusive scan + ScanOp scan_op) ///< [in] Binary scan operator + { + InternalWarpScan internal(temp_storage); + + internal.InclusiveScan(input, inclusive_output, scan_op); + + internal.Update( + input, + inclusive_output, + exclusive_output, + scan_op, + initial_value, + Int2Type()); + } + + + + //@} end member group + /******************************************************************//** + * \name Data exchange + *********************************************************************/ + //@{ + + /** + * \brief Broadcast the value \p input from warp-lanesrc_lane to all lanes in the warp + * + * \par + * - \smemreuse + * + * \par Snippet + * The code snippet below illustrates the warp-wide broadcasts of values from + * lanes0 in each of four warps to all other threads in those warps. + * \par + * \code + * #include + * + * __global__ void ExampleKernel(...) + * { + * // Specialize WarpScan for type int + * typedef cub::WarpScan WarpScan; + * + * // Allocate WarpScan shared memory for 4 warps + * __shared__ typename WarpScan::TempStorage temp_storage[4]; + * + * // Obtain one input item per thread + * int thread_data = ... + * + * // Broadcast from lane0 in each warp to all other threads in the warp + * int warp_id = threadIdx.x / 32; + * thread_data = WarpScan(temp_storage[warp_id]).Broadcast(thread_data, 0); + * + * \endcode + * \par + * Suppose the set of input \p thread_data across the block of threads is {0, 1, 2, 3, ..., 127}. + * The corresponding output \p thread_data will be + * {0, 0, ..., 0} in warp0, + * {32, 32, ..., 32} in warp1, + * {64, 64, ..., 64} in warp2, etc. + */ + __device__ __forceinline__ T Broadcast( + T input, ///< [in] The value to broadcast + unsigned int src_lane) ///< [in] Which warp lane is to do the broadcasting + { + return InternalWarpScan(temp_storage).Broadcast(input, src_lane); + } + + //@} end member group + +}; + +/** @} */ // end group WarpModule + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cub/warp/warp_store.cuh b/build/testing/cmake/test_install/install_prefix/include/cub/warp/warp_store.cuh new file mode 100644 index 0000000000000000000000000000000000000000..33346e826d6df6d1a95e93e25ca37f9096f6f28c --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cub/warp/warp_store.cuh @@ -0,0 +1,536 @@ +/****************************************************************************** + * Copyright (c) 2011-2021, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the NVIDIA CORPORATION nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ******************************************************************************/ + +/** + * @file + * Operations for writing linear segments of data from the CUDA warp + */ + +#pragma once + +#include +#include + +#include +#include +#include +#include +#include + + +CUB_NAMESPACE_BEGIN + + +/** + * @brief cub::WarpStoreAlgorithm enumerates alternative algorithms for + * cub::WarpStore to write a blocked arrangement of items across a CUDA + * warp to a linear segment of memory. + */ +enum WarpStoreAlgorithm +{ + /** + * @par Overview + * A [blocked arrangement](index.html#sec5sec3) of data is written + * directly to memory. + * + * @par Performance Considerations + * The utilization of memory transactions (coalescing) decreases as the + * access stride between threads increases (i.e., the number items per thread). + */ + WARP_STORE_DIRECT, + + /** + * @par Overview + * A [striped arrangement](index.html#sec5sec3) of data is written + * directly to memory. + * + * @par Performance Considerations + * The utilization of memory transactions (coalescing) remains high regardless + * of items written per thread. + */ + WARP_STORE_STRIPED, + + /** + * @par Overview + * + * A [blocked arrangement](index.html#sec5sec3) of data is written + * directly to memory using CUDA's built-in vectorized stores as a coalescing + * optimization. For example, st.global.v4.s32 instructions will be + * generated when @p T = @p int and @p ITEMS_PER_THREAD % 4 == 0. + * + * @par Performance Considerations + * - The utilization of memory transactions (coalescing) remains high until + * the the access stride between threads (i.e., the number items per thread) + * exceeds the maximum vector store width (typically 4 items or 64B, + * whichever is lower). + * - The following conditions will prevent vectorization and writing will fall + * back to cub::WARP_STORE_DIRECT: + * - @p ITEMS_PER_THREAD is odd + * - The @p OutputIteratorT is not a simple pointer type + * - The block output offset is not quadword-aligned + * - The data type @p T is not a built-in primitive or CUDA vector type + * (e.g., @p short, @p int2, @p double, @p float2, etc.) + */ + WARP_STORE_VECTORIZE, + + /** + * @par Overview + * A [blocked arrangement](index.html#sec5sec3) is locally + * transposed and then efficiently written to memory as a + * [striped arrangement](index.html#sec5sec3). + * + * @par Performance Considerations + * - The utilization of memory transactions (coalescing) remains high + * regardless of items written per thread. + * - The local reordering incurs slightly longer latencies and throughput than the + * direct cub::WARP_STORE_DIRECT and cub::WARP_STORE_VECTORIZE alternatives. + */ + WARP_STORE_TRANSPOSE +}; + + +/** + * @brief The WarpStore class provides [collective](index.html#sec0) + * data movement methods for writing a [blocked arrangement](index.html#sec5sec3) + * of items partitioned across a CUDA warp to a linear segment of memory. + * @ingroup WarpModule + * @ingroup UtilIo + * + * @tparam T + * The type of data to be written. + * + * @tparam ITEMS_PER_THREAD + * The number of consecutive items partitioned onto each thread. + * + * @tparam ALGORITHM + * [optional] cub::WarpStoreAlgorithm tuning policy enumeration. + * default: cub::WARP_STORE_DIRECT. + * + * @tparam LOGICAL_WARP_THREADS + * [optional] The number of threads per "logical" warp (may be less + * than the number of hardware warp threads). Default is the warp size of the + * targeted CUDA compute-capability (e.g., 32 threads for SM86). Must be a + * power of two. + * + * @tparam LEGACY_PTX_ARCH + * Unused. + * + * @par Overview + * - The WarpStore class provides a single data movement abstraction that can be + * specialized to implement different cub::WarpStoreAlgorithm strategies. This + * facilitates different performance policies for different architectures, + * data types, granularity sizes, etc. + * - WarpStore can be optionally specialized by different data movement strategies: + * -# cub::WARP_STORE_DIRECT. A [blocked arrangement](index.html#sec5sec3) + * of data is written directly to memory. [More...](@ref cub::WarpStoreAlgorithm) + * -# cub::WARP_STORE_STRIPED. A [striped arrangement](index.html#sec5sec3) + * of data is written directly to memory. [More...](@ref cub::WarpStoreAlgorithm) + * -# cub::WARP_STORE_VECTORIZE. A [blocked arrangement](index.html#sec5sec3) + * of data is written directly to memory using CUDA's built-in vectorized + * stores as a coalescing optimization. [More...](@ref cub::WarpStoreAlgorithm) + * -# cub::WARP_STORE_TRANSPOSE. A [blocked arrangement](index.html#sec5sec3) + * is locally transposed into a [striped arrangement](index.html#sec5sec3) + * which is then written to memory. [More...](@ref cub::WarpStoreAlgorithm) + * - \rowmajor + * + * @par A Simple Example + * @par + * The code snippet below illustrates the storing of a "blocked" arrangement + * of 64 integers across 16 threads (where each thread owns 4 consecutive items) + * into a linear segment of memory. The store is specialized for + * @p WARP_STORE_TRANSPOSE, meaning items are locally reordered among threads so + * that memory references will be efficiently coalesced using a warp-striped + * access pattern. + * @par + * @code + * #include // or equivalently + * + * __global__ void ExampleKernel(int *d_data, ...) + * { + * constexpr int warp_threads = 16; + * constexpr int block_threads = 256; + * constexpr int items_per_thread = 4; + * + * // Specialize WarpStore for a virtual warp of 16 threads owning 4 integer items each + * using WarpStoreT = WarpStore; + * + * constexpr int warps_in_block = block_threads / warp_threads; + * constexpr int tile_size = items_per_thread * warp_threads; + * const int warp_id = static_cast(threadIdx.x) / warp_threads; + * + * // Allocate shared memory for WarpStore + * __shared__ typename WarpStoreT::TempStorage temp_storage[warps_in_block]; + * + * // Obtain a segment of consecutive items that are blocked across threads + * int thread_data[4]; + * ... + * + * // Store items to linear memory + * WarpStoreT(temp_storage[warp_id]).Store(d_data + warp_id * tile_size, thread_data); + * @endcode + * @par + * Suppose the set of @p thread_data across the warp threads is + * { [0,1,2,3], [4,5,6,7], ..., [60,61,62,63] }. + * The output @p d_data will be 0, 1, 2, 3, 4, 5, .... + */ +template +class WarpStore +{ + static_assert(PowerOfTwo::VALUE, + "LOGICAL_WARP_THREADS must be a power of two"); + + constexpr static bool IS_ARCH_WARP = LOGICAL_WARP_THREADS == CUB_WARP_THREADS(0); + +private: + + /// Store helper + template + struct StoreInternal; + + template + struct StoreInternal + { + typedef NullType TempStorage; + + int linear_tid; + + __device__ __forceinline__ StoreInternal(TempStorage &/*temp_storage*/, + int linear_tid) + : linear_tid(linear_tid) + {} + + template + __device__ __forceinline__ void Store(OutputIteratorT block_itr, + T (&items)[ITEMS_PER_THREAD]) + { + StoreDirectBlocked(linear_tid, block_itr, items); + } + + template + __device__ __forceinline__ void Store(OutputIteratorT block_itr, + T (&items)[ITEMS_PER_THREAD], + int valid_items) + { + StoreDirectBlocked(linear_tid, block_itr, items, valid_items); + } + }; + + + template + struct StoreInternal + { + typedef NullType TempStorage; + + int linear_tid; + + __device__ __forceinline__ StoreInternal(TempStorage & /*temp_storage*/, + int linear_tid) + : linear_tid(linear_tid) + {} + + template + __device__ __forceinline__ void Store(OutputIteratorT block_itr, + T (&items)[ITEMS_PER_THREAD]) + { + StoreDirectStriped(linear_tid, block_itr, items); + } + + template + __device__ __forceinline__ void Store(OutputIteratorT block_itr, + T (&items)[ITEMS_PER_THREAD], + int valid_items) + { + StoreDirectStriped(linear_tid, + block_itr, + items, + valid_items); + } + }; + + + template + struct StoreInternal + { + typedef NullType TempStorage; + + int linear_tid; + + __device__ __forceinline__ StoreInternal(TempStorage & /*temp_storage*/, + int linear_tid) + : linear_tid(linear_tid) + {} + + __device__ __forceinline__ void Store(T *block_ptr, + T (&items)[ITEMS_PER_THREAD]) + { + StoreDirectBlockedVectorized(linear_tid, block_ptr, items); + } + + template + __device__ __forceinline__ void Store(OutputIteratorT block_itr, + T (&items)[ITEMS_PER_THREAD]) + { + StoreDirectBlocked(linear_tid, block_itr, items); + } + + template + __device__ __forceinline__ void Store(OutputIteratorT block_itr, + T (&items)[ITEMS_PER_THREAD], + int valid_items) + { + StoreDirectBlocked(linear_tid, block_itr, items, valid_items); + } + }; + + + template + struct StoreInternal + { + using WarpExchangeT = + WarpExchange; + + struct _TempStorage : WarpExchangeT::TempStorage + {}; + + struct TempStorage : Uninitialized<_TempStorage> {}; + + _TempStorage &temp_storage; + + int linear_tid; + + __device__ __forceinline__ StoreInternal(TempStorage &temp_storage, + int linear_tid) + : temp_storage(temp_storage.Alias()) + , linear_tid(linear_tid) + {} + + template + __device__ __forceinline__ void Store(OutputIteratorT block_itr, + T (&items)[ITEMS_PER_THREAD]) + { + WarpExchangeT(temp_storage).BlockedToStriped(items, items); + StoreDirectStriped(linear_tid, block_itr, items); + } + + template + __device__ __forceinline__ void Store(OutputIteratorT block_itr, + T (&items)[ITEMS_PER_THREAD], + int valid_items) + { + WarpExchangeT(temp_storage).BlockedToStriped(items, items); + StoreDirectStriped(linear_tid, + block_itr, + items, + valid_items); + } + }; + + + /// Internal load implementation to use + using InternalStore = StoreInternal; + + /// Shared memory storage layout type + using _TempStorage = typename InternalStore::TempStorage; + + + __device__ __forceinline__ _TempStorage& PrivateStorage() + { + __shared__ _TempStorage private_storage; + return private_storage; + } + + + _TempStorage &temp_storage; + + int linear_tid; + +public: + + struct TempStorage : Uninitialized<_TempStorage> {}; + + /*************************************************************************//** + * @name Collective constructors + ****************************************************************************/ + //@{ + + /** + * @brief Collective constructor using a private static allocation of shared + * memory as temporary storage. + */ + __device__ __forceinline__ WarpStore() + : temp_storage(PrivateStorage()) + , linear_tid(IS_ARCH_WARP ? LaneId() : (LaneId() % LOGICAL_WARP_THREADS)) + {} + + /** + * @brief Collective constructor using the specified memory allocation as + * temporary storage. + */ + __device__ __forceinline__ WarpStore(TempStorage &temp_storage) + : temp_storage(temp_storage.Alias()) + , linear_tid(IS_ARCH_WARP ? LaneId() : (LaneId() % LOGICAL_WARP_THREADS)) + {} + + //@} end member group + /*************************************************************************//** + * @name Data movement + ****************************************************************************/ + //@{ + + /** + * @brief Store items into a linear segment of memory. + * + * @par + * \smemreuse + * + * @par Snippet + * @par + * The code snippet below illustrates the storing of a "blocked" arrangement + * of 64 integers across 16 threads (where each thread owns 4 consecutive items) + * into a linear segment of memory. The store is specialized for + * @p WARP_STORE_TRANSPOSE, meaning items are locally reordered among threads so + * that memory references will be efficiently coalesced using a warp-striped + * access pattern. + * @code + * #include // or equivalently + * + * __global__ void ExampleKernel(int *d_data, ...) + * { + * constexpr int warp_threads = 16; + * constexpr int block_threads = 256; + * constexpr int items_per_thread = 4; + * + * // Specialize WarpStore for a virtual warp of 16 threads owning 4 integer items each + * using WarpStoreT = WarpStore; + * + * constexpr int warps_in_block = block_threads / warp_threads; + * constexpr int tile_size = items_per_thread * warp_threads; + * const int warp_id = static_cast(threadIdx.x) / warp_threads; + * + * // Allocate shared memory for WarpStore + * __shared__ typename WarpStoreT::TempStorage temp_storage[warps_in_block]; + * + * // Obtain a segment of consecutive items that are blocked across threads + * int thread_data[4]; + * ... + * + * // Store items to linear memory + * WarpStoreT(temp_storage[warp_id]).Store(d_data + warp_id * tile_size, thread_data); + * @endcode + * @par + * Suppose the set of @p thread_data across the warp threads is + * { [0,1,2,3], [4,5,6,7], ..., [60,61,62,63] }. + * The output @p d_data will be 0, 1, 2, 3, 4, 5, .... + * + * @param[out] block_itr The thread block's base output iterator for storing to + * @param[in] items Data to store + */ + template + __device__ __forceinline__ void Store(OutputIteratorT block_itr, + T (&items)[ITEMS_PER_THREAD]) + { + InternalStore(temp_storage, linear_tid).Store(block_itr, items); + } + + /** + * @brief Store items into a linear segment of memory, guarded by range. + * + * @par + * \smemreuse + * + * @par Snippet + * @par + * The code snippet below illustrates the storing of a "blocked" arrangement + * of 64 integers across 16 threads (where each thread owns 4 consecutive items) + * into a linear segment of memory. The store is specialized for + * @p WARP_STORE_TRANSPOSE, meaning items are locally reordered among threads so + * that memory references will be efficiently coalesced using a warp-striped + * access pattern. + * @code + * #include // or equivalently + * + * __global__ void ExampleKernel(int *d_data, int valid_items ...) + * { + * constexpr int warp_threads = 16; + * constexpr int block_threads = 256; + * constexpr int items_per_thread = 4; + * + * // Specialize WarpStore for a virtual warp of 16 threads owning 4 integer items each + * using WarpStoreT = WarpStore; + * + * constexpr int warps_in_block = block_threads / warp_threads; + * constexpr int tile_size = items_per_thread * warp_threads; + * const int warp_id = static_cast(threadIdx.x) / warp_threads; + * + * // Allocate shared memory for WarpStore + * __shared__ typename WarpStoreT::TempStorage temp_storage[warps_in_block]; + * + * // Obtain a segment of consecutive items that are blocked across threads + * int thread_data[4]; + * ... + * + * // Store items to linear memory + * WarpStoreT(temp_storage[warp_id]).Store( + * d_data + warp_id * tile_size, thread_data, valid_items); + * @endcode + * @par + * Suppose the set of @p thread_data across the warp threads is + * { [0,1,2,3], [4,5,6,7], ..., [60,61,62,63] } and @p valid_items + * is @p 5.. The output @p d_data will be 0, 1, 2, 3, 4, ?, ?, ..., + * with only the first two threads being unmasked to store portions of valid + * data. + * + * @param[out] block_itr The thread block's base output iterator for storing to + * @param[in] items Data to store + * @param[in] valid_items Number of valid items to write + */ + template + __device__ __forceinline__ void Store(OutputIteratorT block_itr, + T (&items)[ITEMS_PER_THREAD], + int valid_items) + { + InternalStore(temp_storage, linear_tid).Store(block_itr, items, valid_items); + } + + //@} end member group +}; + + +CUB_NAMESPACE_END diff --git a/build/testing/cmake/test_install/install_prefix/include/cuda/annotated_ptr b/build/testing/cmake/test_install/install_prefix/include/cuda/annotated_ptr new file mode 100644 index 0000000000000000000000000000000000000000..fcb6e20d71ac9f80d79559c8c558459310e56700 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cuda/annotated_ptr @@ -0,0 +1,337 @@ +/* + * SPDX-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * + * NVIDIA SOFTWARE LICENSE + * + * This license is a legal agreement between you and NVIDIA Corporation ("NVIDIA") and governs your use of the NVIDIA/CUDA C++ Library software and materials provided hereunder (“SOFTWARE”). + * + * This license can be accepted only by an adult of legal age of majority in the country in which the SOFTWARE is used. If you are under the legal age of majority, you must ask your parent or legal guardian to consent to this license. By taking delivery of the SOFTWARE, you affirm that you have reached the legal age of majority, you accept the terms of this license, and you take legal and financial responsibility for the actions of your permitted users. + * + * You agree to use the SOFTWARE only for purposes that are permitted by (a) this license, and (b) any applicable law, regulation or generally accepted practices or guidelines in the relevant jurisdictions. + * + * 1. LICENSE. Subject to the terms of this license, NVIDIA grants you a non-exclusive limited license to: (a) install and use the SOFTWARE, and (b) distribute the SOFTWARE subject to the distribution requirements described in this license. NVIDIA reserves all rights, title and interest in and to the SOFTWARE not expressly granted to you under this license. + * + * 2. DISTRIBUTION REQUIREMENTS. These are the distribution requirements for you to exercise the distribution grant: + * a. The terms under which you distribute the SOFTWARE must be consistent with the terms of this license, including (without limitation) terms relating to the license grant and license restrictions and protection of NVIDIA’s intellectual property rights. + * b. You agree to notify NVIDIA in writing of any known or suspected distribution or use of the SOFTWARE not in compliance with the requirements of this license, and to enforce the terms of your agreements with respect to distributed SOFTWARE. + * + * 3. LIMITATIONS. Your license to use the SOFTWARE is restricted as follows: + * a. The SOFTWARE is licensed for you to develop applications only for use in systems with NVIDIA GPUs. + * b. You may not reverse engineer, decompile or disassemble, or remove copyright or other proprietary notices from any portion of the SOFTWARE or copies of the SOFTWARE. + * c. You may not modify or create derivative works of any portion of the SOFTWARE. + * d. You may not bypass, disable, or circumvent any technical measure, encryption, security, digital rights management or authentication mechanism in the SOFTWARE. + * e. You may not use the SOFTWARE in any manner that would cause it to become subject to an open source software license. As examples, licenses that require as a condition of use, modification, and/or distribution that the SOFTWARE be (i) disclosed or distributed in source code form; (ii) licensed for the purpose of making derivative works; or (iii) redistributable at no charge. + * f. Unless you have an agreement with NVIDIA for this purpose, you may not use the SOFTWARE with any system or application where the use or failure of the system or application can reasonably be expected to threaten or result in personal injury, death, or catastrophic loss. Examples include use in avionics, navigation, military, medical, life support or other life critical applications. NVIDIA does not design, test or manufacture the SOFTWARE for these critical uses and NVIDIA shall not be liable to you or any third party, in whole or in part, for any claims or damages arising from such uses. + * g. You agree to defend, indemnify and hold harmless NVIDIA and its affiliates, and their respective employees, contractors, agents, officers and directors, from and against any and all claims, damages, obligations, losses, liabilities, costs or debt, fines, restitutions and expenses (including but not limited to attorney’s fees and costs incident to establishing the right of indemnification) arising out of or related to use of the SOFTWARE outside of the scope of this Agreement, or not in compliance with its terms. + * + * 4. PRE-RELEASE. SOFTWARE versions identified as alpha, beta, preview, early access or otherwise as pre-release may not be fully functional, may contain errors or design flaws, and may have reduced or different security, privacy, availability, and reliability standards relative to commercial versions of NVIDIA software and materials. You may use a pre-release SOFTWARE version at your own risk, understanding that these versions are not intended for use in production or business-critical systems. + * + * 5. OWNERSHIP. The SOFTWARE and the related intellectual property rights therein are and will remain the sole and exclusive property of NVIDIA or its licensors. The SOFTWARE is copyrighted and protected by the laws of the United States and other countries, and international treaty provisions. NVIDIA may make changes to the SOFTWARE, at any time without notice, but is not obligated to support or update the SOFTWARE. + * + * 6. COMPONENTS UNDER OTHER LICENSES. The SOFTWARE may include NVIDIA or third-party components with separate legal notices or terms as may be described in proprietary notices accompanying the SOFTWARE. If and to the extent there is a conflict between the terms in this license and the license terms associated with a component, the license terms associated with the components control only to the extent necessary to resolve the conflict. + * + * 7. FEEDBACK. You may, but don’t have to, provide to NVIDIA any Feedback. “Feedback” means any suggestions, bug fixes, enhancements, modifications, feature requests or other feedback regarding the SOFTWARE. For any Feedback that you voluntarily provide, you hereby grant NVIDIA and its affiliates a perpetual, non-exclusive, worldwide, irrevocable license to use, reproduce, modify, license, sublicense (through multiple tiers of sublicensees), and distribute (through multiple tiers of distributors) the Feedback without the payment of any royalties or fees to you. NVIDIA will use Feedback at its choice. + * + * 8. NO WARRANTIES. THE SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY EXPRESS OR IMPLIED WARRANTY OF ANY KIND INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT, OR FITNESS FOR A PARTICULAR PURPOSE. NVIDIA DOES NOT WARRANT THAT THE SOFTWARE WILL MEET YOUR REQUIREMENTS OR THAT THE OPERATION THEREOF WILL BE UNINTERRUPTED OR ERROR-FREE, OR THAT ALL ERRORS WILL BE CORRECTED. + * + * 9. LIMITATIONS OF LIABILITY. TO THE MAXIMUM EXTENT PERMITTED BY LAW, NVIDIA AND ITS AFFILIATES SHALL NOT BE LIABLE FOR ANY SPECIAL, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL DAMAGES, OR ANY LOST PROFITS, PROJECT DELAYS, LOSS OF USE, LOSS OF DATA OR LOSS OF GOODWILL, OR THE COSTS OF PROCURING SUBSTITUTE PRODUCTS, ARISING OUT OF OR IN CONNECTION WITH THIS LICENSE OR THE USE OR PERFORMANCE OF THE SOFTWARE, WHETHER SUCH LIABILITY ARISES FROM ANY CLAIM BASED UPON BREACH OF CONTRACT, BREACH OF WARRANTY, TORT (INCLUDING NEGLIGENCE), PRODUCT LIABILITY OR ANY OTHER CAUSE OF ACTION OR THEORY OF LIABILITY, EVEN IF NVIDIA HAS PREVIOUSLY BEEN ADVISED OF, OR COULD REASONABLY HAVE FORESEEN, THE POSSIBILITY OF SUCH DAMAGES. IN NO EVENT WILL NVIDIA’S AND ITS AFFILIATES TOTAL CUMULATIVE LIABILITY UNDER OR ARISING OUT OF THIS LICENSE EXCEED US$10.00. THE NATURE OF THE LIABILITY OR THE NUMBER OF CLAIMS OR SUITS SHALL NOT ENLARGE OR EXTEND THIS LIMIT. + * + * 10. TERMINATION. Your rights under this license will terminate automatically without notice from NVIDIA if you fail to comply with any term and condition of this license or if you commence or participate in any legal proceeding against NVIDIA with respect to the SOFTWARE. NVIDIA may terminate this license with advance written notice to you if NVIDIA decides to no longer provide the SOFTWARE in a country or, in NVIDIA’s sole discretion, the continued use of it is no longer commercially viable. Upon any termination of this license, you agree to promptly discontinue use of the SOFTWARE and destroy all copies in your possession or control. Your prior distributions in accordance with this license are not affected by the termination of this license. All provisions of this license will survive termination, except for the license granted to you. + * + * 11. APPLICABLE LAW. This license will be governed in all respects by the laws of the United States and of the State of Delaware as those laws are applied to contracts entered into and performed entirely within Delaware by Delaware residents, without regard to the conflicts of laws principles. The United Nations Convention on Contracts for the International Sale of Goods is specifically disclaimed. You agree to all terms of this Agreement in the English language. The state or federal courts residing in Santa Clara County, California shall have exclusive jurisdiction over any dispute or claim arising out of this license. Notwithstanding this, you agree that NVIDIA shall still be allowed to apply for injunctive remedies or an equivalent type of urgent legal relief in any jurisdiction. + * + * 12. NO ASSIGNMENT. This license and your rights and obligations thereunder may not be assigned by you by any means or operation of law without NVIDIA’s permission. Any attempted assignment not approved by NVIDIA in writing shall be void and of no effect. + * + * 13. EXPORT. The SOFTWARE is subject to United States export laws and regulations. You agree that you will not ship, transfer or export the SOFTWARE into any country, or use the SOFTWARE in any manner, prohibited by the United States Bureau of Industry and Security or economic sanctions regulations administered by the U.S. Department of Treasury’s Office of Foreign Assets Control (OFAC), or any applicable export laws, restrictions or regulations. These laws include restrictions on destinations, end users and end use. By accepting this license, you confirm that you are not a resident or citizen of any country currently embargoed by the U.S. and that you are not otherwise prohibited from receiving the SOFTWARE. + * + * 14. GOVERNMENT USE. The SOFTWARE has been developed entirely at private expense and is “commercial items” consisting of “commercial computer software” and “commercial computer software documentation” provided with RESTRICTED RIGHTS. Use, duplication or disclosure by the U.S. Government or a U.S. Government subcontractor is subject to the restrictions in this license pursuant to DFARS 227.7202-3(a) or as set forth in subparagraphs (b)(1) and (2) of the Commercial Computer Software - Restricted Rights clause at FAR 52.227-19, as applicable. Contractor/manufacturer is NVIDIA, 2788 San Tomas Expressway, Santa Clara, CA 95051. + * + * 15. ENTIRE AGREEMENT. This license is the final, complete and exclusive agreement between the parties relating to the subject matter of this license and supersedes all prior or contemporaneous understandings and agreements relating to this subject matter, whether oral or written. If any court of competent jurisdiction determines that any provision of this license is illegal, invalid or unenforceable, the remaining provisions will remain in full force and effect. This license may only be modified in a writing signed by an authorized representative of each party. + * + * (v. August 20, 2021) + */ + +#ifndef _CUDA_ANNOTATED_PTR +#define _CUDA_ANNOTATED_PTR + +#include +#include + +#include "std/detail/__access_property" + +_LIBCUDACXX_BEGIN_NAMESPACE_CUDA + +class access_property { + private: + std::uint64_t __descriptor = 0; + + public: + struct shared {}; + struct global {}; + struct persisting { + __host__ __device__ constexpr operator cudaAccessProperty() const noexcept { + return cudaAccessProperty::cudaAccessPropertyPersisting; + } + }; + struct streaming { + __host__ __device__ constexpr operator cudaAccessProperty() const noexcept { + return cudaAccessProperty::cudaAccessPropertyStreaming; + } + }; + struct normal { + __host__ __device__ constexpr operator cudaAccessProperty() const noexcept { + return cudaAccessProperty::cudaAccessPropertyNormal; + } + }; + + __host__ __device__ constexpr access_property(global) noexcept : __descriptor(__detail_ap::__sm_80::__interleave_normal()) {} + __host__ __device__ constexpr access_property() noexcept : __descriptor(__detail_ap::__sm_80::__interleave_normal()) {} + constexpr access_property(access_property const&) noexcept = default; + access_property& operator=(const access_property& other) noexcept = default; + + __host__ __device__ constexpr access_property(normal, float __fraction) : __descriptor(__detail_ap::__interleave(normal{}, __fraction)) {} + __host__ __device__ constexpr access_property(streaming, float __fraction) : __descriptor(__detail_ap::__interleave(streaming{}, __fraction)) {} + __host__ __device__ constexpr access_property(persisting, float __fraction) : __descriptor(__detail_ap::__interleave(persisting{}, __fraction)) {} + __host__ __device__ constexpr access_property(normal, float __fraction, streaming) : __descriptor(__detail_ap::__interleave(normal{}, __fraction, streaming{})) {} + __host__ __device__ constexpr access_property(persisting, float __fraction, streaming) : __descriptor(__detail_ap::__interleave(persisting{}, __fraction, streaming{})) {} + + __host__ __device__ constexpr access_property(normal) noexcept : access_property(normal{}, 1.0) {} + __host__ __device__ constexpr access_property(streaming) noexcept : access_property(streaming{}, 1.0) {} + __host__ __device__ constexpr access_property(persisting) noexcept : access_property(persisting{}, 1.0) {} + + __host__ __device__ constexpr access_property(void* __ptr, std::size_t __hit_bytes, std::size_t __total_bytes, normal) + : __descriptor(__detail_ap::__block(__ptr, __hit_bytes, __total_bytes, normal{})) {} + __host__ __device__ constexpr access_property(void* __ptr, std::size_t __hit_bytes, std::size_t __total_bytes, streaming) + : __descriptor(__detail_ap::__block(__ptr, __hit_bytes, __total_bytes, streaming{})) {} + __host__ __device__ constexpr access_property(void* __ptr, std::size_t __hit_bytes, std::size_t __total_bytes, persisting) + : __descriptor(__detail_ap::__block(__ptr, __hit_bytes, __total_bytes, persisting{})) {} + __host__ __device__ constexpr access_property(void* __ptr, std::size_t __hit_bytes, std::size_t __total_bytes, normal, streaming) + : __descriptor(__detail_ap::__block(__ptr, __hit_bytes, __total_bytes, normal{}, streaming{})) {} + __host__ __device__ constexpr access_property(void* __ptr, std::size_t __hit_bytes, std::size_t __total_bytes, persisting, streaming) + : __descriptor(__detail_ap::__block(__ptr, __hit_bytes, __total_bytes, persisting{}, streaming{})) {} + + __host__ __device__ constexpr explicit operator std::uint64_t() const noexcept { return __descriptor; } +}; + +_LIBCUDACXX_END_NAMESPACE_CUDA + +#include "std/detail/__annotated_ptr" + +_LIBCUDACXX_BEGIN_NAMESPACE_CUDA + +template +__host__ __device__ +_Tp* associate_access_property(_Tp* __ptr, _Property __prop) { + static_assert( + std::is_same<_Property, access_property>::value || + std::is_same<_Property, access_property::persisting>::value || + std::is_same<_Property, access_property::streaming>::value || + std::is_same<_Property, access_property::normal>::value || + std::is_same<_Property, access_property::global>::value || + std::is_same<_Property, access_property::shared>::value + , "property is not convertible to cuda::access_property"); + return __detail_ap::__associate(__ptr, __prop); +} + +template +__host__ __device__ +void apply_access_property(const volatile void* __ptr, const _Shape __shape, access_property::persisting __prop) noexcept { +#if __CUDA_ARCH__ >= 800 + if (!__isGlobal((void*)__ptr)) return; + + char* __p = reinterpret_cast(const_cast(__ptr)); + static constexpr std::size_t _LINE_SIZE = 128; + std::size_t __nbytes = static_cast(__shape); + std::size_t __end = ((std::uintptr_t)(__p + __nbytes) % _LINE_SIZE) ? __nbytes + _LINE_SIZE : __nbytes; + __end /= _LINE_SIZE; + + //Apply to all 128 bytes aligned cache lines inclusive of __p + for (std::size_t __i = 0; __i < __end; __i += _LINE_SIZE) { + asm volatile ("prefetch.global.L2::evict_last [%0];" ::"l"(__p + (__i * _LINE_SIZE)) :); + } +#endif +} + +template +__host__ __device__ +void apply_access_property(const volatile void* __ptr, const _Shape __shape, access_property::normal __prop) noexcept { +#if __CUDA_ARCH__ >= 800 + if (!__isGlobal((void*)__ptr)) return; + + char* __p = reinterpret_cast(const_cast(__ptr)); + static constexpr std::size_t _LINE_SIZE = 128; + std::size_t __nbytes = static_cast(__shape); + std::size_t __end = ((std::uintptr_t)(__p + __nbytes) % _LINE_SIZE) ? __nbytes + _LINE_SIZE : __nbytes; + __end /= _LINE_SIZE; + + //Apply to all 128 bytes aligned cache lines inclusive of __p + for (std::size_t __i = 0; __i < __end; __i += _LINE_SIZE) { + asm volatile ("prefetch.global.L2::evict_normal [%0];" ::"l"(__p + (__i * _LINE_SIZE)) :); + } +#endif +} + +inline +__host__ __device__ +void discard_memory(volatile void* __ptr, std::size_t __nbytes) noexcept { +#if __CUDA_ARCH__ >= 800 + if (!__isGlobal((void*)__ptr)) return; + + char* __p = reinterpret_cast(const_cast(__ptr)); + static constexpr std::size_t _LINE_SIZE = 128; + std::size_t __start = (reinterpret_cast(__p) % _LINE_SIZE) ? 1 : 0; + std::size_t __end = (reinterpret_cast(__p + __nbytes) % _LINE_SIZE) ? __nbytes - _LINE_SIZE : __nbytes; + __end /= _LINE_SIZE; + + //Trim the first block and last block if they're not 128 bytes aligned + for (std::size_t __i = __start; __i < __end; __i += _LINE_SIZE) { + asm volatile ("discard.global.L2 [%0], 128;" ::"l"(__p + (__i * _LINE_SIZE)) :); + } +#endif +} + +template +class annotated_ptr: public __detail_ap::__annotated_ptr_base<_Property> { + public: + using value_type = _Tp; + using size_type = std::size_t; + using reference = value_type&; + using pointer = value_type*; + using const_pointer = value_type const*; + using difference_type = std::ptrdiff_t; + + private: + using __self = annotated_ptr<_Tp, _Property>; + + // Converting from a 64-bit to 32-bit shared pointer and maybe back just for storage might or might not be profitable. + pointer __repr = (pointer)((size_type)nullptr); + + __host__ __device__ pointer __get(bool __skip_prop = false, difference_type __n = 0) const { +#ifdef __CUDA_ARCH__ + if (!__skip_prop) { + return static_cast(this->__apply_prop(const_cast(static_cast(__repr + __n)))); + } +#endif + return __repr + __n; + } + __host__ __device__ pointer __offset(difference_type __n, bool __skip_prop = false) const { + return __get(__skip_prop, __n); + } + + public: + __host__ __device__ pointer operator->() const { + return __get(); + } + + __host__ __device__ reference operator*() const { + return *__get(); + } + + __host__ __device__ reference operator[](difference_type __n) const { + return *__offset(__n); + } + + __host__ __device__ constexpr difference_type operator-(annotated_ptr o) const { + return __repr - o.__repr; + } + + constexpr annotated_ptr() noexcept = default; + constexpr annotated_ptr(annotated_ptr const&) noexcept = default; + // No constexpr for c11 as the method can't be const + _LIBCUDACXX_CONSTEXPR_AFTER_CXX11 annotated_ptr& operator=(annotated_ptr const& other) noexcept = default; + + __host__ __device__ explicit annotated_ptr(pointer __p) + : __repr(__p) + { +#if _LIBCUDACXX_DEBUG_LEVEL >= 2 && defined(__CUDA_ARCH__) + _LIBCUDACXX_DEBUG_ASSERT(std::is_same<_Property, shared>::value && __isShared(__p) || __isGlobal(__p)); +#endif + } + + template + __host__ __device__ annotated_ptr(pointer __p, _RuntimeProperty __prop) + : __detail_ap::__annotated_ptr_base<_Property>(static_cast(access_property(__prop))), __repr(__p) + { + static_assert(std::is_same<_Property, access_property>::value, + "This method requires annotated_ptr"); + static_assert(std::is_same<_RuntimeProperty, access_property::global>::value || + std::is_same<_RuntimeProperty, access_property::normal>::value || + std::is_same<_RuntimeProperty, access_property::streaming>::value || + std::is_same<_RuntimeProperty, access_property::persisting>::value || + std::is_same<_RuntimeProperty, access_property>::value, + "This method requires RuntimeProperty=global|normal|streaming|persisting|access_property"); + +#if _LIBCUDACXX_DEBUG_LEVEL >= 2 && defined(__CUDA_ARCH__) + _LIBCUDACXX_DEBUG_ASSERT(__isGlobal(__p) == true); +#endif + } + + template + __host__ __device__ annotated_ptr(const annotated_ptr<_TTp,_Prop>& __other); + + __host__ __device__ constexpr explicit operator bool() const noexcept { + return __repr != nullptr; + } + + __host__ __device__ pointer get() const noexcept { + constexpr bool __is_shared = std::is_same<_Property, access_property::shared>::value; + return __is_shared ? __repr : &(*annotated_ptr(__repr)); + } + + __host__ __device__ _Property __property() const noexcept { + return this->__get_property(); + } +}; + + +template +template +__host__ __device__ annotated_ptr<_Tp, _Property>::annotated_ptr(const annotated_ptr<_TTp,_Prop>& __other) + : __detail_ap::__annotated_ptr_base<_Property>(__other.__property()), __repr(__other.get()) +{ + static_assert(std::is_assignable::value, "pointer must be assignable from other pointer"); + static_assert((std::is_same<_Property, access_property>::value && !std::is_same<_Prop, access_property::shared>::value) || + std::is_same<_Property, _Prop>::value, "Property must be either access_property or other property, and both properties must have same address space"); + // note: precondition "__other.__rep must be compatible with _Property" currently always holds +} + +template +__host__ __device__ +void memcpy_async(_Dst* __dst, + annotated_ptr<_Src,_SrcProperty> __src, + _Shape __shape, _Sync & __sync) { + memcpy_async(__dst, &(*__src), __shape, __sync); +} + +template +__host__ __device__ +void memcpy_async(annotated_ptr<_Dst,_DstProperty> __dst, + annotated_ptr<_Src,_SrcProperty> __src, + _Shape __shape, _Sync & __sync){ + memcpy_async(&(*__dst), &(*__src), __shape, __sync); +} + +template +__host__ __device__ +void memcpy_async(const _Group & __group, + _Dst * __dst, + annotated_ptr<_Src,_SrcProperty> __src, + _Shape __shape, _Sync & __sync) { + memcpy_async(__group, __dst, &(*__src), __shape, __sync); +} + +template +__host__ __device__ +void memcpy_async(const _Group & __group, + annotated_ptr<_Dst,_DstProperty> __dst, + annotated_ptr<_Src,_SrcProperty> __src, + _Shape __shape, _Sync & __sync) { + memcpy_async(__group, &(*__dst), &(*__src), __shape, __sync); +} + +_LIBCUDACXX_END_NAMESPACE_CUDA + +#endif // _CUDA_ANNOTATED_PTR diff --git a/build/testing/cmake/test_install/install_prefix/include/cuda/atomic b/build/testing/cmake/test_install/install_prefix/include/cuda/atomic new file mode 100644 index 0000000000000000000000000000000000000000..b19967087b3f8615f14d647ee26dcbeac45db0eb --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cuda/atomic @@ -0,0 +1,10 @@ +//===----------------------------------------------------------------------===// +// +// Part of libcu++, the C++ Standard Library for your entire system, +// under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#include "std/atomic" diff --git a/build/testing/cmake/test_install/install_prefix/include/cuda/barrier b/build/testing/cmake/test_install/install_prefix/include/cuda/barrier new file mode 100644 index 0000000000000000000000000000000000000000..616a4013887c51d48012afbda08591e0b66089fb --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cuda/barrier @@ -0,0 +1,10 @@ +//===----------------------------------------------------------------------===// +// +// Part of libcu++, the C++ Standard Library for your entire system, +// under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#include "std/barrier" diff --git a/build/testing/cmake/test_install/install_prefix/include/cuda/latch b/build/testing/cmake/test_install/install_prefix/include/cuda/latch new file mode 100644 index 0000000000000000000000000000000000000000..7b19dce5e5e4584cb8e38c2df5a15950d4d8c89a --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cuda/latch @@ -0,0 +1,10 @@ +//===----------------------------------------------------------------------===// +// +// Part of libcu++, the C++ Standard Library for your entire system, +// under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#include "std/latch" diff --git a/build/testing/cmake/test_install/install_prefix/include/cuda/pipeline b/build/testing/cmake/test_install/install_prefix/include/cuda/pipeline new file mode 100644 index 0000000000000000000000000000000000000000..54cdcb1b35980e9e5087e310fcefcb33068f0edd --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cuda/pipeline @@ -0,0 +1,635 @@ +/* + * SPDX-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * + * NVIDIA SOFTWARE LICENSE + * + * This license is a legal agreement between you and NVIDIA Corporation ("NVIDIA") and governs your use of the NVIDIA/CUDA C++ Library software and materials provided hereunder (“SOFTWARE”). + * + * This license can be accepted only by an adult of legal age of majority in the country in which the SOFTWARE is used. If you are under the legal age of majority, you must ask your parent or legal guardian to consent to this license. By taking delivery of the SOFTWARE, you affirm that you have reached the legal age of majority, you accept the terms of this license, and you take legal and financial responsibility for the actions of your permitted users. + * + * You agree to use the SOFTWARE only for purposes that are permitted by (a) this license, and (b) any applicable law, regulation or generally accepted practices or guidelines in the relevant jurisdictions. + * + * 1. LICENSE. Subject to the terms of this license, NVIDIA grants you a non-exclusive limited license to: (a) install and use the SOFTWARE, and (b) distribute the SOFTWARE subject to the distribution requirements described in this license. NVIDIA reserves all rights, title and interest in and to the SOFTWARE not expressly granted to you under this license. + * + * 2. DISTRIBUTION REQUIREMENTS. These are the distribution requirements for you to exercise the distribution grant: + * a. The terms under which you distribute the SOFTWARE must be consistent with the terms of this license, including (without limitation) terms relating to the license grant and license restrictions and protection of NVIDIA’s intellectual property rights. + * b. You agree to notify NVIDIA in writing of any known or suspected distribution or use of the SOFTWARE not in compliance with the requirements of this license, and to enforce the terms of your agreements with respect to distributed SOFTWARE. + * + * 3. LIMITATIONS. Your license to use the SOFTWARE is restricted as follows: + * a. The SOFTWARE is licensed for you to develop applications only for use in systems with NVIDIA GPUs. + * b. You may not reverse engineer, decompile or disassemble, or remove copyright or other proprietary notices from any portion of the SOFTWARE or copies of the SOFTWARE. + * c. You may not modify or create derivative works of any portion of the SOFTWARE. + * d. You may not bypass, disable, or circumvent any technical measure, encryption, security, digital rights management or authentication mechanism in the SOFTWARE. + * e. You may not use the SOFTWARE in any manner that would cause it to become subject to an open source software license. As examples, licenses that require as a condition of use, modification, and/or distribution that the SOFTWARE be (i) disclosed or distributed in source code form; (ii) licensed for the purpose of making derivative works; or (iii) redistributable at no charge. + * f. Unless you have an agreement with NVIDIA for this purpose, you may not use the SOFTWARE with any system or application where the use or failure of the system or application can reasonably be expected to threaten or result in personal injury, death, or catastrophic loss. Examples include use in avionics, navigation, military, medical, life support or other life critical applications. NVIDIA does not design, test or manufacture the SOFTWARE for these critical uses and NVIDIA shall not be liable to you or any third party, in whole or in part, for any claims or damages arising from such uses. + * g. You agree to defend, indemnify and hold harmless NVIDIA and its affiliates, and their respective employees, contractors, agents, officers and directors, from and against any and all claims, damages, obligations, losses, liabilities, costs or debt, fines, restitutions and expenses (including but not limited to attorney’s fees and costs incident to establishing the right of indemnification) arising out of or related to use of the SOFTWARE outside of the scope of this Agreement, or not in compliance with its terms. + * + * 4. PRE-RELEASE. SOFTWARE versions identified as alpha, beta, preview, early access or otherwise as pre-release may not be fully functional, may contain errors or design flaws, and may have reduced or different security, privacy, availability, and reliability standards relative to commercial versions of NVIDIA software and materials. You may use a pre-release SOFTWARE version at your own risk, understanding that these versions are not intended for use in production or business-critical systems. + * + * 5. OWNERSHIP. The SOFTWARE and the related intellectual property rights therein are and will remain the sole and exclusive property of NVIDIA or its licensors. The SOFTWARE is copyrighted and protected by the laws of the United States and other countries, and international treaty provisions. NVIDIA may make changes to the SOFTWARE, at any time without notice, but is not obligated to support or update the SOFTWARE. + * + * 6. COMPONENTS UNDER OTHER LICENSES. The SOFTWARE may include NVIDIA or third-party components with separate legal notices or terms as may be described in proprietary notices accompanying the SOFTWARE. If and to the extent there is a conflict between the terms in this license and the license terms associated with a component, the license terms associated with the components control only to the extent necessary to resolve the conflict. + * + * 7. FEEDBACK. You may, but don’t have to, provide to NVIDIA any Feedback. “Feedback” means any suggestions, bug fixes, enhancements, modifications, feature requests or other feedback regarding the SOFTWARE. For any Feedback that you voluntarily provide, you hereby grant NVIDIA and its affiliates a perpetual, non-exclusive, worldwide, irrevocable license to use, reproduce, modify, license, sublicense (through multiple tiers of sublicensees), and distribute (through multiple tiers of distributors) the Feedback without the payment of any royalties or fees to you. NVIDIA will use Feedback at its choice. + * + * 8. NO WARRANTIES. THE SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY EXPRESS OR IMPLIED WARRANTY OF ANY KIND INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT, OR FITNESS FOR A PARTICULAR PURPOSE. NVIDIA DOES NOT WARRANT THAT THE SOFTWARE WILL MEET YOUR REQUIREMENTS OR THAT THE OPERATION THEREOF WILL BE UNINTERRUPTED OR ERROR-FREE, OR THAT ALL ERRORS WILL BE CORRECTED. + * + * 9. LIMITATIONS OF LIABILITY. TO THE MAXIMUM EXTENT PERMITTED BY LAW, NVIDIA AND ITS AFFILIATES SHALL NOT BE LIABLE FOR ANY SPECIAL, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL DAMAGES, OR ANY LOST PROFITS, PROJECT DELAYS, LOSS OF USE, LOSS OF DATA OR LOSS OF GOODWILL, OR THE COSTS OF PROCURING SUBSTITUTE PRODUCTS, ARISING OUT OF OR IN CONNECTION WITH THIS LICENSE OR THE USE OR PERFORMANCE OF THE SOFTWARE, WHETHER SUCH LIABILITY ARISES FROM ANY CLAIM BASED UPON BREACH OF CONTRACT, BREACH OF WARRANTY, TORT (INCLUDING NEGLIGENCE), PRODUCT LIABILITY OR ANY OTHER CAUSE OF ACTION OR THEORY OF LIABILITY, EVEN IF NVIDIA HAS PREVIOUSLY BEEN ADVISED OF, OR COULD REASONABLY HAVE FORESEEN, THE POSSIBILITY OF SUCH DAMAGES. IN NO EVENT WILL NVIDIA’S AND ITS AFFILIATES TOTAL CUMULATIVE LIABILITY UNDER OR ARISING OUT OF THIS LICENSE EXCEED US$10.00. THE NATURE OF THE LIABILITY OR THE NUMBER OF CLAIMS OR SUITS SHALL NOT ENLARGE OR EXTEND THIS LIMIT. + * + * 10. TERMINATION. Your rights under this license will terminate automatically without notice from NVIDIA if you fail to comply with any term and condition of this license or if you commence or participate in any legal proceeding against NVIDIA with respect to the SOFTWARE. NVIDIA may terminate this license with advance written notice to you if NVIDIA decides to no longer provide the SOFTWARE in a country or, in NVIDIA’s sole discretion, the continued use of it is no longer commercially viable. Upon any termination of this license, you agree to promptly discontinue use of the SOFTWARE and destroy all copies in your possession or control. Your prior distributions in accordance with this license are not affected by the termination of this license. All provisions of this license will survive termination, except for the license granted to you. + * + * 11. APPLICABLE LAW. This license will be governed in all respects by the laws of the United States and of the State of Delaware as those laws are applied to contracts entered into and performed entirely within Delaware by Delaware residents, without regard to the conflicts of laws principles. The United Nations Convention on Contracts for the International Sale of Goods is specifically disclaimed. You agree to all terms of this Agreement in the English language. The state or federal courts residing in Santa Clara County, California shall have exclusive jurisdiction over any dispute or claim arising out of this license. Notwithstanding this, you agree that NVIDIA shall still be allowed to apply for injunctive remedies or an equivalent type of urgent legal relief in any jurisdiction. + * + * 12. NO ASSIGNMENT. This license and your rights and obligations thereunder may not be assigned by you by any means or operation of law without NVIDIA’s permission. Any attempted assignment not approved by NVIDIA in writing shall be void and of no effect. + * + * 13. EXPORT. The SOFTWARE is subject to United States export laws and regulations. You agree that you will not ship, transfer or export the SOFTWARE into any country, or use the SOFTWARE in any manner, prohibited by the United States Bureau of Industry and Security or economic sanctions regulations administered by the U.S. Department of Treasury’s Office of Foreign Assets Control (OFAC), or any applicable export laws, restrictions or regulations. These laws include restrictions on destinations, end users and end use. By accepting this license, you confirm that you are not a resident or citizen of any country currently embargoed by the U.S. and that you are not otherwise prohibited from receiving the SOFTWARE. + * + * 14. GOVERNMENT USE. The SOFTWARE has been developed entirely at private expense and is “commercial items” consisting of “commercial computer software” and “commercial computer software documentation” provided with RESTRICTED RIGHTS. Use, duplication or disclosure by the U.S. Government or a U.S. Government subcontractor is subject to the restrictions in this license pursuant to DFARS 227.7202-3(a) or as set forth in subparagraphs (b)(1) and (2) of the Commercial Computer Software - Restricted Rights clause at FAR 52.227-19, as applicable. Contractor/manufacturer is NVIDIA, 2788 San Tomas Expressway, Santa Clara, CA 95051. + * + * 15. ENTIRE AGREEMENT. This license is the final, complete and exclusive agreement between the parties relating to the subject matter of this license and supersedes all prior or contemporaneous understandings and agreements relating to this subject matter, whether oral or written. If any court of competent jurisdiction determines that any provision of this license is illegal, invalid or unenforceable, the remaining provisions will remain in full force and effect. This license may only be modified in a writing signed by an authorized representative of each party. + * + * (v. August 20, 2021) + */ +#ifndef _CUDA_PIPELINE +#define _CUDA_PIPELINE + +#include +#include +#include + +_LIBCUDACXX_BEGIN_NAMESPACE_CUDA + + template + class pipeline; + + enum class pipeline_role { + producer, + consumer + }; + + template + struct __pipeline_stage { + barrier<_Scope> __produced; + barrier<_Scope> __consumed; + }; + + template + class pipeline_shared_state { + public: + pipeline_shared_state() = default; + pipeline_shared_state(const pipeline_shared_state &) = delete; + pipeline_shared_state(pipeline_shared_state &&) = delete; + pipeline_shared_state & operator=(pipeline_shared_state &&) = delete; + pipeline_shared_state & operator=(const pipeline_shared_state &) = delete; + + private: + __pipeline_stage<_Scope> __stages[_Stages_count]; + atomic __refcount; + + template + friend class pipeline; + + template + friend _LIBCUDACXX_INLINE_VISIBILITY + pipeline<_Pipeline_scope> make_pipeline(const _Group & __group, pipeline_shared_state<_Pipeline_scope, _Pipeline_stages_count> * __shared_state); + + template + friend _LIBCUDACXX_INLINE_VISIBILITY + pipeline<_Pipeline_scope> make_pipeline(const _Group & __group, pipeline_shared_state<_Pipeline_scope, _Pipeline_stages_count> * __shared_state, size_t __producer_count); + + template + friend _LIBCUDACXX_INLINE_VISIBILITY + pipeline<_Pipeline_scope> make_pipeline(const _Group & __group, pipeline_shared_state<_Pipeline_scope, _Pipeline_stages_count> * __shared_state, pipeline_role __role); + }; + + struct __pipeline_asm_helper { + __device__ + static inline uint32_t __lane_id() + { + uint32_t __lane_id; + asm volatile ("mov.u32 %0, %%laneid;" : "=r"(__lane_id)); + return __lane_id; + } + }; + + template + class pipeline { + public: + pipeline(pipeline &&) = default; + pipeline(const pipeline &) = delete; + pipeline & operator=(pipeline &&) = delete; + pipeline & operator=(const pipeline &) = delete; + + _LIBCUDACXX_INLINE_VISIBILITY + ~pipeline() + { + if (__active) { + (void)quit(); + } + } + + _LIBCUDACXX_INLINE_VISIBILITY + bool quit() + { + bool __elected; + uint32_t __sub_count; +NV_IF_TARGET(NV_IS_DEVICE, + const uint32_t __match_mask = __match_any_sync(__activemask(), reinterpret_cast(__shared_state_get_refcount())); + const uint32_t __elected_id = __ffs(__match_mask) - 1; + __elected = (__pipeline_asm_helper::__lane_id() == __elected_id); + __sub_count = __popc(__match_mask); +, + __elected = true; + __sub_count = 1; +) + bool __released = false; + if (__elected) { + const uint32_t __old = __shared_state_get_refcount()->fetch_sub(__sub_count); + const bool __last = (__old == __sub_count); + if (__last) { + for (uint8_t __stage = 0; __stage < __stages_count; ++__stage) { + __shared_state_get_stage(__stage)->__produced.~barrier(); + if (__partitioned) { + __shared_state_get_stage(__stage)->__consumed.~barrier(); + } + } + __released = true; + } + } + __active = false; + return __released; + } + + _LIBCUDACXX_INLINE_VISIBILITY + void producer_acquire() + { + if (__partitioned) { + barrier<_Scope> & __stage_barrier = __shared_state_get_stage(__head)->__consumed; + (void)_CUDA_VSTD::__libcpp_thread_poll_with_backoff(__poll_tester(__stage_barrier, __consumed_phase_parity)); + } + } + + _LIBCUDACXX_INLINE_VISIBILITY + void producer_commit() + { + barrier<_Scope> & __stage_barrier = __shared_state_get_stage(__head)->__produced; + __memcpy_async_synchronize(__stage_barrier, true); + (void)__stage_barrier.arrive(); + if (++__head == __stages_count) { + __head = 0; + if (__partitioned) { + __consumed_phase_parity = !__consumed_phase_parity; + } + } + } + + _LIBCUDACXX_INLINE_VISIBILITY + void consumer_wait() + { + barrier<_Scope> & __stage_barrier = __shared_state_get_stage(__tail)->__produced; + (void)_CUDA_VSTD::__libcpp_thread_poll_with_backoff(__poll_tester(__stage_barrier, __produced_phase_parity)); + } + + _LIBCUDACXX_INLINE_VISIBILITY + void consumer_release() + { + if (__partitioned) { + (void)__shared_state_get_stage(__tail)->__consumed.arrive(); + } + if (++__tail == __stages_count) { + __tail = 0; + __produced_phase_parity = !__produced_phase_parity; + } + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + bool consumer_wait_for(const _CUDA_VSTD::chrono::duration<_Rep, _Period> & __duration) + { + barrier<_Scope> & __stage_barrier = __shared_state_get_stage(__tail)->__produced; + return _CUDA_VSTD::__libcpp_thread_poll_with_backoff( + __poll_tester(__stage_barrier, __produced_phase_parity), + _CUDA_VSTD::chrono::duration_cast<_CUDA_VSTD::chrono::nanoseconds>(__duration) + ); + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + bool consumer_wait_until(const _CUDA_VSTD::chrono::time_point<_Clock, _Duration> & __time_point) + { + return consumer_wait_for(__time_point - _Clock::now()); + } + + private: + uint8_t __head : 8; + uint8_t __tail : 8; + const uint8_t __stages_count : 8; + bool __consumed_phase_parity : 1; + bool __produced_phase_parity : 1; + bool __active : 1; + const bool __partitioned : 1; + char * const __shared_state; + + _LIBCUDACXX_INLINE_VISIBILITY + pipeline(char * __shared_state, uint8_t __stages_count, bool __partitioned) + : __head(0) + , __tail(0) + , __stages_count(__stages_count) + , __consumed_phase_parity(true) + , __produced_phase_parity(false) + , __active(true) + , __partitioned(__partitioned) + , __shared_state(__shared_state) + {} + + _LIBCUDACXX_INLINE_VISIBILITY + static bool __barrier_try_wait_parity_impl(barrier<_Scope> & __barrier, bool __phase_parity) + { + typename barrier<_Scope>::arrival_token __synthesized_token = (__phase_parity ? 1ull : 0ull) << 63; + return __barrier.__try_wait(_CUDA_VSTD::move(__synthesized_token)); + } + + _LIBCUDACXX_INLINE_VISIBILITY + static bool __barrier_try_wait_parity(barrier<_Scope> & __barrier, bool __phase_parity) + { + return __barrier_try_wait_parity_impl(__barrier, __phase_parity); + } + + struct __poll_tester { + barrier<_Scope> & __barrier; + bool __phase_parity; + + _LIBCUDACXX_INLINE_VISIBILITY + __poll_tester(barrier<_Scope> & __barrier, bool __phase_parity) + : __barrier(__barrier) + , __phase_parity(__phase_parity) + {} + + _LIBCUDACXX_INLINE_VISIBILITY + bool operator()() const + { + return __barrier_try_wait_parity(__barrier, __phase_parity); + } + }; + + _LIBCUDACXX_INLINE_VISIBILITY + __pipeline_stage<_Scope> * __shared_state_get_stage(uint8_t __stage) + { + ptrdiff_t __stage_offset = __stage * sizeof(__pipeline_stage<_Scope>); + return reinterpret_cast<__pipeline_stage<_Scope>*>(__shared_state + __stage_offset); + } + + _LIBCUDACXX_INLINE_VISIBILITY + atomic * __shared_state_get_refcount() + { + ptrdiff_t __refcount_offset = __stages_count * sizeof(__pipeline_stage<_Scope>); + return reinterpret_cast*>(__shared_state + __refcount_offset); + } + + template + friend _LIBCUDACXX_INLINE_VISIBILITY + pipeline<_Pipeline_scope> make_pipeline(const _Group & __group, pipeline_shared_state<_Pipeline_scope, _Pipeline_stages_count> * __shared_state); + + template + friend _LIBCUDACXX_INLINE_VISIBILITY + pipeline<_Pipeline_scope> make_pipeline(const _Group & __group, pipeline_shared_state<_Pipeline_scope, _Pipeline_stages_count> * __shared_state, size_t __producer_count); + + template + friend _LIBCUDACXX_INLINE_VISIBILITY + pipeline<_Pipeline_scope> make_pipeline(const _Group & __group, pipeline_shared_state<_Pipeline_scope, _Pipeline_stages_count> * __shared_state, pipeline_role __role); + }; + + template<> + _LIBCUDACXX_INLINE_VISIBILITY + inline bool pipeline::__barrier_try_wait_parity(barrier & __barrier, bool __phase_parity) + { +NV_IF_TARGET(NV_PROVIDES_SM_80, + if (__isShared(&__barrier)) { + uint64_t * __mbarrier = device::barrier_native_handle(__barrier); + uint16_t __wait_complete; + + asm volatile ("{" + " .reg .pred %p;" + " mbarrier.test_wait.parity.shared.b64 %p, [%1], %2;" + " selp.u16 %0, 1, 0, %p;" + "}" + : "=h"(__wait_complete) + : "r"(static_cast(__cvta_generic_to_shared(__mbarrier))), "r"(static_cast(__phase_parity)) + : "memory"); + + return bool(__wait_complete); + } else + { + return __barrier_try_wait_parity_impl(__barrier, __phase_parity); + } +, + return __barrier_try_wait_parity_impl(__barrier, __phase_parity); +) + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + pipeline<_Scope> make_pipeline(const _Group & __group, pipeline_shared_state<_Scope, _Stages_count> * __shared_state) + { + const uint32_t __group_size = static_cast(__group.size()); + const uint32_t __thread_rank = static_cast(__group.thread_rank()); + + if (__thread_rank == 0) { + for (uint8_t __stage = 0; __stage < _Stages_count; ++__stage) { + init(&__shared_state->__stages[__stage].__produced, __group_size); + } + __shared_state->__refcount.store(__group_size, std::memory_order_relaxed); + } + __group.sync(); + + return pipeline<_Scope>(reinterpret_cast(__shared_state->__stages), _Stages_count, false); + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + pipeline<_Scope> make_pipeline(const _Group & __group, pipeline_shared_state<_Scope, _Stages_count> * __shared_state, size_t __producer_count) + { + const uint32_t __group_size = static_cast(__group.size()); + const uint32_t __thread_rank = static_cast(__group.thread_rank()); + + if (__thread_rank == 0) { + const size_t __consumer_count = __group_size - __producer_count; + for (uint8_t __stage = 0; __stage < _Stages_count; ++__stage) { + init(&__shared_state->__stages[__stage].__consumed, __consumer_count); + init(&__shared_state->__stages[__stage].__produced, __producer_count); + } + __shared_state->__refcount.store(__group_size, std::memory_order_relaxed); + } + __group.sync(); + + return pipeline<_Scope>(reinterpret_cast(__shared_state->__stages), _Stages_count, true); + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + pipeline<_Scope> make_pipeline(const _Group & __group, pipeline_shared_state<_Scope, _Stages_count> * __shared_state, pipeline_role __role) + { + const uint32_t __group_size = static_cast(__group.size()); + const uint32_t __thread_rank = static_cast(__group.thread_rank()); + + if (__thread_rank == 0) { + __shared_state->__refcount.store(0, std::memory_order_relaxed); + } + __group.sync(); + + if (__role == pipeline_role::producer) { + bool __elected; + uint32_t __add_count; +NV_IF_TARGET(NV_IS_DEVICE, + const uint32_t __match_mask = __match_any_sync(__activemask(), reinterpret_cast(&__shared_state->__refcount)); + const uint32_t __elected_id = __ffs(__match_mask) - 1; + __elected = (__pipeline_asm_helper::__lane_id() == __elected_id); + __add_count = __popc(__match_mask); +, + __elected = true; + __add_count = 1; +) + if (__elected) { + (void)__shared_state->__refcount.fetch_add(__add_count, std::memory_order_relaxed); + } + } + __group.sync(); + + if (__thread_rank == 0) { + const uint32_t __producer_count = __shared_state->__refcount.load(std::memory_order_relaxed); + const uint32_t __consumer_count = __group_size - __producer_count; + for (uint8_t __stage = 0; __stage < _Stages_count; ++__stage) { + init(&__shared_state->__stages[__stage].__consumed, __consumer_count); + init(&__shared_state->__stages[__stage].__produced, __producer_count); + } + __shared_state->__refcount.store(__group_size, std::memory_order_relaxed); + } + __group.sync(); + + return pipeline<_Scope>(reinterpret_cast(__shared_state->__stages), _Stages_count, true); + } + +_LIBCUDACXX_END_NAMESPACE_CUDA + +_LIBCUDACXX_BEGIN_NAMESPACE_CUDA_DEVICE + + template + __device__ + void __pipeline_consumer_wait(pipeline & __pipeline); + + __device__ + inline void __pipeline_consumer_wait(pipeline & __pipeline, uint8_t __prior); + +_LIBCUDACXX_END_NAMESPACE_CUDA_DEVICE + +_LIBCUDACXX_BEGIN_NAMESPACE_CUDA + + template<> + class pipeline { + public: + pipeline(pipeline &&) = default; + pipeline(const pipeline &) = delete; + pipeline & operator=(pipeline &&) = delete; + pipeline & operator=(const pipeline &) = delete; + + _LIBCUDACXX_INLINE_VISIBILITY + ~pipeline() {} + + _LIBCUDACXX_INLINE_VISIBILITY + bool quit() + { + return true; + } + + _LIBCUDACXX_INLINE_VISIBILITY + void producer_acquire() {} + + _LIBCUDACXX_INLINE_VISIBILITY + void producer_commit() + { +NV_IF_TARGET(NV_PROVIDES_SM_80, + asm volatile ("cp.async.commit_group;"); + ++__head; +) + } + + _LIBCUDACXX_INLINE_VISIBILITY + void consumer_wait() + { +NV_IF_TARGET(NV_PROVIDES_SM_80, + if (__head == __tail) { + return; + } + + const uint8_t __prior = __head - __tail - 1; + device::__pipeline_consumer_wait(*this, __prior); + ++__tail; +) + } + + _LIBCUDACXX_INLINE_VISIBILITY + void consumer_release() {} + + template + _LIBCUDACXX_INLINE_VISIBILITY + bool consumer_wait_for(const _CUDA_VSTD::chrono::duration<_Rep, _Period> & __duration) + { + (void)__duration; + consumer_wait(); + return true; + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + bool consumer_wait_until(const _CUDA_VSTD::chrono::time_point<_Clock, _Duration> & __time_point) + { + (void)__time_point; + consumer_wait(); + return true; + } + + private: + uint8_t __head; + uint8_t __tail; + + _LIBCUDACXX_INLINE_VISIBILITY + pipeline() + : __head(0) + , __tail(0) + {} + + friend _LIBCUDACXX_INLINE_VISIBILITY inline pipeline make_pipeline(); + + template + friend _LIBCUDACXX_INLINE_VISIBILITY + void pipeline_consumer_wait_prior(pipeline & __pipeline); + }; + +_LIBCUDACXX_END_NAMESPACE_CUDA + +_LIBCUDACXX_BEGIN_NAMESPACE_CUDA_DEVICE + + template + __device__ + void __pipeline_consumer_wait(pipeline & __pipeline) + { + (void)__pipeline; +NV_IF_TARGET(NV_PROVIDES_SM_80, + constexpr uint8_t __max_prior = 8; + + asm volatile ("cp.async.wait_group %0;" + : + : "n"(_Prior < __max_prior ? _Prior : __max_prior)); +) + } + + __device__ + inline void __pipeline_consumer_wait(pipeline & __pipeline, uint8_t __prior) + { + switch (__prior) { + case 0: device::__pipeline_consumer_wait<0>(__pipeline); break; + case 1: device::__pipeline_consumer_wait<1>(__pipeline); break; + case 2: device::__pipeline_consumer_wait<2>(__pipeline); break; + case 3: device::__pipeline_consumer_wait<3>(__pipeline); break; + case 4: device::__pipeline_consumer_wait<4>(__pipeline); break; + case 5: device::__pipeline_consumer_wait<5>(__pipeline); break; + case 6: device::__pipeline_consumer_wait<6>(__pipeline); break; + case 7: device::__pipeline_consumer_wait<7>(__pipeline); break; + default: device::__pipeline_consumer_wait<8>(__pipeline); break; + } + } + +_LIBCUDACXX_END_NAMESPACE_CUDA_DEVICE + +_LIBCUDACXX_BEGIN_NAMESPACE_CUDA + + _LIBCUDACXX_INLINE_VISIBILITY + inline pipeline make_pipeline() + { + return pipeline(); + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + void pipeline_consumer_wait_prior(pipeline & __pipeline) + { +NV_IF_TARGET(NV_PROVIDES_SM_80, + device::__pipeline_consumer_wait<_Prior>(__pipeline); + __pipeline.__tail = __pipeline.__head - _Prior; +) + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + void pipeline_producer_commit(pipeline & __pipeline, barrier<_Scope> & __barrier) + { + (void)__pipeline; +NV_IF_TARGET(NV_PROVIDES_SM_80, + __memcpy_async_synchronize(__barrier, true); +) + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + void __memcpy_async_synchronize(pipeline<_Scope> & __pipeline, bool __is_async) { + // memcpy_async submissions never synchronize on their own in the pipeline path. + (void)__pipeline; + (void)__is_async; + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + void memcpy_async(_Group const & __group, _Type * __destination, _Type const * __source, std::size_t __size, pipeline<_Scope> & __pipeline) + { + // When compiling with NVCC and GCC 4.8, certain user defined types that _are_ trivially copyable are + // incorrectly classified as not trivially copyable. Remove this assertion to allow for their usage with + // memcpy_async when compiling with GCC 4.8. + // FIXME: remove the #if once GCC 4.8 is no longer supported. + #if !defined(_LIBCUDACXX_COMPILER_GCC) || _GNUC_VER > 408 + static_assert(_CUDA_VSTD::is_trivially_copyable<_Type>::value, "memcpy_async requires a trivially copyable type"); + #endif + + __memcpy_async(__group, reinterpret_cast(__destination), reinterpret_cast(__source), __size, __pipeline); + } + + template _Alignment) ? alignof(_Type) : _Alignment> + _LIBCUDACXX_INLINE_VISIBILITY + void memcpy_async(_Group const & __group, _Type * __destination, _Type const * __source, aligned_size_t<_Alignment> __size, pipeline<_Scope> & __pipeline) { + // When compiling with NVCC and GCC 4.8, certain user defined types that _are_ trivially copyable are + // incorrectly classified as not trivially copyable. Remove this assertion to allow for their usage with + // memcpy_async when compiling with GCC 4.8. + // FIXME: remove the #if once GCC 4.8 is no longer supported. + #if !defined(_LIBCUDACXX_COMPILER_GCC) || _GNUC_VER > 408 + static_assert(_CUDA_VSTD::is_trivially_copyable<_Type>::value, "memcpy_async requires a trivially copyable type"); + #endif + + __memcpy_async<_Larger_alignment>(__group, reinterpret_cast(__destination), reinterpret_cast(__source), __size, __pipeline); + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + void memcpy_async(_Type * __destination, _Type const * __source, _Size __size, pipeline<_Scope> & __pipeline) { + memcpy_async(__single_thread_group{}, __destination, __source, __size, __pipeline); + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + void memcpy_async(_Group const & __group, void * __destination, void const * __source, std::size_t __size, pipeline<_Scope> & __pipeline) { + __memcpy_async<1>(__group, reinterpret_cast(__destination), reinterpret_cast(__source), __size, __pipeline); + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + void memcpy_async(_Group const & __group, void * __destination, void const * __source, aligned_size_t<_Alignment> __size, pipeline<_Scope> & __pipeline) { + __memcpy_async<_Alignment>(__group, reinterpret_cast(__destination), reinterpret_cast(__source), __size, __pipeline); + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + void memcpy_async(void * __destination, void const * __source, _Size __size, pipeline<_Scope> & __pipeline) { + memcpy_async(__single_thread_group{}, __destination, __source, __size, __pipeline); + } + +_LIBCUDACXX_END_NAMESPACE_CUDA + +#endif //_CUDA_PIPELINE diff --git a/build/testing/cmake/test_install/install_prefix/include/cuda/semaphore b/build/testing/cmake/test_install/install_prefix/include/cuda/semaphore new file mode 100644 index 0000000000000000000000000000000000000000..eb76c73537f15f36247065d000eff77b28199a80 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cuda/semaphore @@ -0,0 +1,10 @@ +//===----------------------------------------------------------------------===// +// +// Part of libcu++, the C++ Standard Library for your entire system, +// under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#include "std/semaphore" diff --git a/build/testing/cmake/test_install/install_prefix/include/cuda/std/array b/build/testing/cmake/test_install/install_prefix/include/cuda/std/array new file mode 100644 index 0000000000000000000000000000000000000000..64240539bb47810ab7ba99fde489bf47c79ebfce --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cuda/std/array @@ -0,0 +1,34 @@ +//===----------------------------------------------------------------------===// +// +// Part of the CUDA Toolkit, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef _CUDA_ARRAY +#define _CUDA_ARRAY + +#include "cassert" +#include "cstdint" +#include "limits" +#include "type_traits" +#include "iterator" +#include "utility" +#include "initializer_list" + +#include "detail/__config" + +#include "detail/__pragma_push" + +#include "detail/libcxx/include/algorithm" +#include "detail/libcxx/include/__tuple" +#include "detail/libcxx/include/cstdlib" +#include "detail/libcxx/include/stdexcept" +#include "detail/libcxx/include/array" + +#include "detail/__pragma_pop" + +#endif //_CUDA_ARRAY + + diff --git a/build/testing/cmake/test_install/install_prefix/include/cuda/std/atomic b/build/testing/cmake/test_install/install_prefix/include/cuda/std/atomic new file mode 100644 index 0000000000000000000000000000000000000000..65315f30d5153fb1bdf68c8a15293e6a0048ed03 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cuda/std/atomic @@ -0,0 +1,296 @@ +//===----------------------------------------------------------------------===// +// +// Part of libcu++, the C++ Standard Library for your entire system, +// under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef _CUDA_ATOMIC +#define _CUDA_ATOMIC + +#ifndef __CUDACC_RTC__ + #include + static_assert(ATOMIC_BOOL_LOCK_FREE == 2, ""); + static_assert(ATOMIC_CHAR_LOCK_FREE == 2, ""); + static_assert(ATOMIC_CHAR16_T_LOCK_FREE == 2, ""); + static_assert(ATOMIC_CHAR32_T_LOCK_FREE == 2, ""); + static_assert(ATOMIC_WCHAR_T_LOCK_FREE == 2, ""); + static_assert(ATOMIC_SHORT_LOCK_FREE == 2, ""); + static_assert(ATOMIC_INT_LOCK_FREE == 2, ""); + static_assert(ATOMIC_LONG_LOCK_FREE == 2, ""); + static_assert(ATOMIC_LLONG_LOCK_FREE == 2, ""); + static_assert(ATOMIC_POINTER_LOCK_FREE == 2, ""); + #undef ATOMIC_BOOL_LOCK_FREE + #undef ATOMIC_BOOL_LOCK_FREE + #undef ATOMIC_CHAR_LOCK_FREE + #undef ATOMIC_CHAR16_T_LOCK_FREE + #undef ATOMIC_CHAR32_T_LOCK_FREE + #undef ATOMIC_WCHAR_T_LOCK_FREE + #undef ATOMIC_SHORT_LOCK_FREE + #undef ATOMIC_INT_LOCK_FREE + #undef ATOMIC_LONG_LOCK_FREE + #undef ATOMIC_LLONG_LOCK_FREE + #undef ATOMIC_POINTER_LOCK_FREE + #undef ATOMIC_FLAG_INIT + #undef ATOMIC_VAR_INIT +#endif //__CUDACC_RTC__ + +// pre-define lock free query for heterogeneous compatibility +#ifndef _LIBCUDACXX_ATOMIC_IS_LOCK_FREE +#define _LIBCUDACXX_ATOMIC_IS_LOCK_FREE(__x) (__x <= 8) +#endif + +#include "cassert" +#include "cstddef" +#include "cstdint" +#include "type_traits" +#include "version" + +#include "detail/__config" + +#include "detail/__pragma_push" + +#include "detail/__threading_support" + +#include "detail/libcxx/include/atomic" + +_LIBCUDACXX_BEGIN_NAMESPACE_CUDA + +using std::__detail::thread_scope; +using std::__detail::thread_scope_system; +using std::__detail::thread_scope_device; +using std::__detail::thread_scope_block; +using std::__detail::thread_scope_thread; + +namespace __detail { +using std::__detail::__thread_scope_block_tag; +using std::__detail::__thread_scope_device_tag; +using std::__detail::__thread_scope_system_tag; +} + +using memory_order = std::memory_order; + +constexpr memory_order memory_order_relaxed = std::memory_order_relaxed; +constexpr memory_order memory_order_consume = std::memory_order_consume; +constexpr memory_order memory_order_acquire = std::memory_order_acquire; +constexpr memory_order memory_order_release = std::memory_order_release; +constexpr memory_order memory_order_acq_rel = std::memory_order_acq_rel; +constexpr memory_order memory_order_seq_cst = std::memory_order_seq_cst; + +// atomic + +template +struct atomic + : public std::__atomic_base<_Tp, _Sco> +{ + typedef std::__atomic_base<_Tp, _Sco> __base; + + constexpr atomic() noexcept = default; + __host__ __device__ + constexpr atomic(_Tp __d) noexcept : __base(__d) {} + + __host__ __device__ + _Tp operator=(_Tp __d) volatile noexcept + {__base::store(__d); return __d;} + __host__ __device__ + _Tp operator=(_Tp __d) noexcept + {__base::store(__d); return __d;} + + __host__ __device__ + _Tp fetch_max(const _Tp & __op, memory_order __m = memory_order_seq_cst) volatile noexcept + { + return std::__detail::__cxx_atomic_fetch_max(&this->__a_, __op, __m); + } + + __host__ __device__ + _Tp fetch_min(const _Tp & __op, memory_order __m = memory_order_seq_cst) volatile noexcept + { + return std::__detail::__cxx_atomic_fetch_min(&this->__a_, __op, __m); + } +}; + +// atomic + +template +struct atomic<_Tp*, _Sco> + : public std::__atomic_base<_Tp*, _Sco> +{ + typedef std::__atomic_base<_Tp*, _Sco> __base; + + constexpr atomic() noexcept = default; + __host__ __device__ + constexpr atomic(_Tp* __d) noexcept : __base(__d) {} + + __host__ __device__ + _Tp* operator=(_Tp* __d) volatile noexcept + {__base::store(__d); return __d;} + __host__ __device__ + _Tp* operator=(_Tp* __d) noexcept + {__base::store(__d); return __d;} + + __host__ __device__ + _Tp* fetch_add(ptrdiff_t __op, memory_order __m = memory_order_seq_cst) + volatile noexcept + {return __cxx_atomic_fetch_add(&this->__a_, __op, __m);} + __host__ __device__ + _Tp* fetch_add(ptrdiff_t __op, memory_order __m = memory_order_seq_cst) noexcept + {return __cxx_atomic_fetch_add(&this->__a_, __op, __m);} + __host__ __device__ + _Tp* fetch_sub(ptrdiff_t __op, memory_order __m = memory_order_seq_cst) + volatile noexcept + {return __cxx_atomic_fetch_sub(&this->__a_, __op, __m);} + __host__ __device__ + _Tp* fetch_sub(ptrdiff_t __op, memory_order __m = memory_order_seq_cst) noexcept + {return __cxx_atomic_fetch_sub(&this->__a_, __op, __m);} + + __host__ __device__ + _Tp* operator++(int) volatile noexcept {return fetch_add(1);} + __host__ __device__ + _Tp* operator++(int) noexcept {return fetch_add(1);} + __host__ __device__ + _Tp* operator--(int) volatile noexcept {return fetch_sub(1);} + __host__ __device__ + _Tp* operator--(int) noexcept {return fetch_sub(1);} + __host__ __device__ + _Tp* operator++() volatile noexcept {return fetch_add(1) + 1;} + __host__ __device__ + _Tp* operator++() noexcept {return fetch_add(1) + 1;} + __host__ __device__ + _Tp* operator--() volatile noexcept {return fetch_sub(1) - 1;} + __host__ __device__ + _Tp* operator--() noexcept {return fetch_sub(1) - 1;} + __host__ __device__ + _Tp* operator+=(ptrdiff_t __op) volatile noexcept {return fetch_add(__op) + __op;} + __host__ __device__ + _Tp* operator+=(ptrdiff_t __op) noexcept {return fetch_add(__op) + __op;} + __host__ __device__ + _Tp* operator-=(ptrdiff_t __op) volatile noexcept {return fetch_sub(__op) - __op;} + __host__ __device__ + _Tp* operator-=(ptrdiff_t __op) noexcept {return fetch_sub(__op) - __op;} +}; + +// atomic_ref + +template +struct atomic_ref + : public std::__atomic_base_ref<_Tp, _Sco> +{ + typedef std::__atomic_base_ref<_Tp, _Sco> __base; + + __host__ __device__ + constexpr atomic_ref(_Tp& __d) noexcept : __base(__d) {} + + __host__ __device__ + _Tp operator=(_Tp __d) const volatile noexcept + {__base::store(__d); return __d;} + __host__ __device__ + _Tp operator=(_Tp __d) const noexcept + {__base::store(__d); return __d;} + + __host__ __device__ + _Tp fetch_max(const _Tp & __op, memory_order __m = memory_order_seq_cst) const volatile noexcept + { + return std::__detail::__cxx_atomic_fetch_max(&this->__a_, __op, __m); + } + + __host__ __device__ + _Tp fetch_min(const _Tp & __op, memory_order __m = memory_order_seq_cst) const volatile noexcept + { + return std::__detail::__cxx_atomic_fetch_min(&this->__a_, __op, __m); + } +}; + +// atomic_ref + +template +struct atomic_ref<_Tp*, _Sco> + : public std::__atomic_base_ref<_Tp*, _Sco> +{ + typedef std::__atomic_base_ref<_Tp*, _Sco> __base; + + __host__ __device__ + constexpr atomic_ref(_Tp*& __d) noexcept : __base(__d) {} + + __host__ __device__ + _Tp* operator=(_Tp* __d) const volatile noexcept + {__base::store(__d); return __d;} + __host__ __device__ + _Tp* operator=(_Tp* __d) const noexcept + {__base::store(__d); return __d;} + + __host__ __device__ + _Tp* fetch_add(ptrdiff_t __op, + memory_order __m = memory_order_seq_cst) const volatile noexcept + {return __cxx_atomic_fetch_add(&this->__a_, __op, __m);} + __host__ __device__ + _Tp* fetch_add(ptrdiff_t __op, + memory_order __m = memory_order_seq_cst) const noexcept + {return __cxx_atomic_fetch_add(&this->__a_, __op, __m);} + __host__ __device__ + _Tp* fetch_sub(ptrdiff_t __op, + memory_order __m = memory_order_seq_cst) const volatile noexcept + {return __cxx_atomic_fetch_sub(&this->__a_, __op, __m);} + __host__ __device__ + _Tp* fetch_sub(ptrdiff_t __op, + memory_order __m = memory_order_seq_cst) const noexcept + {return __cxx_atomic_fetch_sub(&this->__a_, __op, __m);} + + __host__ __device__ + _Tp* operator++(int) const volatile noexcept {return fetch_add(1);} + __host__ __device__ + _Tp* operator++(int) const noexcept {return fetch_add(1);} + __host__ __device__ + _Tp* operator--(int) const volatile noexcept {return fetch_sub(1);} + __host__ __device__ + _Tp* operator--(int) const noexcept {return fetch_sub(1);} + __host__ __device__ + _Tp* operator++() const volatile noexcept {return fetch_add(1) + 1;} + __host__ __device__ + _Tp* operator++() const noexcept {return fetch_add(1) + 1;} + __host__ __device__ + _Tp* operator--() const volatile noexcept {return fetch_sub(1) - 1;} + __host__ __device__ + _Tp* operator--() const noexcept {return fetch_sub(1) - 1;} + __host__ __device__ + _Tp* operator+=(ptrdiff_t __op) const volatile noexcept {return fetch_add(__op) + __op;} + __host__ __device__ + _Tp* operator+=(ptrdiff_t __op) const noexcept {return fetch_add(__op) + __op;} + __host__ __device__ + _Tp* operator-=(ptrdiff_t __op) const volatile noexcept {return fetch_sub(__op) - __op;} + __host__ __device__ + _Tp* operator-=(ptrdiff_t __op) const noexcept {return fetch_sub(__op) - __op;} +}; + +inline __host__ __device__ void atomic_thread_fence(memory_order __m, thread_scope _Scope = thread_scope::thread_scope_system) { + NV_DISPATCH_TARGET( + NV_IS_DEVICE, ( + switch(_Scope) { + case thread_scope::thread_scope_system: + std::__detail::__atomic_thread_fence_cuda((int)__m, __detail::__thread_scope_system_tag()); + break; + case thread_scope::thread_scope_device: + std::__detail::__atomic_thread_fence_cuda((int)__m, __detail::__thread_scope_device_tag()); + break; + case thread_scope::thread_scope_block: + std::__detail::__atomic_thread_fence_cuda((int)__m, __detail::__thread_scope_block_tag()); + break; + } + ), + NV_IS_HOST, ( + (void) _Scope; + std::atomic_thread_fence(__m); + ) + ) +} + +inline __host__ __device__ void atomic_signal_fence(memory_order __m) { + std::atomic_signal_fence(__m); +} + +_LIBCUDACXX_END_NAMESPACE_CUDA + +#include "detail/__pragma_pop" + +#endif //_CUDA_ATOMIC diff --git a/build/testing/cmake/test_install/install_prefix/include/cuda/std/barrier b/build/testing/cmake/test_install/install_prefix/include/cuda/std/barrier new file mode 100644 index 0000000000000000000000000000000000000000..69a8ecbbfbdb78d79353c3560af7dc41597dd7b3 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cuda/std/barrier @@ -0,0 +1,468 @@ +//===----------------------------------------------------------------------===// +// +// Part of libcu++, the C++ Standard Library for your entire system, +// under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#if defined(__CUDA_ARCH__) && __CUDA_ARCH__ < 700 +# error "CUDA synchronization primitives are only supported for sm_70 and up." +#endif + +#ifndef _CUDA_BARRIER +#define _CUDA_BARRIER + +#include "atomic" +#include "cstddef" + +#include "detail/__config" + +#include "detail/__pragma_push" + +#include "detail/libcxx/include/barrier" + +_LIBCUDACXX_BEGIN_NAMESPACE_CUDA + +template +struct aligned_size_t { + static constexpr std::size_t align = _Alignment; + std::size_t value; + __host__ __device__ + explicit aligned_size_t(size_t __s) : value(__s) { } + __host__ __device__ + operator size_t() const { return value; } +}; + +template +class barrier : public std::__barrier_base<_CompletionF, _Sco> { + template + friend class pipeline; + + using std::__barrier_base<_CompletionF, _Sco>::__try_wait; + +public: + barrier() = default; + + barrier(const barrier &) = delete; + barrier & operator=(const barrier &) = delete; + + _LIBCUDACXX_INLINE_VISIBILITY _LIBCUDACXX_CONSTEXPR + barrier(std::ptrdiff_t __expected, _CompletionF __completion = _CompletionF()) + : std::__barrier_base<_CompletionF, _Sco>(__expected, __completion) { + } + + _LIBCUDACXX_INLINE_VISIBILITY + friend void init(barrier * __b, std::ptrdiff_t __expected) { + new (__b) barrier(__expected); + } + + _LIBCUDACXX_INLINE_VISIBILITY + friend void init(barrier * __b, std::ptrdiff_t __expected, _CompletionF __completion) { + new (__b) barrier(__expected, __completion); + } +}; + +struct __block_scope_barrier_base {}; + +_LIBCUDACXX_END_NAMESPACE_CUDA + +_LIBCUDACXX_BEGIN_NAMESPACE_CUDA_DEVICE + +__device__ +inline std::uint64_t * barrier_native_handle(barrier & b); + +_LIBCUDACXX_END_NAMESPACE_CUDA_DEVICE + +_LIBCUDACXX_BEGIN_NAMESPACE_CUDA + +template<> +class barrier : public __block_scope_barrier_base { + using __barrier_base = std::__barrier_base; + __barrier_base __barrier; + + __device__ + friend inline std::uint64_t * device::_LIBCUDACXX_CUDA_ABI_NAMESPACE::barrier_native_handle(barrier & b); + +public: + using arrival_token = typename __barrier_base::arrival_token; + +private: + struct __poll_tester { + barrier const* __this; + arrival_token __phase; + + _LIBCUDACXX_INLINE_VISIBILITY + __poll_tester(barrier const* __this_, arrival_token&& __phase_) + : __this(__this_) + , __phase(_CUDA_VSTD::move(__phase_)) + {} + + inline _LIBCUDACXX_INLINE_VISIBILITY + bool operator()() const + { + return __this->__try_wait(__phase); + } + }; + + _LIBCUDACXX_INLINE_VISIBILITY + bool __try_wait(arrival_token __phase) const { +#if __CUDA_ARCH__ >= 800 + if (__isShared(&__barrier)) { + int __ready = 0; + asm volatile ("{\n\t" + ".reg .pred p;\n\t" + "mbarrier.test_wait.shared.b64 p, [%1], %2;\n\t" + "selp.b32 %0, 1, 0, p;\n\t" + "}" + : "=r"(__ready) + : "r"(static_cast(__cvta_generic_to_shared(&__barrier))), "l"(__phase) + : "memory"); + return __ready; + } + else +#endif + { + return __barrier.__try_wait(std::move(__phase)); + } + } + + template + friend class pipeline; + +public: + barrier() = default; + + barrier(const barrier &) = delete; + barrier & operator=(const barrier &) = delete; + + _LIBCUDACXX_INLINE_VISIBILITY + barrier(std::ptrdiff_t __expected, std::__empty_completion __completion = std::__empty_completion()) { + static_assert(_LIBCUDACXX_OFFSET_IS_ZERO(barrier, __barrier), "fatal error: bad barrier layout"); + init(this, __expected, __completion); + } + + _LIBCUDACXX_INLINE_VISIBILITY + ~barrier() { +#if __CUDA_ARCH__ >= 800 + if (__isShared(&__barrier)) { + asm volatile ("mbarrier.inval.shared.b64 [%0];" + :: "r"(static_cast(__cvta_generic_to_shared(&__barrier))) + : "memory"); + } +#endif + } + + _LIBCUDACXX_INLINE_VISIBILITY + friend void init(barrier * __b, std::ptrdiff_t __expected, std::__empty_completion __completion = std::__empty_completion()) { +#if __CUDA_ARCH__ >= 800 + if (__isShared(&__b->__barrier)) { + asm volatile ("mbarrier.init.shared.b64 [%0], %1;" + :: "r"(static_cast(__cvta_generic_to_shared(&__b->__barrier))), + "r"(static_cast(__expected)) + : "memory"); + } + else +#endif + { + new (&__b->__barrier) __barrier_base(__expected); + } + } + + _LIBCUDACXX_NODISCARD_ATTRIBUTE _LIBCUDACXX_INLINE_VISIBILITY + arrival_token arrive(std::ptrdiff_t __update = 1) + { +#if __CUDA_ARCH__ + if (__isShared(&__barrier)) { + arrival_token __token; +#if __CUDA_ARCH__ >= 800 + if (__update > 1) { + asm volatile ("mbarrier.arrive.noComplete.shared.b64 %0, [%1], %2;" + : "=l"(__token) + : "r"(static_cast(__cvta_generic_to_shared(&__barrier))), + "r"(static_cast(__update - 1)) + : "memory"); + } + asm volatile ("mbarrier.arrive.shared.b64 %0, [%1];" + : "=l"(__token) + : "r"(static_cast(__cvta_generic_to_shared(&__barrier))) + : "memory"); +#else + unsigned int __activeA = __match_any_sync(__activemask(), __update); + unsigned int __activeB = __match_any_sync(__activemask(), reinterpret_cast(&__barrier)); + unsigned int __active = __activeA & __activeB; + int __inc = __popc(__active) * __update; + + unsigned __laneid; + asm volatile ("mov.u32 %0, %laneid;" : "=r"(__laneid)); + int __leader = __ffs(__active) - 1; + + if(__leader == __laneid) + { + __token = __barrier.arrive(__inc); + } + __token = __shfl_sync(__active, __token, __leader); +#endif + return __token; + } + else +#endif + { + return __barrier.arrive(__update); + } + } + + _LIBCUDACXX_INLINE_VISIBILITY + void wait(arrival_token && __phase) const + { + _CUDA_VSTD::__libcpp_thread_poll_with_backoff(__poll_tester(this, _CUDA_VSTD::move(__phase))); + } + + inline _LIBCUDACXX_INLINE_VISIBILITY + void arrive_and_wait() + { + wait(arrive()); + } + + _LIBCUDACXX_INLINE_VISIBILITY + void arrive_and_drop() + { +#if __CUDA_ARCH__ >= 800 + if (__isShared(&__barrier)) { + asm volatile ("mbarrier.arrive_drop.shared.b64 _, [%0];" + :: "r"(static_cast(__cvta_generic_to_shared(&__barrier))) + : "memory"); + } + else +#endif + { + __barrier.arrive_and_drop(); + } + } + + _LIBCUDACXX_INLINE_VISIBILITY + static constexpr ptrdiff_t max() noexcept + { + return (1 << 20) - 1; + } +}; + +_LIBCUDACXX_END_NAMESPACE_CUDA + +_LIBCUDACXX_BEGIN_NAMESPACE_CUDA_DEVICE + +__device__ +inline std::uint64_t * barrier_native_handle(barrier & b) { + return reinterpret_cast(&b.__barrier); +} + +_LIBCUDACXX_END_NAMESPACE_CUDA_DEVICE + +_LIBCUDACXX_BEGIN_NAMESPACE_CUDA + +template<> +class barrier : private barrier { + using __base = barrier; + +public: + using __base::__base; + + _LIBCUDACXX_INLINE_VISIBILITY + friend void init(barrier * __b, std::ptrdiff_t __expected, std::__empty_completion __completion = std::__empty_completion()) { + init(static_cast<__base *>(__b), __expected, __completion); + } + + using __base::arrive; + using __base::wait; + using __base::arrive_and_wait; + using __base::arrive_and_drop; + using __base::max; +}; + +template +_LIBCUDACXX_INLINE_VISIBILITY +inline void __strided_memcpy(char * __destination, char const * __source, std::size_t __total_size, std::size_t __rank, std::size_t __stride = 1) { + if (__stride == 1) { + memcpy(__destination, __source, __total_size); + } + else { + for (std::size_t __offset = __rank * _Alignment; __offset < __total_size; __offset += __stride * _Alignment) { + memcpy(__destination + __offset, __source + __offset, _Alignment); + } + } +} + +#if __CUDA_ARCH__ >= 800 +template 16)> +struct __memcpy_async_impl { + __device__ static inline bool __copy(char * __destination, char const * __source, std::size_t __total_size, std::size_t __rank, std::size_t __stride) { + __strided_memcpy<_Alignment>(__destination, __source, __total_size, __rank, __stride); + return false; + } +}; + +template<> +struct __memcpy_async_impl<4, false> { + __device__ static inline bool __copy(char * __destination, char const * __source, std::size_t __total_size, std::size_t __rank, std::size_t __stride) { + for (std::size_t __offset = __rank * 4; __offset < __total_size; __offset += __stride * 4) { + asm volatile ("cp.async.ca.shared.global [%0], [%1], 4, 4;" + :: "r"(static_cast(__cvta_generic_to_shared(__destination + __offset))), + "l"(__source + __offset) + : "memory"); + } + return true; + } +}; + +template<> +struct __memcpy_async_impl<8, false> { + __device__ static inline bool __copy(char * __destination, char const * __source, std::size_t __total_size, std::size_t __rank, std::size_t __stride) { + for (std::size_t __offset = __rank * 8; __offset < __total_size; __offset += __stride * 8) { + asm volatile ("cp.async.ca.shared.global [%0], [%1], 8, 8;" + :: "r"(static_cast(__cvta_generic_to_shared(__destination + __offset))), + "l"(__source + __offset) + : "memory"); + } + return true; + } +}; + +template<> +struct __memcpy_async_impl<16, false> { + __device__ static inline bool __copy(char * __destination, char const * __source, std::size_t __total_size, std::size_t __rank, std::size_t __stride) { + for (std::size_t __offset = __rank * 16; __offset < __total_size; __offset += __stride * 16) { + asm volatile ("cp.async.cg.shared.global [%0], [%1], 16, 16;" + :: "r"(static_cast(__cvta_generic_to_shared(__destination + __offset))), + "l"(__source + __offset) + : "memory"); + } + return true; + } +}; + +template +struct __memcpy_async_impl<_Alignment, true> : public __memcpy_async_impl<16, false> { }; +#endif + +template= thread_scope_block) && std::is_same<_CompF, std::__empty_completion>::value> +_LIBCUDACXX_INLINE_VISIBILITY +inline void __memcpy_async_synchronize(barrier<_Sco, _CompF> & __barrier, bool __is_async) { +#if __CUDA_ARCH__ >= 800 + if (__is_async) { + if (_Is_mbarrier && __isShared(&__barrier)) { + asm volatile ("cp.async.mbarrier.arrive.shared.b64 [%0];" + :: "r"(static_cast(__cvta_generic_to_shared(&__barrier))) + : "memory"); + } + else { + asm volatile ("cp.async.wait_all;" + ::: "memory"); + } + } +#endif +} + +template +_LIBCUDACXX_INLINE_VISIBILITY +void inline __memcpy_async(_Group const & __group, char * __destination, char const * __source, std::size_t __size, _Sync & __sync) { + bool __is_async = false; + +#if __CUDA_ARCH__ >= 800 + __is_async = __isShared(__destination) && __isGlobal(__source); + + if (__is_async) { + if (_Native_alignment < 4) { + auto __source_address = reinterpret_cast(__source); + auto __destination_address = reinterpret_cast(__destination); + + // Lowest bit set will tell us what the common alignment of the three values is. + auto _Alignment = __ffs(__source_address | __destination_address | __size); + + switch (_Alignment) { + default: __is_async = __memcpy_async_impl<16>::__copy(__destination, __source, __size, __group.thread_rank(), __group.size()); break; + case 4: __is_async = __memcpy_async_impl<8>::__copy(__destination, __source, __size, __group.thread_rank(), __group.size()); break; + case 3: __is_async = __memcpy_async_impl<4>::__copy(__destination, __source, __size, __group.thread_rank(), __group.size()); break; + case 2: // fallthrough + case 1: __is_async = __memcpy_async_impl<1>::__copy(__destination, __source, __size, __group.thread_rank(), __group.size()); break; + } + } + else { + __is_async = __memcpy_async_impl<_Native_alignment>::__copy(__destination, __source, __size, __group.thread_rank(), __group.size()); + } + } + else +#endif + { + __strided_memcpy<_Native_alignment>(__destination, __source, __size, __group.thread_rank(), __group.size()); + } + + __memcpy_async_synchronize(__sync, __is_async); +} + +struct __single_thread_group { + _LIBCUDACXX_INLINE_VISIBILITY + void sync() const {} + _LIBCUDACXX_INLINE_VISIBILITY + constexpr std::size_t size() const { return 1; }; + _LIBCUDACXX_INLINE_VISIBILITY + constexpr std::size_t thread_rank() const { return 0; }; +}; + +template +_LIBCUDACXX_INLINE_VISIBILITY +void memcpy_async(_Group const & __group, _Tp * __destination, _Tp const * __source, std::size_t __size, barrier<_Sco, _CompF> & __barrier) { + // When compiling with NVCC and GCC 4.8, certain user defined types that _are_ trivially copyable are + // incorrectly classified as not trivially copyable. Remove this assertion to allow for their usage with + // memcpy_async when compiling with GCC 4.8. + // FIXME: remove the #if once GCC 4.8 is no longer supported. +#if !defined(_LIBCUDACXX_COMPILER_GCC) || _GNUC_VER > 408 + static_assert(std::is_trivially_copyable<_Tp>::value, "memcpy_async requires a trivially copyable type"); +#endif + + __memcpy_async(__group, reinterpret_cast(__destination), reinterpret_cast(__source), __size, __barrier); +} + +template _Alignment) ? alignof(_Tp) : _Alignment> +_LIBCUDACXX_INLINE_VISIBILITY +void memcpy_async(_Group const & __group, _Tp * __destination, _Tp const * __source, aligned_size_t<_Alignment> __size, barrier<_Sco, _CompF> & __barrier) { + // When compiling with NVCC and GCC 4.8, certain user defined types that _are_ trivially copyable are + // incorrectly classified as not trivially copyable. Remove this assertion to allow for their usage with + // memcpy_async when compiling with GCC 4.8. + // FIXME: remove the #if once GCC 4.8 is no longer supported. +#if !defined(_LIBCUDACXX_COMPILER_GCC) || _GNUC_VER > 408 + static_assert(std::is_trivially_copyable<_Tp>::value, "memcpy_async requires a trivially copyable type"); +#endif + + __memcpy_async<_Larger_alignment>(__group, reinterpret_cast(__destination), reinterpret_cast(__source), __size, __barrier); +} + +template +_LIBCUDACXX_INLINE_VISIBILITY +void memcpy_async(_Tp * __destination, _Tp const * __source, _Size __size, barrier<_Sco, _CompF> & __barrier) { + memcpy_async(__single_thread_group{}, __destination, __source, __size, __barrier); +} + +template +_LIBCUDACXX_INLINE_VISIBILITY +void memcpy_async(_Group const & __group, void * __destination, void const * __source, std::size_t __size, barrier<_Sco, _CompF> & __barrier) { + __memcpy_async<1>(__group, reinterpret_cast(__destination), reinterpret_cast(__source), __size, __barrier); +} + +template +_LIBCUDACXX_INLINE_VISIBILITY +void memcpy_async(_Group const & __group, void * __destination, void const * __source, aligned_size_t<_Alignment> __size, barrier<_Sco, _CompF> & __barrier) { + __memcpy_async<_Alignment>(__group, reinterpret_cast(__destination), reinterpret_cast(__source), __size, __barrier); +} + +template +_LIBCUDACXX_INLINE_VISIBILITY +void memcpy_async(void * __destination, void const * __source, _Size __size, barrier<_Sco, _CompF> & __barrier) { + memcpy_async(__single_thread_group{}, __destination, __source, __size, __barrier); +} + +_LIBCUDACXX_END_NAMESPACE_CUDA + +#include "detail/__pragma_pop" + +#endif //_CUDA_BARRIER diff --git a/build/testing/cmake/test_install/install_prefix/include/cuda/std/bit b/build/testing/cmake/test_install/install_prefix/include/cuda/std/bit new file mode 100644 index 0000000000000000000000000000000000000000..af80d4832c12bd54ef48d7c27002212f46d82561 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cuda/std/bit @@ -0,0 +1,24 @@ +//===----------------------------------------------------------------------===// +// +// Part of libcu++, the C++ Standard Library for your entire system, +// under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef _CUDA_BIT +#define _CUDA_BIT + +#include "detail/__config" + +#include "detail/__pragma_push" + +#include "cstdint" +#include "limits" +#include "type_traits" +#include "detail/libcxx/include/bit" + +#include "detail/__pragma_pop" + +#endif //_CUDA_BIT diff --git a/build/testing/cmake/test_install/install_prefix/include/cuda/std/cassert b/build/testing/cmake/test_install/install_prefix/include/cuda/std/cassert new file mode 100644 index 0000000000000000000000000000000000000000..96b5c6e8f67909c498f042c3e2a690377b02d78a --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cuda/std/cassert @@ -0,0 +1,28 @@ +//===----------------------------------------------------------------------===// +// +// Part of libcu++, the C++ Standard Library for your entire system, +// under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef _CUDA_CASSERT +#define _CUDA_CASSERT + +#ifndef __CUDACC_RTC__ + +#include +#include + +#include "detail/__config" + +#include "detail/__pragma_push" + +#include "detail/libcxx/include/cassert" + +#include "detail/__pragma_pop" + +#endif //__CUDACC_RTC__ + +#endif //_CUDA_CASSERT diff --git a/build/testing/cmake/test_install/install_prefix/include/cuda/std/ccomplex b/build/testing/cmake/test_install/install_prefix/include/cuda/std/ccomplex new file mode 100644 index 0000000000000000000000000000000000000000..29de0d603972955ed6ca1ba02fd1868370e44370 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cuda/std/ccomplex @@ -0,0 +1,14 @@ +//===----------------------------------------------------------------------===// +// +// Part of the CUDA Toolkit, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef _CUDA_CCOMPLEX +#define _CUDA_CCOMPLEX + +#include "complex" + +#endif //_CUDA_CCOMPLEX diff --git a/build/testing/cmake/test_install/install_prefix/include/cuda/std/cfloat b/build/testing/cmake/test_install/install_prefix/include/cuda/std/cfloat new file mode 100644 index 0000000000000000000000000000000000000000..ab752a0971426180b96519b9bb96c49b8a606075 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cuda/std/cfloat @@ -0,0 +1,26 @@ +//===----------------------------------------------------------------------===// +// +// Part of libcu++, the C++ Standard Library for your entire system, +// under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef _CUDA_CFLOAT +#define _CUDA_CFLOAT + +#ifndef __CUDACC_RTC__ + #include + #include +#endif //__CUDACC_RTC__ + +#include "detail/__config" + +#include "detail/__pragma_push" + +#include "detail/libcxx/include/cfloat" + +#include "detail/__pragma_pop" + +#endif //_CUDA_CFLOAT diff --git a/build/testing/cmake/test_install/install_prefix/include/cuda/std/chrono b/build/testing/cmake/test_install/install_prefix/include/cuda/std/chrono new file mode 100644 index 0000000000000000000000000000000000000000..a3abd9ce7cb5c28d0134cb68bba5245cfd307e56 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cuda/std/chrono @@ -0,0 +1,83 @@ +//===----------------------------------------------------------------------===// +// +// Part of libcu++, the C++ Standard Library for your entire system, +// under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef _CUDA_CHRONO +#define _CUDA_CHRONO + +#ifndef __CUDACC_RTC__ + #include +#endif //__CUDACC_RTC__ + +#include "ctime" +#include "type_traits" +#include "ratio" +#include "limits" +#include "version" + +#include "detail/__config" + +#include "detail/__pragma_push" + +// Silence NVCC warnings `long double` arising from chrono floating pointer +// user-defined literals which are defined in terms of `long double`. + +// FIXME: There is currently no way to disable this diagnostic in a fine-grained +// fashion; if you include this header, the diagnostic will be suppressed +// throughout the translation unit. The alternative is loosing (conforming) +// chrono user-defined literals; this seems like the lesser of two evils, so... +#if defined(_LIBCUDACXX_COMPILER_NVCC) +# if (CUDART_VERSION >= 11050) +# pragma nv_diag_suppress cuda_demote_unsupported_floating_point +# else +# pragma diag_suppress cuda_demote_unsupported_floating_point +# endif +#endif + +#include "detail/libcxx/include/chrono" + +_LIBCUDACXX_BEGIN_NAMESPACE_STD + +namespace chrono { + +inline _LIBCUDACXX_INLINE_VISIBILITY +system_clock::time_point system_clock::now() _NOEXCEPT +{ +#ifdef __CUDA_ARCH__ + uint64_t __time; + asm volatile("mov.u64 %0, %globaltimer;":"=l"(__time)::); + return time_point(duration_cast(nanoseconds(__time))); +#else + return time_point(duration_cast(nanoseconds( + ::std::chrono::duration_cast<::std::chrono::nanoseconds>( + ::std::chrono::system_clock::now().time_since_epoch() + ).count() + ))); +#endif +} + +inline _LIBCUDACXX_INLINE_VISIBILITY +time_t system_clock::to_time_t(const system_clock::time_point& __t) _NOEXCEPT +{ + return time_t(duration_cast(__t.time_since_epoch()).count()); +} + +inline _LIBCUDACXX_INLINE_VISIBILITY +system_clock::time_point system_clock::from_time_t(time_t __t) _NOEXCEPT +{ + return time_point(seconds(__t));; +} +} + +_LIBCUDACXX_END_NAMESPACE_STD + +#include "detail/__pragma_pop" + +#endif //_CUDA_CHRONO + + diff --git a/build/testing/cmake/test_install/install_prefix/include/cuda/std/climits b/build/testing/cmake/test_install/install_prefix/include/cuda/std/climits new file mode 100644 index 0000000000000000000000000000000000000000..7c52a91b5ae20c513607637ce0b76a1411c3aebf --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cuda/std/climits @@ -0,0 +1,106 @@ +//===----------------------------------------------------------------------===// +// +// Part of libcu++, the C++ Standard Library for your entire system, +// under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef _CUDA_CLIMITS +#define _CUDA_CLIMITS + +#ifndef __CUDACC_RTC__ + #include + #include + #include +#else + #define CHAR_BIT 8 + + #define SCHAR_MIN (-128) + #define SCHAR_MAX 127 + #define UCHAR_MAX 255 + #define __CHAR_UNSIGNED__ ('\xff' > 0) // CURSED + #if __CHAR_UNSIGNED__ + #define CHAR_MIN 0 + #define CHAR_MAX UCHAR_MAX + #else + #define CHAR_MIN SCHAR_MIN + #define CHAR_MAX SCHAR_MAX + #endif + #define SHRT_MIN (-SHRT_MAX - 1) + #define SHRT_MAX 0x7fff + #define USHRT_MAX 0xffff + #define INT_MIN (-INT_MAX - 1) + #define INT_MAX 0x7fffffff + #define UINT_MAX 0xffffffff + #define LONG_MIN (-LONG_MAX - 1) + #ifdef __LP64__ + #define LONG_MAX LLONG_MAX + #define ULONG_MAX ULLONG_MAX + #else + #define LONG_MAX INT_MAX + #define ULONG_MAX UINT_MAX + #endif + #define LLONG_MIN (-LLONG_MAX - 1) + #define LLONG_MAX 0x7fffffffffffffff + #define ULLONG_MAX 0xffffffffffffffff + + #define __FLT_RADIX__ 2 + #define __FLT_MANT_DIG__ 24 + #define __FLT_DIG__ 6 + #define __FLT_MIN__ 1.17549435082228750796873653722224568e-38F + #define __FLT_MAX__ 3.40282346638528859811704183484516925e+38F + #define __FLT_EPSILON__ 1.19209289550781250000000000000000000e-7F + #define __FLT_MIN_EXP__ (-125) + #define __FLT_MIN_10_EXP__ (-37) + #define __FLT_MAX_EXP__ 128 + #define __FLT_MAX_10_EXP__ 38 + #define __FLT_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F + #define __DBL_MANT_DIG__ 53 + #define __DBL_DIG__ 15 + #define __DBL_MIN__ 2.22507385850720138309023271733240406e-308 + #define __DBL_MAX__ 1.79769313486231570814527423731704357e+308 + #define __DBL_EPSILON__ 2.22044604925031308084726333618164062e-16 + #define __DBL_MIN_EXP__ (-1021) + #define __DBL_MIN_10_EXP__ (-307) + #define __DBL_MAX_EXP__ 1024 + #define __DBL_MAX_10_EXP__ 308 + #define __DBL_DENORM_MIN__ 4.94065645841246544176568792868221372e-324 + + template + static __device__ __forceinline__ + _To __cowchild_cast(_From __from) + { + static_assert(sizeof(_From) == sizeof(_To), ""); + union __cast { _From __from; _To __to; }; + __cast __c; + __c.__from = __from; + return __c.__to; + } + + #define __builtin_huge_valf() __cowchild_cast(0x7f800000) + #define __builtin_nanf(__dummy) __cowchild_cast(0x7fc00000) + #define __builtin_nansf(__dummy) __cowchild_cast(0x7fa00000) + #define __builtin_huge_val() __cowchild_cast(0x7ff0000000000000) + #define __builtin_nan(__dummy) __cowchild_cast(0x7ff8000000000000) + #define __builtin_nans(__dummy) __cowchild_cast(0x7ff4000000000000) +#endif //__CUDACC_RTC__ + +#include "detail/__config" + +#include "detail/__pragma_push" + +#include "detail/libcxx/include/climits" + +// ICC defines __CHAR_BIT__ by default +// accept that, but assert it is what we expect +#ifdef __CHAR_BIT__ + static_assert(__CHAR_BIT__ == 8, ""); +#else + #define __CHAR_BIT__ 8 +#endif + +#include "detail/__pragma_pop" + +#endif //_CUDA_CLIMITS diff --git a/build/testing/cmake/test_install/install_prefix/include/cuda/std/cmath b/build/testing/cmake/test_install/install_prefix/include/cuda/std/cmath new file mode 100644 index 0000000000000000000000000000000000000000..a186b93ceebfa7505349b967d2660e913246f020 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cuda/std/cmath @@ -0,0 +1,27 @@ +//===----------------------------------------------------------------------===// +// +// Part of the CUDA Toolkit, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef _CUDA_CMATH +#define _CUDA_CMATH + +#include "limits" +#include "type_traits" + +#include "detail/__config" + +#include "detail/__pragma_push" + +#ifndef _LIBCUDACXX_COMPILER_NVRTC +#include +#endif +#include "detail/libcxx/include/cmath" + +#include "detail/__pragma_pop" + +#endif //_CUDA_CMATH + diff --git a/build/testing/cmake/test_install/install_prefix/include/cuda/std/complex b/build/testing/cmake/test_install/install_prefix/include/cuda/std/complex new file mode 100644 index 0000000000000000000000000000000000000000..69ec036d248945ad6339cd97430d65adce0b67df --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cuda/std/complex @@ -0,0 +1,27 @@ +//===----------------------------------------------------------------------===// +// +// Part of the CUDA Toolkit, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef _CUDA_COMPLEX +#define _CUDA_COMPLEX + +#include "cmath" +#include "cstdint" +#include "climits" +#include "type_traits" + +#include "detail/__config" + +#include "detail/__pragma_push" + +#include "detail/libcxx/include/complex" + +#include "detail/__pragma_pop" + +#endif //_CUDA_COMPLEX + + diff --git a/build/testing/cmake/test_install/install_prefix/include/cuda/std/cstddef b/build/testing/cmake/test_install/install_prefix/include/cuda/std/cstddef new file mode 100644 index 0000000000000000000000000000000000000000..63a9dada91ed64c13fcd1219220f13c4707e80b9 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cuda/std/cstddef @@ -0,0 +1,40 @@ +//===----------------------------------------------------------------------===// +// +// Part of libcu++, the C++ Standard Library for your entire system, +// under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef _CUDA_CSTDDEF +#define _CUDA_CSTDDEF + +#ifndef __CUDACC_RTC__ + #include + #include +#else + #define offsetof(type, member) (cuda::std::size_t)((char*)&(((type *)0)->member) - (char*)0) +#endif //__CUDACC_RTC__ + +#include "version" + +#include "detail/__config" + +#include "detail/__pragma_push" + +_LIBCUDACXX_BEGIN_NAMESPACE_STD + +typedef decltype(nullptr) nullptr_t; + +_LIBCUDACXX_END_NAMESPACE_STD + +#include "detail/libcxx/include/cstddef" + +#if _LIBCUDACXX_STD_VER > 14 + #include "type_traits" +#endif + +#include "detail/__pragma_pop" + +#endif //_CUDA_CSTDDEF diff --git a/build/testing/cmake/test_install/install_prefix/include/cuda/std/cstdint b/build/testing/cmake/test_install/install_prefix/include/cuda/std/cstdint new file mode 100644 index 0000000000000000000000000000000000000000..e95accd4a4e0ff19291f4a753e9dbb573102f9f5 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cuda/std/cstdint @@ -0,0 +1,90 @@ +//===----------------------------------------------------------------------===// +// +// Part of libcu++, the C++ Standard Library for your entire system, +// under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef _CUDA_CSTDINT +#define _CUDA_CSTDINT + +#ifndef __CUDACC_RTC__ + #include + #include +#else + typedef signed char int8_t; + typedef unsigned char uint8_t; + typedef signed short int16_t; + typedef unsigned short uint16_t; + typedef signed int int32_t; + typedef unsigned int uint32_t; + typedef signed long long int64_t; + typedef unsigned long long uint64_t; + +#define _LIBCUDACXX_ADDITIONAL_INTS(N) \ + typedef int##N##_t int_fast##N##_t; \ + typedef uint##N##_t uint_fast##N##_t; \ + typedef int##N##_t int_least##N##_t; \ + typedef uint##N##_t uint_least##N##_t + + _LIBCUDACXX_ADDITIONAL_INTS(8); + _LIBCUDACXX_ADDITIONAL_INTS(16); + _LIBCUDACXX_ADDITIONAL_INTS(32); + _LIBCUDACXX_ADDITIONAL_INTS(64); +#undef _LIBCUDACXX_ADDITIONAL_INTS + + typedef int64_t intptr_t; + typedef uint64_t uintptr_t; + typedef int64_t intmax_t; + typedef uint64_t uintmax_t; + + #define INT8_MIN SCHAR_MIN + #define INT16_MIN SHRT_MIN + #define INT32_MIN INT_MIN + #define INT64_MIN LLONG_MIN + #define INT8_MAX SCHAR_MAX + #define INT16_MAX SHRT_MAX + #define INT32_MAX INT_MAX + #define INT64_MAX LLONG_MAX + #define UINT8_MAX UCHAR_MAX + #define UINT16_MAX USHRT_MAX + #define UINT32_MAX UINT_MAX + #define UINT64_MAX ULLONG_MAX + #define INT_FAST8_MIN SCHAR_MIN + #define INT_FAST16_MIN SHRT_MIN + #define INT_FAST32_MIN INT_MIN + #define INT_FAST64_MIN LLONG_MIN + #define INT_FAST8_MAX SCHAR_MAX + #define INT_FAST16_MAX SHRT_MAX + #define INT_FAST32_MAX INT_MAX + #define INT_FAST64_MAX LLONG_MAX + #define UINT_FAST8_MAX UCHAR_MAX + #define UINT_FAST16_MAX USHRT_MAX + #define UINT_FAST32_MAX UINT_MAX + #define UINT_FAST64_MAX ULLONG_MAX + + #define INT8_C(X) ((int_least8_t)(X)) + #define INT16_C(X) ((int_least16_t)(X)) + #define INT32_C(X) ((int_least32_t)(X)) + #define INT64_C(X) ((int_least64_t)(X)) + #define UINT8_C(X) ((uint_least8_t)(X)) + #define UINT16_C(X) ((uint_least16_t)(X)) + #define UINT32_C(X) ((uint_least32_t)(X)) + #define UINT64_C(X) ((uint_least64_t)(X)) + #define INTMAX_C(X) ((intmax_t)(X)) + #define UINTMAX_C(X) ((uintmax_t)(X)) +#endif //__CUDACC_RTC__ + +#include "version" +#include "climits" +#include "detail/__config" + +#include "detail/__pragma_push" + +#include "detail/libcxx/include/cstdint" + +#include "detail/__pragma_pop" + +#endif //_CUDA_CSTDINT diff --git a/build/testing/cmake/test_install/install_prefix/include/cuda/std/ctime b/build/testing/cmake/test_install/install_prefix/include/cuda/std/ctime new file mode 100644 index 0000000000000000000000000000000000000000..1825c373bbb3dbb155820c539cc3cb58a1de2930 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cuda/std/ctime @@ -0,0 +1,27 @@ +//===----------------------------------------------------------------------===// +// +// Part of libcu++, the C++ Standard Library for your entire system, +// under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef _CUDA_CTIME +#define _CUDA_CTIME + +#ifndef __CUDACC_RTC__ + #include +#else + typedef long long int time_t; +#endif + +#include "detail/__config" + +#include "detail/__pragma_push" + +#include "detail/libcxx/include/ctime" + +#include "detail/__pragma_pop" + +#endif //_CUDA_CTIME diff --git a/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/__access_property b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/__access_property new file mode 100644 index 0000000000000000000000000000000000000000..d07a4bab3721f847ae533ae8e8799699ece0ad73 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/__access_property @@ -0,0 +1,323 @@ +/* + * SPDX-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * + * NVIDIA SOFTWARE LICENSE + * + * This license is a legal agreement between you and NVIDIA Corporation ("NVIDIA") and governs your use of the NVIDIA/CUDA C++ Library software and materials provided hereunder (“SOFTWARE”). + * + * This license can be accepted only by an adult of legal age of majority in the country in which the SOFTWARE is used. If you are under the legal age of majority, you must ask your parent or legal guardian to consent to this license. By taking delivery of the SOFTWARE, you affirm that you have reached the legal age of majority, you accept the terms of this license, and you take legal and financial responsibility for the actions of your permitted users. + * + * You agree to use the SOFTWARE only for purposes that are permitted by (a) this license, and (b) any applicable law, regulation or generally accepted practices or guidelines in the relevant jurisdictions. + * + * 1. LICENSE. Subject to the terms of this license, NVIDIA grants you a non-exclusive limited license to: (a) install and use the SOFTWARE, and (b) distribute the SOFTWARE subject to the distribution requirements described in this license. NVIDIA reserves all rights, title and interest in and to the SOFTWARE not expressly granted to you under this license. + * + * 2. DISTRIBUTION REQUIREMENTS. These are the distribution requirements for you to exercise the distribution grant: + * a. The terms under which you distribute the SOFTWARE must be consistent with the terms of this license, including (without limitation) terms relating to the license grant and license restrictions and protection of NVIDIA’s intellectual property rights. + * b. You agree to notify NVIDIA in writing of any known or suspected distribution or use of the SOFTWARE not in compliance with the requirements of this license, and to enforce the terms of your agreements with respect to distributed SOFTWARE. + * + * 3. LIMITATIONS. Your license to use the SOFTWARE is restricted as follows: + * a. The SOFTWARE is licensed for you to develop applications only for use in systems with NVIDIA GPUs. + * b. You may not reverse engineer, decompile or disassemble, or remove copyright or other proprietary notices from any portion of the SOFTWARE or copies of the SOFTWARE. + * c. You may not modify or create derivative works of any portion of the SOFTWARE. + * d. You may not bypass, disable, or circumvent any technical measure, encryption, security, digital rights management or authentication mechanism in the SOFTWARE. + * e. You may not use the SOFTWARE in any manner that would cause it to become subject to an open source software license. As examples, licenses that require as a condition of use, modification, and/or distribution that the SOFTWARE be (i) disclosed or distributed in source code form; (ii) licensed for the purpose of making derivative works; or (iii) redistributable at no charge. + * f. Unless you have an agreement with NVIDIA for this purpose, you may not use the SOFTWARE with any system or application where the use or failure of the system or application can reasonably be expected to threaten or result in personal injury, death, or catastrophic loss. Examples include use in avionics, navigation, military, medical, life support or other life critical applications. NVIDIA does not design, test or manufacture the SOFTWARE for these critical uses and NVIDIA shall not be liable to you or any third party, in whole or in part, for any claims or damages arising from such uses. + * g. You agree to defend, indemnify and hold harmless NVIDIA and its affiliates, and their respective employees, contractors, agents, officers and directors, from and against any and all claims, damages, obligations, losses, liabilities, costs or debt, fines, restitutions and expenses (including but not limited to attorney’s fees and costs incident to establishing the right of indemnification) arising out of or related to use of the SOFTWARE outside of the scope of this Agreement, or not in compliance with its terms. + * + * 4. PRE-RELEASE. SOFTWARE versions identified as alpha, beta, preview, early access or otherwise as pre-release may not be fully functional, may contain errors or design flaws, and may have reduced or different security, privacy, availability, and reliability standards relative to commercial versions of NVIDIA software and materials. You may use a pre-release SOFTWARE version at your own risk, understanding that these versions are not intended for use in production or business-critical systems. + * + * 5. OWNERSHIP. The SOFTWARE and the related intellectual property rights therein are and will remain the sole and exclusive property of NVIDIA or its licensors. The SOFTWARE is copyrighted and protected by the laws of the United States and other countries, and international treaty provisions. NVIDIA may make changes to the SOFTWARE, at any time without notice, but is not obligated to support or update the SOFTWARE. + * + * 6. COMPONENTS UNDER OTHER LICENSES. The SOFTWARE may include NVIDIA or third-party components with separate legal notices or terms as may be described in proprietary notices accompanying the SOFTWARE. If and to the extent there is a conflict between the terms in this license and the license terms associated with a component, the license terms associated with the components control only to the extent necessary to resolve the conflict. + * + * 7. FEEDBACK. You may, but don’t have to, provide to NVIDIA any Feedback. “Feedback” means any suggestions, bug fixes, enhancements, modifications, feature requests or other feedback regarding the SOFTWARE. For any Feedback that you voluntarily provide, you hereby grant NVIDIA and its affiliates a perpetual, non-exclusive, worldwide, irrevocable license to use, reproduce, modify, license, sublicense (through multiple tiers of sublicensees), and distribute (through multiple tiers of distributors) the Feedback without the payment of any royalties or fees to you. NVIDIA will use Feedback at its choice. + * + * 8. NO WARRANTIES. THE SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY EXPRESS OR IMPLIED WARRANTY OF ANY KIND INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT, OR FITNESS FOR A PARTICULAR PURPOSE. NVIDIA DOES NOT WARRANT THAT THE SOFTWARE WILL MEET YOUR REQUIREMENTS OR THAT THE OPERATION THEREOF WILL BE UNINTERRUPTED OR ERROR-FREE, OR THAT ALL ERRORS WILL BE CORRECTED. + * + * 9. LIMITATIONS OF LIABILITY. TO THE MAXIMUM EXTENT PERMITTED BY LAW, NVIDIA AND ITS AFFILIATES SHALL NOT BE LIABLE FOR ANY SPECIAL, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL DAMAGES, OR ANY LOST PROFITS, PROJECT DELAYS, LOSS OF USE, LOSS OF DATA OR LOSS OF GOODWILL, OR THE COSTS OF PROCURING SUBSTITUTE PRODUCTS, ARISING OUT OF OR IN CONNECTION WITH THIS LICENSE OR THE USE OR PERFORMANCE OF THE SOFTWARE, WHETHER SUCH LIABILITY ARISES FROM ANY CLAIM BASED UPON BREACH OF CONTRACT, BREACH OF WARRANTY, TORT (INCLUDING NEGLIGENCE), PRODUCT LIABILITY OR ANY OTHER CAUSE OF ACTION OR THEORY OF LIABILITY, EVEN IF NVIDIA HAS PREVIOUSLY BEEN ADVISED OF, OR COULD REASONABLY HAVE FORESEEN, THE POSSIBILITY OF SUCH DAMAGES. IN NO EVENT WILL NVIDIA’S AND ITS AFFILIATES TOTAL CUMULATIVE LIABILITY UNDER OR ARISING OUT OF THIS LICENSE EXCEED US$10.00. THE NATURE OF THE LIABILITY OR THE NUMBER OF CLAIMS OR SUITS SHALL NOT ENLARGE OR EXTEND THIS LIMIT. + * + * 10. TERMINATION. Your rights under this license will terminate automatically without notice from NVIDIA if you fail to comply with any term and condition of this license or if you commence or participate in any legal proceeding against NVIDIA with respect to the SOFTWARE. NVIDIA may terminate this license with advance written notice to you if NVIDIA decides to no longer provide the SOFTWARE in a country or, in NVIDIA’s sole discretion, the continued use of it is no longer commercially viable. Upon any termination of this license, you agree to promptly discontinue use of the SOFTWARE and destroy all copies in your possession or control. Your prior distributions in accordance with this license are not affected by the termination of this license. All provisions of this license will survive termination, except for the license granted to you. + * + * 11. APPLICABLE LAW. This license will be governed in all respects by the laws of the United States and of the State of Delaware as those laws are applied to contracts entered into and performed entirely within Delaware by Delaware residents, without regard to the conflicts of laws principles. The United Nations Convention on Contracts for the International Sale of Goods is specifically disclaimed. You agree to all terms of this Agreement in the English language. The state or federal courts residing in Santa Clara County, California shall have exclusive jurisdiction over any dispute or claim arising out of this license. Notwithstanding this, you agree that NVIDIA shall still be allowed to apply for injunctive remedies or an equivalent type of urgent legal relief in any jurisdiction. + * + * 12. NO ASSIGNMENT. This license and your rights and obligations thereunder may not be assigned by you by any means or operation of law without NVIDIA’s permission. Any attempted assignment not approved by NVIDIA in writing shall be void and of no effect. + * + * 13. EXPORT. The SOFTWARE is subject to United States export laws and regulations. You agree that you will not ship, transfer or export the SOFTWARE into any country, or use the SOFTWARE in any manner, prohibited by the United States Bureau of Industry and Security or economic sanctions regulations administered by the U.S. Department of Treasury’s Office of Foreign Assets Control (OFAC), or any applicable export laws, restrictions or regulations. These laws include restrictions on destinations, end users and end use. By accepting this license, you confirm that you are not a resident or citizen of any country currently embargoed by the U.S. and that you are not otherwise prohibited from receiving the SOFTWARE. + * + * 14. GOVERNMENT USE. The SOFTWARE has been developed entirely at private expense and is “commercial items” consisting of “commercial computer software” and “commercial computer software documentation” provided with RESTRICTED RIGHTS. Use, duplication or disclosure by the U.S. Government or a U.S. Government subcontractor is subject to the restrictions in this license pursuant to DFARS 227.7202-3(a) or as set forth in subparagraphs (b)(1) and (2) of the Commercial Computer Software - Restricted Rights clause at FAR 52.227-19, as applicable. Contractor/manufacturer is NVIDIA, 2788 San Tomas Expressway, Santa Clara, CA 95051. + * + * 15. ENTIRE AGREEMENT. This license is the final, complete and exclusive agreement between the parties relating to the subject matter of this license and supersedes all prior or contemporaneous understandings and agreements relating to this subject matter, whether oral or written. If any court of competent jurisdiction determines that any provision of this license is illegal, invalid or unenforceable, the remaining provisions will remain in full force and effect. This license may only be modified in a writing signed by an authorized representative of each party. + * + * (v. August 20, 2021) + */ + +_LIBCUDACXX_BEGIN_NAMESPACE_CUDA + +namespace __detail_ap { + + __host__ __device__ + constexpr uint32_t __ap_floor_log2(uint32_t __x) { + return (__x == 1 | __x == 0) ? 0 : 1 + __ap_floor_log2(__x >> 1); + } + + __host__ __device__ + constexpr uint32_t __ap_ceil_log2(uint32_t __x) { + return (__x == 1 | __x == 0) ? 0 : __ap_floor_log2(__x - 1) + 1; + } + + __host__ __device__ + constexpr uint32_t __ap_min(uint32_t __a, uint32_t __b) noexcept { + return (__a < __b) ? __a : __b; + } + + __host__ __device__ + constexpr uint32_t __ap_max(uint32_t __a, uint32_t __b) noexcept { + return (__a > __b) ? __a : __b; + } + +// GCC-7 and below do not properly assume the required number of bits for enumerations +#if defined(__GNUC__) && __GNUC__ < 8 +# define _LIBCUDACXX_AP_ENUM_TYPE_ANNOTATION +#else +# define _LIBCUDACXX_AP_ENUM_TYPE_ANNOTATION : uint64_t +#endif + + namespace __sm_80 { + namespace __off { + enum __l2_cop_off_t _LIBCUDACXX_AP_ENUM_TYPE_ANNOTATION { + _L2_EVICT_NORMAL = 0, + _L2_EVICT_FIRST = 1, + }; + } // namespace __off + + namespace __on { + enum __l2_cop_on_t _LIBCUDACXX_AP_ENUM_TYPE_ANNOTATION { + _L2_EVICT_NORMAL = 0, + _L2_EVICT_FIRST = 1, + _L2_EVICT_LAST = 2, + _L2_EVICT_NORMAL_DEMOTE = 3, + }; + } // namespace __on + + enum __l2_descriptor_mode_t _LIBCUDACXX_AP_ENUM_TYPE_ANNOTATION { + _DESC_IMPLICIT = 0, + _DESC_INTERLEAVED = 2, + _DESC_BLOCK_TYPE = 3, + }; + + enum __l2_eviction_max_way_t _LIBCUDACXX_AP_ENUM_TYPE_ANNOTATION { + _CUDA_AMPERE_MAX_L2_WAYS = std::uint32_t{16}, + }; + + enum __block_size_t _LIBCUDACXX_AP_ENUM_TYPE_ANNOTATION { + _BLOCKSIZE_4K = 0, + _BLOCKSIZE_8K = 1, + _BLOCKSIZE_16K = 2, + _BLOCKSIZE_32K = 3, + _BLOCKSIZE_64K = 4, + _BLOCKSIZE_128K = 5, + _BLOCKSIZE_256K = 6, + _BLOCKSIZE_512K = 7, + _BLOCKSIZE_1M = 8, + _BLOCKSIZE_2M = 9, + _BLOCKSIZE_4M = 10, + _BLOCKSIZE_8M = 11, + _BLOCKSIZE_16M = 12, + _BLOCKSIZE_32M = 13, + }; + + struct __block_desc_t { + uint64_t __ap_reserved : 37; + uint64_t __block_count: 7; + uint64_t __block_start: 7; + uint64_t __ap_reserved2 : 1; + __block_size_t __block_size : 4; + __off::__l2_cop_off_t __l2_cop_off : 1; + __on::__l2_cop_on_t __l2_cop_on : 2; + __l2_descriptor_mode_t __l2_descriptor_mode : 2; + uint64_t __l1_inv_dont_allocate : 1; + uint64_t __l2_sector_promote_256B : 1; + uint64_t __ap_reserved3 : 1; + + __host__ __device__ + constexpr std::uint64_t __get_descriptor_cexpr() const noexcept { + return + std::uint64_t(__ap_reserved) << 0 | + std::uint64_t(__block_count) << 37 | + std::uint64_t(__block_start) << 44 | + std::uint64_t(__ap_reserved2) << 51 | + std::uint64_t(__block_size) << 52 | + std::uint64_t(__l2_cop_off) << 56 | + std::uint64_t(__l2_cop_on) << 57 | + std::uint64_t(__l2_descriptor_mode) << 59 | + std::uint64_t(__l1_inv_dont_allocate) << 61 | + std::uint64_t(__l2_sector_promote_256B) << 62 | + std::uint64_t(__ap_reserved3) << 63; + } + + inline + __host__ __device__ + std::uint64_t __get_descriptor_non_cexpr() const noexcept { return *reinterpret_cast(this); } + + __host__ __device__ + constexpr std::uint64_t __get_descriptor() const noexcept { +#if defined(_LIBCUDACXX_IS_CONSTANT_EVALUATED) + return cuda::std::is_constant_evaluated() ? + __get_descriptor_cexpr() : + __get_descriptor_non_cexpr(); +#else + return __get_descriptor_cexpr(); +#endif + } + }; + static_assert(sizeof(__block_desc_t) == 8, "__block_desc_t should be 8 bytes"); + static_assert(sizeof(__block_desc_t) == sizeof(std::uint64_t), ""); + static_assert( + __block_desc_t{(uint64_t)1, (uint64_t)1, (uint64_t)1, (uint64_t)1, __block_size_t::_BLOCKSIZE_8K, __off::_L2_EVICT_FIRST, __on::_L2_EVICT_FIRST, __l2_descriptor_mode_t::_DESC_INTERLEAVED, (uint64_t)1, (uint64_t)1, (uint64_t)1}.__get_descriptor() + == 0xF318102000000001, ""); + + /* Factory like struct to build a __block_desc_t due to constexpr C++11 + */ + struct __block_descriptor_builder { //variable declaration order matters == usage order + std::uint32_t __offset; + __block_size_t __block_size; + std::uint32_t __block_start, __end_hit; + std::uint32_t __block_count; + __off::__l2_cop_off_t __l2_cop_off; + __on::__l2_cop_on_t __l2_cop_on; + __l2_descriptor_mode_t __l2_descriptor_mode; + bool __l1_inv_dont_allocate, __l2_sector_promote_256B; + + __host__ __device__ static constexpr std::uint32_t __calc_offset(std::size_t __total_bytes) { + return __ap_max(std::uint32_t{12}, static_cast(__ap_ceil_log2(static_cast(__total_bytes))) - std::uint32_t{7}); + } + + __host__ __device__ static constexpr std::uint32_t __calc_block_start(std::uintptr_t __ptr, std::size_t __total_bytes) { + return static_cast(__ptr >> __calc_offset(static_cast(__total_bytes))); + } + + __host__ __device__ static constexpr std::uint32_t __calc_end_hit(std::uintptr_t __ptr, std::size_t __hit_bytes, std::size_t __total_bytes) { + return static_cast((__ptr + __hit_bytes + (std::uintptr_t{1} << (__calc_offset(static_cast(__total_bytes)))) - 1) >> __calc_offset(static_cast(__total_bytes))); + } + + __host__ __device__ constexpr __block_descriptor_builder(std::uintptr_t __ptr, std::size_t __hit_bytes, std::size_t __total_bytes, __on::__l2_cop_on_t __hit_prop, __off::__l2_cop_off_t __miss_prop) + : __offset(__calc_offset(__total_bytes)) + , __block_size(static_cast<__block_size_t>(__calc_offset(__total_bytes) - std::uint32_t{12})) + , __block_start(__calc_block_start(__ptr, __total_bytes)) + , __end_hit(__calc_end_hit(__ptr, __hit_bytes, __total_bytes)) + , __block_count(__calc_end_hit(__ptr, __hit_bytes, __total_bytes) - __calc_block_start(__ptr, __total_bytes)) + , __l2_cop_off(__miss_prop) + , __l2_cop_on(__hit_prop) + , __l2_descriptor_mode(_DESC_BLOCK_TYPE) + , __l1_inv_dont_allocate(false) + , __l2_sector_promote_256B(false) + {} + + __host__ __device__ + constexpr __block_desc_t __get_block() const noexcept { + return __block_desc_t { 0, __ap_min(std::uint32_t{0x7f}, __block_count), (__block_start & std::uint32_t{0x7f}), 0, __block_size, __l2_cop_off, __l2_cop_on, _DESC_BLOCK_TYPE, false, false, 0 }; + } + }; + static_assert(sizeof(std::uintptr_t) > 4, "std::uintptr_t needs at least 5 bytes for this code to work"); + + struct __interleave_descriptor_t { + uint64_t __ap_reserved : 52; + uint64_t __fraction : 4; + __off::__l2_cop_off_t __l2_cop_off : 1; + __on::__l2_cop_on_t __l2_cop_on : 2; + __l2_descriptor_mode_t __l2_descriptor_mode : 2; + uint64_t __l1_inv_dont_allocate : 1; + uint64_t __l2_sector_promote_256B : 1; + uint64_t __ap_reserved2 : 1; + + __host__ __device__ + constexpr __interleave_descriptor_t( + __on::__l2_cop_on_t __hit_prop, + std::uint32_t __hit_ratio, + __off::__l2_cop_off_t __miss_prop) noexcept + : __fraction(__hit_ratio), + __l2_cop_off(__miss_prop), + __l2_cop_on(__hit_prop), + __l2_descriptor_mode(_DESC_INTERLEAVED), + __l1_inv_dont_allocate(0x0), + __l2_sector_promote_256B(0x0), + __ap_reserved(0x0), + __ap_reserved2(0x0) {} + + __host__ __device__ + constexpr std::uint64_t __get_descriptor_cexpr() const { + return + std::uint64_t(__ap_reserved) << 0 | + std::uint64_t(__fraction) << 52 | + std::uint64_t(__l2_cop_off) << 56 | + std::uint64_t(__l2_cop_on) << 57 | + std::uint64_t(__l2_descriptor_mode) << 59 | + std::uint64_t(__l1_inv_dont_allocate) << 61 | + std::uint64_t(__l2_sector_promote_256B) << 62 | + std::uint64_t(__ap_reserved2) << 63; + } + + inline + __host__ __device__ + std::uint64_t __get_descriptor_non_cexpr() const noexcept { return *reinterpret_cast(this); } + + + __host__ __device__ + constexpr std::uint64_t __get_descriptor() const noexcept { +#if defined(_LIBCUDACXX_IS_CONSTANT_EVALUATED) + return cuda::std::is_constant_evaluated() ? + __get_descriptor_cexpr() : + __get_descriptor_non_cexpr(); +#else + return __get_descriptor_cexpr(); +#endif + } + }; + static_assert(sizeof(__interleave_descriptor_t) == 8, "__interleave_descriptor_t should be 8 bytes"); + static_assert(sizeof(__interleave_descriptor_t) == sizeof(std::uint64_t), ""); + + __host__ __device__ + static constexpr std::uint64_t __interleave_normal() noexcept { + return 0x10F0000000000000; + } + + __host__ __device__ + static constexpr std::uint64_t __interleave_streaming() noexcept { + return 0x12F0000000000000; + } + + __host__ __device__ + static constexpr std::uint64_t __interleave_persisting() noexcept { + return 0x14F0000000000000; + } + + __host__ __device__ + static constexpr std::uint64_t __interleave_normal_demote() noexcept { + return 0x16F0000000000000; + } + + } // namespace __sm_80 + + __host__ __device__ + constexpr std::uint64_t __interleave(cudaAccessProperty __hit_prop, float __hit_ratio, cudaAccessProperty __miss_prop = cudaAccessPropertyNormal) { + return __sm_80::__interleave_descriptor_t( + ((__hit_prop == cudaAccessPropertyNormal) ? __sm_80::__on::__l2_cop_on_t::_L2_EVICT_NORMAL_DEMOTE : static_cast<__sm_80::__on::__l2_cop_on_t>(__hit_prop)), + __ap_min((static_cast(__hit_ratio) * __sm_80::__l2_eviction_max_way_t::_CUDA_AMPERE_MAX_L2_WAYS), static_cast(__sm_80::__l2_eviction_max_way_t::_CUDA_AMPERE_MAX_L2_WAYS - 1)), + static_cast<__sm_80::__off::__l2_cop_off_t>(__miss_prop) + ).__get_descriptor(); + } + + __host__ __device__ + constexpr std::uint64_t __block(void* __ptr, std::size_t __hit_bytes, std::size_t __total_bytes, cudaAccessProperty __hit_prop, cudaAccessProperty __miss_prop = cudaAccessPropertyNormal) { + return (__total_bytes <= (size_t{0xFFFFFFFF}) & __total_bytes != 0 & __hit_bytes <= __total_bytes) ? __sm_80::__block_descriptor_builder( + reinterpret_cast(__ptr), + __hit_bytes, + __total_bytes, + (__hit_prop == cudaAccessPropertyNormal) ? __sm_80::__on::_L2_EVICT_NORMAL_DEMOTE : static_cast<__sm_80::__on::__l2_cop_on_t>(__hit_prop), + static_cast<__sm_80::__off::__l2_cop_off_t>(__miss_prop) + ).__get_block().__get_descriptor() + : __sm_80::__interleave_normal(); + } +} // namespace __detail_ap + +_LIBCUDACXX_END_NAMESPACE_CUDA diff --git a/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/__annotated_ptr b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/__annotated_ptr new file mode 100644 index 0000000000000000000000000000000000000000..4c7ad40806151a8620ab5d3b5457233983ff6112 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/__annotated_ptr @@ -0,0 +1,227 @@ +/* + * SPDX-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * + * NVIDIA SOFTWARE LICENSE + * + * This license is a legal agreement between you and NVIDIA Corporation ("NVIDIA") and governs your use of the NVIDIA/CUDA C++ Library software and materials provided hereunder (“SOFTWARE”). + * + * This license can be accepted only by an adult of legal age of majority in the country in which the SOFTWARE is used. If you are under the legal age of majority, you must ask your parent or legal guardian to consent to this license. By taking delivery of the SOFTWARE, you affirm that you have reached the legal age of majority, you accept the terms of this license, and you take legal and financial responsibility for the actions of your permitted users. + * + * You agree to use the SOFTWARE only for purposes that are permitted by (a) this license, and (b) any applicable law, regulation or generally accepted practices or guidelines in the relevant jurisdictions. + * + * 1. LICENSE. Subject to the terms of this license, NVIDIA grants you a non-exclusive limited license to: (a) install and use the SOFTWARE, and (b) distribute the SOFTWARE subject to the distribution requirements described in this license. NVIDIA reserves all rights, title and interest in and to the SOFTWARE not expressly granted to you under this license. + * + * 2. DISTRIBUTION REQUIREMENTS. These are the distribution requirements for you to exercise the distribution grant: + * a. The terms under which you distribute the SOFTWARE must be consistent with the terms of this license, including (without limitation) terms relating to the license grant and license restrictions and protection of NVIDIA’s intellectual property rights. + * b. You agree to notify NVIDIA in writing of any known or suspected distribution or use of the SOFTWARE not in compliance with the requirements of this license, and to enforce the terms of your agreements with respect to distributed SOFTWARE. + * + * 3. LIMITATIONS. Your license to use the SOFTWARE is restricted as follows: + * a. The SOFTWARE is licensed for you to develop applications only for use in systems with NVIDIA GPUs. + * b. You may not reverse engineer, decompile or disassemble, or remove copyright or other proprietary notices from any portion of the SOFTWARE or copies of the SOFTWARE. + * c. You may not modify or create derivative works of any portion of the SOFTWARE. + * d. You may not bypass, disable, or circumvent any technical measure, encryption, security, digital rights management or authentication mechanism in the SOFTWARE. + * e. You may not use the SOFTWARE in any manner that would cause it to become subject to an open source software license. As examples, licenses that require as a condition of use, modification, and/or distribution that the SOFTWARE be (i) disclosed or distributed in source code form; (ii) licensed for the purpose of making derivative works; or (iii) redistributable at no charge. + * f. Unless you have an agreement with NVIDIA for this purpose, you may not use the SOFTWARE with any system or application where the use or failure of the system or application can reasonably be expected to threaten or result in personal injury, death, or catastrophic loss. Examples include use in avionics, navigation, military, medical, life support or other life critical applications. NVIDIA does not design, test or manufacture the SOFTWARE for these critical uses and NVIDIA shall not be liable to you or any third party, in whole or in part, for any claims or damages arising from such uses. + * g. You agree to defend, indemnify and hold harmless NVIDIA and its affiliates, and their respective employees, contractors, agents, officers and directors, from and against any and all claims, damages, obligations, losses, liabilities, costs or debt, fines, restitutions and expenses (including but not limited to attorney’s fees and costs incident to establishing the right of indemnification) arising out of or related to use of the SOFTWARE outside of the scope of this Agreement, or not in compliance with its terms. + * + * 4. PRE-RELEASE. SOFTWARE versions identified as alpha, beta, preview, early access or otherwise as pre-release may not be fully functional, may contain errors or design flaws, and may have reduced or different security, privacy, availability, and reliability standards relative to commercial versions of NVIDIA software and materials. You may use a pre-release SOFTWARE version at your own risk, understanding that these versions are not intended for use in production or business-critical systems. + * + * 5. OWNERSHIP. The SOFTWARE and the related intellectual property rights therein are and will remain the sole and exclusive property of NVIDIA or its licensors. The SOFTWARE is copyrighted and protected by the laws of the United States and other countries, and international treaty provisions. NVIDIA may make changes to the SOFTWARE, at any time without notice, but is not obligated to support or update the SOFTWARE. + * + * 6. COMPONENTS UNDER OTHER LICENSES. The SOFTWARE may include NVIDIA or third-party components with separate legal notices or terms as may be described in proprietary notices accompanying the SOFTWARE. If and to the extent there is a conflict between the terms in this license and the license terms associated with a component, the license terms associated with the components control only to the extent necessary to resolve the conflict. + * + * 7. FEEDBACK. You may, but don’t have to, provide to NVIDIA any Feedback. “Feedback” means any suggestions, bug fixes, enhancements, modifications, feature requests or other feedback regarding the SOFTWARE. For any Feedback that you voluntarily provide, you hereby grant NVIDIA and its affiliates a perpetual, non-exclusive, worldwide, irrevocable license to use, reproduce, modify, license, sublicense (through multiple tiers of sublicensees), and distribute (through multiple tiers of distributors) the Feedback without the payment of any royalties or fees to you. NVIDIA will use Feedback at its choice. + * + * 8. NO WARRANTIES. THE SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY EXPRESS OR IMPLIED WARRANTY OF ANY KIND INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT, OR FITNESS FOR A PARTICULAR PURPOSE. NVIDIA DOES NOT WARRANT THAT THE SOFTWARE WILL MEET YOUR REQUIREMENTS OR THAT THE OPERATION THEREOF WILL BE UNINTERRUPTED OR ERROR-FREE, OR THAT ALL ERRORS WILL BE CORRECTED. + * + * 9. LIMITATIONS OF LIABILITY. TO THE MAXIMUM EXTENT PERMITTED BY LAW, NVIDIA AND ITS AFFILIATES SHALL NOT BE LIABLE FOR ANY SPECIAL, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL DAMAGES, OR ANY LOST PROFITS, PROJECT DELAYS, LOSS OF USE, LOSS OF DATA OR LOSS OF GOODWILL, OR THE COSTS OF PROCURING SUBSTITUTE PRODUCTS, ARISING OUT OF OR IN CONNECTION WITH THIS LICENSE OR THE USE OR PERFORMANCE OF THE SOFTWARE, WHETHER SUCH LIABILITY ARISES FROM ANY CLAIM BASED UPON BREACH OF CONTRACT, BREACH OF WARRANTY, TORT (INCLUDING NEGLIGENCE), PRODUCT LIABILITY OR ANY OTHER CAUSE OF ACTION OR THEORY OF LIABILITY, EVEN IF NVIDIA HAS PREVIOUSLY BEEN ADVISED OF, OR COULD REASONABLY HAVE FORESEEN, THE POSSIBILITY OF SUCH DAMAGES. IN NO EVENT WILL NVIDIA’S AND ITS AFFILIATES TOTAL CUMULATIVE LIABILITY UNDER OR ARISING OUT OF THIS LICENSE EXCEED US$10.00. THE NATURE OF THE LIABILITY OR THE NUMBER OF CLAIMS OR SUITS SHALL NOT ENLARGE OR EXTEND THIS LIMIT. + * + * 10. TERMINATION. Your rights under this license will terminate automatically without notice from NVIDIA if you fail to comply with any term and condition of this license or if you commence or participate in any legal proceeding against NVIDIA with respect to the SOFTWARE. NVIDIA may terminate this license with advance written notice to you if NVIDIA decides to no longer provide the SOFTWARE in a country or, in NVIDIA’s sole discretion, the continued use of it is no longer commercially viable. Upon any termination of this license, you agree to promptly discontinue use of the SOFTWARE and destroy all copies in your possession or control. Your prior distributions in accordance with this license are not affected by the termination of this license. All provisions of this license will survive termination, except for the license granted to you. + * + * 11. APPLICABLE LAW. This license will be governed in all respects by the laws of the United States and of the State of Delaware as those laws are applied to contracts entered into and performed entirely within Delaware by Delaware residents, without regard to the conflicts of laws principles. The United Nations Convention on Contracts for the International Sale of Goods is specifically disclaimed. You agree to all terms of this Agreement in the English language. The state or federal courts residing in Santa Clara County, California shall have exclusive jurisdiction over any dispute or claim arising out of this license. Notwithstanding this, you agree that NVIDIA shall still be allowed to apply for injunctive remedies or an equivalent type of urgent legal relief in any jurisdiction. + * + * 12. NO ASSIGNMENT. This license and your rights and obligations thereunder may not be assigned by you by any means or operation of law without NVIDIA’s permission. Any attempted assignment not approved by NVIDIA in writing shall be void and of no effect. + * + * 13. EXPORT. The SOFTWARE is subject to United States export laws and regulations. You agree that you will not ship, transfer or export the SOFTWARE into any country, or use the SOFTWARE in any manner, prohibited by the United States Bureau of Industry and Security or economic sanctions regulations administered by the U.S. Department of Treasury’s Office of Foreign Assets Control (OFAC), or any applicable export laws, restrictions or regulations. These laws include restrictions on destinations, end users and end use. By accepting this license, you confirm that you are not a resident or citizen of any country currently embargoed by the U.S. and that you are not otherwise prohibited from receiving the SOFTWARE. + * + * 14. GOVERNMENT USE. The SOFTWARE has been developed entirely at private expense and is “commercial items” consisting of “commercial computer software” and “commercial computer software documentation” provided with RESTRICTED RIGHTS. Use, duplication or disclosure by the U.S. Government or a U.S. Government subcontractor is subject to the restrictions in this license pursuant to DFARS 227.7202-3(a) or as set forth in subparagraphs (b)(1) and (2) of the Commercial Computer Software - Restricted Rights clause at FAR 52.227-19, as applicable. Contractor/manufacturer is NVIDIA, 2788 San Tomas Expressway, Santa Clara, CA 95051. + * + * 15. ENTIRE AGREEMENT. This license is the final, complete and exclusive agreement between the parties relating to the subject matter of this license and supersedes all prior or contemporaneous understandings and agreements relating to this subject matter, whether oral or written. If any court of competent jurisdiction determines that any provision of this license is illegal, invalid or unenforceable, the remaining provisions will remain in full force and effect. This license may only be modified in a writing signed by an authorized representative of each party. + * + * (v. August 20, 2021) + */ + +_LIBCUDACXX_BEGIN_NAMESPACE_CUDA + +namespace __detail_ap { + + template + __device__ + void* __associate_address_space(void* __ptr, _Property __prop) { + if (std::is_same<_Property, access_property::shared>::value == true) { + bool __b = __isShared(__ptr); +#if _LIBCUDACXX_DEBUG_LEVEL >= 2 + _LIBCUDACXX_DEBUG_ASSERT(__b == true); +#endif + __builtin_assume(__b); + } else if (std::is_same<_Property, access_property::global>::value == true || + std::is_same<_Property, access_property::normal>::value == true || + std::is_same<_Property, access_property::persisting>::value == true || + std::is_same<_Property, access_property::streaming>::value == true || + std::is_same<_Property, access_property>::value) { + bool __b = __isGlobal(__ptr); +#if _LIBCUDACXX_DEBUG_LEVEL >= 2 + _LIBCUDACXX_DEBUG_ASSERT(__b == true); +#endif + __builtin_assume(__b); + } + + return __ptr; + } + + template + __device__ + void* __associate_descriptor(void* __ptr, __Prop __prop) { + return __associate_descriptor(__ptr, static_cast(access_property(__prop))); + } + + template <> + inline __device__ + void* __associate_descriptor(void* __ptr, std::uint64_t __prop) { +#if __CUDA_ARCH__ >= 800 + return __nv_associate_access_property(__ptr, __prop); +#else + return __ptr; +#endif + } + + template<> + inline __device__ + void* __associate_descriptor(void* __ptr, access_property::shared) { + return __ptr; + } + + template + __host__ __device__ + _Type* __associate(_Type* __ptr, _Property __prop) { +#ifdef __CUDA_ARCH__ + return static_cast<_Type*>(__associate_descriptor( + __associate_address_space(const_cast(static_cast(__ptr)), __prop), + __prop)); +#else + return __ptr; +#endif + } + + + template + class __annotated_ptr_base { + using __error = typename _Property::__unknown_access_property_type; + }; + + template<> + class __annotated_ptr_base { + protected: + static constexpr std::uint64_t __prop = 0; + + constexpr __annotated_ptr_base() noexcept = default; + constexpr __annotated_ptr_base(__annotated_ptr_base const&) = default; + _LIBCUDACXX_CONSTEXPR_AFTER_CXX11 __annotated_ptr_base& operator=(const __annotated_ptr_base&) = default; + __host__ __device__ constexpr __annotated_ptr_base(access_property::shared) noexcept {} + inline __device__ void* __apply_prop(void* __p) const { + return __associate(__p, access_property::shared{}); + } + __host__ __device__ constexpr access_property::shared __get_property() const noexcept { + return access_property::shared{}; + } + }; + + template<> + class __annotated_ptr_base { + protected: + static constexpr std::uint64_t __prop = __sm_80::__interleave_normal(); + + constexpr __annotated_ptr_base() noexcept = default; + constexpr __annotated_ptr_base(__annotated_ptr_base const&) = default; + _LIBCUDACXX_CONSTEXPR_AFTER_CXX11 __annotated_ptr_base& operator=(const __annotated_ptr_base&) = default; + __host__ __device__ constexpr __annotated_ptr_base(access_property::global) noexcept {} + inline __device__ void* __apply_prop(void* __p) const { + return __associate(__p, access_property::global{}); + } + __host__ __device__ constexpr access_property::global __get_property() const noexcept { + return access_property::global{}; + } + }; + + template<> + class __annotated_ptr_base { + protected: + static constexpr std::uint64_t __prop = __sm_80::__interleave_normal_demote(); + + constexpr __annotated_ptr_base() noexcept = default; + constexpr __annotated_ptr_base(__annotated_ptr_base const&) = default; + _LIBCUDACXX_CONSTEXPR_AFTER_CXX11 __annotated_ptr_base& operator=(const __annotated_ptr_base&) = default; + __host__ __device__ constexpr __annotated_ptr_base(access_property::normal) noexcept {} + inline __device__ void* __apply_prop(void* __p) const { + return __associate(__p, access_property::normal{}); + } + __host__ __device__ constexpr access_property::normal __get_property() const noexcept { + return access_property::normal{}; + } + }; + + template<> + class __annotated_ptr_base { + protected: + static constexpr std::uint64_t __prop = __sm_80::__interleave_persisting(); + + constexpr __annotated_ptr_base() noexcept = default; + constexpr __annotated_ptr_base(__annotated_ptr_base const&) = default; + _LIBCUDACXX_CONSTEXPR_AFTER_CXX11 __annotated_ptr_base& operator=(const __annotated_ptr_base&) = default; + __host__ __device__ constexpr __annotated_ptr_base(access_property::persisting) noexcept {} + inline __device__ void* __apply_prop(void* __p) const { + return __associate(__p, access_property::persisting{}); + } + __host__ __device__ constexpr access_property::persisting __get_property() const noexcept { + return access_property::persisting{}; + } + }; + + template<> + class __annotated_ptr_base { + protected: + static constexpr std::uint64_t __prop = __sm_80::__interleave_streaming(); + + constexpr __annotated_ptr_base() noexcept = default; + constexpr __annotated_ptr_base(__annotated_ptr_base const&) = default; + _LIBCUDACXX_CONSTEXPR_AFTER_CXX11 __annotated_ptr_base& operator=(const __annotated_ptr_base&) = default; + __host__ __device__ constexpr __annotated_ptr_base(access_property::streaming) noexcept {} + inline __device__ void* __apply_prop(void* __p) const { + return __associate(__p, access_property::streaming{}); + } + __host__ __device__ constexpr access_property::streaming __get_property() const noexcept { + return access_property::streaming{}; + } + }; + + template<> + class __annotated_ptr_base { + protected: + std::uint64_t __prop; + + __host__ __device__ constexpr __annotated_ptr_base() noexcept : __prop(access_property()) {} + __host__ __device__ constexpr __annotated_ptr_base(std::uint64_t __property) noexcept : __prop(__property) {} + __host__ __device__ constexpr __annotated_ptr_base(access_property __property) noexcept + : __annotated_ptr_base(static_cast(__property)) {} + constexpr __annotated_ptr_base(__annotated_ptr_base const&) = default; + _LIBCUDACXX_CONSTEXPR_AFTER_CXX11 __annotated_ptr_base& operator=(const __annotated_ptr_base&) = default; + inline __device__ void* __apply_prop(void* __p) const { + return __associate(__p, __prop); + } + __host__ __device__ access_property __get_property() const noexcept { + return reinterpret_cast(const_cast(__prop)); + } + }; +} // namespace __detail_ap + +_LIBCUDACXX_END_NAMESPACE_CUDA diff --git a/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/__config b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/__config new file mode 100644 index 0000000000000000000000000000000000000000..039911f2e2ce8b0425b300ea3c5248b7fc4f25f1 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/__config @@ -0,0 +1,196 @@ +//===----------------------------------------------------------------------===// +// +// Part of libcu++, the C++ Standard Library for your entire system, +// under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef __cuda_std__ +#define __cuda_std__ + +#ifdef __CUDACC__ + #if defined(__clang__) + #include + #define __fp16 __half + #endif + #if defined(__FLT16_MANT_DIG__) + #include + #define _Float16 __half + #endif + #define _LIBCUDACXX_CUDACC_VER_MAJOR __CUDACC_VER_MAJOR__ + #define _LIBCUDACXX_CUDACC_VER_MINOR __CUDACC_VER_MINOR__ + #define _LIBCUDACXX_CUDACC_VER_BUILD __CUDACC_VER_BUILD__ + #define _LIBCUDACXX_CUDACC_VER \ + _LIBCUDACXX_CUDACC_VER_MAJOR * 100000 + _LIBCUDACXX_CUDACC_VER_MINOR * 1000 + \ + _LIBCUDACXX_CUDACC_VER_BUILD + + #define _LIBCUDACXX_HAS_NO_LONG_DOUBLE +#else + #ifndef __host__ + #define __host__ + #endif + #ifndef __device__ + #define __device__ + #endif + #ifndef __forceinline__ + #define __forceinline__ + #endif +#endif + +#ifdef _MSC_VER + #undef __cpp_lib_transparent_operators +#endif + +// request these outcomes +#define _LIBCUDACXX_NO_AUTO_LINK +#ifndef _LIBCUDACXX_NO_EXCEPTIONS + #define _LIBCUDACXX_NO_EXCEPTIONS +#endif +#ifndef _LIBCUDACXX_NO_RTTI + #define _LIBCUDACXX_NO_RTTI +#endif +// Disable the nodebug type +#ifndef _LIBCUDACXX_NODEBUG_TYPE + #define _LIBCUDACXX_NODEBUG_TYPE +#endif + +#if defined(__CUDACC_RTC__) +# if defined(__CUDACC_RTC_INT128__) +# define __SIZEOF_INT128__ 16 // This macro is required in order to use int128 within the library +# else +# define _LIBCUDACXX_HAS_NO_INT128 +# endif +#endif + +#if defined(_LIBCUDACXX_COMPILER_MSVC) || (defined(_LIBCUDACXX_CUDACC_VER) && (_LIBCUDACXX_CUDACC_VER < 1105000)) +# define _LIBCUDACXX_HAS_NO_INT128 +#endif + +#ifndef _LIBCUDACXX_ASSERT +# define _LIBCUDACXX_ASSERT(x, m) ((void)0) +#endif +#define _LIBCUDACXX_FREESTANDING +#define _LIBCUDACXX_HAS_NO_WCHAR_H +#define _LIBCUDACXX_HAS_NO_THREAD_CONTENTION_TABLE +#define _LIBCUDACXX_HAS_NO_PLATFORM_WAIT +#define _LIBCUDACXX_HAS_NO_MONOTONIC_CLOCK +#define _LIBCUDACXX_HAS_NO_TREE_BARRIER +#ifdef __CUDACC_RTC__ + #define __ELF__ + #define _LIBCUDACXX_DISABLE_PRAGMA_GCC_SYSTEM_HEADER + #define _LIBCUDACXX_HAS_THREAD_API_EXTERNAL + #define __alignof(x) alignof(x) + #define _LIBCUDACXX_LITTLE_ENDIAN + #define _LIBCUDACXX_DISABLE_VISIBILITY_ANNOTATIONS + #define _LIBCUDACXX_HAS_NO_PRAGMA_PUSH_POP_MACRO +#endif +#define _LIBCUDACXX_HAS_EXTERNAL_ATOMIC_IMP +#define _LIBCUDACXX_ATOMIC_ALWAYS_LOCK_FREE(size, ptr) (size <= 8) +#define _LIBCUDACXX_HAS_NO_CXX20_CHRONO_LITERALS + +#define _LIBCUDACXX_SYS_CLOCK_DURATION nanoseconds + +#if defined(__PGIC__) && defined(__linux__) + #define __ELF__ +#endif + +#define _LIBCUDACXX_ENABLE_BIT_BACKPORT + +#define _LIBCUDACXX_HAS_CUDA_ATOMIC_EXT + +#include "libcxx/include/__config" + +#if defined(__CUDA_ARCH__) + #define _LIBCUDACXX_HAS_THREAD_API_CUDA +#elif defined(_LIBCUDACXX_COMPILER_MSVC) + #define _LIBCUDACXX_HAS_THREAD_API_WIN32 +#endif + +#if _GNUC_VER <= 409 + #define _LIBCUDACXX_CUDA_HAS_NO_HOST_STD_ATOMIC_INIT +#endif + +// force this outcome +#undef _LIBCUDACXX_EXECUTION_SPACE_SPECIFIER +#define _LIBCUDACXX_EXECUTION_SPACE_SPECIFIER __host__ __device__ +#undef _LIBCUDACXX_ATOMIC_FLAG_TYPE +#define _LIBCUDACXX_ATOMIC_FLAG_TYPE int +#undef _LIBCUDACXX_INLINE_VISIBILITY +#define _LIBCUDACXX_INLINE_VISIBILITY _LIBCUDACXX_EXECUTION_SPACE_SPECIFIER +#undef _LIBCUDACXX_FUNC_VIS +#define _LIBCUDACXX_FUNC_VIS _LIBCUDACXX_INLINE_VISIBILITY +#undef _LIBCUDACXX_TYPE_VIS +#define _LIBCUDACXX_TYPE_VIS + +#ifndef _LIBCUDACXX_ABI_UNSTABLE +# define _LIBCUDACXX_ABI_UNSTABLE +#endif + +#define _LIBCUDACXX_CUDA_API_VERSION 1008001 + +#define _LIBCUDACXX_CUDA_API_VERSION_MAJOR \ + (_LIBCUDACXX_CUDA_API_VERSION / 1000000) + +#define _LIBCUDACXX_CUDA_API_VERSION_MINOR \ + (_LIBCUDACXX_CUDA_API_VERSION / 1000 % 1000) + +#define _LIBCUDACXX_CUDA_API_VERSION_PATCH \ + (_LIBCUDACXX_CUDA_API_VERSION % 1000) + +#ifndef _LIBCUDACXX_CUDA_ABI_VERSION_LATEST +# define _LIBCUDACXX_CUDA_ABI_VERSION_LATEST 4 +#endif + +#ifdef _LIBCUDACXX_CUDA_ABI_VERSION +# if _LIBCUDACXX_CUDA_ABI_VERSION != 2 && _LIBCUDACXX_CUDA_ABI_VERSION != 3 && _LIBCUDACXX_CUDA_ABI_VERSION != 4 +# error Unsupported libcu++ ABI version requested. Please define _LIBCUDACXX_CUDA_ABI_VERSION to either 2 or 3. +# endif +#else +# define _LIBCUDACXX_CUDA_ABI_VERSION _LIBCUDACXX_CUDA_ABI_VERSION_LATEST +#endif + +#ifdef _LIBCUDACXX_PIPELINE_ASSUMED_ABI_VERSION +# if _LIBCUDACXX_PIPELINE_ASSUMED_ABI_VERSION != _LIBCUDACXX_CUDA_ABI_VERSION +# error cuda_pipeline.h has assumed a different libcu++ ABI version than provided by this library. To fix this, please include a libcu++ header before including cuda_pipeline.h, or upgrade to a version of the toolkit this version of libcu++ shipped in. +# endif +#endif + +#ifndef _LIBCUDACXX_CUDA_ABI_NAMESPACE +# define _LIBCUDACXX_CUDA_ABI_NAMESPACE _LIBCUDACXX_CONCAT(__,_LIBCUDACXX_CUDA_ABI_VERSION) +#endif + +#ifndef _LIBCUDACXX_BEGIN_NAMESPACE_CUDA +# define _LIBCUDACXX_BEGIN_NAMESPACE_CUDA \ + namespace cuda { inline namespace _LIBCUDACXX_CUDA_ABI_NAMESPACE { +#endif +#ifndef _LIBCUDACXX_END_NAMESPACE_CUDA +# define _LIBCUDACXX_END_NAMESPACE_CUDA } } +#endif + +#ifndef _LIBCUDACXX_BEGIN_NAMESPACE_CUDA_DEVICE +# define _LIBCUDACXX_BEGIN_NAMESPACE_CUDA_DEVICE \ + namespace cuda { namespace device { inline namespace _LIBCUDACXX_CUDA_ABI_NAMESPACE { +#endif +#ifndef _LIBCUDACXX_END_NAMESPACE_CUDA_DEVICE +# define _LIBCUDACXX_END_NAMESPACE_CUDA_DEVICE } } } +#endif + +// redefine namespace std:: +#undef _LIBCUDACXX_BEGIN_NAMESPACE_STD +#define _LIBCUDACXX_BEGIN_NAMESPACE_STD \ + namespace cuda { namespace std { inline namespace _LIBCUDACXX_CUDA_ABI_NAMESPACE { + +#undef _LIBCUDACXX_END_NAMESPACE_STD +#define _LIBCUDACXX_END_NAMESPACE_STD } } } + +#undef _CUDA_VSTD +#define _CUDA_VSTD cuda::std::_LIBCUDACXX_CUDA_ABI_NAMESPACE + +#undef _LIBCUDACXX_BEGIN_NAMESPACE_STD_NOVERSION +#define _LIBCUDACXX_BEGIN_NAMESPACE_STD_NOVERSION namespace cuda { namespace std { +#undef _LIBCUDACXX_END_NAMESPACE_STD_NOVERSION +#define _LIBCUDACXX_END_NAMESPACE_STD_NOVERSION } } + +#endif //__cuda_std__ diff --git a/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/__functional_base b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/__functional_base new file mode 100644 index 0000000000000000000000000000000000000000..731645d0066be842fae0467c244fcdb3b0888656 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/__functional_base @@ -0,0 +1,25 @@ +//===----------------------------------------------------------------------===// +// +// Part of libcu++, the C++ Standard Library for your entire system, +// under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef _CUDA___FUNCTIONAL_BASE +#define _CUDA___FUNCTIONAL_BASE + +#ifndef __CUDACC_RTC__ + #include +#endif + +#include "../chrono" +#include "../climits" + +#include "__config" + +#include "libcxx/include/__functional_base" + +#endif //_CUDA___FUNCTIONAL_BASE + diff --git a/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/__pragma_pop b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/__pragma_pop new file mode 100644 index 0000000000000000000000000000000000000000..a40f5f2bae21da578f15547e33bf4e6354f5a9f8 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/__pragma_pop @@ -0,0 +1,11 @@ +//===----------------------------------------------------------------------===// +// +// Part of libcu++, the C++ Standard Library for your entire system, +// under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#include "libcxx/include/__pragma_pop" + diff --git a/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/__pragma_push b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/__pragma_push new file mode 100644 index 0000000000000000000000000000000000000000..e2aae6e48ccbdef0258ce10d8430e6dedbc34629 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/__pragma_push @@ -0,0 +1,12 @@ +//===----------------------------------------------------------------------===// +// +// Part of libcu++, the C++ Standard Library for your entire system, +// under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#include "libcxx/include/__pragma_push" +#include "libcxx/include/__undef_macros" + diff --git a/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/__threading_support b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/__threading_support new file mode 100644 index 0000000000000000000000000000000000000000..0216c5e8f3484d33470a17ee44bfaf1342affe85 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/__threading_support @@ -0,0 +1,26 @@ +//===----------------------------------------------------------------------===// +// +// Part of libcu++, the C++ Standard Library for your entire system, +// under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef _CUDA___THREADING_SUPPORT +#define _CUDA___THREADING_SUPPORT + +#ifndef __CUDACC_RTC__ + #include + #include +#endif + + +#include "../chrono" +#include "../climits" + +#include "__config" + +#include "libcxx/include/__threading_support" + +#endif //_CUDA___THREADING_SUPPORT diff --git a/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/CMakeLists.txt b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..d59bf2b1c1ede86361ddfce0e69b7e42a308d8ab --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/CMakeLists.txt @@ -0,0 +1,277 @@ +set(files + __bit_reference + __bsd_locale_defaults.h + __bsd_locale_fallbacks.h + __errc + __debug + __functional_03 + __functional_base + __functional_base_03 + __hash_table + __libcpp_version + __locale + __mutex_base + __node_handle + __nullptr + __split_buffer + __sso_allocator + __std_stream + __string + __threading_support + __tree + __tuple + __undef_macros + algorithm + any + array + atomic + barrier + bit + bitset + cassert + ccomplex + cctype + cerrno + cfenv + cfloat + charconv + chrono + cinttypes + ciso646 + climits + clocale + cmath + codecvt + compare + complex + complex.h + condition_variable + csetjmp + csignal + cstdarg + cstdbool + cstddef + cstdint + cstdio + cstdlib + cstring + ctgmath + ctime + ctype.h + cwchar + cwctype + deque + errno.h + exception + execution + experimental/__config + experimental/__memory + experimental/algorithm + experimental/coroutine + experimental/deque + experimental/filesystem + experimental/forward_list + experimental/functional + experimental/iterator + experimental/list + experimental/map + experimental/memory_resource + experimental/propagate_const + experimental/regex + experimental/set + experimental/simd + experimental/string + experimental/type_traits + experimental/unordered_map + experimental/unordered_set + experimental/utility + experimental/vector + ext/__hash + ext/hash_map + ext/hash_set + fenv.h + filesystem + float.h + forward_list + fstream + functional + future + initializer_list + inttypes.h + iomanip + ios + iosfwd + iostream + istream + iterator + latch + limits + limits.h + list + locale + locale.h + map + math.h + memory + module.modulemap + mutex + new + numeric + optional + ostream + queue + random + ratio + regex + scoped_allocator + semaphore + set + setjmp.h + shared_mutex + span + sstream + stack + stdbool.h + stddef.h + stdexcept + stdint.h + stdio.h + stdlib.h + streambuf + string + string.h + string_view + strstream + system_error + tgmath.h + thread + tuple + type_traits + typeindex + typeinfo + unordered_map + unordered_set + utility + valarray + variant + vector + version + wchar.h + wctype.h + ) + +if(LIBCXX_INSTALL_SUPPORT_HEADERS) + set(files + ${files} + support/android/locale_bionic.h + support/fuchsia/xlocale.h + support/ibm/limits.h + support/ibm/locale_mgmt_aix.h + support/ibm/support.h + support/ibm/xlocale.h + support/musl/xlocale.h + support/newlib/xlocale.h + support/solaris/floatingpoint.h + support/solaris/wchar.h + support/solaris/xlocale.h + support/win32/limits_msvc_win32.h + support/win32/locale_win32.h + support/xlocale/__nop_locale_mgmt.h + support/xlocale/__posix_l_fallback.h + support/xlocale/__strtonum_fallback.h + ) +endif() + +if (LIBCXX_NEEDS_SITE_CONFIG) + # Generate a custom __config header. The new header is created + # by prepending __config_site to the current __config header. + add_custom_command(OUTPUT ${LIBCXX_BINARY_DIR}/__generated_config + COMMAND ${PYTHON_EXECUTABLE} ${LIBCXX_SOURCE_DIR}/utils/cat_files.py + ${LIBCXX_BINARY_DIR}/__config_site + ${LIBCXX_SOURCE_DIR}/include/__config + -o ${LIBCXX_BINARY_DIR}/__generated_config + DEPENDS ${LIBCXX_SOURCE_DIR}/include/__config + ${LIBCXX_BINARY_DIR}/__config_site + ) + # Add a target that executes the generation commands. + add_custom_target(cxx-generated-config ALL + DEPENDS ${LIBCXX_BINARY_DIR}/__generated_config) + set(generated_config_deps cxx-generated-config) +else() + set(files + ${files} + __config + ) +endif() + +# In some build configuraitons (like boostrapping clang), we need to be able to +# install the libcxx headers before CMake configuraiton for libcxx runs. Making +# the name of this target configurable allows LLVM/runtimes/CMakeLists.txt to +# add this subdirectory to the LLVM build to put libcxx's headers in place +# before libcxx's build configuration is run. +if (NOT CXX_HEADER_TARGET) + set(CXX_HEADER_TARGET cxx-headers) +endif() +if(NOT LIBCXX_USING_INSTALLED_LLVM AND LIBCXX_HEADER_DIR) + set(output_dir ${LIBCXX_HEADER_DIR}/include/c++/v1) + + set(out_files) + foreach(f ${files}) + set(src ${CMAKE_CURRENT_SOURCE_DIR}/${f}) + set(dst ${output_dir}/${f}) + add_custom_command(OUTPUT ${dst} + DEPENDS ${src} + COMMAND ${CMAKE_COMMAND} -E copy_if_different ${src} ${dst} + COMMENT "Copying CXX header ${f}") + list(APPEND out_files ${dst}) + endforeach() + + if (LIBCXX_NEEDS_SITE_CONFIG) + # Copy the generated header as __config into build directory. + set(src ${LIBCXX_BINARY_DIR}/__generated_config) + set(dst ${output_dir}/__config) + add_custom_command(OUTPUT ${dst} + DEPENDS ${src} ${generated_config_deps} + COMMAND ${CMAKE_COMMAND} -E copy_if_different ${src} ${dst} + COMMENT "Copying CXX __config") + list(APPEND out_files ${dst}) + endif() + + add_custom_target(${CXX_HEADER_TARGET} ALL DEPENDS ${out_files} ${LIBCXX_CXX_ABI_HEADER_TARGET}) +else() + add_custom_target(${CXX_HEADER_TARGET}) +endif() +set_target_properties(${CXX_HEADER_TARGET} PROPERTIES FOLDER "Misc") + +if (LIBCXX_INSTALL_HEADERS) + foreach(file ${files}) + get_filename_component(dir ${file} DIRECTORY) + install(FILES ${file} + DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}include/c++/v1/${dir} + COMPONENT ${CXX_HEADER_TARGET} + PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ + ) + endforeach() + + if (LIBCXX_NEEDS_SITE_CONFIG) + # Install the generated header as __config. + install(FILES ${LIBCXX_BINARY_DIR}/__generated_config + DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}include/c++/v1 + PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ + RENAME __config + COMPONENT ${CXX_HEADER_TARGET}) + endif() + + if (NOT CMAKE_CONFIGURATION_TYPES) + add_custom_target(install-${CXX_HEADER_TARGET} + DEPENDS ${CXX_HEADER_TARGET} ${generated_config_deps} + COMMAND "${CMAKE_COMMAND}" + -DCMAKE_INSTALL_COMPONENT=${CXX_HEADER_TARGET} + -P "${CMAKE_BINARY_DIR}/cmake_install.cmake") + # Stripping is a no-op for headers + add_custom_target(install-${CXX_HEADER_TARGET}-stripped DEPENDS install-${CXX_HEADER_TARGET}) + + add_custom_target(install-libcxx-headers DEPENDS install-${CXX_HEADER_TARGET}) + add_custom_target(install-libcxx-headers-stripped DEPENDS install-${CXX_HEADER_TARGET}-stripped) + endif() +endif() diff --git a/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__bit_reference b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__bit_reference new file mode 100644 index 0000000000000000000000000000000000000000..851cbeacfc594544c282115bc5aac2afd77e08b7 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__bit_reference @@ -0,0 +1,1289 @@ +// -*- C++ -*- +//===----------------------------------------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef _LIBCUDACXX___BIT_REFERENCE +#define _LIBCUDACXX___BIT_REFERENCE + +#include <__config> +#include +#include + +#if defined(_LIBCUDACXX_USE_PRAGMA_GCC_SYSTEM_HEADER) +#pragma GCC system_header +#endif + +_LIBCUDACXX_PUSH_MACROS +#include <__undef_macros> + + +_LIBCUDACXX_BEGIN_NAMESPACE_STD + +template class __bit_iterator; +template class __bit_const_reference; + +template +struct __has_storage_type +{ + static const bool value = false; +}; + +template ::value> +class __bit_reference +{ + typedef typename _Cp::__storage_type __storage_type; + typedef typename _Cp::__storage_pointer __storage_pointer; + + __storage_pointer __seg_; + __storage_type __mask_; + + friend typename _Cp::__self; + + friend class __bit_const_reference<_Cp>; + friend class __bit_iterator<_Cp, false>; +public: + _LIBCUDACXX_INLINE_VISIBILITY + __bit_reference(const __bit_reference&) = default; + + _LIBCUDACXX_INLINE_VISIBILITY operator bool() const _NOEXCEPT + {return static_cast(*__seg_ & __mask_);} + _LIBCUDACXX_INLINE_VISIBILITY bool operator ~() const _NOEXCEPT + {return !static_cast(*this);} + + _LIBCUDACXX_INLINE_VISIBILITY + __bit_reference& operator=(bool __x) _NOEXCEPT + { + if (__x) + *__seg_ |= __mask_; + else + *__seg_ &= ~__mask_; + return *this; + } + + _LIBCUDACXX_INLINE_VISIBILITY + __bit_reference& operator=(const __bit_reference& __x) _NOEXCEPT + {return operator=(static_cast(__x));} + + _LIBCUDACXX_INLINE_VISIBILITY void flip() _NOEXCEPT {*__seg_ ^= __mask_;} + _LIBCUDACXX_INLINE_VISIBILITY __bit_iterator<_Cp, false> operator&() const _NOEXCEPT + {return __bit_iterator<_Cp, false>(__seg_, static_cast(__libcpp_ctz(__mask_)));} +private: + _LIBCUDACXX_INLINE_VISIBILITY + __bit_reference(__storage_pointer __s, __storage_type __m) _NOEXCEPT + : __seg_(__s), __mask_(__m) {} +}; + +template +class __bit_reference<_Cp, false> +{ +}; + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +void +swap(__bit_reference<_Cp> __x, __bit_reference<_Cp> __y) _NOEXCEPT +{ + bool __t = __x; + __x = __y; + __y = __t; +} + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +void +swap(__bit_reference<_Cp> __x, __bit_reference<_Dp> __y) _NOEXCEPT +{ + bool __t = __x; + __x = __y; + __y = __t; +} + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +void +swap(__bit_reference<_Cp> __x, bool& __y) _NOEXCEPT +{ + bool __t = __x; + __x = __y; + __y = __t; +} + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +void +swap(bool& __x, __bit_reference<_Cp> __y) _NOEXCEPT +{ + bool __t = __x; + __x = __y; + __y = __t; +} + +template +class __bit_const_reference +{ + typedef typename _Cp::__storage_type __storage_type; + typedef typename _Cp::__const_storage_pointer __storage_pointer; + + __storage_pointer __seg_; + __storage_type __mask_; + + friend typename _Cp::__self; + friend class __bit_iterator<_Cp, true>; +public: + _LIBCUDACXX_INLINE_VISIBILITY + __bit_const_reference(const __bit_const_reference&) = default; + + _LIBCUDACXX_INLINE_VISIBILITY + __bit_const_reference(const __bit_reference<_Cp>& __x) _NOEXCEPT + : __seg_(__x.__seg_), __mask_(__x.__mask_) {} + + _LIBCUDACXX_INLINE_VISIBILITY _LIBCUDACXX_CONSTEXPR operator bool() const _NOEXCEPT + {return static_cast(*__seg_ & __mask_);} + + _LIBCUDACXX_INLINE_VISIBILITY __bit_iterator<_Cp, true> operator&() const _NOEXCEPT + {return __bit_iterator<_Cp, true>(__seg_, static_cast(__libcpp_ctz(__mask_)));} +private: + _LIBCUDACXX_INLINE_VISIBILITY + _LIBCUDACXX_CONSTEXPR + __bit_const_reference(__storage_pointer __s, __storage_type __m) _NOEXCEPT + : __seg_(__s), __mask_(__m) {} + + __bit_const_reference& operator=(const __bit_const_reference&) = delete; +}; + +// find + +template +__bit_iterator<_Cp, _IsConst> +__find_bool_true(__bit_iterator<_Cp, _IsConst> __first, typename _Cp::size_type __n) +{ + typedef __bit_iterator<_Cp, _IsConst> _It; + typedef typename _It::__storage_type __storage_type; + static const int __bits_per_word = _It::__bits_per_word; + // do first partial word + if (__first.__ctz_ != 0) + { + __storage_type __clz_f = static_cast<__storage_type>(__bits_per_word - __first.__ctz_); + __storage_type __dn = _CUDA_VSTD::min(__clz_f, __n); + __storage_type __m = (~__storage_type(0) << __first.__ctz_) & (~__storage_type(0) >> (__clz_f - __dn)); + __storage_type __b = *__first.__seg_ & __m; + if (__b) + return _It(__first.__seg_, static_cast(_CUDA_VSTD::__libcpp_ctz(__b))); + if (__n == __dn) + return __first + __n; + __n -= __dn; + ++__first.__seg_; + } + // do middle whole words + for (; __n >= __bits_per_word; ++__first.__seg_, __n -= __bits_per_word) + if (*__first.__seg_) + return _It(__first.__seg_, static_cast(_CUDA_VSTD::__libcpp_ctz(*__first.__seg_))); + // do last partial word + if (__n > 0) + { + __storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n); + __storage_type __b = *__first.__seg_ & __m; + if (__b) + return _It(__first.__seg_, static_cast(_CUDA_VSTD::__libcpp_ctz(__b))); + } + return _It(__first.__seg_, static_cast(__n)); +} + +template +__bit_iterator<_Cp, _IsConst> +__find_bool_false(__bit_iterator<_Cp, _IsConst> __first, typename _Cp::size_type __n) +{ + typedef __bit_iterator<_Cp, _IsConst> _It; + typedef typename _It::__storage_type __storage_type; + const int __bits_per_word = _It::__bits_per_word; + // do first partial word + if (__first.__ctz_ != 0) + { + __storage_type __clz_f = static_cast<__storage_type>(__bits_per_word - __first.__ctz_); + __storage_type __dn = _CUDA_VSTD::min(__clz_f, __n); + __storage_type __m = (~__storage_type(0) << __first.__ctz_) & (~__storage_type(0) >> (__clz_f - __dn)); + __storage_type __b = ~*__first.__seg_ & __m; + if (__b) + return _It(__first.__seg_, static_cast(_CUDA_VSTD::__libcpp_ctz(__b))); + if (__n == __dn) + return __first + __n; + __n -= __dn; + ++__first.__seg_; + } + // do middle whole words + for (; __n >= __bits_per_word; ++__first.__seg_, __n -= __bits_per_word) + { + __storage_type __b = ~*__first.__seg_; + if (__b) + return _It(__first.__seg_, static_cast(_CUDA_VSTD::__libcpp_ctz(__b))); + } + // do last partial word + if (__n > 0) + { + __storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n); + __storage_type __b = ~*__first.__seg_ & __m; + if (__b) + return _It(__first.__seg_, static_cast(_CUDA_VSTD::__libcpp_ctz(__b))); + } + return _It(__first.__seg_, static_cast(__n)); +} + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +__bit_iterator<_Cp, _IsConst> +find(__bit_iterator<_Cp, _IsConst> __first, __bit_iterator<_Cp, _IsConst> __last, const _Tp& __value_) +{ + if (static_cast(__value_)) + return __find_bool_true(__first, static_cast(__last - __first)); + return __find_bool_false(__first, static_cast(__last - __first)); +} + +// count + +template +typename __bit_iterator<_Cp, _IsConst>::difference_type +__count_bool_true(__bit_iterator<_Cp, _IsConst> __first, typename _Cp::size_type __n) +{ + typedef __bit_iterator<_Cp, _IsConst> _It; + typedef typename _It::__storage_type __storage_type; + typedef typename _It::difference_type difference_type; + const int __bits_per_word = _It::__bits_per_word; + difference_type __r = 0; + // do first partial word + if (__first.__ctz_ != 0) + { + __storage_type __clz_f = static_cast<__storage_type>(__bits_per_word - __first.__ctz_); + __storage_type __dn = _CUDA_VSTD::min(__clz_f, __n); + __storage_type __m = (~__storage_type(0) << __first.__ctz_) & (~__storage_type(0) >> (__clz_f - __dn)); + __r = _CUDA_VSTD::__libcpp_popcount(*__first.__seg_ & __m); + __n -= __dn; + ++__first.__seg_; + } + // do middle whole words + for (; __n >= __bits_per_word; ++__first.__seg_, __n -= __bits_per_word) + __r += _CUDA_VSTD::__libcpp_popcount(*__first.__seg_); + // do last partial word + if (__n > 0) + { + __storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n); + __r += _CUDA_VSTD::__libcpp_popcount(*__first.__seg_ & __m); + } + return __r; +} + +template +typename __bit_iterator<_Cp, _IsConst>::difference_type +__count_bool_false(__bit_iterator<_Cp, _IsConst> __first, typename _Cp::size_type __n) +{ + typedef __bit_iterator<_Cp, _IsConst> _It; + typedef typename _It::__storage_type __storage_type; + typedef typename _It::difference_type difference_type; + const int __bits_per_word = _It::__bits_per_word; + difference_type __r = 0; + // do first partial word + if (__first.__ctz_ != 0) + { + __storage_type __clz_f = static_cast<__storage_type>(__bits_per_word - __first.__ctz_); + __storage_type __dn = _CUDA_VSTD::min(__clz_f, __n); + __storage_type __m = (~__storage_type(0) << __first.__ctz_) & (~__storage_type(0) >> (__clz_f - __dn)); + __r = _CUDA_VSTD::__libcpp_popcount(~*__first.__seg_ & __m); + __n -= __dn; + ++__first.__seg_; + } + // do middle whole words + for (; __n >= __bits_per_word; ++__first.__seg_, __n -= __bits_per_word) + __r += _CUDA_VSTD::__libcpp_popcount(~*__first.__seg_); + // do last partial word + if (__n > 0) + { + __storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n); + __r += _CUDA_VSTD::__libcpp_popcount(~*__first.__seg_ & __m); + } + return __r; +} + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +typename __bit_iterator<_Cp, _IsConst>::difference_type +count(__bit_iterator<_Cp, _IsConst> __first, __bit_iterator<_Cp, _IsConst> __last, const _Tp& __value_) +{ + if (static_cast(__value_)) + return __count_bool_true(__first, static_cast(__last - __first)); + return __count_bool_false(__first, static_cast(__last - __first)); +} + +// fill_n + +template +void +__fill_n_false(__bit_iterator<_Cp, false> __first, typename _Cp::size_type __n) +{ + typedef __bit_iterator<_Cp, false> _It; + typedef typename _It::__storage_type __storage_type; + const int __bits_per_word = _It::__bits_per_word; + // do first partial word + if (__first.__ctz_ != 0) + { + __storage_type __clz_f = static_cast<__storage_type>(__bits_per_word - __first.__ctz_); + __storage_type __dn = _CUDA_VSTD::min(__clz_f, __n); + __storage_type __m = (~__storage_type(0) << __first.__ctz_) & (~__storage_type(0) >> (__clz_f - __dn)); + *__first.__seg_ &= ~__m; + __n -= __dn; + ++__first.__seg_; + } + // do middle whole words + __storage_type __nw = __n / __bits_per_word; + _CUDA_VSTD::memset(_CUDA_VSTD::__to_raw_pointer(__first.__seg_), 0, __nw * sizeof(__storage_type)); + __n -= __nw * __bits_per_word; + // do last partial word + if (__n > 0) + { + __first.__seg_ += __nw; + __storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n); + *__first.__seg_ &= ~__m; + } +} + +template +void +__fill_n_true(__bit_iterator<_Cp, false> __first, typename _Cp::size_type __n) +{ + typedef __bit_iterator<_Cp, false> _It; + typedef typename _It::__storage_type __storage_type; + const int __bits_per_word = _It::__bits_per_word; + // do first partial word + if (__first.__ctz_ != 0) + { + __storage_type __clz_f = static_cast<__storage_type>(__bits_per_word - __first.__ctz_); + __storage_type __dn = _CUDA_VSTD::min(__clz_f, __n); + __storage_type __m = (~__storage_type(0) << __first.__ctz_) & (~__storage_type(0) >> (__clz_f - __dn)); + *__first.__seg_ |= __m; + __n -= __dn; + ++__first.__seg_; + } + // do middle whole words + __storage_type __nw = __n / __bits_per_word; + _CUDA_VSTD::memset(_CUDA_VSTD::__to_raw_pointer(__first.__seg_), -1, __nw * sizeof(__storage_type)); + __n -= __nw * __bits_per_word; + // do last partial word + if (__n > 0) + { + __first.__seg_ += __nw; + __storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n); + *__first.__seg_ |= __m; + } +} + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +void +fill_n(__bit_iterator<_Cp, false> __first, typename _Cp::size_type __n, bool __value_) +{ + if (__n > 0) + { + if (__value_) + __fill_n_true(__first, __n); + else + __fill_n_false(__first, __n); + } +} + +// fill + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +void +fill(__bit_iterator<_Cp, false> __first, __bit_iterator<_Cp, false> __last, bool __value_) +{ + _CUDA_VSTD::fill_n(__first, static_cast(__last - __first), __value_); +} + +// copy + +template +__bit_iterator<_Cp, false> +__copy_aligned(__bit_iterator<_Cp, _IsConst> __first, __bit_iterator<_Cp, _IsConst> __last, + __bit_iterator<_Cp, false> __result) +{ + typedef __bit_iterator<_Cp, _IsConst> _In; + typedef typename _In::difference_type difference_type; + typedef typename _In::__storage_type __storage_type; + const int __bits_per_word = _In::__bits_per_word; + difference_type __n = __last - __first; + if (__n > 0) + { + // do first word + if (__first.__ctz_ != 0) + { + unsigned __clz = __bits_per_word - __first.__ctz_; + difference_type __dn = _CUDA_VSTD::min(static_cast(__clz), __n); + __n -= __dn; + __storage_type __m = (~__storage_type(0) << __first.__ctz_) & (~__storage_type(0) >> (__clz - __dn)); + __storage_type __b = *__first.__seg_ & __m; + *__result.__seg_ &= ~__m; + *__result.__seg_ |= __b; + __result.__seg_ += (__dn + __result.__ctz_) / __bits_per_word; + __result.__ctz_ = static_cast((__dn + __result.__ctz_) % __bits_per_word); + ++__first.__seg_; + // __first.__ctz_ = 0; + } + // __first.__ctz_ == 0; + // do middle words + __storage_type __nw = __n / __bits_per_word; + _CUDA_VSTD::memmove(_CUDA_VSTD::__to_raw_pointer(__result.__seg_), + _CUDA_VSTD::__to_raw_pointer(__first.__seg_), + __nw * sizeof(__storage_type)); + __n -= __nw * __bits_per_word; + __result.__seg_ += __nw; + // do last word + if (__n > 0) + { + __first.__seg_ += __nw; + __storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n); + __storage_type __b = *__first.__seg_ & __m; + *__result.__seg_ &= ~__m; + *__result.__seg_ |= __b; + __result.__ctz_ = static_cast(__n); + } + } + return __result; +} + +template +__bit_iterator<_Cp, false> +__copy_unaligned(__bit_iterator<_Cp, _IsConst> __first, __bit_iterator<_Cp, _IsConst> __last, + __bit_iterator<_Cp, false> __result) +{ + typedef __bit_iterator<_Cp, _IsConst> _In; + typedef typename _In::difference_type difference_type; + typedef typename _In::__storage_type __storage_type; + static const int __bits_per_word = _In::__bits_per_word; + difference_type __n = __last - __first; + if (__n > 0) + { + // do first word + if (__first.__ctz_ != 0) + { + unsigned __clz_f = __bits_per_word - __first.__ctz_; + difference_type __dn = _CUDA_VSTD::min(static_cast(__clz_f), __n); + __n -= __dn; + __storage_type __m = (~__storage_type(0) << __first.__ctz_) & (~__storage_type(0) >> (__clz_f - __dn)); + __storage_type __b = *__first.__seg_ & __m; + unsigned __clz_r = __bits_per_word - __result.__ctz_; + __storage_type __ddn = _CUDA_VSTD::min<__storage_type>(__dn, __clz_r); + __m = (~__storage_type(0) << __result.__ctz_) & (~__storage_type(0) >> (__clz_r - __ddn)); + *__result.__seg_ &= ~__m; + if (__result.__ctz_ > __first.__ctz_) + *__result.__seg_ |= __b << (__result.__ctz_ - __first.__ctz_); + else + *__result.__seg_ |= __b >> (__first.__ctz_ - __result.__ctz_); + __result.__seg_ += (__ddn + __result.__ctz_) / __bits_per_word; + __result.__ctz_ = static_cast((__ddn + __result.__ctz_) % __bits_per_word); + __dn -= __ddn; + if (__dn > 0) + { + __m = ~__storage_type(0) >> (__bits_per_word - __dn); + *__result.__seg_ &= ~__m; + *__result.__seg_ |= __b >> (__first.__ctz_ + __ddn); + __result.__ctz_ = static_cast(__dn); + } + ++__first.__seg_; + // __first.__ctz_ = 0; + } + // __first.__ctz_ == 0; + // do middle words + unsigned __clz_r = __bits_per_word - __result.__ctz_; + __storage_type __m = ~__storage_type(0) << __result.__ctz_; + for (; __n >= __bits_per_word; __n -= __bits_per_word, ++__first.__seg_) + { + __storage_type __b = *__first.__seg_; + *__result.__seg_ &= ~__m; + *__result.__seg_ |= __b << __result.__ctz_; + ++__result.__seg_; + *__result.__seg_ &= __m; + *__result.__seg_ |= __b >> __clz_r; + } + // do last word + if (__n > 0) + { + __m = ~__storage_type(0) >> (__bits_per_word - __n); + __storage_type __b = *__first.__seg_ & __m; + __storage_type __dn = _CUDA_VSTD::min(__n, static_cast(__clz_r)); + __m = (~__storage_type(0) << __result.__ctz_) & (~__storage_type(0) >> (__clz_r - __dn)); + *__result.__seg_ &= ~__m; + *__result.__seg_ |= __b << __result.__ctz_; + __result.__seg_ += (__dn + __result.__ctz_) / __bits_per_word; + __result.__ctz_ = static_cast((__dn + __result.__ctz_) % __bits_per_word); + __n -= __dn; + if (__n > 0) + { + __m = ~__storage_type(0) >> (__bits_per_word - __n); + *__result.__seg_ &= ~__m; + *__result.__seg_ |= __b >> __dn; + __result.__ctz_ = static_cast(__n); + } + } + } + return __result; +} + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +__bit_iterator<_Cp, false> +copy(__bit_iterator<_Cp, _IsConst> __first, __bit_iterator<_Cp, _IsConst> __last, __bit_iterator<_Cp, false> __result) +{ + if (__first.__ctz_ == __result.__ctz_) + return __copy_aligned(__first, __last, __result); + return __copy_unaligned(__first, __last, __result); +} + +// copy_backward + +template +__bit_iterator<_Cp, false> +__copy_backward_aligned(__bit_iterator<_Cp, _IsConst> __first, __bit_iterator<_Cp, _IsConst> __last, + __bit_iterator<_Cp, false> __result) +{ + typedef __bit_iterator<_Cp, _IsConst> _In; + typedef typename _In::difference_type difference_type; + typedef typename _In::__storage_type __storage_type; + const int __bits_per_word = _In::__bits_per_word; + difference_type __n = __last - __first; + if (__n > 0) + { + // do first word + if (__last.__ctz_ != 0) + { + difference_type __dn = _CUDA_VSTD::min(static_cast(__last.__ctz_), __n); + __n -= __dn; + unsigned __clz = __bits_per_word - __last.__ctz_; + __storage_type __m = (~__storage_type(0) << (__last.__ctz_ - __dn)) & (~__storage_type(0) >> __clz); + __storage_type __b = *__last.__seg_ & __m; + *__result.__seg_ &= ~__m; + *__result.__seg_ |= __b; + __result.__ctz_ = static_cast(((-__dn & (__bits_per_word - 1)) + + __result.__ctz_) % __bits_per_word); + // __last.__ctz_ = 0 + } + // __last.__ctz_ == 0 || __n == 0 + // __result.__ctz_ == 0 || __n == 0 + // do middle words + __storage_type __nw = __n / __bits_per_word; + __result.__seg_ -= __nw; + __last.__seg_ -= __nw; + _CUDA_VSTD::memmove(_CUDA_VSTD::__to_raw_pointer(__result.__seg_), + _CUDA_VSTD::__to_raw_pointer(__last.__seg_), + __nw * sizeof(__storage_type)); + __n -= __nw * __bits_per_word; + // do last word + if (__n > 0) + { + __storage_type __m = ~__storage_type(0) << (__bits_per_word - __n); + __storage_type __b = *--__last.__seg_ & __m; + *--__result.__seg_ &= ~__m; + *__result.__seg_ |= __b; + __result.__ctz_ = static_cast(-__n & (__bits_per_word - 1)); + } + } + return __result; +} + +template +__bit_iterator<_Cp, false> +__copy_backward_unaligned(__bit_iterator<_Cp, _IsConst> __first, __bit_iterator<_Cp, _IsConst> __last, + __bit_iterator<_Cp, false> __result) +{ + typedef __bit_iterator<_Cp, _IsConst> _In; + typedef typename _In::difference_type difference_type; + typedef typename _In::__storage_type __storage_type; + const int __bits_per_word = _In::__bits_per_word; + difference_type __n = __last - __first; + if (__n > 0) + { + // do first word + if (__last.__ctz_ != 0) + { + difference_type __dn = _CUDA_VSTD::min(static_cast(__last.__ctz_), __n); + __n -= __dn; + unsigned __clz_l = __bits_per_word - __last.__ctz_; + __storage_type __m = (~__storage_type(0) << (__last.__ctz_ - __dn)) & (~__storage_type(0) >> __clz_l); + __storage_type __b = *__last.__seg_ & __m; + unsigned __clz_r = __bits_per_word - __result.__ctz_; + __storage_type __ddn = _CUDA_VSTD::min(__dn, static_cast(__result.__ctz_)); + if (__ddn > 0) + { + __m = (~__storage_type(0) << (__result.__ctz_ - __ddn)) & (~__storage_type(0) >> __clz_r); + *__result.__seg_ &= ~__m; + if (__result.__ctz_ > __last.__ctz_) + *__result.__seg_ |= __b << (__result.__ctz_ - __last.__ctz_); + else + *__result.__seg_ |= __b >> (__last.__ctz_ - __result.__ctz_); + __result.__ctz_ = static_cast(((-__ddn & (__bits_per_word - 1)) + + __result.__ctz_) % __bits_per_word); + __dn -= __ddn; + } + if (__dn > 0) + { + // __result.__ctz_ == 0 + --__result.__seg_; + __result.__ctz_ = static_cast(-__dn & (__bits_per_word - 1)); + __m = ~__storage_type(0) << __result.__ctz_; + *__result.__seg_ &= ~__m; + __last.__ctz_ -= __dn + __ddn; + *__result.__seg_ |= __b << (__result.__ctz_ - __last.__ctz_); + } + // __last.__ctz_ = 0 + } + // __last.__ctz_ == 0 || __n == 0 + // __result.__ctz_ != 0 || __n == 0 + // do middle words + unsigned __clz_r = __bits_per_word - __result.__ctz_; + __storage_type __m = ~__storage_type(0) >> __clz_r; + for (; __n >= __bits_per_word; __n -= __bits_per_word) + { + __storage_type __b = *--__last.__seg_; + *__result.__seg_ &= ~__m; + *__result.__seg_ |= __b >> __clz_r; + *--__result.__seg_ &= __m; + *__result.__seg_ |= __b << __result.__ctz_; + } + // do last word + if (__n > 0) + { + __m = ~__storage_type(0) << (__bits_per_word - __n); + __storage_type __b = *--__last.__seg_ & __m; + __clz_r = __bits_per_word - __result.__ctz_; + __storage_type __dn = _CUDA_VSTD::min(__n, static_cast(__result.__ctz_)); + __m = (~__storage_type(0) << (__result.__ctz_ - __dn)) & (~__storage_type(0) >> __clz_r); + *__result.__seg_ &= ~__m; + *__result.__seg_ |= __b >> (__bits_per_word - __result.__ctz_); + __result.__ctz_ = static_cast(((-__dn & (__bits_per_word - 1)) + + __result.__ctz_) % __bits_per_word); + __n -= __dn; + if (__n > 0) + { + // __result.__ctz_ == 0 + --__result.__seg_; + __result.__ctz_ = static_cast(-__n & (__bits_per_word - 1)); + __m = ~__storage_type(0) << __result.__ctz_; + *__result.__seg_ &= ~__m; + *__result.__seg_ |= __b << (__result.__ctz_ - (__bits_per_word - __n - __dn)); + } + } + } + return __result; +} + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +__bit_iterator<_Cp, false> +copy_backward(__bit_iterator<_Cp, _IsConst> __first, __bit_iterator<_Cp, _IsConst> __last, __bit_iterator<_Cp, false> __result) +{ + if (__last.__ctz_ == __result.__ctz_) + return __copy_backward_aligned(__first, __last, __result); + return __copy_backward_unaligned(__first, __last, __result); +} + +// move + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +__bit_iterator<_Cp, false> +move(__bit_iterator<_Cp, _IsConst> __first, __bit_iterator<_Cp, _IsConst> __last, __bit_iterator<_Cp, false> __result) +{ + return _CUDA_VSTD::copy(__first, __last, __result); +} + +// move_backward + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +__bit_iterator<_Cp, false> +move_backward(__bit_iterator<_Cp, _IsConst> __first, __bit_iterator<_Cp, _IsConst> __last, __bit_iterator<_Cp, false> __result) +{ + return _CUDA_VSTD::copy_backward(__first, __last, __result); +} + +// swap_ranges + +template +__bit_iterator<__C2, false> +__swap_ranges_aligned(__bit_iterator<__C1, false> __first, __bit_iterator<__C1, false> __last, + __bit_iterator<__C2, false> __result) +{ + typedef __bit_iterator<__C1, false> _I1; + typedef typename _I1::difference_type difference_type; + typedef typename _I1::__storage_type __storage_type; + const int __bits_per_word = _I1::__bits_per_word; + difference_type __n = __last - __first; + if (__n > 0) + { + // do first word + if (__first.__ctz_ != 0) + { + unsigned __clz = __bits_per_word - __first.__ctz_; + difference_type __dn = _CUDA_VSTD::min(static_cast(__clz), __n); + __n -= __dn; + __storage_type __m = (~__storage_type(0) << __first.__ctz_) & (~__storage_type(0) >> (__clz - __dn)); + __storage_type __b1 = *__first.__seg_ & __m; + *__first.__seg_ &= ~__m; + __storage_type __b2 = *__result.__seg_ & __m; + *__result.__seg_ &= ~__m; + *__result.__seg_ |= __b1; + *__first.__seg_ |= __b2; + __result.__seg_ += (__dn + __result.__ctz_) / __bits_per_word; + __result.__ctz_ = static_cast((__dn + __result.__ctz_) % __bits_per_word); + ++__first.__seg_; + // __first.__ctz_ = 0; + } + // __first.__ctz_ == 0; + // do middle words + for (; __n >= __bits_per_word; __n -= __bits_per_word, ++__first.__seg_, ++__result.__seg_) + swap(*__first.__seg_, *__result.__seg_); + // do last word + if (__n > 0) + { + __storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n); + __storage_type __b1 = *__first.__seg_ & __m; + *__first.__seg_ &= ~__m; + __storage_type __b2 = *__result.__seg_ & __m; + *__result.__seg_ &= ~__m; + *__result.__seg_ |= __b1; + *__first.__seg_ |= __b2; + __result.__ctz_ = static_cast(__n); + } + } + return __result; +} + +template +__bit_iterator<__C2, false> +__swap_ranges_unaligned(__bit_iterator<__C1, false> __first, __bit_iterator<__C1, false> __last, + __bit_iterator<__C2, false> __result) +{ + typedef __bit_iterator<__C1, false> _I1; + typedef typename _I1::difference_type difference_type; + typedef typename _I1::__storage_type __storage_type; + const int __bits_per_word = _I1::__bits_per_word; + difference_type __n = __last - __first; + if (__n > 0) + { + // do first word + if (__first.__ctz_ != 0) + { + unsigned __clz_f = __bits_per_word - __first.__ctz_; + difference_type __dn = _CUDA_VSTD::min(static_cast(__clz_f), __n); + __n -= __dn; + __storage_type __m = (~__storage_type(0) << __first.__ctz_) & (~__storage_type(0) >> (__clz_f - __dn)); + __storage_type __b1 = *__first.__seg_ & __m; + *__first.__seg_ &= ~__m; + unsigned __clz_r = __bits_per_word - __result.__ctz_; + __storage_type __ddn = _CUDA_VSTD::min<__storage_type>(__dn, __clz_r); + __m = (~__storage_type(0) << __result.__ctz_) & (~__storage_type(0) >> (__clz_r - __ddn)); + __storage_type __b2 = *__result.__seg_ & __m; + *__result.__seg_ &= ~__m; + if (__result.__ctz_ > __first.__ctz_) + { + unsigned __s = __result.__ctz_ - __first.__ctz_; + *__result.__seg_ |= __b1 << __s; + *__first.__seg_ |= __b2 >> __s; + } + else + { + unsigned __s = __first.__ctz_ - __result.__ctz_; + *__result.__seg_ |= __b1 >> __s; + *__first.__seg_ |= __b2 << __s; + } + __result.__seg_ += (__ddn + __result.__ctz_) / __bits_per_word; + __result.__ctz_ = static_cast((__ddn + __result.__ctz_) % __bits_per_word); + __dn -= __ddn; + if (__dn > 0) + { + __m = ~__storage_type(0) >> (__bits_per_word - __dn); + __b2 = *__result.__seg_ & __m; + *__result.__seg_ &= ~__m; + unsigned __s = __first.__ctz_ + __ddn; + *__result.__seg_ |= __b1 >> __s; + *__first.__seg_ |= __b2 << __s; + __result.__ctz_ = static_cast(__dn); + } + ++__first.__seg_; + // __first.__ctz_ = 0; + } + // __first.__ctz_ == 0; + // do middle words + __storage_type __m = ~__storage_type(0) << __result.__ctz_; + unsigned __clz_r = __bits_per_word - __result.__ctz_; + for (; __n >= __bits_per_word; __n -= __bits_per_word, ++__first.__seg_) + { + __storage_type __b1 = *__first.__seg_; + __storage_type __b2 = *__result.__seg_ & __m; + *__result.__seg_ &= ~__m; + *__result.__seg_ |= __b1 << __result.__ctz_; + *__first.__seg_ = __b2 >> __result.__ctz_; + ++__result.__seg_; + __b2 = *__result.__seg_ & ~__m; + *__result.__seg_ &= __m; + *__result.__seg_ |= __b1 >> __clz_r; + *__first.__seg_ |= __b2 << __clz_r; + } + // do last word + if (__n > 0) + { + __m = ~__storage_type(0) >> (__bits_per_word - __n); + __storage_type __b1 = *__first.__seg_ & __m; + *__first.__seg_ &= ~__m; + __storage_type __dn = _CUDA_VSTD::min<__storage_type>(__n, __clz_r); + __m = (~__storage_type(0) << __result.__ctz_) & (~__storage_type(0) >> (__clz_r - __dn)); + __storage_type __b2 = *__result.__seg_ & __m; + *__result.__seg_ &= ~__m; + *__result.__seg_ |= __b1 << __result.__ctz_; + *__first.__seg_ |= __b2 >> __result.__ctz_; + __result.__seg_ += (__dn + __result.__ctz_) / __bits_per_word; + __result.__ctz_ = static_cast((__dn + __result.__ctz_) % __bits_per_word); + __n -= __dn; + if (__n > 0) + { + __m = ~__storage_type(0) >> (__bits_per_word - __n); + __b2 = *__result.__seg_ & __m; + *__result.__seg_ &= ~__m; + *__result.__seg_ |= __b1 >> __dn; + *__first.__seg_ |= __b2 << __dn; + __result.__ctz_ = static_cast(__n); + } + } + } + return __result; +} + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +__bit_iterator<__C2, false> +swap_ranges(__bit_iterator<__C1, false> __first1, __bit_iterator<__C1, false> __last1, + __bit_iterator<__C2, false> __first2) +{ + if (__first1.__ctz_ == __first2.__ctz_) + return __swap_ranges_aligned(__first1, __last1, __first2); + return __swap_ranges_unaligned(__first1, __last1, __first2); +} + +// rotate + +template +struct __bit_array +{ + typedef typename _Cp::difference_type difference_type; + typedef typename _Cp::__storage_type __storage_type; + typedef typename _Cp::__storage_pointer __storage_pointer; + typedef typename _Cp::iterator iterator; + static const unsigned __bits_per_word = _Cp::__bits_per_word; + static const unsigned _Np = 4; + + difference_type __size_; + __storage_type __word_[_Np]; + + _LIBCUDACXX_INLINE_VISIBILITY static difference_type capacity() + {return static_cast(_Np * __bits_per_word);} + _LIBCUDACXX_INLINE_VISIBILITY explicit __bit_array(difference_type __s) : __size_(__s) {} + _LIBCUDACXX_INLINE_VISIBILITY iterator begin() + { + return iterator(pointer_traits<__storage_pointer>::pointer_to(__word_[0]), 0); + } + _LIBCUDACXX_INLINE_VISIBILITY iterator end() + { + return iterator(pointer_traits<__storage_pointer>::pointer_to(__word_[0]) + __size_ / __bits_per_word, + static_cast(__size_ % __bits_per_word)); + } +}; + +template +__bit_iterator<_Cp, false> +rotate(__bit_iterator<_Cp, false> __first, __bit_iterator<_Cp, false> __middle, __bit_iterator<_Cp, false> __last) +{ + typedef __bit_iterator<_Cp, false> _I1; + typedef typename _I1::difference_type difference_type; + difference_type __d1 = __middle - __first; + difference_type __d2 = __last - __middle; + _I1 __r = __first + __d2; + while (__d1 != 0 && __d2 != 0) + { + if (__d1 <= __d2) + { + if (__d1 <= __bit_array<_Cp>::capacity()) + { + __bit_array<_Cp> __b(__d1); + _CUDA_VSTD::copy(__first, __middle, __b.begin()); + _CUDA_VSTD::copy(__b.begin(), __b.end(), _CUDA_VSTD::copy(__middle, __last, __first)); + break; + } + else + { + __bit_iterator<_Cp, false> __mp = _CUDA_VSTD::swap_ranges(__first, __middle, __middle); + __first = __middle; + __middle = __mp; + __d2 -= __d1; + } + } + else + { + if (__d2 <= __bit_array<_Cp>::capacity()) + { + __bit_array<_Cp> __b(__d2); + _CUDA_VSTD::copy(__middle, __last, __b.begin()); + _CUDA_VSTD::copy_backward(__b.begin(), __b.end(), _CUDA_VSTD::copy_backward(__first, __middle, __last)); + break; + } + else + { + __bit_iterator<_Cp, false> __mp = __first + __d2; + _CUDA_VSTD::swap_ranges(__first, __mp, __middle); + __first = __mp; + __d1 -= __d2; + } + } + } + return __r; +} + +// equal + +template +bool +__equal_unaligned(__bit_iterator<_Cp, _IC1> __first1, __bit_iterator<_Cp, _IC1> __last1, + __bit_iterator<_Cp, _IC2> __first2) +{ + typedef __bit_iterator<_Cp, _IC1> _It; + typedef typename _It::difference_type difference_type; + typedef typename _It::__storage_type __storage_type; + static const int __bits_per_word = _It::__bits_per_word; + difference_type __n = __last1 - __first1; + if (__n > 0) + { + // do first word + if (__first1.__ctz_ != 0) + { + unsigned __clz_f = __bits_per_word - __first1.__ctz_; + difference_type __dn = _CUDA_VSTD::min(static_cast(__clz_f), __n); + __n -= __dn; + __storage_type __m = (~__storage_type(0) << __first1.__ctz_) & (~__storage_type(0) >> (__clz_f - __dn)); + __storage_type __b = *__first1.__seg_ & __m; + unsigned __clz_r = __bits_per_word - __first2.__ctz_; + __storage_type __ddn = _CUDA_VSTD::min<__storage_type>(__dn, __clz_r); + __m = (~__storage_type(0) << __first2.__ctz_) & (~__storage_type(0) >> (__clz_r - __ddn)); + if (__first2.__ctz_ > __first1.__ctz_) + { + if ((*__first2.__seg_ & __m) != (__b << (__first2.__ctz_ - __first1.__ctz_))) + return false; + } + else + { + if ((*__first2.__seg_ & __m) != (__b >> (__first1.__ctz_ - __first2.__ctz_))) + return false; + } + __first2.__seg_ += (__ddn + __first2.__ctz_) / __bits_per_word; + __first2.__ctz_ = static_cast((__ddn + __first2.__ctz_) % __bits_per_word); + __dn -= __ddn; + if (__dn > 0) + { + __m = ~__storage_type(0) >> (__bits_per_word - __dn); + if ((*__first2.__seg_ & __m) != (__b >> (__first1.__ctz_ + __ddn))) + return false; + __first2.__ctz_ = static_cast(__dn); + } + ++__first1.__seg_; + // __first1.__ctz_ = 0; + } + // __first1.__ctz_ == 0; + // do middle words + unsigned __clz_r = __bits_per_word - __first2.__ctz_; + __storage_type __m = ~__storage_type(0) << __first2.__ctz_; + for (; __n >= __bits_per_word; __n -= __bits_per_word, ++__first1.__seg_) + { + __storage_type __b = *__first1.__seg_; + if ((*__first2.__seg_ & __m) != (__b << __first2.__ctz_)) + return false; + ++__first2.__seg_; + if ((*__first2.__seg_ & ~__m) != (__b >> __clz_r)) + return false; + } + // do last word + if (__n > 0) + { + __m = ~__storage_type(0) >> (__bits_per_word - __n); + __storage_type __b = *__first1.__seg_ & __m; + __storage_type __dn = _CUDA_VSTD::min(__n, static_cast(__clz_r)); + __m = (~__storage_type(0) << __first2.__ctz_) & (~__storage_type(0) >> (__clz_r - __dn)); + if ((*__first2.__seg_ & __m) != (__b << __first2.__ctz_)) + return false; + __first2.__seg_ += (__dn + __first2.__ctz_) / __bits_per_word; + __first2.__ctz_ = static_cast((__dn + __first2.__ctz_) % __bits_per_word); + __n -= __dn; + if (__n > 0) + { + __m = ~__storage_type(0) >> (__bits_per_word - __n); + if ((*__first2.__seg_ & __m) != (__b >> __dn)) + return false; + } + } + } + return true; +} + +template +bool +__equal_aligned(__bit_iterator<_Cp, _IC1> __first1, __bit_iterator<_Cp, _IC1> __last1, + __bit_iterator<_Cp, _IC2> __first2) +{ + typedef __bit_iterator<_Cp, _IC1> _It; + typedef typename _It::difference_type difference_type; + typedef typename _It::__storage_type __storage_type; + static const int __bits_per_word = _It::__bits_per_word; + difference_type __n = __last1 - __first1; + if (__n > 0) + { + // do first word + if (__first1.__ctz_ != 0) + { + unsigned __clz = __bits_per_word - __first1.__ctz_; + difference_type __dn = _CUDA_VSTD::min(static_cast(__clz), __n); + __n -= __dn; + __storage_type __m = (~__storage_type(0) << __first1.__ctz_) & (~__storage_type(0) >> (__clz - __dn)); + if ((*__first2.__seg_ & __m) != (*__first1.__seg_ & __m)) + return false; + ++__first2.__seg_; + ++__first1.__seg_; + // __first1.__ctz_ = 0; + // __first2.__ctz_ = 0; + } + // __first1.__ctz_ == 0; + // __first2.__ctz_ == 0; + // do middle words + for (; __n >= __bits_per_word; __n -= __bits_per_word, ++__first1.__seg_, ++__first2.__seg_) + if (*__first2.__seg_ != *__first1.__seg_) + return false; + // do last word + if (__n > 0) + { + __storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n); + if ((*__first2.__seg_ & __m) != (*__first1.__seg_ & __m)) + return false; + } + } + return true; +} + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +bool +equal(__bit_iterator<_Cp, _IC1> __first1, __bit_iterator<_Cp, _IC1> __last1, __bit_iterator<_Cp, _IC2> __first2) +{ + if (__first1.__ctz_ == __first2.__ctz_) + return __equal_aligned(__first1, __last1, __first2); + return __equal_unaligned(__first1, __last1, __first2); +} + +template +class __bit_iterator +{ +public: + typedef typename _Cp::difference_type difference_type; + typedef bool value_type; + typedef __bit_iterator pointer; + typedef typename conditional<_IsConst, __bit_const_reference<_Cp>, __bit_reference<_Cp> >::type reference; + typedef random_access_iterator_tag iterator_category; + +private: + typedef typename _Cp::__storage_type __storage_type; + typedef typename conditional<_IsConst, typename _Cp::__const_storage_pointer, + typename _Cp::__storage_pointer>::type __storage_pointer; + static const unsigned __bits_per_word = _Cp::__bits_per_word; + + __storage_pointer __seg_; + unsigned __ctz_; + +public: + _LIBCUDACXX_INLINE_VISIBILITY __bit_iterator() _NOEXCEPT +#if _LIBCUDACXX_STD_VER > 11 + : __seg_(nullptr), __ctz_(0) +#endif + {} + // avoid re-declaring a copy constructor for the non-const version. + using __type_for_copy_to_const = + _If<_IsConst, __bit_iterator<_Cp, false>, struct __private_nat>; + + _LIBCUDACXX_INLINE_VISIBILITY + __bit_iterator(const __type_for_copy_to_const& __it) _NOEXCEPT + : __seg_(__it.__seg_), __ctz_(__it.__ctz_) {} + + _LIBCUDACXX_INLINE_VISIBILITY reference operator*() const _NOEXCEPT + {return reference(__seg_, __storage_type(1) << __ctz_);} + + _LIBCUDACXX_INLINE_VISIBILITY __bit_iterator& operator++() + { + if (__ctz_ != __bits_per_word-1) + ++__ctz_; + else + { + __ctz_ = 0; + ++__seg_; + } + return *this; + } + + _LIBCUDACXX_INLINE_VISIBILITY __bit_iterator operator++(int) + { + __bit_iterator __tmp = *this; + ++(*this); + return __tmp; + } + + _LIBCUDACXX_INLINE_VISIBILITY __bit_iterator& operator--() + { + if (__ctz_ != 0) + --__ctz_; + else + { + __ctz_ = __bits_per_word - 1; + --__seg_; + } + return *this; + } + + _LIBCUDACXX_INLINE_VISIBILITY __bit_iterator operator--(int) + { + __bit_iterator __tmp = *this; + --(*this); + return __tmp; + } + + _LIBCUDACXX_INLINE_VISIBILITY __bit_iterator& operator+=(difference_type __n) + { + if (__n >= 0) + __seg_ += (__n + __ctz_) / __bits_per_word; + else + __seg_ += static_cast(__n - __bits_per_word + __ctz_ + 1) + / static_cast(__bits_per_word); + __n &= (__bits_per_word - 1); + __ctz_ = static_cast((__n + __ctz_) % __bits_per_word); + return *this; + } + + _LIBCUDACXX_INLINE_VISIBILITY __bit_iterator& operator-=(difference_type __n) + { + return *this += -__n; + } + + _LIBCUDACXX_INLINE_VISIBILITY __bit_iterator operator+(difference_type __n) const + { + __bit_iterator __t(*this); + __t += __n; + return __t; + } + + _LIBCUDACXX_INLINE_VISIBILITY __bit_iterator operator-(difference_type __n) const + { + __bit_iterator __t(*this); + __t -= __n; + return __t; + } + + _LIBCUDACXX_INLINE_VISIBILITY + friend __bit_iterator operator+(difference_type __n, const __bit_iterator& __it) {return __it + __n;} + + _LIBCUDACXX_INLINE_VISIBILITY + friend difference_type operator-(const __bit_iterator& __x, const __bit_iterator& __y) + {return (__x.__seg_ - __y.__seg_) * __bits_per_word + __x.__ctz_ - __y.__ctz_;} + + _LIBCUDACXX_INLINE_VISIBILITY reference operator[](difference_type __n) const {return *(*this + __n);} + + _LIBCUDACXX_INLINE_VISIBILITY friend bool operator==(const __bit_iterator& __x, const __bit_iterator& __y) + {return __x.__seg_ == __y.__seg_ && __x.__ctz_ == __y.__ctz_;} + + _LIBCUDACXX_INLINE_VISIBILITY friend bool operator!=(const __bit_iterator& __x, const __bit_iterator& __y) + {return !(__x == __y);} + + _LIBCUDACXX_INLINE_VISIBILITY friend bool operator<(const __bit_iterator& __x, const __bit_iterator& __y) + {return __x.__seg_ < __y.__seg_ || (__x.__seg_ == __y.__seg_ && __x.__ctz_ < __y.__ctz_);} + + _LIBCUDACXX_INLINE_VISIBILITY friend bool operator>(const __bit_iterator& __x, const __bit_iterator& __y) + {return __y < __x;} + + _LIBCUDACXX_INLINE_VISIBILITY friend bool operator<=(const __bit_iterator& __x, const __bit_iterator& __y) + {return !(__y < __x);} + + _LIBCUDACXX_INLINE_VISIBILITY friend bool operator>=(const __bit_iterator& __x, const __bit_iterator& __y) + {return !(__x < __y);} + +private: + _LIBCUDACXX_INLINE_VISIBILITY + __bit_iterator(__storage_pointer __s, unsigned __ctz) _NOEXCEPT + : __seg_(__s), __ctz_(__ctz) {} + + friend typename _Cp::__self; + + friend class __bit_reference<_Cp>; + friend class __bit_const_reference<_Cp>; + friend class __bit_iterator<_Cp, true>; + template friend struct __bit_array; + template friend void __fill_n_false(__bit_iterator<_Dp, false> __first, typename _Dp::size_type __n); + template friend void __fill_n_true(__bit_iterator<_Dp, false> __first, typename _Dp::size_type __n); + template friend __bit_iterator<_Dp, false> __copy_aligned(__bit_iterator<_Dp, _IC> __first, + __bit_iterator<_Dp, _IC> __last, + __bit_iterator<_Dp, false> __result); + template friend __bit_iterator<_Dp, false> __copy_unaligned(__bit_iterator<_Dp, _IC> __first, + __bit_iterator<_Dp, _IC> __last, + __bit_iterator<_Dp, false> __result); + template friend __bit_iterator<_Dp, false> copy(__bit_iterator<_Dp, _IC> __first, + __bit_iterator<_Dp, _IC> __last, + __bit_iterator<_Dp, false> __result); + template friend __bit_iterator<_Dp, false> __copy_backward_aligned(__bit_iterator<_Dp, _IC> __first, + __bit_iterator<_Dp, _IC> __last, + __bit_iterator<_Dp, false> __result); + template friend __bit_iterator<_Dp, false> __copy_backward_unaligned(__bit_iterator<_Dp, _IC> __first, + __bit_iterator<_Dp, _IC> __last, + __bit_iterator<_Dp, false> __result); + template friend __bit_iterator<_Dp, false> copy_backward(__bit_iterator<_Dp, _IC> __first, + __bit_iterator<_Dp, _IC> __last, + __bit_iterator<_Dp, false> __result); + template friend __bit_iterator<__C2, false> __swap_ranges_aligned(__bit_iterator<__C1, false>, + __bit_iterator<__C1, false>, + __bit_iterator<__C2, false>); + template friend __bit_iterator<__C2, false> __swap_ranges_unaligned(__bit_iterator<__C1, false>, + __bit_iterator<__C1, false>, + __bit_iterator<__C2, false>); + template friend __bit_iterator<__C2, false> swap_ranges(__bit_iterator<__C1, false>, + __bit_iterator<__C1, false>, + __bit_iterator<__C2, false>); + template friend __bit_iterator<_Dp, false> rotate(__bit_iterator<_Dp, false>, + __bit_iterator<_Dp, false>, + __bit_iterator<_Dp, false>); + template friend bool __equal_aligned(__bit_iterator<_Dp, _IC1>, + __bit_iterator<_Dp, _IC1>, + __bit_iterator<_Dp, _IC2>); + template friend bool __equal_unaligned(__bit_iterator<_Dp, _IC1>, + __bit_iterator<_Dp, _IC1>, + __bit_iterator<_Dp, _IC2>); + template friend bool equal(__bit_iterator<_Dp, _IC1>, + __bit_iterator<_Dp, _IC1>, + __bit_iterator<_Dp, _IC2>); + template friend __bit_iterator<_Dp, _IC> __find_bool_true(__bit_iterator<_Dp, _IC>, + typename _Dp::size_type); + template friend __bit_iterator<_Dp, _IC> __find_bool_false(__bit_iterator<_Dp, _IC>, + typename _Dp::size_type); + template friend typename __bit_iterator<_Dp, _IC>::difference_type + __count_bool_true(__bit_iterator<_Dp, _IC>, typename _Dp::size_type); + template friend typename __bit_iterator<_Dp, _IC>::difference_type + __count_bool_false(__bit_iterator<_Dp, _IC>, typename _Dp::size_type); +}; + +_LIBCUDACXX_END_NAMESPACE_STD + +_LIBCUDACXX_POP_MACROS + +#endif // _LIBCUDACXX___BIT_REFERENCE diff --git a/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__bsd_locale_defaults.h b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__bsd_locale_defaults.h new file mode 100644 index 0000000000000000000000000000000000000000..609865abd163d9fd05cc4e467110fabd2c77f6c4 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__bsd_locale_defaults.h @@ -0,0 +1,36 @@ +// -*- C++ -*- +//===---------------------- __bsd_locale_defaults.h -----------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// +// The BSDs have lots of *_l functions. We don't want to define those symbols +// on other platforms though, for fear of conflicts with user code. So here, +// we will define the mapping from an internal macro to the real BSD symbol. +//===----------------------------------------------------------------------===// + +#ifndef _LIBCUDACXX_BSD_LOCALE_DEFAULTS_H +#define _LIBCUDACXX_BSD_LOCALE_DEFAULTS_H + +#if defined(_LIBCUDACXX_USE_PRAGMA_GCC_SYSTEM_HEADER) +#pragma GCC system_header +#endif + +#define __libcpp_mb_cur_max_l(loc) MB_CUR_MAX_L(loc) +#define __libcpp_btowc_l(ch, loc) btowc_l(ch, loc) +#define __libcpp_wctob_l(wch, loc) wctob_l(wch, loc) +#define __libcpp_wcsnrtombs_l(dst, src, nwc, len, ps, loc) wcsnrtombs_l(dst, src, nwc, len, ps, loc) +#define __libcpp_wcrtomb_l(src, wc, ps, loc) wcrtomb_l(src, wc, ps, loc) +#define __libcpp_mbsnrtowcs_l(dst, src, nms, len, ps, loc) mbsnrtowcs_l(dst, src, nms, len, ps, loc) +#define __libcpp_mbrtowc_l(pwc, s, n, ps, l) mbrtowc_l(pwc, s, n, ps, l) +#define __libcpp_mbtowc_l(pwc, pmb, max, l) mbtowc_l(pwc, pmb, max, l) +#define __libcpp_mbrlen_l(s, n, ps, l) mbrlen_l(s, n, ps, l) +#define __libcpp_localeconv_l(l) localeconv_l(l) +#define __libcpp_mbsrtowcs_l(dest, src, len, ps, l) mbsrtowcs_l(dest, src, len, ps, l) +#define __libcpp_snprintf_l(...) snprintf_l(__VA_ARGS__) +#define __libcpp_asprintf_l(...) asprintf_l(__VA_ARGS__) +#define __libcpp_sscanf_l(...) sscanf_l(__VA_ARGS__) + +#endif // _LIBCUDACXX_BSD_LOCALE_DEFAULTS_H diff --git a/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__bsd_locale_fallbacks.h b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__bsd_locale_fallbacks.h new file mode 100644 index 0000000000000000000000000000000000000000..58220977d76db105a50fc4f294fd94eca9a92371 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__bsd_locale_fallbacks.h @@ -0,0 +1,139 @@ +// -*- C++ -*- +//===---------------------- __bsd_locale_fallbacks.h ----------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// +// The BSDs have lots of *_l functions. This file provides reimplementations +// of those functions for non-BSD platforms. +//===----------------------------------------------------------------------===// + +#ifndef _LIBCUDACXX_BSD_LOCALE_FALLBACKS_DEFAULTS_H +#define _LIBCUDACXX_BSD_LOCALE_FALLBACKS_DEFAULTS_H + +#include +#include +#include + +#if defined(_LIBCUDACXX_USE_PRAGMA_GCC_SYSTEM_HEADER) +#pragma GCC system_header +#endif + +_LIBCUDACXX_BEGIN_NAMESPACE_STD + +inline _LIBCUDACXX_INLINE_VISIBILITY +decltype(MB_CUR_MAX) __libcpp_mb_cur_max_l(locale_t __l) +{ + __libcpp_locale_guard __current(__l); + return MB_CUR_MAX; +} + +inline _LIBCUDACXX_INLINE_VISIBILITY +wint_t __libcpp_btowc_l(int __c, locale_t __l) +{ + __libcpp_locale_guard __current(__l); + return btowc(__c); +} + +inline _LIBCUDACXX_INLINE_VISIBILITY +int __libcpp_wctob_l(wint_t __c, locale_t __l) +{ + __libcpp_locale_guard __current(__l); + return wctob(__c); +} + +inline _LIBCUDACXX_INLINE_VISIBILITY +size_t __libcpp_wcsnrtombs_l(char *__dest, const wchar_t **__src, size_t __nwc, + size_t __len, mbstate_t *__ps, locale_t __l) +{ + __libcpp_locale_guard __current(__l); + return wcsnrtombs(__dest, __src, __nwc, __len, __ps); +} + +inline _LIBCUDACXX_INLINE_VISIBILITY +size_t __libcpp_wcrtomb_l(char *__s, wchar_t __wc, mbstate_t *__ps, locale_t __l) +{ + __libcpp_locale_guard __current(__l); + return wcrtomb(__s, __wc, __ps); +} + +inline _LIBCUDACXX_INLINE_VISIBILITY +size_t __libcpp_mbsnrtowcs_l(wchar_t * __dest, const char **__src, size_t __nms, + size_t __len, mbstate_t *__ps, locale_t __l) +{ + __libcpp_locale_guard __current(__l); + return mbsnrtowcs(__dest, __src, __nms, __len, __ps); +} + +inline _LIBCUDACXX_INLINE_VISIBILITY +size_t __libcpp_mbrtowc_l(wchar_t *__pwc, const char *__s, size_t __n, + mbstate_t *__ps, locale_t __l) +{ + __libcpp_locale_guard __current(__l); + return mbrtowc(__pwc, __s, __n, __ps); +} + +inline _LIBCUDACXX_INLINE_VISIBILITY +int __libcpp_mbtowc_l(wchar_t *__pwc, const char *__pmb, size_t __max, locale_t __l) +{ + __libcpp_locale_guard __current(__l); + return mbtowc(__pwc, __pmb, __max); +} + +inline _LIBCUDACXX_INLINE_VISIBILITY +size_t __libcpp_mbrlen_l(const char *__s, size_t __n, mbstate_t *__ps, locale_t __l) +{ + __libcpp_locale_guard __current(__l); + return mbrlen(__s, __n, __ps); +} + +inline _LIBCUDACXX_INLINE_VISIBILITY +lconv *__libcpp_localeconv_l(locale_t __l) +{ + __libcpp_locale_guard __current(__l); + return localeconv(); +} + +inline _LIBCUDACXX_INLINE_VISIBILITY +size_t __libcpp_mbsrtowcs_l(wchar_t *__dest, const char **__src, size_t __len, + mbstate_t *__ps, locale_t __l) +{ + __libcpp_locale_guard __current(__l); + return mbsrtowcs(__dest, __src, __len, __ps); +} + +inline +int __libcpp_snprintf_l(char *__s, size_t __n, locale_t __l, const char *__format, ...) { + va_list __va; + va_start(__va, __format); + __libcpp_locale_guard __current(__l); + int __res = vsnprintf(__s, __n, __format, __va); + va_end(__va); + return __res; +} + +inline +int __libcpp_asprintf_l(char **__s, locale_t __l, const char *__format, ...) { + va_list __va; + va_start(__va, __format); + __libcpp_locale_guard __current(__l); + int __res = vasprintf(__s, __format, __va); + va_end(__va); + return __res; +} + +inline +int __libcpp_sscanf_l(const char *__s, locale_t __l, const char *__format, ...) { + va_list __va; + va_start(__va, __format); + __libcpp_locale_guard __current(__l); + int __res = vsscanf(__s, __format, __va); + va_end(__va); + return __res; +} + +_LIBCUDACXX_END_NAMESPACE_STD + +#endif // _LIBCUDACXX_BSD_LOCALE_FALLBACKS_DEFAULTS_H diff --git a/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__config b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__config new file mode 100644 index 0000000000000000000000000000000000000000..2714477eca5bfa87b17a4d4454cdc03cb21fe370 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__config @@ -0,0 +1,1943 @@ +// -*- C++ -*- +//===--------------------------- __config ---------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef _LIBCUDACXX_CONFIG +#define _LIBCUDACXX_CONFIG + +#if defined(_MSC_VER) && !defined(__clang__) + #define _LIBCUDACXX_HAS_PRAGMA_MSVC_WARNING + #if !defined(_LIBCUDACXX_DISABLE_PRAGMA_MSVC_WARNING) + #define _LIBCUDACXX_USE_PRAGMA_MSVC_WARNING + #endif +#else + #define _LIBCUDACXX_HAS_PRAGMA_GCC_SYSTEM_HEADER + #if !defined(_LIBCUDACXX_DISABLE_PRAGMA_GCC_SYSTEM_HEADER) + #define _LIBCUDACXX_USE_PRAGMA_GCC_SYSTEM_HEADER + #endif +#endif + +#if defined(_LIBCUDACXX_USE_PRAGMA_GCC_SYSTEM_HEADER) +#pragma GCC system_header +#endif + +#ifdef __cplusplus + +// __config may be included in `extern "C"` contexts, switch back to include +extern "C++" { +#include +} + +#ifdef __GNUC__ +# define _GNUC_VER (__GNUC__ * 100 + __GNUC_MINOR__) +// The _GNUC_VER_NEW macro better represents the new GCC versioning scheme +// introduced in GCC 5.0. +# define _GNUC_VER_NEW (_GNUC_VER * 10 + __GNUC_PATCHLEVEL__) +#else +# define _GNUC_VER 0 +# define _GNUC_VER_NEW 0 +#endif + +#define _LIBCUDACXX_VERSION 10000 + +#ifndef _LIBCUDACXX_ABI_VERSION +# define _LIBCUDACXX_ABI_VERSION 1 +#endif + +#ifndef __STDC_HOSTED__ +# define _LIBCUDACXX_FREESTANDING +#endif + +#ifndef _LIBCUDACXX_STD_VER +# if defined(_MSC_VER) +# if _MSVC_LANG <= 201103L +# define _LIBCUDACXX_STD_VER 11 +# elif _MSVC_LANG <= 201402L +# define _LIBCUDACXX_STD_VER 14 +# elif _MSVC_LANG <= 201703L +# define _LIBCUDACXX_STD_VER 17 +# else +# define _LIBCUDACXX_STD_VER 19 // current year, or date of c++2a ratification +# endif +# else +# if __cplusplus <= 201103L +# define _LIBCUDACXX_STD_VER 11 +# elif __cplusplus <= 201402L +# define _LIBCUDACXX_STD_VER 14 +# elif __cplusplus <= 201703L +# define _LIBCUDACXX_STD_VER 17 +# else +# define _LIBCUDACXX_STD_VER 19 // current year, or date of c++2a ratification +# endif +# endif +#endif // _LIBCUDACXX_STD_VER + +#if _LIBCUDACXX_STD_VER < 11 +#define _LIBCUDACXX_CXX03_LANG +#endif + +#if defined(__PGIC__) && defined(__linux__) + #define __ELF__ +#endif + +#if defined(__ELF__) +# define _LIBCUDACXX_OBJECT_FORMAT_ELF 1 +#elif defined(__MACH__) +# define _LIBCUDACXX_OBJECT_FORMAT_MACHO 1 +#elif defined(_WIN32) +# define _LIBCUDACXX_OBJECT_FORMAT_COFF 1 +#elif defined(__wasm__) +# define _LIBCUDACXX_OBJECT_FORMAT_WASM 1 +#else +# error Unknown object file format +#endif + +#if defined(_LIBCUDACXX_ABI_UNSTABLE) || _LIBCUDACXX_ABI_VERSION >= 2 +// Change short string representation so that string data starts at offset 0, +// improving its alignment in some cases. +# define _LIBCUDACXX_ABI_ALTERNATE_STRING_LAYOUT +// Fix deque iterator type in order to support incomplete types. +# define _LIBCUDACXX_ABI_INCOMPLETE_TYPES_IN_DEQUE +// Fix undefined behavior in how std::list stores its linked nodes. +# define _LIBCUDACXX_ABI_LIST_REMOVE_NODE_POINTER_UB +// Fix undefined behavior in how __tree stores its end and parent nodes. +# define _LIBCUDACXX_ABI_TREE_REMOVE_NODE_POINTER_UB +// Fix undefined behavior in how __hash_table stores its pointer types. +# define _LIBCUDACXX_ABI_FIX_UNORDERED_NODE_POINTER_UB +# define _LIBCUDACXX_ABI_FORWARD_LIST_REMOVE_NODE_POINTER_UB +# define _LIBCUDACXX_ABI_FIX_UNORDERED_CONTAINER_SIZE_TYPE +// Don't use a nullptr_t simulation type in C++03 instead using C++11 nullptr +// provided under the alternate keyword __nullptr, which changes the mangling +// of nullptr_t. This option is ABI incompatible with GCC in C++03 mode. +# define _LIBCUDACXX_ABI_ALWAYS_USE_CXX11_NULLPTR +// Define the `pointer_safety` enum as a C++11 strongly typed enumeration +// instead of as a class simulating an enum. If this option is enabled +// `pointer_safety` and `get_pointer_safety()` will no longer be available +// in C++03. +# define _LIBCUDACXX_ABI_POINTER_SAFETY_ENUM_TYPE +// Define a key function for `bad_function_call` in the library, to centralize +// its vtable and typeinfo to libc++ rather than having all other libraries +// using that class define their own copies. +# define _LIBCUDACXX_ABI_BAD_FUNCTION_CALL_KEY_FUNCTION +// Enable optimized version of __do_get_(un)signed which avoids redundant copies. +# define _LIBCUDACXX_ABI_OPTIMIZED_LOCALE_NUM_GET +// Use the smallest possible integer type to represent the index of the variant. +// Previously libc++ used "unsigned int" exclusively. +# define _LIBCUDACXX_ABI_VARIANT_INDEX_TYPE_OPTIMIZATION +// Unstable attempt to provide a more optimized std::function +# define _LIBCUDACXX_ABI_OPTIMIZED_FUNCTION +// All the regex constants must be distinct and nonzero. +# define _LIBCUDACXX_ABI_REGEX_CONSTANTS_NONZERO +#elif _LIBCUDACXX_ABI_VERSION == 1 +# if !defined(_LIBCUDACXX_OBJECT_FORMAT_COFF) +// Enable compiling copies of now inline methods into the dylib to support +// applications compiled against older libraries. This is unnecessary with +// COFF dllexport semantics, since dllexport forces a non-inline definition +// of inline functions to be emitted anyway. Our own non-inline copy would +// conflict with the dllexport-emitted copy, so we disable it. +# define _LIBCUDACXX_DEPRECATED_ABI_LEGACY_LIBRARY_DEFINITIONS_FOR_INLINE_FUNCTIONS +# endif +// Feature macros for disabling pre ABI v1 features. All of these options +// are deprecated. +# if defined(__FreeBSD__) +# define _LIBCUDACXX_DEPRECATED_ABI_DISABLE_PAIR_TRIVIAL_COPY_CTOR +# endif +#endif + +#ifdef _LIBCUDACXX_TRIVIAL_PAIR_COPY_CTOR +#error "_LIBCUDACXX_TRIVIAL_PAIR_COPY_CTOR" is no longer supported. \ + use _LIBCUDACXX_DEPRECATED_ABI_DISABLE_PAIR_TRIVIAL_COPY_CTOR instead +#endif + +#define _LIBCUDACXX_CONCAT1(_LIBCUDACXX_X,_LIBCUDACXX_Y) _LIBCUDACXX_X##_LIBCUDACXX_Y +#define _LIBCUDACXX_CONCAT(_LIBCUDACXX_X,_LIBCUDACXX_Y) _LIBCUDACXX_CONCAT1(_LIBCUDACXX_X,_LIBCUDACXX_Y) + +#ifndef _LIBCUDACXX_ABI_NAMESPACE +# define _LIBCUDACXX_ABI_NAMESPACE _LIBCUDACXX_CONCAT(__,_LIBCUDACXX_ABI_VERSION) +#endif + +#ifndef __has_attribute +#define __has_attribute(__x) 0 +#endif + +#ifndef __has_builtin +#define __has_builtin(__x) 0 +#endif + +#ifndef __has_extension +#define __has_extension(__x) 0 +#endif + +#ifndef __has_feature +#define __has_feature(__x) 0 +#endif + +#ifndef __has_cpp_attribute +#define __has_cpp_attribute(__x) 0 +#endif + +// '__is_identifier' returns '0' if '__x' is a reserved identifier provided by +// the compiler and '1' otherwise. +#ifndef __is_identifier +#define __is_identifier(__x) 1 +#endif + +#ifndef __has_declspec_attribute +#define __has_declspec_attribute(__x) 0 +#endif + +#define __has_keyword(__x) !(__is_identifier(__x)) + +#ifndef __has_include +#define __has_include(...) 0 +#endif + +#if defined(__PGIC__) +# define _LIBCUDACXX_COMPILER_PGI +#elif defined(__clang__) +# define _LIBCUDACXX_COMPILER_CLANG +# ifndef __apple_build_version__ +# define _LIBCUDACXX_CLANG_VER (__clang_major__ * 100 + __clang_minor__) +# endif +#elif defined(__GNUC__) +# define _LIBCUDACXX_COMPILER_GCC +#elif defined(_MSC_VER) +# define _LIBCUDACXX_COMPILER_MSVC +#elif defined(__IBMCPP__) +# define _LIBCUDACXX_COMPILER_IBM +#elif defined(__CUDACC_RTC__) +# define _LIBCUDACXX_COMPILER_NVRTC +#endif + +#if defined(__NVCC__) +// This is not mutually exclusive with other compilers, as NVCC uses a host +// compiler. +# define _LIBCUDACXX_COMPILER_NVCC +#endif + +#if !defined(_LIBCUDACXX_COMPILER_NVCC) && !defined(_LIBCUDACXX_COMPILER_NVRTC) +// If NVCC is not being used can safely use `long double` without warnings +# define _LIBCUDACXX_HAS_COMPLEX_LONG_DOUBLE +// NVCC does not have a way of silencing non '_' prefixed UDLs +# define _LIBCUDACXX_HAS_STL_LITERALS +#endif + +#if defined(_LIBCUDACXX_COMPILER_GCC) && __cplusplus < 201103L +#error "libc++ does not support using GCC with C++03. Please enable C++11" +#endif + +// FIXME: ABI detection should be done via compiler builtin macros. This +// is just a placeholder until Clang implements such macros. For now assume +// that Windows compilers pretending to be MSVC++ target the Microsoft ABI, +// and allow the user to explicitly specify the ABI to handle cases where this +// heuristic falls short. +#if defined(_LIBCUDACXX_ABI_FORCE_ITANIUM) && defined(_LIBCUDACXX_ABI_FORCE_MICROSOFT) +# error "Only one of _LIBCUDACXX_ABI_FORCE_ITANIUM and _LIBCUDACXX_ABI_FORCE_MICROSOFT can be defined" +#elif defined(_LIBCUDACXX_ABI_FORCE_ITANIUM) +# define _LIBCUDACXX_ABI_ITANIUM +#elif defined(_LIBCUDACXX_ABI_FORCE_MICROSOFT) +# define _LIBCUDACXX_ABI_MICROSOFT +#else +# if defined(_WIN32) && defined(_MSC_VER) +# define _LIBCUDACXX_ABI_MICROSOFT +# else +# define _LIBCUDACXX_ABI_ITANIUM +# endif +#endif + +#if defined(_LIBCUDACXX_ABI_MICROSOFT) && !defined(_LIBCUDACXX_NO_VCRUNTIME) +# define _LIBCUDACXX_ABI_VCRUNTIME +#endif + +// Need to detect which libc we're using if we're on Linux. +#if defined(__linux__) +# include +# if defined(__GLIBC_PREREQ) +# define _LIBCUDACXX_GLIBC_PREREQ(a, b) __GLIBC_PREREQ(a, b) +# else +# define _LIBCUDACXX_GLIBC_PREREQ(a, b) 0 +# endif // defined(__GLIBC_PREREQ) +#endif // defined(__linux__) + +#ifdef __LITTLE_ENDIAN__ +# if __LITTLE_ENDIAN__ +# define _LIBCUDACXX_LITTLE_ENDIAN +# endif // __LITTLE_ENDIAN__ +#endif // __LITTLE_ENDIAN__ + +#ifdef __BIG_ENDIAN__ +# if __BIG_ENDIAN__ +# define _LIBCUDACXX_BIG_ENDIAN +# endif // __BIG_ENDIAN__ +#endif // __BIG_ENDIAN__ + +#ifdef __BYTE_ORDER__ +# if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ +# define _LIBCUDACXX_LITTLE_ENDIAN +# elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ +# define _LIBCUDACXX_BIG_ENDIAN +# endif // __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ +#endif // __BYTE_ORDER__ + +#ifdef __FreeBSD__ +# include +# if _BYTE_ORDER == _LITTLE_ENDIAN +# define _LIBCUDACXX_LITTLE_ENDIAN +# else // _BYTE_ORDER == _LITTLE_ENDIAN +# define _LIBCUDACXX_BIG_ENDIAN +# endif // _BYTE_ORDER == _LITTLE_ENDIAN +# ifndef __LONG_LONG_SUPPORTED +# define _LIBCUDACXX_HAS_NO_LONG_LONG +# endif // __LONG_LONG_SUPPORTED +#endif // __FreeBSD__ + +#ifdef __NetBSD__ +# include +# if _BYTE_ORDER == _LITTLE_ENDIAN +# define _LIBCUDACXX_LITTLE_ENDIAN +# else // _BYTE_ORDER == _LITTLE_ENDIAN +# define _LIBCUDACXX_BIG_ENDIAN +# endif // _BYTE_ORDER == _LITTLE_ENDIAN +# define _LIBCUDACXX_HAS_QUICK_EXIT +#endif // __NetBSD__ + +#if defined(_WIN32) +# define _LIBCUDACXX_WIN32API +# define _LIBCUDACXX_LITTLE_ENDIAN +# define _LIBCUDACXX_SHORT_WCHAR 1 +// Both MinGW and native MSVC provide a "MSVC"-like environment +# define _LIBCUDACXX_MSVCRT_LIKE +// If mingw not explicitly detected, assume using MS C runtime only if +// a MS compatibility version is specified. +# if defined(_MSC_VER) && !defined(__MINGW32__) +# define _LIBCUDACXX_MSVCRT // Using Microsoft's C Runtime library +# endif +# if (defined(_M_AMD64) || defined(__x86_64__)) || (defined(_M_ARM) || defined(__arm__)) +# define _LIBCUDACXX_HAS_BITSCAN64 +# endif +# define _LIBCUDACXX_HAS_OPEN_WITH_WCHAR +# if defined(_LIBCUDACXX_MSVCRT) +# define _LIBCUDACXX_HAS_QUICK_EXIT +# endif + +// Some CRT APIs are unavailable to store apps +# if defined(WINAPI_FAMILY) +# include +# if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) && \ + (!defined(WINAPI_PARTITION_SYSTEM) || \ + !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_SYSTEM)) +# define _LIBCUDACXX_WINDOWS_STORE_APP +# endif +# endif +#endif // defined(_WIN32) + +#ifdef __sun__ +# include +# ifdef _LITTLE_ENDIAN +# define _LIBCUDACXX_LITTLE_ENDIAN +# else +# define _LIBCUDACXX_BIG_ENDIAN +# endif +#endif // __sun__ + +#if defined(__CloudABI__) + // Certain architectures provide arc4random(). Prefer using + // arc4random() over /dev/{u,}random to make it possible to obtain + // random data even when using sandboxing mechanisms such as chroots, + // Capsicum, etc. +# define _LIBCUDACXX_USING_ARC4_RANDOM +#elif defined(__Fuchsia__) || defined(__wasi__) +# define _LIBCUDACXX_USING_GETENTROPY +#elif defined(__native_client__) + // NaCl's sandbox (which PNaCl also runs in) doesn't allow filesystem access, + // including accesses to the special files under /dev. C++11's + // std::random_device is instead exposed through a NaCl syscall. +# define _LIBCUDACXX_USING_NACL_RANDOM +#elif defined(_LIBCUDACXX_WIN32API) +# define _LIBCUDACXX_USING_WIN32_RANDOM +#else +# define _LIBCUDACXX_USING_DEV_RANDOM +#endif + +#if !defined(_LIBCUDACXX_LITTLE_ENDIAN) && !defined(_LIBCUDACXX_BIG_ENDIAN) +# include +# if __BYTE_ORDER == __LITTLE_ENDIAN +# define _LIBCUDACXX_LITTLE_ENDIAN +# elif __BYTE_ORDER == __BIG_ENDIAN +# define _LIBCUDACXX_BIG_ENDIAN +# else // __BYTE_ORDER == __BIG_ENDIAN +# error unable to determine endian +# endif +#endif // !defined(_LIBCUDACXX_LITTLE_ENDIAN) && !defined(_LIBCUDACXX_BIG_ENDIAN) + +#if __has_attribute(__no_sanitize__) && !defined(_LIBCUDACXX_COMPILER_GCC) +# define _LIBCUDACXX_NO_CFI __attribute__((__no_sanitize__("cfi"))) +#else +# define _LIBCUDACXX_NO_CFI +#endif + +#if __ISO_C_VISIBLE >= 2011 || __cplusplus >= 201103L +# if defined(__FreeBSD__) +# define _LIBCUDACXX_HAS_QUICK_EXIT +# define _LIBCUDACXX_HAS_C11_FEATURES +# elif defined(__Fuchsia__) || defined(__wasi__) +# define _LIBCUDACXX_HAS_QUICK_EXIT +# define _LIBCUDACXX_HAS_TIMESPEC_GET +# define _LIBCUDACXX_HAS_C11_FEATURES +# elif defined(__linux__) +# if !defined(_LIBCUDACXX_HAS_MUSL_LIBC) +# if _LIBCUDACXX_GLIBC_PREREQ(2, 15) || defined(__BIONIC__) +# define _LIBCUDACXX_HAS_QUICK_EXIT +# endif +# if _LIBCUDACXX_GLIBC_PREREQ(2, 17) +# define _LIBCUDACXX_HAS_C11_FEATURES +# define _LIBCUDACXX_HAS_TIMESPEC_GET +# endif +# else // defined(_LIBCUDACXX_HAS_MUSL_LIBC) +# define _LIBCUDACXX_HAS_QUICK_EXIT +# define _LIBCUDACXX_HAS_TIMESPEC_GET +# define _LIBCUDACXX_HAS_C11_FEATURES +# endif +# endif // __linux__ +#endif + +#ifndef _LIBCUDACXX_CXX03_LANG +# define _LIBCUDACXX_ALIGNOF(_Tp) alignof(_Tp) +#elif defined(_LIBCUDACXX_COMPILER_CLANG) +# define _LIBCUDACXX_ALIGNOF(_Tp) _Alignof(_Tp) +#else +// This definition is potentially buggy, but it's only taken with GCC in C++03, +// which we barely support anyway. See llvm.org/PR39713 +# define _LIBCUDACXX_ALIGNOF(_Tp) __alignof(_Tp) +#endif + +#define _LIBCUDACXX_PREFERRED_ALIGNOF(_Tp) __alignof(_Tp) + +#if defined(_LIBCUDACXX_COMPILER_NVRTC) +#define _LIBCUDACXX_OFFSET_IS_ZERO(type, member) !(&(((type *)0)->member)) +#else +#define _LIBCUDACXX_OFFSET_IS_ZERO(type, member) !offsetof(type, member) +#endif + +#if defined(_LIBCUDACXX_COMPILER_CLANG) + +// _LIBCUDACXX_ALTERNATE_STRING_LAYOUT is an old name for +// _LIBCUDACXX_ABI_ALTERNATE_STRING_LAYOUT left here for backward compatibility. +#if (defined(__APPLE__) && !defined(__i386__) && !defined(__x86_64__) && \ + (!defined(__arm__) || __ARM_ARCH_7K__ >= 2)) || \ + defined(_LIBCUDACXX_ALTERNATE_STRING_LAYOUT) +#define _LIBCUDACXX_ABI_ALTERNATE_STRING_LAYOUT +#endif + +#if __has_feature(cxx_alignas) +# define _ALIGNAS_TYPE(x) alignas(x) +# define _ALIGNAS(x) alignas(x) +#else +# define _ALIGNAS_TYPE(x) __attribute__((__aligned__(_LIBCUDACXX_ALIGNOF(x)))) +# define _ALIGNAS(x) __attribute__((__aligned__(x))) +#endif + +#if __cplusplus < 201103L +typedef __char16_t char16_t; +typedef __char32_t char32_t; +#endif + +#if !(__has_feature(cxx_exceptions)) && !defined(_LIBCUDACXX_NO_EXCEPTIONS) +#define _LIBCUDACXX_NO_EXCEPTIONS +#endif + +#if !(__has_feature(cxx_rtti)) && !defined(_LIBCUDACXX_NO_RTTI) +#define _LIBCUDACXX_NO_RTTI +#endif + +#if !(__has_feature(cxx_strong_enums)) +#define _LIBCUDACXX_HAS_NO_STRONG_ENUMS +#endif + +#if __has_feature(cxx_attributes) +# define _LIBCUDACXX_NORETURN [[noreturn]] +#else +# define _LIBCUDACXX_NORETURN __attribute__ ((noreturn)) +#endif + +#if !(__has_feature(cxx_lambdas)) +#define _LIBCUDACXX_HAS_NO_LAMBDAS +#endif + +#if !(__has_feature(cxx_nullptr)) +# if (__has_extension(cxx_nullptr) || __has_keyword(__nullptr)) && defined(_LIBCUDACXX_ABI_ALWAYS_USE_CXX11_NULLPTR) +# define nullptr __nullptr +# else +# define _LIBCUDACXX_HAS_NO_NULLPTR +# endif +#endif + +#if !(__has_feature(cxx_rvalue_references)) +#define _LIBCUDACXX_HAS_NO_RVALUE_REFERENCES +#endif + +#if !(__has_feature(cxx_auto_type)) +#define _LIBCUDACXX_HAS_NO_AUTO_TYPE +#endif + +#if !(__has_feature(cxx_variadic_templates)) +#define _LIBCUDACXX_HAS_NO_VARIADICS +#endif + +#if !(__has_feature(cxx_generalized_initializers)) +#define _LIBCUDACXX_HAS_NO_GENERALIZED_INITIALIZERS +#endif + +#if __has_feature(is_base_of) +#define _LIBCUDACXX_IS_BASE_OF(...) __is_base_of(__VA_ARGS__) +#endif + +#if __has_feature(is_final) +#define _LIBCUDACXX_IS_FINAL(...) __is_final(__VA_ARGS__) +#endif + +// Objective-C++ features (opt-in) +#if __has_feature(objc_arc) +#define _LIBCUDACXX_HAS_OBJC_ARC +#endif + +#if __has_feature(objc_arc_weak) +#define _LIBCUDACXX_HAS_OBJC_ARC_WEAK +#endif + +#if !(__has_feature(cxx_relaxed_constexpr)) +#define _LIBCUDACXX_HAS_NO_CXX14_CONSTEXPR +#endif + +#if !(__has_feature(cxx_variable_templates)) +#define _LIBCUDACXX_HAS_NO_VARIABLE_TEMPLATES +#endif + +#if !(__has_feature(cxx_noexcept)) +#define _LIBCUDACXX_HAS_NO_NOEXCEPT +#endif + +#if __has_feature(underlying_type) +#define _LIBCUDACXX_UNDERLYING_TYPE(...) __underlying_type(__VA_ARGS__) +#endif + +#if __has_feature(is_constructible) +#define _LIBCUDACXX_IS_CONSTRUCTIBLE(...) __is_constructible(__VA_ARGS__) +#endif + +#if __has_keyword(__is_destructible) +#define _LIBCUDACXX_IS_DESTRUCTIBLE(...) __is_destructible(__VA_ARGS__) +#endif + +#if __has_feature(is_trivially_constructible) +#define _LIBCUDACXX_IS_TRIVIALLY_CONSTRUCTIBLE(...) __is_trivially_constructible(__VA_ARGS__) +#endif + +// https://bugs.llvm.org/show_bug.cgi?id=44517 +#if __has_keyword(__is_trivially_destructible) +#define _LIBCUDACXX_IS_TRIVIALLY_DESTRUCTIBLE(...) __is_trivially_destructible(__VA_ARGS__) +#endif + +// https://bugs.llvm.org/show_bug.cgi?id=44517 +#if __has_keyword(__is_nothrow_constructible) +#define _LIBCUDACXX_IS_NOTHROW_CONSTRUCTIBLE(...) __is_nothrow_constructible(__VA_ARGS__) +#endif + +// https://bugs.llvm.org/show_bug.cgi?id=44517 +#if __has_keyword(__is_nothrow_assignable) +#define _LIBCUDACXX_IS_NOTHROW_ASSIGNABLE(...) __is_nothrow_assignable(__VA_ARGS__) +#endif + +// https://bugs.llvm.org/show_bug.cgi?id=44517 +#if __has_keyword(__is_assignable) +#define _LIBCUDACXX_IS_ASSIGNABLE(...) __is_assignable(__VA_ARGS__) +#endif + +// https://bugs.llvm.org/show_bug.cgi?id=44517 +#if __has_keyword(__is_same) && !defined(_LIBCUDACXX_COMPILER_NVCC) +#define _LIBCUDACXX_IS_SAME(...) __is_same(__VA_ARGS__) +#endif + +#if __has_feature(has_trivial_constructor) +#define _LIBCUDACXX_HAS_TRIVIAL_CONSTRUCTOR(...) __has_trivial_constructor(__VA_ARGS__) +#endif + +#if __has_feature(has_nothrow_constructor) +#define _LIBCUDACXX_HAS_NOTHROW_CONSTRUCTOR(...) __has_nothrow_constructor(__VA_ARGS__) +#endif + +#if __has_feature(has_nothrow_copy) +#define _LIBCUDACXX_HAS_NOTHROW_COPY(...) __has_nothrow_copy(__VA_ARGS__) +#endif + +#if __has_feature(has_nothrow_assign) +#define _LIBCUDACXX_HAS_NOTHROW_ASSIGN(...) __has_nothrow_assign(__VA_ARGS__) +#endif + +#if __has_feature(has_trivial_destructor) +#define _LIBCUDACXX_HAS_TRIVIAL_DESTRUCTOR(...) __has_trivial_destructor(__VA_ARGS__) +#endif + +#if __has_feature(is_trivially_assignable) +#define _LIBCUDACXX_IS_TRIVIALLY_ASSIGNABLE(...) __is_trivially_assignable(__VA_ARGS__) +#endif + +#if __has_feature(is_trivially_copyable) +#define _LIBCUDACXX_IS_TRIVIALLY_COPYABLE(...) __is_trivially_copyable(__VA_ARGS__) +#endif + +#if __has_feature(is_trivial) +#define _LIBCUDACXX_IS_TRIVIAL(...) __is_trivial(__VA_ARGS__) +#endif + +#if __has_feature(is_convertible_to) +#define _LIBCUDACXX_IS_CONVERTIBLE_TO(...) __is_convertible_to(__VA_ARGS__) +#endif + +// https://bugs.llvm.org/show_bug.cgi?id=44517 +#if __has_keyword(__is_function) && !defined(_LIBCUDACXX_COMPILER_NVCC) +#define _LIBCUDACXX_IS_FUNCTION(...) __is_function(__VA_ARGS__) +#endif + +#if __has_feature(is_union) +#define _LIBCUDACXX_IS_UNION(...) __is_union(__VA_ARGS__) +#endif + +#if __has_feature(is_class) +#define _LIBCUDACXX_IS_CLASS(...) __is_class(__VA_ARGS__) +#endif + +#if __has_keyword(__is_aggregate) +#define _LIBCUDACXX_IS_AGGREGATE(...) __is_aggregate(__VA_ARGS__) +#endif + +#if __has_feature(is_pod) +#define _LIBCUDACXX_IS_POD(...) __is_pod(__VA_ARGS__) +#endif + +#if __has_feature(is_standard_layout) +#define _LIBCUDACXX_IS_STANDARD_LAYOUT(...) __is_standard_layout(__VA_ARGS__) +#endif + +#if __has_feature(is_enum) +#define _LIBCUDACXX_IS_ENUM(...) __is_enum(__VA_ARGS__) +#endif + +#if __has_feature(is_empty) +#define _LIBCUDACXX_IS_EMPTY(...) __is_empty(__VA_ARGS__) +#endif + +#if __has_feature(is_polymorphic) +#define _LIBCUDACXX_IS_POLYMORPHIC(...) __is_polymorphic(__VA_ARGS__) +#endif + +#if __has_feature(has_virtual_destructor) +#define _LIBCUDACXX_HAS_VIRTUAL_DESTRUCTOR(...) __has_virtual_destructor(__VA_ARGS__) +#endif + +#if __has_feature(is_literal) +#define _LIBCUDACXX_IS_LITERAL(...) __is_literal(__VA_ARGS__) +#endif + +#if !defined(_LIBCUDACXX_HAS_NO_ASAN) && !__has_feature(address_sanitizer) +#define _LIBCUDACXX_HAS_NO_ASAN +#endif + +// Allow for build-time disabling of unsigned integer sanitization +#if !defined(_LIBCUDACXX_DISABLE_UBSAN_UNSIGNED_INTEGER_CHECK) && __has_attribute(no_sanitize) +#define _LIBCUDACXX_DISABLE_UBSAN_UNSIGNED_INTEGER_CHECK __attribute__((__no_sanitize__("unsigned-integer-overflow"))) +#endif + +#if __has_builtin(__builtin_launder) +#define _LIBCUDACXX_LAUNDER(...) __builtin_launder(__VA_ARGS__) +#endif + +#if !__is_identifier(__has_unique_object_representations) +#define _LIBCUDACXX_HAS_UNIQUE_OBJECT_REPRESENTATIONS(...) __has_unique_object_representations(__VA_ARGS__) +#endif + +#if !defined(_LIBCUDACXX_ATOMIC_ALWAYS_LOCK_FREE) +#define _LIBCUDACXX_ATOMIC_ALWAYS_LOCK_FREE(...) __atomic_always_lock_free(__VA_ARGS__) +#endif + +// NVCC in C++11 mode freaks out about `__builtin_is_constant_evaluated`. +#if __has_builtin(__builtin_is_constant_evaluated) && !(defined(_LIBCUDACXX_COMPILER_NVCC) && _LIBCUDACXX_STD_VER < 14) +#define _LIBCUDACXX_IS_CONSTANT_EVALUATED(...) __builtin_is_constant_evaluated(__VA_ARGS__) +#endif + +#if __has_builtin(__builtin_addressof) +#define _LIBCUDACXX_ADDRESSOF(...) __builtin_addressof(__VA_ARGS__) +#endif + +#define _LIBCUDACXX_ALWAYS_INLINE __attribute__ ((__always_inline__)) + +// Literal operators ""d and ""y are supported starting with LLVM Clang 8 and AppleClang 10.0.1 +#if (defined(_LIBCUDACXX_CLANG_VER) && _LIBCUDACXX_CLANG_VER < 800) || \ + (defined(__apple_build_version__) && __apple_build_version__ < 10010000) +#define _LIBCUDACXX_HAS_NO_CXX20_CHRONO_LITERALS +#endif + +#if __has_feature(cxx_reference_qualified_functions) +#define _LIBCUDACXX_HAS_REFERENCE_QUALIFIED_FUNCTIONS +#endif + +#define _LIBCUDACXX_DISABLE_EXTENSION_WARNING __extension__ + +#elif defined(_LIBCUDACXX_COMPILER_GCC) + +#define _ALIGNAS(x) __attribute__((__aligned__(x))) +#define _ALIGNAS_TYPE(x) __attribute__((__aligned__(_LIBCUDACXX_ALIGNOF(x)))) + +#define _LIBCUDACXX_NORETURN __attribute__((noreturn)) + +#if _GNUC_VER >= 403 +#define _LIBCUDACXX_IS_UNION(...) __is_union(__VA_ARGS__) +#define _LIBCUDACXX_IS_CLASS(...) __is_class(__VA_ARGS__) +#define _LIBCUDACXX_IS_POD(...) __is_pod(__VA_ARGS__) +#define _LIBCUDACXX_IS_ENUM(...) __is_enum(__VA_ARGS__) +#define _LIBCUDACXX_IS_EMPTY(...) __is_empty(__VA_ARGS__) +#define _LIBCUDACXX_IS_POLYMORPHIC(...) __is_polymorphic(__VA_ARGS__) +#define _LIBCUDACXX_HAS_VIRTUAL_DESTRUCTOR(...) __has_virtual_destructor(__VA_ARGS__) +#define _LIBCUDACXX_IS_BASE_OF(...) __is_base_of(__VA_ARGS__) +#define _LIBCUDACXX_HAS_TRIVIAL_CONSTRUCTOR(...) __has_trivial_constructor(__VA_ARGS__) +#define _LIBCUDACXX_HAS_NOTHROW_CONSTRUCTOR(...) __has_nothrow_constructor(__VA_ARGS__) +#define _LIBCUDACXX_HAS_NOTHROW_COPY(...) __has_nothrow_copy(__VA_ARGS__) +#define _LIBCUDACXX_HAS_NOTHROW_ASSIGN(...) __has_nothrow_assign(__VA_ARGS__) +#define _LIBCUDACXX_HAS_TRIVIAL_DESTRUCTOR(...) __has_trivial_destructor(__VA_ARGS__) +#endif + +#if _GNUC_VER >= 405 +#define _LIBCUDACXX_IS_TRIVIAL(...) __is_trivial(__VA_ARGS__) +#endif + +#if _GNUC_VER >= 406 +#define _LIBCUDACXX_IS_LITERAL(...) __is_literal_type(__VA_ARGS__) +#endif + +#if _GNUC_VER >= 407 +#define _LIBCUDACXX_UNDERLYING_TYPE(...) __underlying_type(__VA_ARGS__) +#define _LIBCUDACXX_IS_FINAL(...) __is_final(__VA_ARGS__) +#define _LIBCUDACXX_IS_STANDARD_LAYOUT(...) __is_standard_layout(__VA_ARGS__) +#endif + +#if _GNUC_VER >= 409 +#define _LIBCUDACXX_HAS_REFERENCE_QUALIFIED_FUNCTIONS +#endif + +#if _GNUC_VER >= 501 +#define _LIBCUDACXX_IS_TRIVIALLY_CONSTRUCTIBLE(...) __is_trivially_constructible(__VA_ARGS__) +#define _LIBCUDACXX_IS_TRIVIALLY_ASSIGNABLE(...) __is_trivially_assignable(__VA_ARGS__) +#define _LIBCUDACXX_IS_TRIVIALLY_COPYABLE(...) __is_trivially_copyable(__VA_ARGS__) +#endif + +// FIXME: GCC 8.0 supports this trait, but it has a bug. +// https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91592 +// https://godbolt.org/z/IljfIw +//#if _GNUC_VER >= 800 +//#define _LIBCUDACXX_IS_ASSIGNABLE(...) __is_assignable(__VA_ARGS__) +//#endif + +#if _GNUC_VER >= 1000 +// __is_same_as is useless: GCC complains when you try to use it in a SFINAE condition +// which is the primary place where libc++ tries to use it. Disable. +// #define _LIBCUDACXX_IS_SAME(...) __is_same_as(__VA_ARGS__) +#endif + +#if !__EXCEPTIONS && !defined(_LIBCUDACXX_NO_EXCEPTIONS) +#define _LIBCUDACXX_NO_EXCEPTIONS +#endif + +// Determine if GCC supports relaxed constexpr +#if !defined(__cpp_constexpr) || __cpp_constexpr < 201304L +#define _LIBCUDACXX_HAS_NO_CXX14_CONSTEXPR +#endif + +// GCC 5 supports variable templates +#if !defined(__cpp_variable_templates) || __cpp_variable_templates < 201304L +#define _LIBCUDACXX_HAS_NO_VARIABLE_TEMPLATES +#endif + +#ifndef __GXX_EXPERIMENTAL_CXX0X__ + +#define _LIBCUDACXX_HAS_NO_DECLTYPE +#define _LIBCUDACXX_HAS_NO_NULLPTR +#define _LIBCUDACXX_HAS_NO_UNICODE_CHARS +#define _LIBCUDACXX_HAS_NO_VARIADICS +#define _LIBCUDACXX_HAS_NO_RVALUE_REFERENCES +#define _LIBCUDACXX_HAS_NO_STRONG_ENUMS +#define _LIBCUDACXX_HAS_NO_NOEXCEPT + +#else // __GXX_EXPERIMENTAL_CXX0X__ + +#if _GNUC_VER < 403 +#define _LIBCUDACXX_HAS_NO_RVALUE_REFERENCES +#endif + +#if _GNUC_VER < 404 +#define _LIBCUDACXX_HAS_NO_DECLTYPE +#define _LIBCUDACXX_HAS_NO_UNICODE_CHARS +#define _LIBCUDACXX_HAS_NO_VARIADICS +#define _LIBCUDACXX_HAS_NO_GENERALIZED_INITIALIZERS +#endif // _GNUC_VER < 404 + +#if _GNUC_VER < 406 +#define _LIBCUDACXX_HAS_NO_NOEXCEPT +#define _LIBCUDACXX_HAS_NO_NULLPTR +#endif + +#endif // __GXX_EXPERIMENTAL_CXX0X__ + +#if !defined(_LIBCUDACXX_HAS_NO_ASAN) && !defined(__SANITIZE_ADDRESS__) +#define _LIBCUDACXX_HAS_NO_ASAN +#endif + +#if _GNUC_VER < 600 && defined(_LIBCUDACXX_COMPILER_NVCC) +#define _LIBCUDACXX_MISSING_GCC_MATH_INTRINSICS +#endif + +#if _GNUC_VER >= 700 +#define _LIBCUDACXX_LAUNDER(...) __builtin_launder(__VA_ARGS__) +#define _LIBCUDACXX_HAS_UNIQUE_OBJECT_REPRESENTATIONS(...) __has_unique_object_representations(__VA_ARGS__) +#define _LIBCUDACXX_IS_AGGREGATE(...) __is_aggregate(__VA_ARGS__) +#define _LIBCUDACXX_ADDRESSOF(...) __builtin_addressof(__VA_ARGS__) +#endif + +#if !defined(_LIBCUDACXX_ATOMIC_ALWAYS_LOCK_FREE) +#define _LIBCUDACXX_ATOMIC_ALWAYS_LOCK_FREE(...) __atomic_always_lock_free(__VA_ARGS__) +#endif + +// NVCC in C++11 mode freaks out about `__builtin_is_constant_evaluated`. +#if _GNUC_VER >= 900 && !(defined(_LIBCUDACXX_COMPILER_NVCC) && _LIBCUDACXX_STD_VER < 14) +#define _LIBCUDACXX_IS_CONSTANT_EVALUATED(...) __builtin_is_constant_evaluated(__VA_ARGS__) +#endif + +// NVCC cannot properly handle some deductions occuring within NOEXCEPT +// C++17 mode causes reference instatiation errors in tuple +#if (_GNUC_VER >= 702 && _GNUC_VER <= 805) +#if defined(_LIBCUDACXX_COMPILER_NVCC) && _LIBCUDACXX_STD_VER == 17 +#define _LIBCUDACXX_NO_TUPLE_NOEXCEPT +#endif +#endif + +#define _LIBCUDACXX_ALWAYS_INLINE __attribute__ ((__always_inline__)) + +#define _LIBCUDACXX_DISABLE_EXTENSION_WARNING __extension__ + +#elif defined(_LIBCUDACXX_COMPILER_MSVC) + +#define _LIBCUDACXX_TOSTRING2(x) #x +#define _LIBCUDACXX_TOSTRING(x) _LIBCUDACXX_TOSTRING2(x) +#define _LIBCUDACXX_WARNING(x) __pragma(message(__FILE__ "(" _LIBCUDACXX_TOSTRING(__LINE__) ") : warning note: " x)) + +#define _LIBCUDACXX_ADDRESSOF(...) __builtin_addressof(__VA_ARGS__) + +// https://github.com/microsoft/STL/blob/master/stl/inc/yvals_core.h#L353 +// warning C4100: 'quack': unreferenced formal parameter +// warning C4127: conditional expression is constant +// warning C4180: qualifier applied to function type has no meaning; ignored +// warning C4197: 'purr': top-level volatile in cast is ignored +// warning C4324: 'roar': structure was padded due to alignment specifier +// warning C4455: literal suffix identifiers that do not start with an underscore are reserved +// warning C4503: 'hum': decorated name length exceeded, name was truncated +// warning C4522: 'woof' : multiple assignment operators specified +// warning C4668: 'meow' is not defined as a preprocessor macro, replacing with '0' for '#if/#elif' +// warning C4800: 'boo': forcing value to bool 'true' or 'false' (performance warning) +// warning C4996: 'meow': was declared deprecated +#define _LIBCUDACXX_MSVC_DISABLED_WARNINGS \ + 4100 \ + 4127 \ + 4180 \ + 4197 \ + 4296 \ + 4324 \ + 4455 \ + 4503 \ + 4522 \ + 4668 \ + 4800 \ + 4996 \ + /**/ + +#if _MSC_VER < 1900 +#error "MSVC versions prior to Visual Studio 2015 are not supported" +#endif + +// MSVC implemented P0030R1 in 15.7, only available under C++17 +#if _MSC_VER < 1914 +#define _LIBCUDACXX_NO_HOST_CPP17_HYPOT +#endif + +#if _MSC_VER < 1920 +#define _LIBCUDACXX_HAS_NO_NOEXCEPT_SFINAE +#define _LIBCUDACXX_HAS_NO_PRAGMA_PUSH_POP_MACRO // This is conservative but correct. +#define _LIBCUDACXX_HAS_NO_LOGICAL_METAFUNCTION_ALIASES +#endif + +// MSVC exposed __iso_volatile intrinsics beginning on 1924 for x86 +#if _MSC_VER < 1924 + #define _LIBCUDACXX_MSVC_HAS_NO_ISO_INTRIN +#endif + +#if _MSC_VER > 1924 +# define _LIBCUDACXX_IS_CONSTANT_EVALUATED(...) __builtin_is_constant_evaluated(__VA_ARGS__) +#endif + +#define _LIBCUDACXX_UNDERLYING_TYPE(...) __underlying_type(__VA_ARGS__) +#define _LIBCUDACXX_IS_CONSTRUCTIBLE(...) __is_constructible(__VA_ARGS__) +#define _LIBCUDACXX_IS_DESTRUCTIBLE(...) __is_destructible(__VA_ARGS__) +#define _LIBCUDACXX_IS_TRIVIALLY_CONSTRUCTIBLE(...) __is_trivially_constructible(__VA_ARGS__) +#define _LIBCUDACXX_HAS_TRIVIAL_CONSTRUCTOR(...) __has_trivial_constructor(__VA_ARGS__) +#define _LIBCUDACXX_IS_NOTHROW_CONSTRUCTIBLE(...) __is_nothrow_constructible(__VA_ARGS__) +#define _LIBCUDACXX_HAS_NOTHROW_CONSTRUCTOR(...) __has_nothrow_constructor(__VA_ARGS__) +#define _LIBCUDACXX_HAS_NOTHROW_COPY(...) __has_nothrow_copy(__VA_ARGS__) +#define _LIBCUDACXX_HAS_NOTHROW_ASSIGN(...) __has_nothrow_assign(__VA_ARGS__) +#define _LIBCUDACXX_IS_NOTHROW_ASSIGNABLE(...) __is_nothrow_assignable(__VA_ARGS__) +#define _LIBCUDACXX_HAS_TRIVIAL_DESTRUCTOR(...) __has_trivial_destructor(__VA_ARGS__) +#define _LIBCUDACXX_IS_NOTHROW_DESTRUCTIBLE(...) __is_nothrow_destructible(__VA_ARGS__) +#define _LIBCUDACXX_IS_TRIVIALLY_DESTRUCTIBLE(...) __is_trivially_destructible(__VA_ARGS__) +#define _LIBCUDACXX_IS_TRIVIALLY_ASSIGNABLE(...) __is_trivially_assignable(__VA_ARGS__) +#define _LIBCUDACXX_IS_TRIVIALLY_COPYABLE(...) __is_trivially_copyable(__VA_ARGS__) +#define _LIBCUDACXX_IS_TRIVIAL(...) __is_trivial(__VA_ARGS__) +#define _LIBCUDACXX_IS_LITERAL(...) __is_literal_type(__VA_ARGS__) +#define _LIBCUDACXX_IS_UNION(...) __is_union(__VA_ARGS__) +#define _LIBCUDACXX_IS_CLASS(...) __is_class(__VA_ARGS__) +#if _MSC_VER > 1914 // MSVC doesn't include __is_aggregate until 19.15 +#define _LIBCUDACXX_IS_AGGREGATE(...) __is_aggregate(__VA_ARGS__) +#endif // _MSC_VER > 1914 +#define _LIBCUDACXX_IS_POD(...) __is_pod(__VA_ARGS__) +#define _LIBCUDACXX_IS_STANDARD_LAYOUT(...) __is_standard_layout(__VA_ARGS__) +#define _LIBCUDACXX_IS_ENUM(...) __is_enum(__VA_ARGS__) +#define _LIBCUDACXX_IS_EMPTY(...) __is_empty(__VA_ARGS__) +#define _LIBCUDACXX_IS_POLYMORPHIC(...) __is_polymorphic(__VA_ARGS__) +#define _LIBCUDACXX_HAS_VIRTUAL_DESTRUCTOR(...) __has_virtual_destructor(__VA_ARGS__) +#define _LIBCUDACXX_IS_BASE_OF(...) __is_base_of(__VA_ARGS__) +#define _LIBCUDACXX_IS_FINAL(...) __is_final(__VA_ARGS__) +#define _LIBCUDACXX_IS_CONVERTIBLE_TO(...) __is_convertible_to(__VA_ARGS__) +#define _LIBCUDACXX_IS_ASSIGNABLE(...) __is_assignable(__VA_ARGS__) +#define __alignof__ __alignof +#define _LIBCUDACXX_NORETURN __declspec(noreturn) +#define _ALIGNAS(x) __declspec(align(x)) +#define _ALIGNAS_TYPE(x) alignas(x) + +#if _LIBCUDACXX_STD_VER < 14 +#define _LIBCUDACXX_HAS_NO_CXX14_CONSTEXPR +#define _LIBCUDACXX_HAS_NO_VARIABLE_TEMPLATES +#endif + +#define _LIBCUDACXX_WEAK + +#define _LIBCUDACXX_HAS_NO_ASAN + +#define _LIBCUDACXX_ALWAYS_INLINE __forceinline + +#define _LIBCUDACXX_HAS_NO_VECTOR_EXTENSION + +#define _LIBCUDACXX_HAS_REFERENCE_QUALIFIED_FUNCTIONS +#define _LIBCUDACXX_DISABLE_EXTENSION_WARNING + +#elif defined(_LIBCUDACXX_COMPILER_IBM) + +#define _ALIGNAS(x) __attribute__((__aligned__(x))) +#define _ALIGNAS_TYPE(x) __attribute__((__aligned__(_LIBCUDACXX_ALIGNOF(x)))) +#define _ATTRIBUTE(x) __attribute__((x)) +#define _LIBCUDACXX_NORETURN __attribute__((noreturn)) + +#define _LIBCUDACXX_HAS_NO_UNICODE_CHARS +#define _LIBCUDACXX_IS_BASE_OF(...) __is_base_of(__VA_ARGS__) +#define _LIBCUDACXX_IS_FINAL(...) __is_final(__VA_ARGS__) +#define _LIBCUDACXX_HAS_NO_VARIABLE_TEMPLATES + +#if defined(_AIX) +#define __MULTILOCALE_API +#endif + +#define _LIBCUDACXX_HAS_NO_ASAN + +#define _LIBCUDACXX_ALWAYS_INLINE __attribute__ ((__always_inline__)) + +#define _LIBCUDACXX_HAS_NO_VECTOR_EXTENSION + +#elif defined(_LIBCUDACXX_COMPILER_NVRTC) || defined(_LIBCUDACXX_COMPILER_PGI) + +#if !defined(__cpp_constexpr) || __cpp_constexpr < 201304L +#define _LIBCUDACXX_HAS_NO_CXX14_CONSTEXPR +#endif + +#if !defined(__cpp_variable_templates) || __cpp_variable_templates < 201304L +#define _LIBCUDACXX_HAS_NO_VARIABLE_TEMPLATES +#endif + +#define _ALIGNAS_TYPE(x) alignas(x) +#define _ALIGNAS(x) alignas(x) + +#define _LIBCUDACXX_UNDERLYING_TYPE(...) __underlying_type(__VA_ARGS__) +#define _LIBCUDACXX_IS_CONSTRUCTIBLE(...) __is_constructible(__VA_ARGS__) +#define _LIBCUDACXX_IS_TRIVIALLY_CONSTRUCTIBLE(...) __is_trivially_constructible(__VA_ARGS__) +#define _LIBCUDACXX_HAS_TRIVIAL_CONSTRUCTOR(...) __has_trivial_constructor(__VA_ARGS__) +#define _LIBCUDACXX_IS_NOTHROW_CONSTRUCTIBLE(...) __is_nothrow_constructible(__VA_ARGS__) +#define _LIBCUDACXX_HAS_NOTHROW_CONSTRUCTOR(...) __has_nothrow_constructor(__VA_ARGS__) +#define _LIBCUDACXX_HAS_NOTHROW_COPY(...) __has_nothrow_copy(__VA_ARGS__) +#define _LIBCUDACXX_HAS_NOTHROW_ASSIGN(...) __has_nothrow_assign(__VA_ARGS__) +#define _LIBCUDACXX_IS_NOTHROW_ASSIGNABLE(...) __is_nothrow_assignable(__VA_ARGS__) +#define _LIBCUDACXX_HAS_TRIVIAL_DESTRUCTOR(...) __has_trivial_destructor(__VA_ARGS__) +#define _LIBCUDACXX_IS_NOTHROW_DESTRUCTIBLE(...) __is_nothrow_destructible(__VA_ARGS__) +#define _LIBCUDACXX_IS_TRIVIALLY_DESTRUCTIBLE(...) __is_trivially_destructible(__VA_ARGS__) +#define _LIBCUDACXX_IS_TRIVIALLY_ASSIGNABLE(...) __is_trivially_assignable(__VA_ARGS__) +#define _LIBCUDACXX_IS_TRIVIALLY_COPYABLE(...) __is_trivially_copyable(__VA_ARGS__) +#define _LIBCUDACXX_IS_TRIVIAL(...) __is_trivial(__VA_ARGS__) +#define _LIBCUDACXX_IS_LITERAL(...) __is_literal_type(__VA_ARGS__) +#define _LIBCUDACXX_IS_UNION(...) __is_union(__VA_ARGS__) +#define _LIBCUDACXX_IS_CLASS(...) __is_class(__VA_ARGS__) +#define _LIBCUDACXX_IS_AGGREGATE(...) __is_aggregate(__VA_ARGS__) +#define _LIBCUDACXX_IS_POD(...) __is_pod(__VA_ARGS__) +#define _LIBCUDACXX_IS_STANDARD_LAYOUT(...) __is_standard_layout(__VA_ARGS__) +#define _LIBCUDACXX_IS_ENUM(...) __is_enum(__VA_ARGS__) +#define _LIBCUDACXX_IS_EMPTY(...) __is_empty(__VA_ARGS__) +#define _LIBCUDACXX_IS_POLYMORPHIC(...) __is_polymorphic(__VA_ARGS__) +#define _LIBCUDACXX_HAS_VIRTUAL_DESTRUCTOR(...) __has_virtual_destructor(__VA_ARGS__) +#define _LIBCUDACXX_IS_BASE_OF(...) __is_base_of(__VA_ARGS__) +#define _LIBCUDACXX_IS_FINAL(...) __is_final(__VA_ARGS__) +#define _LIBCUDACXX_IS_CONVERTIBLE_TO(...) __is_convertible_to(__VA_ARGS__) +#define _LIBCUDACXX_DISABLE_EXTENSION_WARNING + +#define _LIBCUDACXX_HAS_REFERENCE_QUALIFIED_FUNCTIONS + +#define _LIBCUDACXX_HAS_NO_ASAN + +#define _LIBCUDACXX_ALWAYS_INLINE __attribute__ ((__always_inline__)) +#define _LIBCUDACXX_NORETURN __attribute__ ((noreturn)) + +#define _GLIBCXX_INCLUDE_NEXT_C_HEADERS + +#endif // _LIBCUDACXX_COMPILER_[CLANG|GCC|MSVC|IBM|NVRTC] + +#if defined(_LIBCUDACXX_COMPILER_PGI) && !defined(__cuda_std__) +// Forcefully disable visibility controls when used as the standard library with NVC++. +// TODO: reevaluate. +#define _LIBCUDACXX_HIDE_FROM_ABI +#ifndef _LIBCUDACXX_DISABLE_EXTERN_TEMPLATE +#define _LIBCUDACXX_DISABLE_EXTERN_TEMPLATE +#endif +#define _LIBCUDACXX_DISABLE_VISIBILITY_ANNOTATIONS +#endif + +#if defined(_LIBCUDACXX_OBJECT_FORMAT_COFF) + +#ifdef _DLL +# define _LIBCUDACXX_CRT_FUNC __declspec(dllimport) +#else +# define _LIBCUDACXX_CRT_FUNC +#endif + +#if defined(_LIBCUDACXX_DISABLE_VISIBILITY_ANNOTATIONS) +# define _LIBCUDACXX_DLL_VIS +# define _LIBCUDACXX_EXTERN_TEMPLATE_TYPE_VIS +# define _LIBCUDACXX_CLASS_TEMPLATE_INSTANTIATION_VIS +# define _LIBCUDACXX_OVERRIDABLE_FUNC_VIS +# define _LIBCUDACXX_EXPORTED_FROM_ABI +#elif defined(_LIBCUDACXX_BUILDING_LIBRARY) +# define _LIBCUDACXX_DLL_VIS __declspec(dllexport) +# if defined(__MINGW32__) +# define _LIBCUDACXX_EXTERN_TEMPLATE_TYPE_VIS _LIBCUDACXX_DLL_VIS +# define _LIBCUDACXX_CLASS_TEMPLATE_INSTANTIATION_VIS +# else +# define _LIBCUDACXX_EXTERN_TEMPLATE_TYPE_VIS +# define _LIBCUDACXX_CLASS_TEMPLATE_INSTANTIATION_VIS _LIBCUDACXX_DLL_VIS +# endif +# define _LIBCUDACXX_OVERRIDABLE_FUNC_VIS _LIBCUDACXX_DLL_VIS +# define _LIBCUDACXX_EXPORTED_FROM_ABI __declspec(dllexport) +#else +# define _LIBCUDACXX_DLL_VIS __declspec(dllimport) +# define _LIBCUDACXX_EXTERN_TEMPLATE_TYPE_VIS _LIBCUDACXX_DLL_VIS +# define _LIBCUDACXX_CLASS_TEMPLATE_INSTANTIATION_VIS +# define _LIBCUDACXX_OVERRIDABLE_FUNC_VIS +# define _LIBCUDACXX_EXPORTED_FROM_ABI __declspec(dllimport) +#endif + +#define _LIBCUDACXX_TYPE_VIS _LIBCUDACXX_DLL_VIS +#define _LIBCUDACXX_FUNC_VIS _LIBCUDACXX_DLL_VIS +#define _LIBCUDACXX_EXCEPTION_ABI _LIBCUDACXX_DLL_VIS +#define _LIBCUDACXX_HIDDEN +#define _LIBCUDACXX_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS +#define _LIBCUDACXX_TEMPLATE_VIS +#define _LIBCUDACXX_ENUM_VIS + +#endif // defined(_LIBCUDACXX_OBJECT_FORMAT_COFF) + +#ifndef _LIBCUDACXX_HIDDEN +# if !defined(_LIBCUDACXX_DISABLE_VISIBILITY_ANNOTATIONS) +# define _LIBCUDACXX_HIDDEN __attribute__ ((__visibility__("hidden"))) +# else +# define _LIBCUDACXX_HIDDEN +# endif +#endif + +#ifndef _LIBCUDACXX_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS +# if !defined(_LIBCUDACXX_DISABLE_VISIBILITY_ANNOTATIONS) +// The inline should be removed once PR32114 is resolved +# define _LIBCUDACXX_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS inline _LIBCUDACXX_HIDDEN +# else +# define _LIBCUDACXX_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS +# endif +#endif + +#ifndef _LIBCUDACXX_FUNC_VIS +# if !defined(_LIBCUDACXX_DISABLE_VISIBILITY_ANNOTATIONS) +# define _LIBCUDACXX_FUNC_VIS __attribute__ ((__visibility__("default"))) +# else +# define _LIBCUDACXX_FUNC_VIS +# endif +#endif + +#ifndef _LIBCUDACXX_TYPE_VIS +# if !defined(_LIBCUDACXX_DISABLE_VISIBILITY_ANNOTATIONS) +# define _LIBCUDACXX_TYPE_VIS __attribute__ ((__visibility__("default"))) +# else +# define _LIBCUDACXX_TYPE_VIS +# endif +#endif + +#ifndef _LIBCUDACXX_TEMPLATE_VIS +# if !defined(_LIBCUDACXX_DISABLE_VISIBILITY_ANNOTATIONS) +# if __has_attribute(__type_visibility__) +# define _LIBCUDACXX_TEMPLATE_VIS __attribute__ ((__type_visibility__("default"))) +# else +# define _LIBCUDACXX_TEMPLATE_VIS __attribute__ ((__visibility__("default"))) +# endif +# else +# define _LIBCUDACXX_TEMPLATE_VIS +# endif +#endif + +#ifndef _LIBCUDACXX_EXPORTED_FROM_ABI +# if !defined(_LIBCUDACXX_DISABLE_VISIBILITY_ANNOTATIONS) +# define _LIBCUDACXX_EXPORTED_FROM_ABI __attribute__((__visibility__("default"))) +# else +# define _LIBCUDACXX_EXPORTED_FROM_ABI +# endif +#endif + +#ifndef _LIBCUDACXX_OVERRIDABLE_FUNC_VIS +#define _LIBCUDACXX_OVERRIDABLE_FUNC_VIS _LIBCUDACXX_FUNC_VIS +#endif + +#ifndef _LIBCUDACXX_EXCEPTION_ABI +# if !defined(_LIBCUDACXX_DISABLE_VISIBILITY_ANNOTATIONS) +# define _LIBCUDACXX_EXCEPTION_ABI __attribute__ ((__visibility__("default"))) +# else +# define _LIBCUDACXX_EXCEPTION_ABI +# endif +#endif + +#ifndef _LIBCUDACXX_ENUM_VIS +# if !defined(_LIBCUDACXX_DISABLE_VISIBILITY_ANNOTATIONS) && __has_attribute(__type_visibility__) +# define _LIBCUDACXX_ENUM_VIS __attribute__ ((__type_visibility__("default"))) +# else +# define _LIBCUDACXX_ENUM_VIS +# endif +#endif + +#ifndef _LIBCUDACXX_EXTERN_TEMPLATE_TYPE_VIS +# if !defined(_LIBCUDACXX_DISABLE_VISIBILITY_ANNOTATIONS) && __has_attribute(__type_visibility__) +# define _LIBCUDACXX_EXTERN_TEMPLATE_TYPE_VIS __attribute__ ((__visibility__("default"))) +# else +# define _LIBCUDACXX_EXTERN_TEMPLATE_TYPE_VIS +# endif +#endif + +#ifndef _LIBCUDACXX_CLASS_TEMPLATE_INSTANTIATION_VIS +#define _LIBCUDACXX_CLASS_TEMPLATE_INSTANTIATION_VIS +#endif + +#if __has_attribute(internal_linkage) +# define _LIBCUDACXX_INTERNAL_LINKAGE __attribute__ ((internal_linkage)) +#else +# define _LIBCUDACXX_INTERNAL_LINKAGE _LIBCUDACXX_ALWAYS_INLINE +#endif + +#if __has_attribute(exclude_from_explicit_instantiation) +# define _LIBCUDACXX_EXCLUDE_FROM_EXPLICIT_INSTANTIATION __attribute__ ((__exclude_from_explicit_instantiation__)) +#else + // Try to approximate the effect of exclude_from_explicit_instantiation + // (which is that entities are not assumed to be provided by explicit + // template instantiations in the dylib) by always inlining those entities. +# define _LIBCUDACXX_EXCLUDE_FROM_EXPLICIT_INSTANTIATION _LIBCUDACXX_ALWAYS_INLINE +#endif + +#ifndef _LIBCUDACXX_HIDE_FROM_ABI_PER_TU +# ifndef _LIBCUDACXX_HIDE_FROM_ABI_PER_TU_BY_DEFAULT +# define _LIBCUDACXX_HIDE_FROM_ABI_PER_TU 0 +# else +# define _LIBCUDACXX_HIDE_FROM_ABI_PER_TU 1 +# endif +#endif + +#ifndef _LIBCUDACXX_HAS_MERGED_TYPEINFO_NAMES_DEFAULT +# ifdef _LIBCUDACXX_OBJECT_FORMAT_COFF // Windows binaries can't merge typeinfos. +# define _LIBCUDACXX_HAS_MERGED_TYPEINFO_NAMES_DEFAULT 0 +#else +// TODO: This isn't strictly correct on ELF platforms due to llvm.org/PR37398 +// And we should consider defaulting to OFF. +# define _LIBCUDACXX_HAS_MERGED_TYPEINFO_NAMES_DEFAULT 1 +#endif +#endif + +#ifndef _LIBCUDACXX_HIDE_FROM_ABI +# if _LIBCUDACXX_HIDE_FROM_ABI_PER_TU +# define _LIBCUDACXX_HIDE_FROM_ABI _LIBCUDACXX_HIDDEN _LIBCUDACXX_INTERNAL_LINKAGE +# else +# define _LIBCUDACXX_HIDE_FROM_ABI _LIBCUDACXX_HIDDEN _LIBCUDACXX_EXCLUDE_FROM_EXPLICIT_INSTANTIATION +# endif +#endif + +#ifdef _LIBCUDACXX_BUILDING_LIBRARY +# if _LIBCUDACXX_ABI_VERSION > 1 +# define _LIBCUDACXX_HIDE_FROM_ABI_AFTER_V1 _LIBCUDACXX_HIDE_FROM_ABI +# else +# define _LIBCUDACXX_HIDE_FROM_ABI_AFTER_V1 +# endif +#else +# define _LIBCUDACXX_HIDE_FROM_ABI_AFTER_V1 _LIBCUDACXX_HIDE_FROM_ABI +#endif + +// Just so we can migrate to the new macros gradually. +#define _LIBCUDACXX_INLINE_VISIBILITY _LIBCUDACXX_HIDE_FROM_ABI + +#define _LIBCUDACXX_EXECUTION_SPACE_SPECIFIER + +// Inline namespaces are available in Clang/GCC/MSVC regardless of C++ dialect. +#define _LIBCUDACXX_BEGIN_NAMESPACE_STD namespace std { inline namespace _LIBCUDACXX_ABI_NAMESPACE { +#define _LIBCUDACXX_END_NAMESPACE_STD } } +#define _CUDA_VSTD std::_LIBCUDACXX_ABI_NAMESPACE +_LIBCUDACXX_BEGIN_NAMESPACE_STD _LIBCUDACXX_END_NAMESPACE_STD + +#define _LIBCUDACXX_BEGIN_NAMESPACE_STD_NOVERSION namespace std { +#define _LIBCUDACXX_END_NAMESPACE_STD_NOVERSION } + +#if _LIBCUDACXX_STD_VER >= 17 +#define _LIBCUDACXX_BEGIN_NAMESPACE_FILESYSTEM \ + _LIBCUDACXX_BEGIN_NAMESPACE_STD inline namespace __fs { namespace filesystem { +#else +#define _LIBCUDACXX_BEGIN_NAMESPACE_FILESYSTEM \ + _LIBCUDACXX_BEGIN_NAMESPACE_STD namespace __fs { namespace filesystem { +#endif + +#define _LIBCUDACXX_END_NAMESPACE_FILESYSTEM \ + _LIBCUDACXX_END_NAMESPACE_STD } } + +#define _CUDA_VSTD_FS _CUDA_VSTD::__fs::filesystem + +#ifndef _LIBCUDACXX_PREFERRED_OVERLOAD +# if __has_attribute(__enable_if__) +# define _LIBCUDACXX_PREFERRED_OVERLOAD __attribute__ ((__enable_if__(true, ""))) +# endif +#endif + +#ifndef _LIBCUDACXX_HAS_NO_NOEXCEPT +# define _NOEXCEPT noexcept +# define _NOEXCEPT_(x) noexcept(x) +#else +# define _NOEXCEPT throw() +# define _NOEXCEPT_(x) +#endif + +#ifdef _LIBCUDACXX_HAS_NO_UNICODE_CHARS +typedef unsigned short char16_t; +typedef unsigned int char32_t; +#endif // _LIBCUDACXX_HAS_NO_UNICODE_CHARS + +#ifndef __SIZEOF_INT128__ +#define _LIBCUDACXX_HAS_NO_INT128 +#endif + +#ifdef _LIBCUDACXX_CXX03_LANG +# define static_assert(...) _Static_assert(__VA_ARGS__) +# define decltype(...) __decltype(__VA_ARGS__) +#endif // _LIBCUDACXX_CXX03_LANG + +#ifdef _LIBCUDACXX_CXX03_LANG +# define _LIBCUDACXX_CONSTEXPR +#else +# define _LIBCUDACXX_CONSTEXPR constexpr +#endif + +#ifdef _LIBCUDACXX_CXX03_LANG +# define _LIBCUDACXX_DEFAULT {} +#else +# define _LIBCUDACXX_DEFAULT = default; +#endif + +#ifdef _LIBCUDACXX_CXX03_LANG +# define _LIBCUDACXX_EQUAL_DELETE +#else +# define _LIBCUDACXX_EQUAL_DELETE = delete +#endif + +#ifdef __GNUC__ +# define _LIBCUDACXX_NOALIAS __attribute__((__malloc__)) +#else +# define _LIBCUDACXX_NOALIAS +#endif + +#if __has_feature(cxx_explicit_conversions) || defined(__IBMCPP__) || \ + (!defined(_LIBCUDACXX_CXX03_LANG) && defined(__GNUC__)) // All supported GCC versions +# define _LIBCUDACXX_EXPLICIT explicit +#else +# define _LIBCUDACXX_EXPLICIT +#endif + +#if !__has_builtin(__builtin_operator_new) || !__has_builtin(__builtin_operator_delete) +#define _LIBCUDACXX_HAS_NO_BUILTIN_OPERATOR_NEW_DELETE +#endif + +#ifdef _LIBCUDACXX_HAS_NO_STRONG_ENUMS +# define _LIBCUDACXX_DECLARE_STRONG_ENUM(x) struct _LIBCUDACXX_TYPE_VIS x { enum __lx +# define _LIBCUDACXX_DECLARE_STRONG_ENUM_EPILOG(x) \ + __lx __v_; \ + _LIBCUDACXX_INLINE_VISIBILITY x(__lx __v) : __v_(__v) {} \ + _LIBCUDACXX_INLINE_VISIBILITY explicit x(int __v) : __v_(static_cast<__lx>(__v)) {} \ + _LIBCUDACXX_INLINE_VISIBILITY operator int() const {return __v_;} \ + }; +#else // _LIBCUDACXX_HAS_NO_STRONG_ENUMS +# define _LIBCUDACXX_DECLARE_STRONG_ENUM(x) enum class _LIBCUDACXX_ENUM_VIS x +# define _LIBCUDACXX_DECLARE_STRONG_ENUM_EPILOG(x) +#endif // _LIBCUDACXX_HAS_NO_STRONG_ENUMS + +#ifdef _LIBCUDACXX_DEBUG +# if _LIBCUDACXX_DEBUG == 0 +# define _LIBCUDACXX_DEBUG_LEVEL 1 +# elif _LIBCUDACXX_DEBUG == 1 +# define _LIBCUDACXX_DEBUG_LEVEL 2 +# else +# error Supported values for _LIBCUDACXX_DEBUG are 0 and 1 +# endif +# if !defined(_LIBCUDACXX_BUILDING_LIBRARY) +# define _LIBCUDACXX_EXTERN_TEMPLATE(...) +# endif +#endif + +#ifdef _LIBCUDACXX_DISABLE_EXTERN_TEMPLATE +#define _LIBCUDACXX_EXTERN_TEMPLATE(...) +#define _LIBCUDACXX_EXTERN_TEMPLATE2(...) +#endif + +#ifndef _LIBCUDACXX_EXTERN_TEMPLATE +#define _LIBCUDACXX_EXTERN_TEMPLATE(...) extern template __VA_ARGS__; +#endif + +#ifndef _LIBCUDACXX_EXTERN_TEMPLATE2 +#define _LIBCUDACXX_EXTERN_TEMPLATE2(...) extern template __VA_ARGS__; +#endif + +#if defined(__APPLE__) || defined(__FreeBSD__) || defined(_LIBCUDACXX_MSVCRT_LIKE) || \ + defined(__sun__) || defined(__NetBSD__) || defined(__CloudABI__) +#define _LIBCUDACXX_LOCALE__L_EXTENSIONS 1 +#endif + +#if defined(__unix__) || (defined(__APPLE__) && defined(__MACH__)) +// Most unix variants have catopen. These are the specific ones that don't. +# if !defined(__BIONIC__) && !defined(_NEWLIB_VERSION) +# define _LIBCUDACXX_HAS_CATOPEN 1 +# endif +#endif + +#ifdef __FreeBSD__ +#define _DECLARE_C99_LDBL_MATH 1 +#endif + +#if defined(_LIBCUDACXX_ABI_MICROSOFT) && !defined(_LIBCUDACXX_NO_VCRUNTIME) +# define _LIBCUDACXX_DEFER_NEW_TO_VCRUNTIME +#endif + +// If we are getting operator new from the MSVC CRT, then allocation overloads +// for align_val_t were added in 19.12, aka VS 2017 version 15.3. +#if defined(_LIBCUDACXX_MSVCRT) && defined(_MSC_VER) && _MSC_VER < 1912 +# define _LIBCUDACXX_HAS_NO_LIBRARY_ALIGNED_ALLOCATION +#elif defined(_LIBCUDACXX_ABI_VCRUNTIME) && !defined(__cpp_aligned_new) + // We're deferring to Microsoft's STL to provide aligned new et al. We don't + // have it unless the language feature test macro is defined. +# define _LIBCUDACXX_HAS_NO_LIBRARY_ALIGNED_ALLOCATION +#endif + +#if defined(__APPLE__) +# if !defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && \ + defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) +# define __MAC_OS_X_VERSION_MIN_REQUIRED __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ +# endif +#endif // defined(__APPLE__) + +#if !defined(_LIBCUDACXX_HAS_NO_ALIGNED_ALLOCATION) && \ + (defined(_LIBCUDACXX_HAS_NO_LIBRARY_ALIGNED_ALLOCATION) || \ + (!defined(__cpp_aligned_new) || __cpp_aligned_new < 201606)) +# define _LIBCUDACXX_HAS_NO_ALIGNED_ALLOCATION +#endif + +#if defined(__APPLE__) || defined(__FreeBSD__) +#define _LIBCUDACXX_HAS_DEFAULTRUNELOCALE +#endif + +#if defined(__APPLE__) || defined(__FreeBSD__) || defined(__sun__) +#define _LIBCUDACXX_WCTYPE_IS_MASK +#endif + +#if _LIBCUDACXX_STD_VER <= 17 || !defined(__cpp_char8_t) +#define _LIBCUDACXX_NO_HAS_CHAR8_T +#endif + +// Deprecation macros. +// +// Deprecations warnings are always enabled, except when users explicitly opt-out +// by defining _LIBCUDACXX_DISABLE_DEPRECATION_WARNINGS. +#if !defined(_LIBCUDACXX_DISABLE_DEPRECATION_WARNINGS) +# if __has_attribute(deprecated) +# define _LIBCUDACXX_DEPRECATED __attribute__ ((deprecated)) +# elif _LIBCUDACXX_STD_VER > 11 +# define _LIBCUDACXX_DEPRECATED [[deprecated]] +# else +# define _LIBCUDACXX_DEPRECATED +# endif +#else +# define _LIBCUDACXX_DEPRECATED +#endif + +#if !defined(_LIBCUDACXX_CXX03_LANG) +# define _LIBCUDACXX_DEPRECATED_IN_CXX11 _LIBCUDACXX_DEPRECATED +#else +# define _LIBCUDACXX_DEPRECATED_IN_CXX11 +#endif + +#if _LIBCUDACXX_STD_VER >= 14 +# define _LIBCUDACXX_DEPRECATED_IN_CXX14 _LIBCUDACXX_DEPRECATED +#else +# define _LIBCUDACXX_DEPRECATED_IN_CXX14 +#endif + +#if _LIBCUDACXX_STD_VER >= 17 +# define _LIBCUDACXX_DEPRECATED_IN_CXX17 _LIBCUDACXX_DEPRECATED +#else +# define _LIBCUDACXX_DEPRECATED_IN_CXX17 +#endif + +#if _LIBCUDACXX_STD_VER <= 11 +# define _LIBCUDACXX_EXPLICIT_AFTER_CXX11 +#else +# define _LIBCUDACXX_EXPLICIT_AFTER_CXX11 explicit +#endif + +#if _LIBCUDACXX_STD_VER > 11 && !defined(_LIBCUDACXX_HAS_NO_CXX14_CONSTEXPR) +# define _LIBCUDACXX_CONSTEXPR_AFTER_CXX11 constexpr +#else +# define _LIBCUDACXX_CONSTEXPR_AFTER_CXX11 +#endif + +#if _LIBCUDACXX_STD_VER > 14 && !defined(_LIBCUDACXX_HAS_NO_CXX14_CONSTEXPR) +# define _LIBCUDACXX_CONSTEXPR_AFTER_CXX14 constexpr +#else +# define _LIBCUDACXX_CONSTEXPR_AFTER_CXX14 +#endif + +#if _LIBCUDACXX_STD_VER > 17 && !defined(_LIBCUDACXX_HAS_NO_CXX14_CONSTEXPR) +# define _LIBCUDACXX_CONSTEXPR_AFTER_CXX17 constexpr +#else +# define _LIBCUDACXX_CONSTEXPR_AFTER_CXX17 +#endif + +// Macros to enter and leave a state where deprecation warnings are suppressed. +#if defined(_LIBCUDACXX_COMPILER_CLANG) || defined(_LIBCUDACXX_COMPILER_GCC) +# define _LIBCUDACXX_SUPPRESS_DEPRECATED_PUSH \ + _Pragma("GCC diagnostic push") \ + _Pragma("GCC diagnostic ignored \"-Wdeprecated\"") \ + _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") +# define _LIBCUDACXX_SUPPRESS_DEPRECATED_POP \ + _Pragma("GCC diagnostic pop") +#else +# define _LIBCUDACXX_SUPPRESS_DEPRECATED_PUSH +# define _LIBCUDACXX_SUPPRESS_DEPRECATED_POP +#endif + +// The _LIBCUDACXX_NODISCARD_ATTRIBUTE should only be used to define other +// NODISCARD macros to the correct attribute. +#if __has_cpp_attribute(nodiscard) || (defined(_LIBCUDACXX_COMPILER_MSVC) && _LIBCUDACXX_STD_VER > 14) +# define _LIBCUDACXX_NODISCARD_ATTRIBUTE [[nodiscard]] +#elif defined(_LIBCUDACXX_COMPILER_CLANG) && !defined(_LIBCUDACXX_CXX03_LANG) +# define _LIBCUDACXX_NODISCARD_ATTRIBUTE [[clang::warn_unused_result]] +#else +// We can't use GCC's [[gnu::warn_unused_result]] and +// __attribute__((warn_unused_result)), because GCC does not silence them via +// (void) cast. +# define _LIBCUDACXX_NODISCARD_ATTRIBUTE +#endif + +// _LIBCUDACXX_NODISCARD_EXT may be used to apply [[nodiscard]] to entities not +// specified as such as an extension. +#if defined(_LIBCUDACXX_ENABLE_NODISCARD) && !defined(_LIBCUDACXX_DISABLE_NODISCARD_EXT) +# define _LIBCUDACXX_NODISCARD_EXT _LIBCUDACXX_NODISCARD_ATTRIBUTE +#else +# define _LIBCUDACXX_NODISCARD_EXT +#endif + +#if !defined(_LIBCUDACXX_DISABLE_NODISCARD_AFTER_CXX17) && \ + (_LIBCUDACXX_STD_VER > 17 || defined(_LIBCUDACXX_ENABLE_NODISCARD)) +# define _LIBCUDACXX_NODISCARD_AFTER_CXX17 _LIBCUDACXX_NODISCARD_ATTRIBUTE +#else +# define _LIBCUDACXX_NODISCARD_AFTER_CXX17 +#endif + +#if _LIBCUDACXX_STD_VER > 14 && defined(__cpp_inline_variables) && (__cpp_inline_variables >= 201606L) +# define _LIBCUDACXX_INLINE_VAR inline +#else +# define _LIBCUDACXX_INLINE_VAR +#endif + +#ifdef _LIBCUDACXX_HAS_NO_RVALUE_REFERENCES +# define _LIBCUDACXX_EXPLICIT_MOVE(x) _CUDA_VSTD::move(x) +#else +# define _LIBCUDACXX_EXPLICIT_MOVE(x) (x) +#endif + +#ifndef _LIBCUDACXX_CONSTEXPR_IF_NODEBUG +#if defined(_LIBCUDACXX_DEBUG) || defined(_LIBCUDACXX_HAS_NO_CXX14_CONSTEXPR) +#define _LIBCUDACXX_CONSTEXPR_IF_NODEBUG +#else +#define _LIBCUDACXX_CONSTEXPR_IF_NODEBUG constexpr +#endif +#endif + +#if __has_attribute(no_destroy) +# define _LIBCUDACXX_NO_DESTROY __attribute__((__no_destroy__)) +#else +# define _LIBCUDACXX_NO_DESTROY +#endif + +#ifndef _LIBCUDACXX_HAS_NO_ASAN +extern "C" _LIBCUDACXX_FUNC_VIS void __sanitizer_annotate_contiguous_container( + const void *, const void *, const void *, const void *); +#endif + +// Try to find out if RTTI is disabled. +// g++ and cl.exe have RTTI on by default and define a macro when it is. +// g++ only defines the macro in 4.3.2 and onwards. +#if !defined(_LIBCUDACXX_NO_RTTI) +# if defined(__GNUC__) && \ + ((__GNUC__ >= 5) || \ + (__GNUC__ == 4 && (__GNUC_MINOR__ >= 3 || __GNUC_PATCHLEVEL__ >= 2))) && \ + !defined(__GXX_RTTI) +# define _LIBCUDACXX_NO_RTTI +# elif defined(_LIBCUDACXX_COMPILER_MSVC) && !defined(_CPPRTTI) +# define _LIBCUDACXX_NO_RTTI +# endif +#endif + +#ifndef _LIBCUDACXX_WEAK +#define _LIBCUDACXX_WEAK __attribute__((__weak__)) +#endif + +// Thread API +#if !defined(_LIBCUDACXX_HAS_NO_THREADS) && \ + !defined(_LIBCUDACXX_HAS_THREAD_API_PTHREAD) && \ + !defined(_LIBCUDACXX_HAS_THREAD_API_WIN32) && \ + !defined(_LIBCUDACXX_HAS_THREAD_API_EXTERNAL) +# if defined(__FreeBSD__) || \ + defined(__Fuchsia__) || \ + defined(__wasi__) || \ + defined(__NetBSD__) || \ + defined(__linux__) || \ + defined(__GNU__) || \ + defined(__APPLE__) || \ + defined(__CloudABI__) || \ + defined(__sun__) || \ + (defined(__MINGW32__) && __has_include()) +# define _LIBCUDACXX_HAS_THREAD_API_PTHREAD +# elif defined(_LIBCUDACXX_WIN32API) +# define _LIBCUDACXX_HAS_THREAD_API_WIN32 +# else +# error "No thread API" +# endif // _LIBCUDACXX_HAS_THREAD_API +#endif // _LIBCUDACXX_HAS_NO_THREADS + +#if defined(_LIBCUDACXX_HAS_THREAD_API_PTHREAD) +#if defined(__ANDROID__) && __ANDROID_API__ >= 30 +#define _LIBCUDACXX_HAS_COND_CLOCKWAIT +#elif defined(_LIBCUDACXX_GLIBC_PREREQ) +#if _LIBCUDACXX_GLIBC_PREREQ(2, 30) +#define _LIBCUDACXX_HAS_COND_CLOCKWAIT +#endif +#endif +#endif + +#if defined(_LIBCUDACXX_HAS_NO_THREADS) && defined(_LIBCUDACXX_HAS_THREAD_API_PTHREAD) +#error _LIBCUDACXX_HAS_THREAD_API_PTHREAD may only be defined when \ + _LIBCUDACXX_HAS_NO_THREADS is not defined. +#endif + +#if defined(_LIBCUDACXX_HAS_NO_THREADS) && defined(_LIBCUDACXX_HAS_THREAD_API_EXTERNAL) +#error _LIBCUDACXX_HAS_THREAD_API_EXTERNAL may not be defined when \ + _LIBCUDACXX_HAS_NO_THREADS is defined. +#endif + +#if defined(__STDCPP_THREADS__) && defined(_LIBCUDACXX_HAS_NO_THREADS) +#error _LIBCUDACXX_HAS_NO_THREADS cannot be set when __STDCPP_THREADS__ is set. +#endif + +#if !defined(_LIBCUDACXX_HAS_NO_THREADS) && !defined(__STDCPP_THREADS__) +#define __STDCPP_THREADS__ 1 +#endif + +// The glibc and Bionic implementation of pthreads implements +// pthread_mutex_destroy as nop for regular mutexes. Additionally, Win32 +// mutexes have no destroy mechanism. +// +// This optimization can't be performed on Apple platforms, where +// pthread_mutex_destroy can allow the kernel to release resources. +// See https://llvm.org/D64298 for details. +// +// TODO(EricWF): Enable this optimization on Bionic after speaking to their +// respective stakeholders. +#if (defined(_LIBCUDACXX_HAS_THREAD_API_PTHREAD) && defined(__GLIBC__)) \ + || defined(_LIBCUDACXX_HAS_THREAD_API_WIN32) +# define _LIBCUDACXX_HAS_TRIVIAL_MUTEX_DESTRUCTION +#endif + +// Destroying a condvar is a nop on Windows. +// +// This optimization can't be performed on Apple platforms, where +// pthread_cond_destroy can allow the kernel to release resources. +// See https://llvm.org/D64298 for details. +// +// TODO(EricWF): This is potentially true for some pthread implementations +// as well. +#if defined(_LIBCUDACXX_HAS_THREAD_API_WIN32) +# define _LIBCUDACXX_HAS_TRIVIAL_CONDVAR_DESTRUCTION +#endif + +// Systems that use capability-based security (FreeBSD with Capsicum, +// Nuxi CloudABI) may only provide local filesystem access (using *at()). +// Functions like open(), rename(), unlink() and stat() should not be +// used, as they attempt to access the global filesystem namespace. +#ifdef __CloudABI__ +#define _LIBCUDACXX_HAS_NO_GLOBAL_FILESYSTEM_NAMESPACE +#endif + +// CloudABI is intended for running networked services. Processes do not +// have standard input and output channels. +#ifdef __CloudABI__ +#define _LIBCUDACXX_HAS_NO_STDIN +#define _LIBCUDACXX_HAS_NO_STDOUT +#endif + +// Some systems do not provide gets() in their C library, for security reasons. +#ifndef _LIBCUDACXX_C_HAS_NO_GETS +# if defined(_LIBCUDACXX_MSVCRT) || (defined(__FreeBSD__) && __FreeBSD__ >= 13) +# define _LIBCUDACXX_C_HAS_NO_GETS +# endif +#endif + +#if defined(__BIONIC__) || defined(__CloudABI__) || \ + defined(__Fuchsia__) || defined(__wasi__) || defined(_LIBCUDACXX_HAS_MUSL_LIBC) +#define _LIBCUDACXX_PROVIDES_DEFAULT_RUNE_TABLE +#endif + +// Thread-unsafe functions such as strtok() and localtime() +// are not available. +#ifdef __CloudABI__ +#define _LIBCUDACXX_HAS_NO_THREAD_UNSAFE_C_FUNCTIONS +#endif + +// TODO: Support C11 Atomics? +// #if __has_feature(cxx_atomic) || __has_extension(c_atomic) || __has_keyword(_Atomic) +// # define _LIBCUDACXX_HAS_C_ATOMIC_IMP +#if defined(_LIBCUDACXX_COMPILER_CLANG) +# define _LIBCUDACXX_HAS_GCC_ATOMIC_IMP +#elif defined(_LIBCUDACXX_COMPILER_GCC) || defined(_LIBCUDACXX_COMPILER_PGI) +# define _LIBCUDACXX_HAS_GCC_ATOMIC_IMP +#elif defined(_LIBCUDACXX_COMPILER_PGI) +# define _LIBCUDACXX_HAS_GCC_ATOMIC_IMP +#elif defined(_LIBCUDACXX_COMPILER_MSVC) +# define _LIBCUDACXX_HAS_MSVC_ATOMIC_IMPL +#endif + +// CUDA Atomics supersede host atomics in order to insert the host/device dispatch layer +#if defined(_LIBCUDACXX_COMPILER_NVCC) || defined(_LIBCUDACXX_COMPILER_NVRTC) || defined(_LIBCUDACXX_COMPILER_PGI) +# define _LIBCUDACXX_HAS_CUDA_ATOMIC_IMPL +#endif + +#if (!defined(_LIBCUDACXX_HAS_C_ATOMIC_IMP) && \ + !defined(_LIBCUDACXX_HAS_GCC_ATOMIC_IMP) && \ + !defined(_LIBCUDACXX_HAS_EXTERNAL_ATOMIC_IMP)) \ + || defined(_LIBCUDACXX_HAS_NO_THREADS) +# define _LIBCUDACXX_HAS_NO_ATOMIC_HEADER +#else +# ifndef _LIBCUDACXX_ATOMIC_FLAG_TYPE +# define _LIBCUDACXX_ATOMIC_FLAG_TYPE bool +# endif +# ifdef _LIBCUDACXX_FREESTANDING +# define _LIBCUDACXX_ATOMIC_ONLY_USE_BUILTINS +# endif +#endif + +#ifndef _LIBCUDACXX_DISABLE_UBSAN_UNSIGNED_INTEGER_CHECK +#define _LIBCUDACXX_DISABLE_UBSAN_UNSIGNED_INTEGER_CHECK +#endif + +#if defined(_LIBCUDACXX_ENABLE_THREAD_SAFETY_ANNOTATIONS) +# if defined(__clang__) && __has_attribute(acquire_capability) +// Work around the attribute handling in clang. When both __declspec and +// __attribute__ are present, the processing goes awry preventing the definition +// of the types. +# if !defined(_LIBCUDACXX_OBJECT_FORMAT_COFF) +# define _LIBCUDACXX_HAS_THREAD_SAFETY_ANNOTATIONS +# endif +# endif +#endif + +#if __has_attribute(require_constant_initialization) +# define _LIBCUDACXX_SAFE_STATIC __attribute__((__require_constant_initialization__)) +#else +# define _LIBCUDACXX_SAFE_STATIC +#endif + +#if !defined(_LIBCUDACXX_HAS_NO_OFF_T_FUNCTIONS) +# if defined(_LIBCUDACXX_MSVCRT) || defined(_NEWLIB_VERSION) +# define _LIBCUDACXX_HAS_NO_OFF_T_FUNCTIONS +# endif +#endif + +#if __has_attribute(diagnose_if) && !defined(_LIBCUDACXX_DISABLE_ADDITIONAL_DIAGNOSTICS) +# define _LIBCUDACXX_DIAGNOSE_WARNING(...) \ + __attribute__((diagnose_if(__VA_ARGS__, "warning"))) +# define _LIBCUDACXX_DIAGNOSE_ERROR(...) \ + __attribute__((diagnose_if(__VA_ARGS__, "error"))) +#else +# define _LIBCUDACXX_DIAGNOSE_WARNING(...) +# define _LIBCUDACXX_DIAGNOSE_ERROR(...) +#endif + +// Use a function like macro to imply that it must be followed by a semicolon +#if __cplusplus > 201402L && __has_cpp_attribute(fallthrough) +# define _LIBCUDACXX_FALLTHROUGH() [[fallthrough]] +#elif defined(__CUDACC_RTC__) +# define _LIBCUDACXX_FALLTHROUGH() ((void)0) +#elif __has_cpp_attribute(clang::fallthrough) +# define _LIBCUDACXX_FALLTHROUGH() [[clang::fallthrough]] +#elif defined(_LIBCUDACXX_COMPILER_PGI) +# define _LIBCUDACXX_FALLTHROUGH() +#elif __has_attribute(fallthough) || _GNUC_VER >= 700 +# define _LIBCUDACXX_FALLTHROUGH() __attribute__((__fallthrough__)) +#else +# define _LIBCUDACXX_FALLTHROUGH() ((void)0) +#endif + +#if __has_attribute(__nodebug__) +#define _LIBCUDACXX_NODEBUG __attribute__((__nodebug__)) +#else +#define _LIBCUDACXX_NODEBUG +#endif + +#ifndef _LIBCUDACXX_NODEBUG_TYPE +#if __has_attribute(__nodebug__) && \ + (defined(_LIBCUDACXX_CLANG_VER) && _LIBCUDACXX_CLANG_VER >= 1210) +#define _LIBCUDACXX_NODEBUG_TYPE __attribute__((nodebug)) +#else +#define _LIBCUDACXX_NODEBUG_TYPE +#endif +#endif // !defined(_LIBCUDACXX_NODEBUG_TYPE) + +#if defined(_LIBCUDACXX_ABI_MICROSOFT) && \ + (defined(_LIBCUDACXX_COMPILER_MSVC) || __has_declspec_attribute(empty_bases)) +# define _LIBCUDACXX_DECLSPEC_EMPTY_BASES __declspec(empty_bases) +#else +# define _LIBCUDACXX_DECLSPEC_EMPTY_BASES +#endif + +#if defined(_LIBCUDACXX_ENABLE_CXX17_REMOVED_FEATURES) +#define _LIBCUDACXX_ENABLE_CXX17_REMOVED_AUTO_PTR +#define _LIBCUDACXX_ENABLE_CXX17_REMOVED_UNEXPECTED_FUNCTIONS +#define _LIBCUDACXX_ENABLE_CXX17_REMOVED_RANDOM_SHUFFLE +#define _LIBCUDACXX_ENABLE_CXX17_REMOVED_BINDERS +#endif // _LIBCUDACXX_ENABLE_CXX17_REMOVED_FEATURES + +#if !defined(__cpp_deduction_guides) || __cpp_deduction_guides < 201611 +#define _LIBCUDACXX_HAS_NO_DEDUCTION_GUIDES +#endif + +#if !defined(__cpp_coroutines) || __cpp_coroutines < 201703L +#define _LIBCUDACXX_HAS_NO_COROUTINES +#endif + +// FIXME: Correct this macro when either (A) a feature test macro for the +// spaceship operator is provided, or (B) a compiler provides a complete +// implementation. +#define _LIBCUDACXX_HAS_NO_SPACESHIP_OPERATOR + +// Decide whether to use availability macros. +#if !defined(_LIBCUDACXX_BUILDING_LIBRARY) && \ + !defined(_LIBCUDACXX_DISABLE_AVAILABILITY) && \ + __has_feature(attribute_availability_with_strict) && \ + __has_feature(attribute_availability_in_templates) && \ + __has_extension(pragma_clang_attribute_external_declaration) +# ifdef __APPLE__ +# define _LIBCUDACXX_USE_AVAILABILITY_APPLE +# endif +#endif + +// Define availability macros. +#if defined(_LIBCUDACXX_USE_AVAILABILITY_APPLE) +# define _LIBCUDACXX_AVAILABILITY_SHARED_MUTEX \ + __attribute__((availability(macosx,strict,introduced=10.12))) \ + __attribute__((availability(ios,strict,introduced=10.0))) \ + __attribute__((availability(tvos,strict,introduced=10.0))) \ + __attribute__((availability(watchos,strict,introduced=3.0))) +# define _LIBCUDACXX_AVAILABILITY_BAD_OPTIONAL_ACCESS \ + __attribute__((availability(macosx,strict,introduced=10.14))) \ + __attribute__((availability(ios,strict,introduced=12.0))) \ + __attribute__((availability(tvos,strict,introduced=12.0))) \ + __attribute__((availability(watchos,strict,introduced=5.0))) +# define _LIBCUDACXX_AVAILABILITY_BAD_VARIANT_ACCESS \ + _LIBCUDACXX_AVAILABILITY_BAD_OPTIONAL_ACCESS +# define _LIBCUDACXX_AVAILABILITY_BAD_ANY_CAST \ + _LIBCUDACXX_AVAILABILITY_BAD_OPTIONAL_ACCESS +# define _LIBCUDACXX_AVAILABILITY_UNCAUGHT_EXCEPTIONS \ + __attribute__((availability(macosx,strict,introduced=10.12))) \ + __attribute__((availability(ios,strict,introduced=10.0))) \ + __attribute__((availability(tvos,strict,introduced=10.0))) \ + __attribute__((availability(watchos,strict,introduced=3.0))) +# define _LIBCUDACXX_AVAILABILITY_SIZED_NEW_DELETE \ + __attribute__((availability(macosx,strict,introduced=10.12))) \ + __attribute__((availability(ios,strict,introduced=10.0))) \ + __attribute__((availability(tvos,strict,introduced=10.0))) \ + __attribute__((availability(watchos,strict,introduced=3.0))) +# define _LIBCUDACXX_AVAILABILITY_FUTURE_ERROR \ + __attribute__((availability(ios,strict,introduced=6.0))) +# define _LIBCUDACXX_AVAILABILITY_TYPEINFO_VTABLE \ + __attribute__((availability(macosx,strict,introduced=10.9))) \ + __attribute__((availability(ios,strict,introduced=7.0))) +# define _LIBCUDACXX_AVAILABILITY_LOCALE_CATEGORY \ + __attribute__((availability(macosx,strict,introduced=10.9))) \ + __attribute__((availability(ios,strict,introduced=7.0))) +# define _LIBCUDACXX_AVAILABILITY_ATOMIC_SHARED_PTR \ + __attribute__((availability(macosx,strict,introduced=10.9))) \ + __attribute__((availability(ios,strict,introduced=7.0))) +# define _LIBCUDACXX_AVAILABILITY_FILESYSTEM \ + __attribute__((availability(macosx,strict,introduced=10.15))) \ + __attribute__((availability(ios,strict,introduced=13.0))) \ + __attribute__((availability(tvos,strict,introduced=13.0))) \ + __attribute__((availability(watchos,strict,introduced=6.0))) +# define _LIBCUDACXX_AVAILABILITY_FILESYSTEM_PUSH \ + _Pragma("clang attribute push(__attribute__((availability(macosx,strict,introduced=10.15))), apply_to=any(function,record))") \ + _Pragma("clang attribute push(__attribute__((availability(ios,strict,introduced=13.0))), apply_to=any(function,record))") \ + _Pragma("clang attribute push(__attribute__((availability(tvos,strict,introduced=13.0))), apply_to=any(function,record))") \ + _Pragma("clang attribute push(__attribute__((availability(watchos,strict,introduced=6.0))), apply_to=any(function,record))") +# define _LIBCUDACXX_AVAILABILITY_FILESYSTEM_POP \ + _Pragma("clang attribute pop") \ + _Pragma("clang attribute pop") \ + _Pragma("clang attribute pop") \ + _Pragma("clang attribute pop") +#else +# define _LIBCUDACXX_AVAILABILITY_SHARED_MUTEX +# define _LIBCUDACXX_AVAILABILITY_BAD_VARIANT_ACCESS +# define _LIBCUDACXX_AVAILABILITY_BAD_OPTIONAL_ACCESS +# define _LIBCUDACXX_AVAILABILITY_BAD_ANY_CAST +# define _LIBCUDACXX_AVAILABILITY_UNCAUGHT_EXCEPTIONS +# define _LIBCUDACXX_AVAILABILITY_SIZED_NEW_DELETE +# define _LIBCUDACXX_AVAILABILITY_FUTURE_ERROR +# define _LIBCUDACXX_AVAILABILITY_TYPEINFO_VTABLE +# define _LIBCUDACXX_AVAILABILITY_LOCALE_CATEGORY +# define _LIBCUDACXX_AVAILABILITY_ATOMIC_SHARED_PTR +# define _LIBCUDACXX_AVAILABILITY_FILESYSTEM +# define _LIBCUDACXX_AVAILABILITY_FILESYSTEM_PUSH +# define _LIBCUDACXX_AVAILABILITY_FILESYSTEM_POP +#endif + +// Define availability that depends on _LIBCUDACXX_NO_EXCEPTIONS. +#ifdef _LIBCUDACXX_NO_EXCEPTIONS +# define _LIBCUDACXX_AVAILABILITY_FUTURE +# define _LIBCUDACXX_AVAILABILITY_THROW_BAD_ANY_CAST +# define _LIBCUDACXX_AVAILABILITY_THROW_BAD_OPTIONAL_ACCESS +# define _LIBCUDACXX_AVAILABILITY_THROW_BAD_VARIANT_ACCESS +#else +# define _LIBCUDACXX_AVAILABILITY_FUTURE _LIBCUDACXX_AVAILABILITY_FUTURE_ERROR +# define _LIBCUDACXX_AVAILABILITY_THROW_BAD_ANY_CAST _LIBCUDACXX_AVAILABILITY_BAD_ANY_CAST +# define _LIBCUDACXX_AVAILABILITY_THROW_BAD_OPTIONAL_ACCESS _LIBCUDACXX_AVAILABILITY_BAD_OPTIONAL_ACCESS +# define _LIBCUDACXX_AVAILABILITY_THROW_BAD_VARIANT_ACCESS _LIBCUDACXX_AVAILABILITY_BAD_VARIANT_ACCESS +#endif + +// The stream API was dropped and re-added in the dylib shipped on macOS +// and iOS. We can only assume the dylib to provide these definitions for +// macosx >= 10.9 and ios >= 7.0. Otherwise, the definitions are available +// from the headers, but not from the dylib. Explicit instantiation +// declarations for streams exist conditionally to this; if we provide +// an explicit instantiation declaration and we try to deploy to a dylib +// that does not provide those symbols, we'll get a load-time error. +#if !defined(_LIBCUDACXX_BUILDING_LIBRARY) && \ + ((defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && \ + __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1090) || \ + (defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && \ + __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ < 70000)) +# define _LIBCUDACXX_DO_NOT_ASSUME_STREAMS_EXPLICIT_INSTANTIATION_IN_DYLIB +#endif + +#if defined(_LIBCUDACXX_COMPILER_IBM) +#define _LIBCUDACXX_HAS_NO_PRAGMA_PUSH_POP_MACRO +#endif + +#if defined(_LIBCUDACXX_HAS_NO_PRAGMA_PUSH_POP_MACRO) +# define _LIBCUDACXX_PUSH_MACROS +# define _LIBCUDACXX_POP_MACROS +#else + // Don't warn about macro conflicts when we can restore them at the + // end of the header. +# ifndef _LIBCUDACXX_DISABLE_MACRO_CONFLICT_WARNINGS +# define _LIBCUDACXX_DISABLE_MACRO_CONFLICT_WARNINGS +# endif +# if defined(_LIBCUDACXX_COMPILER_MSVC) +# define _LIBCUDACXX_PUSH_MACROS \ + __pragma(push_macro("min")) \ + __pragma(push_macro("max")) +# define _LIBCUDACXX_POP_MACROS \ + __pragma(pop_macro("min")) \ + __pragma(pop_macro("max")) +# else +# define _LIBCUDACXX_PUSH_MACROS \ + _Pragma("push_macro(\"min\")") \ + _Pragma("push_macro(\"max\")") +# define _LIBCUDACXX_POP_MACROS \ + _Pragma("pop_macro(\"min\")") \ + _Pragma("pop_macro(\"max\")") +# endif +#endif // defined(_LIBCUDACXX_HAS_NO_PRAGMA_PUSH_POP_MACRO) + +#ifndef _LIBCUDACXX_NO_AUTO_LINK +# if defined(_LIBCUDACXX_ABI_MICROSOFT) && !defined(_LIBCUDACXX_BUILDING_LIBRARY) +# if defined(_DLL) +# pragma comment(lib, "c++.lib") +# else +# pragma comment(lib, "libc++.lib") +# endif +# endif // defined(_LIBCUDACXX_ABI_MICROSOFT) && !defined(_LIBCUDACXX_BUILDING_LIBRARY) +#endif // _LIBCUDACXX_NO_AUTO_LINK + +#define _LIBCUDACXX_UNUSED_VAR(x) ((void)(x)) + +// Configures the fopen close-on-exec mode character, if any. This string will +// be appended to any mode string used by fstream for fopen/fdopen. +// +// Not all platforms support this, but it helps avoid fd-leaks on platforms that +// do. +#if defined(__BIONIC__) +# define _LIBCUDACXX_FOPEN_CLOEXEC_MODE "e" +#else +# define _LIBCUDACXX_FOPEN_CLOEXEC_MODE +#endif + +#ifndef _LIBCUDACXX_SYS_CLOCK_DURATION +# define _LIBCUDACXX_SYS_CLOCK_DURATION microseconds +#endif + +#endif // __cplusplus + +#endif // _LIBCUDACXX_CONFIG diff --git a/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__config_site.in b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__config_site.in new file mode 100644 index 0000000000000000000000000000000000000000..ab65c9554b0b4b5697cb3baeff154a784328ea8c --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__config_site.in @@ -0,0 +1,36 @@ +//===----------------------------------------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef _LIBCUDACXX_CONFIG_SITE +#define _LIBCUDACXX_CONFIG_SITE + +#cmakedefine _LIBCUDACXX_ABI_VERSION @_LIBCUDACXX_ABI_VERSION@ +#cmakedefine _LIBCUDACXX_ABI_UNSTABLE +#cmakedefine _LIBCUDACXX_ABI_FORCE_ITANIUM +#cmakedefine _LIBCUDACXX_ABI_FORCE_MICROSOFT +#cmakedefine _LIBCUDACXX_HIDE_FROM_ABI_PER_TU_BY_DEFAULT +#cmakedefine _LIBCUDACXX_HAS_NO_GLOBAL_FILESYSTEM_NAMESPACE +#cmakedefine _LIBCUDACXX_HAS_NO_STDIN +#cmakedefine _LIBCUDACXX_HAS_NO_STDOUT +#cmakedefine _LIBCUDACXX_HAS_NO_THREADS +#cmakedefine _LIBCUDACXX_HAS_NO_MONOTONIC_CLOCK +#cmakedefine _LIBCUDACXX_HAS_NO_THREAD_UNSAFE_C_FUNCTIONS +#cmakedefine _LIBCUDACXX_HAS_MUSL_LIBC +#cmakedefine _LIBCUDACXX_HAS_THREAD_API_PTHREAD +#cmakedefine _LIBCUDACXX_HAS_THREAD_API_EXTERNAL +#cmakedefine _LIBCUDACXX_HAS_THREAD_API_WIN32 +#cmakedefine _LIBCUDACXX_HAS_THREAD_LIBRARY_EXTERNAL +#cmakedefine _LIBCUDACXX_DISABLE_VISIBILITY_ANNOTATIONS +#cmakedefine _LIBCUDACXX_NO_VCRUNTIME +#cmakedefine01 _LIBCUDACXX_HAS_MERGED_TYPEINFO_NAMES_DEFAULT +#cmakedefine _LIBCUDACXX_ABI_NAMESPACE @_LIBCUDACXX_ABI_NAMESPACE@ +#cmakedefine _LIBCUDACXX_HAS_PARALLEL_ALGORITHMS + +@_LIBCUDACXX_ABI_DEFINES@ + +#endif // _LIBCUDACXX_CONFIG_SITE diff --git a/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__debug b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__debug new file mode 100644 index 0000000000000000000000000000000000000000..687fce51cdd6ed237d7de4e5fbb0caa92033335e --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__debug @@ -0,0 +1,284 @@ +// -*- C++ -*- +//===--------------------------- __debug ----------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef _LIBCUDACXX_DEBUG_H +#define _LIBCUDACXX_DEBUG_H + +#ifndef __cuda_std__ +#include <__config> +#include +#if defined(_LIBCUDACXX_HAS_NO_NULLPTR) +# include +#endif +#if _LIBCUDACXX_DEBUG_LEVEL >= 1 || defined(_LIBCUDACXX_BUILDING_LIBRARY) +# include +# include +# include +#endif +#include <__pragma_push> +#endif //__cuda_std__ + +#if defined(_LIBCUDACXX_USE_PRAGMA_GCC_SYSTEM_HEADER) +#pragma GCC system_header +#endif + +#if _LIBCUDACXX_DEBUG_LEVEL >= 1 && !defined(_LIBCUDACXX_ASSERT) +# define _LIBCUDACXX_ASSERT(x, m) ((x) ? (void)0 : \ + _CUDA_VSTD::__libcpp_debug_function(_CUDA_VSTD::__libcpp_debug_info(__FILE__, __LINE__, #x, m))) +#endif + +#if _LIBCUDACXX_DEBUG_LEVEL >= 2 +#ifndef _LIBCUDACXX_DEBUG_ASSERT +#define _LIBCUDACXX_DEBUG_ASSERT(x, m) _LIBCUDACXX_ASSERT(x, m) +#endif +#define _LIBCUDACXX_DEBUG_MODE(...) __VA_ARGS__ +#endif + +#ifndef _LIBCUDACXX_ASSERT +# define _LIBCUDACXX_ASSERT(x, m) ((void)0) +#endif +#ifndef _LIBCUDACXX_DEBUG_ASSERT +# define _LIBCUDACXX_DEBUG_ASSERT(x, m) ((void)0) +#endif +#ifndef _LIBCUDACXX_DEBUG_MODE +#define _LIBCUDACXX_DEBUG_MODE(...) ((void)0) +#endif + +_LIBCUDACXX_BEGIN_NAMESPACE_STD + +struct _LIBCUDACXX_TEMPLATE_VIS __libcpp_debug_info { + _LIBCUDACXX_INLINE_VISIBILITY _LIBCUDACXX_CONSTEXPR + __libcpp_debug_info() + : __file_(nullptr), __line_(-1), __pred_(nullptr), __msg_(nullptr) {} + _LIBCUDACXX_INLINE_VISIBILITY _LIBCUDACXX_CONSTEXPR + __libcpp_debug_info(const char* __f, int __l, const char* __p, const char* __m) + : __file_(__f), __line_(__l), __pred_(__p), __msg_(__m) {} + + _LIBCUDACXX_FUNC_VIS std::string what() const; + + const char* __file_; + int __line_; + const char* __pred_; + const char* __msg_; +}; + +/// __libcpp_debug_function_type - The type of the assertion failure handler. +typedef void(*__libcpp_debug_function_type)(__libcpp_debug_info const&); + +/// __libcpp_debug_function - The handler function called when a _LIBCUDACXX_ASSERT +/// fails. +extern _LIBCUDACXX_EXPORTED_FROM_ABI __libcpp_debug_function_type __libcpp_debug_function; + +/// __libcpp_abort_debug_function - A debug handler that aborts when called. +_LIBCUDACXX_NORETURN _LIBCUDACXX_FUNC_VIS +void __libcpp_abort_debug_function(__libcpp_debug_info const&); + +/// __libcpp_set_debug_function - Set the debug handler to the specified +/// function. +_LIBCUDACXX_FUNC_VIS +bool __libcpp_set_debug_function(__libcpp_debug_function_type __func); + +#if _LIBCUDACXX_DEBUG_LEVEL >= 2 || defined(_LIBCUDACXX_BUILDING_LIBRARY) + +struct _LIBCUDACXX_TYPE_VIS __c_node; + +struct _LIBCUDACXX_TYPE_VIS __i_node +{ + void* __i_; + __i_node* __next_; + __c_node* __c_; + +#ifndef _LIBCUDACXX_CXX03_LANG + __i_node(const __i_node&) = delete; + __i_node& operator=(const __i_node&) = delete; +#else +private: + __i_node(const __i_node&); + __i_node& operator=(const __i_node&); +public: +#endif + _LIBCUDACXX_INLINE_VISIBILITY + __i_node(void* __i, __i_node* __next, __c_node* __c) + : __i_(__i), __next_(__next), __c_(__c) {} + ~__i_node(); +}; + +struct _LIBCUDACXX_TYPE_VIS __c_node +{ + void* __c_; + __c_node* __next_; + __i_node** beg_; + __i_node** end_; + __i_node** cap_; + +#ifndef _LIBCUDACXX_CXX03_LANG + __c_node(const __c_node&) = delete; + __c_node& operator=(const __c_node&) = delete; +#else +private: + __c_node(const __c_node&); + __c_node& operator=(const __c_node&); +public: +#endif + _LIBCUDACXX_INLINE_VISIBILITY + __c_node(void* __c, __c_node* __next) + : __c_(__c), __next_(__next), beg_(nullptr), end_(nullptr), cap_(nullptr) {} + virtual ~__c_node(); + + virtual bool __dereferenceable(const void*) const = 0; + virtual bool __decrementable(const void*) const = 0; + virtual bool __addable(const void*, ptrdiff_t) const = 0; + virtual bool __subscriptable(const void*, ptrdiff_t) const = 0; + + void __add(__i_node* __i); + _LIBCUDACXX_HIDDEN void __remove(__i_node* __i); +}; + +template +struct _C_node + : public __c_node +{ + _C_node(void* __c, __c_node* __n) + : __c_node(__c, __n) {} + + virtual bool __dereferenceable(const void*) const; + virtual bool __decrementable(const void*) const; + virtual bool __addable(const void*, ptrdiff_t) const; + virtual bool __subscriptable(const void*, ptrdiff_t) const; +}; + +template +inline bool +_C_node<_Cont>::__dereferenceable(const void* __i) const +{ + typedef typename _Cont::const_iterator iterator; + const iterator* __j = static_cast(__i); + _Cont* _Cp = static_cast<_Cont*>(__c_); + return _Cp->__dereferenceable(__j); +} + +template +inline bool +_C_node<_Cont>::__decrementable(const void* __i) const +{ + typedef typename _Cont::const_iterator iterator; + const iterator* __j = static_cast(__i); + _Cont* _Cp = static_cast<_Cont*>(__c_); + return _Cp->__decrementable(__j); +} + +template +inline bool +_C_node<_Cont>::__addable(const void* __i, ptrdiff_t __n) const +{ + typedef typename _Cont::const_iterator iterator; + const iterator* __j = static_cast(__i); + _Cont* _Cp = static_cast<_Cont*>(__c_); + return _Cp->__addable(__j, __n); +} + +template +inline bool +_C_node<_Cont>::__subscriptable(const void* __i, ptrdiff_t __n) const +{ + typedef typename _Cont::const_iterator iterator; + const iterator* __j = static_cast(__i); + _Cont* _Cp = static_cast<_Cont*>(__c_); + return _Cp->__subscriptable(__j, __n); +} + +class _LIBCUDACXX_TYPE_VIS __libcpp_db +{ + __c_node** __cbeg_; + __c_node** __cend_; + size_t __csz_; + __i_node** __ibeg_; + __i_node** __iend_; + size_t __isz_; + + __libcpp_db(); +public: +#ifndef _LIBCUDACXX_CXX03_LANG + __libcpp_db(const __libcpp_db&) = delete; + __libcpp_db& operator=(const __libcpp_db&) = delete; +#else +private: + __libcpp_db(const __libcpp_db&); + __libcpp_db& operator=(const __libcpp_db&); +public: +#endif + ~__libcpp_db(); + + class __db_c_iterator; + class __db_c_const_iterator; + class __db_i_iterator; + class __db_i_const_iterator; + + __db_c_const_iterator __c_end() const; + __db_i_const_iterator __i_end() const; + + typedef __c_node*(_InsertConstruct)(void*, void*, __c_node*); + + template + _LIBCUDACXX_INLINE_VISIBILITY static __c_node* __create_C_node(void *__mem, void *__c, __c_node *__next) { + return ::new(__mem) _C_node<_Cont>(__c, __next); + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + void __insert_c(_Cont* __c) + { + __insert_c(static_cast(__c), &__create_C_node<_Cont>); + } + + void __insert_i(void* __i); + void __insert_c(void* __c, _InsertConstruct* __fn); + void __erase_c(void* __c); + + void __insert_ic(void* __i, const void* __c); + void __iterator_copy(void* __i, const void* __i0); + void __erase_i(void* __i); + + void* __find_c_from_i(void* __i) const; + void __invalidate_all(void* __c); + __c_node* __find_c_and_lock(void* __c) const; + __c_node* __find_c(void* __c) const; + void unlock() const; + + void swap(void* __c1, void* __c2); + + + bool __dereferenceable(const void* __i) const; + bool __decrementable(const void* __i) const; + bool __addable(const void* __i, ptrdiff_t __n) const; + bool __subscriptable(const void* __i, ptrdiff_t __n) const; + bool __less_than_comparable(const void* __i, const void* __j) const; +private: + _LIBCUDACXX_HIDDEN + __i_node* __insert_iterator(void* __i); + _LIBCUDACXX_HIDDEN + __i_node* __find_iterator(const void* __i) const; + + friend _LIBCUDACXX_FUNC_VIS __libcpp_db* __get_db(); +}; + +_LIBCUDACXX_FUNC_VIS __libcpp_db* __get_db(); +_LIBCUDACXX_FUNC_VIS const __libcpp_db* __get_const_db(); + + +#endif // _LIBCUDACXX_DEBUG_LEVEL >= 2 || defined(_LIBCUDACXX_BUILDING_LIBRARY) + +_LIBCUDACXX_END_NAMESPACE_STD + +#ifndef __cuda_std__ + #include <__pragma_pop> +#endif + +#endif // _LIBCUDACXX_DEBUG_H + diff --git a/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__errc b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__errc new file mode 100644 index 0000000000000000000000000000000000000000..03382fa86500fb4150bbc9552af448c984b3b5d3 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__errc @@ -0,0 +1,217 @@ +// -*- C++ -*- +//===---------------------------- __errc ----------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef _LIBCUDACXX___ERRC +#define _LIBCUDACXX___ERRC + +/* + system_error synopsis + +namespace std +{ + +enum class errc +{ + address_family_not_supported, // EAFNOSUPPORT + address_in_use, // EADDRINUSE + address_not_available, // EADDRNOTAVAIL + already_connected, // EISCONN + argument_list_too_long, // E2BIG + argument_out_of_domain, // EDOM + bad_address, // EFAULT + bad_file_descriptor, // EBADF + bad_message, // EBADMSG + broken_pipe, // EPIPE + connection_aborted, // ECONNABORTED + connection_already_in_progress, // EALREADY + connection_refused, // ECONNREFUSED + connection_reset, // ECONNRESET + cross_device_link, // EXDEV + destination_address_required, // EDESTADDRREQ + device_or_resource_busy, // EBUSY + directory_not_empty, // ENOTEMPTY + executable_format_error, // ENOEXEC + file_exists, // EEXIST + file_too_large, // EFBIG + filename_too_long, // ENAMETOOLONG + function_not_supported, // ENOSYS + host_unreachable, // EHOSTUNREACH + identifier_removed, // EIDRM + illegal_byte_sequence, // EILSEQ + inappropriate_io_control_operation, // ENOTTY + interrupted, // EINTR + invalid_argument, // EINVAL + invalid_seek, // ESPIPE + io_error, // EIO + is_a_directory, // EISDIR + message_size, // EMSGSIZE + network_down, // ENETDOWN + network_reset, // ENETRESET + network_unreachable, // ENETUNREACH + no_buffer_space, // ENOBUFS + no_child_process, // ECHILD + no_link, // ENOLINK + no_lock_available, // ENOLCK + no_message_available, // ENODATA + no_message, // ENOMSG + no_protocol_option, // ENOPROTOOPT + no_space_on_device, // ENOSPC + no_stream_resources, // ENOSR + no_such_device_or_address, // ENXIO + no_such_device, // ENODEV + no_such_file_or_directory, // ENOENT + no_such_process, // ESRCH + not_a_directory, // ENOTDIR + not_a_socket, // ENOTSOCK + not_a_stream, // ENOSTR + not_connected, // ENOTCONN + not_enough_memory, // ENOMEM + not_supported, // ENOTSUP + operation_canceled, // ECANCELED + operation_in_progress, // EINPROGRESS + operation_not_permitted, // EPERM + operation_not_supported, // EOPNOTSUPP + operation_would_block, // EWOULDBLOCK + owner_dead, // EOWNERDEAD + permission_denied, // EACCES + protocol_error, // EPROTO + protocol_not_supported, // EPROTONOSUPPORT + read_only_file_system, // EROFS + resource_deadlock_would_occur, // EDEADLK + resource_unavailable_try_again, // EAGAIN + result_out_of_range, // ERANGE + state_not_recoverable, // ENOTRECOVERABLE + stream_timeout, // ETIME + text_file_busy, // ETXTBSY + timed_out, // ETIMEDOUT + too_many_files_open_in_system, // ENFILE + too_many_files_open, // EMFILE + too_many_links, // EMLINK + too_many_symbolic_link_levels, // ELOOP + value_too_large, // EOVERFLOW + wrong_protocol_type // EPROTOTYPE +}; + +*/ + +#include <__config> +#include + +#if defined(_LIBCUDACXX_USE_PRAGMA_GCC_SYSTEM_HEADER) +#pragma GCC system_header +#endif + +_LIBCUDACXX_BEGIN_NAMESPACE_STD + +// Some error codes are not present on all platforms, so we provide equivalents +// for them: + +//enum class errc +_LIBCUDACXX_DECLARE_STRONG_ENUM(errc) +{ + address_family_not_supported = EAFNOSUPPORT, + address_in_use = EADDRINUSE, + address_not_available = EADDRNOTAVAIL, + already_connected = EISCONN, + argument_list_too_long = E2BIG, + argument_out_of_domain = EDOM, + bad_address = EFAULT, + bad_file_descriptor = EBADF, + bad_message = EBADMSG, + broken_pipe = EPIPE, + connection_aborted = ECONNABORTED, + connection_already_in_progress = EALREADY, + connection_refused = ECONNREFUSED, + connection_reset = ECONNRESET, + cross_device_link = EXDEV, + destination_address_required = EDESTADDRREQ, + device_or_resource_busy = EBUSY, + directory_not_empty = ENOTEMPTY, + executable_format_error = ENOEXEC, + file_exists = EEXIST, + file_too_large = EFBIG, + filename_too_long = ENAMETOOLONG, + function_not_supported = ENOSYS, + host_unreachable = EHOSTUNREACH, + identifier_removed = EIDRM, + illegal_byte_sequence = EILSEQ, + inappropriate_io_control_operation = ENOTTY, + interrupted = EINTR, + invalid_argument = EINVAL, + invalid_seek = ESPIPE, + io_error = EIO, + is_a_directory = EISDIR, + message_size = EMSGSIZE, + network_down = ENETDOWN, + network_reset = ENETRESET, + network_unreachable = ENETUNREACH, + no_buffer_space = ENOBUFS, + no_child_process = ECHILD, + no_link = ENOLINK, + no_lock_available = ENOLCK, +#ifdef ENODATA + no_message_available = ENODATA, +#else + no_message_available = ENOMSG, +#endif + no_message = ENOMSG, + no_protocol_option = ENOPROTOOPT, + no_space_on_device = ENOSPC, +#ifdef ENOSR + no_stream_resources = ENOSR, +#else + no_stream_resources = ENOMEM, +#endif + no_such_device_or_address = ENXIO, + no_such_device = ENODEV, + no_such_file_or_directory = ENOENT, + no_such_process = ESRCH, + not_a_directory = ENOTDIR, + not_a_socket = ENOTSOCK, +#ifdef ENOSTR + not_a_stream = ENOSTR, +#else + not_a_stream = EINVAL, +#endif + not_connected = ENOTCONN, + not_enough_memory = ENOMEM, + not_supported = ENOTSUP, + operation_canceled = ECANCELED, + operation_in_progress = EINPROGRESS, + operation_not_permitted = EPERM, + operation_not_supported = EOPNOTSUPP, + operation_would_block = EWOULDBLOCK, + owner_dead = EOWNERDEAD, + permission_denied = EACCES, + protocol_error = EPROTO, + protocol_not_supported = EPROTONOSUPPORT, + read_only_file_system = EROFS, + resource_deadlock_would_occur = EDEADLK, + resource_unavailable_try_again = EAGAIN, + result_out_of_range = ERANGE, + state_not_recoverable = ENOTRECOVERABLE, +#ifdef ETIME + stream_timeout = ETIME, +#else + stream_timeout = ETIMEDOUT, +#endif + text_file_busy = ETXTBSY, + timed_out = ETIMEDOUT, + too_many_files_open_in_system = ENFILE, + too_many_files_open = EMFILE, + too_many_links = EMLINK, + too_many_symbolic_link_levels = ELOOP, + value_too_large = EOVERFLOW, + wrong_protocol_type = EPROTOTYPE +}; +_LIBCUDACXX_DECLARE_STRONG_ENUM_EPILOG(errc) + +_LIBCUDACXX_END_NAMESPACE_STD + +#endif // _LIBCUDACXX___ERRC diff --git a/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__functional_03 b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__functional_03 new file mode 100644 index 0000000000000000000000000000000000000000..f9610b6ea384df8c08e717317d39fbe93b87f8e3 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__functional_03 @@ -0,0 +1,1595 @@ +// -*- C++ -*- +//===----------------------------------------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef _LIBCUDACXX_FUNCTIONAL_03 +#define _LIBCUDACXX_FUNCTIONAL_03 + +// manual variadic expansion for + +#include <__pragma_push> + +#if defined(_LIBCUDACXX_USE_PRAGMA_GCC_SYSTEM_HEADER) +#pragma GCC system_header +#endif + +namespace __function { + +template class __base; + +template +class __base<_Rp()> +{ + __base(const __base&); + __base& operator=(const __base&); +public: + __base() {} + virtual ~__base() {} + virtual __base* __clone() const = 0; + virtual void __clone(__base*) const = 0; + virtual void destroy() = 0; + virtual void destroy_deallocate() = 0; + virtual _Rp operator()() = 0; +#ifndef _LIBCUDACXX_NO_RTTI + virtual const void* target(const type_info&) const = 0; + virtual const std::type_info& target_type() const = 0; +#endif // _LIBCUDACXX_NO_RTTI +}; + +template +class __base<_Rp(_A0)> +{ + __base(const __base&); + __base& operator=(const __base&); +public: + __base() {} + virtual ~__base() {} + virtual __base* __clone() const = 0; + virtual void __clone(__base*) const = 0; + virtual void destroy() = 0; + virtual void destroy_deallocate() = 0; + virtual _Rp operator()(_A0) = 0; +#ifndef _LIBCUDACXX_NO_RTTI + virtual const void* target(const type_info&) const = 0; + virtual const std::type_info& target_type() const = 0; +#endif // _LIBCUDACXX_NO_RTTI +}; + +template +class __base<_Rp(_A0, _A1)> +{ + __base(const __base&); + __base& operator=(const __base&); +public: + __base() {} + virtual ~__base() {} + virtual __base* __clone() const = 0; + virtual void __clone(__base*) const = 0; + virtual void destroy() = 0; + virtual void destroy_deallocate() = 0; + virtual _Rp operator()(_A0, _A1) = 0; +#ifndef _LIBCUDACXX_NO_RTTI + virtual const void* target(const type_info&) const = 0; + virtual const std::type_info& target_type() const = 0; +#endif // _LIBCUDACXX_NO_RTTI +}; + +template +class __base<_Rp(_A0, _A1, _A2)> +{ + __base(const __base&); + __base& operator=(const __base&); +public: + __base() {} + virtual ~__base() {} + virtual __base* __clone() const = 0; + virtual void __clone(__base*) const = 0; + virtual void destroy() = 0; + virtual void destroy_deallocate() = 0; + virtual _Rp operator()(_A0, _A1, _A2) = 0; +#ifndef _LIBCUDACXX_NO_RTTI + virtual const void* target(const type_info&) const = 0; + virtual const std::type_info& target_type() const = 0; +#endif // _LIBCUDACXX_NO_RTTI +}; + +template class __func; + +template +class __func<_Fp, _Alloc, _Rp()> + : public __base<_Rp()> +{ + __compressed_pair<_Fp, _Alloc> __f_; +public: + explicit __func(_Fp __f) : __f_(_CUDA_VSTD::move(__f)) {} + explicit __func(_Fp __f, _Alloc __a) : __f_(_CUDA_VSTD::move(__f), _CUDA_VSTD::move(__a)) {} + virtual __base<_Rp()>* __clone() const; + virtual void __clone(__base<_Rp()>*) const; + virtual void destroy(); + virtual void destroy_deallocate(); + virtual _Rp operator()(); +#ifndef _LIBCUDACXX_NO_RTTI + virtual const void* target(const type_info&) const; + virtual const std::type_info& target_type() const; +#endif // _LIBCUDACXX_NO_RTTI +}; + +template +__base<_Rp()>* +__func<_Fp, _Alloc, _Rp()>::__clone() const +{ + typedef allocator_traits<_Alloc> __alloc_traits; + typedef typename __rebind_alloc_helper<__alloc_traits, __func>::type _Ap; + _Ap __a(__f_.second()); + typedef __allocator_destructor<_Ap> _Dp; + unique_ptr<__func, _Dp> __hold(__a.allocate(1), _Dp(__a, 1)); + ::new (__hold.get()) __func(__f_.first(), _Alloc(__a)); + return __hold.release(); +} + +template +void +__func<_Fp, _Alloc, _Rp()>::__clone(__base<_Rp()>* __p) const +{ + ::new (__p) __func(__f_.first(), __f_.second()); +} + +template +void +__func<_Fp, _Alloc, _Rp()>::destroy() +{ + __f_.~__compressed_pair<_Fp, _Alloc>(); +} + +template +void +__func<_Fp, _Alloc, _Rp()>::destroy_deallocate() +{ + typedef allocator_traits<_Alloc> __alloc_traits; + typedef typename __rebind_alloc_helper<__alloc_traits, __func>::type _Ap; + _Ap __a(__f_.second()); + __f_.~__compressed_pair<_Fp, _Alloc>(); + __a.deallocate(this, 1); +} + +template +_Rp +__func<_Fp, _Alloc, _Rp()>::operator()() +{ + typedef __invoke_void_return_wrapper<_Rp> _Invoker; + return _Invoker::__call(__f_.first()); +} + +#ifndef _LIBCUDACXX_NO_RTTI + +template +const void* +__func<_Fp, _Alloc, _Rp()>::target(const type_info& __ti) const +{ + if (__ti == typeid(_Fp)) + return &__f_.first(); + return (const void*)0; +} + +template +const std::type_info& +__func<_Fp, _Alloc, _Rp()>::target_type() const +{ + return typeid(_Fp); +} + +#endif // _LIBCUDACXX_NO_RTTI + +template +class __func<_Fp, _Alloc, _Rp(_A0)> + : public __base<_Rp(_A0)> +{ + __compressed_pair<_Fp, _Alloc> __f_; +public: + _LIBCUDACXX_INLINE_VISIBILITY explicit __func(_Fp __f) : __f_(_CUDA_VSTD::move(__f)) {} + _LIBCUDACXX_INLINE_VISIBILITY explicit __func(_Fp __f, _Alloc __a) + : __f_(_CUDA_VSTD::move(__f), _CUDA_VSTD::move(__a)) {} + virtual __base<_Rp(_A0)>* __clone() const; + virtual void __clone(__base<_Rp(_A0)>*) const; + virtual void destroy(); + virtual void destroy_deallocate(); + virtual _Rp operator()(_A0); +#ifndef _LIBCUDACXX_NO_RTTI + virtual const void* target(const type_info&) const; + virtual const std::type_info& target_type() const; +#endif // _LIBCUDACXX_NO_RTTI +}; + +template +__base<_Rp(_A0)>* +__func<_Fp, _Alloc, _Rp(_A0)>::__clone() const +{ + typedef allocator_traits<_Alloc> __alloc_traits; + typedef typename __rebind_alloc_helper<__alloc_traits, __func>::type _Ap; + _Ap __a(__f_.second()); + typedef __allocator_destructor<_Ap> _Dp; + unique_ptr<__func, _Dp> __hold(__a.allocate(1), _Dp(__a, 1)); + ::new (__hold.get()) __func(__f_.first(), _Alloc(__a)); + return __hold.release(); +} + +template +void +__func<_Fp, _Alloc, _Rp(_A0)>::__clone(__base<_Rp(_A0)>* __p) const +{ + ::new (__p) __func(__f_.first(), __f_.second()); +} + +template +void +__func<_Fp, _Alloc, _Rp(_A0)>::destroy() +{ + __f_.~__compressed_pair<_Fp, _Alloc>(); +} + +template +void +__func<_Fp, _Alloc, _Rp(_A0)>::destroy_deallocate() +{ + typedef allocator_traits<_Alloc> __alloc_traits; + typedef typename __rebind_alloc_helper<__alloc_traits, __func>::type _Ap; + _Ap __a(__f_.second()); + __f_.~__compressed_pair<_Fp, _Alloc>(); + __a.deallocate(this, 1); +} + +template +_Rp +__func<_Fp, _Alloc, _Rp(_A0)>::operator()(_A0 __a0) +{ + typedef __invoke_void_return_wrapper<_Rp> _Invoker; + return _Invoker::__call(__f_.first(), __a0); +} + +#ifndef _LIBCUDACXX_NO_RTTI + +template +const void* +__func<_Fp, _Alloc, _Rp(_A0)>::target(const type_info& __ti) const +{ + if (__ti == typeid(_Fp)) + return &__f_.first(); + return (const void*)0; +} + +template +const std::type_info& +__func<_Fp, _Alloc, _Rp(_A0)>::target_type() const +{ + return typeid(_Fp); +} + +#endif // _LIBCUDACXX_NO_RTTI + +template +class __func<_Fp, _Alloc, _Rp(_A0, _A1)> + : public __base<_Rp(_A0, _A1)> +{ + __compressed_pair<_Fp, _Alloc> __f_; +public: + _LIBCUDACXX_INLINE_VISIBILITY explicit __func(_Fp __f) : __f_(_CUDA_VSTD::move(__f)) {} + _LIBCUDACXX_INLINE_VISIBILITY explicit __func(_Fp __f, _Alloc __a) + : __f_(_CUDA_VSTD::move(__f), _CUDA_VSTD::move(__a)) {} + virtual __base<_Rp(_A0, _A1)>* __clone() const; + virtual void __clone(__base<_Rp(_A0, _A1)>*) const; + virtual void destroy(); + virtual void destroy_deallocate(); + virtual _Rp operator()(_A0, _A1); +#ifndef _LIBCUDACXX_NO_RTTI + virtual const void* target(const type_info&) const; + virtual const std::type_info& target_type() const; +#endif // _LIBCUDACXX_NO_RTTI +}; + +template +__base<_Rp(_A0, _A1)>* +__func<_Fp, _Alloc, _Rp(_A0, _A1)>::__clone() const +{ + typedef allocator_traits<_Alloc> __alloc_traits; + typedef typename __rebind_alloc_helper<__alloc_traits, __func>::type _Ap; + _Ap __a(__f_.second()); + typedef __allocator_destructor<_Ap> _Dp; + unique_ptr<__func, _Dp> __hold(__a.allocate(1), _Dp(__a, 1)); + ::new (__hold.get()) __func(__f_.first(), _Alloc(__a)); + return __hold.release(); +} + +template +void +__func<_Fp, _Alloc, _Rp(_A0, _A1)>::__clone(__base<_Rp(_A0, _A1)>* __p) const +{ + ::new (__p) __func(__f_.first(), __f_.second()); +} + +template +void +__func<_Fp, _Alloc, _Rp(_A0, _A1)>::destroy() +{ + __f_.~__compressed_pair<_Fp, _Alloc>(); +} + +template +void +__func<_Fp, _Alloc, _Rp(_A0, _A1)>::destroy_deallocate() +{ + typedef allocator_traits<_Alloc> __alloc_traits; + typedef typename __rebind_alloc_helper<__alloc_traits, __func>::type _Ap; + _Ap __a(__f_.second()); + __f_.~__compressed_pair<_Fp, _Alloc>(); + __a.deallocate(this, 1); +} + +template +_Rp +__func<_Fp, _Alloc, _Rp(_A0, _A1)>::operator()(_A0 __a0, _A1 __a1) +{ + typedef __invoke_void_return_wrapper<_Rp> _Invoker; + return _Invoker::__call(__f_.first(), __a0, __a1); +} + +#ifndef _LIBCUDACXX_NO_RTTI + +template +const void* +__func<_Fp, _Alloc, _Rp(_A0, _A1)>::target(const type_info& __ti) const +{ + if (__ti == typeid(_Fp)) + return &__f_.first(); + return (const void*)0; +} + +template +const std::type_info& +__func<_Fp, _Alloc, _Rp(_A0, _A1)>::target_type() const +{ + return typeid(_Fp); +} + +#endif // _LIBCUDACXX_NO_RTTI + +template +class __func<_Fp, _Alloc, _Rp(_A0, _A1, _A2)> + : public __base<_Rp(_A0, _A1, _A2)> +{ + __compressed_pair<_Fp, _Alloc> __f_; +public: + _LIBCUDACXX_INLINE_VISIBILITY explicit __func(_Fp __f) : __f_(_CUDA_VSTD::move(__f)) {} + _LIBCUDACXX_INLINE_VISIBILITY explicit __func(_Fp __f, _Alloc __a) + : __f_(_CUDA_VSTD::move(__f), _CUDA_VSTD::move(__a)) {} + virtual __base<_Rp(_A0, _A1, _A2)>* __clone() const; + virtual void __clone(__base<_Rp(_A0, _A1, _A2)>*) const; + virtual void destroy(); + virtual void destroy_deallocate(); + virtual _Rp operator()(_A0, _A1, _A2); +#ifndef _LIBCUDACXX_NO_RTTI + virtual const void* target(const type_info&) const; + virtual const std::type_info& target_type() const; +#endif // _LIBCUDACXX_NO_RTTI +}; + +template +__base<_Rp(_A0, _A1, _A2)>* +__func<_Fp, _Alloc, _Rp(_A0, _A1, _A2)>::__clone() const +{ + typedef allocator_traits<_Alloc> __alloc_traits; + typedef typename __rebind_alloc_helper<__alloc_traits, __func>::type _Ap; + _Ap __a(__f_.second()); + typedef __allocator_destructor<_Ap> _Dp; + unique_ptr<__func, _Dp> __hold(__a.allocate(1), _Dp(__a, 1)); + ::new (__hold.get()) __func(__f_.first(), _Alloc(__a)); + return __hold.release(); +} + +template +void +__func<_Fp, _Alloc, _Rp(_A0, _A1, _A2)>::__clone(__base<_Rp(_A0, _A1, _A2)>* __p) const +{ + ::new (__p) __func(__f_.first(), __f_.second()); +} + +template +void +__func<_Fp, _Alloc, _Rp(_A0, _A1, _A2)>::destroy() +{ + __f_.~__compressed_pair<_Fp, _Alloc>(); +} + +template +void +__func<_Fp, _Alloc, _Rp(_A0, _A1, _A2)>::destroy_deallocate() +{ + typedef allocator_traits<_Alloc> __alloc_traits; + typedef typename __rebind_alloc_helper<__alloc_traits, __func>::type _Ap; + _Ap __a(__f_.second()); + __f_.~__compressed_pair<_Fp, _Alloc>(); + __a.deallocate(this, 1); +} + +template +_Rp +__func<_Fp, _Alloc, _Rp(_A0, _A1, _A2)>::operator()(_A0 __a0, _A1 __a1, _A2 __a2) +{ + typedef __invoke_void_return_wrapper<_Rp> _Invoker; + return _Invoker::__call(__f_.first(), __a0, __a1, __a2); +} + +#ifndef _LIBCUDACXX_NO_RTTI + +template +const void* +__func<_Fp, _Alloc, _Rp(_A0, _A1, _A2)>::target(const type_info& __ti) const +{ + if (__ti == typeid(_Fp)) + return &__f_.first(); + return (const void*)0; +} + +template +const std::type_info& +__func<_Fp, _Alloc, _Rp(_A0, _A1, _A2)>::target_type() const +{ + return typeid(_Fp); +} + +#endif // _LIBCUDACXX_NO_RTTI + +} // __function + +template +class _LIBCUDACXX_TEMPLATE_VIS function<_Rp()> +{ + typedef __function::__base<_Rp()> __base; + aligned_storage<3*sizeof(void*)>::type __buf_; + __base* __f_; + +public: + typedef _Rp result_type; + + // 20.7.16.2.1, construct/copy/destroy: + _LIBCUDACXX_INLINE_VISIBILITY explicit function() : __f_(0) {} + _LIBCUDACXX_INLINE_VISIBILITY function(nullptr_t) : __f_(0) {} + function(const function&); + template + function(_Fp, + typename enable_if::value>::type* = 0); + + template + _LIBCUDACXX_INLINE_VISIBILITY + function(allocator_arg_t, const _Alloc&) : __f_(0) {} + template + _LIBCUDACXX_INLINE_VISIBILITY + function(allocator_arg_t, const _Alloc&, nullptr_t) : __f_(0) {} + template + function(allocator_arg_t, const _Alloc&, const function&); + template + function(allocator_arg_t, const _Alloc& __a, _Fp __f, + typename enable_if::value>::type* = 0); + + function& operator=(const function&); + function& operator=(nullptr_t); + template + typename enable_if + < + !is_integral<_Fp>::value, + function& + >::type + operator=(_Fp); + + ~function(); + + // 20.7.16.2.2, function modifiers: + void swap(function&); + template + _LIBCUDACXX_INLINE_VISIBILITY + void assign(_Fp __f, const _Alloc& __a) + {function(allocator_arg, __a, __f).swap(*this);} + + // 20.7.16.2.3, function capacity: + _LIBCUDACXX_INLINE_VISIBILITY operator bool() const {return __f_;} + +private: + // deleted overloads close possible hole in the type system + template + bool operator==(const function<_R2()>&) const;// = delete; + template + bool operator!=(const function<_R2()>&) const;// = delete; +public: + // 20.7.16.2.4, function invocation: + _Rp operator()() const; + +#ifndef _LIBCUDACXX_NO_RTTI + // 20.7.16.2.5, function target access: + const std::type_info& target_type() const; + template _Tp* target(); + template const _Tp* target() const; +#endif // _LIBCUDACXX_NO_RTTI +}; + +template +function<_Rp()>::function(const function& __f) +{ + if (__f.__f_ == 0) + __f_ = 0; + else if (__f.__f_ == (const __base*)&__f.__buf_) + { + __f_ = (__base*)&__buf_; + __f.__f_->__clone(__f_); + } + else + __f_ = __f.__f_->__clone(); +} + +template +template +function<_Rp()>::function(allocator_arg_t, const _Alloc&, const function& __f) +{ + if (__f.__f_ == 0) + __f_ = 0; + else if (__f.__f_ == (const __base*)&__f.__buf_) + { + __f_ = (__base*)&__buf_; + __f.__f_->__clone(__f_); + } + else + __f_ = __f.__f_->__clone(); +} + +template +template +function<_Rp()>::function(_Fp __f, + typename enable_if::value>::type*) + : __f_(0) +{ + if (__function::__not_null(__f)) + { + typedef __function::__func<_Fp, allocator<_Fp>, _Rp()> _FF; + if (sizeof(_FF) <= sizeof(__buf_)) + { + __f_ = (__base*)&__buf_; + ::new (__f_) _FF(__f); + } + else + { + typedef allocator<_FF> _Ap; + _Ap __a; + typedef __allocator_destructor<_Ap> _Dp; + unique_ptr<__base, _Dp> __hold(__a.allocate(1), _Dp(__a, 1)); + ::new (__hold.get()) _FF(__f, allocator<_Fp>(__a)); + __f_ = __hold.release(); + } + } +} + +template +template +function<_Rp()>::function(allocator_arg_t, const _Alloc& __a0, _Fp __f, + typename enable_if::value>::type*) + : __f_(0) +{ + typedef allocator_traits<_Alloc> __alloc_traits; + if (__function::__not_null(__f)) + { + typedef __function::__func<_Fp, _Alloc, _Rp()> _FF; + if (sizeof(_FF) <= sizeof(__buf_)) + { + __f_ = (__base*)&__buf_; + ::new (__f_) _FF(__f, __a0); + } + else + { + typedef typename __rebind_alloc_helper<__alloc_traits, _FF>::type _Ap; + _Ap __a(__a0); + typedef __allocator_destructor<_Ap> _Dp; + unique_ptr<__base, _Dp> __hold(__a.allocate(1), _Dp(__a, 1)); + ::new (__hold.get()) _FF(__f, _Alloc(__a)); + __f_ = __hold.release(); + } + } +} + +template +function<_Rp()>& +function<_Rp()>::operator=(const function& __f) +{ + if (__f) + function(__f).swap(*this); + else + *this = nullptr; + return *this; +} + +template +function<_Rp()>& +function<_Rp()>::operator=(nullptr_t) +{ + __base* __t = __f_; + __f_ = 0; + if (__t == (__base*)&__buf_) + __t->destroy(); + else if (__t) + __t->destroy_deallocate(); + return *this; +} + +template +template +typename enable_if +< + !is_integral<_Fp>::value, + function<_Rp()>& +>::type +function<_Rp()>::operator=(_Fp __f) +{ + function(_CUDA_VSTD::move(__f)).swap(*this); + return *this; +} + +template +function<_Rp()>::~function() +{ + if (__f_ == (__base*)&__buf_) + __f_->destroy(); + else if (__f_) + __f_->destroy_deallocate(); +} + +template +void +function<_Rp()>::swap(function& __f) +{ + if (_CUDA_VSTD::addressof(__f) == this) + return; + if (__f_ == (__base*)&__buf_ && __f.__f_ == (__base*)&__f.__buf_) + { + typename aligned_storage::type __tempbuf; + __base* __t = (__base*)&__tempbuf; + __f_->__clone(__t); + __f_->destroy(); + __f_ = 0; + __f.__f_->__clone((__base*)&__buf_); + __f.__f_->destroy(); + __f.__f_ = 0; + __f_ = (__base*)&__buf_; + __t->__clone((__base*)&__f.__buf_); + __t->destroy(); + __f.__f_ = (__base*)&__f.__buf_; + } + else if (__f_ == (__base*)&__buf_) + { + __f_->__clone((__base*)&__f.__buf_); + __f_->destroy(); + __f_ = __f.__f_; + __f.__f_ = (__base*)&__f.__buf_; + } + else if (__f.__f_ == (__base*)&__f.__buf_) + { + __f.__f_->__clone((__base*)&__buf_); + __f.__f_->destroy(); + __f.__f_ = __f_; + __f_ = (__base*)&__buf_; + } + else + _CUDA_VSTD::swap(__f_, __f.__f_); +} + +template +_Rp +function<_Rp()>::operator()() const +{ + if (__f_ == 0) + __throw_bad_function_call(); + return (*__f_)(); +} + +#ifndef _LIBCUDACXX_NO_RTTI + +template +const std::type_info& +function<_Rp()>::target_type() const +{ + if (__f_ == 0) + return typeid(void); + return __f_->target_type(); +} + +template +template +_Tp* +function<_Rp()>::target() +{ + if (__f_ == 0) + return (_Tp*)0; + return (_Tp*) const_cast(__f_->target(typeid(_Tp))); +} + +template +template +const _Tp* +function<_Rp()>::target() const +{ + if (__f_ == 0) + return (const _Tp*)0; + return (const _Tp*)__f_->target(typeid(_Tp)); +} + +#endif // _LIBCUDACXX_NO_RTTI + +template +class _LIBCUDACXX_TEMPLATE_VIS function<_Rp(_A0)> + : public unary_function<_A0, _Rp> +{ + typedef __function::__base<_Rp(_A0)> __base; + aligned_storage<3*sizeof(void*)>::type __buf_; + __base* __f_; + +public: + typedef _Rp result_type; + + // 20.7.16.2.1, construct/copy/destroy: + _LIBCUDACXX_INLINE_VISIBILITY explicit function() : __f_(0) {} + _LIBCUDACXX_INLINE_VISIBILITY function(nullptr_t) : __f_(0) {} + function(const function&); + template + function(_Fp, + typename enable_if::value>::type* = 0); + + template + _LIBCUDACXX_INLINE_VISIBILITY + function(allocator_arg_t, const _Alloc&) : __f_(0) {} + template + _LIBCUDACXX_INLINE_VISIBILITY + function(allocator_arg_t, const _Alloc&, nullptr_t) : __f_(0) {} + template + function(allocator_arg_t, const _Alloc&, const function&); + template + function(allocator_arg_t, const _Alloc& __a, _Fp __f, + typename enable_if::value>::type* = 0); + + function& operator=(const function&); + function& operator=(nullptr_t); + template + typename enable_if + < + !is_integral<_Fp>::value, + function& + >::type + operator=(_Fp); + + ~function(); + + // 20.7.16.2.2, function modifiers: + void swap(function&); + template + _LIBCUDACXX_INLINE_VISIBILITY + void assign(_Fp __f, const _Alloc& __a) + {function(allocator_arg, __a, __f).swap(*this);} + + // 20.7.16.2.3, function capacity: + _LIBCUDACXX_INLINE_VISIBILITY operator bool() const {return __f_;} + +private: + // deleted overloads close possible hole in the type system + template + bool operator==(const function<_R2(_B0)>&) const;// = delete; + template + bool operator!=(const function<_R2(_B0)>&) const;// = delete; +public: + // 20.7.16.2.4, function invocation: + _Rp operator()(_A0) const; + +#ifndef _LIBCUDACXX_NO_RTTI + // 20.7.16.2.5, function target access: + const std::type_info& target_type() const; + template _Tp* target(); + template const _Tp* target() const; +#endif // _LIBCUDACXX_NO_RTTI +}; + +template +function<_Rp(_A0)>::function(const function& __f) +{ + if (__f.__f_ == 0) + __f_ = 0; + else if (__f.__f_ == (const __base*)&__f.__buf_) + { + __f_ = (__base*)&__buf_; + __f.__f_->__clone(__f_); + } + else + __f_ = __f.__f_->__clone(); +} + +template +template +function<_Rp(_A0)>::function(allocator_arg_t, const _Alloc&, const function& __f) +{ + if (__f.__f_ == 0) + __f_ = 0; + else if (__f.__f_ == (const __base*)&__f.__buf_) + { + __f_ = (__base*)&__buf_; + __f.__f_->__clone(__f_); + } + else + __f_ = __f.__f_->__clone(); +} + +template +template +function<_Rp(_A0)>::function(_Fp __f, + typename enable_if::value>::type*) + : __f_(0) +{ + if (__function::__not_null(__f)) + { + typedef __function::__func<_Fp, allocator<_Fp>, _Rp(_A0)> _FF; + if (sizeof(_FF) <= sizeof(__buf_)) + { + __f_ = (__base*)&__buf_; + ::new (__f_) _FF(__f); + } + else + { + typedef allocator<_FF> _Ap; + _Ap __a; + typedef __allocator_destructor<_Ap> _Dp; + unique_ptr<__base, _Dp> __hold(__a.allocate(1), _Dp(__a, 1)); + ::new (__hold.get()) _FF(__f, allocator<_Fp>(__a)); + __f_ = __hold.release(); + } + } +} + +template +template +function<_Rp(_A0)>::function(allocator_arg_t, const _Alloc& __a0, _Fp __f, + typename enable_if::value>::type*) + : __f_(0) +{ + typedef allocator_traits<_Alloc> __alloc_traits; + if (__function::__not_null(__f)) + { + typedef __function::__func<_Fp, _Alloc, _Rp(_A0)> _FF; + if (sizeof(_FF) <= sizeof(__buf_)) + { + __f_ = (__base*)&__buf_; + ::new (__f_) _FF(__f, __a0); + } + else + { + typedef typename __rebind_alloc_helper<__alloc_traits, _FF>::type _Ap; + _Ap __a(__a0); + typedef __allocator_destructor<_Ap> _Dp; + unique_ptr<__base, _Dp> __hold(__a.allocate(1), _Dp(__a, 1)); + ::new (__hold.get()) _FF(__f, _Alloc(__a)); + __f_ = __hold.release(); + } + } +} + +template +function<_Rp(_A0)>& +function<_Rp(_A0)>::operator=(const function& __f) +{ + if (__f) + function(__f).swap(*this); + else + *this = nullptr; + return *this; +} + +template +function<_Rp(_A0)>& +function<_Rp(_A0)>::operator=(nullptr_t) +{ + __base* __t = __f_; + __f_ = 0; + if (__t == (__base*)&__buf_) + __t->destroy(); + else if (__t) + __t->destroy_deallocate(); + return *this; +} + +template +template +typename enable_if +< + !is_integral<_Fp>::value, + function<_Rp(_A0)>& +>::type +function<_Rp(_A0)>::operator=(_Fp __f) +{ + function(_CUDA_VSTD::move(__f)).swap(*this); + return *this; +} + +template +function<_Rp(_A0)>::~function() +{ + if (__f_ == (__base*)&__buf_) + __f_->destroy(); + else if (__f_) + __f_->destroy_deallocate(); +} + +template +void +function<_Rp(_A0)>::swap(function& __f) +{ + if (_CUDA_VSTD::addressof(__f) == this) + return; + if (__f_ == (__base*)&__buf_ && __f.__f_ == (__base*)&__f.__buf_) + { + typename aligned_storage::type __tempbuf; + __base* __t = (__base*)&__tempbuf; + __f_->__clone(__t); + __f_->destroy(); + __f_ = 0; + __f.__f_->__clone((__base*)&__buf_); + __f.__f_->destroy(); + __f.__f_ = 0; + __f_ = (__base*)&__buf_; + __t->__clone((__base*)&__f.__buf_); + __t->destroy(); + __f.__f_ = (__base*)&__f.__buf_; + } + else if (__f_ == (__base*)&__buf_) + { + __f_->__clone((__base*)&__f.__buf_); + __f_->destroy(); + __f_ = __f.__f_; + __f.__f_ = (__base*)&__f.__buf_; + } + else if (__f.__f_ == (__base*)&__f.__buf_) + { + __f.__f_->__clone((__base*)&__buf_); + __f.__f_->destroy(); + __f.__f_ = __f_; + __f_ = (__base*)&__buf_; + } + else + _CUDA_VSTD::swap(__f_, __f.__f_); +} + +template +_Rp +function<_Rp(_A0)>::operator()(_A0 __a0) const +{ + if (__f_ == 0) + __throw_bad_function_call(); + return (*__f_)(__a0); +} + +#ifndef _LIBCUDACXX_NO_RTTI + +template +const std::type_info& +function<_Rp(_A0)>::target_type() const +{ + if (__f_ == 0) + return typeid(void); + return __f_->target_type(); +} + +template +template +_Tp* +function<_Rp(_A0)>::target() +{ + if (__f_ == 0) + return (_Tp*)0; + return (_Tp*) const_cast(__f_->target(typeid(_Tp))); +} + +template +template +const _Tp* +function<_Rp(_A0)>::target() const +{ + if (__f_ == 0) + return (const _Tp*)0; + return (const _Tp*)__f_->target(typeid(_Tp)); +} + +#endif // _LIBCUDACXX_NO_RTTI + +template +class _LIBCUDACXX_TEMPLATE_VIS function<_Rp(_A0, _A1)> + : public binary_function<_A0, _A1, _Rp> +{ + typedef __function::__base<_Rp(_A0, _A1)> __base; + aligned_storage<3*sizeof(void*)>::type __buf_; + __base* __f_; + +public: + typedef _Rp result_type; + + // 20.7.16.2.1, construct/copy/destroy: + _LIBCUDACXX_INLINE_VISIBILITY explicit function() : __f_(0) {} + _LIBCUDACXX_INLINE_VISIBILITY function(nullptr_t) : __f_(0) {} + function(const function&); + template + function(_Fp, + typename enable_if::value>::type* = 0); + + template + _LIBCUDACXX_INLINE_VISIBILITY + function(allocator_arg_t, const _Alloc&) : __f_(0) {} + template + _LIBCUDACXX_INLINE_VISIBILITY + function(allocator_arg_t, const _Alloc&, nullptr_t) : __f_(0) {} + template + function(allocator_arg_t, const _Alloc&, const function&); + template + function(allocator_arg_t, const _Alloc& __a, _Fp __f, + typename enable_if::value>::type* = 0); + + function& operator=(const function&); + function& operator=(nullptr_t); + template + typename enable_if + < + !is_integral<_Fp>::value, + function& + >::type + operator=(_Fp); + + ~function(); + + // 20.7.16.2.2, function modifiers: + void swap(function&); + template + _LIBCUDACXX_INLINE_VISIBILITY + void assign(_Fp __f, const _Alloc& __a) + {function(allocator_arg, __a, __f).swap(*this);} + + // 20.7.16.2.3, function capacity: + operator bool() const {return __f_;} + +private: + // deleted overloads close possible hole in the type system + template + bool operator==(const function<_R2(_B0, _B1)>&) const;// = delete; + template + bool operator!=(const function<_R2(_B0, _B1)>&) const;// = delete; +public: + // 20.7.16.2.4, function invocation: + _Rp operator()(_A0, _A1) const; + +#ifndef _LIBCUDACXX_NO_RTTI + // 20.7.16.2.5, function target access: + const std::type_info& target_type() const; + template _Tp* target(); + template const _Tp* target() const; +#endif // _LIBCUDACXX_NO_RTTI +}; + +template +function<_Rp(_A0, _A1)>::function(const function& __f) +{ + if (__f.__f_ == 0) + __f_ = 0; + else if (__f.__f_ == (const __base*)&__f.__buf_) + { + __f_ = (__base*)&__buf_; + __f.__f_->__clone(__f_); + } + else + __f_ = __f.__f_->__clone(); +} + +template +template +function<_Rp(_A0, _A1)>::function(allocator_arg_t, const _Alloc&, const function& __f) +{ + if (__f.__f_ == 0) + __f_ = 0; + else if (__f.__f_ == (const __base*)&__f.__buf_) + { + __f_ = (__base*)&__buf_; + __f.__f_->__clone(__f_); + } + else + __f_ = __f.__f_->__clone(); +} + +template +template +function<_Rp(_A0, _A1)>::function(_Fp __f, + typename enable_if::value>::type*) + : __f_(0) +{ + if (__function::__not_null(__f)) + { + typedef __function::__func<_Fp, allocator<_Fp>, _Rp(_A0, _A1)> _FF; + if (sizeof(_FF) <= sizeof(__buf_)) + { + __f_ = (__base*)&__buf_; + ::new (__f_) _FF(__f); + } + else + { + typedef allocator<_FF> _Ap; + _Ap __a; + typedef __allocator_destructor<_Ap> _Dp; + unique_ptr<__base, _Dp> __hold(__a.allocate(1), _Dp(__a, 1)); + ::new (__hold.get()) _FF(__f, allocator<_Fp>(__a)); + __f_ = __hold.release(); + } + } +} + +template +template +function<_Rp(_A0, _A1)>::function(allocator_arg_t, const _Alloc& __a0, _Fp __f, + typename enable_if::value>::type*) + : __f_(0) +{ + typedef allocator_traits<_Alloc> __alloc_traits; + if (__function::__not_null(__f)) + { + typedef __function::__func<_Fp, _Alloc, _Rp(_A0, _A1)> _FF; + if (sizeof(_FF) <= sizeof(__buf_)) + { + __f_ = (__base*)&__buf_; + ::new (__f_) _FF(__f, __a0); + } + else + { + typedef typename __rebind_alloc_helper<__alloc_traits, _FF>::type _Ap; + _Ap __a(__a0); + typedef __allocator_destructor<_Ap> _Dp; + unique_ptr<__base, _Dp> __hold(__a.allocate(1), _Dp(__a, 1)); + ::new (__hold.get()) _FF(__f, _Alloc(__a)); + __f_ = __hold.release(); + } + } +} + +template +function<_Rp(_A0, _A1)>& +function<_Rp(_A0, _A1)>::operator=(const function& __f) +{ + if (__f) + function(__f).swap(*this); + else + *this = nullptr; + return *this; +} + +template +function<_Rp(_A0, _A1)>& +function<_Rp(_A0, _A1)>::operator=(nullptr_t) +{ + __base* __t = __f_; + __f_ = 0; + if (__t == (__base*)&__buf_) + __t->destroy(); + else if (__t) + __t->destroy_deallocate(); + return *this; +} + +template +template +typename enable_if +< + !is_integral<_Fp>::value, + function<_Rp(_A0, _A1)>& +>::type +function<_Rp(_A0, _A1)>::operator=(_Fp __f) +{ + function(_CUDA_VSTD::move(__f)).swap(*this); + return *this; +} + +template +function<_Rp(_A0, _A1)>::~function() +{ + if (__f_ == (__base*)&__buf_) + __f_->destroy(); + else if (__f_) + __f_->destroy_deallocate(); +} + +template +void +function<_Rp(_A0, _A1)>::swap(function& __f) +{ + if (_CUDA_VSTD::addressof(__f) == this) + return; + if (__f_ == (__base*)&__buf_ && __f.__f_ == (__base*)&__f.__buf_) + { + typename aligned_storage::type __tempbuf; + __base* __t = (__base*)&__tempbuf; + __f_->__clone(__t); + __f_->destroy(); + __f_ = 0; + __f.__f_->__clone((__base*)&__buf_); + __f.__f_->destroy(); + __f.__f_ = 0; + __f_ = (__base*)&__buf_; + __t->__clone((__base*)&__f.__buf_); + __t->destroy(); + __f.__f_ = (__base*)&__f.__buf_; + } + else if (__f_ == (__base*)&__buf_) + { + __f_->__clone((__base*)&__f.__buf_); + __f_->destroy(); + __f_ = __f.__f_; + __f.__f_ = (__base*)&__f.__buf_; + } + else if (__f.__f_ == (__base*)&__f.__buf_) + { + __f.__f_->__clone((__base*)&__buf_); + __f.__f_->destroy(); + __f.__f_ = __f_; + __f_ = (__base*)&__buf_; + } + else + _CUDA_VSTD::swap(__f_, __f.__f_); +} + +template +_Rp +function<_Rp(_A0, _A1)>::operator()(_A0 __a0, _A1 __a1) const +{ + if (__f_ == 0) + __throw_bad_function_call(); + return (*__f_)(__a0, __a1); +} + +#ifndef _LIBCUDACXX_NO_RTTI + +template +const std::type_info& +function<_Rp(_A0, _A1)>::target_type() const +{ + if (__f_ == 0) + return typeid(void); + return __f_->target_type(); +} + +template +template +_Tp* +function<_Rp(_A0, _A1)>::target() +{ + if (__f_ == 0) + return (_Tp*)0; + return (_Tp*) const_cast(__f_->target(typeid(_Tp))); +} + +template +template +const _Tp* +function<_Rp(_A0, _A1)>::target() const +{ + if (__f_ == 0) + return (const _Tp*)0; + return (const _Tp*)__f_->target(typeid(_Tp)); +} + +#endif // _LIBCUDACXX_NO_RTTI + +template +class _LIBCUDACXX_TEMPLATE_VIS function<_Rp(_A0, _A1, _A2)> +{ + typedef __function::__base<_Rp(_A0, _A1, _A2)> __base; + aligned_storage<3*sizeof(void*)>::type __buf_; + __base* __f_; + +public: + typedef _Rp result_type; + + // 20.7.16.2.1, construct/copy/destroy: + _LIBCUDACXX_INLINE_VISIBILITY explicit function() : __f_(0) {} + _LIBCUDACXX_INLINE_VISIBILITY function(nullptr_t) : __f_(0) {} + function(const function&); + template + function(_Fp, + typename enable_if::value>::type* = 0); + + template + _LIBCUDACXX_INLINE_VISIBILITY + function(allocator_arg_t, const _Alloc&) : __f_(0) {} + template + _LIBCUDACXX_INLINE_VISIBILITY + function(allocator_arg_t, const _Alloc&, nullptr_t) : __f_(0) {} + template + function(allocator_arg_t, const _Alloc&, const function&); + template + function(allocator_arg_t, const _Alloc& __a, _Fp __f, + typename enable_if::value>::type* = 0); + + function& operator=(const function&); + function& operator=(nullptr_t); + template + typename enable_if + < + !is_integral<_Fp>::value, + function& + >::type + operator=(_Fp); + + ~function(); + + // 20.7.16.2.2, function modifiers: + void swap(function&); + template + _LIBCUDACXX_INLINE_VISIBILITY + void assign(_Fp __f, const _Alloc& __a) + {function(allocator_arg, __a, __f).swap(*this);} + + // 20.7.16.2.3, function capacity: + _LIBCUDACXX_INLINE_VISIBILITY operator bool() const {return __f_;} + +private: + // deleted overloads close possible hole in the type system + template + bool operator==(const function<_R2(_B0, _B1, _B2)>&) const;// = delete; + template + bool operator!=(const function<_R2(_B0, _B1, _B2)>&) const;// = delete; +public: + // 20.7.16.2.4, function invocation: + _Rp operator()(_A0, _A1, _A2) const; + +#ifndef _LIBCUDACXX_NO_RTTI + // 20.7.16.2.5, function target access: + const std::type_info& target_type() const; + template _Tp* target(); + template const _Tp* target() const; +#endif // _LIBCUDACXX_NO_RTTI +}; + +template +function<_Rp(_A0, _A1, _A2)>::function(const function& __f) +{ + if (__f.__f_ == 0) + __f_ = 0; + else if (__f.__f_ == (const __base*)&__f.__buf_) + { + __f_ = (__base*)&__buf_; + __f.__f_->__clone(__f_); + } + else + __f_ = __f.__f_->__clone(); +} + +template +template +function<_Rp(_A0, _A1, _A2)>::function(allocator_arg_t, const _Alloc&, + const function& __f) +{ + if (__f.__f_ == 0) + __f_ = 0; + else if (__f.__f_ == (const __base*)&__f.__buf_) + { + __f_ = (__base*)&__buf_; + __f.__f_->__clone(__f_); + } + else + __f_ = __f.__f_->__clone(); +} + +template +template +function<_Rp(_A0, _A1, _A2)>::function(_Fp __f, + typename enable_if::value>::type*) + : __f_(0) +{ + if (__function::__not_null(__f)) + { + typedef __function::__func<_Fp, allocator<_Fp>, _Rp(_A0, _A1, _A2)> _FF; + if (sizeof(_FF) <= sizeof(__buf_)) + { + __f_ = (__base*)&__buf_; + ::new (__f_) _FF(__f); + } + else + { + typedef allocator<_FF> _Ap; + _Ap __a; + typedef __allocator_destructor<_Ap> _Dp; + unique_ptr<__base, _Dp> __hold(__a.allocate(1), _Dp(__a, 1)); + ::new (__hold.get()) _FF(__f, allocator<_Fp>(__a)); + __f_ = __hold.release(); + } + } +} + +template +template +function<_Rp(_A0, _A1, _A2)>::function(allocator_arg_t, const _Alloc& __a0, _Fp __f, + typename enable_if::value>::type*) + : __f_(0) +{ + typedef allocator_traits<_Alloc> __alloc_traits; + if (__function::__not_null(__f)) + { + typedef __function::__func<_Fp, _Alloc, _Rp(_A0, _A1, _A2)> _FF; + if (sizeof(_FF) <= sizeof(__buf_)) + { + __f_ = (__base*)&__buf_; + ::new (__f_) _FF(__f, __a0); + } + else + { + typedef typename __rebind_alloc_helper<__alloc_traits, _FF>::type _Ap; + _Ap __a(__a0); + typedef __allocator_destructor<_Ap> _Dp; + unique_ptr<__base, _Dp> __hold(__a.allocate(1), _Dp(__a, 1)); + ::new (__hold.get()) _FF(__f, _Alloc(__a)); + __f_ = __hold.release(); + } + } +} + +template +function<_Rp(_A0, _A1, _A2)>& +function<_Rp(_A0, _A1, _A2)>::operator=(const function& __f) +{ + if (__f) + function(__f).swap(*this); + else + *this = nullptr; + return *this; +} + +template +function<_Rp(_A0, _A1, _A2)>& +function<_Rp(_A0, _A1, _A2)>::operator=(nullptr_t) +{ + __base* __t = __f_; + __f_ = 0; + if (__t == (__base*)&__buf_) + __t->destroy(); + else if (__t) + __t->destroy_deallocate(); + return *this; +} + +template +template +typename enable_if +< + !is_integral<_Fp>::value, + function<_Rp(_A0, _A1, _A2)>& +>::type +function<_Rp(_A0, _A1, _A2)>::operator=(_Fp __f) +{ + function(_CUDA_VSTD::move(__f)).swap(*this); + return *this; +} + +template +function<_Rp(_A0, _A1, _A2)>::~function() +{ + if (__f_ == (__base*)&__buf_) + __f_->destroy(); + else if (__f_) + __f_->destroy_deallocate(); +} + +template +void +function<_Rp(_A0, _A1, _A2)>::swap(function& __f) +{ + if (_CUDA_VSTD::addressof(__f) == this) + return; + if (__f_ == (__base*)&__buf_ && __f.__f_ == (__base*)&__f.__buf_) + { + typename aligned_storage::type __tempbuf; + __base* __t = (__base*)&__tempbuf; + __f_->__clone(__t); + __f_->destroy(); + __f_ = 0; + __f.__f_->__clone((__base*)&__buf_); + __f.__f_->destroy(); + __f.__f_ = 0; + __f_ = (__base*)&__buf_; + __t->__clone((__base*)&__f.__buf_); + __t->destroy(); + __f.__f_ = (__base*)&__f.__buf_; + } + else if (__f_ == (__base*)&__buf_) + { + __f_->__clone((__base*)&__f.__buf_); + __f_->destroy(); + __f_ = __f.__f_; + __f.__f_ = (__base*)&__f.__buf_; + } + else if (__f.__f_ == (__base*)&__f.__buf_) + { + __f.__f_->__clone((__base*)&__buf_); + __f.__f_->destroy(); + __f.__f_ = __f_; + __f_ = (__base*)&__buf_; + } + else + _CUDA_VSTD::swap(__f_, __f.__f_); +} + +template +_Rp +function<_Rp(_A0, _A1, _A2)>::operator()(_A0 __a0, _A1 __a1, _A2 __a2) const +{ + if (__f_ == 0) + __throw_bad_function_call(); + return (*__f_)(__a0, __a1, __a2); +} + +#ifndef _LIBCUDACXX_NO_RTTI + +template +const std::type_info& +function<_Rp(_A0, _A1, _A2)>::target_type() const +{ + if (__f_ == 0) + return typeid(void); + return __f_->target_type(); +} + +template +template +_Tp* +function<_Rp(_A0, _A1, _A2)>::target() +{ + if (__f_ == 0) + return (_Tp*)0; + return (_Tp*) const_cast(__f_->target(typeid(_Tp))); +} + +template +template +const _Tp* +function<_Rp(_A0, _A1, _A2)>::target() const +{ + if (__f_ == 0) + return (const _Tp*)0; + return (const _Tp*)__f_->target(typeid(_Tp)); +} + +#endif // _LIBCUDACXX_NO_RTTI + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +bool +operator==(const function<_Fp>& __f, nullptr_t) {return !__f;} + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +bool +operator==(nullptr_t, const function<_Fp>& __f) {return !__f;} + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +bool +operator!=(const function<_Fp>& __f, nullptr_t) {return (bool)__f;} + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +bool +operator!=(nullptr_t, const function<_Fp>& __f) {return (bool)__f;} + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +void +swap(function<_Fp>& __x, function<_Fp>& __y) +{return __x.swap(__y);} + +#include <__pragma_pop> + +#endif // _LIBCUDACXX_FUNCTIONAL_03 diff --git a/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__functional_base b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__functional_base new file mode 100644 index 0000000000000000000000000000000000000000..d6597340624a8e90b4368d73b0f20d203964ae54 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__functional_base @@ -0,0 +1,673 @@ +// -*- C++ -*- +//===----------------------------------------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef _LIBCUDACXX_FUNCTIONAL_BASE +#define _LIBCUDACXX_FUNCTIONAL_BASE + +#ifndef __cuda_std__ +#include <__config> +#include +#include +#include +#include +#include +#include <__pragma_push> +#endif //__cuda_std__ + +#if defined(_LIBCUDACXX_USE_PRAGMA_GCC_SYSTEM_HEADER) +#pragma GCC system_header +#endif + +_LIBCUDACXX_BEGIN_NAMESPACE_STD + +template +struct _LIBCUDACXX_TEMPLATE_VIS binary_function +{ + typedef _Arg1 first_argument_type; + typedef _Arg2 second_argument_type; + typedef _Result result_type; +}; + +template +struct __has_result_type +{ +private: + struct __two {char __lx; char __lxx;}; + template _LIBCUDACXX_INLINE_VISIBILITY static __two __test(...); + template _LIBCUDACXX_INLINE_VISIBILITY static char __test(typename _Up::result_type* = 0); +public: + static const bool value = sizeof(__test<_Tp>(0)) == 1; +}; + +#if _LIBCUDACXX_STD_VER > 11 +template +#else +template +#endif +struct _LIBCUDACXX_TEMPLATE_VIS less : binary_function<_Tp, _Tp, bool> +{ + _LIBCUDACXX_CONSTEXPR_AFTER_CXX11 _LIBCUDACXX_INLINE_VISIBILITY + bool operator()(const _Tp& __x, const _Tp& __y) const + {return __x < __y;} +}; + +#if _LIBCUDACXX_STD_VER > 11 +template <> +struct _LIBCUDACXX_TEMPLATE_VIS less +{ + template + _LIBCUDACXX_CONSTEXPR_AFTER_CXX11 _LIBCUDACXX_INLINE_VISIBILITY + auto operator()(_T1&& __t, _T2&& __u) const + _NOEXCEPT_(noexcept(_CUDA_VSTD::forward<_T1>(__t) < _CUDA_VSTD::forward<_T2>(__u))) + -> decltype (_CUDA_VSTD::forward<_T1>(__t) < _CUDA_VSTD::forward<_T2>(__u)) + { return _CUDA_VSTD::forward<_T1>(__t) < _CUDA_VSTD::forward<_T2>(__u); } + typedef void is_transparent; +}; +#endif + +// __weak_result_type + +template +struct __derives_from_unary_function +{ +private: + struct __two {char __lx; char __lxx;}; + _LIBCUDACXX_INLINE_VISIBILITY + static __two __test(...); + template + _LIBCUDACXX_INLINE_VISIBILITY + static unary_function<_Ap, _Rp> + __test(const volatile unary_function<_Ap, _Rp>*); +public: + static const bool value = !is_same::value; + typedef decltype(__test((_Tp*)0)) type; +}; + +template +struct __derives_from_binary_function +{ +private: + struct __two {char __lx; char __lxx;}; + _LIBCUDACXX_INLINE_VISIBILITY + static __two __test(...); + template + _LIBCUDACXX_INLINE_VISIBILITY + static binary_function<_A1, _A2, _Rp> + __test(const volatile binary_function<_A1, _A2, _Rp>*); +public: + static const bool value = !is_same::value; + typedef decltype(__test((_Tp*)0)) type; +}; + +template ::value> +struct __maybe_derive_from_unary_function // bool is true + : public __derives_from_unary_function<_Tp>::type +{ +}; + +template +struct __maybe_derive_from_unary_function<_Tp, false> +{ +}; + +template ::value> +struct __maybe_derive_from_binary_function // bool is true + : public __derives_from_binary_function<_Tp>::type +{ +}; + +template +struct __maybe_derive_from_binary_function<_Tp, false> +{ +}; + +template ::value> +struct __weak_result_type_imp // bool is true + : public __maybe_derive_from_unary_function<_Tp>, + public __maybe_derive_from_binary_function<_Tp> +{ + typedef _LIBCUDACXX_NODEBUG_TYPE typename _Tp::result_type result_type; +}; + +template +struct __weak_result_type_imp<_Tp, false> + : public __maybe_derive_from_unary_function<_Tp>, + public __maybe_derive_from_binary_function<_Tp> +{ +}; + +template +struct __weak_result_type + : public __weak_result_type_imp<_Tp> +{ +}; + +// 0 argument case + +template +struct __weak_result_type<_Rp ()> +{ + typedef _LIBCUDACXX_NODEBUG_TYPE _Rp result_type; +}; + +template +struct __weak_result_type<_Rp (&)()> +{ + typedef _LIBCUDACXX_NODEBUG_TYPE _Rp result_type; +}; + +template +struct __weak_result_type<_Rp (*)()> +{ + typedef _LIBCUDACXX_NODEBUG_TYPE _Rp result_type; +}; + +// 1 argument case + +template +struct __weak_result_type<_Rp (_A1)> + : public unary_function<_A1, _Rp> +{ +}; + +template +struct __weak_result_type<_Rp (&)(_A1)> + : public unary_function<_A1, _Rp> +{ +}; + +template +struct __weak_result_type<_Rp (*)(_A1)> + : public unary_function<_A1, _Rp> +{ +}; + +template +struct __weak_result_type<_Rp (_Cp::*)()> + : public unary_function<_Cp*, _Rp> +{ +}; + +template +struct __weak_result_type<_Rp (_Cp::*)() const> + : public unary_function +{ +}; + +template +struct __weak_result_type<_Rp (_Cp::*)() volatile> + : public unary_function +{ +}; + +template +struct __weak_result_type<_Rp (_Cp::*)() const volatile> + : public unary_function +{ +}; + +// 2 argument case + +template +struct __weak_result_type<_Rp (_A1, _A2)> + : public binary_function<_A1, _A2, _Rp> +{ +}; + +template +struct __weak_result_type<_Rp (*)(_A1, _A2)> + : public binary_function<_A1, _A2, _Rp> +{ +}; + +template +struct __weak_result_type<_Rp (&)(_A1, _A2)> + : public binary_function<_A1, _A2, _Rp> +{ +}; + +template +struct __weak_result_type<_Rp (_Cp::*)(_A1)> + : public binary_function<_Cp*, _A1, _Rp> +{ +}; + +template +struct __weak_result_type<_Rp (_Cp::*)(_A1) const> + : public binary_function +{ +}; + +template +struct __weak_result_type<_Rp (_Cp::*)(_A1) volatile> + : public binary_function +{ +}; + +template +struct __weak_result_type<_Rp (_Cp::*)(_A1) const volatile> + : public binary_function +{ +}; + + +#ifndef _LIBCUDACXX_CXX03_LANG +// 3 or more arguments + +template +struct __weak_result_type<_Rp (_A1, _A2, _A3, _A4...)> +{ + typedef _Rp result_type; +}; + +template +struct __weak_result_type<_Rp (&)(_A1, _A2, _A3, _A4...)> +{ + typedef _Rp result_type; +}; + +template +struct __weak_result_type<_Rp (*)(_A1, _A2, _A3, _A4...)> +{ + typedef _Rp result_type; +}; + +template +struct __weak_result_type<_Rp (_Cp::*)(_A1, _A2, _A3...)> +{ + typedef _Rp result_type; +}; + +template +struct __weak_result_type<_Rp (_Cp::*)(_A1, _A2, _A3...) const> +{ + typedef _Rp result_type; +}; + +template +struct __weak_result_type<_Rp (_Cp::*)(_A1, _A2, _A3...) volatile> +{ + typedef _Rp result_type; +}; + +template +struct __weak_result_type<_Rp (_Cp::*)(_A1, _A2, _A3...) const volatile> +{ + typedef _Rp result_type; +}; + +template +struct __invoke_return +{ + typedef decltype(__invoke(_CUDA_VSTD::declval<_Tp>(), _CUDA_VSTD::declval<_Args>()...)) type; +}; + +#else // defined(_LIBCUDACXX_CXX03_LANG) + +#include <__functional_base_03> + +#endif // !defined(_LIBCUDACXX_CXX03_LANG) + + +template +struct __invoke_void_return_wrapper +{ +#ifndef _LIBCUDACXX_CXX03_LANG + template + _LIBCUDACXX_INLINE_VISIBILITY + static _Ret __call(_Args&&... __args) { + return __invoke(_CUDA_VSTD::forward<_Args>(__args)...); + } +#else + template + _LIBCUDACXX_INLINE_VISIBILITY + static _Ret __call(_Fn __f) { + return __invoke(__f); + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + static _Ret __call(_Fn __f, _A0& __a0) { + return __invoke(__f, __a0); + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + static _Ret __call(_Fn __f, _A0& __a0, _A1& __a1) { + return __invoke(__f, __a0, __a1); + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + static _Ret __call(_Fn __f, _A0& __a0, _A1& __a1, _A2& __a2){ + return __invoke(__f, __a0, __a1, __a2); + } +#endif +}; + +template <> +struct __invoke_void_return_wrapper +{ +#ifndef _LIBCUDACXX_CXX03_LANG + template + _LIBCUDACXX_INLINE_VISIBILITY + static void __call(_Args&&... __args) { + __invoke(_CUDA_VSTD::forward<_Args>(__args)...); + } +#else + template + _LIBCUDACXX_INLINE_VISIBILITY + static void __call(_Fn __f) { + __invoke(__f); + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + static void __call(_Fn __f, _A0& __a0) { + __invoke(__f, __a0); + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + static void __call(_Fn __f, _A0& __a0, _A1& __a1) { + __invoke(__f, __a0, __a1); + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + static void __call(_Fn __f, _A0& __a0, _A1& __a1, _A2& __a2) { + __invoke(__f, __a0, __a1, __a2); + } +#endif +}; + +template +class _LIBCUDACXX_TEMPLATE_VIS reference_wrapper + : public __weak_result_type<_Tp> +{ +public: + // types + typedef _Tp type; +private: + type* __f_; + +public: + // construct/copy/destroy + _LIBCUDACXX_INLINE_VISIBILITY reference_wrapper(type& __f) _NOEXCEPT + : __f_(_CUDA_VSTD::addressof(__f)) {} +#ifndef _LIBCUDACXX_CXX03_LANG + private: _LIBCUDACXX_INLINE_VISIBILITY reference_wrapper(type&&); public: // = delete; // do not bind to temps +#endif + + // access + _LIBCUDACXX_INLINE_VISIBILITY operator type& () const _NOEXCEPT {return *__f_;} + _LIBCUDACXX_INLINE_VISIBILITY type& get() const _NOEXCEPT {return *__f_;} + +#ifndef _LIBCUDACXX_CXX03_LANG + // invoke + template + _LIBCUDACXX_INLINE_VISIBILITY + typename __invoke_of::type + operator() (_ArgTypes&&... __args) const { + return __invoke(get(), _CUDA_VSTD::forward<_ArgTypes>(__args)...); + } +#else + + _LIBCUDACXX_INLINE_VISIBILITY + typename __invoke_return::type + operator() () const { + return __invoke(get()); + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + typename __invoke_return0::type + operator() (_A0& __a0) const { + return __invoke(get(), __a0); + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + typename __invoke_return0::type + operator() (_A0 const& __a0) const { + return __invoke(get(), __a0); + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + typename __invoke_return1::type + operator() (_A0& __a0, _A1& __a1) const { + return __invoke(get(), __a0, __a1); + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + typename __invoke_return1::type + operator() (_A0 const& __a0, _A1& __a1) const { + return __invoke(get(), __a0, __a1); + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + typename __invoke_return1::type + operator() (_A0& __a0, _A1 const& __a1) const { + return __invoke(get(), __a0, __a1); + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + typename __invoke_return1::type + operator() (_A0 const& __a0, _A1 const& __a1) const { + return __invoke(get(), __a0, __a1); + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + typename __invoke_return2::type + operator() (_A0& __a0, _A1& __a1, _A2& __a2) const { + return __invoke(get(), __a0, __a1, __a2); + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + typename __invoke_return2::type + operator() (_A0 const& __a0, _A1& __a1, _A2& __a2) const { + return __invoke(get(), __a0, __a1, __a2); + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + typename __invoke_return2::type + operator() (_A0& __a0, _A1 const& __a1, _A2& __a2) const { + return __invoke(get(), __a0, __a1, __a2); + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + typename __invoke_return2::type + operator() (_A0& __a0, _A1& __a1, _A2 const& __a2) const { + return __invoke(get(), __a0, __a1, __a2); + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + typename __invoke_return2::type + operator() (_A0 const& __a0, _A1 const& __a1, _A2& __a2) const { + return __invoke(get(), __a0, __a1, __a2); + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + typename __invoke_return2::type + operator() (_A0 const& __a0, _A1& __a1, _A2 const& __a2) const { + return __invoke(get(), __a0, __a1, __a2); + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + typename __invoke_return2::type + operator() (_A0& __a0, _A1 const& __a1, _A2 const& __a2) const { + return __invoke(get(), __a0, __a1, __a2); + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + typename __invoke_return2::type + operator() (_A0 const& __a0, _A1 const& __a1, _A2 const& __a2) const { + return __invoke(get(), __a0, __a1, __a2); + } +#endif // _LIBCUDACXX_CXX03_LANG +}; + + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +reference_wrapper<_Tp> +ref(_Tp& __t) _NOEXCEPT +{ + return reference_wrapper<_Tp>(__t); +} + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +reference_wrapper<_Tp> +ref(reference_wrapper<_Tp> __t) _NOEXCEPT +{ + return ref(__t.get()); +} + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +reference_wrapper +cref(const _Tp& __t) _NOEXCEPT +{ + return reference_wrapper(__t); +} + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +reference_wrapper +cref(reference_wrapper<_Tp> __t) _NOEXCEPT +{ + return cref(__t.get()); +} + +#ifndef _LIBCUDACXX_CXX03_LANG +template void ref(const _Tp&&) = delete; +template void cref(const _Tp&&) = delete; +#endif + +#if _LIBCUDACXX_STD_VER > 11 +template +struct __is_transparent : false_type {}; + +template +struct __is_transparent<_Tp, _Up, + typename __void_t::type> + : true_type {}; +#endif + +// allocator_arg_t + +struct _LIBCUDACXX_TEMPLATE_VIS allocator_arg_t { explicit allocator_arg_t() = default; }; + +#if defined(_LIBCUDACXX_CXX03_LANG) || defined(_LIBCUDACXX_BUILDING_LIBRARY) +extern _LIBCUDACXX_EXPORTED_FROM_ABI const allocator_arg_t allocator_arg; +#else +/* _LIBCUDACXX_INLINE_VAR */ constexpr allocator_arg_t allocator_arg = allocator_arg_t(); +#endif + +// uses_allocator + +template +struct __has_allocator_type +{ +private: + struct __two {char __lx; char __lxx;}; + template _LIBCUDACXX_INLINE_VISIBILITY static __two __test(...); + template _LIBCUDACXX_INLINE_VISIBILITY static char __test(typename _Up::allocator_type* = 0); +public: + static const bool value = sizeof(__test<_Tp>(0)) == 1; +}; + +template ::value> +struct __uses_allocator + : public integral_constant::value> +{ +}; + +template +struct __uses_allocator<_Tp, _Alloc, false> + : public false_type +{ +}; + +template +struct _LIBCUDACXX_TEMPLATE_VIS uses_allocator + : public __uses_allocator<_Tp, _Alloc> +{ +}; + +#if _LIBCUDACXX_STD_VER > 14 +template +_LIBCUDACXX_INLINE_VAR constexpr size_t uses_allocator_v = uses_allocator<_Tp, _Alloc>::value; +#endif + +#ifndef _LIBCUDACXX_CXX03_LANG + +// allocator construction + +template +struct __uses_alloc_ctor_imp +{ + typedef _LIBCUDACXX_NODEBUG_TYPE typename __uncvref<_Alloc>::type _RawAlloc; + static const bool __ua = uses_allocator<_Tp, _RawAlloc>::value; + static const bool __ic = + is_constructible<_Tp, allocator_arg_t, _Alloc, _Args...>::value; + static const int value = __ua ? 2 - __ic : 0; +}; + +template +struct __uses_alloc_ctor + : integral_constant::value> + {}; + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +void __user_alloc_construct_impl (integral_constant, _Tp *__storage, const _Allocator &, _Args &&... __args ) +{ + new (__storage) _Tp (_CUDA_VSTD::forward<_Args>(__args)...); +} + +// FIXME: This should have a version which takes a non-const alloc. +template +inline _LIBCUDACXX_INLINE_VISIBILITY +void __user_alloc_construct_impl (integral_constant, _Tp *__storage, const _Allocator &__a, _Args &&... __args ) +{ + new (__storage) _Tp (allocator_arg, __a, _CUDA_VSTD::forward<_Args>(__args)...); +} + +// FIXME: This should have a version which takes a non-const alloc. +template +inline _LIBCUDACXX_INLINE_VISIBILITY +void __user_alloc_construct_impl (integral_constant, _Tp *__storage, const _Allocator &__a, _Args &&... __args ) +{ + new (__storage) _Tp (_CUDA_VSTD::forward<_Args>(__args)..., __a); +} + +#endif // _LIBCUDACXX_CXX03_LANG + +_LIBCUDACXX_END_NAMESPACE_STD + +#ifndef __cuda_std__ +#include <__pragma_pop> +#endif + +#endif // _LIBCUDACXX_FUNCTIONAL_BASE diff --git a/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__functional_base_03 b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__functional_base_03 new file mode 100644 index 0000000000000000000000000000000000000000..4187e9f5cf1dc848a802e02cc1a7aef8cf41af72 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__functional_base_03 @@ -0,0 +1,223 @@ +// -*- C++ -*- +//===----------------------------------------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef _LIBCUDACXX_FUNCTIONAL_BASE_03 +#define _LIBCUDACXX_FUNCTIONAL_BASE_03 + +// manual variadic expansion for + +// __invoke + +template +struct __enable_invoke_imp; + +template +struct __enable_invoke_imp<_Ret, _T1, true, true> { + typedef _Ret _Bullet1; + typedef _Bullet1 type; +}; + +template +struct __enable_invoke_imp<_Ret, _T1, true, false> { + typedef _Ret _Bullet2; + typedef _Bullet2 type; +}; + +template +struct __enable_invoke_imp<_Ret, _T1, false, true> { + typedef typename add_lvalue_reference< + typename __apply_cv<_T1, _Ret>::type + >::type _Bullet3; + typedef _Bullet3 type; +}; + +template +struct __enable_invoke_imp<_Ret, _T1, false, false> { + typedef typename add_lvalue_reference< + typename __apply_cv()), _Ret>::type + >::type _Bullet4; + typedef _Bullet4 type; +}; + +template +struct __enable_invoke_imp<_Ret, _T1*, false, false> { + typedef typename add_lvalue_reference< + typename __apply_cv<_T1, _Ret>::type + >::type _Bullet4; + typedef _Bullet4 type; +}; + +template , + class _Ret = typename _Traits::_ReturnType, + class _Class = typename _Traits::_ClassType> +struct __enable_invoke : __enable_invoke_imp< + _Ret, _T1, + is_member_function_pointer<_Fn>::value, + is_base_of<_Class, typename remove_reference<_T1>::type>::value> +{ +}; + +__nat __invoke(__any, ...); + +// first bullet + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +typename __enable_invoke<_Fn, _T1>::_Bullet1 +__invoke(_Fn __f, _T1& __t1) { + return (__t1.*__f)(); +} + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +typename __enable_invoke<_Fn, _T1>::_Bullet1 +__invoke(_Fn __f, _T1& __t1, _A0& __a0) { + return (__t1.*__f)(__a0); +} + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +typename __enable_invoke<_Fn, _T1>::_Bullet1 +__invoke(_Fn __f, _T1& __t1, _A0& __a0, _A1& __a1) { + return (__t1.*__f)(__a0, __a1); +} + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +typename __enable_invoke<_Fn, _T1>::_Bullet1 +__invoke(_Fn __f, _T1& __t1, _A0& __a0, _A1& __a1, _A2& __a2) { + return (__t1.*__f)(__a0, __a1, __a2); +} + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +typename __enable_invoke<_Fn, _T1>::_Bullet2 +__invoke(_Fn __f, _T1& __t1) { + return ((*__t1).*__f)(); +} + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +typename __enable_invoke<_Fn, _T1>::_Bullet2 +__invoke(_Fn __f, _T1& __t1, _A0& __a0) { + return ((*__t1).*__f)(__a0); +} + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +typename __enable_invoke<_Fn, _T1>::_Bullet2 +__invoke(_Fn __f, _T1& __t1, _A0& __a0, _A1& __a1) { + return ((*__t1).*__f)(__a0, __a1); +} + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +typename __enable_invoke<_Fn, _T1>::_Bullet2 +__invoke(_Fn __f, _T1& __t1, _A0& __a0, _A1& __a1, _A2& __a2) { + return ((*__t1).*__f)(__a0, __a1, __a2); +} + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +typename __enable_invoke<_Fn, _T1>::_Bullet3 +__invoke(_Fn __f, _T1& __t1) { + return __t1.*__f; +} + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +typename __enable_invoke<_Fn, _T1>::_Bullet4 +__invoke(_Fn __f, _T1& __t1) { + return (*__t1).*__f; +} + +// fifth bullet + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +decltype(_CUDA_VSTD::declval<_Fp&>()()) +__invoke(_Fp& __f) +{ + return __f(); +} + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +decltype(_CUDA_VSTD::declval<_Fp&>()(_CUDA_VSTD::declval<_A0&>())) +__invoke(_Fp& __f, _A0& __a0) +{ + return __f(__a0); +} + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +decltype(_CUDA_VSTD::declval<_Fp&>()(_CUDA_VSTD::declval<_A0&>(), _CUDA_VSTD::declval<_A1&>())) +__invoke(_Fp& __f, _A0& __a0, _A1& __a1) +{ + return __f(__a0, __a1); +} + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +decltype(_CUDA_VSTD::declval<_Fp&>()(_CUDA_VSTD::declval<_A0&>(), _CUDA_VSTD::declval<_A1&>(), _CUDA_VSTD::declval<_A2&>())) +__invoke(_Fp& __f, _A0& __a0, _A1& __a1, _A2& __a2) +{ + return __f(__a0, __a1, __a2); +} + +template >::value> +struct __invoke_return +{ + typedef typename __weak_result_type<_Fp>::result_type type; +}; + +template +struct __invoke_return<_Fp, false> +{ + typedef decltype(__invoke(_CUDA_VSTD::declval<_Fp&>())) type; +}; + +template +struct __invoke_return0 +{ + typedef decltype(__invoke(_CUDA_VSTD::declval<_Tp&>(), _CUDA_VSTD::declval<_A0&>())) type; +}; + +template +struct __invoke_return0<_Rp _Tp::*, _A0> +{ + typedef typename __enable_invoke<_Rp _Tp::*, _A0>::type type; +}; + +template +struct __invoke_return1 +{ + typedef decltype(__invoke(_CUDA_VSTD::declval<_Tp&>(), _CUDA_VSTD::declval<_A0&>(), + _CUDA_VSTD::declval<_A1&>())) type; +}; + +template +struct __invoke_return1<_Rp _Class::*, _A0, _A1> { + typedef typename __enable_invoke<_Rp _Class::*, _A0>::type type; +}; + +template +struct __invoke_return2 +{ + typedef decltype(__invoke(_CUDA_VSTD::declval<_Tp&>(), _CUDA_VSTD::declval<_A0&>(), + _CUDA_VSTD::declval<_A1&>(), + _CUDA_VSTD::declval<_A2&>())) type; +}; + +template +struct __invoke_return2<_Ret _Class::*, _A0, _A1, _A2> { + typedef typename __enable_invoke<_Ret _Class::*, _A0>::type type; +}; +#endif // _LIBCUDACXX_FUNCTIONAL_BASE_03 diff --git a/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__hash_table b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__hash_table new file mode 100644 index 0000000000000000000000000000000000000000..9399fc210d791529cef72a890e32de98e84bef2a --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__hash_table @@ -0,0 +1,2914 @@ +// -*- C++ -*- +//===----------------------------------------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef _LIBCUDACXX__HASH_TABLE +#define _LIBCUDACXX__HASH_TABLE + +#include <__config> +#include +#include +#include +#include +#include +#include +#include + +#include <__debug> + +#if defined(_LIBCUDACXX_USE_PRAGMA_GCC_SYSTEM_HEADER) +#pragma GCC system_header +#endif + +_LIBCUDACXX_PUSH_MACROS +#include <__undef_macros> + + +_LIBCUDACXX_BEGIN_NAMESPACE_STD + +template +struct __hash_value_type; + +#ifndef _LIBCUDACXX_CXX03_LANG +template +struct __is_hash_value_type_imp : false_type {}; + +template +struct __is_hash_value_type_imp<__hash_value_type<_Key, _Value>> : true_type {}; + +template +struct __is_hash_value_type : false_type {}; + +template +struct __is_hash_value_type<_One> : __is_hash_value_type_imp::type> {}; +#endif + +_LIBCUDACXX_FUNC_VIS +size_t __next_prime(size_t __n); + +template +struct __hash_node_base +{ + typedef typename pointer_traits<_NodePtr>::element_type __node_type; + typedef __hash_node_base __first_node; + typedef typename __rebind_pointer<_NodePtr, __first_node>::type __node_base_pointer; + typedef _NodePtr __node_pointer; + +#if defined(_LIBCUDACXX_ABI_FIX_UNORDERED_NODE_POINTER_UB) + typedef __node_base_pointer __next_pointer; +#else + typedef typename conditional< + is_pointer<__node_pointer>::value, + __node_base_pointer, + __node_pointer>::type __next_pointer; +#endif + + __next_pointer __next_; + + _LIBCUDACXX_INLINE_VISIBILITY + __next_pointer __ptr() _NOEXCEPT { + return static_cast<__next_pointer>( + pointer_traits<__node_base_pointer>::pointer_to(*this)); + } + + _LIBCUDACXX_INLINE_VISIBILITY + __node_pointer __upcast() _NOEXCEPT { + return static_cast<__node_pointer>( + pointer_traits<__node_base_pointer>::pointer_to(*this)); + } + + _LIBCUDACXX_INLINE_VISIBILITY + size_t __hash() const _NOEXCEPT { + return static_cast<__node_type const&>(*this).__hash_; + } + + _LIBCUDACXX_INLINE_VISIBILITY __hash_node_base() _NOEXCEPT : __next_(nullptr) {} +}; + +template +struct __hash_node + : public __hash_node_base + < + typename __rebind_pointer<_VoidPtr, __hash_node<_Tp, _VoidPtr> >::type + > +{ + typedef _Tp __node_value_type; + + size_t __hash_; + __node_value_type __value_; +}; + +inline _LIBCUDACXX_INLINE_VISIBILITY +bool +__is_hash_power2(size_t __bc) +{ + return __bc > 2 && !(__bc & (__bc - 1)); +} + +inline _LIBCUDACXX_INLINE_VISIBILITY +size_t +__constrain_hash(size_t __h, size_t __bc) +{ + return !(__bc & (__bc - 1)) ? __h & (__bc - 1) : + (__h < __bc ? __h : __h % __bc); +} + +inline _LIBCUDACXX_INLINE_VISIBILITY +size_t +__next_hash_pow2(size_t __n) +{ + return __n < 2 ? __n : (size_t(1) << (std::numeric_limits::digits - __libcpp_clz(__n-1))); +} + + +template class __hash_table; + +template class _LIBCUDACXX_TEMPLATE_VIS __hash_iterator; +template class _LIBCUDACXX_TEMPLATE_VIS __hash_const_iterator; +template class _LIBCUDACXX_TEMPLATE_VIS __hash_local_iterator; +template class _LIBCUDACXX_TEMPLATE_VIS __hash_const_local_iterator; +template class _LIBCUDACXX_TEMPLATE_VIS __hash_map_iterator; +template class _LIBCUDACXX_TEMPLATE_VIS __hash_map_const_iterator; + +template +struct __hash_key_value_types { + static_assert(!is_reference<_Tp>::value && !is_const<_Tp>::value, ""); + typedef _Tp key_type; + typedef _Tp __node_value_type; + typedef _Tp __container_value_type; + static const bool __is_map = false; + + _LIBCUDACXX_INLINE_VISIBILITY + static key_type const& __get_key(_Tp const& __v) { + return __v; + } + _LIBCUDACXX_INLINE_VISIBILITY + static __container_value_type const& __get_value(__node_value_type const& __v) { + return __v; + } + _LIBCUDACXX_INLINE_VISIBILITY + static __container_value_type* __get_ptr(__node_value_type& __n) { + return _CUDA_VSTD::addressof(__n); + } +#ifndef _LIBCUDACXX_CXX03_LANG + _LIBCUDACXX_INLINE_VISIBILITY + static __container_value_type&& __move(__node_value_type& __v) { + return _CUDA_VSTD::move(__v); + } +#endif +}; + +template +struct __hash_key_value_types<__hash_value_type<_Key, _Tp> > { + typedef _Key key_type; + typedef _Tp mapped_type; + typedef __hash_value_type<_Key, _Tp> __node_value_type; + typedef pair __container_value_type; + typedef __container_value_type __map_value_type; + static const bool __is_map = true; + + _LIBCUDACXX_INLINE_VISIBILITY + static key_type const& __get_key(__container_value_type const& __v) { + return __v.first; + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + static typename enable_if<__is_same_uncvref<_Up, __node_value_type>::value, + __container_value_type const&>::type + __get_value(_Up& __t) { + return __t.__get_value(); + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + static typename enable_if<__is_same_uncvref<_Up, __container_value_type>::value, + __container_value_type const&>::type + __get_value(_Up& __t) { + return __t; + } + + _LIBCUDACXX_INLINE_VISIBILITY + static __container_value_type* __get_ptr(__node_value_type& __n) { + return _CUDA_VSTD::addressof(__n.__get_value()); + } +#ifndef _LIBCUDACXX_CXX03_LANG + _LIBCUDACXX_INLINE_VISIBILITY + static pair __move(__node_value_type& __v) { + return __v.__move(); + } +#endif + +}; + +template , + bool = _KVTypes::__is_map> +struct __hash_map_pointer_types {}; + +template +struct __hash_map_pointer_types<_Tp, _AllocPtr, _KVTypes, true> { + typedef typename _KVTypes::__map_value_type _Mv; + typedef typename __rebind_pointer<_AllocPtr, _Mv>::type + __map_value_type_pointer; + typedef typename __rebind_pointer<_AllocPtr, const _Mv>::type + __const_map_value_type_pointer; +}; + +template ::element_type> +struct __hash_node_types; + +template +struct __hash_node_types<_NodePtr, __hash_node<_Tp, _VoidPtr> > + : public __hash_key_value_types<_Tp>, __hash_map_pointer_types<_Tp, _VoidPtr> + +{ + typedef __hash_key_value_types<_Tp> __base; + +public: + typedef ptrdiff_t difference_type; + typedef size_t size_type; + + typedef typename __rebind_pointer<_NodePtr, void>::type __void_pointer; + + typedef typename pointer_traits<_NodePtr>::element_type __node_type; + typedef _NodePtr __node_pointer; + + typedef __hash_node_base<__node_pointer> __node_base_type; + typedef typename __rebind_pointer<_NodePtr, __node_base_type>::type + __node_base_pointer; + + typedef typename __node_base_type::__next_pointer __next_pointer; + + typedef _Tp __node_value_type; + typedef typename __rebind_pointer<_VoidPtr, __node_value_type>::type + __node_value_type_pointer; + typedef typename __rebind_pointer<_VoidPtr, const __node_value_type>::type + __const_node_value_type_pointer; + +private: + static_assert(!is_const<__node_type>::value, + "_NodePtr should never be a pointer to const"); + static_assert((is_same::element_type, void>::value), + "_VoidPtr does not point to unqualified void type"); + static_assert((is_same::type, + _NodePtr>::value), "_VoidPtr does not rebind to _NodePtr."); +}; + +template +struct __hash_node_types_from_iterator; +template +struct __hash_node_types_from_iterator<__hash_iterator<_NodePtr> > : __hash_node_types<_NodePtr> {}; +template +struct __hash_node_types_from_iterator<__hash_const_iterator<_NodePtr> > : __hash_node_types<_NodePtr> {}; +template +struct __hash_node_types_from_iterator<__hash_local_iterator<_NodePtr> > : __hash_node_types<_NodePtr> {}; +template +struct __hash_node_types_from_iterator<__hash_const_local_iterator<_NodePtr> > : __hash_node_types<_NodePtr> {}; + + +template +struct __make_hash_node_types { + typedef __hash_node<_NodeValueTp, _VoidPtr> _NodeTp; + typedef typename __rebind_pointer<_VoidPtr, _NodeTp>::type _NodePtr; + typedef __hash_node_types<_NodePtr> type; +}; + +template +class _LIBCUDACXX_TEMPLATE_VIS __hash_iterator +{ + typedef __hash_node_types<_NodePtr> _NodeTypes; + typedef _NodePtr __node_pointer; + typedef typename _NodeTypes::__next_pointer __next_pointer; + + __next_pointer __node_; + +public: + typedef forward_iterator_tag iterator_category; + typedef typename _NodeTypes::__node_value_type value_type; + typedef typename _NodeTypes::difference_type difference_type; + typedef value_type& reference; + typedef typename _NodeTypes::__node_value_type_pointer pointer; + + _LIBCUDACXX_INLINE_VISIBILITY __hash_iterator() _NOEXCEPT : __node_(nullptr) { + _LIBCUDACXX_DEBUG_MODE(__get_db()->__insert_i(this)); + } + +#if _LIBCUDACXX_DEBUG_LEVEL >= 2 + _LIBCUDACXX_INLINE_VISIBILITY + __hash_iterator(const __hash_iterator& __i) + : __node_(__i.__node_) + { + __get_db()->__iterator_copy(this, &__i); + } + + _LIBCUDACXX_INLINE_VISIBILITY + ~__hash_iterator() + { + __get_db()->__erase_i(this); + } + + _LIBCUDACXX_INLINE_VISIBILITY + __hash_iterator& operator=(const __hash_iterator& __i) + { + if (this != &__i) + { + __get_db()->__iterator_copy(this, &__i); + __node_ = __i.__node_; + } + return *this; + } +#endif // _LIBCUDACXX_DEBUG_LEVEL >= 2 + + _LIBCUDACXX_INLINE_VISIBILITY + reference operator*() const { + _LIBCUDACXX_DEBUG_ASSERT(__get_const_db()->__dereferenceable(this), + "Attempted to dereference a non-dereferenceable unordered container iterator"); + return __node_->__upcast()->__value_; + } + + _LIBCUDACXX_INLINE_VISIBILITY + pointer operator->() const { + _LIBCUDACXX_DEBUG_ASSERT(__get_const_db()->__dereferenceable(this), + "Attempted to dereference a non-dereferenceable unordered container iterator"); + return pointer_traits::pointer_to(__node_->__upcast()->__value_); + } + + _LIBCUDACXX_INLINE_VISIBILITY + __hash_iterator& operator++() { + _LIBCUDACXX_DEBUG_ASSERT(__get_const_db()->__dereferenceable(this), + "Attempted to increment non-incrementable unordered container iterator"); + __node_ = __node_->__next_; + return *this; + } + + _LIBCUDACXX_INLINE_VISIBILITY + __hash_iterator operator++(int) + { + __hash_iterator __t(*this); + ++(*this); + return __t; + } + + friend _LIBCUDACXX_INLINE_VISIBILITY + bool operator==(const __hash_iterator& __x, const __hash_iterator& __y) + { + return __x.__node_ == __y.__node_; + } + friend _LIBCUDACXX_INLINE_VISIBILITY + bool operator!=(const __hash_iterator& __x, const __hash_iterator& __y) + {return !(__x == __y);} + +private: +#if _LIBCUDACXX_DEBUG_LEVEL >= 2 + _LIBCUDACXX_INLINE_VISIBILITY + __hash_iterator(__next_pointer __node, const void* __c) _NOEXCEPT + : __node_(__node) + { + __get_db()->__insert_ic(this, __c); + } +#else + _LIBCUDACXX_INLINE_VISIBILITY + __hash_iterator(__next_pointer __node) _NOEXCEPT + : __node_(__node) + {} +#endif + template friend class __hash_table; + template friend class _LIBCUDACXX_TEMPLATE_VIS __hash_const_iterator; + template friend class _LIBCUDACXX_TEMPLATE_VIS __hash_map_iterator; + template friend class _LIBCUDACXX_TEMPLATE_VIS unordered_map; + template friend class _LIBCUDACXX_TEMPLATE_VIS unordered_multimap; +}; + +template +class _LIBCUDACXX_TEMPLATE_VIS __hash_const_iterator +{ + static_assert(!is_const::element_type>::value, ""); + typedef __hash_node_types<_NodePtr> _NodeTypes; + typedef _NodePtr __node_pointer; + typedef typename _NodeTypes::__next_pointer __next_pointer; + + __next_pointer __node_; + +public: + typedef __hash_iterator<_NodePtr> __non_const_iterator; + + typedef forward_iterator_tag iterator_category; + typedef typename _NodeTypes::__node_value_type value_type; + typedef typename _NodeTypes::difference_type difference_type; + typedef const value_type& reference; + typedef typename _NodeTypes::__const_node_value_type_pointer pointer; + + + _LIBCUDACXX_INLINE_VISIBILITY __hash_const_iterator() _NOEXCEPT : __node_(nullptr) { + _LIBCUDACXX_DEBUG_MODE(__get_db()->__insert_i(this)); + } + + _LIBCUDACXX_INLINE_VISIBILITY + __hash_const_iterator(const __non_const_iterator& __x) _NOEXCEPT + : __node_(__x.__node_) + { + _LIBCUDACXX_DEBUG_MODE(__get_db()->__iterator_copy(this, &__x)); + } + +#if _LIBCUDACXX_DEBUG_LEVEL >= 2 + _LIBCUDACXX_INLINE_VISIBILITY + __hash_const_iterator(const __hash_const_iterator& __i) + : __node_(__i.__node_) + { + __get_db()->__iterator_copy(this, &__i); + } + + _LIBCUDACXX_INLINE_VISIBILITY + ~__hash_const_iterator() + { + __get_db()->__erase_i(this); + } + + _LIBCUDACXX_INLINE_VISIBILITY + __hash_const_iterator& operator=(const __hash_const_iterator& __i) + { + if (this != &__i) + { + __get_db()->__iterator_copy(this, &__i); + __node_ = __i.__node_; + } + return *this; + } +#endif // _LIBCUDACXX_DEBUG_LEVEL >= 2 + + _LIBCUDACXX_INLINE_VISIBILITY + reference operator*() const { + _LIBCUDACXX_DEBUG_ASSERT(__get_const_db()->__dereferenceable(this), + "Attempted to dereference a non-dereferenceable unordered container const_iterator"); + return __node_->__upcast()->__value_; + } + _LIBCUDACXX_INLINE_VISIBILITY + pointer operator->() const { + _LIBCUDACXX_DEBUG_ASSERT(__get_const_db()->__dereferenceable(this), + "Attempted to dereference a non-dereferenceable unordered container const_iterator"); + return pointer_traits::pointer_to(__node_->__upcast()->__value_); + } + + _LIBCUDACXX_INLINE_VISIBILITY + __hash_const_iterator& operator++() { + _LIBCUDACXX_DEBUG_ASSERT(__get_const_db()->__dereferenceable(this), + "Attempted to increment non-incrementable unordered container const_iterator"); + __node_ = __node_->__next_; + return *this; + } + + _LIBCUDACXX_INLINE_VISIBILITY + __hash_const_iterator operator++(int) + { + __hash_const_iterator __t(*this); + ++(*this); + return __t; + } + + friend _LIBCUDACXX_INLINE_VISIBILITY + bool operator==(const __hash_const_iterator& __x, const __hash_const_iterator& __y) + { + return __x.__node_ == __y.__node_; + } + friend _LIBCUDACXX_INLINE_VISIBILITY + bool operator!=(const __hash_const_iterator& __x, const __hash_const_iterator& __y) + {return !(__x == __y);} + +private: +#if _LIBCUDACXX_DEBUG_LEVEL >= 2 + _LIBCUDACXX_INLINE_VISIBILITY + __hash_const_iterator(__next_pointer __node, const void* __c) _NOEXCEPT + : __node_(__node) + { + __get_db()->__insert_ic(this, __c); + } +#else + _LIBCUDACXX_INLINE_VISIBILITY + __hash_const_iterator(__next_pointer __node) _NOEXCEPT + : __node_(__node) + {} +#endif + template friend class __hash_table; + template friend class _LIBCUDACXX_TEMPLATE_VIS __hash_map_const_iterator; + template friend class _LIBCUDACXX_TEMPLATE_VIS unordered_map; + template friend class _LIBCUDACXX_TEMPLATE_VIS unordered_multimap; +}; + +template +class _LIBCUDACXX_TEMPLATE_VIS __hash_local_iterator +{ + typedef __hash_node_types<_NodePtr> _NodeTypes; + typedef _NodePtr __node_pointer; + typedef typename _NodeTypes::__next_pointer __next_pointer; + + __next_pointer __node_; + size_t __bucket_; + size_t __bucket_count_; + +public: + typedef forward_iterator_tag iterator_category; + typedef typename _NodeTypes::__node_value_type value_type; + typedef typename _NodeTypes::difference_type difference_type; + typedef value_type& reference; + typedef typename _NodeTypes::__node_value_type_pointer pointer; + + _LIBCUDACXX_INLINE_VISIBILITY __hash_local_iterator() _NOEXCEPT : __node_(nullptr) { + _LIBCUDACXX_DEBUG_MODE(__get_db()->__insert_i(this)); + } + +#if _LIBCUDACXX_DEBUG_LEVEL >= 2 + _LIBCUDACXX_INLINE_VISIBILITY + __hash_local_iterator(const __hash_local_iterator& __i) + : __node_(__i.__node_), + __bucket_(__i.__bucket_), + __bucket_count_(__i.__bucket_count_) + { + __get_db()->__iterator_copy(this, &__i); + } + + _LIBCUDACXX_INLINE_VISIBILITY + ~__hash_local_iterator() + { + __get_db()->__erase_i(this); + } + + _LIBCUDACXX_INLINE_VISIBILITY + __hash_local_iterator& operator=(const __hash_local_iterator& __i) + { + if (this != &__i) + { + __get_db()->__iterator_copy(this, &__i); + __node_ = __i.__node_; + __bucket_ = __i.__bucket_; + __bucket_count_ = __i.__bucket_count_; + } + return *this; + } +#endif // _LIBCUDACXX_DEBUG_LEVEL >= 2 + + _LIBCUDACXX_INLINE_VISIBILITY + reference operator*() const { + _LIBCUDACXX_DEBUG_ASSERT(__get_const_db()->__dereferenceable(this), + "Attempted to dereference a non-dereferenceable unordered container local_iterator"); + return __node_->__upcast()->__value_; + } + + _LIBCUDACXX_INLINE_VISIBILITY + pointer operator->() const { + _LIBCUDACXX_DEBUG_ASSERT(__get_const_db()->__dereferenceable(this), + "Attempted to dereference a non-dereferenceable unordered container local_iterator"); + return pointer_traits::pointer_to(__node_->__upcast()->__value_); + } + + _LIBCUDACXX_INLINE_VISIBILITY + __hash_local_iterator& operator++() { + _LIBCUDACXX_DEBUG_ASSERT(__get_const_db()->__dereferenceable(this), + "Attempted to increment non-incrementable unordered container local_iterator"); + __node_ = __node_->__next_; + if (__node_ != nullptr && __constrain_hash(__node_->__hash(), __bucket_count_) != __bucket_) + __node_ = nullptr; + return *this; + } + + _LIBCUDACXX_INLINE_VISIBILITY + __hash_local_iterator operator++(int) + { + __hash_local_iterator __t(*this); + ++(*this); + return __t; + } + + friend _LIBCUDACXX_INLINE_VISIBILITY + bool operator==(const __hash_local_iterator& __x, const __hash_local_iterator& __y) + { + return __x.__node_ == __y.__node_; + } + friend _LIBCUDACXX_INLINE_VISIBILITY + bool operator!=(const __hash_local_iterator& __x, const __hash_local_iterator& __y) + {return !(__x == __y);} + +private: +#if _LIBCUDACXX_DEBUG_LEVEL >= 2 + _LIBCUDACXX_INLINE_VISIBILITY + __hash_local_iterator(__next_pointer __node, size_t __bucket, + size_t __bucket_count, const void* __c) _NOEXCEPT + : __node_(__node), + __bucket_(__bucket), + __bucket_count_(__bucket_count) + { + __get_db()->__insert_ic(this, __c); + if (__node_ != nullptr) + __node_ = __node_->__next_; + } +#else + _LIBCUDACXX_INLINE_VISIBILITY + __hash_local_iterator(__next_pointer __node, size_t __bucket, + size_t __bucket_count) _NOEXCEPT + : __node_(__node), + __bucket_(__bucket), + __bucket_count_(__bucket_count) + { + if (__node_ != nullptr) + __node_ = __node_->__next_; + } +#endif + template friend class __hash_table; + template friend class _LIBCUDACXX_TEMPLATE_VIS __hash_const_local_iterator; + template friend class _LIBCUDACXX_TEMPLATE_VIS __hash_map_iterator; +}; + +template +class _LIBCUDACXX_TEMPLATE_VIS __hash_const_local_iterator +{ + typedef __hash_node_types<_ConstNodePtr> _NodeTypes; + typedef _ConstNodePtr __node_pointer; + typedef typename _NodeTypes::__next_pointer __next_pointer; + + __next_pointer __node_; + size_t __bucket_; + size_t __bucket_count_; + + typedef pointer_traits<__node_pointer> __pointer_traits; + typedef typename __pointer_traits::element_type __node; + typedef typename remove_const<__node>::type __non_const_node; + typedef typename __rebind_pointer<__node_pointer, __non_const_node>::type + __non_const_node_pointer; +public: + typedef __hash_local_iterator<__non_const_node_pointer> + __non_const_iterator; + + typedef forward_iterator_tag iterator_category; + typedef typename _NodeTypes::__node_value_type value_type; + typedef typename _NodeTypes::difference_type difference_type; + typedef const value_type& reference; + typedef typename _NodeTypes::__const_node_value_type_pointer pointer; + + + _LIBCUDACXX_INLINE_VISIBILITY __hash_const_local_iterator() _NOEXCEPT : __node_(nullptr) { + _LIBCUDACXX_DEBUG_MODE(__get_db()->__insert_i(this)); + } + + _LIBCUDACXX_INLINE_VISIBILITY + __hash_const_local_iterator(const __non_const_iterator& __x) _NOEXCEPT + : __node_(__x.__node_), + __bucket_(__x.__bucket_), + __bucket_count_(__x.__bucket_count_) + { + _LIBCUDACXX_DEBUG_MODE(__get_db()->__iterator_copy(this, &__x)); + } + +#if _LIBCUDACXX_DEBUG_LEVEL >= 2 + _LIBCUDACXX_INLINE_VISIBILITY + __hash_const_local_iterator(const __hash_const_local_iterator& __i) + : __node_(__i.__node_), + __bucket_(__i.__bucket_), + __bucket_count_(__i.__bucket_count_) + { + __get_db()->__iterator_copy(this, &__i); + } + + _LIBCUDACXX_INLINE_VISIBILITY + ~__hash_const_local_iterator() + { + __get_db()->__erase_i(this); + } + + _LIBCUDACXX_INLINE_VISIBILITY + __hash_const_local_iterator& operator=(const __hash_const_local_iterator& __i) + { + if (this != &__i) + { + __get_db()->__iterator_copy(this, &__i); + __node_ = __i.__node_; + __bucket_ = __i.__bucket_; + __bucket_count_ = __i.__bucket_count_; + } + return *this; + } +#endif // _LIBCUDACXX_DEBUG_LEVEL >= 2 + + _LIBCUDACXX_INLINE_VISIBILITY + reference operator*() const { + _LIBCUDACXX_DEBUG_ASSERT(__get_const_db()->__dereferenceable(this), + "Attempted to dereference a non-dereferenceable unordered container const_local_iterator"); + return __node_->__upcast()->__value_; + } + + _LIBCUDACXX_INLINE_VISIBILITY + pointer operator->() const { + _LIBCUDACXX_DEBUG_ASSERT(__get_const_db()->__dereferenceable(this), + "Attempted to dereference a non-dereferenceable unordered container const_local_iterator"); + return pointer_traits::pointer_to(__node_->__upcast()->__value_); + } + + _LIBCUDACXX_INLINE_VISIBILITY + __hash_const_local_iterator& operator++() { + _LIBCUDACXX_DEBUG_ASSERT(__get_const_db()->__dereferenceable(this), + "Attempted to increment non-incrementable unordered container const_local_iterator"); + __node_ = __node_->__next_; + if (__node_ != nullptr && __constrain_hash(__node_->__hash(), __bucket_count_) != __bucket_) + __node_ = nullptr; + return *this; + } + + _LIBCUDACXX_INLINE_VISIBILITY + __hash_const_local_iterator operator++(int) + { + __hash_const_local_iterator __t(*this); + ++(*this); + return __t; + } + + friend _LIBCUDACXX_INLINE_VISIBILITY + bool operator==(const __hash_const_local_iterator& __x, const __hash_const_local_iterator& __y) + { + return __x.__node_ == __y.__node_; + } + friend _LIBCUDACXX_INLINE_VISIBILITY + bool operator!=(const __hash_const_local_iterator& __x, const __hash_const_local_iterator& __y) + {return !(__x == __y);} + +private: +#if _LIBCUDACXX_DEBUG_LEVEL >= 2 + _LIBCUDACXX_INLINE_VISIBILITY + __hash_const_local_iterator(__next_pointer __node, size_t __bucket, + size_t __bucket_count, const void* __c) _NOEXCEPT + : __node_(__node), + __bucket_(__bucket), + __bucket_count_(__bucket_count) + { + __get_db()->__insert_ic(this, __c); + if (__node_ != nullptr) + __node_ = __node_->__next_; + } +#else + _LIBCUDACXX_INLINE_VISIBILITY + __hash_const_local_iterator(__next_pointer __node, size_t __bucket, + size_t __bucket_count) _NOEXCEPT + : __node_(__node), + __bucket_(__bucket), + __bucket_count_(__bucket_count) + { + if (__node_ != nullptr) + __node_ = __node_->__next_; + } +#endif + template friend class __hash_table; + template friend class _LIBCUDACXX_TEMPLATE_VIS __hash_map_const_iterator; +}; + +template +class __bucket_list_deallocator +{ + typedef _Alloc allocator_type; + typedef allocator_traits __alloc_traits; + typedef typename __alloc_traits::size_type size_type; + + __compressed_pair __data_; +public: + typedef typename __alloc_traits::pointer pointer; + + _LIBCUDACXX_INLINE_VISIBILITY + __bucket_list_deallocator() + _NOEXCEPT_(is_nothrow_default_constructible::value) + : __data_(0) {} + + _LIBCUDACXX_INLINE_VISIBILITY + __bucket_list_deallocator(const allocator_type& __a, size_type __size) + _NOEXCEPT_(is_nothrow_copy_constructible::value) + : __data_(__size, __a) {} + +#ifndef _LIBCUDACXX_CXX03_LANG + _LIBCUDACXX_INLINE_VISIBILITY + __bucket_list_deallocator(__bucket_list_deallocator&& __x) + _NOEXCEPT_(is_nothrow_move_constructible::value) + : __data_(_CUDA_VSTD::move(__x.__data_)) + { + __x.size() = 0; + } +#endif + + _LIBCUDACXX_INLINE_VISIBILITY + size_type& size() _NOEXCEPT {return __data_.first();} + _LIBCUDACXX_INLINE_VISIBILITY + size_type size() const _NOEXCEPT {return __data_.first();} + + _LIBCUDACXX_INLINE_VISIBILITY + allocator_type& __alloc() _NOEXCEPT {return __data_.second();} + _LIBCUDACXX_INLINE_VISIBILITY + const allocator_type& __alloc() const _NOEXCEPT {return __data_.second();} + + _LIBCUDACXX_INLINE_VISIBILITY + void operator()(pointer __p) _NOEXCEPT + { + __alloc_traits::deallocate(__alloc(), __p, size()); + } +}; + +template class __hash_map_node_destructor; + +template +class __hash_node_destructor +{ + typedef _Alloc allocator_type; + typedef allocator_traits __alloc_traits; + +public: + typedef typename __alloc_traits::pointer pointer; +private: + typedef __hash_node_types _NodeTypes; + + allocator_type& __na_; + +public: + bool __value_constructed; + + __hash_node_destructor(__hash_node_destructor const&) = default; + __hash_node_destructor& operator=(const __hash_node_destructor&) = delete; + + _LIBCUDACXX_INLINE_VISIBILITY + explicit __hash_node_destructor(allocator_type& __na, + bool __constructed = false) _NOEXCEPT + : __na_(__na), + __value_constructed(__constructed) + {} + + _LIBCUDACXX_INLINE_VISIBILITY + void operator()(pointer __p) _NOEXCEPT + { + if (__value_constructed) + __alloc_traits::destroy(__na_, _NodeTypes::__get_ptr(__p->__value_)); + if (__p) + __alloc_traits::deallocate(__na_, __p, 1); + } + + template friend class __hash_map_node_destructor; +}; + +#if _LIBCUDACXX_STD_VER > 14 +template +struct __generic_container_node_destructor; + +template +struct __generic_container_node_destructor<__hash_node<_Tp, _VoidPtr>, _Alloc> + : __hash_node_destructor<_Alloc> +{ + using __hash_node_destructor<_Alloc>::__hash_node_destructor; +}; +#endif + +template +struct __enforce_unordered_container_requirements { +#ifndef _LIBCUDACXX_CXX03_LANG + static_assert(__check_hash_requirements<_Key, _Hash>::value, + "the specified hash does not meet the Hash requirements"); + static_assert(is_copy_constructible<_Equal>::value, + "the specified comparator is required to be copy constructible"); +#endif + typedef int type; +}; + +template +#ifndef _LIBCUDACXX_CXX03_LANG + _LIBCUDACXX_DIAGNOSE_WARNING(!__invokable<_Equal const&, _Key const&, _Key const&>::value, + "the specified comparator type does not provide a viable const call operator") + _LIBCUDACXX_DIAGNOSE_WARNING(!__invokable<_Hash const&, _Key const&>::value, + "the specified hash functor does not provide a viable const call operator") +#endif +typename __enforce_unordered_container_requirements<_Key, _Hash, _Equal>::type +__diagnose_unordered_container_requirements(int); + +// This dummy overload is used so that the compiler won't emit a spurious +// "no matching function for call to __diagnose_unordered_xxx" diagnostic +// when the overload above causes a hard error. +template +int __diagnose_unordered_container_requirements(void*); + +template +class __hash_table +{ +public: + typedef _Tp value_type; + typedef _Hash hasher; + typedef _Equal key_equal; + typedef _Alloc allocator_type; + +private: + typedef allocator_traits __alloc_traits; + typedef typename + __make_hash_node_types::type + _NodeTypes; +public: + + typedef typename _NodeTypes::__node_value_type __node_value_type; + typedef typename _NodeTypes::__container_value_type __container_value_type; + typedef typename _NodeTypes::key_type key_type; + typedef value_type& reference; + typedef const value_type& const_reference; + typedef typename __alloc_traits::pointer pointer; + typedef typename __alloc_traits::const_pointer const_pointer; +#ifndef _LIBCUDACXX_ABI_FIX_UNORDERED_CONTAINER_SIZE_TYPE + typedef typename __alloc_traits::size_type size_type; +#else + typedef typename _NodeTypes::size_type size_type; +#endif + typedef typename _NodeTypes::difference_type difference_type; +public: + // Create __node + + typedef typename _NodeTypes::__node_type __node; + typedef typename __rebind_alloc_helper<__alloc_traits, __node>::type __node_allocator; + typedef allocator_traits<__node_allocator> __node_traits; + typedef typename _NodeTypes::__void_pointer __void_pointer; + typedef typename _NodeTypes::__node_pointer __node_pointer; + typedef typename _NodeTypes::__node_pointer __node_const_pointer; + typedef typename _NodeTypes::__node_base_type __first_node; + typedef typename _NodeTypes::__node_base_pointer __node_base_pointer; + typedef typename _NodeTypes::__next_pointer __next_pointer; + +private: + // check for sane allocator pointer rebinding semantics. Rebinding the + // allocator for a new pointer type should be exactly the same as rebinding + // the pointer using 'pointer_traits'. + static_assert((is_same<__node_pointer, typename __node_traits::pointer>::value), + "Allocator does not rebind pointers in a sane manner."); + typedef typename __rebind_alloc_helper<__node_traits, __first_node>::type + __node_base_allocator; + typedef allocator_traits<__node_base_allocator> __node_base_traits; + static_assert((is_same<__node_base_pointer, typename __node_base_traits::pointer>::value), + "Allocator does not rebind pointers in a sane manner."); + +private: + + typedef typename __rebind_alloc_helper<__node_traits, __next_pointer>::type __pointer_allocator; + typedef __bucket_list_deallocator<__pointer_allocator> __bucket_list_deleter; + typedef unique_ptr<__next_pointer[], __bucket_list_deleter> __bucket_list; + typedef allocator_traits<__pointer_allocator> __pointer_alloc_traits; + typedef typename __bucket_list_deleter::pointer __node_pointer_pointer; + + // --- Member data begin --- + __bucket_list __bucket_list_; + __compressed_pair<__first_node, __node_allocator> __p1_; + __compressed_pair __p2_; + __compressed_pair __p3_; + // --- Member data end --- + + _LIBCUDACXX_INLINE_VISIBILITY + size_type& size() _NOEXCEPT {return __p2_.first();} +public: + _LIBCUDACXX_INLINE_VISIBILITY + size_type size() const _NOEXCEPT {return __p2_.first();} + + _LIBCUDACXX_INLINE_VISIBILITY + hasher& hash_function() _NOEXCEPT {return __p2_.second();} + _LIBCUDACXX_INLINE_VISIBILITY + const hasher& hash_function() const _NOEXCEPT {return __p2_.second();} + + _LIBCUDACXX_INLINE_VISIBILITY + float& max_load_factor() _NOEXCEPT {return __p3_.first();} + _LIBCUDACXX_INLINE_VISIBILITY + float max_load_factor() const _NOEXCEPT {return __p3_.first();} + + _LIBCUDACXX_INLINE_VISIBILITY + key_equal& key_eq() _NOEXCEPT {return __p3_.second();} + _LIBCUDACXX_INLINE_VISIBILITY + const key_equal& key_eq() const _NOEXCEPT {return __p3_.second();} + + _LIBCUDACXX_INLINE_VISIBILITY + __node_allocator& __node_alloc() _NOEXCEPT {return __p1_.second();} + _LIBCUDACXX_INLINE_VISIBILITY + const __node_allocator& __node_alloc() const _NOEXCEPT + {return __p1_.second();} + +public: + typedef __hash_iterator<__node_pointer> iterator; + typedef __hash_const_iterator<__node_pointer> const_iterator; + typedef __hash_local_iterator<__node_pointer> local_iterator; + typedef __hash_const_local_iterator<__node_pointer> const_local_iterator; + + _LIBCUDACXX_INLINE_VISIBILITY + __hash_table() + _NOEXCEPT_( + is_nothrow_default_constructible<__bucket_list>::value && + is_nothrow_default_constructible<__first_node>::value && + is_nothrow_default_constructible<__node_allocator>::value && + is_nothrow_default_constructible::value && + is_nothrow_default_constructible::value); + _LIBCUDACXX_INLINE_VISIBILITY + __hash_table(const hasher& __hf, const key_equal& __eql); + __hash_table(const hasher& __hf, const key_equal& __eql, + const allocator_type& __a); + explicit __hash_table(const allocator_type& __a); + __hash_table(const __hash_table& __u); + __hash_table(const __hash_table& __u, const allocator_type& __a); +#ifndef _LIBCUDACXX_CXX03_LANG + __hash_table(__hash_table&& __u) + _NOEXCEPT_( + is_nothrow_move_constructible<__bucket_list>::value && + is_nothrow_move_constructible<__first_node>::value && + is_nothrow_move_constructible<__node_allocator>::value && + is_nothrow_move_constructible::value && + is_nothrow_move_constructible::value); + __hash_table(__hash_table&& __u, const allocator_type& __a); +#endif // _LIBCUDACXX_CXX03_LANG + ~__hash_table(); + + __hash_table& operator=(const __hash_table& __u); +#ifndef _LIBCUDACXX_CXX03_LANG + _LIBCUDACXX_INLINE_VISIBILITY + __hash_table& operator=(__hash_table&& __u) + _NOEXCEPT_( + __node_traits::propagate_on_container_move_assignment::value && + is_nothrow_move_assignable<__node_allocator>::value && + is_nothrow_move_assignable::value && + is_nothrow_move_assignable::value); +#endif + template + void __assign_unique(_InputIterator __first, _InputIterator __last); + template + void __assign_multi(_InputIterator __first, _InputIterator __last); + + _LIBCUDACXX_INLINE_VISIBILITY + size_type max_size() const _NOEXCEPT + { + return std::min( + __node_traits::max_size(__node_alloc()), + numeric_limits::max() + ); + } + +private: + _LIBCUDACXX_INLINE_VISIBILITY + __next_pointer __node_insert_multi_prepare(size_t __cp_hash, + value_type& __cp_val); + _LIBCUDACXX_INLINE_VISIBILITY + void __node_insert_multi_perform(__node_pointer __cp, + __next_pointer __pn) _NOEXCEPT; + + _LIBCUDACXX_INLINE_VISIBILITY + __next_pointer __node_insert_unique_prepare(size_t __nd_hash, + value_type& __nd_val); + _LIBCUDACXX_INLINE_VISIBILITY + void __node_insert_unique_perform(__node_pointer __ptr) _NOEXCEPT; + +public: + _LIBCUDACXX_INLINE_VISIBILITY + pair __node_insert_unique(__node_pointer __nd); + _LIBCUDACXX_INLINE_VISIBILITY + iterator __node_insert_multi(__node_pointer __nd); + _LIBCUDACXX_INLINE_VISIBILITY + iterator __node_insert_multi(const_iterator __p, + __node_pointer __nd); + +#ifndef _LIBCUDACXX_CXX03_LANG + template + _LIBCUDACXX_INLINE_VISIBILITY + pair __emplace_unique_key_args(_Key const& __k, _Args&&... __args); + + template + _LIBCUDACXX_INLINE_VISIBILITY + pair __emplace_unique_impl(_Args&&... __args); + + template + _LIBCUDACXX_INLINE_VISIBILITY + pair __emplace_unique(_Pp&& __x) { + return __emplace_unique_extract_key(_CUDA_VSTD::forward<_Pp>(__x), + __can_extract_key<_Pp, key_type>()); + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + typename enable_if< + __can_extract_map_key<_First, key_type, __container_value_type>::value, + pair + >::type __emplace_unique(_First&& __f, _Second&& __s) { + return __emplace_unique_key_args(__f, _CUDA_VSTD::forward<_First>(__f), + _CUDA_VSTD::forward<_Second>(__s)); + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + pair __emplace_unique(_Args&&... __args) { + return __emplace_unique_impl(_CUDA_VSTD::forward<_Args>(__args)...); + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + pair + __emplace_unique_extract_key(_Pp&& __x, __extract_key_fail_tag) { + return __emplace_unique_impl(_CUDA_VSTD::forward<_Pp>(__x)); + } + template + _LIBCUDACXX_INLINE_VISIBILITY + pair + __emplace_unique_extract_key(_Pp&& __x, __extract_key_self_tag) { + return __emplace_unique_key_args(__x, _CUDA_VSTD::forward<_Pp>(__x)); + } + template + _LIBCUDACXX_INLINE_VISIBILITY + pair + __emplace_unique_extract_key(_Pp&& __x, __extract_key_first_tag) { + return __emplace_unique_key_args(__x.first, _CUDA_VSTD::forward<_Pp>(__x)); + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + iterator __emplace_multi(_Args&&... __args); + template + _LIBCUDACXX_INLINE_VISIBILITY + iterator __emplace_hint_multi(const_iterator __p, _Args&&... __args); + + + _LIBCUDACXX_INLINE_VISIBILITY + pair + __insert_unique(__container_value_type&& __x) { + return __emplace_unique_key_args(_NodeTypes::__get_key(__x), _CUDA_VSTD::move(__x)); + } + + template ::value + >::type> + _LIBCUDACXX_INLINE_VISIBILITY + pair __insert_unique(_Pp&& __x) { + return __emplace_unique(_CUDA_VSTD::forward<_Pp>(__x)); + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + iterator __insert_multi(_Pp&& __x) { + return __emplace_multi(_CUDA_VSTD::forward<_Pp>(__x)); + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + iterator __insert_multi(const_iterator __p, _Pp&& __x) { + return __emplace_hint_multi(__p, _CUDA_VSTD::forward<_Pp>(__x)); + } + +#else // !defined(_LIBCUDACXX_CXX03_LANG) + template + _LIBCUDACXX_INLINE_VISIBILITY + pair __emplace_unique_key_args(_Key const&, _Args& __args); + + iterator __insert_multi(const __container_value_type& __x); + iterator __insert_multi(const_iterator __p, const __container_value_type& __x); +#endif + + _LIBCUDACXX_INLINE_VISIBILITY + pair __insert_unique(const __container_value_type& __x) { + return __emplace_unique_key_args(_NodeTypes::__get_key(__x), __x); + } + +#if _LIBCUDACXX_STD_VER > 14 + template + _LIBCUDACXX_INLINE_VISIBILITY + _InsertReturnType __node_handle_insert_unique(_NodeHandle&& __nh); + template + _LIBCUDACXX_INLINE_VISIBILITY + iterator __node_handle_insert_unique(const_iterator __hint, + _NodeHandle&& __nh); + template + _LIBCUDACXX_INLINE_VISIBILITY + void __node_handle_merge_unique(_Table& __source); + + template + _LIBCUDACXX_INLINE_VISIBILITY + iterator __node_handle_insert_multi(_NodeHandle&& __nh); + template + _LIBCUDACXX_INLINE_VISIBILITY + iterator __node_handle_insert_multi(const_iterator __hint, _NodeHandle&& __nh); + template + _LIBCUDACXX_INLINE_VISIBILITY + void __node_handle_merge_multi(_Table& __source); + + template + _LIBCUDACXX_INLINE_VISIBILITY + _NodeHandle __node_handle_extract(key_type const& __key); + template + _LIBCUDACXX_INLINE_VISIBILITY + _NodeHandle __node_handle_extract(const_iterator __it); +#endif + + void clear() _NOEXCEPT; + void rehash(size_type __n); + _LIBCUDACXX_INLINE_VISIBILITY void reserve(size_type __n) + {rehash(static_cast(ceil(__n / max_load_factor())));} + + _LIBCUDACXX_INLINE_VISIBILITY + size_type bucket_count() const _NOEXCEPT + { + return __bucket_list_.get_deleter().size(); + } + + _LIBCUDACXX_INLINE_VISIBILITY + iterator begin() _NOEXCEPT; + _LIBCUDACXX_INLINE_VISIBILITY + iterator end() _NOEXCEPT; + _LIBCUDACXX_INLINE_VISIBILITY + const_iterator begin() const _NOEXCEPT; + _LIBCUDACXX_INLINE_VISIBILITY + const_iterator end() const _NOEXCEPT; + + template + _LIBCUDACXX_INLINE_VISIBILITY + size_type bucket(const _Key& __k) const + { + _LIBCUDACXX_ASSERT(bucket_count() > 0, + "unordered container::bucket(key) called when bucket_count() == 0"); + return __constrain_hash(hash_function()(__k), bucket_count()); + } + + template + iterator find(const _Key& __x); + template + const_iterator find(const _Key& __x) const; + + typedef __hash_node_destructor<__node_allocator> _Dp; + typedef unique_ptr<__node, _Dp> __node_holder; + + iterator erase(const_iterator __p); + iterator erase(const_iterator __first, const_iterator __last); + template + size_type __erase_unique(const _Key& __k); + template + size_type __erase_multi(const _Key& __k); + __node_holder remove(const_iterator __p) _NOEXCEPT; + + template + _LIBCUDACXX_INLINE_VISIBILITY + size_type __count_unique(const _Key& __k) const; + template + size_type __count_multi(const _Key& __k) const; + + template + pair + __equal_range_unique(const _Key& __k); + template + pair + __equal_range_unique(const _Key& __k) const; + + template + pair + __equal_range_multi(const _Key& __k); + template + pair + __equal_range_multi(const _Key& __k) const; + + void swap(__hash_table& __u) +#if _LIBCUDACXX_STD_VER <= 11 + _NOEXCEPT_( + __is_nothrow_swappable::value && __is_nothrow_swappable::value + && (!allocator_traits<__pointer_allocator>::propagate_on_container_swap::value + || __is_nothrow_swappable<__pointer_allocator>::value) + && (!__node_traits::propagate_on_container_swap::value + || __is_nothrow_swappable<__node_allocator>::value) + ); +#else + _NOEXCEPT_(__is_nothrow_swappable::value && __is_nothrow_swappable::value); +#endif + + _LIBCUDACXX_INLINE_VISIBILITY + size_type max_bucket_count() const _NOEXCEPT + {return max_size(); } + size_type bucket_size(size_type __n) const; + _LIBCUDACXX_INLINE_VISIBILITY float load_factor() const _NOEXCEPT + { + size_type __bc = bucket_count(); + return __bc != 0 ? (float)size() / __bc : 0.f; + } + _LIBCUDACXX_INLINE_VISIBILITY void max_load_factor(float __mlf) _NOEXCEPT + { + _LIBCUDACXX_ASSERT(__mlf > 0, + "unordered container::max_load_factor(lf) called with lf <= 0"); + max_load_factor() = _CUDA_VSTD::max(__mlf, load_factor()); + } + + _LIBCUDACXX_INLINE_VISIBILITY + local_iterator + begin(size_type __n) + { + _LIBCUDACXX_ASSERT(__n < bucket_count(), + "unordered container::begin(n) called with n >= bucket_count()"); +#if _LIBCUDACXX_DEBUG_LEVEL >= 2 + return local_iterator(__bucket_list_[__n], __n, bucket_count(), this); +#else + return local_iterator(__bucket_list_[__n], __n, bucket_count()); +#endif + } + + _LIBCUDACXX_INLINE_VISIBILITY + local_iterator + end(size_type __n) + { + _LIBCUDACXX_ASSERT(__n < bucket_count(), + "unordered container::end(n) called with n >= bucket_count()"); +#if _LIBCUDACXX_DEBUG_LEVEL >= 2 + return local_iterator(nullptr, __n, bucket_count(), this); +#else + return local_iterator(nullptr, __n, bucket_count()); +#endif + } + + _LIBCUDACXX_INLINE_VISIBILITY + const_local_iterator + cbegin(size_type __n) const + { + _LIBCUDACXX_ASSERT(__n < bucket_count(), + "unordered container::cbegin(n) called with n >= bucket_count()"); +#if _LIBCUDACXX_DEBUG_LEVEL >= 2 + return const_local_iterator(__bucket_list_[__n], __n, bucket_count(), this); +#else + return const_local_iterator(__bucket_list_[__n], __n, bucket_count()); +#endif + } + + _LIBCUDACXX_INLINE_VISIBILITY + const_local_iterator + cend(size_type __n) const + { + _LIBCUDACXX_ASSERT(__n < bucket_count(), + "unordered container::cend(n) called with n >= bucket_count()"); +#if _LIBCUDACXX_DEBUG_LEVEL >= 2 + return const_local_iterator(nullptr, __n, bucket_count(), this); +#else + return const_local_iterator(nullptr, __n, bucket_count()); +#endif + } + +#if _LIBCUDACXX_DEBUG_LEVEL >= 2 + + bool __dereferenceable(const const_iterator* __i) const; + bool __decrementable(const const_iterator* __i) const; + bool __addable(const const_iterator* __i, ptrdiff_t __n) const; + bool __subscriptable(const const_iterator* __i, ptrdiff_t __n) const; + +#endif // _LIBCUDACXX_DEBUG_LEVEL >= 2 + +private: + void __rehash(size_type __n); + +#ifndef _LIBCUDACXX_CXX03_LANG + template + __node_holder __construct_node(_Args&& ...__args); + + template + __node_holder __construct_node_hash(size_t __hash, _First&& __f, _Rest&&... __rest); +#else // _LIBCUDACXX_CXX03_LANG + __node_holder __construct_node(const __container_value_type& __v); + __node_holder __construct_node_hash(size_t __hash, const __container_value_type& __v); +#endif + + + _LIBCUDACXX_INLINE_VISIBILITY + void __copy_assign_alloc(const __hash_table& __u) + {__copy_assign_alloc(__u, integral_constant());} + void __copy_assign_alloc(const __hash_table& __u, true_type); + _LIBCUDACXX_INLINE_VISIBILITY + void __copy_assign_alloc(const __hash_table&, false_type) {} + +#ifndef _LIBCUDACXX_CXX03_LANG + void __move_assign(__hash_table& __u, false_type); + void __move_assign(__hash_table& __u, true_type) + _NOEXCEPT_( + is_nothrow_move_assignable<__node_allocator>::value && + is_nothrow_move_assignable::value && + is_nothrow_move_assignable::value); + _LIBCUDACXX_INLINE_VISIBILITY + void __move_assign_alloc(__hash_table& __u) + _NOEXCEPT_( + !__node_traits::propagate_on_container_move_assignment::value || + (is_nothrow_move_assignable<__pointer_allocator>::value && + is_nothrow_move_assignable<__node_allocator>::value)) + {__move_assign_alloc(__u, integral_constant());} + _LIBCUDACXX_INLINE_VISIBILITY + void __move_assign_alloc(__hash_table& __u, true_type) + _NOEXCEPT_( + is_nothrow_move_assignable<__pointer_allocator>::value && + is_nothrow_move_assignable<__node_allocator>::value) + { + __bucket_list_.get_deleter().__alloc() = + _CUDA_VSTD::move(__u.__bucket_list_.get_deleter().__alloc()); + __node_alloc() = _CUDA_VSTD::move(__u.__node_alloc()); + } + _LIBCUDACXX_INLINE_VISIBILITY + void __move_assign_alloc(__hash_table&, false_type) _NOEXCEPT {} +#endif // _LIBCUDACXX_CXX03_LANG + + void __deallocate_node(__next_pointer __np) _NOEXCEPT; + __next_pointer __detach() _NOEXCEPT; + + template friend class _LIBCUDACXX_TEMPLATE_VIS unordered_map; + template friend class _LIBCUDACXX_TEMPLATE_VIS unordered_multimap; +}; + +template +inline +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__hash_table() + _NOEXCEPT_( + is_nothrow_default_constructible<__bucket_list>::value && + is_nothrow_default_constructible<__first_node>::value && + is_nothrow_default_constructible<__node_allocator>::value && + is_nothrow_default_constructible::value && + is_nothrow_default_constructible::value) + : __p2_(0), + __p3_(1.0f) +{ +} + +template +inline +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__hash_table(const hasher& __hf, + const key_equal& __eql) + : __bucket_list_(nullptr, __bucket_list_deleter()), + __p1_(), + __p2_(0, __hf), + __p3_(1.0f, __eql) +{ +} + +template +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__hash_table(const hasher& __hf, + const key_equal& __eql, + const allocator_type& __a) + : __bucket_list_(nullptr, __bucket_list_deleter(__pointer_allocator(__a), 0)), + __p1_(__second_tag(), __node_allocator(__a)), + __p2_(0, __hf), + __p3_(1.0f, __eql) +{ +} + +template +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__hash_table(const allocator_type& __a) + : __bucket_list_(nullptr, __bucket_list_deleter(__pointer_allocator(__a), 0)), + __p1_(__second_tag(), __node_allocator(__a)), + __p2_(0), + __p3_(1.0f) +{ +} + +template +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__hash_table(const __hash_table& __u) + : __bucket_list_(nullptr, + __bucket_list_deleter(allocator_traits<__pointer_allocator>:: + select_on_container_copy_construction( + __u.__bucket_list_.get_deleter().__alloc()), 0)), + __p1_(__second_tag(), allocator_traits<__node_allocator>:: + select_on_container_copy_construction(__u.__node_alloc())), + __p2_(0, __u.hash_function()), + __p3_(__u.__p3_) +{ +} + +template +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__hash_table(const __hash_table& __u, + const allocator_type& __a) + : __bucket_list_(nullptr, __bucket_list_deleter(__pointer_allocator(__a), 0)), + __p1_(__second_tag(), __node_allocator(__a)), + __p2_(0, __u.hash_function()), + __p3_(__u.__p3_) +{ +} + +#ifndef _LIBCUDACXX_CXX03_LANG + +template +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__hash_table(__hash_table&& __u) + _NOEXCEPT_( + is_nothrow_move_constructible<__bucket_list>::value && + is_nothrow_move_constructible<__first_node>::value && + is_nothrow_move_constructible<__node_allocator>::value && + is_nothrow_move_constructible::value && + is_nothrow_move_constructible::value) + : __bucket_list_(_CUDA_VSTD::move(__u.__bucket_list_)), + __p1_(_CUDA_VSTD::move(__u.__p1_)), + __p2_(_CUDA_VSTD::move(__u.__p2_)), + __p3_(_CUDA_VSTD::move(__u.__p3_)) +{ + if (size() > 0) + { + __bucket_list_[__constrain_hash(__p1_.first().__next_->__hash(), bucket_count())] = + __p1_.first().__ptr(); + __u.__p1_.first().__next_ = nullptr; + __u.size() = 0; + } +} + +template +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__hash_table(__hash_table&& __u, + const allocator_type& __a) + : __bucket_list_(nullptr, __bucket_list_deleter(__pointer_allocator(__a), 0)), + __p1_(__second_tag(), __node_allocator(__a)), + __p2_(0, _CUDA_VSTD::move(__u.hash_function())), + __p3_(_CUDA_VSTD::move(__u.__p3_)) +{ + if (__a == allocator_type(__u.__node_alloc())) + { + __bucket_list_.reset(__u.__bucket_list_.release()); + __bucket_list_.get_deleter().size() = __u.__bucket_list_.get_deleter().size(); + __u.__bucket_list_.get_deleter().size() = 0; + if (__u.size() > 0) + { + __p1_.first().__next_ = __u.__p1_.first().__next_; + __u.__p1_.first().__next_ = nullptr; + __bucket_list_[__constrain_hash(__p1_.first().__next_->__hash(), bucket_count())] = + __p1_.first().__ptr(); + size() = __u.size(); + __u.size() = 0; + } + } +} + +#endif // _LIBCUDACXX_CXX03_LANG + +template +__hash_table<_Tp, _Hash, _Equal, _Alloc>::~__hash_table() +{ +#if defined(_LIBCUDACXX_CXX03_LANG) + static_assert((is_copy_constructible::value), + "Predicate must be copy-constructible."); + static_assert((is_copy_constructible::value), + "Hasher must be copy-constructible."); +#endif + + __deallocate_node(__p1_.first().__next_); +#if _LIBCUDACXX_DEBUG_LEVEL >= 2 + __get_db()->__erase_c(this); +#endif +} + +template +void +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__copy_assign_alloc( + const __hash_table& __u, true_type) +{ + if (__node_alloc() != __u.__node_alloc()) + { + clear(); + __bucket_list_.reset(); + __bucket_list_.get_deleter().size() = 0; + } + __bucket_list_.get_deleter().__alloc() = __u.__bucket_list_.get_deleter().__alloc(); + __node_alloc() = __u.__node_alloc(); +} + +template +__hash_table<_Tp, _Hash, _Equal, _Alloc>& +__hash_table<_Tp, _Hash, _Equal, _Alloc>::operator=(const __hash_table& __u) +{ + if (this != &__u) + { + __copy_assign_alloc(__u); + hash_function() = __u.hash_function(); + key_eq() = __u.key_eq(); + max_load_factor() = __u.max_load_factor(); + __assign_multi(__u.begin(), __u.end()); + } + return *this; +} + +template +void +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__deallocate_node(__next_pointer __np) + _NOEXCEPT +{ + __node_allocator& __na = __node_alloc(); + while (__np != nullptr) + { + __next_pointer __next = __np->__next_; +#if _LIBCUDACXX_DEBUG_LEVEL >= 2 + __c_node* __c = __get_db()->__find_c_and_lock(this); + for (__i_node** __p = __c->end_; __p != __c->beg_; ) + { + --__p; + iterator* __i = static_cast((*__p)->__i_); + if (__i->__node_ == __np) + { + (*__p)->__c_ = nullptr; + if (--__c->end_ != __p) + memmove(__p, __p+1, (__c->end_ - __p)*sizeof(__i_node*)); + } + } + __get_db()->unlock(); +#endif + __node_pointer __real_np = __np->__upcast(); + __node_traits::destroy(__na, _NodeTypes::__get_ptr(__real_np->__value_)); + __node_traits::deallocate(__na, __real_np, 1); + __np = __next; + } +} + +template +typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::__next_pointer +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__detach() _NOEXCEPT +{ + size_type __bc = bucket_count(); + for (size_type __i = 0; __i < __bc; ++__i) + __bucket_list_[__i] = nullptr; + size() = 0; + __next_pointer __cache = __p1_.first().__next_; + __p1_.first().__next_ = nullptr; + return __cache; +} + +#ifndef _LIBCUDACXX_CXX03_LANG + +template +void +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__move_assign( + __hash_table& __u, true_type) + _NOEXCEPT_( + is_nothrow_move_assignable<__node_allocator>::value && + is_nothrow_move_assignable::value && + is_nothrow_move_assignable::value) +{ + clear(); + __bucket_list_.reset(__u.__bucket_list_.release()); + __bucket_list_.get_deleter().size() = __u.__bucket_list_.get_deleter().size(); + __u.__bucket_list_.get_deleter().size() = 0; + __move_assign_alloc(__u); + size() = __u.size(); + hash_function() = _CUDA_VSTD::move(__u.hash_function()); + max_load_factor() = __u.max_load_factor(); + key_eq() = _CUDA_VSTD::move(__u.key_eq()); + __p1_.first().__next_ = __u.__p1_.first().__next_; + if (size() > 0) + { + __bucket_list_[__constrain_hash(__p1_.first().__next_->__hash(), bucket_count())] = + __p1_.first().__ptr(); + __u.__p1_.first().__next_ = nullptr; + __u.size() = 0; + } +#if _LIBCUDACXX_DEBUG_LEVEL >= 2 + __get_db()->swap(this, &__u); +#endif +} + +template +void +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__move_assign( + __hash_table& __u, false_type) +{ + if (__node_alloc() == __u.__node_alloc()) + __move_assign(__u, true_type()); + else + { + hash_function() = _CUDA_VSTD::move(__u.hash_function()); + key_eq() = _CUDA_VSTD::move(__u.key_eq()); + max_load_factor() = __u.max_load_factor(); + if (bucket_count() != 0) + { + __next_pointer __cache = __detach(); +#ifndef _LIBCUDACXX_NO_EXCEPTIONS + try + { +#endif // _LIBCUDACXX_NO_EXCEPTIONS + const_iterator __i = __u.begin(); + while (__cache != nullptr && __u.size() != 0) + { + __cache->__upcast()->__value_ = + _CUDA_VSTD::move(__u.remove(__i++)->__value_); + __next_pointer __next = __cache->__next_; + __node_insert_multi(__cache->__upcast()); + __cache = __next; + } +#ifndef _LIBCUDACXX_NO_EXCEPTIONS + } + catch (...) + { + __deallocate_node(__cache); + throw; + } +#endif // _LIBCUDACXX_NO_EXCEPTIONS + __deallocate_node(__cache); + } + const_iterator __i = __u.begin(); + while (__u.size() != 0) + { + __node_holder __h = __construct_node(_NodeTypes::__move(__u.remove(__i++)->__value_)); + __node_insert_multi(__h.get()); + __h.release(); + } + } +} + +template +inline +__hash_table<_Tp, _Hash, _Equal, _Alloc>& +__hash_table<_Tp, _Hash, _Equal, _Alloc>::operator=(__hash_table&& __u) + _NOEXCEPT_( + __node_traits::propagate_on_container_move_assignment::value && + is_nothrow_move_assignable<__node_allocator>::value && + is_nothrow_move_assignable::value && + is_nothrow_move_assignable::value) +{ + __move_assign(__u, integral_constant()); + return *this; +} + +#endif // _LIBCUDACXX_CXX03_LANG + +template +template +void +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__assign_unique(_InputIterator __first, + _InputIterator __last) +{ + typedef iterator_traits<_InputIterator> _ITraits; + typedef typename _ITraits::value_type _ItValueType; + static_assert((is_same<_ItValueType, __container_value_type>::value), + "__assign_unique may only be called with the containers value type"); + + if (bucket_count() != 0) + { + __next_pointer __cache = __detach(); +#ifndef _LIBCUDACXX_NO_EXCEPTIONS + try + { +#endif // _LIBCUDACXX_NO_EXCEPTIONS + for (; __cache != nullptr && __first != __last; ++__first) + { + __cache->__upcast()->__value_ = *__first; + __next_pointer __next = __cache->__next_; + __node_insert_unique(__cache->__upcast()); + __cache = __next; + } +#ifndef _LIBCUDACXX_NO_EXCEPTIONS + } + catch (...) + { + __deallocate_node(__cache); + throw; + } +#endif // _LIBCUDACXX_NO_EXCEPTIONS + __deallocate_node(__cache); + } + for (; __first != __last; ++__first) + __insert_unique(*__first); +} + +template +template +void +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__assign_multi(_InputIterator __first, + _InputIterator __last) +{ + typedef iterator_traits<_InputIterator> _ITraits; + typedef typename _ITraits::value_type _ItValueType; + static_assert((is_same<_ItValueType, __container_value_type>::value || + is_same<_ItValueType, __node_value_type>::value), + "__assign_multi may only be called with the containers value type" + " or the nodes value type"); + if (bucket_count() != 0) + { + __next_pointer __cache = __detach(); +#ifndef _LIBCUDACXX_NO_EXCEPTIONS + try + { +#endif // _LIBCUDACXX_NO_EXCEPTIONS + for (; __cache != nullptr && __first != __last; ++__first) + { + __cache->__upcast()->__value_ = *__first; + __next_pointer __next = __cache->__next_; + __node_insert_multi(__cache->__upcast()); + __cache = __next; + } +#ifndef _LIBCUDACXX_NO_EXCEPTIONS + } + catch (...) + { + __deallocate_node(__cache); + throw; + } +#endif // _LIBCUDACXX_NO_EXCEPTIONS + __deallocate_node(__cache); + } + for (; __first != __last; ++__first) + __insert_multi(_NodeTypes::__get_value(*__first)); +} + +template +inline +typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator +__hash_table<_Tp, _Hash, _Equal, _Alloc>::begin() _NOEXCEPT +{ +#if _LIBCUDACXX_DEBUG_LEVEL >= 2 + return iterator(__p1_.first().__next_, this); +#else + return iterator(__p1_.first().__next_); +#endif +} + +template +inline +typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator +__hash_table<_Tp, _Hash, _Equal, _Alloc>::end() _NOEXCEPT +{ +#if _LIBCUDACXX_DEBUG_LEVEL >= 2 + return iterator(nullptr, this); +#else + return iterator(nullptr); +#endif +} + +template +inline +typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::const_iterator +__hash_table<_Tp, _Hash, _Equal, _Alloc>::begin() const _NOEXCEPT +{ +#if _LIBCUDACXX_DEBUG_LEVEL >= 2 + return const_iterator(__p1_.first().__next_, this); +#else + return const_iterator(__p1_.first().__next_); +#endif +} + +template +inline +typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::const_iterator +__hash_table<_Tp, _Hash, _Equal, _Alloc>::end() const _NOEXCEPT +{ +#if _LIBCUDACXX_DEBUG_LEVEL >= 2 + return const_iterator(nullptr, this); +#else + return const_iterator(nullptr); +#endif +} + +template +void +__hash_table<_Tp, _Hash, _Equal, _Alloc>::clear() _NOEXCEPT +{ + if (size() > 0) + { + __deallocate_node(__p1_.first().__next_); + __p1_.first().__next_ = nullptr; + size_type __bc = bucket_count(); + for (size_type __i = 0; __i < __bc; ++__i) + __bucket_list_[__i] = nullptr; + size() = 0; + } +} + + +// Prepare the container for an insertion of the value __value with the hash +// __hash. This does a lookup into the container to see if __value is already +// present, and performs a rehash if necessary. Returns a pointer to the +// existing element if it exists, otherwise nullptr. +// +// Note that this function does forward exceptions if key_eq() throws, and never +// mutates __value or actually inserts into the map. +template +_LIBCUDACXX_INLINE_VISIBILITY +typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::__next_pointer +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__node_insert_unique_prepare( + size_t __hash, value_type& __value) +{ + size_type __bc = bucket_count(); + + if (__bc != 0) + { + size_t __chash = __constrain_hash(__hash, __bc); + __next_pointer __ndptr = __bucket_list_[__chash]; + if (__ndptr != nullptr) + { + for (__ndptr = __ndptr->__next_; __ndptr != nullptr && + __constrain_hash(__ndptr->__hash(), __bc) == __chash; + __ndptr = __ndptr->__next_) + { + if (key_eq()(__ndptr->__upcast()->__value_, __value)) + return __ndptr; + } + } + } + if (size()+1 > __bc * max_load_factor() || __bc == 0) + { + rehash(_CUDA_VSTD::max(2 * __bc + !__is_hash_power2(__bc), + size_type(ceil(float(size() + 1) / max_load_factor())))); + } + return nullptr; +} + +// Insert the node __nd into the container by pushing it into the right bucket, +// and updating size(). Assumes that __nd->__hash is up-to-date, and that +// rehashing has already occurred and that no element with the same key exists +// in the map. +template +_LIBCUDACXX_INLINE_VISIBILITY +void +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__node_insert_unique_perform( + __node_pointer __nd) _NOEXCEPT +{ + size_type __bc = bucket_count(); + size_t __chash = __constrain_hash(__nd->__hash(), __bc); + // insert_after __bucket_list_[__chash], or __first_node if bucket is null + __next_pointer __pn = __bucket_list_[__chash]; + if (__pn == nullptr) + { + __pn =__p1_.first().__ptr(); + __nd->__next_ = __pn->__next_; + __pn->__next_ = __nd->__ptr(); + // fix up __bucket_list_ + __bucket_list_[__chash] = __pn; + if (__nd->__next_ != nullptr) + __bucket_list_[__constrain_hash(__nd->__next_->__hash(), __bc)] = __nd->__ptr(); + } + else + { + __nd->__next_ = __pn->__next_; + __pn->__next_ = __nd->__ptr(); + } + ++size(); +} + +template +pair::iterator, bool> +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__node_insert_unique(__node_pointer __nd) +{ + __nd->__hash_ = hash_function()(__nd->__value_); + __next_pointer __existing_node = + __node_insert_unique_prepare(__nd->__hash(), __nd->__value_); + + // Insert the node, unless it already exists in the container. + bool __inserted = false; + if (__existing_node == nullptr) + { + __node_insert_unique_perform(__nd); + __existing_node = __nd->__ptr(); + __inserted = true; + } +#if _LIBCUDACXX_DEBUG_LEVEL >= 2 + return pair(iterator(__existing_node, this), __inserted); +#else + return pair(iterator(__existing_node), __inserted); +#endif +} + +// Prepare the container for an insertion of the value __cp_val with the hash +// __cp_hash. This does a lookup into the container to see if __cp_value is +// already present, and performs a rehash if necessary. Returns a pointer to the +// last occurance of __cp_val in the map. +// +// Note that this function does forward exceptions if key_eq() throws, and never +// mutates __value or actually inserts into the map. +template +typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::__next_pointer +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__node_insert_multi_prepare( + size_t __cp_hash, value_type& __cp_val) +{ + size_type __bc = bucket_count(); + if (size()+1 > __bc * max_load_factor() || __bc == 0) + { + rehash(_CUDA_VSTD::max(2 * __bc + !__is_hash_power2(__bc), + size_type(ceil(float(size() + 1) / max_load_factor())))); + __bc = bucket_count(); + } + size_t __chash = __constrain_hash(__cp_hash, __bc); + __next_pointer __pn = __bucket_list_[__chash]; + if (__pn != nullptr) + { + for (bool __found = false; __pn->__next_ != nullptr && + __constrain_hash(__pn->__next_->__hash(), __bc) == __chash; + __pn = __pn->__next_) + { + // __found key_eq() action + // false false loop + // true true loop + // false true set __found to true + // true false break + if (__found != (__pn->__next_->__hash() == __cp_hash && + key_eq()(__pn->__next_->__upcast()->__value_, __cp_val))) + { + if (!__found) + __found = true; + else + break; + } + } + } + return __pn; +} + +// Insert the node __cp into the container after __pn (which is the last node in +// the bucket that compares equal to __cp). Rehashing, and checking for +// uniqueness has already been performed (in __node_insert_multi_prepare), so +// all we need to do is update the bucket and size(). Assumes that __cp->__hash +// is up-to-date. +template +void +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__node_insert_multi_perform( + __node_pointer __cp, __next_pointer __pn) _NOEXCEPT +{ + size_type __bc = bucket_count(); + size_t __chash = __constrain_hash(__cp->__hash_, __bc); + if (__pn == nullptr) + { + __pn =__p1_.first().__ptr(); + __cp->__next_ = __pn->__next_; + __pn->__next_ = __cp->__ptr(); + // fix up __bucket_list_ + __bucket_list_[__chash] = __pn; + if (__cp->__next_ != nullptr) + __bucket_list_[__constrain_hash(__cp->__next_->__hash(), __bc)] + = __cp->__ptr(); + } + else + { + __cp->__next_ = __pn->__next_; + __pn->__next_ = __cp->__ptr(); + if (__cp->__next_ != nullptr) + { + size_t __nhash = __constrain_hash(__cp->__next_->__hash(), __bc); + if (__nhash != __chash) + __bucket_list_[__nhash] = __cp->__ptr(); + } + } + ++size(); +} + + +template +typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__node_insert_multi(__node_pointer __cp) +{ + __cp->__hash_ = hash_function()(__cp->__value_); + __next_pointer __pn = __node_insert_multi_prepare(__cp->__hash(), __cp->__value_); + __node_insert_multi_perform(__cp, __pn); + +#if _LIBCUDACXX_DEBUG_LEVEL >= 2 + return iterator(__cp->__ptr(), this); +#else + return iterator(__cp->__ptr()); +#endif +} + +template +typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__node_insert_multi( + const_iterator __p, __node_pointer __cp) +{ +#if _LIBCUDACXX_DEBUG_LEVEL >= 2 + _LIBCUDACXX_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this, + "unordered container::emplace_hint(const_iterator, args...) called with an iterator not" + " referring to this unordered container"); +#endif + if (__p != end() && key_eq()(*__p, __cp->__value_)) + { + __next_pointer __np = __p.__node_; + __cp->__hash_ = __np->__hash(); + size_type __bc = bucket_count(); + if (size()+1 > __bc * max_load_factor() || __bc == 0) + { + rehash(_CUDA_VSTD::max(2 * __bc + !__is_hash_power2(__bc), + size_type(ceil(float(size() + 1) / max_load_factor())))); + __bc = bucket_count(); + } + size_t __chash = __constrain_hash(__cp->__hash_, __bc); + __next_pointer __pp = __bucket_list_[__chash]; + while (__pp->__next_ != __np) + __pp = __pp->__next_; + __cp->__next_ = __np; + __pp->__next_ = static_cast<__next_pointer>(__cp); + ++size(); +#if _LIBCUDACXX_DEBUG_LEVEL >= 2 + return iterator(static_cast<__next_pointer>(__cp), this); +#else + return iterator(static_cast<__next_pointer>(__cp)); +#endif + } + return __node_insert_multi(__cp); +} + + + +#ifndef _LIBCUDACXX_CXX03_LANG +template +template +pair::iterator, bool> +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__emplace_unique_key_args(_Key const& __k, _Args&&... __args) +#else +template +template +pair::iterator, bool> +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__emplace_unique_key_args(_Key const& __k, _Args& __args) +#endif +{ + + size_t __hash = hash_function()(__k); + size_type __bc = bucket_count(); + bool __inserted = false; + __next_pointer __nd; + size_t __chash; + if (__bc != 0) + { + __chash = __constrain_hash(__hash, __bc); + __nd = __bucket_list_[__chash]; + if (__nd != nullptr) + { + for (__nd = __nd->__next_; __nd != nullptr && + (__nd->__hash() == __hash || __constrain_hash(__nd->__hash(), __bc) == __chash); + __nd = __nd->__next_) + { + if (key_eq()(__nd->__upcast()->__value_, __k)) + goto __done; + } + } + } + { +#ifndef _LIBCUDACXX_CXX03_LANG + __node_holder __h = __construct_node_hash(__hash, _CUDA_VSTD::forward<_Args>(__args)...); +#else + __node_holder __h = __construct_node_hash(__hash, __args); +#endif + if (size()+1 > __bc * max_load_factor() || __bc == 0) + { + rehash(_CUDA_VSTD::max(2 * __bc + !__is_hash_power2(__bc), + size_type(ceil(float(size() + 1) / max_load_factor())))); + __bc = bucket_count(); + __chash = __constrain_hash(__hash, __bc); + } + // insert_after __bucket_list_[__chash], or __first_node if bucket is null + __next_pointer __pn = __bucket_list_[__chash]; + if (__pn == nullptr) + { + __pn = __p1_.first().__ptr(); + __h->__next_ = __pn->__next_; + __pn->__next_ = __h.get()->__ptr(); + // fix up __bucket_list_ + __bucket_list_[__chash] = __pn; + if (__h->__next_ != nullptr) + __bucket_list_[__constrain_hash(__h->__next_->__hash(), __bc)] + = __h.get()->__ptr(); + } + else + { + __h->__next_ = __pn->__next_; + __pn->__next_ = static_cast<__next_pointer>(__h.get()); + } + __nd = static_cast<__next_pointer>(__h.release()); + // increment size + ++size(); + __inserted = true; + } +__done: +#if _LIBCUDACXX_DEBUG_LEVEL >= 2 + return pair(iterator(__nd, this), __inserted); +#else + return pair(iterator(__nd), __inserted); +#endif +} + +#ifndef _LIBCUDACXX_CXX03_LANG + +template +template +pair::iterator, bool> +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__emplace_unique_impl(_Args&&... __args) +{ + __node_holder __h = __construct_node(_CUDA_VSTD::forward<_Args>(__args)...); + pair __r = __node_insert_unique(__h.get()); + if (__r.second) + __h.release(); + return __r; +} + +template +template +typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__emplace_multi(_Args&&... __args) +{ + __node_holder __h = __construct_node(_CUDA_VSTD::forward<_Args>(__args)...); + iterator __r = __node_insert_multi(__h.get()); + __h.release(); + return __r; +} + +template +template +typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__emplace_hint_multi( + const_iterator __p, _Args&&... __args) +{ +#if _LIBCUDACXX_DEBUG_LEVEL >= 2 + _LIBCUDACXX_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this, + "unordered container::emplace_hint(const_iterator, args...) called with an iterator not" + " referring to this unordered container"); +#endif + __node_holder __h = __construct_node(_CUDA_VSTD::forward<_Args>(__args)...); + iterator __r = __node_insert_multi(__p, __h.get()); + __h.release(); + return __r; +} + +#else // _LIBCUDACXX_CXX03_LANG + +template +typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__insert_multi(const __container_value_type& __x) +{ + __node_holder __h = __construct_node(__x); + iterator __r = __node_insert_multi(__h.get()); + __h.release(); + return __r; +} + +template +typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__insert_multi(const_iterator __p, + const __container_value_type& __x) +{ +#if _LIBCUDACXX_DEBUG_LEVEL >= 2 + _LIBCUDACXX_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this, + "unordered container::insert(const_iterator, lvalue) called with an iterator not" + " referring to this unordered container"); +#endif + __node_holder __h = __construct_node(__x); + iterator __r = __node_insert_multi(__p, __h.get()); + __h.release(); + return __r; +} + +#endif // _LIBCUDACXX_CXX03_LANG + +#if _LIBCUDACXX_STD_VER > 14 +template +template +_LIBCUDACXX_INLINE_VISIBILITY +_InsertReturnType +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__node_handle_insert_unique( + _NodeHandle&& __nh) +{ + if (__nh.empty()) + return _InsertReturnType{end(), false, _NodeHandle()}; + pair __result = __node_insert_unique(__nh.__ptr_); + if (__result.second) + __nh.__release_ptr(); + return _InsertReturnType{__result.first, __result.second, _CUDA_VSTD::move(__nh)}; +} + +template +template +_LIBCUDACXX_INLINE_VISIBILITY +typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__node_handle_insert_unique( + const_iterator, _NodeHandle&& __nh) +{ + if (__nh.empty()) + return end(); + pair __result = __node_insert_unique(__nh.__ptr_); + if (__result.second) + __nh.__release_ptr(); + return __result.first; +} + +template +template +_LIBCUDACXX_INLINE_VISIBILITY +_NodeHandle +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__node_handle_extract( + key_type const& __key) +{ + iterator __i = find(__key); + if (__i == end()) + return _NodeHandle(); + return __node_handle_extract<_NodeHandle>(__i); +} + +template +template +_LIBCUDACXX_INLINE_VISIBILITY +_NodeHandle +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__node_handle_extract( + const_iterator __p) +{ + allocator_type __alloc(__node_alloc()); + return _NodeHandle(remove(__p).release(), __alloc); +} + +template +template +_LIBCUDACXX_INLINE_VISIBILITY +void +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__node_handle_merge_unique( + _Table& __source) +{ + static_assert(is_same<__node, typename _Table::__node>::value, ""); + + for (typename _Table::iterator __it = __source.begin(); + __it != __source.end();) + { + __node_pointer __src_ptr = __it.__node_->__upcast(); + size_t __hash = hash_function()(__src_ptr->__value_); + __next_pointer __existing_node = + __node_insert_unique_prepare(__hash, __src_ptr->__value_); + auto __prev_iter = __it++; + if (__existing_node == nullptr) + { + (void)__source.remove(__prev_iter).release(); + __src_ptr->__hash_ = __hash; + __node_insert_unique_perform(__src_ptr); + } + } +} + +template +template +_LIBCUDACXX_INLINE_VISIBILITY +typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__node_handle_insert_multi( + _NodeHandle&& __nh) +{ + if (__nh.empty()) + return end(); + iterator __result = __node_insert_multi(__nh.__ptr_); + __nh.__release_ptr(); + return __result; +} + +template +template +_LIBCUDACXX_INLINE_VISIBILITY +typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__node_handle_insert_multi( + const_iterator __hint, _NodeHandle&& __nh) +{ + if (__nh.empty()) + return end(); + iterator __result = __node_insert_multi(__hint, __nh.__ptr_); + __nh.__release_ptr(); + return __result; +} + +template +template +_LIBCUDACXX_INLINE_VISIBILITY +void +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__node_handle_merge_multi( + _Table& __source) +{ + static_assert(is_same::value, ""); + + for (typename _Table::iterator __it = __source.begin(); + __it != __source.end();) + { + __node_pointer __src_ptr = __it.__node_->__upcast(); + size_t __src_hash = hash_function()(__src_ptr->__value_); + __next_pointer __pn = + __node_insert_multi_prepare(__src_hash, __src_ptr->__value_); + (void)__source.remove(__it++).release(); + __src_ptr->__hash_ = __src_hash; + __node_insert_multi_perform(__src_ptr, __pn); + } +} +#endif // _LIBCUDACXX_STD_VER > 14 + +template +void +__hash_table<_Tp, _Hash, _Equal, _Alloc>::rehash(size_type __n) +_LIBCUDACXX_DISABLE_UBSAN_UNSIGNED_INTEGER_CHECK +{ + if (__n == 1) + __n = 2; + else if (__n & (__n - 1)) + __n = __next_prime(__n); + size_type __bc = bucket_count(); + if (__n > __bc) + __rehash(__n); + else if (__n < __bc) + { + __n = _CUDA_VSTD::max + ( + __n, + __is_hash_power2(__bc) ? __next_hash_pow2(size_t(ceil(float(size()) / max_load_factor()))) : + __next_prime(size_t(ceil(float(size()) / max_load_factor()))) + ); + if (__n < __bc) + __rehash(__n); + } +} + +template +void +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__rehash(size_type __nbc) +{ +#if _LIBCUDACXX_DEBUG_LEVEL >= 2 + __get_db()->__invalidate_all(this); +#endif // _LIBCUDACXX_DEBUG_LEVEL >= 2 + __pointer_allocator& __npa = __bucket_list_.get_deleter().__alloc(); + __bucket_list_.reset(__nbc > 0 ? + __pointer_alloc_traits::allocate(__npa, __nbc) : nullptr); + __bucket_list_.get_deleter().size() = __nbc; + if (__nbc > 0) + { + for (size_type __i = 0; __i < __nbc; ++__i) + __bucket_list_[__i] = nullptr; + __next_pointer __pp = __p1_.first().__ptr(); + __next_pointer __cp = __pp->__next_; + if (__cp != nullptr) + { + size_type __chash = __constrain_hash(__cp->__hash(), __nbc); + __bucket_list_[__chash] = __pp; + size_type __phash = __chash; + for (__pp = __cp, __cp = __cp->__next_; __cp != nullptr; + __cp = __pp->__next_) + { + __chash = __constrain_hash(__cp->__hash(), __nbc); + if (__chash == __phash) + __pp = __cp; + else + { + if (__bucket_list_[__chash] == nullptr) + { + __bucket_list_[__chash] = __pp; + __pp = __cp; + __phash = __chash; + } + else + { + __next_pointer __np = __cp; + for (; __np->__next_ != nullptr && + key_eq()(__cp->__upcast()->__value_, + __np->__next_->__upcast()->__value_); + __np = __np->__next_) + ; + __pp->__next_ = __np->__next_; + __np->__next_ = __bucket_list_[__chash]->__next_; + __bucket_list_[__chash]->__next_ = __cp; + + } + } + } + } + } +} + +template +template +typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator +__hash_table<_Tp, _Hash, _Equal, _Alloc>::find(const _Key& __k) +{ + size_t __hash = hash_function()(__k); + size_type __bc = bucket_count(); + if (__bc != 0) + { + size_t __chash = __constrain_hash(__hash, __bc); + __next_pointer __nd = __bucket_list_[__chash]; + if (__nd != nullptr) + { + for (__nd = __nd->__next_; __nd != nullptr && + (__nd->__hash() == __hash + || __constrain_hash(__nd->__hash(), __bc) == __chash); + __nd = __nd->__next_) + { + if ((__nd->__hash() == __hash) + && key_eq()(__nd->__upcast()->__value_, __k)) +#if _LIBCUDACXX_DEBUG_LEVEL >= 2 + return iterator(__nd, this); +#else + return iterator(__nd); +#endif + } + } + } + return end(); +} + +template +template +typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::const_iterator +__hash_table<_Tp, _Hash, _Equal, _Alloc>::find(const _Key& __k) const +{ + size_t __hash = hash_function()(__k); + size_type __bc = bucket_count(); + if (__bc != 0) + { + size_t __chash = __constrain_hash(__hash, __bc); + __next_pointer __nd = __bucket_list_[__chash]; + if (__nd != nullptr) + { + for (__nd = __nd->__next_; __nd != nullptr && + (__hash == __nd->__hash() + || __constrain_hash(__nd->__hash(), __bc) == __chash); + __nd = __nd->__next_) + { + if ((__nd->__hash() == __hash) + && key_eq()(__nd->__upcast()->__value_, __k)) +#if _LIBCUDACXX_DEBUG_LEVEL >= 2 + return const_iterator(__nd, this); +#else + return const_iterator(__nd); +#endif + } + } + + } + return end(); +} + +#ifndef _LIBCUDACXX_CXX03_LANG + +template +template +typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::__node_holder +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__construct_node(_Args&& ...__args) +{ + static_assert(!__is_hash_value_type<_Args...>::value, + "Construct cannot be called with a hash value type"); + __node_allocator& __na = __node_alloc(); + __node_holder __h(__node_traits::allocate(__na, 1), _Dp(__na)); + __node_traits::construct(__na, _NodeTypes::__get_ptr(__h->__value_), _CUDA_VSTD::forward<_Args>(__args)...); + __h.get_deleter().__value_constructed = true; + __h->__hash_ = hash_function()(__h->__value_); + __h->__next_ = nullptr; + return __h; +} + +template +template +typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::__node_holder +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__construct_node_hash( + size_t __hash, _First&& __f, _Rest&& ...__rest) +{ + static_assert(!__is_hash_value_type<_First, _Rest...>::value, + "Construct cannot be called with a hash value type"); + __node_allocator& __na = __node_alloc(); + __node_holder __h(__node_traits::allocate(__na, 1), _Dp(__na)); + __node_traits::construct(__na, _NodeTypes::__get_ptr(__h->__value_), + _CUDA_VSTD::forward<_First>(__f), + _CUDA_VSTD::forward<_Rest>(__rest)...); + __h.get_deleter().__value_constructed = true; + __h->__hash_ = __hash; + __h->__next_ = nullptr; + return __h; +} + +#else // _LIBCUDACXX_CXX03_LANG + +template +typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::__node_holder +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__construct_node(const __container_value_type& __v) +{ + __node_allocator& __na = __node_alloc(); + __node_holder __h(__node_traits::allocate(__na, 1), _Dp(__na)); + __node_traits::construct(__na, _NodeTypes::__get_ptr(__h->__value_), __v); + __h.get_deleter().__value_constructed = true; + __h->__hash_ = hash_function()(__h->__value_); + __h->__next_ = nullptr; + return _LIBCUDACXX_EXPLICIT_MOVE(__h); // explicitly moved for C++03 +} + +template +typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::__node_holder +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__construct_node_hash(size_t __hash, + const __container_value_type& __v) +{ + __node_allocator& __na = __node_alloc(); + __node_holder __h(__node_traits::allocate(__na, 1), _Dp(__na)); + __node_traits::construct(__na, _NodeTypes::__get_ptr(__h->__value_), __v); + __h.get_deleter().__value_constructed = true; + __h->__hash_ = __hash; + __h->__next_ = nullptr; + return _LIBCUDACXX_EXPLICIT_MOVE(__h); // explicitly moved for C++03 +} + +#endif // _LIBCUDACXX_CXX03_LANG + +template +typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator +__hash_table<_Tp, _Hash, _Equal, _Alloc>::erase(const_iterator __p) +{ + __next_pointer __np = __p.__node_; +#if _LIBCUDACXX_DEBUG_LEVEL >= 2 + _LIBCUDACXX_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this, + "unordered container erase(iterator) called with an iterator not" + " referring to this container"); + _LIBCUDACXX_ASSERT(__p != end(), + "unordered container erase(iterator) called with a non-dereferenceable iterator"); + iterator __r(__np, this); +#else + iterator __r(__np); +#endif + ++__r; + remove(__p); + return __r; +} + +template +typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator +__hash_table<_Tp, _Hash, _Equal, _Alloc>::erase(const_iterator __first, + const_iterator __last) +{ +#if _LIBCUDACXX_DEBUG_LEVEL >= 2 + _LIBCUDACXX_ASSERT(__get_const_db()->__find_c_from_i(&__first) == this, + "unodered container::erase(iterator, iterator) called with an iterator not" + " referring to this unodered container"); + _LIBCUDACXX_ASSERT(__get_const_db()->__find_c_from_i(&__last) == this, + "unodered container::erase(iterator, iterator) called with an iterator not" + " referring to this unodered container"); +#endif + for (const_iterator __p = __first; __first != __last; __p = __first) + { + ++__first; + erase(__p); + } + __next_pointer __np = __last.__node_; +#if _LIBCUDACXX_DEBUG_LEVEL >= 2 + return iterator (__np, this); +#else + return iterator (__np); +#endif +} + +template +template +typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::size_type +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__erase_unique(const _Key& __k) +{ + iterator __i = find(__k); + if (__i == end()) + return 0; + erase(__i); + return 1; +} + +template +template +typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::size_type +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__erase_multi(const _Key& __k) +{ + size_type __r = 0; + iterator __i = find(__k); + if (__i != end()) + { + iterator __e = end(); + do + { + erase(__i++); + ++__r; + } while (__i != __e && key_eq()(*__i, __k)); + } + return __r; +} + +template +typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::__node_holder +__hash_table<_Tp, _Hash, _Equal, _Alloc>::remove(const_iterator __p) _NOEXCEPT +{ + // current node + __next_pointer __cn = __p.__node_; + size_type __bc = bucket_count(); + size_t __chash = __constrain_hash(__cn->__hash(), __bc); + // find previous node + __next_pointer __pn = __bucket_list_[__chash]; + for (; __pn->__next_ != __cn; __pn = __pn->__next_) + ; + // Fix up __bucket_list_ + // if __pn is not in same bucket (before begin is not in same bucket) && + // if __cn->__next_ is not in same bucket (nullptr is not in same bucket) + if (__pn == __p1_.first().__ptr() + || __constrain_hash(__pn->__hash(), __bc) != __chash) + { + if (__cn->__next_ == nullptr + || __constrain_hash(__cn->__next_->__hash(), __bc) != __chash) + __bucket_list_[__chash] = nullptr; + } + // if __cn->__next_ is not in same bucket (nullptr is in same bucket) + if (__cn->__next_ != nullptr) + { + size_t __nhash = __constrain_hash(__cn->__next_->__hash(), __bc); + if (__nhash != __chash) + __bucket_list_[__nhash] = __pn; + } + // remove __cn + __pn->__next_ = __cn->__next_; + __cn->__next_ = nullptr; + --size(); +#if _LIBCUDACXX_DEBUG_LEVEL >= 2 + __c_node* __c = __get_db()->__find_c_and_lock(this); + for (__i_node** __dp = __c->end_; __dp != __c->beg_; ) + { + --__dp; + iterator* __i = static_cast((*__dp)->__i_); + if (__i->__node_ == __cn) + { + (*__dp)->__c_ = nullptr; + if (--__c->end_ != __dp) + memmove(__dp, __dp+1, (__c->end_ - __dp)*sizeof(__i_node*)); + } + } + __get_db()->unlock(); +#endif + return __node_holder(__cn->__upcast(), _Dp(__node_alloc(), true)); +} + +template +template +inline +typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::size_type +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__count_unique(const _Key& __k) const +{ + return static_cast(find(__k) != end()); +} + +template +template +typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::size_type +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__count_multi(const _Key& __k) const +{ + size_type __r = 0; + const_iterator __i = find(__k); + if (__i != end()) + { + const_iterator __e = end(); + do + { + ++__i; + ++__r; + } while (__i != __e && key_eq()(*__i, __k)); + } + return __r; +} + +template +template +pair::iterator, + typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator> +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__equal_range_unique( + const _Key& __k) +{ + iterator __i = find(__k); + iterator __j = __i; + if (__i != end()) + ++__j; + return pair(__i, __j); +} + +template +template +pair::const_iterator, + typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::const_iterator> +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__equal_range_unique( + const _Key& __k) const +{ + const_iterator __i = find(__k); + const_iterator __j = __i; + if (__i != end()) + ++__j; + return pair(__i, __j); +} + +template +template +pair::iterator, + typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator> +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__equal_range_multi( + const _Key& __k) +{ + iterator __i = find(__k); + iterator __j = __i; + if (__i != end()) + { + iterator __e = end(); + do + { + ++__j; + } while (__j != __e && key_eq()(*__j, __k)); + } + return pair(__i, __j); +} + +template +template +pair::const_iterator, + typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::const_iterator> +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__equal_range_multi( + const _Key& __k) const +{ + const_iterator __i = find(__k); + const_iterator __j = __i; + if (__i != end()) + { + const_iterator __e = end(); + do + { + ++__j; + } while (__j != __e && key_eq()(*__j, __k)); + } + return pair(__i, __j); +} + +template +void +__hash_table<_Tp, _Hash, _Equal, _Alloc>::swap(__hash_table& __u) +#if _LIBCUDACXX_STD_VER <= 11 + _NOEXCEPT_( + __is_nothrow_swappable::value && __is_nothrow_swappable::value + && (!allocator_traits<__pointer_allocator>::propagate_on_container_swap::value + || __is_nothrow_swappable<__pointer_allocator>::value) + && (!__node_traits::propagate_on_container_swap::value + || __is_nothrow_swappable<__node_allocator>::value) + ) +#else + _NOEXCEPT_(__is_nothrow_swappable::value && __is_nothrow_swappable::value) +#endif +{ + _LIBCUDACXX_ASSERT(__node_traits::propagate_on_container_swap::value || + this->__node_alloc() == __u.__node_alloc(), + "list::swap: Either propagate_on_container_swap must be true" + " or the allocators must compare equal"); + { + __node_pointer_pointer __npp = __bucket_list_.release(); + __bucket_list_.reset(__u.__bucket_list_.release()); + __u.__bucket_list_.reset(__npp); + } + _CUDA_VSTD::swap(__bucket_list_.get_deleter().size(), __u.__bucket_list_.get_deleter().size()); + __swap_allocator(__bucket_list_.get_deleter().__alloc(), + __u.__bucket_list_.get_deleter().__alloc()); + __swap_allocator(__node_alloc(), __u.__node_alloc()); + _CUDA_VSTD::swap(__p1_.first().__next_, __u.__p1_.first().__next_); + __p2_.swap(__u.__p2_); + __p3_.swap(__u.__p3_); + if (size() > 0) + __bucket_list_[__constrain_hash(__p1_.first().__next_->__hash(), bucket_count())] = + __p1_.first().__ptr(); + if (__u.size() > 0) + __u.__bucket_list_[__constrain_hash(__u.__p1_.first().__next_->__hash(), __u.bucket_count())] = + __u.__p1_.first().__ptr(); +#if _LIBCUDACXX_DEBUG_LEVEL >= 2 + __get_db()->swap(this, &__u); +#endif +} + +template +typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::size_type +__hash_table<_Tp, _Hash, _Equal, _Alloc>::bucket_size(size_type __n) const +{ + _LIBCUDACXX_ASSERT(__n < bucket_count(), + "unordered container::bucket_size(n) called with n >= bucket_count()"); + __next_pointer __np = __bucket_list_[__n]; + size_type __bc = bucket_count(); + size_type __r = 0; + if (__np != nullptr) + { + for (__np = __np->__next_; __np != nullptr && + __constrain_hash(__np->__hash(), __bc) == __n; + __np = __np->__next_, ++__r) + ; + } + return __r; +} + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +void +swap(__hash_table<_Tp, _Hash, _Equal, _Alloc>& __x, + __hash_table<_Tp, _Hash, _Equal, _Alloc>& __y) + _NOEXCEPT_(_NOEXCEPT_(__x.swap(__y))) +{ + __x.swap(__y); +} + +#if _LIBCUDACXX_DEBUG_LEVEL >= 2 + +template +bool +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__dereferenceable(const const_iterator* __i) const +{ + return __i->__node_ != nullptr; +} + +template +bool +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__decrementable(const const_iterator*) const +{ + return false; +} + +template +bool +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__addable(const const_iterator*, ptrdiff_t) const +{ + return false; +} + +template +bool +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__subscriptable(const const_iterator*, ptrdiff_t) const +{ + return false; +} + +#endif // _LIBCUDACXX_DEBUG_LEVEL >= 2 + +_LIBCUDACXX_END_NAMESPACE_STD + +_LIBCUDACXX_POP_MACROS + +#endif // _LIBCUDACXX__HASH_TABLE diff --git a/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__libcpp_version b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__libcpp_version new file mode 100644 index 0000000000000000000000000000000000000000..5caff40c4a0ce4ed0dcb3aa983da623641af1b06 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__libcpp_version @@ -0,0 +1 @@ +10000 diff --git a/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__locale b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__locale new file mode 100644 index 0000000000000000000000000000000000000000..2b2df18624efeafabfc2c79d676dd527083eaa70 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__locale @@ -0,0 +1,1553 @@ +// -*- C++ -*- +//===----------------------------------------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef _LIBCUDACXX___LOCALE +#define _LIBCUDACXX___LOCALE + +#include <__config> +#include +#include +#include +#include +#include +#include +#include +#if defined(_LIBCUDACXX_MSVCRT_LIKE) +# include +# include +#elif defined(_AIX) +# include +#elif defined(__ANDROID__) +# include +#elif defined(__sun__) +# include +# include +#elif defined(_NEWLIB_VERSION) +# include +#elif (defined(__APPLE__) || defined(__FreeBSD__) \ + || defined(__EMSCRIPTEN__) || defined(__IBMCPP__)) +# include +#elif defined(__Fuchsia__) +# include +#elif defined(__wasi__) +// WASI libc uses musl's locales support. +# include +#elif defined(_LIBCUDACXX_HAS_MUSL_LIBC) +# include +#endif + +#if defined(_LIBCUDACXX_USE_PRAGMA_GCC_SYSTEM_HEADER) +#pragma GCC system_header +#endif + +_LIBCUDACXX_BEGIN_NAMESPACE_STD + +#if !defined(_LIBCUDACXX_LOCALE__L_EXTENSIONS) +struct __libcpp_locale_guard { + _LIBCUDACXX_INLINE_VISIBILITY + __libcpp_locale_guard(locale_t& __loc) : __old_loc_(uselocale(__loc)) {} + + _LIBCUDACXX_INLINE_VISIBILITY + ~__libcpp_locale_guard() { + if (__old_loc_) + uselocale(__old_loc_); + } + + locale_t __old_loc_; +private: + __libcpp_locale_guard(__libcpp_locale_guard const&); + __libcpp_locale_guard& operator=(__libcpp_locale_guard const&); +}; +#elif defined(_LIBCUDACXX_MSVCRT_LIKE) +struct __libcpp_locale_guard { + __libcpp_locale_guard(locale_t __l) : + __status(_configthreadlocale(_ENABLE_PER_THREAD_LOCALE)) { + // Setting the locale can be expensive even when the locale given is + // already the current locale, so do an explicit check to see if the + // current locale is already the one we want. + const char* __lc = __setlocale(nullptr); + // If every category is the same, the locale string will simply be the + // locale name, otherwise it will be a semicolon-separated string listing + // each category. In the second case, we know at least one category won't + // be what we want, so we only have to check the first case. + if (strcmp(__l.__get_locale(), __lc) != 0) { + __locale_all = _strdup(__lc); + if (__locale_all == nullptr) + __throw_bad_alloc(); + __setlocale(__l.__get_locale()); + } + } + ~__libcpp_locale_guard() { + // The CRT documentation doesn't explicitly say, but setlocale() does the + // right thing when given a semicolon-separated list of locale settings + // for the different categories in the same format as returned by + // setlocale(LC_ALL, nullptr). + if (__locale_all != nullptr) { + __setlocale(__locale_all); + free(__locale_all); + } + _configthreadlocale(__status); + } + static const char* __setlocale(const char* __locale) { + const char* __new_locale = setlocale(LC_ALL, __locale); + if (__new_locale == nullptr) + __throw_bad_alloc(); + return __new_locale; + } + int __status; + char* __locale_all = nullptr; +}; +#endif + + +class _LIBCUDACXX_TYPE_VIS locale; + +template +_LIBCUDACXX_INLINE_VISIBILITY +bool +has_facet(const locale&) _NOEXCEPT; + +template +_LIBCUDACXX_INLINE_VISIBILITY +const _Facet& +use_facet(const locale&); + +class _LIBCUDACXX_TYPE_VIS locale +{ +public: + // types: + class _LIBCUDACXX_TYPE_VIS facet; + class _LIBCUDACXX_TYPE_VIS id; + + typedef int category; + _LIBCUDACXX_AVAILABILITY_LOCALE_CATEGORY + static const category // values assigned here are for exposition only + none = 0, + collate = LC_COLLATE_MASK, + ctype = LC_CTYPE_MASK, + monetary = LC_MONETARY_MASK, + numeric = LC_NUMERIC_MASK, + time = LC_TIME_MASK, + messages = LC_MESSAGES_MASK, + all = collate | ctype | monetary | numeric | time | messages; + + // construct/copy/destroy: + locale() _NOEXCEPT; + locale(const locale&) _NOEXCEPT; + explicit locale(const char*); + explicit locale(const string&); + locale(const locale&, const char*, category); + locale(const locale&, const string&, category); + template + _LIBCUDACXX_INLINE_VISIBILITY locale(const locale&, _Facet*); + locale(const locale&, const locale&, category); + + ~locale(); + + const locale& operator=(const locale&) _NOEXCEPT; + + template + _LIBCUDACXX_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS + locale combine(const locale&) const; + + // locale operations: + string name() const; + bool operator==(const locale&) const; + bool operator!=(const locale& __y) const {return !(*this == __y);} + template + _LIBCUDACXX_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS + bool operator()(const basic_string<_CharT, _Traits, _Allocator>&, + const basic_string<_CharT, _Traits, _Allocator>&) const; + + // global locale objects: + static locale global(const locale&); + static const locale& classic(); + +private: + class __imp; + __imp* __locale_; + + void __install_ctor(const locale&, facet*, long); + static locale& __global(); + bool has_facet(id&) const; + const facet* use_facet(id&) const; + + template friend bool has_facet(const locale&) _NOEXCEPT; + template friend const _Facet& use_facet(const locale&); +}; + +class _LIBCUDACXX_TYPE_VIS locale::facet + : public __shared_count +{ +protected: + _LIBCUDACXX_INLINE_VISIBILITY + explicit facet(size_t __refs = 0) + : __shared_count(static_cast(__refs)-1) {} + + virtual ~facet(); + +// facet(const facet&) = delete; // effectively done in __shared_count +// void operator=(const facet&) = delete; +private: + virtual void __on_zero_shared() _NOEXCEPT; +}; + +class _LIBCUDACXX_TYPE_VIS locale::id +{ + once_flag __flag_; + int32_t __id_; + + static int32_t __next_id; +public: + _LIBCUDACXX_INLINE_VISIBILITY _LIBCUDACXX_CONSTEXPR id() :__id_(0) {} +private: + void __init(); + void operator=(const id&); // = delete; + id(const id&); // = delete; +public: // only needed for tests + long __get(); + + friend class locale; + friend class locale::__imp; +}; + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +locale::locale(const locale& __other, _Facet* __f) +{ + __install_ctor(__other, __f, __f ? __f->id.__get() : 0); +} + +template +locale +locale::combine(const locale& __other) const +{ + if (!_CUDA_VSTD::has_facet<_Facet>(__other)) + __throw_runtime_error("locale::combine: locale missing facet"); + + return locale(*this, &const_cast<_Facet&>(_CUDA_VSTD::use_facet<_Facet>(__other))); +} + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +bool +has_facet(const locale& __l) _NOEXCEPT +{ + return __l.has_facet(_Facet::id); +} + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +const _Facet& +use_facet(const locale& __l) +{ + return static_cast(*__l.use_facet(_Facet::id)); +} + +// template class collate; + +template +class _LIBCUDACXX_TEMPLATE_VIS collate + : public locale::facet +{ +public: + typedef _CharT char_type; + typedef basic_string string_type; + + _LIBCUDACXX_INLINE_VISIBILITY + explicit collate(size_t __refs = 0) + : locale::facet(__refs) {} + + _LIBCUDACXX_INLINE_VISIBILITY + int compare(const char_type* __lo1, const char_type* __hi1, + const char_type* __lo2, const char_type* __hi2) const + { + return do_compare(__lo1, __hi1, __lo2, __hi2); + } + + // FIXME(EricWF): The _LIBCUDACXX_ALWAYS_INLINE is needed on Windows to work + // around a dllimport bug that expects an external instantiation. + _LIBCUDACXX_INLINE_VISIBILITY + _LIBCUDACXX_ALWAYS_INLINE + string_type transform(const char_type* __lo, const char_type* __hi) const + { + return do_transform(__lo, __hi); + } + + _LIBCUDACXX_INLINE_VISIBILITY + long hash(const char_type* __lo, const char_type* __hi) const + { + return do_hash(__lo, __hi); + } + + static locale::id id; + +protected: + ~collate(); + virtual int do_compare(const char_type* __lo1, const char_type* __hi1, + const char_type* __lo2, const char_type* __hi2) const; + virtual string_type do_transform(const char_type* __lo, const char_type* __hi) const + {return string_type(__lo, __hi);} + virtual long do_hash(const char_type* __lo, const char_type* __hi) const; +}; + +template locale::id collate<_CharT>::id; + +template +collate<_CharT>::~collate() +{ +} + +template +int +collate<_CharT>::do_compare(const char_type* __lo1, const char_type* __hi1, + const char_type* __lo2, const char_type* __hi2) const +{ + for (; __lo2 != __hi2; ++__lo1, ++__lo2) + { + if (__lo1 == __hi1 || *__lo1 < *__lo2) + return -1; + if (*__lo2 < *__lo1) + return 1; + } + return __lo1 != __hi1; +} + +template +long +collate<_CharT>::do_hash(const char_type* __lo, const char_type* __hi) const +{ + size_t __h = 0; + const size_t __sr = __CHAR_BIT__ * sizeof(size_t) - 8; + const size_t __mask = size_t(0xF) << (__sr + 4); + for(const char_type* __p = __lo; __p != __hi; ++__p) + { + __h = (__h << 4) + static_cast(*__p); + size_t __g = __h & __mask; + __h ^= __g | (__g >> __sr); + } + return static_cast(__h); +} + +_LIBCUDACXX_EXTERN_TEMPLATE2(class _LIBCUDACXX_EXTERN_TEMPLATE_TYPE_VIS collate) +_LIBCUDACXX_EXTERN_TEMPLATE2(class _LIBCUDACXX_EXTERN_TEMPLATE_TYPE_VIS collate) + +// template class collate_byname; + +template class _LIBCUDACXX_TEMPLATE_VIS collate_byname; + +template <> +class _LIBCUDACXX_TYPE_VIS collate_byname + : public collate +{ + locale_t __l; +public: + typedef char char_type; + typedef basic_string string_type; + + explicit collate_byname(const char* __n, size_t __refs = 0); + explicit collate_byname(const string& __n, size_t __refs = 0); + +protected: + ~collate_byname(); + virtual int do_compare(const char_type* __lo1, const char_type* __hi1, + const char_type* __lo2, const char_type* __hi2) const; + virtual string_type do_transform(const char_type* __lo, const char_type* __hi) const; +}; + +template <> +class _LIBCUDACXX_TYPE_VIS collate_byname + : public collate +{ + locale_t __l; +public: + typedef wchar_t char_type; + typedef basic_string string_type; + + explicit collate_byname(const char* __n, size_t __refs = 0); + explicit collate_byname(const string& __n, size_t __refs = 0); + +protected: + ~collate_byname(); + + virtual int do_compare(const char_type* __lo1, const char_type* __hi1, + const char_type* __lo2, const char_type* __hi2) const; + virtual string_type do_transform(const char_type* __lo, const char_type* __hi) const; +}; + +template +bool +locale::operator()(const basic_string<_CharT, _Traits, _Allocator>& __x, + const basic_string<_CharT, _Traits, _Allocator>& __y) const +{ + return _CUDA_VSTD::use_facet<_CUDA_VSTD::collate<_CharT> >(*this).compare( + __x.data(), __x.data() + __x.size(), + __y.data(), __y.data() + __y.size()) < 0; +} + +// template class ctype + +class _LIBCUDACXX_TYPE_VIS ctype_base +{ +public: +#if defined(__GLIBC__) + typedef unsigned short mask; + static const mask space = _ISspace; + static const mask print = _ISprint; + static const mask cntrl = _IScntrl; + static const mask upper = _ISupper; + static const mask lower = _ISlower; + static const mask alpha = _ISalpha; + static const mask digit = _ISdigit; + static const mask punct = _ISpunct; + static const mask xdigit = _ISxdigit; + static const mask blank = _ISblank; +#if defined(__mips__) + static const mask __regex_word = static_cast(_ISbit(15)); +#else + static const mask __regex_word = 0x80; +#endif +#elif defined(_LIBCUDACXX_MSVCRT_LIKE) + typedef unsigned short mask; + static const mask space = _SPACE; + static const mask print = _BLANK|_PUNCT|_ALPHA|_DIGIT; + static const mask cntrl = _CONTROL; + static const mask upper = _UPPER; + static const mask lower = _LOWER; + static const mask alpha = _ALPHA; + static const mask digit = _DIGIT; + static const mask punct = _PUNCT; + static const mask xdigit = _HEX; + static const mask blank = _BLANK; + static const mask __regex_word = 0x80; +# define _LIBCUDACXX_CTYPE_MASK_IS_COMPOSITE_PRINT +#elif defined(__APPLE__) || defined(__FreeBSD__) || defined(__EMSCRIPTEN__) || defined(__NetBSD__) +# ifdef __APPLE__ + typedef __uint32_t mask; +# elif defined(__FreeBSD__) + typedef unsigned long mask; +# elif defined(__EMSCRIPTEN__) || defined(__NetBSD__) + typedef unsigned short mask; +# endif + static const mask space = _CTYPE_S; + static const mask print = _CTYPE_R; + static const mask cntrl = _CTYPE_C; + static const mask upper = _CTYPE_U; + static const mask lower = _CTYPE_L; + static const mask alpha = _CTYPE_A; + static const mask digit = _CTYPE_D; + static const mask punct = _CTYPE_P; + static const mask xdigit = _CTYPE_X; + +# if defined(__NetBSD__) + static const mask blank = _CTYPE_BL; + // NetBSD defines classes up to 0x2000 + // see sys/ctype_bits.h, _CTYPE_Q + static const mask __regex_word = 0x8000; +# else + static const mask blank = _CTYPE_B; + static const mask __regex_word = 0x80; +# endif +#elif defined(__sun__) || defined(_AIX) + typedef unsigned int mask; + static const mask space = _ISSPACE; + static const mask print = _ISPRINT; + static const mask cntrl = _ISCNTRL; + static const mask upper = _ISUPPER; + static const mask lower = _ISLOWER; + static const mask alpha = _ISALPHA; + static const mask digit = _ISDIGIT; + static const mask punct = _ISPUNCT; + static const mask xdigit = _ISXDIGIT; + static const mask blank = _ISBLANK; + static const mask __regex_word = 0x80; +#elif defined(_NEWLIB_VERSION) + // Same type as Newlib's _ctype_ array in newlib/libc/include/ctype.h. + typedef char mask; + static const mask space = _S; + static const mask print = _P | _U | _L | _N | _B; + static const mask cntrl = _C; + static const mask upper = _U; + static const mask lower = _L; + static const mask alpha = _U | _L; + static const mask digit = _N; + static const mask punct = _P; + static const mask xdigit = _X | _N; + static const mask blank = _B; + static const mask __regex_word = 0x80; +# define _LIBCUDACXX_CTYPE_MASK_IS_COMPOSITE_PRINT +# define _LIBCUDACXX_CTYPE_MASK_IS_COMPOSITE_ALPHA +# define _LIBCUDACXX_CTYPE_MASK_IS_COMPOSITE_XDIGIT +#else + typedef unsigned long mask; + static const mask space = 1<<0; + static const mask print = 1<<1; + static const mask cntrl = 1<<2; + static const mask upper = 1<<3; + static const mask lower = 1<<4; + static const mask alpha = 1<<5; + static const mask digit = 1<<6; + static const mask punct = 1<<7; + static const mask xdigit = 1<<8; + static const mask blank = 1<<9; + static const mask __regex_word = 1<<10; +#endif + static const mask alnum = alpha | digit; + static const mask graph = alnum | punct; + + _LIBCUDACXX_INLINE_VISIBILITY ctype_base() {} +}; + +template class _LIBCUDACXX_TEMPLATE_VIS ctype; + +template <> +class _LIBCUDACXX_TYPE_VIS ctype + : public locale::facet, + public ctype_base +{ +public: + typedef wchar_t char_type; + + _LIBCUDACXX_INLINE_VISIBILITY + explicit ctype(size_t __refs = 0) + : locale::facet(__refs) {} + + _LIBCUDACXX_INLINE_VISIBILITY + bool is(mask __m, char_type __c) const + { + return do_is(__m, __c); + } + + _LIBCUDACXX_INLINE_VISIBILITY + const char_type* is(const char_type* __low, const char_type* __high, mask* __vec) const + { + return do_is(__low, __high, __vec); + } + + _LIBCUDACXX_INLINE_VISIBILITY + const char_type* scan_is(mask __m, const char_type* __low, const char_type* __high) const + { + return do_scan_is(__m, __low, __high); + } + + _LIBCUDACXX_INLINE_VISIBILITY + const char_type* scan_not(mask __m, const char_type* __low, const char_type* __high) const + { + return do_scan_not(__m, __low, __high); + } + + _LIBCUDACXX_INLINE_VISIBILITY + char_type toupper(char_type __c) const + { + return do_toupper(__c); + } + + _LIBCUDACXX_INLINE_VISIBILITY + const char_type* toupper(char_type* __low, const char_type* __high) const + { + return do_toupper(__low, __high); + } + + _LIBCUDACXX_INLINE_VISIBILITY + char_type tolower(char_type __c) const + { + return do_tolower(__c); + } + + _LIBCUDACXX_INLINE_VISIBILITY + const char_type* tolower(char_type* __low, const char_type* __high) const + { + return do_tolower(__low, __high); + } + + _LIBCUDACXX_INLINE_VISIBILITY + char_type widen(char __c) const + { + return do_widen(__c); + } + + _LIBCUDACXX_INLINE_VISIBILITY + const char* widen(const char* __low, const char* __high, char_type* __to) const + { + return do_widen(__low, __high, __to); + } + + _LIBCUDACXX_INLINE_VISIBILITY + char narrow(char_type __c, char __dfault) const + { + return do_narrow(__c, __dfault); + } + + _LIBCUDACXX_INLINE_VISIBILITY + const char_type* narrow(const char_type* __low, const char_type* __high, char __dfault, char* __to) const + { + return do_narrow(__low, __high, __dfault, __to); + } + + static locale::id id; + +protected: + ~ctype(); + virtual bool do_is(mask __m, char_type __c) const; + virtual const char_type* do_is(const char_type* __low, const char_type* __high, mask* __vec) const; + virtual const char_type* do_scan_is(mask __m, const char_type* __low, const char_type* __high) const; + virtual const char_type* do_scan_not(mask __m, const char_type* __low, const char_type* __high) const; + virtual char_type do_toupper(char_type) const; + virtual const char_type* do_toupper(char_type* __low, const char_type* __high) const; + virtual char_type do_tolower(char_type) const; + virtual const char_type* do_tolower(char_type* __low, const char_type* __high) const; + virtual char_type do_widen(char) const; + virtual const char* do_widen(const char* __low, const char* __high, char_type* __dest) const; + virtual char do_narrow(char_type, char __dfault) const; + virtual const char_type* do_narrow(const char_type* __low, const char_type* __high, char __dfault, char* __dest) const; +}; + +template <> +class _LIBCUDACXX_TYPE_VIS ctype + : public locale::facet, public ctype_base +{ + const mask* __tab_; + bool __del_; +public: + typedef char char_type; + + explicit ctype(const mask* __tab = 0, bool __del = false, size_t __refs = 0); + + _LIBCUDACXX_INLINE_VISIBILITY + bool is(mask __m, char_type __c) const + { + return isascii(__c) ? (__tab_[static_cast(__c)] & __m) !=0 : false; + } + + _LIBCUDACXX_INLINE_VISIBILITY + const char_type* is(const char_type* __low, const char_type* __high, mask* __vec) const + { + for (; __low != __high; ++__low, ++__vec) + *__vec = isascii(*__low) ? __tab_[static_cast(*__low)] : 0; + return __low; + } + + _LIBCUDACXX_INLINE_VISIBILITY + const char_type* scan_is (mask __m, const char_type* __low, const char_type* __high) const + { + for (; __low != __high; ++__low) + if (isascii(*__low) && (__tab_[static_cast(*__low)] & __m)) + break; + return __low; + } + + _LIBCUDACXX_INLINE_VISIBILITY + const char_type* scan_not(mask __m, const char_type* __low, const char_type* __high) const + { + for (; __low != __high; ++__low) + if (!(isascii(*__low) && (__tab_[static_cast(*__low)] & __m))) + break; + return __low; + } + + _LIBCUDACXX_INLINE_VISIBILITY + char_type toupper(char_type __c) const + { + return do_toupper(__c); + } + + _LIBCUDACXX_INLINE_VISIBILITY + const char_type* toupper(char_type* __low, const char_type* __high) const + { + return do_toupper(__low, __high); + } + + _LIBCUDACXX_INLINE_VISIBILITY + char_type tolower(char_type __c) const + { + return do_tolower(__c); + } + + _LIBCUDACXX_INLINE_VISIBILITY + const char_type* tolower(char_type* __low, const char_type* __high) const + { + return do_tolower(__low, __high); + } + + _LIBCUDACXX_INLINE_VISIBILITY + char_type widen(char __c) const + { + return do_widen(__c); + } + + _LIBCUDACXX_INLINE_VISIBILITY + const char* widen(const char* __low, const char* __high, char_type* __to) const + { + return do_widen(__low, __high, __to); + } + + _LIBCUDACXX_INLINE_VISIBILITY + char narrow(char_type __c, char __dfault) const + { + return do_narrow(__c, __dfault); + } + + _LIBCUDACXX_INLINE_VISIBILITY + const char* narrow(const char_type* __low, const char_type* __high, char __dfault, char* __to) const + { + return do_narrow(__low, __high, __dfault, __to); + } + + static locale::id id; + +#ifdef _CACHED_RUNES + static const size_t table_size = _CACHED_RUNES; +#else + static const size_t table_size = 256; // FIXME: Don't hardcode this. +#endif + _LIBCUDACXX_INLINE_VISIBILITY const mask* table() const _NOEXCEPT {return __tab_;} + static const mask* classic_table() _NOEXCEPT; +#if defined(__GLIBC__) || defined(__EMSCRIPTEN__) + static const int* __classic_upper_table() _NOEXCEPT; + static const int* __classic_lower_table() _NOEXCEPT; +#endif +#if defined(__NetBSD__) + static const short* __classic_upper_table() _NOEXCEPT; + static const short* __classic_lower_table() _NOEXCEPT; +#endif + +protected: + ~ctype(); + virtual char_type do_toupper(char_type __c) const; + virtual const char_type* do_toupper(char_type* __low, const char_type* __high) const; + virtual char_type do_tolower(char_type __c) const; + virtual const char_type* do_tolower(char_type* __low, const char_type* __high) const; + virtual char_type do_widen(char __c) const; + virtual const char* do_widen(const char* __low, const char* __high, char_type* __to) const; + virtual char do_narrow(char_type __c, char __dfault) const; + virtual const char* do_narrow(const char_type* __low, const char_type* __high, char __dfault, char* __to) const; +}; + +// template class ctype_byname; + +template class _LIBCUDACXX_TEMPLATE_VIS ctype_byname; + +template <> +class _LIBCUDACXX_TYPE_VIS ctype_byname + : public ctype +{ + locale_t __l; + +public: + explicit ctype_byname(const char*, size_t = 0); + explicit ctype_byname(const string&, size_t = 0); + +protected: + ~ctype_byname(); + virtual char_type do_toupper(char_type) const; + virtual const char_type* do_toupper(char_type* __low, const char_type* __high) const; + virtual char_type do_tolower(char_type) const; + virtual const char_type* do_tolower(char_type* __low, const char_type* __high) const; +}; + +template <> +class _LIBCUDACXX_TYPE_VIS ctype_byname + : public ctype +{ + locale_t __l; + +public: + explicit ctype_byname(const char*, size_t = 0); + explicit ctype_byname(const string&, size_t = 0); + +protected: + ~ctype_byname(); + virtual bool do_is(mask __m, char_type __c) const; + virtual const char_type* do_is(const char_type* __low, const char_type* __high, mask* __vec) const; + virtual const char_type* do_scan_is(mask __m, const char_type* __low, const char_type* __high) const; + virtual const char_type* do_scan_not(mask __m, const char_type* __low, const char_type* __high) const; + virtual char_type do_toupper(char_type) const; + virtual const char_type* do_toupper(char_type* __low, const char_type* __high) const; + virtual char_type do_tolower(char_type) const; + virtual const char_type* do_tolower(char_type* __low, const char_type* __high) const; + virtual char_type do_widen(char) const; + virtual const char* do_widen(const char* __low, const char* __high, char_type* __dest) const; + virtual char do_narrow(char_type, char __dfault) const; + virtual const char_type* do_narrow(const char_type* __low, const char_type* __high, char __dfault, char* __dest) const; +}; + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +bool +isspace(_CharT __c, const locale& __loc) +{ + return use_facet >(__loc).is(ctype_base::space, __c); +} + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +bool +isprint(_CharT __c, const locale& __loc) +{ + return use_facet >(__loc).is(ctype_base::print, __c); +} + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +bool +iscntrl(_CharT __c, const locale& __loc) +{ + return use_facet >(__loc).is(ctype_base::cntrl, __c); +} + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +bool +isupper(_CharT __c, const locale& __loc) +{ + return use_facet >(__loc).is(ctype_base::upper, __c); +} + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +bool +islower(_CharT __c, const locale& __loc) +{ + return use_facet >(__loc).is(ctype_base::lower, __c); +} + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +bool +isalpha(_CharT __c, const locale& __loc) +{ + return use_facet >(__loc).is(ctype_base::alpha, __c); +} + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +bool +isdigit(_CharT __c, const locale& __loc) +{ + return use_facet >(__loc).is(ctype_base::digit, __c); +} + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +bool +ispunct(_CharT __c, const locale& __loc) +{ + return use_facet >(__loc).is(ctype_base::punct, __c); +} + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +bool +isxdigit(_CharT __c, const locale& __loc) +{ + return use_facet >(__loc).is(ctype_base::xdigit, __c); +} + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +bool +isalnum(_CharT __c, const locale& __loc) +{ + return use_facet >(__loc).is(ctype_base::alnum, __c); +} + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +bool +isgraph(_CharT __c, const locale& __loc) +{ + return use_facet >(__loc).is(ctype_base::graph, __c); +} + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +_CharT +toupper(_CharT __c, const locale& __loc) +{ + return use_facet >(__loc).toupper(__c); +} + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +_CharT +tolower(_CharT __c, const locale& __loc) +{ + return use_facet >(__loc).tolower(__c); +} + +// codecvt_base + +class _LIBCUDACXX_TYPE_VIS codecvt_base +{ +public: + _LIBCUDACXX_INLINE_VISIBILITY codecvt_base() {} + enum result {ok, partial, error, noconv}; +}; + +// template class codecvt; + +template class _LIBCUDACXX_TEMPLATE_VIS codecvt; + +// template <> class codecvt + +template <> +class _LIBCUDACXX_TYPE_VIS codecvt + : public locale::facet, + public codecvt_base +{ +public: + typedef char intern_type; + typedef char extern_type; + typedef mbstate_t state_type; + + _LIBCUDACXX_INLINE_VISIBILITY + explicit codecvt(size_t __refs = 0) + : locale::facet(__refs) {} + + _LIBCUDACXX_INLINE_VISIBILITY + result out(state_type& __st, + const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt, + extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const + { + return do_out(__st, __frm, __frm_end, __frm_nxt, __to, __to_end, __to_nxt); + } + + _LIBCUDACXX_INLINE_VISIBILITY + result unshift(state_type& __st, + extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const + { + return do_unshift(__st, __to, __to_end, __to_nxt); + } + + _LIBCUDACXX_INLINE_VISIBILITY + result in(state_type& __st, + const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt, + intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const + { + return do_in(__st, __frm, __frm_end, __frm_nxt, __to, __to_end, __to_nxt); + } + + _LIBCUDACXX_INLINE_VISIBILITY + int encoding() const _NOEXCEPT + { + return do_encoding(); + } + + _LIBCUDACXX_INLINE_VISIBILITY + bool always_noconv() const _NOEXCEPT + { + return do_always_noconv(); + } + + _LIBCUDACXX_INLINE_VISIBILITY + int length(state_type& __st, const extern_type* __frm, const extern_type* __end, size_t __mx) const + { + return do_length(__st, __frm, __end, __mx); + } + + _LIBCUDACXX_INLINE_VISIBILITY + int max_length() const _NOEXCEPT + { + return do_max_length(); + } + + static locale::id id; + +protected: + _LIBCUDACXX_INLINE_VISIBILITY + explicit codecvt(const char*, size_t __refs = 0) + : locale::facet(__refs) {} + + ~codecvt(); + + virtual result do_out(state_type& __st, + const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt, + extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const; + virtual result do_in(state_type& __st, + const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt, + intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const; + virtual result do_unshift(state_type& __st, + extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const; + virtual int do_encoding() const _NOEXCEPT; + virtual bool do_always_noconv() const _NOEXCEPT; + virtual int do_length(state_type& __st, const extern_type* __frm, const extern_type* __end, size_t __mx) const; + virtual int do_max_length() const _NOEXCEPT; +}; + +// template <> class codecvt + +template <> +class _LIBCUDACXX_TYPE_VIS codecvt + : public locale::facet, + public codecvt_base +{ + locale_t __l; +public: + typedef wchar_t intern_type; + typedef char extern_type; + typedef mbstate_t state_type; + + explicit codecvt(size_t __refs = 0); + + _LIBCUDACXX_INLINE_VISIBILITY + result out(state_type& __st, + const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt, + extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const + { + return do_out(__st, __frm, __frm_end, __frm_nxt, __to, __to_end, __to_nxt); + } + + _LIBCUDACXX_INLINE_VISIBILITY + result unshift(state_type& __st, + extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const + { + return do_unshift(__st, __to, __to_end, __to_nxt); + } + + _LIBCUDACXX_INLINE_VISIBILITY + result in(state_type& __st, + const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt, + intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const + { + return do_in(__st, __frm, __frm_end, __frm_nxt, __to, __to_end, __to_nxt); + } + + _LIBCUDACXX_INLINE_VISIBILITY + int encoding() const _NOEXCEPT + { + return do_encoding(); + } + + _LIBCUDACXX_INLINE_VISIBILITY + bool always_noconv() const _NOEXCEPT + { + return do_always_noconv(); + } + + _LIBCUDACXX_INLINE_VISIBILITY + int length(state_type& __st, const extern_type* __frm, const extern_type* __end, size_t __mx) const + { + return do_length(__st, __frm, __end, __mx); + } + + _LIBCUDACXX_INLINE_VISIBILITY + int max_length() const _NOEXCEPT + { + return do_max_length(); + } + + static locale::id id; + +protected: + explicit codecvt(const char*, size_t __refs = 0); + + ~codecvt(); + + virtual result do_out(state_type& __st, + const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt, + extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const; + virtual result do_in(state_type& __st, + const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt, + intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const; + virtual result do_unshift(state_type& __st, + extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const; + virtual int do_encoding() const _NOEXCEPT; + virtual bool do_always_noconv() const _NOEXCEPT; + virtual int do_length(state_type&, const extern_type* __frm, const extern_type* __end, size_t __mx) const; + virtual int do_max_length() const _NOEXCEPT; +}; + +// template <> class codecvt + +template <> +class _LIBCUDACXX_TYPE_VIS codecvt + : public locale::facet, + public codecvt_base +{ +public: + typedef char16_t intern_type; + typedef char extern_type; + typedef mbstate_t state_type; + + _LIBCUDACXX_INLINE_VISIBILITY + explicit codecvt(size_t __refs = 0) + : locale::facet(__refs) {} + + _LIBCUDACXX_INLINE_VISIBILITY + result out(state_type& __st, + const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt, + extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const + { + return do_out(__st, __frm, __frm_end, __frm_nxt, __to, __to_end, __to_nxt); + } + + _LIBCUDACXX_INLINE_VISIBILITY + result unshift(state_type& __st, + extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const + { + return do_unshift(__st, __to, __to_end, __to_nxt); + } + + _LIBCUDACXX_INLINE_VISIBILITY + result in(state_type& __st, + const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt, + intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const + { + return do_in(__st, __frm, __frm_end, __frm_nxt, __to, __to_end, __to_nxt); + } + + _LIBCUDACXX_INLINE_VISIBILITY + int encoding() const _NOEXCEPT + { + return do_encoding(); + } + + _LIBCUDACXX_INLINE_VISIBILITY + bool always_noconv() const _NOEXCEPT + { + return do_always_noconv(); + } + + _LIBCUDACXX_INLINE_VISIBILITY + int length(state_type& __st, const extern_type* __frm, const extern_type* __end, size_t __mx) const + { + return do_length(__st, __frm, __end, __mx); + } + + _LIBCUDACXX_INLINE_VISIBILITY + int max_length() const _NOEXCEPT + { + return do_max_length(); + } + + static locale::id id; + +protected: + _LIBCUDACXX_INLINE_VISIBILITY + explicit codecvt(const char*, size_t __refs = 0) + : locale::facet(__refs) {} + + ~codecvt(); + + virtual result do_out(state_type& __st, + const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt, + extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const; + virtual result do_in(state_type& __st, + const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt, + intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const; + virtual result do_unshift(state_type& __st, + extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const; + virtual int do_encoding() const _NOEXCEPT; + virtual bool do_always_noconv() const _NOEXCEPT; + virtual int do_length(state_type&, const extern_type* __frm, const extern_type* __end, size_t __mx) const; + virtual int do_max_length() const _NOEXCEPT; +}; + +// template <> class codecvt + +template <> +class _LIBCUDACXX_TYPE_VIS codecvt + : public locale::facet, + public codecvt_base +{ +public: + typedef char32_t intern_type; + typedef char extern_type; + typedef mbstate_t state_type; + + _LIBCUDACXX_INLINE_VISIBILITY + explicit codecvt(size_t __refs = 0) + : locale::facet(__refs) {} + + _LIBCUDACXX_INLINE_VISIBILITY + result out(state_type& __st, + const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt, + extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const + { + return do_out(__st, __frm, __frm_end, __frm_nxt, __to, __to_end, __to_nxt); + } + + _LIBCUDACXX_INLINE_VISIBILITY + result unshift(state_type& __st, + extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const + { + return do_unshift(__st, __to, __to_end, __to_nxt); + } + + _LIBCUDACXX_INLINE_VISIBILITY + result in(state_type& __st, + const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt, + intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const + { + return do_in(__st, __frm, __frm_end, __frm_nxt, __to, __to_end, __to_nxt); + } + + _LIBCUDACXX_INLINE_VISIBILITY + int encoding() const _NOEXCEPT + { + return do_encoding(); + } + + _LIBCUDACXX_INLINE_VISIBILITY + bool always_noconv() const _NOEXCEPT + { + return do_always_noconv(); + } + + _LIBCUDACXX_INLINE_VISIBILITY + int length(state_type& __st, const extern_type* __frm, const extern_type* __end, size_t __mx) const + { + return do_length(__st, __frm, __end, __mx); + } + + _LIBCUDACXX_INLINE_VISIBILITY + int max_length() const _NOEXCEPT + { + return do_max_length(); + } + + static locale::id id; + +protected: + _LIBCUDACXX_INLINE_VISIBILITY + explicit codecvt(const char*, size_t __refs = 0) + : locale::facet(__refs) {} + + ~codecvt(); + + virtual result do_out(state_type& __st, + const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt, + extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const; + virtual result do_in(state_type& __st, + const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt, + intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const; + virtual result do_unshift(state_type& __st, + extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const; + virtual int do_encoding() const _NOEXCEPT; + virtual bool do_always_noconv() const _NOEXCEPT; + virtual int do_length(state_type&, const extern_type* __frm, const extern_type* __end, size_t __mx) const; + virtual int do_max_length() const _NOEXCEPT; +}; + +// template class codecvt_byname + +template +class _LIBCUDACXX_TEMPLATE_VIS codecvt_byname + : public codecvt<_InternT, _ExternT, _StateT> +{ +public: + _LIBCUDACXX_INLINE_VISIBILITY + explicit codecvt_byname(const char* __nm, size_t __refs = 0) + : codecvt<_InternT, _ExternT, _StateT>(__nm, __refs) {} + _LIBCUDACXX_INLINE_VISIBILITY + explicit codecvt_byname(const string& __nm, size_t __refs = 0) + : codecvt<_InternT, _ExternT, _StateT>(__nm.c_str(), __refs) {} +protected: + ~codecvt_byname(); +}; + +template +codecvt_byname<_InternT, _ExternT, _StateT>::~codecvt_byname() +{ +} + +_LIBCUDACXX_EXTERN_TEMPLATE2(class _LIBCUDACXX_EXTERN_TEMPLATE_TYPE_VIS codecvt_byname) +_LIBCUDACXX_EXTERN_TEMPLATE2(class _LIBCUDACXX_EXTERN_TEMPLATE_TYPE_VIS codecvt_byname) +_LIBCUDACXX_EXTERN_TEMPLATE2(class _LIBCUDACXX_EXTERN_TEMPLATE_TYPE_VIS codecvt_byname) +_LIBCUDACXX_EXTERN_TEMPLATE2(class _LIBCUDACXX_EXTERN_TEMPLATE_TYPE_VIS codecvt_byname) + +template +struct __narrow_to_utf8 +{ + template + _OutputIterator + operator()(_OutputIterator __s, const _CharT* __wb, const _CharT* __we) const; +}; + +template <> +struct __narrow_to_utf8<8> +{ + template + _LIBCUDACXX_INLINE_VISIBILITY + _OutputIterator + operator()(_OutputIterator __s, const _CharT* __wb, const _CharT* __we) const + { + for (; __wb < __we; ++__wb, ++__s) + *__s = *__wb; + return __s; + } +}; + +template <> +struct _LIBCUDACXX_TEMPLATE_VIS __narrow_to_utf8<16> + : public codecvt +{ + _LIBCUDACXX_INLINE_VISIBILITY + __narrow_to_utf8() : codecvt(1) {} + + _LIBCUDACXX_EXPORTED_FROM_ABI ~__narrow_to_utf8(); + + template + _LIBCUDACXX_INLINE_VISIBILITY + _OutputIterator + operator()(_OutputIterator __s, const _CharT* __wb, const _CharT* __we) const + { + result __r = ok; + mbstate_t __mb; + while (__wb < __we && __r != error) + { + const int __sz = 32; + char __buf[__sz]; + char* __bn; + const char16_t* __wn = (const char16_t*)__wb; + __r = do_out(__mb, (const char16_t*)__wb, (const char16_t*)__we, __wn, + __buf, __buf+__sz, __bn); + if (__r == codecvt_base::error || __wn == (const char16_t*)__wb) + __throw_runtime_error("locale not supported"); + for (const char* __p = __buf; __p < __bn; ++__p, ++__s) + *__s = *__p; + __wb = (const _CharT*)__wn; + } + return __s; + } +}; + +template <> +struct _LIBCUDACXX_TEMPLATE_VIS __narrow_to_utf8<32> + : public codecvt +{ + _LIBCUDACXX_INLINE_VISIBILITY + __narrow_to_utf8() : codecvt(1) {} + + _LIBCUDACXX_EXPORTED_FROM_ABI ~__narrow_to_utf8(); + + template + _LIBCUDACXX_INLINE_VISIBILITY + _OutputIterator + operator()(_OutputIterator __s, const _CharT* __wb, const _CharT* __we) const + { + result __r = ok; + mbstate_t __mb; + while (__wb < __we && __r != error) + { + const int __sz = 32; + char __buf[__sz]; + char* __bn; + const char32_t* __wn = (const char32_t*)__wb; + __r = do_out(__mb, (const char32_t*)__wb, (const char32_t*)__we, __wn, + __buf, __buf+__sz, __bn); + if (__r == codecvt_base::error || __wn == (const char32_t*)__wb) + __throw_runtime_error("locale not supported"); + for (const char* __p = __buf; __p < __bn; ++__p, ++__s) + *__s = *__p; + __wb = (const _CharT*)__wn; + } + return __s; + } +}; + +template +struct __widen_from_utf8 +{ + template + _OutputIterator + operator()(_OutputIterator __s, const char* __nb, const char* __ne) const; +}; + +template <> +struct __widen_from_utf8<8> +{ + template + _LIBCUDACXX_INLINE_VISIBILITY + _OutputIterator + operator()(_OutputIterator __s, const char* __nb, const char* __ne) const + { + for (; __nb < __ne; ++__nb, ++__s) + *__s = *__nb; + return __s; + } +}; + +template <> +struct _LIBCUDACXX_TEMPLATE_VIS __widen_from_utf8<16> + : public codecvt +{ + _LIBCUDACXX_INLINE_VISIBILITY + __widen_from_utf8() : codecvt(1) {} + + _LIBCUDACXX_EXPORTED_FROM_ABI ~__widen_from_utf8(); + + template + _LIBCUDACXX_INLINE_VISIBILITY + _OutputIterator + operator()(_OutputIterator __s, const char* __nb, const char* __ne) const + { + result __r = ok; + mbstate_t __mb; + while (__nb < __ne && __r != error) + { + const int __sz = 32; + char16_t __buf[__sz]; + char16_t* __bn; + const char* __nn = __nb; + __r = do_in(__mb, __nb, __ne - __nb > __sz ? __nb+__sz : __ne, __nn, + __buf, __buf+__sz, __bn); + if (__r == codecvt_base::error || __nn == __nb) + __throw_runtime_error("locale not supported"); + for (const char16_t* __p = __buf; __p < __bn; ++__p, ++__s) + *__s = (wchar_t)*__p; + __nb = __nn; + } + return __s; + } +}; + +template <> +struct _LIBCUDACXX_TEMPLATE_VIS __widen_from_utf8<32> + : public codecvt +{ + _LIBCUDACXX_INLINE_VISIBILITY + __widen_from_utf8() : codecvt(1) {} + + _LIBCUDACXX_EXPORTED_FROM_ABI ~__widen_from_utf8(); + + template + _LIBCUDACXX_INLINE_VISIBILITY + _OutputIterator + operator()(_OutputIterator __s, const char* __nb, const char* __ne) const + { + result __r = ok; + mbstate_t __mb; + while (__nb < __ne && __r != error) + { + const int __sz = 32; + char32_t __buf[__sz]; + char32_t* __bn; + const char* __nn = __nb; + __r = do_in(__mb, __nb, __ne - __nb > __sz ? __nb+__sz : __ne, __nn, + __buf, __buf+__sz, __bn); + if (__r == codecvt_base::error || __nn == __nb) + __throw_runtime_error("locale not supported"); + for (const char32_t* __p = __buf; __p < __bn; ++__p, ++__s) + *__s = (wchar_t)*__p; + __nb = __nn; + } + return __s; + } +}; + +// template class numpunct + +template class _LIBCUDACXX_TEMPLATE_VIS numpunct; + +template <> +class _LIBCUDACXX_TYPE_VIS numpunct + : public locale::facet +{ +public: + typedef char char_type; + typedef basic_string string_type; + + explicit numpunct(size_t __refs = 0); + + _LIBCUDACXX_INLINE_VISIBILITY char_type decimal_point() const {return do_decimal_point();} + _LIBCUDACXX_INLINE_VISIBILITY char_type thousands_sep() const {return do_thousands_sep();} + _LIBCUDACXX_INLINE_VISIBILITY string grouping() const {return do_grouping();} + _LIBCUDACXX_INLINE_VISIBILITY string_type truename() const {return do_truename();} + _LIBCUDACXX_INLINE_VISIBILITY string_type falsename() const {return do_falsename();} + + static locale::id id; + +protected: + ~numpunct(); + virtual char_type do_decimal_point() const; + virtual char_type do_thousands_sep() const; + virtual string do_grouping() const; + virtual string_type do_truename() const; + virtual string_type do_falsename() const; + + char_type __decimal_point_; + char_type __thousands_sep_; + string __grouping_; +}; + +template <> +class _LIBCUDACXX_TYPE_VIS numpunct + : public locale::facet +{ +public: + typedef wchar_t char_type; + typedef basic_string string_type; + + explicit numpunct(size_t __refs = 0); + + _LIBCUDACXX_INLINE_VISIBILITY char_type decimal_point() const {return do_decimal_point();} + _LIBCUDACXX_INLINE_VISIBILITY char_type thousands_sep() const {return do_thousands_sep();} + _LIBCUDACXX_INLINE_VISIBILITY string grouping() const {return do_grouping();} + _LIBCUDACXX_INLINE_VISIBILITY string_type truename() const {return do_truename();} + _LIBCUDACXX_INLINE_VISIBILITY string_type falsename() const {return do_falsename();} + + static locale::id id; + +protected: + ~numpunct(); + virtual char_type do_decimal_point() const; + virtual char_type do_thousands_sep() const; + virtual string do_grouping() const; + virtual string_type do_truename() const; + virtual string_type do_falsename() const; + + char_type __decimal_point_; + char_type __thousands_sep_; + string __grouping_; +}; + +// template class numpunct_byname + +template class _LIBCUDACXX_TEMPLATE_VIS numpunct_byname; + +template <> +class _LIBCUDACXX_TYPE_VIS numpunct_byname +: public numpunct +{ +public: + typedef char char_type; + typedef basic_string string_type; + + explicit numpunct_byname(const char* __nm, size_t __refs = 0); + explicit numpunct_byname(const string& __nm, size_t __refs = 0); + +protected: + ~numpunct_byname(); + +private: + void __init(const char*); +}; + +template <> +class _LIBCUDACXX_TYPE_VIS numpunct_byname +: public numpunct +{ +public: + typedef wchar_t char_type; + typedef basic_string string_type; + + explicit numpunct_byname(const char* __nm, size_t __refs = 0); + explicit numpunct_byname(const string& __nm, size_t __refs = 0); + +protected: + ~numpunct_byname(); + +private: + void __init(const char*); +}; + +_LIBCUDACXX_END_NAMESPACE_STD + +#endif // _LIBCUDACXX___LOCALE diff --git a/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__mutex_base b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__mutex_base new file mode 100644 index 0000000000000000000000000000000000000000..bae7c7c210c336017f945dbee27e22d5adccc154 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__mutex_base @@ -0,0 +1,541 @@ +// -*- C++ -*- +//===----------------------------------------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef _LIBCUDACXX___MUTEX_BASE +#define _LIBCUDACXX___MUTEX_BASE + +#include <__config> +#include +#include +#include <__threading_support> + +#include + +#if defined(_LIBCUDACXX_USE_PRAGMA_GCC_SYSTEM_HEADER) +#pragma GCC system_header +#endif + +_LIBCUDACXX_PUSH_MACROS +#include <__undef_macros> + + +_LIBCUDACXX_BEGIN_NAMESPACE_STD + +#ifndef _LIBCUDACXX_HAS_NO_THREADS + +#ifndef _LIBCUDACXX_THREAD_SAFETY_ANNOTATION +# ifdef _LIBCUDACXX_HAS_THREAD_SAFETY_ANNOTATIONS +# define _LIBCUDACXX_THREAD_SAFETY_ANNOTATION(x) __attribute__((x)) +# else +# define _LIBCUDACXX_THREAD_SAFETY_ANNOTATION(x) +# endif +#endif // _LIBCUDACXX_THREAD_SAFETY_ANNOTATION + + +class _LIBCUDACXX_TYPE_VIS _LIBCUDACXX_THREAD_SAFETY_ANNOTATION(capability("mutex")) mutex +{ + __libcpp_mutex_t __m_ = _LIBCUDACXX_MUTEX_INITIALIZER; + +public: + _LIBCUDACXX_INLINE_VISIBILITY + _LIBCUDACXX_CONSTEXPR mutex() = default; + + mutex(const mutex&) = delete; + mutex& operator=(const mutex&) = delete; + +#if defined(_LIBCUDACXX_HAS_TRIVIAL_MUTEX_DESTRUCTION) + ~mutex() = default; +#else + ~mutex() _NOEXCEPT; +#endif + + void lock() _LIBCUDACXX_THREAD_SAFETY_ANNOTATION(acquire_capability()); + bool try_lock() _NOEXCEPT _LIBCUDACXX_THREAD_SAFETY_ANNOTATION(try_acquire_capability(true)); + void unlock() _NOEXCEPT _LIBCUDACXX_THREAD_SAFETY_ANNOTATION(release_capability()); + + typedef __libcpp_mutex_t* native_handle_type; + _LIBCUDACXX_INLINE_VISIBILITY native_handle_type native_handle() {return &__m_;} +}; + +static_assert(is_nothrow_default_constructible::value, + "the default constructor for std::mutex must be nothrow"); + +struct _LIBCUDACXX_TYPE_VIS defer_lock_t { explicit defer_lock_t() = default; }; +struct _LIBCUDACXX_TYPE_VIS try_to_lock_t { explicit try_to_lock_t() = default; }; +struct _LIBCUDACXX_TYPE_VIS adopt_lock_t { explicit adopt_lock_t() = default; }; + +#if defined(_LIBCUDACXX_CXX03_LANG) || defined(_LIBCUDACXX_BUILDING_LIBRARY) + +extern _LIBCUDACXX_EXPORTED_FROM_ABI const defer_lock_t defer_lock; +extern _LIBCUDACXX_EXPORTED_FROM_ABI const try_to_lock_t try_to_lock; +extern _LIBCUDACXX_EXPORTED_FROM_ABI const adopt_lock_t adopt_lock; + +#else + +/* _LIBCUDACXX_INLINE_VAR */ constexpr defer_lock_t defer_lock = defer_lock_t(); +/* _LIBCUDACXX_INLINE_VAR */ constexpr try_to_lock_t try_to_lock = try_to_lock_t(); +/* _LIBCUDACXX_INLINE_VAR */ constexpr adopt_lock_t adopt_lock = adopt_lock_t(); + +#endif + +template +class _LIBCUDACXX_TEMPLATE_VIS _LIBCUDACXX_THREAD_SAFETY_ANNOTATION(scoped_lockable) +lock_guard +{ +public: + typedef _Mutex mutex_type; + +private: + mutex_type& __m_; +public: + + _LIBCUDACXX_NODISCARD_EXT _LIBCUDACXX_INLINE_VISIBILITY + explicit lock_guard(mutex_type& __m) _LIBCUDACXX_THREAD_SAFETY_ANNOTATION(acquire_capability(__m)) + : __m_(__m) {__m_.lock();} + + _LIBCUDACXX_NODISCARD_EXT _LIBCUDACXX_INLINE_VISIBILITY + lock_guard(mutex_type& __m, adopt_lock_t) _LIBCUDACXX_THREAD_SAFETY_ANNOTATION(requires_capability(__m)) + : __m_(__m) {} + _LIBCUDACXX_INLINE_VISIBILITY + ~lock_guard() _LIBCUDACXX_THREAD_SAFETY_ANNOTATION(release_capability()) {__m_.unlock();} + +private: + lock_guard(lock_guard const&) _LIBCUDACXX_EQUAL_DELETE; + lock_guard& operator=(lock_guard const&) _LIBCUDACXX_EQUAL_DELETE; +}; + +template +class _LIBCUDACXX_TEMPLATE_VIS unique_lock +{ +public: + typedef _Mutex mutex_type; + +private: + mutex_type* __m_; + bool __owns_; + +public: + _LIBCUDACXX_INLINE_VISIBILITY + unique_lock() _NOEXCEPT : __m_(nullptr), __owns_(false) {} + _LIBCUDACXX_INLINE_VISIBILITY + explicit unique_lock(mutex_type& __m) + : __m_(_CUDA_VSTD::addressof(__m)), __owns_(true) {__m_->lock();} + _LIBCUDACXX_INLINE_VISIBILITY + unique_lock(mutex_type& __m, defer_lock_t) _NOEXCEPT + : __m_(_CUDA_VSTD::addressof(__m)), __owns_(false) {} + _LIBCUDACXX_INLINE_VISIBILITY + unique_lock(mutex_type& __m, try_to_lock_t) + : __m_(_CUDA_VSTD::addressof(__m)), __owns_(__m.try_lock()) {} + _LIBCUDACXX_INLINE_VISIBILITY + unique_lock(mutex_type& __m, adopt_lock_t) + : __m_(_CUDA_VSTD::addressof(__m)), __owns_(true) {} + template + _LIBCUDACXX_INLINE_VISIBILITY + unique_lock(mutex_type& __m, const chrono::time_point<_Clock, _Duration>& __t) + : __m_(_CUDA_VSTD::addressof(__m)), __owns_(__m.try_lock_until(__t)) {} + template + _LIBCUDACXX_INLINE_VISIBILITY + unique_lock(mutex_type& __m, const chrono::duration<_Rep, _Period>& __d) + : __m_(_CUDA_VSTD::addressof(__m)), __owns_(__m.try_lock_for(__d)) {} + _LIBCUDACXX_INLINE_VISIBILITY + ~unique_lock() + { + if (__owns_) + __m_->unlock(); + } + +private: + unique_lock(unique_lock const&); // = delete; + unique_lock& operator=(unique_lock const&); // = delete; + +public: +#ifndef _LIBCUDACXX_CXX03_LANG + _LIBCUDACXX_INLINE_VISIBILITY + unique_lock(unique_lock&& __u) _NOEXCEPT + : __m_(__u.__m_), __owns_(__u.__owns_) + {__u.__m_ = nullptr; __u.__owns_ = false;} + _LIBCUDACXX_INLINE_VISIBILITY + unique_lock& operator=(unique_lock&& __u) _NOEXCEPT + { + if (__owns_) + __m_->unlock(); + __m_ = __u.__m_; + __owns_ = __u.__owns_; + __u.__m_ = nullptr; + __u.__owns_ = false; + return *this; + } + +#endif // _LIBCUDACXX_CXX03_LANG + + void lock(); + bool try_lock(); + + template + bool try_lock_for(const chrono::duration<_Rep, _Period>& __d); + template + bool try_lock_until(const chrono::time_point<_Clock, _Duration>& __t); + + void unlock(); + + _LIBCUDACXX_INLINE_VISIBILITY + void swap(unique_lock& __u) _NOEXCEPT + { + _CUDA_VSTD::swap(__m_, __u.__m_); + _CUDA_VSTD::swap(__owns_, __u.__owns_); + } + _LIBCUDACXX_INLINE_VISIBILITY + mutex_type* release() _NOEXCEPT + { + mutex_type* __m = __m_; + __m_ = nullptr; + __owns_ = false; + return __m; + } + + _LIBCUDACXX_INLINE_VISIBILITY + bool owns_lock() const _NOEXCEPT {return __owns_;} + _LIBCUDACXX_INLINE_VISIBILITY + _LIBCUDACXX_EXPLICIT + operator bool () const _NOEXCEPT {return __owns_;} + _LIBCUDACXX_INLINE_VISIBILITY + mutex_type* mutex() const _NOEXCEPT {return __m_;} +}; + +template +void +unique_lock<_Mutex>::lock() +{ + if (__m_ == nullptr) + __throw_system_error(EPERM, "unique_lock::lock: references null mutex"); + if (__owns_) + __throw_system_error(EDEADLK, "unique_lock::lock: already locked"); + __m_->lock(); + __owns_ = true; +} + +template +bool +unique_lock<_Mutex>::try_lock() +{ + if (__m_ == nullptr) + __throw_system_error(EPERM, "unique_lock::try_lock: references null mutex"); + if (__owns_) + __throw_system_error(EDEADLK, "unique_lock::try_lock: already locked"); + __owns_ = __m_->try_lock(); + return __owns_; +} + +template +template +bool +unique_lock<_Mutex>::try_lock_for(const chrono::duration<_Rep, _Period>& __d) +{ + if (__m_ == nullptr) + __throw_system_error(EPERM, "unique_lock::try_lock_for: references null mutex"); + if (__owns_) + __throw_system_error(EDEADLK, "unique_lock::try_lock_for: already locked"); + __owns_ = __m_->try_lock_for(__d); + return __owns_; +} + +template +template +bool +unique_lock<_Mutex>::try_lock_until(const chrono::time_point<_Clock, _Duration>& __t) +{ + if (__m_ == nullptr) + __throw_system_error(EPERM, "unique_lock::try_lock_until: references null mutex"); + if (__owns_) + __throw_system_error(EDEADLK, "unique_lock::try_lock_until: already locked"); + __owns_ = __m_->try_lock_until(__t); + return __owns_; +} + +template +void +unique_lock<_Mutex>::unlock() +{ + if (!__owns_) + __throw_system_error(EPERM, "unique_lock::unlock: not locked"); + __m_->unlock(); + __owns_ = false; +} + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +void +swap(unique_lock<_Mutex>& __x, unique_lock<_Mutex>& __y) _NOEXCEPT + {__x.swap(__y);} + +//enum class cv_status +_LIBCUDACXX_DECLARE_STRONG_ENUM(cv_status) +{ + no_timeout, + timeout +}; +_LIBCUDACXX_DECLARE_STRONG_ENUM_EPILOG(cv_status) + +class _LIBCUDACXX_TYPE_VIS condition_variable +{ + __libcpp_condvar_t __cv_ = _LIBCUDACXX_CONDVAR_INITIALIZER; +public: + _LIBCUDACXX_INLINE_VISIBILITY + _LIBCUDACXX_CONSTEXPR condition_variable() _NOEXCEPT = default; + +#ifdef _LIBCUDACXX_HAS_TRIVIAL_CONDVAR_DESTRUCTION + ~condition_variable() = default; +#else + ~condition_variable(); +#endif + + condition_variable(const condition_variable&) = delete; + condition_variable& operator=(const condition_variable&) = delete; + + void notify_one() _NOEXCEPT; + void notify_all() _NOEXCEPT; + + void wait(unique_lock& __lk) _NOEXCEPT; + template + _LIBCUDACXX_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS + void wait(unique_lock& __lk, _Predicate __pred); + + template + _LIBCUDACXX_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS + cv_status + wait_until(unique_lock& __lk, + const chrono::time_point<_Clock, _Duration>& __t); + + template + _LIBCUDACXX_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS + bool + wait_until(unique_lock& __lk, + const chrono::time_point<_Clock, _Duration>& __t, + _Predicate __pred); + + template + _LIBCUDACXX_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS + cv_status + wait_for(unique_lock& __lk, + const chrono::duration<_Rep, _Period>& __d); + + template + bool + _LIBCUDACXX_INLINE_VISIBILITY + wait_for(unique_lock& __lk, + const chrono::duration<_Rep, _Period>& __d, + _Predicate __pred); + + typedef __libcpp_condvar_t* native_handle_type; + _LIBCUDACXX_INLINE_VISIBILITY native_handle_type native_handle() {return &__cv_;} + +private: + void __do_timed_wait(unique_lock& __lk, + chrono::time_point) _NOEXCEPT; +#if defined(_LIBCUDACXX_HAS_COND_CLOCKWAIT) + void __do_timed_wait(unique_lock& __lk, + chrono::time_point) _NOEXCEPT; +#endif + template + void __do_timed_wait(unique_lock& __lk, + chrono::time_point<_Clock, chrono::nanoseconds>) _NOEXCEPT; +}; +#endif // !_LIBCUDACXX_HAS_NO_THREADS + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +typename enable_if +< + is_floating_point<_Rep>::value, + chrono::nanoseconds +>::type +__safe_nanosecond_cast(chrono::duration<_Rep, _Period> __d) +{ + using namespace chrono; + using __ratio = ratio_divide<_Period, nano>; + using __ns_rep = nanoseconds::rep; + _Rep __result_float = __d.count() * __ratio::num / __ratio::den; + + _Rep __result_max = numeric_limits<__ns_rep>::max(); + if (__result_float >= __result_max) { + return nanoseconds::max(); + } + + _Rep __result_min = numeric_limits<__ns_rep>::min(); + if (__result_float <= __result_min) { + return nanoseconds::min(); + } + + return nanoseconds(static_cast<__ns_rep>(__result_float)); +} + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +typename enable_if +< + !is_floating_point<_Rep>::value, + chrono::nanoseconds +>::type +__safe_nanosecond_cast(chrono::duration<_Rep, _Period> __d) +{ + using namespace chrono; + if (__d.count() == 0) { + return nanoseconds(0); + } + + using __ratio = ratio_divide<_Period, nano>; + using __ns_rep = nanoseconds::rep; + __ns_rep __result_max = std::numeric_limits<__ns_rep>::max(); + if (__d.count() > 0 && __d.count() > __result_max / __ratio::num) { + return nanoseconds::max(); + } + + __ns_rep __result_min = std::numeric_limits<__ns_rep>::min(); + if (__d.count() < 0 && __d.count() < __result_min / __ratio::num) { + return nanoseconds::min(); + } + + __ns_rep __result = __d.count() * __ratio::num / __ratio::den; + if (__result == 0) { + return nanoseconds(1); + } + + return nanoseconds(__result); +} + +#ifndef _LIBCUDACXX_HAS_NO_THREADS +template +void +condition_variable::wait(unique_lock& __lk, _Predicate __pred) +{ + while (!__pred()) + wait(__lk); +} + +template +cv_status +condition_variable::wait_until(unique_lock& __lk, + const chrono::time_point<_Clock, _Duration>& __t) +{ + using namespace chrono; + using __clock_tp_ns = time_point<_Clock, nanoseconds>; + + typename _Clock::time_point __now = _Clock::now(); + if (__t <= __now) + return cv_status::timeout; + + __clock_tp_ns __t_ns = __clock_tp_ns(__safe_nanosecond_cast(__t.time_since_epoch())); + + __do_timed_wait(__lk, __t_ns); + return _Clock::now() < __t ? cv_status::no_timeout : cv_status::timeout; +} + +template +bool +condition_variable::wait_until(unique_lock& __lk, + const chrono::time_point<_Clock, _Duration>& __t, + _Predicate __pred) +{ + while (!__pred()) + { + if (wait_until(__lk, __t) == cv_status::timeout) + return __pred(); + } + return true; +} + +template +cv_status +condition_variable::wait_for(unique_lock& __lk, + const chrono::duration<_Rep, _Period>& __d) +{ + using namespace chrono; + if (__d <= __d.zero()) + return cv_status::timeout; + using __ns_rep = nanoseconds::rep; + steady_clock::time_point __c_now = steady_clock::now(); + +#if defined(_LIBCUDACXX_HAS_COND_CLOCKWAIT) + using __clock_tp_ns = time_point; + __ns_rep __now_count_ns = __safe_nanosecond_cast(__c_now.time_since_epoch()).count(); +#else + using __clock_tp_ns = time_point; + __ns_rep __now_count_ns = __safe_nanosecond_cast(system_clock::now().time_since_epoch()).count(); +#endif + + __ns_rep __d_ns_count = __safe_nanosecond_cast(__d).count(); + + if (__now_count_ns > numeric_limits<__ns_rep>::max() - __d_ns_count) { + __do_timed_wait(__lk, __clock_tp_ns::max()); + } else { + __do_timed_wait(__lk, __clock_tp_ns(nanoseconds(__now_count_ns + __d_ns_count))); + } + + return steady_clock::now() - __c_now < __d ? cv_status::no_timeout : + cv_status::timeout; +} + +template +inline +bool +condition_variable::wait_for(unique_lock& __lk, + const chrono::duration<_Rep, _Period>& __d, + _Predicate __pred) +{ + return wait_until(__lk, chrono::steady_clock::now() + __d, + _CUDA_VSTD::move(__pred)); +} + +#if defined(_LIBCUDACXX_HAS_COND_CLOCKWAIT) +inline +void +condition_variable::__do_timed_wait(unique_lock& __lk, + chrono::time_point __tp) _NOEXCEPT +{ + using namespace chrono; + if (!__lk.owns_lock()) + __throw_system_error(EPERM, + "condition_variable::timed wait: mutex not locked"); + nanoseconds __d = __tp.time_since_epoch(); + timespec __ts; + seconds __s = duration_cast(__d); + using __ts_sec = decltype(__ts.tv_sec); + const __ts_sec __ts_sec_max = numeric_limits<__ts_sec>::max(); + if (__s.count() < __ts_sec_max) + { + __ts.tv_sec = static_cast<__ts_sec>(__s.count()); + __ts.tv_nsec = (__d - __s).count(); + } + else + { + __ts.tv_sec = __ts_sec_max; + __ts.tv_nsec = giga::num - 1; + } + int __ec = pthread_cond_clockwait(&__cv_, __lk.mutex()->native_handle(), CLOCK_MONOTONIC, &__ts); + if (__ec != 0 && __ec != ETIMEDOUT) + __throw_system_error(__ec, "condition_variable timed_wait failed"); +} +#endif // _LIBCUDACXX_HAS_COND_CLOCKWAIT + +template +inline +void +condition_variable::__do_timed_wait(unique_lock& __lk, + chrono::time_point<_Clock, chrono::nanoseconds> __tp) _NOEXCEPT +{ + wait_for(__lk, __tp - _Clock::now()); +} + +#endif // !_LIBCUDACXX_HAS_NO_THREADS + +_LIBCUDACXX_END_NAMESPACE_STD + +_LIBCUDACXX_POP_MACROS + +#endif // _LIBCUDACXX___MUTEX_BASE diff --git a/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__node_handle b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__node_handle new file mode 100644 index 0000000000000000000000000000000000000000..7a6e61af049b9c532ea50e45aed2e6b6949e0e49 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__node_handle @@ -0,0 +1,208 @@ +// -*- C++ -*- +//===----------------------------------------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef _LIBCUDACXX___NODE_HANDLE +#define _LIBCUDACXX___NODE_HANDLE + +#include <__config> +#include +#include + +#if defined(_LIBCUDACXX_USE_PRAGMA_GCC_SYSTEM_HEADER) +#pragma GCC system_header +#endif + +_LIBCUDACXX_PUSH_MACROS +#include <__undef_macros> + +_LIBCUDACXX_BEGIN_NAMESPACE_STD + +#if _LIBCUDACXX_STD_VER > 14 + +// Specialized in __tree & __hash_table for their _NodeType. +template +struct __generic_container_node_destructor; + +template class _MapOrSetSpecifics> +class _LIBCUDACXX_TEMPLATE_VIS __basic_node_handle + : public _MapOrSetSpecifics< + _NodeType, + __basic_node_handle<_NodeType, _Alloc, _MapOrSetSpecifics>> +{ + template + friend class __tree; + template + friend class __hash_table; + friend struct _MapOrSetSpecifics< + _NodeType, __basic_node_handle<_NodeType, _Alloc, _MapOrSetSpecifics>>; + + typedef allocator_traits<_Alloc> __alloc_traits; + typedef typename __rebind_pointer::type + __node_pointer_type; + +public: + typedef _Alloc allocator_type; + +private: + __node_pointer_type __ptr_ = nullptr; + optional __alloc_; + + _LIBCUDACXX_INLINE_VISIBILITY + void __release_ptr() + { + __ptr_ = nullptr; + __alloc_ = _CUDA_VSTD::nullopt; + } + + _LIBCUDACXX_INLINE_VISIBILITY + void __destroy_node_pointer() + { + if (__ptr_ != nullptr) + { + typedef typename __allocator_traits_rebind< + allocator_type, _NodeType>::type __node_alloc_type; + __node_alloc_type __alloc(*__alloc_); + __generic_container_node_destructor<_NodeType, __node_alloc_type>( + __alloc, true)(__ptr_); + __ptr_ = nullptr; + } + } + + _LIBCUDACXX_INLINE_VISIBILITY + __basic_node_handle(__node_pointer_type __ptr, + allocator_type const& __alloc) + : __ptr_(__ptr), __alloc_(__alloc) + { + } + +public: + _LIBCUDACXX_INLINE_VISIBILITY + __basic_node_handle() = default; + + _LIBCUDACXX_INLINE_VISIBILITY + __basic_node_handle(__basic_node_handle&& __other) noexcept + : __ptr_(__other.__ptr_), + __alloc_(_CUDA_VSTD::move(__other.__alloc_)) + { + __other.__ptr_ = nullptr; + __other.__alloc_ = _CUDA_VSTD::nullopt; + } + + _LIBCUDACXX_INLINE_VISIBILITY + __basic_node_handle& operator=(__basic_node_handle&& __other) + { + _LIBCUDACXX_ASSERT( + __alloc_ == _CUDA_VSTD::nullopt || + __alloc_traits::propagate_on_container_move_assignment::value || + __alloc_ == __other.__alloc_, + "node_type with incompatible allocator passed to " + "node_type::operator=(node_type&&)"); + + __destroy_node_pointer(); + __ptr_ = __other.__ptr_; + + if (__alloc_traits::propagate_on_container_move_assignment::value || + __alloc_ == _CUDA_VSTD::nullopt) + __alloc_ = _CUDA_VSTD::move(__other.__alloc_); + + __other.__ptr_ = nullptr; + __other.__alloc_ = _CUDA_VSTD::nullopt; + + return *this; + } + + _LIBCUDACXX_INLINE_VISIBILITY + allocator_type get_allocator() const { return *__alloc_; } + + _LIBCUDACXX_INLINE_VISIBILITY + explicit operator bool() const { return __ptr_ != nullptr; } + + _LIBCUDACXX_NODISCARD_AFTER_CXX17 _LIBCUDACXX_INLINE_VISIBILITY + bool empty() const { return __ptr_ == nullptr; } + + _LIBCUDACXX_INLINE_VISIBILITY + void swap(__basic_node_handle& __other) noexcept( + __alloc_traits::propagate_on_container_swap::value || + __alloc_traits::is_always_equal::value) + { + using _CUDA_VSTD::swap; + swap(__ptr_, __other.__ptr_); + if (__alloc_traits::propagate_on_container_swap::value || + __alloc_ == _CUDA_VSTD::nullopt || __other.__alloc_ == _CUDA_VSTD::nullopt) + swap(__alloc_, __other.__alloc_); + } + + _LIBCUDACXX_INLINE_VISIBILITY + friend void swap(__basic_node_handle& __a, __basic_node_handle& __b) + noexcept(noexcept(__a.swap(__b))) { __a.swap(__b); } + + _LIBCUDACXX_INLINE_VISIBILITY + ~__basic_node_handle() + { + __destroy_node_pointer(); + } +}; + +template +struct __set_node_handle_specifics +{ + typedef typename _NodeType::__node_value_type value_type; + + _LIBCUDACXX_INLINE_VISIBILITY + value_type& value() const + { + return static_cast<_Derived const*>(this)->__ptr_->__value_; + } +}; + +template +struct __map_node_handle_specifics +{ + typedef typename _NodeType::__node_value_type::key_type key_type; + typedef typename _NodeType::__node_value_type::mapped_type mapped_type; + + _LIBCUDACXX_INLINE_VISIBILITY + key_type& key() const + { + return static_cast<_Derived const*>(this)-> + __ptr_->__value_.__ref().first; + } + + _LIBCUDACXX_INLINE_VISIBILITY + mapped_type& mapped() const + { + return static_cast<_Derived const*>(this)-> + __ptr_->__value_.__ref().second; + } +}; + +template +using __set_node_handle = + __basic_node_handle< _NodeType, _Alloc, __set_node_handle_specifics>; + +template +using __map_node_handle = + __basic_node_handle< _NodeType, _Alloc, __map_node_handle_specifics>; + +template +struct _LIBCUDACXX_TEMPLATE_VIS __insert_return_type +{ + _Iterator position; + bool inserted; + _NodeType node; +}; + +#endif // _LIBCUDACXX_STD_VER > 14 + +_LIBCUDACXX_END_NAMESPACE_STD +_LIBCUDACXX_POP_MACROS + +#endif diff --git a/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__nullptr b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__nullptr new file mode 100644 index 0000000000000000000000000000000000000000..bf3c3c385ac8c3ce15fb0d0761ee3313a79a6a13 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__nullptr @@ -0,0 +1,61 @@ +// -*- C++ -*- +//===--------------------------- __nullptr --------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef _LIBCUDACXX_NULLPTR +#define _LIBCUDACXX_NULLPTR + +#include <__config> + +#if defined(_LIBCUDACXX_USE_PRAGMA_GCC_SYSTEM_HEADER) +#pragma GCC system_header +#endif + +#ifdef _LIBCUDACXX_HAS_NO_NULLPTR + +_LIBCUDACXX_BEGIN_NAMESPACE_STD + +struct _LIBCUDACXX_TEMPLATE_VIS nullptr_t +{ + void* __lx; + + struct __nat {int __for_bool_;}; + + _LIBCUDACXX_INLINE_VISIBILITY _LIBCUDACXX_CONSTEXPR nullptr_t() : __lx(0) {} + _LIBCUDACXX_INLINE_VISIBILITY _LIBCUDACXX_CONSTEXPR nullptr_t(int __nat::*) : __lx(0) {} + + _LIBCUDACXX_INLINE_VISIBILITY _LIBCUDACXX_CONSTEXPR operator int __nat::*() const {return 0;} + + template + _LIBCUDACXX_INLINE_VISIBILITY _LIBCUDACXX_CONSTEXPR + operator _Tp* () const {return 0;} + + template + _LIBCUDACXX_INLINE_VISIBILITY + operator _Tp _Up::* () const {return 0;} + + friend _LIBCUDACXX_INLINE_VISIBILITY _LIBCUDACXX_CONSTEXPR bool operator==(nullptr_t, nullptr_t) {return true;} + friend _LIBCUDACXX_INLINE_VISIBILITY _LIBCUDACXX_CONSTEXPR bool operator!=(nullptr_t, nullptr_t) {return false;} +}; + +inline _LIBCUDACXX_INLINE_VISIBILITY _LIBCUDACXX_CONSTEXPR nullptr_t __get_nullptr_t() {return nullptr_t(0);} + +#define nullptr _CUDA_VSTD::__get_nullptr_t() + +_LIBCUDACXX_END_NAMESPACE_STD + +#else // _LIBCUDACXX_HAS_NO_NULLPTR + +namespace std +{ + typedef decltype(nullptr) nullptr_t; +} + +#endif // _LIBCUDACXX_HAS_NO_NULLPTR + +#endif // _LIBCUDACXX_NULLPTR diff --git a/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__pragma_pop b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__pragma_pop new file mode 100644 index 0000000000000000000000000000000000000000..27a9a68b4e602ed989631ee2b8f7383c6a79d1c7 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__pragma_pop @@ -0,0 +1,16 @@ +// -*- C++ -*- +//===---------------------------- chrono ----------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#if defined(_LIBCUDACXX_USE_PRAGMA_MSVC_WARNING) + #pragma warning(pop) +#endif + +#if defined(_LIBCUDACXX_POP_MACROS) + _LIBCUDACXX_POP_MACROS +#endif diff --git a/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__pragma_push b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__pragma_push new file mode 100644 index 0000000000000000000000000000000000000000..ad34a38d936492d1da0116628d7a9379b50acb13 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__pragma_push @@ -0,0 +1,25 @@ +// -*- C++ -*- +//===---------------------------- chrono ----------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#if defined(_LIBCUDACXX_USE_PRAGMA_GCC_SYSTEM_HEADER) + #pragma GCC system_header +#endif + +#if defined(_LIBCUDACXX_USE_PRAGMA_MSVC_WARNING) + #pragma warning(push) + #pragma warning(disable : _LIBCUDACXX_MSVC_DISABLED_WARNINGS) +#endif + +#if defined(_LIBCUDACXX_PUSH_MACROS) + _LIBCUDACXX_PUSH_MACROS +#endif + +#ifndef __cuda_std__ +#include <__undef_macros> +#endif diff --git a/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__split_buffer b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__split_buffer new file mode 100644 index 0000000000000000000000000000000000000000..d303f9478fbb9510bcd384164bdecda535b66839 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__split_buffer @@ -0,0 +1,644 @@ +// -*- C++ -*- +#ifndef _LIBCUDACXX_SPLIT_BUFFER +#define _LIBCUDACXX_SPLIT_BUFFER + +#include <__config> +#include +#include + +#if defined(_LIBCUDACXX_USE_PRAGMA_GCC_SYSTEM_HEADER) +#pragma GCC system_header +#endif + +_LIBCUDACXX_PUSH_MACROS +#include <__undef_macros> + + +_LIBCUDACXX_BEGIN_NAMESPACE_STD + +template +class __split_buffer_common +{ +protected: + void __throw_length_error() const; + void __throw_out_of_range() const; +}; + +template > +struct __split_buffer + : private __split_buffer_common +{ +private: + __split_buffer(const __split_buffer&); + __split_buffer& operator=(const __split_buffer&); +public: + typedef _Tp value_type; + typedef _Allocator allocator_type; + typedef typename remove_reference::type __alloc_rr; + typedef allocator_traits<__alloc_rr> __alloc_traits; + typedef value_type& reference; + typedef const value_type& const_reference; + typedef typename __alloc_traits::size_type size_type; + typedef typename __alloc_traits::difference_type difference_type; + typedef typename __alloc_traits::pointer pointer; + typedef typename __alloc_traits::const_pointer const_pointer; + typedef pointer iterator; + typedef const_pointer const_iterator; + + pointer __first_; + pointer __begin_; + pointer __end_; + __compressed_pair __end_cap_; + + typedef typename add_lvalue_reference::type __alloc_ref; + typedef typename add_lvalue_reference::type __alloc_const_ref; + + _LIBCUDACXX_INLINE_VISIBILITY __alloc_rr& __alloc() _NOEXCEPT {return __end_cap_.second();} + _LIBCUDACXX_INLINE_VISIBILITY const __alloc_rr& __alloc() const _NOEXCEPT {return __end_cap_.second();} + _LIBCUDACXX_INLINE_VISIBILITY pointer& __end_cap() _NOEXCEPT {return __end_cap_.first();} + _LIBCUDACXX_INLINE_VISIBILITY const pointer& __end_cap() const _NOEXCEPT {return __end_cap_.first();} + + _LIBCUDACXX_INLINE_VISIBILITY + __split_buffer() + _NOEXCEPT_(is_nothrow_default_constructible::value); + _LIBCUDACXX_INLINE_VISIBILITY + explicit __split_buffer(__alloc_rr& __a); + _LIBCUDACXX_INLINE_VISIBILITY + explicit __split_buffer(const __alloc_rr& __a); + __split_buffer(size_type __cap, size_type __start, __alloc_rr& __a); + ~__split_buffer(); + +#ifndef _LIBCUDACXX_CXX03_LANG + __split_buffer(__split_buffer&& __c) + _NOEXCEPT_(is_nothrow_move_constructible::value); + __split_buffer(__split_buffer&& __c, const __alloc_rr& __a); + __split_buffer& operator=(__split_buffer&& __c) + _NOEXCEPT_((__alloc_traits::propagate_on_container_move_assignment::value && + is_nothrow_move_assignable::value) || + !__alloc_traits::propagate_on_container_move_assignment::value); +#endif // _LIBCUDACXX_CXX03_LANG + + _LIBCUDACXX_INLINE_VISIBILITY iterator begin() _NOEXCEPT {return __begin_;} + _LIBCUDACXX_INLINE_VISIBILITY const_iterator begin() const _NOEXCEPT {return __begin_;} + _LIBCUDACXX_INLINE_VISIBILITY iterator end() _NOEXCEPT {return __end_;} + _LIBCUDACXX_INLINE_VISIBILITY const_iterator end() const _NOEXCEPT {return __end_;} + + _LIBCUDACXX_INLINE_VISIBILITY + void clear() _NOEXCEPT + {__destruct_at_end(__begin_);} + _LIBCUDACXX_INLINE_VISIBILITY size_type size() const {return static_cast(__end_ - __begin_);} + _LIBCUDACXX_INLINE_VISIBILITY bool empty() const {return __end_ == __begin_;} + _LIBCUDACXX_INLINE_VISIBILITY size_type capacity() const {return static_cast(__end_cap() - __first_);} + _LIBCUDACXX_INLINE_VISIBILITY size_type __front_spare() const {return static_cast(__begin_ - __first_);} + _LIBCUDACXX_INLINE_VISIBILITY size_type __back_spare() const {return static_cast(__end_cap() - __end_);} + + _LIBCUDACXX_INLINE_VISIBILITY reference front() {return *__begin_;} + _LIBCUDACXX_INLINE_VISIBILITY const_reference front() const {return *__begin_;} + _LIBCUDACXX_INLINE_VISIBILITY reference back() {return *(__end_ - 1);} + _LIBCUDACXX_INLINE_VISIBILITY const_reference back() const {return *(__end_ - 1);} + + void reserve(size_type __n); + void shrink_to_fit() _NOEXCEPT; + void push_front(const_reference __x); + _LIBCUDACXX_INLINE_VISIBILITY void push_back(const_reference __x); +#ifndef _LIBCUDACXX_CXX03_LANG + void push_front(value_type&& __x); + void push_back(value_type&& __x); + template + void emplace_back(_Args&&... __args); +#endif // !defined(_LIBCUDACXX_CXX03_LANG) + + _LIBCUDACXX_INLINE_VISIBILITY void pop_front() {__destruct_at_begin(__begin_+1);} + _LIBCUDACXX_INLINE_VISIBILITY void pop_back() {__destruct_at_end(__end_-1);} + + void __construct_at_end(size_type __n); + void __construct_at_end(size_type __n, const_reference __x); + template + typename enable_if + < + __is_input_iterator<_InputIter>::value && + !__is_forward_iterator<_InputIter>::value, + void + >::type + __construct_at_end(_InputIter __first, _InputIter __last); + template + typename enable_if + < + __is_forward_iterator<_ForwardIterator>::value, + void + >::type + __construct_at_end(_ForwardIterator __first, _ForwardIterator __last); + + _LIBCUDACXX_INLINE_VISIBILITY void __destruct_at_begin(pointer __new_begin) + {__destruct_at_begin(__new_begin, is_trivially_destructible());} + _LIBCUDACXX_INLINE_VISIBILITY + void __destruct_at_begin(pointer __new_begin, false_type); + _LIBCUDACXX_INLINE_VISIBILITY + void __destruct_at_begin(pointer __new_begin, true_type); + + _LIBCUDACXX_INLINE_VISIBILITY + void __destruct_at_end(pointer __new_last) _NOEXCEPT + {__destruct_at_end(__new_last, false_type());} + _LIBCUDACXX_INLINE_VISIBILITY + void __destruct_at_end(pointer __new_last, false_type) _NOEXCEPT; + _LIBCUDACXX_INLINE_VISIBILITY + void __destruct_at_end(pointer __new_last, true_type) _NOEXCEPT; + + void swap(__split_buffer& __x) + _NOEXCEPT_(!__alloc_traits::propagate_on_container_swap::value|| + __is_nothrow_swappable<__alloc_rr>::value); + + bool __invariants() const; + +private: + _LIBCUDACXX_INLINE_VISIBILITY + void __move_assign_alloc(__split_buffer& __c, true_type) + _NOEXCEPT_(is_nothrow_move_assignable::value) + { + __alloc() = _CUDA_VSTD::move(__c.__alloc()); + } + + _LIBCUDACXX_INLINE_VISIBILITY + void __move_assign_alloc(__split_buffer&, false_type) _NOEXCEPT + {} + + struct _ConstructTransaction { + explicit _ConstructTransaction(pointer* __p, size_type __n) _NOEXCEPT + : __pos_(*__p), __end_(*__p + __n), __dest_(__p) { + } + ~_ConstructTransaction() { + *__dest_ = __pos_; + } + pointer __pos_; + const pointer __end_; + private: + pointer *__dest_; + }; +}; + +template +bool +__split_buffer<_Tp, _Allocator>::__invariants() const +{ + if (__first_ == nullptr) + { + if (__begin_ != nullptr) + return false; + if (__end_ != nullptr) + return false; + if (__end_cap() != nullptr) + return false; + } + else + { + if (__begin_ < __first_) + return false; + if (__end_ < __begin_) + return false; + if (__end_cap() < __end_) + return false; + } + return true; +} + +// Default constructs __n objects starting at __end_ +// throws if construction throws +// Precondition: __n > 0 +// Precondition: size() + __n <= capacity() +// Postcondition: size() == size() + __n +template +void +__split_buffer<_Tp, _Allocator>::__construct_at_end(size_type __n) +{ + _ConstructTransaction __tx(&this->__end_, __n); + for (; __tx.__pos_ != __tx.__end_; ++__tx.__pos_) { + __alloc_traits::construct(this->__alloc(), _CUDA_VSTD::__to_raw_pointer(__tx.__pos_)); + } +} + +// Copy constructs __n objects starting at __end_ from __x +// throws if construction throws +// Precondition: __n > 0 +// Precondition: size() + __n <= capacity() +// Postcondition: size() == old size() + __n +// Postcondition: [i] == __x for all i in [size() - __n, __n) +template +void +__split_buffer<_Tp, _Allocator>::__construct_at_end(size_type __n, const_reference __x) +{ + _ConstructTransaction __tx(&this->__end_, __n); + for (; __tx.__pos_ != __tx.__end_; ++__tx.__pos_) { + __alloc_traits::construct(this->__alloc(), + _CUDA_VSTD::__to_raw_pointer(__tx.__pos_), __x); + } +} + +template +template +typename enable_if +< + __is_input_iterator<_InputIter>::value && + !__is_forward_iterator<_InputIter>::value, + void +>::type +__split_buffer<_Tp, _Allocator>::__construct_at_end(_InputIter __first, _InputIter __last) +{ + __alloc_rr& __a = this->__alloc(); + for (; __first != __last; ++__first) + { + if (__end_ == __end_cap()) + { + size_type __old_cap = __end_cap() - __first_; + size_type __new_cap = _CUDA_VSTD::max(2 * __old_cap, 8); + __split_buffer __buf(__new_cap, 0, __a); + for (pointer __p = __begin_; __p != __end_; ++__p, ++__buf.__end_) + __alloc_traits::construct(__buf.__alloc(), + _CUDA_VSTD::__to_raw_pointer(__buf.__end_), _CUDA_VSTD::move(*__p)); + swap(__buf); + } + __alloc_traits::construct(__a, _CUDA_VSTD::__to_raw_pointer(this->__end_), *__first); + ++this->__end_; + } +} + +template +template +typename enable_if +< + __is_forward_iterator<_ForwardIterator>::value, + void +>::type +__split_buffer<_Tp, _Allocator>::__construct_at_end(_ForwardIterator __first, _ForwardIterator __last) +{ + _ConstructTransaction __tx(&this->__end_, std::distance(__first, __last)); + for (; __tx.__pos_ != __tx.__end_; ++__tx.__pos_, ++__first) { + __alloc_traits::construct(this->__alloc(), + _CUDA_VSTD::__to_raw_pointer(__tx.__pos_), *__first); + } +} + +template +inline +void +__split_buffer<_Tp, _Allocator>::__destruct_at_begin(pointer __new_begin, false_type) +{ + while (__begin_ != __new_begin) + __alloc_traits::destroy(__alloc(), __to_raw_pointer(__begin_++)); +} + +template +inline +void +__split_buffer<_Tp, _Allocator>::__destruct_at_begin(pointer __new_begin, true_type) +{ + __begin_ = __new_begin; +} + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +void +__split_buffer<_Tp, _Allocator>::__destruct_at_end(pointer __new_last, false_type) _NOEXCEPT +{ + while (__new_last != __end_) + __alloc_traits::destroy(__alloc(), __to_raw_pointer(--__end_)); +} + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +void +__split_buffer<_Tp, _Allocator>::__destruct_at_end(pointer __new_last, true_type) _NOEXCEPT +{ + __end_ = __new_last; +} + +template +__split_buffer<_Tp, _Allocator>::__split_buffer(size_type __cap, size_type __start, __alloc_rr& __a) + : __end_cap_(nullptr, __a) +{ + __first_ = __cap != 0 ? __alloc_traits::allocate(__alloc(), __cap) : nullptr; + __begin_ = __end_ = __first_ + __start; + __end_cap() = __first_ + __cap; +} + +template +inline +__split_buffer<_Tp, _Allocator>::__split_buffer() + _NOEXCEPT_(is_nothrow_default_constructible::value) + : __first_(nullptr), __begin_(nullptr), __end_(nullptr), __end_cap_(nullptr) +{ +} + +template +inline +__split_buffer<_Tp, _Allocator>::__split_buffer(__alloc_rr& __a) + : __first_(nullptr), __begin_(nullptr), __end_(nullptr), __end_cap_(nullptr, __a) +{ +} + +template +inline +__split_buffer<_Tp, _Allocator>::__split_buffer(const __alloc_rr& __a) + : __first_(nullptr), __begin_(nullptr), __end_(nullptr), __end_cap_(nullptr, __a) +{ +} + +template +__split_buffer<_Tp, _Allocator>::~__split_buffer() +{ + clear(); + if (__first_) + __alloc_traits::deallocate(__alloc(), __first_, capacity()); +} + +#ifndef _LIBCUDACXX_CXX03_LANG + +template +__split_buffer<_Tp, _Allocator>::__split_buffer(__split_buffer&& __c) + _NOEXCEPT_(is_nothrow_move_constructible::value) + : __first_(_CUDA_VSTD::move(__c.__first_)), + __begin_(_CUDA_VSTD::move(__c.__begin_)), + __end_(_CUDA_VSTD::move(__c.__end_)), + __end_cap_(_CUDA_VSTD::move(__c.__end_cap_)) +{ + __c.__first_ = nullptr; + __c.__begin_ = nullptr; + __c.__end_ = nullptr; + __c.__end_cap() = nullptr; +} + +template +__split_buffer<_Tp, _Allocator>::__split_buffer(__split_buffer&& __c, const __alloc_rr& __a) + : __end_cap_(__second_tag(), __a) +{ + if (__a == __c.__alloc()) + { + __first_ = __c.__first_; + __begin_ = __c.__begin_; + __end_ = __c.__end_; + __end_cap() = __c.__end_cap(); + __c.__first_ = nullptr; + __c.__begin_ = nullptr; + __c.__end_ = nullptr; + __c.__end_cap() = nullptr; + } + else + { + size_type __cap = __c.size(); + __first_ = __alloc_traits::allocate(__alloc(), __cap); + __begin_ = __end_ = __first_; + __end_cap() = __first_ + __cap; + typedef move_iterator _Ip; + __construct_at_end(_Ip(__c.begin()), _Ip(__c.end())); + } +} + +template +__split_buffer<_Tp, _Allocator>& +__split_buffer<_Tp, _Allocator>::operator=(__split_buffer&& __c) + _NOEXCEPT_((__alloc_traits::propagate_on_container_move_assignment::value && + is_nothrow_move_assignable::value) || + !__alloc_traits::propagate_on_container_move_assignment::value) +{ + clear(); + shrink_to_fit(); + __first_ = __c.__first_; + __begin_ = __c.__begin_; + __end_ = __c.__end_; + __end_cap() = __c.__end_cap(); + __move_assign_alloc(__c, + integral_constant()); + __c.__first_ = __c.__begin_ = __c.__end_ = __c.__end_cap() = nullptr; + return *this; +} + +#endif // _LIBCUDACXX_CXX03_LANG + +template +void +__split_buffer<_Tp, _Allocator>::swap(__split_buffer& __x) + _NOEXCEPT_(!__alloc_traits::propagate_on_container_swap::value|| + __is_nothrow_swappable<__alloc_rr>::value) +{ + _CUDA_VSTD::swap(__first_, __x.__first_); + _CUDA_VSTD::swap(__begin_, __x.__begin_); + _CUDA_VSTD::swap(__end_, __x.__end_); + _CUDA_VSTD::swap(__end_cap(), __x.__end_cap()); + __swap_allocator(__alloc(), __x.__alloc()); +} + +template +void +__split_buffer<_Tp, _Allocator>::reserve(size_type __n) +{ + if (__n < capacity()) + { + __split_buffer __t(__n, 0, __alloc()); + __t.__construct_at_end(move_iterator(__begin_), + move_iterator(__end_)); + _CUDA_VSTD::swap(__first_, __t.__first_); + _CUDA_VSTD::swap(__begin_, __t.__begin_); + _CUDA_VSTD::swap(__end_, __t.__end_); + _CUDA_VSTD::swap(__end_cap(), __t.__end_cap()); + } +} + +template +void +__split_buffer<_Tp, _Allocator>::shrink_to_fit() _NOEXCEPT +{ + if (capacity() > size()) + { +#ifndef _LIBCUDACXX_NO_EXCEPTIONS + try + { +#endif // _LIBCUDACXX_NO_EXCEPTIONS + __split_buffer __t(size(), 0, __alloc()); + __t.__construct_at_end(move_iterator(__begin_), + move_iterator(__end_)); + __t.__end_ = __t.__begin_ + (__end_ - __begin_); + _CUDA_VSTD::swap(__first_, __t.__first_); + _CUDA_VSTD::swap(__begin_, __t.__begin_); + _CUDA_VSTD::swap(__end_, __t.__end_); + _CUDA_VSTD::swap(__end_cap(), __t.__end_cap()); +#ifndef _LIBCUDACXX_NO_EXCEPTIONS + } + catch (...) + { + } +#endif // _LIBCUDACXX_NO_EXCEPTIONS + } +} + +template +void +__split_buffer<_Tp, _Allocator>::push_front(const_reference __x) +{ + if (__begin_ == __first_) + { + if (__end_ < __end_cap()) + { + difference_type __d = __end_cap() - __end_; + __d = (__d + 1) / 2; + __begin_ = _CUDA_VSTD::move_backward(__begin_, __end_, __end_ + __d); + __end_ += __d; + } + else + { + size_type __c = max(2 * static_cast(__end_cap() - __first_), 1); + __split_buffer __t(__c, (__c + 3) / 4, __alloc()); + __t.__construct_at_end(move_iterator(__begin_), + move_iterator(__end_)); + _CUDA_VSTD::swap(__first_, __t.__first_); + _CUDA_VSTD::swap(__begin_, __t.__begin_); + _CUDA_VSTD::swap(__end_, __t.__end_); + _CUDA_VSTD::swap(__end_cap(), __t.__end_cap()); + } + } + __alloc_traits::construct(__alloc(), _CUDA_VSTD::__to_raw_pointer(__begin_-1), __x); + --__begin_; +} + +#ifndef _LIBCUDACXX_CXX03_LANG + +template +void +__split_buffer<_Tp, _Allocator>::push_front(value_type&& __x) +{ + if (__begin_ == __first_) + { + if (__end_ < __end_cap()) + { + difference_type __d = __end_cap() - __end_; + __d = (__d + 1) / 2; + __begin_ = _CUDA_VSTD::move_backward(__begin_, __end_, __end_ + __d); + __end_ += __d; + } + else + { + size_type __c = max(2 * static_cast(__end_cap() - __first_), 1); + __split_buffer __t(__c, (__c + 3) / 4, __alloc()); + __t.__construct_at_end(move_iterator(__begin_), + move_iterator(__end_)); + _CUDA_VSTD::swap(__first_, __t.__first_); + _CUDA_VSTD::swap(__begin_, __t.__begin_); + _CUDA_VSTD::swap(__end_, __t.__end_); + _CUDA_VSTD::swap(__end_cap(), __t.__end_cap()); + } + } + __alloc_traits::construct(__alloc(), _CUDA_VSTD::__to_raw_pointer(__begin_-1), + _CUDA_VSTD::move(__x)); + --__begin_; +} + +#endif // _LIBCUDACXX_CXX03_LANG + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +void +__split_buffer<_Tp, _Allocator>::push_back(const_reference __x) +{ + if (__end_ == __end_cap()) + { + if (__begin_ > __first_) + { + difference_type __d = __begin_ - __first_; + __d = (__d + 1) / 2; + __end_ = _CUDA_VSTD::move(__begin_, __end_, __begin_ - __d); + __begin_ -= __d; + } + else + { + size_type __c = max(2 * static_cast(__end_cap() - __first_), 1); + __split_buffer __t(__c, __c / 4, __alloc()); + __t.__construct_at_end(move_iterator(__begin_), + move_iterator(__end_)); + _CUDA_VSTD::swap(__first_, __t.__first_); + _CUDA_VSTD::swap(__begin_, __t.__begin_); + _CUDA_VSTD::swap(__end_, __t.__end_); + _CUDA_VSTD::swap(__end_cap(), __t.__end_cap()); + } + } + __alloc_traits::construct(__alloc(), _CUDA_VSTD::__to_raw_pointer(__end_), __x); + ++__end_; +} + +#ifndef _LIBCUDACXX_CXX03_LANG + +template +void +__split_buffer<_Tp, _Allocator>::push_back(value_type&& __x) +{ + if (__end_ == __end_cap()) + { + if (__begin_ > __first_) + { + difference_type __d = __begin_ - __first_; + __d = (__d + 1) / 2; + __end_ = _CUDA_VSTD::move(__begin_, __end_, __begin_ - __d); + __begin_ -= __d; + } + else + { + size_type __c = max(2 * static_cast(__end_cap() - __first_), 1); + __split_buffer __t(__c, __c / 4, __alloc()); + __t.__construct_at_end(move_iterator(__begin_), + move_iterator(__end_)); + _CUDA_VSTD::swap(__first_, __t.__first_); + _CUDA_VSTD::swap(__begin_, __t.__begin_); + _CUDA_VSTD::swap(__end_, __t.__end_); + _CUDA_VSTD::swap(__end_cap(), __t.__end_cap()); + } + } + __alloc_traits::construct(__alloc(), _CUDA_VSTD::__to_raw_pointer(__end_), + _CUDA_VSTD::move(__x)); + ++__end_; +} + +template +template +void +__split_buffer<_Tp, _Allocator>::emplace_back(_Args&&... __args) +{ + if (__end_ == __end_cap()) + { + if (__begin_ > __first_) + { + difference_type __d = __begin_ - __first_; + __d = (__d + 1) / 2; + __end_ = _CUDA_VSTD::move(__begin_, __end_, __begin_ - __d); + __begin_ -= __d; + } + else + { + size_type __c = max(2 * static_cast(__end_cap() - __first_), 1); + __split_buffer __t(__c, __c / 4, __alloc()); + __t.__construct_at_end(move_iterator(__begin_), + move_iterator(__end_)); + _CUDA_VSTD::swap(__first_, __t.__first_); + _CUDA_VSTD::swap(__begin_, __t.__begin_); + _CUDA_VSTD::swap(__end_, __t.__end_); + _CUDA_VSTD::swap(__end_cap(), __t.__end_cap()); + } + } + __alloc_traits::construct(__alloc(), _CUDA_VSTD::__to_raw_pointer(__end_), + _CUDA_VSTD::forward<_Args>(__args)...); + ++__end_; +} + +#endif // _LIBCUDACXX_CXX03_LANG + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +void +swap(__split_buffer<_Tp, _Allocator>& __x, __split_buffer<_Tp, _Allocator>& __y) + _NOEXCEPT_(_NOEXCEPT_(__x.swap(__y))) +{ + __x.swap(__y); +} + +_LIBCUDACXX_END_NAMESPACE_STD + +_LIBCUDACXX_POP_MACROS + +#endif // _LIBCUDACXX_SPLIT_BUFFER diff --git a/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__sso_allocator b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__sso_allocator new file mode 100644 index 0000000000000000000000000000000000000000..94f774df4159e36af1a8cc89eeb2cf905b0af7d7 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__sso_allocator @@ -0,0 +1,76 @@ +// -*- C++ -*- +//===----------------------------------------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef _LIBCUDACXX___SSO_ALLOCATOR +#define _LIBCUDACXX___SSO_ALLOCATOR + +#include <__config> +#include +#include + +#if defined(_LIBCUDACXX_USE_PRAGMA_GCC_SYSTEM_HEADER) +#pragma GCC system_header +#endif + +_LIBCUDACXX_BEGIN_NAMESPACE_STD + +template class _LIBCUDACXX_HIDDEN __sso_allocator; + +template +class _LIBCUDACXX_HIDDEN __sso_allocator +{ +public: + typedef const void* const_pointer; + typedef void value_type; +}; + +template +class _LIBCUDACXX_HIDDEN __sso_allocator +{ + typename aligned_storage::type buf_; + bool __allocated_; +public: + typedef size_t size_type; + typedef _Tp* pointer; + typedef _Tp value_type; + + _LIBCUDACXX_INLINE_VISIBILITY __sso_allocator() throw() : __allocated_(false) {} + _LIBCUDACXX_INLINE_VISIBILITY __sso_allocator(const __sso_allocator&) throw() : __allocated_(false) {} + template _LIBCUDACXX_INLINE_VISIBILITY __sso_allocator(const __sso_allocator<_Up, _Np>&) throw() + : __allocated_(false) {} +private: + __sso_allocator& operator=(const __sso_allocator&); +public: + _LIBCUDACXX_INLINE_VISIBILITY pointer allocate(size_type __n, typename __sso_allocator::const_pointer = 0) + { + if (!__allocated_ && __n <= _Np) + { + __allocated_ = true; + return (pointer)&buf_; + } + return static_cast(_CUDA_VSTD::__libcpp_allocate(__n * sizeof(_Tp), _LIBCUDACXX_ALIGNOF(_Tp))); + } + _LIBCUDACXX_INLINE_VISIBILITY void deallocate(pointer __p, size_type __n) + { + if (__p == (pointer)&buf_) + __allocated_ = false; + else + _CUDA_VSTD::__libcpp_deallocate(__p, __n * sizeof(_Tp), _LIBCUDACXX_ALIGNOF(_Tp)); + } + _LIBCUDACXX_INLINE_VISIBILITY size_type max_size() const throw() {return size_type(~0) / sizeof(_Tp);} + + _LIBCUDACXX_INLINE_VISIBILITY + bool operator==(__sso_allocator& __a) const {return &buf_ == &__a.buf_;} + _LIBCUDACXX_INLINE_VISIBILITY + bool operator!=(__sso_allocator& __a) const {return &buf_ != &__a.buf_;} +}; + +_LIBCUDACXX_END_NAMESPACE_STD + +#endif // _LIBCUDACXX___SSO_ALLOCATOR diff --git a/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__std_stream b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__std_stream new file mode 100644 index 0000000000000000000000000000000000000000..996db038734531a13645239e5c693ccb9be88ccd --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__std_stream @@ -0,0 +1,361 @@ +// -*- C++ -*- +//===----------------------------------------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef _LIBCUDACXX___STD_STREAM +#define _LIBCUDACXX___STD_STREAM + +#include <__config> +#include +#include +#include <__locale> +#include + +#if defined(_LIBCUDACXX_USE_PRAGMA_GCC_SYSTEM_HEADER) +#pragma GCC system_header +#endif + +_LIBCUDACXX_PUSH_MACROS +#include <__undef_macros> + + +_LIBCUDACXX_BEGIN_NAMESPACE_STD + +static const int __limit = 8; + +// __stdinbuf + +template +class _LIBCUDACXX_HIDDEN __stdinbuf + : public basic_streambuf<_CharT, char_traits<_CharT> > +{ +public: + typedef _CharT char_type; + typedef char_traits traits_type; + typedef typename traits_type::int_type int_type; + typedef typename traits_type::pos_type pos_type; + typedef typename traits_type::off_type off_type; + typedef typename traits_type::state_type state_type; + + __stdinbuf(FILE* __fp, state_type* __st); + +protected: + virtual int_type underflow(); + virtual int_type uflow(); + virtual int_type pbackfail(int_type __c = traits_type::eof()); + virtual void imbue(const locale& __loc); + +private: + + FILE* __file_; + const codecvt* __cv_; + state_type* __st_; + int __encoding_; + int_type __last_consumed_; + bool __last_consumed_is_next_; + bool __always_noconv_; + + __stdinbuf(const __stdinbuf&); + __stdinbuf& operator=(const __stdinbuf&); + + int_type __getchar(bool __consume); +}; + +template +__stdinbuf<_CharT>::__stdinbuf(FILE* __fp, state_type* __st) + : __file_(__fp), + __st_(__st), + __last_consumed_(traits_type::eof()), + __last_consumed_is_next_(false) +{ + imbue(this->getloc()); +} + +template +void +__stdinbuf<_CharT>::imbue(const locale& __loc) +{ + __cv_ = &use_facet >(__loc); + __encoding_ = __cv_->encoding(); + __always_noconv_ = __cv_->always_noconv(); + if (__encoding_ > __limit) + __throw_runtime_error("unsupported locale for standard input"); +} + +template +typename __stdinbuf<_CharT>::int_type +__stdinbuf<_CharT>::underflow() +{ + return __getchar(false); +} + +template +typename __stdinbuf<_CharT>::int_type +__stdinbuf<_CharT>::uflow() +{ + return __getchar(true); +} + +template +typename __stdinbuf<_CharT>::int_type +__stdinbuf<_CharT>::__getchar(bool __consume) +{ + if (__last_consumed_is_next_) + { + int_type __result = __last_consumed_; + if (__consume) + { + __last_consumed_ = traits_type::eof(); + __last_consumed_is_next_ = false; + } + return __result; + } + char __extbuf[__limit]; + int __nread = _CUDA_VSTD::max(1, __encoding_); + for (int __i = 0; __i < __nread; ++__i) + { + int __c = getc(__file_); + if (__c == EOF) + return traits_type::eof(); + __extbuf[__i] = static_cast(__c); + } + char_type __1buf; + if (__always_noconv_) + __1buf = static_cast(__extbuf[0]); + else + { + const char* __enxt; + char_type* __inxt; + codecvt_base::result __r; + do + { + state_type __sv_st = *__st_; + __r = __cv_->in(*__st_, __extbuf, __extbuf + __nread, __enxt, + &__1buf, &__1buf + 1, __inxt); + switch (__r) + { + case _CUDA_VSTD::codecvt_base::ok: + break; + case codecvt_base::partial: + *__st_ = __sv_st; + if (__nread == sizeof(__extbuf)) + return traits_type::eof(); + { + int __c = getc(__file_); + if (__c == EOF) + return traits_type::eof(); + __extbuf[__nread] = static_cast(__c); + } + ++__nread; + break; + case codecvt_base::error: + return traits_type::eof(); + case _CUDA_VSTD::codecvt_base::noconv: + __1buf = static_cast(__extbuf[0]); + break; + } + } while (__r == _CUDA_VSTD::codecvt_base::partial); + } + if (!__consume) + { + for (int __i = __nread; __i > 0;) + { + if (ungetc(traits_type::to_int_type(__extbuf[--__i]), __file_) == EOF) + return traits_type::eof(); + } + } + else + __last_consumed_ = traits_type::to_int_type(__1buf); + return traits_type::to_int_type(__1buf); +} + +template +typename __stdinbuf<_CharT>::int_type +__stdinbuf<_CharT>::pbackfail(int_type __c) +{ + if (traits_type::eq_int_type(__c, traits_type::eof())) + { + if (!__last_consumed_is_next_) + { + __c = __last_consumed_; + __last_consumed_is_next_ = !traits_type::eq_int_type(__last_consumed_, + traits_type::eof()); + } + return __c; + } + if (__last_consumed_is_next_) + { + char __extbuf[__limit]; + char* __enxt; + const char_type __ci = traits_type::to_char_type(__last_consumed_); + const char_type* __inxt; + switch (__cv_->out(*__st_, &__ci, &__ci + 1, __inxt, + __extbuf, __extbuf + sizeof(__extbuf), __enxt)) + { + case _CUDA_VSTD::codecvt_base::ok: + break; + case _CUDA_VSTD::codecvt_base::noconv: + __extbuf[0] = static_cast(__last_consumed_); + __enxt = __extbuf + 1; + break; + case codecvt_base::partial: + case codecvt_base::error: + return traits_type::eof(); + } + while (__enxt > __extbuf) + if (ungetc(*--__enxt, __file_) == EOF) + return traits_type::eof(); + } + __last_consumed_ = __c; + __last_consumed_is_next_ = true; + return __c; +} + +// __stdoutbuf + +template +class _LIBCUDACXX_HIDDEN __stdoutbuf + : public basic_streambuf<_CharT, char_traits<_CharT> > +{ +public: + typedef _CharT char_type; + typedef char_traits traits_type; + typedef typename traits_type::int_type int_type; + typedef typename traits_type::pos_type pos_type; + typedef typename traits_type::off_type off_type; + typedef typename traits_type::state_type state_type; + + __stdoutbuf(FILE* __fp, state_type* __st); + +protected: + virtual int_type overflow (int_type __c = traits_type::eof()); + virtual streamsize xsputn(const char_type* __s, streamsize __n); + virtual int sync(); + virtual void imbue(const locale& __loc); + +private: + FILE* __file_; + const codecvt* __cv_; + state_type* __st_; + bool __always_noconv_; + + __stdoutbuf(const __stdoutbuf&); + __stdoutbuf& operator=(const __stdoutbuf&); +}; + +template +__stdoutbuf<_CharT>::__stdoutbuf(FILE* __fp, state_type* __st) + : __file_(__fp), + __cv_(&use_facet >(this->getloc())), + __st_(__st), + __always_noconv_(__cv_->always_noconv()) +{ +} + +template +typename __stdoutbuf<_CharT>::int_type +__stdoutbuf<_CharT>::overflow(int_type __c) +{ + char __extbuf[__limit]; + char_type __1buf; + if (!traits_type::eq_int_type(__c, traits_type::eof())) + { + __1buf = traits_type::to_char_type(__c); + if (__always_noconv_) + { + if (fwrite(&__1buf, sizeof(char_type), 1, __file_) != 1) + return traits_type::eof(); + } + else + { + char* __extbe = __extbuf; + codecvt_base::result __r; + char_type* pbase = &__1buf; + char_type* pptr = pbase + 1; + do + { + const char_type* __e; + __r = __cv_->out(*__st_, pbase, pptr, __e, + __extbuf, + __extbuf + sizeof(__extbuf), + __extbe); + if (__e == pbase) + return traits_type::eof(); + if (__r == codecvt_base::noconv) + { + if (fwrite(pbase, 1, 1, __file_) != 1) + return traits_type::eof(); + } + else if (__r == codecvt_base::ok || __r == codecvt_base::partial) + { + size_t __nmemb = static_cast(__extbe - __extbuf); + if (fwrite(__extbuf, 1, __nmemb, __file_) != __nmemb) + return traits_type::eof(); + if (__r == codecvt_base::partial) + { + pbase = const_cast(__e); + } + } + else + return traits_type::eof(); + } while (__r == codecvt_base::partial); + } + } + return traits_type::not_eof(__c); +} + +template +streamsize +__stdoutbuf<_CharT>::xsputn(const char_type* __s, streamsize __n) +{ + if (__always_noconv_) + return fwrite(__s, sizeof(char_type), __n, __file_); + streamsize __i = 0; + for (; __i < __n; ++__i, ++__s) + if (overflow(traits_type::to_int_type(*__s)) == traits_type::eof()) + break; + return __i; +} + +template +int +__stdoutbuf<_CharT>::sync() +{ + char __extbuf[__limit]; + codecvt_base::result __r; + do + { + char* __extbe; + __r = __cv_->unshift(*__st_, __extbuf, + __extbuf + sizeof(__extbuf), + __extbe); + size_t __nmemb = static_cast(__extbe - __extbuf); + if (fwrite(__extbuf, 1, __nmemb, __file_) != __nmemb) + return -1; + } while (__r == codecvt_base::partial); + if (__r == codecvt_base::error) + return -1; + if (fflush(__file_)) + return -1; + return 0; +} + +template +void +__stdoutbuf<_CharT>::imbue(const locale& __loc) +{ + sync(); + __cv_ = &use_facet >(__loc); + __always_noconv_ = __cv_->always_noconv(); +} + +_LIBCUDACXX_END_NAMESPACE_STD + +_LIBCUDACXX_POP_MACROS + +#endif // _LIBCUDACXX___STD_STREAM diff --git a/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__string b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__string new file mode 100644 index 0000000000000000000000000000000000000000..45dfbf6f7864055c18c7a296f3884994925fba5a --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__string @@ -0,0 +1,985 @@ +// -*- C++ -*- +//===-------------------------- __string ----------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef _LIBCUDACXX___STRING +#define _LIBCUDACXX___STRING + +/* + string synopsis + +namespace std +{ + +template +struct char_traits +{ + typedef charT char_type; + typedef ... int_type; + typedef streamoff off_type; + typedef streampos pos_type; + typedef mbstate_t state_type; + + static constexpr void assign(char_type& c1, const char_type& c2) noexcept; + static constexpr bool eq(char_type c1, char_type c2) noexcept; + static constexpr bool lt(char_type c1, char_type c2) noexcept; + + static constexpr int compare(const char_type* s1, const char_type* s2, size_t n); + static constexpr size_t length(const char_type* s); + static constexpr const char_type* + find(const char_type* s, size_t n, const char_type& a); + static char_type* move(char_type* s1, const char_type* s2, size_t n); + static char_type* copy(char_type* s1, const char_type* s2, size_t n); + static char_type* assign(char_type* s, size_t n, char_type a); + + static constexpr int_type not_eof(int_type c) noexcept; + static constexpr char_type to_char_type(int_type c) noexcept; + static constexpr int_type to_int_type(char_type c) noexcept; + static constexpr bool eq_int_type(int_type c1, int_type c2) noexcept; + static constexpr int_type eof() noexcept; +}; + +template <> struct char_traits; +template <> struct char_traits; +template <> struct char_traits; // c++20 + +} // std + +*/ + +#include <__config> +#include // for search and min +#include // For EOF. +#include // for __murmur2_or_cityhash + +#include <__debug> + +#if defined(_LIBCUDACXX_USE_PRAGMA_GCC_SYSTEM_HEADER) +#pragma GCC system_header +#endif + +_LIBCUDACXX_PUSH_MACROS +#include <__undef_macros> + + +_LIBCUDACXX_BEGIN_NAMESPACE_STD + +// char_traits + +template +struct _LIBCUDACXX_TEMPLATE_VIS char_traits +{ + typedef _CharT char_type; + typedef int int_type; + typedef streamoff off_type; + typedef streampos pos_type; + typedef mbstate_t state_type; + + static inline void _LIBCUDACXX_CONSTEXPR_AFTER_CXX14 + assign(char_type& __c1, const char_type& __c2) _NOEXCEPT {__c1 = __c2;} + static inline _LIBCUDACXX_CONSTEXPR bool eq(char_type __c1, char_type __c2) _NOEXCEPT + {return __c1 == __c2;} + static inline _LIBCUDACXX_CONSTEXPR bool lt(char_type __c1, char_type __c2) _NOEXCEPT + {return __c1 < __c2;} + + static _LIBCUDACXX_CONSTEXPR_AFTER_CXX14 + int compare(const char_type* __s1, const char_type* __s2, size_t __n); + _LIBCUDACXX_INLINE_VISIBILITY static _LIBCUDACXX_CONSTEXPR_AFTER_CXX14 + size_t length(const char_type* __s); + _LIBCUDACXX_INLINE_VISIBILITY static _LIBCUDACXX_CONSTEXPR_AFTER_CXX14 + const char_type* find(const char_type* __s, size_t __n, const char_type& __a); + static char_type* move(char_type* __s1, const char_type* __s2, size_t __n); + _LIBCUDACXX_INLINE_VISIBILITY + static char_type* copy(char_type* __s1, const char_type* __s2, size_t __n); + _LIBCUDACXX_INLINE_VISIBILITY + static char_type* assign(char_type* __s, size_t __n, char_type __a); + + static inline _LIBCUDACXX_CONSTEXPR int_type not_eof(int_type __c) _NOEXCEPT + {return eq_int_type(__c, eof()) ? ~eof() : __c;} + static inline _LIBCUDACXX_CONSTEXPR char_type to_char_type(int_type __c) _NOEXCEPT + {return char_type(__c);} + static inline _LIBCUDACXX_CONSTEXPR int_type to_int_type(char_type __c) _NOEXCEPT + {return int_type(__c);} + static inline _LIBCUDACXX_CONSTEXPR bool eq_int_type(int_type __c1, int_type __c2) _NOEXCEPT + {return __c1 == __c2;} + static inline _LIBCUDACXX_CONSTEXPR int_type eof() _NOEXCEPT + {return int_type(EOF);} +}; + +template +_LIBCUDACXX_CONSTEXPR_AFTER_CXX14 int +char_traits<_CharT>::compare(const char_type* __s1, const char_type* __s2, size_t __n) +{ + for (; __n; --__n, ++__s1, ++__s2) + { + if (lt(*__s1, *__s2)) + return -1; + if (lt(*__s2, *__s1)) + return 1; + } + return 0; +} + +template +inline +_LIBCUDACXX_CONSTEXPR_AFTER_CXX14 size_t +char_traits<_CharT>::length(const char_type* __s) +{ + size_t __len = 0; + for (; !eq(*__s, char_type(0)); ++__s) + ++__len; + return __len; +} + +template +inline +_LIBCUDACXX_CONSTEXPR_AFTER_CXX14 const _CharT* +char_traits<_CharT>::find(const char_type* __s, size_t __n, const char_type& __a) +{ + for (; __n; --__n) + { + if (eq(*__s, __a)) + return __s; + ++__s; + } + return 0; +} + +template +_CharT* +char_traits<_CharT>::move(char_type* __s1, const char_type* __s2, size_t __n) +{ + char_type* __r = __s1; + if (__s1 < __s2) + { + for (; __n; --__n, ++__s1, ++__s2) + assign(*__s1, *__s2); + } + else if (__s2 < __s1) + { + __s1 += __n; + __s2 += __n; + for (; __n; --__n) + assign(*--__s1, *--__s2); + } + return __r; +} + +template +inline +_CharT* +char_traits<_CharT>::copy(char_type* __s1, const char_type* __s2, size_t __n) +{ + _LIBCUDACXX_ASSERT(__s2 < __s1 || __s2 >= __s1+__n, "char_traits::copy overlapped range"); + char_type* __r = __s1; + for (; __n; --__n, ++__s1, ++__s2) + assign(*__s1, *__s2); + return __r; +} + +template +inline +_CharT* +char_traits<_CharT>::assign(char_type* __s, size_t __n, char_type __a) +{ + char_type* __r = __s; + for (; __n; --__n, ++__s) + assign(*__s, __a); + return __r; +} + +// char_traits + +template <> +struct _LIBCUDACXX_TEMPLATE_VIS char_traits +{ + typedef char char_type; + typedef int int_type; + typedef streamoff off_type; + typedef streampos pos_type; + typedef mbstate_t state_type; + + static inline _LIBCUDACXX_CONSTEXPR_AFTER_CXX14 + void assign(char_type& __c1, const char_type& __c2) _NOEXCEPT {__c1 = __c2;} + static inline _LIBCUDACXX_CONSTEXPR bool eq(char_type __c1, char_type __c2) _NOEXCEPT + {return __c1 == __c2;} + static inline _LIBCUDACXX_CONSTEXPR bool lt(char_type __c1, char_type __c2) _NOEXCEPT + {return (unsigned char)__c1 < (unsigned char)__c2;} + + static _LIBCUDACXX_CONSTEXPR_AFTER_CXX14 + int compare(const char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT; + static inline size_t _LIBCUDACXX_CONSTEXPR_AFTER_CXX14 + length(const char_type* __s) _NOEXCEPT {return __builtin_strlen(__s);} + static _LIBCUDACXX_CONSTEXPR_AFTER_CXX14 + const char_type* find(const char_type* __s, size_t __n, const char_type& __a) _NOEXCEPT; + static inline char_type* move(char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT + {return __n == 0 ? __s1 : (char_type*) memmove(__s1, __s2, __n);} + static inline char_type* copy(char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT + { + _LIBCUDACXX_ASSERT(__s2 < __s1 || __s2 >= __s1+__n, "char_traits::copy overlapped range"); + return __n == 0 ? __s1 : (char_type*)memcpy(__s1, __s2, __n); + } + static inline char_type* assign(char_type* __s, size_t __n, char_type __a) _NOEXCEPT + {return __n == 0 ? __s : (char_type*)memset(__s, to_int_type(__a), __n);} + + static inline _LIBCUDACXX_CONSTEXPR int_type not_eof(int_type __c) _NOEXCEPT + {return eq_int_type(__c, eof()) ? ~eof() : __c;} + static inline _LIBCUDACXX_CONSTEXPR char_type to_char_type(int_type __c) _NOEXCEPT + {return char_type(__c);} + static inline _LIBCUDACXX_CONSTEXPR int_type to_int_type(char_type __c) _NOEXCEPT + {return int_type((unsigned char)__c);} + static inline _LIBCUDACXX_CONSTEXPR bool eq_int_type(int_type __c1, int_type __c2) _NOEXCEPT + {return __c1 == __c2;} + static inline _LIBCUDACXX_CONSTEXPR int_type eof() _NOEXCEPT + {return int_type(EOF);} +}; + +inline _LIBCUDACXX_CONSTEXPR_AFTER_CXX14 +int +char_traits::compare(const char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT +{ + if (__n == 0) + return 0; +#if __has_feature(cxx_constexpr_string_builtins) + return __builtin_memcmp(__s1, __s2, __n); +#elif _LIBCUDACXX_STD_VER <= 14 + return memcmp(__s1, __s2, __n); +#else + for (; __n; --__n, ++__s1, ++__s2) + { + if (lt(*__s1, *__s2)) + return -1; + if (lt(*__s2, *__s1)) + return 1; + } + return 0; +#endif +} + +inline _LIBCUDACXX_CONSTEXPR_AFTER_CXX14 +const char* +char_traits::find(const char_type* __s, size_t __n, const char_type& __a) _NOEXCEPT +{ + if (__n == 0) + return nullptr; +#if __has_feature(cxx_constexpr_string_builtins) + return __builtin_char_memchr(__s, to_int_type(__a), __n); +#elif _LIBCUDACXX_STD_VER <= 14 + return (const char_type*) memchr(__s, to_int_type(__a), __n); +#else + for (; __n; --__n) + { + if (eq(*__s, __a)) + return __s; + ++__s; + } + return nullptr; +#endif +} + + +// char_traits + +template <> +struct _LIBCUDACXX_TEMPLATE_VIS char_traits +{ + typedef wchar_t char_type; + typedef wint_t int_type; + typedef streamoff off_type; + typedef streampos pos_type; + typedef mbstate_t state_type; + + static inline _LIBCUDACXX_CONSTEXPR_AFTER_CXX14 + void assign(char_type& __c1, const char_type& __c2) _NOEXCEPT {__c1 = __c2;} + static inline _LIBCUDACXX_CONSTEXPR bool eq(char_type __c1, char_type __c2) _NOEXCEPT + {return __c1 == __c2;} + static inline _LIBCUDACXX_CONSTEXPR bool lt(char_type __c1, char_type __c2) _NOEXCEPT + {return __c1 < __c2;} + + static _LIBCUDACXX_CONSTEXPR_AFTER_CXX14 + int compare(const char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT; + static _LIBCUDACXX_CONSTEXPR_AFTER_CXX14 + size_t length(const char_type* __s) _NOEXCEPT; + static _LIBCUDACXX_CONSTEXPR_AFTER_CXX14 + const char_type* find(const char_type* __s, size_t __n, const char_type& __a) _NOEXCEPT; + static inline char_type* move(char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT + {return __n == 0 ? __s1 : (char_type*)wmemmove(__s1, __s2, __n);} + static inline char_type* copy(char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT + { + _LIBCUDACXX_ASSERT(__s2 < __s1 || __s2 >= __s1+__n, "char_traits::copy overlapped range"); + return __n == 0 ? __s1 : (char_type*)wmemcpy(__s1, __s2, __n); + } + static inline char_type* assign(char_type* __s, size_t __n, char_type __a) _NOEXCEPT + {return __n == 0 ? __s : (char_type*)wmemset(__s, __a, __n);} + + static inline _LIBCUDACXX_CONSTEXPR int_type not_eof(int_type __c) _NOEXCEPT + {return eq_int_type(__c, eof()) ? ~eof() : __c;} + static inline _LIBCUDACXX_CONSTEXPR char_type to_char_type(int_type __c) _NOEXCEPT + {return char_type(__c);} + static inline _LIBCUDACXX_CONSTEXPR int_type to_int_type(char_type __c) _NOEXCEPT + {return int_type(__c);} + static inline _LIBCUDACXX_CONSTEXPR bool eq_int_type(int_type __c1, int_type __c2) _NOEXCEPT + {return __c1 == __c2;} + static inline _LIBCUDACXX_CONSTEXPR int_type eof() _NOEXCEPT + {return int_type(WEOF);} +}; + +inline _LIBCUDACXX_CONSTEXPR_AFTER_CXX14 +int +char_traits::compare(const char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT +{ + if (__n == 0) + return 0; +#if __has_feature(cxx_constexpr_string_builtins) + return __builtin_wmemcmp(__s1, __s2, __n); +#elif _LIBCUDACXX_STD_VER <= 14 + return wmemcmp(__s1, __s2, __n); +#else + for (; __n; --__n, ++__s1, ++__s2) + { + if (lt(*__s1, *__s2)) + return -1; + if (lt(*__s2, *__s1)) + return 1; + } + return 0; +#endif +} + + +template +_LIBCUDACXX_INLINE_VISIBILITY +_LIBCUDACXX_CONSTEXPR +inline size_t __char_traits_length_checked(const typename _Traits::char_type* __s) _NOEXCEPT { +#if _LIBCUDACXX_DEBUG_LEVEL >= 1 + return __s ? _Traits::length(__s) : (_CUDA_VSTD::__libcpp_debug_function(_CUDA_VSTD::__libcpp_debug_info(__FILE__, __LINE__, "p == nullptr", "null pointer pass to non-null argument of char_traits<...>::length")), 0); +#else + return _Traits::length(__s); +#endif +} + +inline _LIBCUDACXX_CONSTEXPR_AFTER_CXX14 +size_t +char_traits::length(const char_type* __s) _NOEXCEPT +{ +#if __has_feature(cxx_constexpr_string_builtins) + return __builtin_wcslen(__s); +#elif _LIBCUDACXX_STD_VER <= 14 + return wcslen(__s); +#else + size_t __len = 0; + for (; !eq(*__s, char_type(0)); ++__s) + ++__len; + return __len; +#endif +} + +inline _LIBCUDACXX_CONSTEXPR_AFTER_CXX14 +const wchar_t* +char_traits::find(const char_type* __s, size_t __n, const char_type& __a) _NOEXCEPT +{ + if (__n == 0) + return nullptr; +#if __has_feature(cxx_constexpr_string_builtins) + return __builtin_wmemchr(__s, __a, __n); +#elif _LIBCUDACXX_STD_VER <= 14 + return wmemchr(__s, __a, __n); +#else + for (; __n; --__n) + { + if (eq(*__s, __a)) + return __s; + ++__s; + } + return nullptr; +#endif +} + + +#ifndef _LIBCUDACXX_NO_HAS_CHAR8_T + +template <> +struct _LIBCUDACXX_TEMPLATE_VIS char_traits +{ + typedef char8_t char_type; + typedef unsigned int int_type; + typedef streamoff off_type; + typedef u8streampos pos_type; + typedef mbstate_t state_type; + + static inline constexpr void assign(char_type& __c1, const char_type& __c2) noexcept + {__c1 = __c2;} + static inline constexpr bool eq(char_type __c1, char_type __c2) noexcept + {return __c1 == __c2;} + static inline constexpr bool lt(char_type __c1, char_type __c2) noexcept + {return __c1 < __c2;} + + static constexpr + int compare(const char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT; + + static constexpr + size_t length(const char_type* __s) _NOEXCEPT; + + _LIBCUDACXX_INLINE_VISIBILITY static constexpr + const char_type* find(const char_type* __s, size_t __n, const char_type& __a) _NOEXCEPT; + + static char_type* move(char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT + {return __n == 0 ? __s1 : (char_type*) memmove(__s1, __s2, __n);} + + static char_type* copy(char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT + { + _LIBCUDACXX_ASSERT(__s2 < __s1 || __s2 >= __s1+__n, "char_traits::copy overlapped range"); + return __n == 0 ? __s1 : (char_type*)memcpy(__s1, __s2, __n); + } + + static char_type* assign(char_type* __s, size_t __n, char_type __a) _NOEXCEPT + {return __n == 0 ? __s : (char_type*)memset(__s, to_int_type(__a), __n);} + + static inline constexpr int_type not_eof(int_type __c) noexcept + {return eq_int_type(__c, eof()) ? ~eof() : __c;} + static inline constexpr char_type to_char_type(int_type __c) noexcept + {return char_type(__c);} + static inline constexpr int_type to_int_type(char_type __c) noexcept + {return int_type(__c);} + static inline constexpr bool eq_int_type(int_type __c1, int_type __c2) noexcept + {return __c1 == __c2;} + static inline constexpr int_type eof() noexcept + {return int_type(EOF);} +}; + +// TODO use '__builtin_strlen' if it ever supports char8_t ?? +inline constexpr +size_t +char_traits::length(const char_type* __s) _NOEXCEPT +{ + size_t __len = 0; + for (; !eq(*__s, char_type(0)); ++__s) + ++__len; + return __len; +} + +inline constexpr +int +char_traits::compare(const char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT +{ +#if __has_feature(cxx_constexpr_string_builtins) + return __builtin_memcmp(__s1, __s2, __n); +#else + for (; __n; --__n, ++__s1, ++__s2) + { + if (lt(*__s1, *__s2)) + return -1; + if (lt(*__s2, *__s1)) + return 1; + } + return 0; +#endif +} + +// TODO use '__builtin_char_memchr' if it ever supports char8_t ?? +inline constexpr +const char8_t* +char_traits::find(const char_type* __s, size_t __n, const char_type& __a) _NOEXCEPT +{ + for (; __n; --__n) + { + if (eq(*__s, __a)) + return __s; + ++__s; + } + return 0; +} + +#endif // #_LIBCUDACXX_NO_HAS_CHAR8_T + +#ifndef _LIBCUDACXX_HAS_NO_UNICODE_CHARS + +template <> +struct _LIBCUDACXX_TEMPLATE_VIS char_traits +{ + typedef char16_t char_type; + typedef uint_least16_t int_type; + typedef streamoff off_type; + typedef u16streampos pos_type; + typedef mbstate_t state_type; + + static inline _LIBCUDACXX_CONSTEXPR_AFTER_CXX14 + void assign(char_type& __c1, const char_type& __c2) _NOEXCEPT {__c1 = __c2;} + static inline _LIBCUDACXX_CONSTEXPR bool eq(char_type __c1, char_type __c2) _NOEXCEPT + {return __c1 == __c2;} + static inline _LIBCUDACXX_CONSTEXPR bool lt(char_type __c1, char_type __c2) _NOEXCEPT + {return __c1 < __c2;} + + _LIBCUDACXX_INLINE_VISIBILITY static _LIBCUDACXX_CONSTEXPR_AFTER_CXX14 + int compare(const char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT; + _LIBCUDACXX_INLINE_VISIBILITY static _LIBCUDACXX_CONSTEXPR_AFTER_CXX14 + size_t length(const char_type* __s) _NOEXCEPT; + _LIBCUDACXX_INLINE_VISIBILITY static _LIBCUDACXX_CONSTEXPR_AFTER_CXX14 + const char_type* find(const char_type* __s, size_t __n, const char_type& __a) _NOEXCEPT; + _LIBCUDACXX_INLINE_VISIBILITY + static char_type* move(char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT; + _LIBCUDACXX_INLINE_VISIBILITY + static char_type* copy(char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT; + _LIBCUDACXX_INLINE_VISIBILITY + static char_type* assign(char_type* __s, size_t __n, char_type __a) _NOEXCEPT; + + static inline _LIBCUDACXX_CONSTEXPR int_type not_eof(int_type __c) _NOEXCEPT + {return eq_int_type(__c, eof()) ? ~eof() : __c;} + static inline _LIBCUDACXX_CONSTEXPR char_type to_char_type(int_type __c) _NOEXCEPT + {return char_type(__c);} + static inline _LIBCUDACXX_CONSTEXPR int_type to_int_type(char_type __c) _NOEXCEPT + {return int_type(__c);} + static inline _LIBCUDACXX_CONSTEXPR bool eq_int_type(int_type __c1, int_type __c2) _NOEXCEPT + {return __c1 == __c2;} + static inline _LIBCUDACXX_CONSTEXPR int_type eof() _NOEXCEPT + {return int_type(0xFFFF);} +}; + +inline _LIBCUDACXX_CONSTEXPR_AFTER_CXX14 +int +char_traits::compare(const char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT +{ + for (; __n; --__n, ++__s1, ++__s2) + { + if (lt(*__s1, *__s2)) + return -1; + if (lt(*__s2, *__s1)) + return 1; + } + return 0; +} + +inline _LIBCUDACXX_CONSTEXPR_AFTER_CXX14 +size_t +char_traits::length(const char_type* __s) _NOEXCEPT +{ + size_t __len = 0; + for (; !eq(*__s, char_type(0)); ++__s) + ++__len; + return __len; +} + +inline _LIBCUDACXX_CONSTEXPR_AFTER_CXX14 +const char16_t* +char_traits::find(const char_type* __s, size_t __n, const char_type& __a) _NOEXCEPT +{ + for (; __n; --__n) + { + if (eq(*__s, __a)) + return __s; + ++__s; + } + return 0; +} + +inline +char16_t* +char_traits::move(char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT +{ + char_type* __r = __s1; + if (__s1 < __s2) + { + for (; __n; --__n, ++__s1, ++__s2) + assign(*__s1, *__s2); + } + else if (__s2 < __s1) + { + __s1 += __n; + __s2 += __n; + for (; __n; --__n) + assign(*--__s1, *--__s2); + } + return __r; +} + +inline +char16_t* +char_traits::copy(char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT +{ + _LIBCUDACXX_ASSERT(__s2 < __s1 || __s2 >= __s1+__n, "char_traits::copy overlapped range"); + char_type* __r = __s1; + for (; __n; --__n, ++__s1, ++__s2) + assign(*__s1, *__s2); + return __r; +} + +inline +char16_t* +char_traits::assign(char_type* __s, size_t __n, char_type __a) _NOEXCEPT +{ + char_type* __r = __s; + for (; __n; --__n, ++__s) + assign(*__s, __a); + return __r; +} + +template <> +struct _LIBCUDACXX_TEMPLATE_VIS char_traits +{ + typedef char32_t char_type; + typedef uint_least32_t int_type; + typedef streamoff off_type; + typedef u32streampos pos_type; + typedef mbstate_t state_type; + + static inline _LIBCUDACXX_CONSTEXPR_AFTER_CXX14 + void assign(char_type& __c1, const char_type& __c2) _NOEXCEPT {__c1 = __c2;} + static inline _LIBCUDACXX_CONSTEXPR bool eq(char_type __c1, char_type __c2) _NOEXCEPT + {return __c1 == __c2;} + static inline _LIBCUDACXX_CONSTEXPR bool lt(char_type __c1, char_type __c2) _NOEXCEPT + {return __c1 < __c2;} + + _LIBCUDACXX_INLINE_VISIBILITY static _LIBCUDACXX_CONSTEXPR_AFTER_CXX14 + int compare(const char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT; + _LIBCUDACXX_INLINE_VISIBILITY static _LIBCUDACXX_CONSTEXPR_AFTER_CXX14 + size_t length(const char_type* __s) _NOEXCEPT; + _LIBCUDACXX_INLINE_VISIBILITY static _LIBCUDACXX_CONSTEXPR_AFTER_CXX14 + const char_type* find(const char_type* __s, size_t __n, const char_type& __a) _NOEXCEPT; + _LIBCUDACXX_INLINE_VISIBILITY + static char_type* move(char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT; + _LIBCUDACXX_INLINE_VISIBILITY + static char_type* copy(char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT; + _LIBCUDACXX_INLINE_VISIBILITY + static char_type* assign(char_type* __s, size_t __n, char_type __a) _NOEXCEPT; + + static inline _LIBCUDACXX_CONSTEXPR int_type not_eof(int_type __c) _NOEXCEPT + {return eq_int_type(__c, eof()) ? ~eof() : __c;} + static inline _LIBCUDACXX_CONSTEXPR char_type to_char_type(int_type __c) _NOEXCEPT + {return char_type(__c);} + static inline _LIBCUDACXX_CONSTEXPR int_type to_int_type(char_type __c) _NOEXCEPT + {return int_type(__c);} + static inline _LIBCUDACXX_CONSTEXPR bool eq_int_type(int_type __c1, int_type __c2) _NOEXCEPT + {return __c1 == __c2;} + static inline _LIBCUDACXX_CONSTEXPR int_type eof() _NOEXCEPT + {return int_type(0xFFFFFFFF);} +}; + +inline _LIBCUDACXX_CONSTEXPR_AFTER_CXX14 +int +char_traits::compare(const char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT +{ + for (; __n; --__n, ++__s1, ++__s2) + { + if (lt(*__s1, *__s2)) + return -1; + if (lt(*__s2, *__s1)) + return 1; + } + return 0; +} + +inline _LIBCUDACXX_CONSTEXPR_AFTER_CXX14 +size_t +char_traits::length(const char_type* __s) _NOEXCEPT +{ + size_t __len = 0; + for (; !eq(*__s, char_type(0)); ++__s) + ++__len; + return __len; +} + +inline _LIBCUDACXX_CONSTEXPR_AFTER_CXX14 +const char32_t* +char_traits::find(const char_type* __s, size_t __n, const char_type& __a) _NOEXCEPT +{ + for (; __n; --__n) + { + if (eq(*__s, __a)) + return __s; + ++__s; + } + return 0; +} + +inline +char32_t* +char_traits::move(char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT +{ + char_type* __r = __s1; + if (__s1 < __s2) + { + for (; __n; --__n, ++__s1, ++__s2) + assign(*__s1, *__s2); + } + else if (__s2 < __s1) + { + __s1 += __n; + __s2 += __n; + for (; __n; --__n) + assign(*--__s1, *--__s2); + } + return __r; +} + +inline +char32_t* +char_traits::copy(char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT +{ + _LIBCUDACXX_ASSERT(__s2 < __s1 || __s2 >= __s1+__n, "char_traits::copy overlapped range"); + char_type* __r = __s1; + for (; __n; --__n, ++__s1, ++__s2) + assign(*__s1, *__s2); + return __r; +} + +inline +char32_t* +char_traits::assign(char_type* __s, size_t __n, char_type __a) _NOEXCEPT +{ + char_type* __r = __s; + for (; __n; --__n, ++__s) + assign(*__s, __a); + return __r; +} + +#endif // _LIBCUDACXX_HAS_NO_UNICODE_CHARS + +// helper fns for basic_string and string_view + +// __str_find +template +inline _SizeT _LIBCUDACXX_CONSTEXPR_AFTER_CXX11 _LIBCUDACXX_INLINE_VISIBILITY +__str_find(const _CharT *__p, _SizeT __sz, + _CharT __c, _SizeT __pos) _NOEXCEPT +{ + if (__pos >= __sz) + return __npos; + const _CharT* __r = _Traits::find(__p + __pos, __sz - __pos, __c); + if (__r == 0) + return __npos; + return static_cast<_SizeT>(__r - __p); +} + +template +inline _LIBCUDACXX_CONSTEXPR_AFTER_CXX11 const _CharT * +__search_substring(const _CharT *__first1, const _CharT *__last1, + const _CharT *__first2, const _CharT *__last2) { + // Take advantage of knowing source and pattern lengths. + // Stop short when source is smaller than pattern. + const ptrdiff_t __len2 = __last2 - __first2; + if (__len2 == 0) + return __first1; + + ptrdiff_t __len1 = __last1 - __first1; + if (__len1 < __len2) + return __last1; + + // First element of __first2 is loop invariant. + _CharT __f2 = *__first2; + while (true) { + __len1 = __last1 - __first1; + // Check whether __first1 still has at least __len2 bytes. + if (__len1 < __len2) + return __last1; + + // Find __f2 the first byte matching in __first1. + __first1 = _Traits::find(__first1, __len1 - __len2 + 1, __f2); + if (__first1 == 0) + return __last1; + + // It is faster to compare from the first byte of __first1 even if we + // already know that it matches the first byte of __first2: this is because + // __first2 is most likely aligned, as it is user's "pattern" string, and + // __first1 + 1 is most likely not aligned, as the match is in the middle of + // the string. + if (_Traits::compare(__first1, __first2, __len2) == 0) + return __first1; + + ++__first1; + } +} + +template +inline _SizeT _LIBCUDACXX_CONSTEXPR_AFTER_CXX11 _LIBCUDACXX_INLINE_VISIBILITY +__str_find(const _CharT *__p, _SizeT __sz, + const _CharT* __s, _SizeT __pos, _SizeT __n) _NOEXCEPT +{ + if (__pos > __sz) + return __npos; + + if (__n == 0) // There is nothing to search, just return __pos. + return __pos; + + const _CharT *__r = __search_substring<_CharT, _Traits>( + __p + __pos, __p + __sz, __s, __s + __n); + + if (__r == __p + __sz) + return __npos; + return static_cast<_SizeT>(__r - __p); +} + + +// __str_rfind + +template +inline _SizeT _LIBCUDACXX_CONSTEXPR_AFTER_CXX11 _LIBCUDACXX_INLINE_VISIBILITY +__str_rfind(const _CharT *__p, _SizeT __sz, + _CharT __c, _SizeT __pos) _NOEXCEPT +{ + if (__sz < 1) + return __npos; + if (__pos < __sz) + ++__pos; + else + __pos = __sz; + for (const _CharT* __ps = __p + __pos; __ps != __p;) + { + if (_Traits::eq(*--__ps, __c)) + return static_cast<_SizeT>(__ps - __p); + } + return __npos; +} + +template +inline _SizeT _LIBCUDACXX_CONSTEXPR_AFTER_CXX11 _LIBCUDACXX_INLINE_VISIBILITY +__str_rfind(const _CharT *__p, _SizeT __sz, + const _CharT* __s, _SizeT __pos, _SizeT __n) _NOEXCEPT +{ + __pos = _CUDA_VSTD::min(__pos, __sz); + if (__n < __sz - __pos) + __pos += __n; + else + __pos = __sz; + const _CharT* __r = _CUDA_VSTD::__find_end( + __p, __p + __pos, __s, __s + __n, _Traits::eq, + random_access_iterator_tag(), random_access_iterator_tag()); + if (__n > 0 && __r == __p + __pos) + return __npos; + return static_cast<_SizeT>(__r - __p); +} + +// __str_find_first_of +template +inline _SizeT _LIBCUDACXX_CONSTEXPR_AFTER_CXX11 _LIBCUDACXX_INLINE_VISIBILITY +__str_find_first_of(const _CharT *__p, _SizeT __sz, + const _CharT* __s, _SizeT __pos, _SizeT __n) _NOEXCEPT +{ + if (__pos >= __sz || __n == 0) + return __npos; + const _CharT* __r = _CUDA_VSTD::__find_first_of_ce + (__p + __pos, __p + __sz, __s, __s + __n, _Traits::eq ); + if (__r == __p + __sz) + return __npos; + return static_cast<_SizeT>(__r - __p); +} + + +// __str_find_last_of +template +inline _SizeT _LIBCUDACXX_CONSTEXPR_AFTER_CXX11 _LIBCUDACXX_INLINE_VISIBILITY +__str_find_last_of(const _CharT *__p, _SizeT __sz, + const _CharT* __s, _SizeT __pos, _SizeT __n) _NOEXCEPT + { + if (__n != 0) + { + if (__pos < __sz) + ++__pos; + else + __pos = __sz; + for (const _CharT* __ps = __p + __pos; __ps != __p;) + { + const _CharT* __r = _Traits::find(__s, __n, *--__ps); + if (__r) + return static_cast<_SizeT>(__ps - __p); + } + } + return __npos; +} + + +// __str_find_first_not_of +template +inline _SizeT _LIBCUDACXX_CONSTEXPR_AFTER_CXX11 _LIBCUDACXX_INLINE_VISIBILITY +__str_find_first_not_of(const _CharT *__p, _SizeT __sz, + const _CharT* __s, _SizeT __pos, _SizeT __n) _NOEXCEPT +{ + if (__pos < __sz) + { + const _CharT* __pe = __p + __sz; + for (const _CharT* __ps = __p + __pos; __ps != __pe; ++__ps) + if (_Traits::find(__s, __n, *__ps) == 0) + return static_cast<_SizeT>(__ps - __p); + } + return __npos; +} + + +template +inline _SizeT _LIBCUDACXX_CONSTEXPR_AFTER_CXX11 _LIBCUDACXX_INLINE_VISIBILITY +__str_find_first_not_of(const _CharT *__p, _SizeT __sz, + _CharT __c, _SizeT __pos) _NOEXCEPT +{ + if (__pos < __sz) + { + const _CharT* __pe = __p + __sz; + for (const _CharT* __ps = __p + __pos; __ps != __pe; ++__ps) + if (!_Traits::eq(*__ps, __c)) + return static_cast<_SizeT>(__ps - __p); + } + return __npos; +} + + +// __str_find_last_not_of +template +inline _SizeT _LIBCUDACXX_CONSTEXPR_AFTER_CXX11 _LIBCUDACXX_INLINE_VISIBILITY +__str_find_last_not_of(const _CharT *__p, _SizeT __sz, + const _CharT* __s, _SizeT __pos, _SizeT __n) _NOEXCEPT +{ + if (__pos < __sz) + ++__pos; + else + __pos = __sz; + for (const _CharT* __ps = __p + __pos; __ps != __p;) + if (_Traits::find(__s, __n, *--__ps) == 0) + return static_cast<_SizeT>(__ps - __p); + return __npos; +} + + +template +inline _SizeT _LIBCUDACXX_CONSTEXPR_AFTER_CXX11 _LIBCUDACXX_INLINE_VISIBILITY +__str_find_last_not_of(const _CharT *__p, _SizeT __sz, + _CharT __c, _SizeT __pos) _NOEXCEPT +{ + if (__pos < __sz) + ++__pos; + else + __pos = __sz; + for (const _CharT* __ps = __p + __pos; __ps != __p;) + if (!_Traits::eq(*--__ps, __c)) + return static_cast<_SizeT>(__ps - __p); + return __npos; +} + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +size_t __do_string_hash(_Ptr __p, _Ptr __e) +{ + typedef typename iterator_traits<_Ptr>::value_type value_type; + return __murmur2_or_cityhash()(__p, (__e-__p)*sizeof(value_type)); +} + +template > +struct __quoted_output_proxy +{ + _Iter __first; + _Iter __last; + _CharT __delim; + _CharT __escape; + + __quoted_output_proxy(_Iter __f, _Iter __l, _CharT __d, _CharT __e) + : __first(__f), __last(__l), __delim(__d), __escape(__e) {} + // This would be a nice place for a string_ref +}; + +_LIBCUDACXX_END_NAMESPACE_STD + +_LIBCUDACXX_POP_MACROS + +#endif // _LIBCUDACXX___STRING diff --git a/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__threading_support b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__threading_support new file mode 100644 index 0000000000000000000000000000000000000000..9489f6a6bde0d95d34d6984f3c83ba5d58a9cf80 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__threading_support @@ -0,0 +1,787 @@ +// -*- C++ -*- +//===----------------------------------------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef _LIBCUDACXX_THREADING_SUPPORT +#define _LIBCUDACXX_THREADING_SUPPORT + +#ifndef __cuda_std__ +#include <__config> +#include +#include +#include +#include +#include <__pragma_push> +#endif + +#if defined(_LIBCUDACXX_USE_PRAGMA_GCC_SYSTEM_HEADER) +#pragma GCC system_header +#endif + +#if defined(_LIBCUDACXX_HAS_THREAD_API_EXTERNAL) +# ifndef __cuda_std__ +# include <__external_threading> +# else +# define _LIBCUDACXX_THREAD_ABI_VISIBILITY inline _LIBCUDACXX_INLINE_VISIBILITY +# endif +#elif !defined(_LIBCUDACXX_HAS_NO_THREADS) + +#if defined(_LIBCUDACXX_HAS_THREAD_API_PTHREAD) +# include +# include +# include +# if defined(__APPLE__) +# include +# endif +# if defined(__linux__) +# include +# include +# include +# endif +#endif + +#if defined(_LIBCUDACXX_HAS_THREAD_API_WIN32) +# include +# include +#endif + +#if defined(_LIBCUDACXX_HAS_THREAD_LIBRARY_EXTERNAL) || \ + defined(_LIBCUDACXX_BUILDING_THREAD_LIBRARY_EXTERNAL) +#define _LIBCUDACXX_THREAD_ABI_VISIBILITY _LIBCUDACXX_FUNC_VIS +#else +#define _LIBCUDACXX_THREAD_ABI_VISIBILITY inline _LIBCUDACXX_INLINE_VISIBILITY +#endif + +#if defined(__FreeBSD__) && defined(__clang__) && __has_attribute(no_thread_safety_analysis) +#define _LIBCUDACXX_NO_THREAD_SAFETY_ANALYSIS __attribute__((no_thread_safety_analysis)) +#else +#define _LIBCUDACXX_NO_THREAD_SAFETY_ANALYSIS +#endif + +typedef ::timespec __libcpp_timespec_t; +#endif // !defined(_LIBCUDACXX_HAS_NO_THREADS) + +_LIBCUDACXX_BEGIN_NAMESPACE_STD + +#if !defined(_LIBCUDACXX_HAS_NO_THREADS) + +#define _LIBCUDACXX_POLLING_COUNT 16 + +_LIBCUDACXX_INLINE_VISIBILITY +inline void __libcpp_thread_yield_processor() +{ +#if defined(__aarch64__) +# define __LIBCUDACXX_ASM_THREAD_YIELD (asm volatile ("yield" :::);) +#elif defined(__x86_64__) +# define __LIBCUDACXX_ASM_THREAD_YIELD (asm volatile ("pause" :::);) +#elif defined (__powerpc__) +# define __LIBCUDACXX_ASM_THREAD_YIELD (asm volatile ("or 27,27,27":::);) +#else +# define __LIBCUDACXX_ASM_THREAD_YIELD (;) +#endif + NV_IF_TARGET( + NV_IS_HOST, + __LIBCUDACXX_ASM_THREAD_YIELD + ) +} + +_LIBCUDACXX_THREAD_ABI_VISIBILITY +void __libcpp_thread_yield(); + +_LIBCUDACXX_THREAD_ABI_VISIBILITY +void __libcpp_thread_sleep_for(chrono::nanoseconds __ns); + +template +_LIBCUDACXX_THREAD_ABI_VISIBILITY +bool __libcpp_thread_poll_with_backoff(_Fn && __f, chrono::nanoseconds __max = chrono::nanoseconds::zero()); + +#if defined(_LIBCUDACXX_HAS_THREAD_API_PTHREAD) +// Mutex +typedef pthread_mutex_t __libcpp_mutex_t; +#define _LIBCUDACXX_MUTEX_INITIALIZER PTHREAD_MUTEX_INITIALIZER + +typedef pthread_mutex_t __libcpp_recursive_mutex_t; + +// Condition Variable +typedef pthread_cond_t __libcpp_condvar_t; +#define _LIBCUDACXX_CONDVAR_INITIALIZER PTHREAD_COND_INITIALIZER + +// Semaphore +#if defined(__APPLE__) +typedef dispatch_semaphore_t __libcpp_semaphore_t; +# define _LIBCUDACXX_SEMAPHORE_MAX numeric_limits::max() +#else +typedef sem_t __libcpp_semaphore_t; +# define _LIBCUDACXX_SEMAPHORE_MAX SEM_VALUE_MAX +#endif + +// Execute once +typedef pthread_once_t __libcpp_exec_once_flag; +#define _LIBCUDACXX_EXEC_ONCE_INITIALIZER PTHREAD_ONCE_INIT + +// Thread id +typedef pthread_t __libcpp_thread_id; + +// Thread +#define _LIBCUDACXX_NULL_THREAD 0U + +typedef pthread_t __libcpp_thread_t; + +// Thread Local Storage +typedef pthread_key_t __libcpp_tls_key; + +#define _LIBCUDACXX_TLS_DESTRUCTOR_CC +#elif !defined(_LIBCUDACXX_HAS_THREAD_API_EXTERNAL) +// Mutex +typedef void* __libcpp_mutex_t; +#define _LIBCUDACXX_MUTEX_INITIALIZER 0 + +#if defined(_M_IX86) || defined(__i386__) || defined(_M_ARM) || defined(__arm__) +typedef void* __libcpp_recursive_mutex_t[6]; +#elif defined(_M_AMD64) || defined(__x86_64__) || defined(_M_ARM64) || defined(__aarch64__) +typedef void* __libcpp_recursive_mutex_t[5]; +#else +# error Unsupported architecture +#endif + +// Condition Variable +typedef void* __libcpp_condvar_t; +#define _LIBCUDACXX_CONDVAR_INITIALIZER 0 + +// Semaphore +typedef void* __libcpp_semaphore_t; + +// Execute Once +typedef void* __libcpp_exec_once_flag; +#define _LIBCUDACXX_EXEC_ONCE_INITIALIZER 0 + +// Thread ID +typedef long __libcpp_thread_id; + +// Thread +#define _LIBCUDACXX_NULL_THREAD 0U + +typedef void* __libcpp_thread_t; + +// Thread Local Storage +typedef long __libcpp_tls_key; + +#define _LIBCUDACXX_TLS_DESTRUCTOR_CC __stdcall +#endif // !defined(_LIBCUDACXX_HAS_THREAD_API_PTHREAD) && !defined(_LIBCUDACXX_HAS_THREAD_API_EXTERNAL) + +#if !defined(_LIBCUDACXX_HAS_THREAD_API_EXTERNAL) + +_LIBCUDACXX_THREAD_ABI_VISIBILITY +__libcpp_timespec_t __libcpp_to_timespec(const chrono::nanoseconds& __ns); + +// Mutex +_LIBCUDACXX_THREAD_ABI_VISIBILITY +int __libcpp_recursive_mutex_init(__libcpp_recursive_mutex_t *__m); + +_LIBCUDACXX_THREAD_ABI_VISIBILITY _LIBCUDACXX_NO_THREAD_SAFETY_ANALYSIS +int __libcpp_recursive_mutex_lock(__libcpp_recursive_mutex_t *__m); + +_LIBCUDACXX_THREAD_ABI_VISIBILITY _LIBCUDACXX_NO_THREAD_SAFETY_ANALYSIS +bool __libcpp_recursive_mutex_trylock(__libcpp_recursive_mutex_t *__m); + +_LIBCUDACXX_THREAD_ABI_VISIBILITY _LIBCUDACXX_NO_THREAD_SAFETY_ANALYSIS +int __libcpp_recursive_mutex_unlock(__libcpp_recursive_mutex_t *__m); + +_LIBCUDACXX_THREAD_ABI_VISIBILITY +int __libcpp_recursive_mutex_destroy(__libcpp_recursive_mutex_t *__m); + +_LIBCUDACXX_THREAD_ABI_VISIBILITY _LIBCUDACXX_NO_THREAD_SAFETY_ANALYSIS +int __libcpp_mutex_lock(__libcpp_mutex_t *__m); + +_LIBCUDACXX_THREAD_ABI_VISIBILITY _LIBCUDACXX_NO_THREAD_SAFETY_ANALYSIS +bool __libcpp_mutex_trylock(__libcpp_mutex_t *__m); + +_LIBCUDACXX_THREAD_ABI_VISIBILITY _LIBCUDACXX_NO_THREAD_SAFETY_ANALYSIS +int __libcpp_mutex_unlock(__libcpp_mutex_t *__m); + +_LIBCUDACXX_THREAD_ABI_VISIBILITY +int __libcpp_mutex_destroy(__libcpp_mutex_t *__m); + +// Condition variable +_LIBCUDACXX_THREAD_ABI_VISIBILITY +int __libcpp_condvar_signal(__libcpp_condvar_t* __cv); + +_LIBCUDACXX_THREAD_ABI_VISIBILITY +int __libcpp_condvar_broadcast(__libcpp_condvar_t* __cv); + +_LIBCUDACXX_THREAD_ABI_VISIBILITY _LIBCUDACXX_NO_THREAD_SAFETY_ANALYSIS +int __libcpp_condvar_wait(__libcpp_condvar_t* __cv, __libcpp_mutex_t* __m); + +_LIBCUDACXX_THREAD_ABI_VISIBILITY _LIBCUDACXX_NO_THREAD_SAFETY_ANALYSIS +int __libcpp_condvar_timedwait(__libcpp_condvar_t *__cv, __libcpp_mutex_t *__m, + __libcpp_timespec_t *__ts); + +_LIBCUDACXX_THREAD_ABI_VISIBILITY +int __libcpp_condvar_destroy(__libcpp_condvar_t* __cv); + +// Semaphore +_LIBCUDACXX_THREAD_ABI_VISIBILITY +bool __libcpp_semaphore_init(__libcpp_semaphore_t* __sem, int __init); + +_LIBCUDACXX_THREAD_ABI_VISIBILITY +bool __libcpp_semaphore_destroy(__libcpp_semaphore_t* __sem); + +_LIBCUDACXX_THREAD_ABI_VISIBILITY +bool __libcpp_semaphore_post(__libcpp_semaphore_t* __sem); + +_LIBCUDACXX_THREAD_ABI_VISIBILITY +bool __libcpp_semaphore_wait(__libcpp_semaphore_t* __sem); + +_LIBCUDACXX_THREAD_ABI_VISIBILITY +bool __libcpp_semaphore_wait_timed(__libcpp_semaphore_t* __sem, chrono::nanoseconds const& __ns); + +// Execute once +_LIBCUDACXX_THREAD_ABI_VISIBILITY +int __libcpp_execute_once(__libcpp_exec_once_flag *flag, + void (*init_routine)()); + +// Thread id +_LIBCUDACXX_THREAD_ABI_VISIBILITY +bool __libcpp_thread_id_equal(__libcpp_thread_id t1, __libcpp_thread_id t2); + +_LIBCUDACXX_THREAD_ABI_VISIBILITY +bool __libcpp_thread_id_less(__libcpp_thread_id t1, __libcpp_thread_id t2); + +// Thread +_LIBCUDACXX_THREAD_ABI_VISIBILITY +bool __libcpp_thread_isnull(const __libcpp_thread_t *__t); + +_LIBCUDACXX_THREAD_ABI_VISIBILITY +int __libcpp_thread_create(__libcpp_thread_t *__t, void *(*__func)(void *), + void *__arg); + +_LIBCUDACXX_THREAD_ABI_VISIBILITY +__libcpp_thread_id __libcpp_thread_get_current_id(); + +_LIBCUDACXX_THREAD_ABI_VISIBILITY +__libcpp_thread_id __libcpp_thread_get_id(const __libcpp_thread_t *__t); + +_LIBCUDACXX_THREAD_ABI_VISIBILITY +int __libcpp_thread_join(__libcpp_thread_t *__t); + +_LIBCUDACXX_THREAD_ABI_VISIBILITY +int __libcpp_thread_detach(__libcpp_thread_t *__t); + +// Thread local storage +_LIBCUDACXX_THREAD_ABI_VISIBILITY +int __libcpp_tls_create(__libcpp_tls_key* __key, + void(_LIBCUDACXX_TLS_DESTRUCTOR_CC* __at_exit)(void*)); + +_LIBCUDACXX_THREAD_ABI_VISIBILITY +void *__libcpp_tls_get(__libcpp_tls_key __key); + +_LIBCUDACXX_THREAD_ABI_VISIBILITY +int __libcpp_tls_set(__libcpp_tls_key __key, void *__p); + +#endif // !defined(_LIBCUDACXX_HAS_THREAD_API_EXTERNAL) + +#if !defined(_LIBCUDACXX_HAS_THREAD_LIBRARY_EXTERNAL) || defined(_LIBCUDACXX_BUILDING_THREAD_LIBRARY_EXTERNAL) + +#if defined(_LIBCUDACXX_HAS_THREAD_API_CUDA) + +_LIBCUDACXX_THREAD_ABI_VISIBILITY +void __libcpp_thread_yield() {} + +_LIBCUDACXX_THREAD_ABI_VISIBILITY +void __libcpp_thread_sleep_for(chrono::nanoseconds __ns) +{ + NV_IF_TARGET( + NV_IS_DEVICE, ( + auto const __step = __ns.count(); + assert(__step < numeric_limits::max()); + asm volatile("nanosleep.u32 %0;"::"r"((unsigned)__step):); + ) + ) +} + +#elif defined(_LIBCUDACXX_HAS_THREAD_API_PTHREAD) + +_LIBCUDACXX_THREAD_ABI_VISIBILITY +__libcpp_timespec_t __libcpp_to_timespec(const chrono::nanoseconds& __ns) +{ + using namespace chrono; + seconds __s = duration_cast(__ns); + __libcpp_timespec_t __ts; + typedef decltype(__ts.tv_sec) ts_sec; + _LIBCUDACXX_CONSTEXPR ts_sec __ts_sec_max = numeric_limits::max(); + + if (__s.count() < __ts_sec_max) + { + __ts.tv_sec = static_cast(__s.count()); + __ts.tv_nsec = static_cast((__ns - __s).count()); + } + else + { + __ts.tv_sec = __ts_sec_max; + __ts.tv_nsec = 999999999; // (10^9 - 1) + } + return __ts; +} + +_LIBCUDACXX_THREAD_ABI_VISIBILITY +int __libcpp_recursive_mutex_init(__libcpp_recursive_mutex_t *__m) +{ + pthread_mutexattr_t attr; + int __ec = pthread_mutexattr_init(&attr); + if (__ec) + return __ec; + __ec = pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE); + if (__ec) { + pthread_mutexattr_destroy(&attr); + return __ec; + } + __ec = pthread_mutex_init(__m, &attr); + if (__ec) { + pthread_mutexattr_destroy(&attr); + return __ec; + } + __ec = pthread_mutexattr_destroy(&attr); + if (__ec) { + pthread_mutex_destroy(__m); + return __ec; + } + return 0; +} + +_LIBCUDACXX_THREAD_ABI_VISIBILITY +int __libcpp_recursive_mutex_lock(__libcpp_recursive_mutex_t *__m) +{ + return pthread_mutex_lock(__m); +} + +_LIBCUDACXX_THREAD_ABI_VISIBILITY +bool __libcpp_recursive_mutex_trylock(__libcpp_recursive_mutex_t *__m) +{ + return pthread_mutex_trylock(__m) == 0; +} + +_LIBCUDACXX_THREAD_ABI_VISIBILITY +int __libcpp_recursive_mutex_unlock(__libcpp_mutex_t *__m) +{ + return pthread_mutex_unlock(__m); +} + +_LIBCUDACXX_THREAD_ABI_VISIBILITY +int __libcpp_recursive_mutex_destroy(__libcpp_recursive_mutex_t *__m) +{ + return pthread_mutex_destroy(__m); +} + +_LIBCUDACXX_THREAD_ABI_VISIBILITY +int __libcpp_mutex_lock(__libcpp_mutex_t *__m) +{ + return pthread_mutex_lock(__m); +} + +_LIBCUDACXX_THREAD_ABI_VISIBILITY +bool __libcpp_mutex_trylock(__libcpp_mutex_t *__m) +{ + return pthread_mutex_trylock(__m) == 0; +} + +_LIBCUDACXX_THREAD_ABI_VISIBILITY +int __libcpp_mutex_unlock(__libcpp_mutex_t *__m) +{ + return pthread_mutex_unlock(__m); +} + +_LIBCUDACXX_THREAD_ABI_VISIBILITY +int __libcpp_mutex_destroy(__libcpp_mutex_t *__m) +{ + return pthread_mutex_destroy(__m); +} + +// Condition Variable +_LIBCUDACXX_THREAD_ABI_VISIBILITY +int __libcpp_condvar_signal(__libcpp_condvar_t *__cv) +{ + return pthread_cond_signal(__cv); +} + +_LIBCUDACXX_THREAD_ABI_VISIBILITY +int __libcpp_condvar_broadcast(__libcpp_condvar_t *__cv) +{ + return pthread_cond_broadcast(__cv); +} + +_LIBCUDACXX_THREAD_ABI_VISIBILITY +int __libcpp_condvar_wait(__libcpp_condvar_t *__cv, __libcpp_mutex_t *__m) +{ + return pthread_cond_wait(__cv, __m); +} + +_LIBCUDACXX_THREAD_ABI_VISIBILITY +int __libcpp_condvar_timedwait(__libcpp_condvar_t *__cv, __libcpp_mutex_t *__m, + __libcpp_timespec_t *__ts) +{ + return pthread_cond_timedwait(__cv, __m, __ts); +} + +_LIBCUDACXX_THREAD_ABI_VISIBILITY +int __libcpp_condvar_destroy(__libcpp_condvar_t *__cv) +{ + return pthread_cond_destroy(__cv); +} + +// Semaphore +#if defined(__APPLE__) + +bool __libcpp_semaphore_init(__libcpp_semaphore_t* __sem, int __init) +{ + return (*__sem = dispatch_semaphore_create(__init)) != NULL; +} + +bool __libcpp_semaphore_destroy(__libcpp_semaphore_t* __sem) +{ + dispatch_release(*__sem); + return true; +} + +bool __libcpp_semaphore_post(__libcpp_semaphore_t* __sem) +{ + dispatch_semaphore_signal(*__sem); + return true; +} + +bool __libcpp_semaphore_wait(__libcpp_semaphore_t* __sem) +{ + return dispatch_semaphore_wait(*__sem, DISPATCH_TIME_FOREVER) == 0; +} + +bool __libcpp_semaphore_wait_timed(__libcpp_semaphore_t* __sem, chrono::nanoseconds const& __ns) +{ + return dispatch_semaphore_wait(*__sem, dispatch_time(DISPATCH_TIME_NOW, __ns.count())) == 0; +} + +#else + +_LIBCUDACXX_THREAD_ABI_VISIBILITY +bool __libcpp_semaphore_init(__libcpp_semaphore_t* __sem, int __init) +{ + return sem_init(__sem, 0, __init) == 0; +} + +_LIBCUDACXX_THREAD_ABI_VISIBILITY +bool __libcpp_semaphore_destroy(__libcpp_semaphore_t* __sem) +{ + return sem_destroy(__sem) == 0; +} + +_LIBCUDACXX_THREAD_ABI_VISIBILITY +bool __libcpp_semaphore_post(__libcpp_semaphore_t* __sem) +{ + return sem_post(__sem) == 0; +} + +_LIBCUDACXX_THREAD_ABI_VISIBILITY +bool __libcpp_semaphore_wait(__libcpp_semaphore_t* __sem) +{ + return sem_wait(__sem) == 0; +} + +_LIBCUDACXX_THREAD_ABI_VISIBILITY +bool __libcpp_semaphore_wait_timed(__libcpp_semaphore_t* __sem, chrono::nanoseconds const& __ns) +{ + __libcpp_timespec_t __ts = __libcpp_to_timespec(__ns); + return sem_timedwait(__sem, &__ts) == 0; +} + +#endif //__APPLE__ + +// Execute once +_LIBCUDACXX_THREAD_ABI_VISIBILITY +int __libcpp_execute_once(__libcpp_exec_once_flag *flag, void (*init_routine)()) +{ + return pthread_once(flag, init_routine); +} + +// Thread id +// Returns non-zero if the thread ids are equal, otherwise 0 +_LIBCUDACXX_THREAD_ABI_VISIBILITY +bool __libcpp_thread_id_equal(__libcpp_thread_id t1, __libcpp_thread_id t2) +{ + return pthread_equal(t1, t2) != 0; +} + +// Returns non-zero if t1 < t2, otherwise 0 +_LIBCUDACXX_THREAD_ABI_VISIBILITY +bool __libcpp_thread_id_less(__libcpp_thread_id t1, __libcpp_thread_id t2) +{ + return t1 < t2; +} + +// Thread +_LIBCUDACXX_THREAD_ABI_VISIBILITY +bool __libcpp_thread_isnull(const __libcpp_thread_t *__t) +{ + return *__t == 0; +} + +_LIBCUDACXX_THREAD_ABI_VISIBILITY +int __libcpp_thread_create(__libcpp_thread_t *__t, void *(*__func)(void *), + void *__arg) +{ + return pthread_create(__t, 0, __func, __arg); +} + +_LIBCUDACXX_THREAD_ABI_VISIBILITY +__libcpp_thread_id __libcpp_thread_get_current_id() +{ + return pthread_self(); +} + +_LIBCUDACXX_THREAD_ABI_VISIBILITY +__libcpp_thread_id __libcpp_thread_get_id(const __libcpp_thread_t *__t) +{ + return *__t; +} + +_LIBCUDACXX_THREAD_ABI_VISIBILITY +int __libcpp_thread_join(__libcpp_thread_t *__t) +{ + return pthread_join(*__t, 0); +} + +_LIBCUDACXX_THREAD_ABI_VISIBILITY +int __libcpp_thread_detach(__libcpp_thread_t *__t) +{ + return pthread_detach(*__t); +} + +// Thread local storage +_LIBCUDACXX_THREAD_ABI_VISIBILITY +int __libcpp_tls_create(__libcpp_tls_key *__key, void (*__at_exit)(void *)) +{ + return pthread_key_create(__key, __at_exit); +} + +_LIBCUDACXX_THREAD_ABI_VISIBILITY +void *__libcpp_tls_get(__libcpp_tls_key __key) +{ + return pthread_getspecific(__key); +} + +_LIBCUDACXX_THREAD_ABI_VISIBILITY +int __libcpp_tls_set(__libcpp_tls_key __key, void *__p) +{ + return pthread_setspecific(__key, __p); +} + +_LIBCUDACXX_THREAD_ABI_VISIBILITY +void __libcpp_thread_yield() +{ + sched_yield(); +} + +_LIBCUDACXX_THREAD_ABI_VISIBILITY +void __libcpp_thread_sleep_for(chrono::nanoseconds __ns) +{ + __libcpp_timespec_t __ts = __libcpp_to_timespec(__ns); + while (nanosleep(&__ts, &__ts) == -1 && errno == EINTR); +} + +#if defined(__linux__) && !defined(_LIBCUDACXX_HAS_NO_PLATFORM_WAIT) + +#define _LIBCUDACXX_HAS_PLATFORM_WAIT + +typedef int __libcpp_platform_wait_t; + +template +struct __libcpp_platform_wait_uses_type { + enum { __value = is_same::type, __libcpp_platform_wait_t>::value }; +}; + +template ::__value, int>::type = 1> +void __libcpp_platform_wait(_Tp const* ptr, _Tp val, void const* timeout) { + syscall(SYS_futex, ptr, FUTEX_WAIT_PRIVATE, val, timeout, 0, 0); +} + +template ::__value, int>::type = 1> +void __libcpp_platform_wake(_Tp const* ptr, bool all) { + syscall(SYS_futex, ptr, FUTEX_WAKE_PRIVATE, all ? INT_MAX : 1, 0, 0, 0); +} + +#endif // defined(__linux__) && !defined(_LIBCUDACXX_HAS_NO_PLATFORM_WAIT) + +#elif defined(_LIBCUDACXX_HAS_THREAD_API_WIN32) + +void __libcpp_thread_yield() +{ + SwitchToThread(); +} + +void __libcpp_thread_sleep_for(chrono::nanoseconds __ns) +{ + using namespace chrono; + // round-up to the nearest milisecond + milliseconds __ms = + duration_cast(__ns + chrono::nanoseconds(999999)); + Sleep(static_cast(__ms.count())); +} + +#endif // defined(_LIBCUDACXX_HAS_THREAD_API_WIN32) + +#endif // !defined(_LIBCUDACXX_HAS_THREAD_LIBRARY_EXTERNAL) || defined(_LIBCUDACXX_BUILDING_THREAD_LIBRARY_EXTERNAL) + +template +_LIBCUDACXX_THREAD_ABI_VISIBILITY +bool __libcpp_thread_poll_with_backoff(_Fn && __f, chrono::nanoseconds __max) +{ + chrono::high_resolution_clock::time_point const __start = chrono::high_resolution_clock::now(); + for(int __count = 0;;) { + if(__f()) + return true; + if(__count < _LIBCUDACXX_POLLING_COUNT) { + if(__count > (_LIBCUDACXX_POLLING_COUNT >> 1)) + __libcpp_thread_yield_processor(); + __count += 1; + continue; + } + chrono::high_resolution_clock::duration const __elapsed = chrono::high_resolution_clock::now() - __start; + if(__max != chrono::nanoseconds::zero() && + __max < __elapsed) + return false; + chrono::nanoseconds const __step = __elapsed / 4; + if(__step >= chrono::milliseconds(1)) + __libcpp_thread_sleep_for(chrono::milliseconds(1)); + else if(__step >= chrono::microseconds(10)) + __libcpp_thread_sleep_for(__step); + else + __libcpp_thread_yield(); + } +} + +#if _LIBCUDACXX_STD_VER < 11 +# define _LIBCUDACXX_HAS_NO_THREAD_CONTENTION_TABLE +#endif + +#ifndef _LIBCUDACXX_HAS_NO_THREAD_CONTENTION_TABLE + +struct alignas(64) __libcpp_contention_t { +#if defined(_LIBCUDACXX_HAS_PLATFORM_WAIT) + ptrdiff_t __waiters = 0; + __libcpp_platform_wait_t __version = 0; +#else + ptrdiff_t __credit = 0; + __libcpp_mutex_t __mutex = _LIBCUDACXX_MUTEX_INITIALIZER; + __libcpp_condvar_t __condvar = _LIBCUDACXX_CONDVAR_INITIALIZER; +#endif +}; + +_LIBCUDACXX_FUNC_VIS +__libcpp_contention_t * __libcpp_contention_state(void const volatile * p) _NOEXCEPT; + +#endif // _LIBCUDACXX_HAS_NO_THREAD_CONTENTION_TABLE + +#if !defined(_LIBCUDACXX_HAS_NO_TREE_BARRIER) && !defined(_LIBCUDACXX_HAS_NO_THREAD_FAVORITE_BARRIER_INDEX) + +_LIBCUDACXX_EXPORTED_FROM_ABI +extern thread_local ptrdiff_t __libcpp_thread_favorite_barrier_index; + +#endif + +#ifndef __cuda_std__ + +class _LIBCUDACXX_TYPE_VIS thread; +class _LIBCUDACXX_TYPE_VIS __thread_id; + +namespace this_thread +{ + +_LIBCUDACXX_INLINE_VISIBILITY __thread_id get_id() _NOEXCEPT; + +} // this_thread + +template<> struct hash<__thread_id>; + +class _LIBCUDACXX_TEMPLATE_VIS __thread_id +{ + // FIXME: pthread_t is a pointer on Darwin but a long on Linux. + // NULL is the no-thread value on Darwin. Someone needs to check + // on other platforms. We assume 0 works everywhere for now. + __libcpp_thread_id __id_; + +public: + _LIBCUDACXX_INLINE_VISIBILITY + __thread_id() _NOEXCEPT : __id_(0) {} + + friend _LIBCUDACXX_INLINE_VISIBILITY + bool operator==(__thread_id __x, __thread_id __y) _NOEXCEPT + { // don't pass id==0 to underlying routines + if (__x.__id_ == 0) return __y.__id_ == 0; + if (__y.__id_ == 0) return false; + return __libcpp_thread_id_equal(__x.__id_, __y.__id_); + } + friend _LIBCUDACXX_INLINE_VISIBILITY + bool operator!=(__thread_id __x, __thread_id __y) _NOEXCEPT + {return !(__x == __y);} + friend _LIBCUDACXX_INLINE_VISIBILITY + bool operator< (__thread_id __x, __thread_id __y) _NOEXCEPT + { // id==0 is always less than any other thread_id + if (__x.__id_ == 0) return __y.__id_ != 0; + if (__y.__id_ == 0) return false; + return __libcpp_thread_id_less(__x.__id_, __y.__id_); + } + friend _LIBCUDACXX_INLINE_VISIBILITY + bool operator<=(__thread_id __x, __thread_id __y) _NOEXCEPT + {return !(__y < __x);} + friend _LIBCUDACXX_INLINE_VISIBILITY + bool operator> (__thread_id __x, __thread_id __y) _NOEXCEPT + {return __y < __x ;} + friend _LIBCUDACXX_INLINE_VISIBILITY + bool operator>=(__thread_id __x, __thread_id __y) _NOEXCEPT + {return !(__x < __y);} + + _LIBCUDACXX_INLINE_VISIBILITY + void __reset() { __id_ = 0; } + +#ifndef __cuda_std__ + template + friend + _LIBCUDACXX_INLINE_VISIBILITY + basic_ostream<_CharT, _Traits>& + operator<<(basic_ostream<_CharT, _Traits>& __os, __thread_id __id); +#endif + +private: + _LIBCUDACXX_INLINE_VISIBILITY + __thread_id(__libcpp_thread_id __id) : __id_(__id) {} + + friend __thread_id this_thread::get_id() _NOEXCEPT; + friend class _LIBCUDACXX_TYPE_VIS thread; + friend struct _LIBCUDACXX_TEMPLATE_VIS hash<__thread_id>; +}; + +namespace this_thread +{ + +inline _LIBCUDACXX_INLINE_VISIBILITY +__thread_id +get_id() _NOEXCEPT +{ + return __libcpp_thread_get_current_id(); +} + +} // this_thread + +#endif // __cuda_std__ + +#endif // !_LIBCUDACXX_HAS_NO_THREADS + +_LIBCUDACXX_END_NAMESPACE_STD + +#ifndef __cuda_std__ +#include <__pragma_pop> +#endif + +#endif // _LIBCUDACXX_THREADING_SUPPORT diff --git a/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__tree b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__tree new file mode 100644 index 0000000000000000000000000000000000000000..14922a74cef0837111a0087feefe2033c8d2ac99 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__tree @@ -0,0 +1,2844 @@ +// -*- C++ -*- +//===----------------------------------------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef _LIBCUDACXX___TREE +#define _LIBCUDACXX___TREE + +#include <__config> +#include +#include +#include +#include + +#if defined(_LIBCUDACXX_USE_PRAGMA_GCC_SYSTEM_HEADER) +#pragma GCC system_header +#endif + +_LIBCUDACXX_PUSH_MACROS +#include <__undef_macros> + + +_LIBCUDACXX_BEGIN_NAMESPACE_STD + +#if defined(__GNUC__) && !defined(__clang__) // gcc.gnu.org/PR37804 +template class _LIBCUDACXX_TEMPLATE_VIS map; +template class _LIBCUDACXX_TEMPLATE_VIS multimap; +template class _LIBCUDACXX_TEMPLATE_VIS set; +template class _LIBCUDACXX_TEMPLATE_VIS multiset; +#endif + +template class __tree; +template + class _LIBCUDACXX_TEMPLATE_VIS __tree_iterator; +template + class _LIBCUDACXX_TEMPLATE_VIS __tree_const_iterator; + +template class __tree_end_node; +template class __tree_node_base; +template class __tree_node; + +template +struct __value_type; + +template class __map_node_destructor; +template class _LIBCUDACXX_TEMPLATE_VIS __map_iterator; +template class _LIBCUDACXX_TEMPLATE_VIS __map_const_iterator; + +/* + +_NodePtr algorithms + +The algorithms taking _NodePtr are red black tree algorithms. Those +algorithms taking a parameter named __root should assume that __root +points to a proper red black tree (unless otherwise specified). + +Each algorithm herein assumes that __root->__parent_ points to a non-null +structure which has a member __left_ which points back to __root. No other +member is read or written to at __root->__parent_. + +__root->__parent_ will be referred to below (in comments only) as end_node. +end_node->__left_ is an externably accessible lvalue for __root, and can be +changed by node insertion and removal (without explicit reference to end_node). + +All nodes (with the exception of end_node), even the node referred to as +__root, have a non-null __parent_ field. + +*/ + +// Returns: true if __x is a left child of its parent, else false +// Precondition: __x != nullptr. +template +inline _LIBCUDACXX_INLINE_VISIBILITY +bool +__tree_is_left_child(_NodePtr __x) _NOEXCEPT +{ + return __x == __x->__parent_->__left_; +} + +// Determines if the subtree rooted at __x is a proper red black subtree. If +// __x is a proper subtree, returns the black height (null counts as 1). If +// __x is an improper subtree, returns 0. +template +unsigned +__tree_sub_invariant(_NodePtr __x) +{ + if (__x == nullptr) + return 1; + // parent consistency checked by caller + // check __x->__left_ consistency + if (__x->__left_ != nullptr && __x->__left_->__parent_ != __x) + return 0; + // check __x->__right_ consistency + if (__x->__right_ != nullptr && __x->__right_->__parent_ != __x) + return 0; + // check __x->__left_ != __x->__right_ unless both are nullptr + if (__x->__left_ == __x->__right_ && __x->__left_ != nullptr) + return 0; + // If this is red, neither child can be red + if (!__x->__is_black_) + { + if (__x->__left_ && !__x->__left_->__is_black_) + return 0; + if (__x->__right_ && !__x->__right_->__is_black_) + return 0; + } + unsigned __h = __tree_sub_invariant(__x->__left_); + if (__h == 0) + return 0; // invalid left subtree + if (__h != __tree_sub_invariant(__x->__right_)) + return 0; // invalid or different height right subtree + return __h + __x->__is_black_; // return black height of this node +} + +// Determines if the red black tree rooted at __root is a proper red black tree. +// __root == nullptr is a proper tree. Returns true is __root is a proper +// red black tree, else returns false. +template +bool +__tree_invariant(_NodePtr __root) +{ + if (__root == nullptr) + return true; + // check __x->__parent_ consistency + if (__root->__parent_ == nullptr) + return false; + if (!__tree_is_left_child(__root)) + return false; + // root must be black + if (!__root->__is_black_) + return false; + // do normal node checks + return __tree_sub_invariant(__root) != 0; +} + +// Returns: pointer to the left-most node under __x. +// Precondition: __x != nullptr. +template +inline _LIBCUDACXX_INLINE_VISIBILITY +_NodePtr +__tree_min(_NodePtr __x) _NOEXCEPT +{ + while (__x->__left_ != nullptr) + __x = __x->__left_; + return __x; +} + +// Returns: pointer to the right-most node under __x. +// Precondition: __x != nullptr. +template +inline _LIBCUDACXX_INLINE_VISIBILITY +_NodePtr +__tree_max(_NodePtr __x) _NOEXCEPT +{ + while (__x->__right_ != nullptr) + __x = __x->__right_; + return __x; +} + +// Returns: pointer to the next in-order node after __x. +// Precondition: __x != nullptr. +template +_NodePtr +__tree_next(_NodePtr __x) _NOEXCEPT +{ + if (__x->__right_ != nullptr) + return __tree_min(__x->__right_); + while (!__tree_is_left_child(__x)) + __x = __x->__parent_unsafe(); + return __x->__parent_unsafe(); +} + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +_EndNodePtr +__tree_next_iter(_NodePtr __x) _NOEXCEPT +{ + if (__x->__right_ != nullptr) + return static_cast<_EndNodePtr>(__tree_min(__x->__right_)); + while (!__tree_is_left_child(__x)) + __x = __x->__parent_unsafe(); + return static_cast<_EndNodePtr>(__x->__parent_); +} + +// Returns: pointer to the previous in-order node before __x. +// Precondition: __x != nullptr. +// Note: __x may be the end node. +template +inline _LIBCUDACXX_INLINE_VISIBILITY +_NodePtr +__tree_prev_iter(_EndNodePtr __x) _NOEXCEPT +{ + if (__x->__left_ != nullptr) + return __tree_max(__x->__left_); + _NodePtr __xx = static_cast<_NodePtr>(__x); + while (__tree_is_left_child(__xx)) + __xx = __xx->__parent_unsafe(); + return __xx->__parent_unsafe(); +} + +// Returns: pointer to a node which has no children +// Precondition: __x != nullptr. +template +_NodePtr +__tree_leaf(_NodePtr __x) _NOEXCEPT +{ + while (true) + { + if (__x->__left_ != nullptr) + { + __x = __x->__left_; + continue; + } + if (__x->__right_ != nullptr) + { + __x = __x->__right_; + continue; + } + break; + } + return __x; +} + +// Effects: Makes __x->__right_ the subtree root with __x as its left child +// while preserving in-order order. +// Precondition: __x->__right_ != nullptr +template +void +__tree_left_rotate(_NodePtr __x) _NOEXCEPT +{ + _NodePtr __y = __x->__right_; + __x->__right_ = __y->__left_; + if (__x->__right_ != nullptr) + __x->__right_->__set_parent(__x); + __y->__parent_ = __x->__parent_; + if (__tree_is_left_child(__x)) + __x->__parent_->__left_ = __y; + else + __x->__parent_unsafe()->__right_ = __y; + __y->__left_ = __x; + __x->__set_parent(__y); +} + +// Effects: Makes __x->__left_ the subtree root with __x as its right child +// while preserving in-order order. +// Precondition: __x->__left_ != nullptr +template +void +__tree_right_rotate(_NodePtr __x) _NOEXCEPT +{ + _NodePtr __y = __x->__left_; + __x->__left_ = __y->__right_; + if (__x->__left_ != nullptr) + __x->__left_->__set_parent(__x); + __y->__parent_ = __x->__parent_; + if (__tree_is_left_child(__x)) + __x->__parent_->__left_ = __y; + else + __x->__parent_unsafe()->__right_ = __y; + __y->__right_ = __x; + __x->__set_parent(__y); +} + +// Effects: Rebalances __root after attaching __x to a leaf. +// Precondition: __root != nulptr && __x != nullptr. +// __x has no children. +// __x == __root or == a direct or indirect child of __root. +// If __x were to be unlinked from __root (setting __root to +// nullptr if __root == __x), __tree_invariant(__root) == true. +// Postcondition: __tree_invariant(end_node->__left_) == true. end_node->__left_ +// may be different than the value passed in as __root. +template +void +__tree_balance_after_insert(_NodePtr __root, _NodePtr __x) _NOEXCEPT +{ + __x->__is_black_ = __x == __root; + while (__x != __root && !__x->__parent_unsafe()->__is_black_) + { + // __x->__parent_ != __root because __x->__parent_->__is_black == false + if (__tree_is_left_child(__x->__parent_unsafe())) + { + _NodePtr __y = __x->__parent_unsafe()->__parent_unsafe()->__right_; + if (__y != nullptr && !__y->__is_black_) + { + __x = __x->__parent_unsafe(); + __x->__is_black_ = true; + __x = __x->__parent_unsafe(); + __x->__is_black_ = __x == __root; + __y->__is_black_ = true; + } + else + { + if (!__tree_is_left_child(__x)) + { + __x = __x->__parent_unsafe(); + __tree_left_rotate(__x); + } + __x = __x->__parent_unsafe(); + __x->__is_black_ = true; + __x = __x->__parent_unsafe(); + __x->__is_black_ = false; + __tree_right_rotate(__x); + break; + } + } + else + { + _NodePtr __y = __x->__parent_unsafe()->__parent_->__left_; + if (__y != nullptr && !__y->__is_black_) + { + __x = __x->__parent_unsafe(); + __x->__is_black_ = true; + __x = __x->__parent_unsafe(); + __x->__is_black_ = __x == __root; + __y->__is_black_ = true; + } + else + { + if (__tree_is_left_child(__x)) + { + __x = __x->__parent_unsafe(); + __tree_right_rotate(__x); + } + __x = __x->__parent_unsafe(); + __x->__is_black_ = true; + __x = __x->__parent_unsafe(); + __x->__is_black_ = false; + __tree_left_rotate(__x); + break; + } + } + } +} + +// Precondition: __root != nullptr && __z != nullptr. +// __tree_invariant(__root) == true. +// __z == __root or == a direct or indirect child of __root. +// Effects: unlinks __z from the tree rooted at __root, rebalancing as needed. +// Postcondition: __tree_invariant(end_node->__left_) == true && end_node->__left_ +// nor any of its children refer to __z. end_node->__left_ +// may be different than the value passed in as __root. +template +void +__tree_remove(_NodePtr __root, _NodePtr __z) _NOEXCEPT +{ + // __z will be removed from the tree. Client still needs to destruct/deallocate it + // __y is either __z, or if __z has two children, __tree_next(__z). + // __y will have at most one child. + // __y will be the initial hole in the tree (make the hole at a leaf) + _NodePtr __y = (__z->__left_ == nullptr || __z->__right_ == nullptr) ? + __z : __tree_next(__z); + // __x is __y's possibly null single child + _NodePtr __x = __y->__left_ != nullptr ? __y->__left_ : __y->__right_; + // __w is __x's possibly null uncle (will become __x's sibling) + _NodePtr __w = nullptr; + // link __x to __y's parent, and find __w + if (__x != nullptr) + __x->__parent_ = __y->__parent_; + if (__tree_is_left_child(__y)) + { + __y->__parent_->__left_ = __x; + if (__y != __root) + __w = __y->__parent_unsafe()->__right_; + else + __root = __x; // __w == nullptr + } + else + { + __y->__parent_unsafe()->__right_ = __x; + // __y can't be root if it is a right child + __w = __y->__parent_->__left_; + } + bool __removed_black = __y->__is_black_; + // If we didn't remove __z, do so now by splicing in __y for __z, + // but copy __z's color. This does not impact __x or __w. + if (__y != __z) + { + // __z->__left_ != nulptr but __z->__right_ might == __x == nullptr + __y->__parent_ = __z->__parent_; + if (__tree_is_left_child(__z)) + __y->__parent_->__left_ = __y; + else + __y->__parent_unsafe()->__right_ = __y; + __y->__left_ = __z->__left_; + __y->__left_->__set_parent(__y); + __y->__right_ = __z->__right_; + if (__y->__right_ != nullptr) + __y->__right_->__set_parent(__y); + __y->__is_black_ = __z->__is_black_; + if (__root == __z) + __root = __y; + } + // There is no need to rebalance if we removed a red, or if we removed + // the last node. + if (__removed_black && __root != nullptr) + { + // Rebalance: + // __x has an implicit black color (transferred from the removed __y) + // associated with it, no matter what its color is. + // If __x is __root (in which case it can't be null), it is supposed + // to be black anyway, and if it is doubly black, then the double + // can just be ignored. + // If __x is red (in which case it can't be null), then it can absorb + // the implicit black just by setting its color to black. + // Since __y was black and only had one child (which __x points to), __x + // is either red with no children, else null, otherwise __y would have + // different black heights under left and right pointers. + // if (__x == __root || __x != nullptr && !__x->__is_black_) + if (__x != nullptr) + __x->__is_black_ = true; + else + { + // Else __x isn't root, and is "doubly black", even though it may + // be null. __w can not be null here, else the parent would + // see a black height >= 2 on the __x side and a black height + // of 1 on the __w side (__w must be a non-null black or a red + // with a non-null black child). + while (true) + { + if (!__tree_is_left_child(__w)) // if x is left child + { + if (!__w->__is_black_) + { + __w->__is_black_ = true; + __w->__parent_unsafe()->__is_black_ = false; + __tree_left_rotate(__w->__parent_unsafe()); + // __x is still valid + // reset __root only if necessary + if (__root == __w->__left_) + __root = __w; + // reset sibling, and it still can't be null + __w = __w->__left_->__right_; + } + // __w->__is_black_ is now true, __w may have null children + if ((__w->__left_ == nullptr || __w->__left_->__is_black_) && + (__w->__right_ == nullptr || __w->__right_->__is_black_)) + { + __w->__is_black_ = false; + __x = __w->__parent_unsafe(); + // __x can no longer be null + if (__x == __root || !__x->__is_black_) + { + __x->__is_black_ = true; + break; + } + // reset sibling, and it still can't be null + __w = __tree_is_left_child(__x) ? + __x->__parent_unsafe()->__right_ : + __x->__parent_->__left_; + // continue; + } + else // __w has a red child + { + if (__w->__right_ == nullptr || __w->__right_->__is_black_) + { + // __w left child is non-null and red + __w->__left_->__is_black_ = true; + __w->__is_black_ = false; + __tree_right_rotate(__w); + // __w is known not to be root, so root hasn't changed + // reset sibling, and it still can't be null + __w = __w->__parent_unsafe(); + } + // __w has a right red child, left child may be null + __w->__is_black_ = __w->__parent_unsafe()->__is_black_; + __w->__parent_unsafe()->__is_black_ = true; + __w->__right_->__is_black_ = true; + __tree_left_rotate(__w->__parent_unsafe()); + break; + } + } + else + { + if (!__w->__is_black_) + { + __w->__is_black_ = true; + __w->__parent_unsafe()->__is_black_ = false; + __tree_right_rotate(__w->__parent_unsafe()); + // __x is still valid + // reset __root only if necessary + if (__root == __w->__right_) + __root = __w; + // reset sibling, and it still can't be null + __w = __w->__right_->__left_; + } + // __w->__is_black_ is now true, __w may have null children + if ((__w->__left_ == nullptr || __w->__left_->__is_black_) && + (__w->__right_ == nullptr || __w->__right_->__is_black_)) + { + __w->__is_black_ = false; + __x = __w->__parent_unsafe(); + // __x can no longer be null + if (!__x->__is_black_ || __x == __root) + { + __x->__is_black_ = true; + break; + } + // reset sibling, and it still can't be null + __w = __tree_is_left_child(__x) ? + __x->__parent_unsafe()->__right_ : + __x->__parent_->__left_; + // continue; + } + else // __w has a red child + { + if (__w->__left_ == nullptr || __w->__left_->__is_black_) + { + // __w right child is non-null and red + __w->__right_->__is_black_ = true; + __w->__is_black_ = false; + __tree_left_rotate(__w); + // __w is known not to be root, so root hasn't changed + // reset sibling, and it still can't be null + __w = __w->__parent_unsafe(); + } + // __w has a left red child, right child may be null + __w->__is_black_ = __w->__parent_unsafe()->__is_black_; + __w->__parent_unsafe()->__is_black_ = true; + __w->__left_->__is_black_ = true; + __tree_right_rotate(__w->__parent_unsafe()); + break; + } + } + } + } + } +} + +// node traits + + +#ifndef _LIBCUDACXX_CXX03_LANG +template +struct __is_tree_value_type_imp : false_type {}; + +template +struct __is_tree_value_type_imp<__value_type<_Key, _Value>> : true_type {}; + +template +struct __is_tree_value_type : false_type {}; + +template +struct __is_tree_value_type<_One> : __is_tree_value_type_imp::type> {}; +#endif + +template +struct __tree_key_value_types { + typedef _Tp key_type; + typedef _Tp __node_value_type; + typedef _Tp __container_value_type; + static const bool __is_map = false; + + _LIBCUDACXX_INLINE_VISIBILITY + static key_type const& __get_key(_Tp const& __v) { + return __v; + } + _LIBCUDACXX_INLINE_VISIBILITY + static __container_value_type const& __get_value(__node_value_type const& __v) { + return __v; + } + _LIBCUDACXX_INLINE_VISIBILITY + static __container_value_type* __get_ptr(__node_value_type& __n) { + return _CUDA_VSTD::addressof(__n); + } +#ifndef _LIBCUDACXX_CXX03_LANG + _LIBCUDACXX_INLINE_VISIBILITY + static __container_value_type&& __move(__node_value_type& __v) { + return _CUDA_VSTD::move(__v); + } +#endif +}; + +template +struct __tree_key_value_types<__value_type<_Key, _Tp> > { + typedef _Key key_type; + typedef _Tp mapped_type; + typedef __value_type<_Key, _Tp> __node_value_type; + typedef pair __container_value_type; + typedef __container_value_type __map_value_type; + static const bool __is_map = true; + + _LIBCUDACXX_INLINE_VISIBILITY + static key_type const& + __get_key(__node_value_type const& __t) { + return __t.__get_value().first; + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + static typename enable_if<__is_same_uncvref<_Up, __container_value_type>::value, + key_type const&>::type + __get_key(_Up& __t) { + return __t.first; + } + + _LIBCUDACXX_INLINE_VISIBILITY + static __container_value_type const& + __get_value(__node_value_type const& __t) { + return __t.__get_value(); + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + static typename enable_if<__is_same_uncvref<_Up, __container_value_type>::value, + __container_value_type const&>::type + __get_value(_Up& __t) { + return __t; + } + + _LIBCUDACXX_INLINE_VISIBILITY + static __container_value_type* __get_ptr(__node_value_type& __n) { + return _CUDA_VSTD::addressof(__n.__get_value()); + } + +#ifndef _LIBCUDACXX_CXX03_LANG + _LIBCUDACXX_INLINE_VISIBILITY + static pair __move(__node_value_type& __v) { + return __v.__move(); + } +#endif +}; + +template +struct __tree_node_base_types { + typedef _VoidPtr __void_pointer; + + typedef __tree_node_base<__void_pointer> __node_base_type; + typedef typename __rebind_pointer<_VoidPtr, __node_base_type>::type + __node_base_pointer; + + typedef __tree_end_node<__node_base_pointer> __end_node_type; + typedef typename __rebind_pointer<_VoidPtr, __end_node_type>::type + __end_node_pointer; +#if defined(_LIBCUDACXX_ABI_TREE_REMOVE_NODE_POINTER_UB) + typedef __end_node_pointer __parent_pointer; +#else + typedef typename conditional< + is_pointer<__end_node_pointer>::value, + __end_node_pointer, + __node_base_pointer>::type __parent_pointer; +#endif + +private: + static_assert((is_same::element_type, void>::value), + "_VoidPtr does not point to unqualified void type"); +}; + +template , + bool = _KVTypes::__is_map> +struct __tree_map_pointer_types {}; + +template +struct __tree_map_pointer_types<_Tp, _AllocPtr, _KVTypes, true> { + typedef typename _KVTypes::__map_value_type _Mv; + typedef typename __rebind_pointer<_AllocPtr, _Mv>::type + __map_value_type_pointer; + typedef typename __rebind_pointer<_AllocPtr, const _Mv>::type + __const_map_value_type_pointer; +}; + +template ::element_type> +struct __tree_node_types; + +template +struct __tree_node_types<_NodePtr, __tree_node<_Tp, _VoidPtr> > + : public __tree_node_base_types<_VoidPtr>, + __tree_key_value_types<_Tp>, + __tree_map_pointer_types<_Tp, _VoidPtr> +{ + typedef __tree_node_base_types<_VoidPtr> __base; + typedef __tree_key_value_types<_Tp> __key_base; + typedef __tree_map_pointer_types<_Tp, _VoidPtr> __map_pointer_base; +public: + + typedef typename pointer_traits<_NodePtr>::element_type __node_type; + typedef _NodePtr __node_pointer; + + typedef _Tp __node_value_type; + typedef typename __rebind_pointer<_VoidPtr, __node_value_type>::type + __node_value_type_pointer; + typedef typename __rebind_pointer<_VoidPtr, const __node_value_type>::type + __const_node_value_type_pointer; +#if defined(_LIBCUDACXX_ABI_TREE_REMOVE_NODE_POINTER_UB) + typedef typename __base::__end_node_pointer __iter_pointer; +#else + typedef typename conditional< + is_pointer<__node_pointer>::value, + typename __base::__end_node_pointer, + __node_pointer>::type __iter_pointer; +#endif +private: + static_assert(!is_const<__node_type>::value, + "_NodePtr should never be a pointer to const"); + static_assert((is_same::type, + _NodePtr>::value), "_VoidPtr does not rebind to _NodePtr."); +}; + +template +struct __make_tree_node_types { + typedef typename __rebind_pointer<_VoidPtr, __tree_node<_ValueTp, _VoidPtr> >::type + _NodePtr; + typedef __tree_node_types<_NodePtr> type; +}; + +// node + +template +class __tree_end_node +{ +public: + typedef _Pointer pointer; + pointer __left_; + + _LIBCUDACXX_INLINE_VISIBILITY + __tree_end_node() _NOEXCEPT : __left_() {} +}; + +template +class __tree_node_base + : public __tree_node_base_types<_VoidPtr>::__end_node_type +{ + typedef __tree_node_base_types<_VoidPtr> _NodeBaseTypes; + +public: + typedef typename _NodeBaseTypes::__node_base_pointer pointer; + typedef typename _NodeBaseTypes::__parent_pointer __parent_pointer; + + pointer __right_; + __parent_pointer __parent_; + bool __is_black_; + + _LIBCUDACXX_INLINE_VISIBILITY + pointer __parent_unsafe() const { return static_cast(__parent_);} + + _LIBCUDACXX_INLINE_VISIBILITY + void __set_parent(pointer __p) { + __parent_ = static_cast<__parent_pointer>(__p); + } + +private: + ~__tree_node_base() _LIBCUDACXX_EQUAL_DELETE; + __tree_node_base(__tree_node_base const&) _LIBCUDACXX_EQUAL_DELETE; + __tree_node_base& operator=(__tree_node_base const&) _LIBCUDACXX_EQUAL_DELETE; +}; + +template +class __tree_node + : public __tree_node_base<_VoidPtr> +{ +public: + typedef _Tp __node_value_type; + + __node_value_type __value_; + +private: + ~__tree_node() _LIBCUDACXX_EQUAL_DELETE; + __tree_node(__tree_node const&) _LIBCUDACXX_EQUAL_DELETE; + __tree_node& operator=(__tree_node const&) _LIBCUDACXX_EQUAL_DELETE; +}; + + +template +class __tree_node_destructor +{ + typedef _Allocator allocator_type; + typedef allocator_traits __alloc_traits; + +public: + typedef typename __alloc_traits::pointer pointer; +private: + typedef __tree_node_types _NodeTypes; + allocator_type& __na_; + +public: + bool __value_constructed; + + __tree_node_destructor(const __tree_node_destructor &) = default; + __tree_node_destructor& operator=(const __tree_node_destructor&) = delete; + + _LIBCUDACXX_INLINE_VISIBILITY + explicit __tree_node_destructor(allocator_type& __na, bool __val = false) _NOEXCEPT + : __na_(__na), + __value_constructed(__val) + {} + + _LIBCUDACXX_INLINE_VISIBILITY + void operator()(pointer __p) _NOEXCEPT + { + if (__value_constructed) + __alloc_traits::destroy(__na_, _NodeTypes::__get_ptr(__p->__value_)); + if (__p) + __alloc_traits::deallocate(__na_, __p, 1); + } + + template friend class __map_node_destructor; +}; + +#if _LIBCUDACXX_STD_VER > 14 +template +struct __generic_container_node_destructor; +template +struct __generic_container_node_destructor<__tree_node<_Tp, _VoidPtr>, _Alloc> + : __tree_node_destructor<_Alloc> +{ + using __tree_node_destructor<_Alloc>::__tree_node_destructor; +}; +#endif + +template +class _LIBCUDACXX_TEMPLATE_VIS __tree_iterator +{ + typedef __tree_node_types<_NodePtr> _NodeTypes; + typedef _NodePtr __node_pointer; + typedef typename _NodeTypes::__node_base_pointer __node_base_pointer; + typedef typename _NodeTypes::__end_node_pointer __end_node_pointer; + typedef typename _NodeTypes::__iter_pointer __iter_pointer; + typedef pointer_traits<__node_pointer> __pointer_traits; + + __iter_pointer __ptr_; + +public: + typedef bidirectional_iterator_tag iterator_category; + typedef _Tp value_type; + typedef _DiffType difference_type; + typedef value_type& reference; + typedef typename _NodeTypes::__node_value_type_pointer pointer; + + _LIBCUDACXX_INLINE_VISIBILITY __tree_iterator() _NOEXCEPT +#if _LIBCUDACXX_STD_VER > 11 + : __ptr_(nullptr) +#endif + {} + + _LIBCUDACXX_INLINE_VISIBILITY reference operator*() const + {return __get_np()->__value_;} + _LIBCUDACXX_INLINE_VISIBILITY pointer operator->() const + {return pointer_traits::pointer_to(__get_np()->__value_);} + + _LIBCUDACXX_INLINE_VISIBILITY + __tree_iterator& operator++() { + __ptr_ = static_cast<__iter_pointer>( + __tree_next_iter<__end_node_pointer>(static_cast<__node_base_pointer>(__ptr_))); + return *this; + } + _LIBCUDACXX_INLINE_VISIBILITY + __tree_iterator operator++(int) + {__tree_iterator __t(*this); ++(*this); return __t;} + + _LIBCUDACXX_INLINE_VISIBILITY + __tree_iterator& operator--() { + __ptr_ = static_cast<__iter_pointer>(__tree_prev_iter<__node_base_pointer>( + static_cast<__end_node_pointer>(__ptr_))); + return *this; + } + _LIBCUDACXX_INLINE_VISIBILITY + __tree_iterator operator--(int) + {__tree_iterator __t(*this); --(*this); return __t;} + + friend _LIBCUDACXX_INLINE_VISIBILITY + bool operator==(const __tree_iterator& __x, const __tree_iterator& __y) + {return __x.__ptr_ == __y.__ptr_;} + friend _LIBCUDACXX_INLINE_VISIBILITY + bool operator!=(const __tree_iterator& __x, const __tree_iterator& __y) + {return !(__x == __y);} + +private: + _LIBCUDACXX_INLINE_VISIBILITY + explicit __tree_iterator(__node_pointer __p) _NOEXCEPT : __ptr_(__p) {} + _LIBCUDACXX_INLINE_VISIBILITY + explicit __tree_iterator(__end_node_pointer __p) _NOEXCEPT : __ptr_(__p) {} + _LIBCUDACXX_INLINE_VISIBILITY + __node_pointer __get_np() const { return static_cast<__node_pointer>(__ptr_); } + template friend class __tree; + template friend class _LIBCUDACXX_TEMPLATE_VIS __tree_const_iterator; + template friend class _LIBCUDACXX_TEMPLATE_VIS __map_iterator; + template friend class _LIBCUDACXX_TEMPLATE_VIS map; + template friend class _LIBCUDACXX_TEMPLATE_VIS multimap; + template friend class _LIBCUDACXX_TEMPLATE_VIS set; + template friend class _LIBCUDACXX_TEMPLATE_VIS multiset; +}; + +template +class _LIBCUDACXX_TEMPLATE_VIS __tree_const_iterator +{ + typedef __tree_node_types<_NodePtr> _NodeTypes; + typedef typename _NodeTypes::__node_pointer __node_pointer; + typedef typename _NodeTypes::__node_base_pointer __node_base_pointer; + typedef typename _NodeTypes::__end_node_pointer __end_node_pointer; + typedef typename _NodeTypes::__iter_pointer __iter_pointer; + typedef pointer_traits<__node_pointer> __pointer_traits; + + __iter_pointer __ptr_; + +public: + typedef bidirectional_iterator_tag iterator_category; + typedef _Tp value_type; + typedef _DiffType difference_type; + typedef const value_type& reference; + typedef typename _NodeTypes::__const_node_value_type_pointer pointer; + + _LIBCUDACXX_INLINE_VISIBILITY __tree_const_iterator() _NOEXCEPT +#if _LIBCUDACXX_STD_VER > 11 + : __ptr_(nullptr) +#endif + {} + +private: + typedef __tree_iterator + __non_const_iterator; +public: + _LIBCUDACXX_INLINE_VISIBILITY + __tree_const_iterator(__non_const_iterator __p) _NOEXCEPT + : __ptr_(__p.__ptr_) {} + + _LIBCUDACXX_INLINE_VISIBILITY reference operator*() const + {return __get_np()->__value_;} + _LIBCUDACXX_INLINE_VISIBILITY pointer operator->() const + {return pointer_traits::pointer_to(__get_np()->__value_);} + + _LIBCUDACXX_INLINE_VISIBILITY + __tree_const_iterator& operator++() { + __ptr_ = static_cast<__iter_pointer>( + __tree_next_iter<__end_node_pointer>(static_cast<__node_base_pointer>(__ptr_))); + return *this; + } + + _LIBCUDACXX_INLINE_VISIBILITY + __tree_const_iterator operator++(int) + {__tree_const_iterator __t(*this); ++(*this); return __t;} + + _LIBCUDACXX_INLINE_VISIBILITY + __tree_const_iterator& operator--() { + __ptr_ = static_cast<__iter_pointer>(__tree_prev_iter<__node_base_pointer>( + static_cast<__end_node_pointer>(__ptr_))); + return *this; + } + + _LIBCUDACXX_INLINE_VISIBILITY + __tree_const_iterator operator--(int) + {__tree_const_iterator __t(*this); --(*this); return __t;} + + friend _LIBCUDACXX_INLINE_VISIBILITY + bool operator==(const __tree_const_iterator& __x, const __tree_const_iterator& __y) + {return __x.__ptr_ == __y.__ptr_;} + friend _LIBCUDACXX_INLINE_VISIBILITY + bool operator!=(const __tree_const_iterator& __x, const __tree_const_iterator& __y) + {return !(__x == __y);} + +private: + _LIBCUDACXX_INLINE_VISIBILITY + explicit __tree_const_iterator(__node_pointer __p) _NOEXCEPT + : __ptr_(__p) {} + _LIBCUDACXX_INLINE_VISIBILITY + explicit __tree_const_iterator(__end_node_pointer __p) _NOEXCEPT + : __ptr_(__p) {} + _LIBCUDACXX_INLINE_VISIBILITY + __node_pointer __get_np() const { return static_cast<__node_pointer>(__ptr_); } + + template friend class __tree; + template friend class _LIBCUDACXX_TEMPLATE_VIS map; + template friend class _LIBCUDACXX_TEMPLATE_VIS multimap; + template friend class _LIBCUDACXX_TEMPLATE_VIS set; + template friend class _LIBCUDACXX_TEMPLATE_VIS multiset; + template friend class _LIBCUDACXX_TEMPLATE_VIS __map_const_iterator; + +}; + +template +#ifndef _LIBCUDACXX_CXX03_LANG + _LIBCUDACXX_DIAGNOSE_WARNING(!std::__invokable<_Compare const&, _Tp const&, _Tp const&>::value, + "the specified comparator type does not provide a viable const call operator") +#endif +int __diagnose_non_const_comparator(); + +template +class __tree +{ +public: + typedef _Tp value_type; + typedef _Compare value_compare; + typedef _Allocator allocator_type; + +private: + typedef allocator_traits __alloc_traits; + typedef typename __make_tree_node_types::type + _NodeTypes; + typedef typename _NodeTypes::key_type key_type; +public: + typedef typename _NodeTypes::__node_value_type __node_value_type; + typedef typename _NodeTypes::__container_value_type __container_value_type; + + typedef typename __alloc_traits::pointer pointer; + typedef typename __alloc_traits::const_pointer const_pointer; + typedef typename __alloc_traits::size_type size_type; + typedef typename __alloc_traits::difference_type difference_type; + +public: + typedef typename _NodeTypes::__void_pointer __void_pointer; + + typedef typename _NodeTypes::__node_type __node; + typedef typename _NodeTypes::__node_pointer __node_pointer; + + typedef typename _NodeTypes::__node_base_type __node_base; + typedef typename _NodeTypes::__node_base_pointer __node_base_pointer; + + typedef typename _NodeTypes::__end_node_type __end_node_t; + typedef typename _NodeTypes::__end_node_pointer __end_node_ptr; + + typedef typename _NodeTypes::__parent_pointer __parent_pointer; + typedef typename _NodeTypes::__iter_pointer __iter_pointer; + + typedef typename __rebind_alloc_helper<__alloc_traits, __node>::type __node_allocator; + typedef allocator_traits<__node_allocator> __node_traits; + +private: + // check for sane allocator pointer rebinding semantics. Rebinding the + // allocator for a new pointer type should be exactly the same as rebinding + // the pointer using 'pointer_traits'. + static_assert((is_same<__node_pointer, typename __node_traits::pointer>::value), + "Allocator does not rebind pointers in a sane manner."); + typedef typename __rebind_alloc_helper<__node_traits, __node_base>::type + __node_base_allocator; + typedef allocator_traits<__node_base_allocator> __node_base_traits; + static_assert((is_same<__node_base_pointer, typename __node_base_traits::pointer>::value), + "Allocator does not rebind pointers in a sane manner."); + +private: + __iter_pointer __begin_node_; + __compressed_pair<__end_node_t, __node_allocator> __pair1_; + __compressed_pair __pair3_; + +public: + _LIBCUDACXX_INLINE_VISIBILITY + __iter_pointer __end_node() _NOEXCEPT + { + return static_cast<__iter_pointer>( + pointer_traits<__end_node_ptr>::pointer_to(__pair1_.first()) + ); + } + _LIBCUDACXX_INLINE_VISIBILITY + __iter_pointer __end_node() const _NOEXCEPT + { + return static_cast<__iter_pointer>( + pointer_traits<__end_node_ptr>::pointer_to( + const_cast<__end_node_t&>(__pair1_.first()) + ) + ); + } + _LIBCUDACXX_INLINE_VISIBILITY + __node_allocator& __node_alloc() _NOEXCEPT {return __pair1_.second();} +private: + _LIBCUDACXX_INLINE_VISIBILITY + const __node_allocator& __node_alloc() const _NOEXCEPT + {return __pair1_.second();} + _LIBCUDACXX_INLINE_VISIBILITY + __iter_pointer& __begin_node() _NOEXCEPT {return __begin_node_;} + _LIBCUDACXX_INLINE_VISIBILITY + const __iter_pointer& __begin_node() const _NOEXCEPT {return __begin_node_;} +public: + _LIBCUDACXX_INLINE_VISIBILITY + allocator_type __alloc() const _NOEXCEPT + {return allocator_type(__node_alloc());} +private: + _LIBCUDACXX_INLINE_VISIBILITY + size_type& size() _NOEXCEPT {return __pair3_.first();} +public: + _LIBCUDACXX_INLINE_VISIBILITY + const size_type& size() const _NOEXCEPT {return __pair3_.first();} + _LIBCUDACXX_INLINE_VISIBILITY + value_compare& value_comp() _NOEXCEPT {return __pair3_.second();} + _LIBCUDACXX_INLINE_VISIBILITY + const value_compare& value_comp() const _NOEXCEPT + {return __pair3_.second();} +public: + + _LIBCUDACXX_INLINE_VISIBILITY + __node_pointer __root() const _NOEXCEPT + {return static_cast<__node_pointer>(__end_node()->__left_);} + + __node_base_pointer* __root_ptr() const _NOEXCEPT { + return _CUDA_VSTD::addressof(__end_node()->__left_); + } + + typedef __tree_iterator iterator; + typedef __tree_const_iterator const_iterator; + + explicit __tree(const value_compare& __comp) + _NOEXCEPT_( + is_nothrow_default_constructible<__node_allocator>::value && + is_nothrow_copy_constructible::value); + explicit __tree(const allocator_type& __a); + __tree(const value_compare& __comp, const allocator_type& __a); + __tree(const __tree& __t); + __tree& operator=(const __tree& __t); + template + void __assign_unique(_ForwardIterator __first, _ForwardIterator __last); + template + void __assign_multi(_InputIterator __first, _InputIterator __last); +#ifndef _LIBCUDACXX_CXX03_LANG + __tree(__tree&& __t) + _NOEXCEPT_( + is_nothrow_move_constructible<__node_allocator>::value && + is_nothrow_move_constructible::value); + __tree(__tree&& __t, const allocator_type& __a); + __tree& operator=(__tree&& __t) + _NOEXCEPT_( + __node_traits::propagate_on_container_move_assignment::value && + is_nothrow_move_assignable::value && + is_nothrow_move_assignable<__node_allocator>::value); +#endif // _LIBCUDACXX_CXX03_LANG + + ~__tree(); + + _LIBCUDACXX_INLINE_VISIBILITY + iterator begin() _NOEXCEPT {return iterator(__begin_node());} + _LIBCUDACXX_INLINE_VISIBILITY + const_iterator begin() const _NOEXCEPT {return const_iterator(__begin_node());} + _LIBCUDACXX_INLINE_VISIBILITY + iterator end() _NOEXCEPT {return iterator(__end_node());} + _LIBCUDACXX_INLINE_VISIBILITY + const_iterator end() const _NOEXCEPT {return const_iterator(__end_node());} + + _LIBCUDACXX_INLINE_VISIBILITY + size_type max_size() const _NOEXCEPT + {return std::min( + __node_traits::max_size(__node_alloc()), + numeric_limits::max());} + + void clear() _NOEXCEPT; + + void swap(__tree& __t) +#if _LIBCUDACXX_STD_VER <= 11 + _NOEXCEPT_( + __is_nothrow_swappable::value + && (!__node_traits::propagate_on_container_swap::value || + __is_nothrow_swappable<__node_allocator>::value) + ); +#else + _NOEXCEPT_(__is_nothrow_swappable::value); +#endif + +#ifndef _LIBCUDACXX_CXX03_LANG + template + pair + __emplace_unique_key_args(_Key const&, _Args&&... __args); + template + iterator + __emplace_hint_unique_key_args(const_iterator, _Key const&, _Args&&...); + + template + pair __emplace_unique_impl(_Args&&... __args); + + template + iterator __emplace_hint_unique_impl(const_iterator __p, _Args&&... __args); + + template + iterator __emplace_multi(_Args&&... __args); + + template + iterator __emplace_hint_multi(const_iterator __p, _Args&&... __args); + + template + _LIBCUDACXX_INLINE_VISIBILITY + pair __emplace_unique(_Pp&& __x) { + return __emplace_unique_extract_key(_CUDA_VSTD::forward<_Pp>(__x), + __can_extract_key<_Pp, key_type>()); + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + typename enable_if< + __can_extract_map_key<_First, key_type, __container_value_type>::value, + pair + >::type __emplace_unique(_First&& __f, _Second&& __s) { + return __emplace_unique_key_args(__f, _CUDA_VSTD::forward<_First>(__f), + _CUDA_VSTD::forward<_Second>(__s)); + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + pair __emplace_unique(_Args&&... __args) { + return __emplace_unique_impl(_CUDA_VSTD::forward<_Args>(__args)...); + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + pair + __emplace_unique_extract_key(_Pp&& __x, __extract_key_fail_tag) { + return __emplace_unique_impl(_CUDA_VSTD::forward<_Pp>(__x)); + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + pair + __emplace_unique_extract_key(_Pp&& __x, __extract_key_self_tag) { + return __emplace_unique_key_args(__x, _CUDA_VSTD::forward<_Pp>(__x)); + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + pair + __emplace_unique_extract_key(_Pp&& __x, __extract_key_first_tag) { + return __emplace_unique_key_args(__x.first, _CUDA_VSTD::forward<_Pp>(__x)); + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + iterator __emplace_hint_unique(const_iterator __p, _Pp&& __x) { + return __emplace_hint_unique_extract_key(__p, _CUDA_VSTD::forward<_Pp>(__x), + __can_extract_key<_Pp, key_type>()); + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + typename enable_if< + __can_extract_map_key<_First, key_type, __container_value_type>::value, + iterator + >::type __emplace_hint_unique(const_iterator __p, _First&& __f, _Second&& __s) { + return __emplace_hint_unique_key_args(__p, __f, + _CUDA_VSTD::forward<_First>(__f), + _CUDA_VSTD::forward<_Second>(__s)); + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + iterator __emplace_hint_unique(const_iterator __p, _Args&&... __args) { + return __emplace_hint_unique_impl(__p, _CUDA_VSTD::forward<_Args>(__args)...); + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + iterator + __emplace_hint_unique_extract_key(const_iterator __p, _Pp&& __x, __extract_key_fail_tag) { + return __emplace_hint_unique_impl(__p, _CUDA_VSTD::forward<_Pp>(__x)); + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + iterator + __emplace_hint_unique_extract_key(const_iterator __p, _Pp&& __x, __extract_key_self_tag) { + return __emplace_hint_unique_key_args(__p, __x, _CUDA_VSTD::forward<_Pp>(__x)); + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + iterator + __emplace_hint_unique_extract_key(const_iterator __p, _Pp&& __x, __extract_key_first_tag) { + return __emplace_hint_unique_key_args(__p, __x.first, _CUDA_VSTD::forward<_Pp>(__x)); + } + +#else + template + _LIBCUDACXX_INLINE_VISIBILITY + pair __emplace_unique_key_args(_Key const&, _Args& __args); + template + _LIBCUDACXX_INLINE_VISIBILITY + iterator __emplace_hint_unique_key_args(const_iterator, _Key const&, _Args&); +#endif + + _LIBCUDACXX_INLINE_VISIBILITY + pair __insert_unique(const __container_value_type& __v) { + return __emplace_unique_key_args(_NodeTypes::__get_key(__v), __v); + } + + _LIBCUDACXX_INLINE_VISIBILITY + iterator __insert_unique(const_iterator __p, const __container_value_type& __v) { + return __emplace_hint_unique_key_args(__p, _NodeTypes::__get_key(__v), __v); + } + +#ifdef _LIBCUDACXX_CXX03_LANG + _LIBCUDACXX_INLINE_VISIBILITY + iterator __insert_multi(const __container_value_type& __v); + _LIBCUDACXX_INLINE_VISIBILITY + iterator __insert_multi(const_iterator __p, const __container_value_type& __v); +#else + _LIBCUDACXX_INLINE_VISIBILITY + pair __insert_unique(__container_value_type&& __v) { + return __emplace_unique_key_args(_NodeTypes::__get_key(__v), _CUDA_VSTD::move(__v)); + } + + _LIBCUDACXX_INLINE_VISIBILITY + iterator __insert_unique(const_iterator __p, __container_value_type&& __v) { + return __emplace_hint_unique_key_args(__p, _NodeTypes::__get_key(__v), _CUDA_VSTD::move(__v)); + } + + template ::type, + __container_value_type + >::value + >::type> + _LIBCUDACXX_INLINE_VISIBILITY + pair __insert_unique(_Vp&& __v) { + return __emplace_unique(_CUDA_VSTD::forward<_Vp>(__v)); + } + + template ::type, + __container_value_type + >::value + >::type> + _LIBCUDACXX_INLINE_VISIBILITY + iterator __insert_unique(const_iterator __p, _Vp&& __v) { + return __emplace_hint_unique(__p, _CUDA_VSTD::forward<_Vp>(__v)); + } + + _LIBCUDACXX_INLINE_VISIBILITY + iterator __insert_multi(__container_value_type&& __v) { + return __emplace_multi(_CUDA_VSTD::move(__v)); + } + + _LIBCUDACXX_INLINE_VISIBILITY + iterator __insert_multi(const_iterator __p, __container_value_type&& __v) { + return __emplace_hint_multi(__p, _CUDA_VSTD::move(__v)); + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + iterator __insert_multi(_Vp&& __v) { + return __emplace_multi(_CUDA_VSTD::forward<_Vp>(__v)); + } + + template + _LIBCUDACXX_INLINE_VISIBILITY + iterator __insert_multi(const_iterator __p, _Vp&& __v) { + return __emplace_hint_multi(__p, _CUDA_VSTD::forward<_Vp>(__v)); + } + +#endif // !_LIBCUDACXX_CXX03_LANG + + _LIBCUDACXX_INLINE_VISIBILITY + pair __node_assign_unique(const __container_value_type& __v, __node_pointer __dest); + + _LIBCUDACXX_INLINE_VISIBILITY + iterator __node_insert_multi(__node_pointer __nd); + _LIBCUDACXX_INLINE_VISIBILITY + iterator __node_insert_multi(const_iterator __p, __node_pointer __nd); + + + _LIBCUDACXX_INLINE_VISIBILITY iterator + __remove_node_pointer(__node_pointer) _NOEXCEPT; + +#if _LIBCUDACXX_STD_VER > 14 + template + _LIBCUDACXX_INLINE_VISIBILITY + _InsertReturnType __node_handle_insert_unique(_NodeHandle&&); + template + _LIBCUDACXX_INLINE_VISIBILITY + iterator __node_handle_insert_unique(const_iterator, _NodeHandle&&); + template + _LIBCUDACXX_INLINE_VISIBILITY + void __node_handle_merge_unique(_Tree& __source); + + template + _LIBCUDACXX_INLINE_VISIBILITY + iterator __node_handle_insert_multi(_NodeHandle&&); + template + _LIBCUDACXX_INLINE_VISIBILITY + iterator __node_handle_insert_multi(const_iterator, _NodeHandle&&); + template + _LIBCUDACXX_INLINE_VISIBILITY + void __node_handle_merge_multi(_Tree& __source); + + + template + _LIBCUDACXX_INLINE_VISIBILITY + _NodeHandle __node_handle_extract(key_type const&); + template + _LIBCUDACXX_INLINE_VISIBILITY + _NodeHandle __node_handle_extract(const_iterator); +#endif + + iterator erase(const_iterator __p); + iterator erase(const_iterator __f, const_iterator __l); + template + size_type __erase_unique(const _Key& __k); + template + size_type __erase_multi(const _Key& __k); + + void __insert_node_at(__parent_pointer __parent, + __node_base_pointer& __child, + __node_base_pointer __new_node) _NOEXCEPT; + + template + iterator find(const _Key& __v); + template + const_iterator find(const _Key& __v) const; + + template + size_type __count_unique(const _Key& __k) const; + template + size_type __count_multi(const _Key& __k) const; + + template + _LIBCUDACXX_INLINE_VISIBILITY + iterator lower_bound(const _Key& __v) + {return __lower_bound(__v, __root(), __end_node());} + template + iterator __lower_bound(const _Key& __v, + __node_pointer __root, + __iter_pointer __result); + template + _LIBCUDACXX_INLINE_VISIBILITY + const_iterator lower_bound(const _Key& __v) const + {return __lower_bound(__v, __root(), __end_node());} + template + const_iterator __lower_bound(const _Key& __v, + __node_pointer __root, + __iter_pointer __result) const; + template + _LIBCUDACXX_INLINE_VISIBILITY + iterator upper_bound(const _Key& __v) + {return __upper_bound(__v, __root(), __end_node());} + template + iterator __upper_bound(const _Key& __v, + __node_pointer __root, + __iter_pointer __result); + template + _LIBCUDACXX_INLINE_VISIBILITY + const_iterator upper_bound(const _Key& __v) const + {return __upper_bound(__v, __root(), __end_node());} + template + const_iterator __upper_bound(const _Key& __v, + __node_pointer __root, + __iter_pointer __result) const; + template + pair + __equal_range_unique(const _Key& __k); + template + pair + __equal_range_unique(const _Key& __k) const; + + template + pair + __equal_range_multi(const _Key& __k); + template + pair + __equal_range_multi(const _Key& __k) const; + + typedef __tree_node_destructor<__node_allocator> _Dp; + typedef unique_ptr<__node, _Dp> __node_holder; + + __node_holder remove(const_iterator __p) _NOEXCEPT; +private: + __node_base_pointer& + __find_leaf_low(__parent_pointer& __parent, const key_type& __v); + __node_base_pointer& + __find_leaf_high(__parent_pointer& __parent, const key_type& __v); + __node_base_pointer& + __find_leaf(const_iterator __hint, + __parent_pointer& __parent, const key_type& __v); + // FIXME: Make this function const qualified. Unfortunetly doing so + // breaks existing code which uses non-const callable comparators. + template + __node_base_pointer& + __find_equal(__parent_pointer& __parent, const _Key& __v); + template + _LIBCUDACXX_INLINE_VISIBILITY __node_base_pointer& + __find_equal(__parent_pointer& __parent, const _Key& __v) const { + return const_cast<__tree*>(this)->__find_equal(__parent, __v); + } + template + __node_base_pointer& + __find_equal(const_iterator __hint, __parent_pointer& __parent, + __node_base_pointer& __dummy, + const _Key& __v); + +#ifndef _LIBCUDACXX_CXX03_LANG + template + __node_holder __construct_node(_Args&& ...__args); +#else + __node_holder __construct_node(const __container_value_type& __v); +#endif + + void destroy(__node_pointer __nd) _NOEXCEPT; + + _LIBCUDACXX_INLINE_VISIBILITY + void __copy_assign_alloc(const __tree& __t) + {__copy_assign_alloc(__t, integral_constant());} + + _LIBCUDACXX_INLINE_VISIBILITY + void __copy_assign_alloc(const __tree& __t, true_type) + { + if (__node_alloc() != __t.__node_alloc()) + clear(); + __node_alloc() = __t.__node_alloc(); + } + _LIBCUDACXX_INLINE_VISIBILITY + void __copy_assign_alloc(const __tree&, false_type) {} + + void __move_assign(__tree& __t, false_type); + void __move_assign(__tree& __t, true_type) + _NOEXCEPT_(is_nothrow_move_assignable::value && + is_nothrow_move_assignable<__node_allocator>::value); + + _LIBCUDACXX_INLINE_VISIBILITY + void __move_assign_alloc(__tree& __t) + _NOEXCEPT_( + !__node_traits::propagate_on_container_move_assignment::value || + is_nothrow_move_assignable<__node_allocator>::value) + {__move_assign_alloc(__t, integral_constant());} + + _LIBCUDACXX_INLINE_VISIBILITY + void __move_assign_alloc(__tree& __t, true_type) + _NOEXCEPT_(is_nothrow_move_assignable<__node_allocator>::value) + {__node_alloc() = _CUDA_VSTD::move(__t.__node_alloc());} + _LIBCUDACXX_INLINE_VISIBILITY + void __move_assign_alloc(__tree&, false_type) _NOEXCEPT {} + + struct _DetachedTreeCache { + _LIBCUDACXX_INLINE_VISIBILITY + explicit _DetachedTreeCache(__tree *__t) _NOEXCEPT : __t_(__t), + __cache_root_(__detach_from_tree(__t)) { + __advance(); + } + + _LIBCUDACXX_INLINE_VISIBILITY + __node_pointer __get() const _NOEXCEPT { + return __cache_elem_; + } + + _LIBCUDACXX_INLINE_VISIBILITY + void __advance() _NOEXCEPT { + __cache_elem_ = __cache_root_; + if (__cache_root_) { + __cache_root_ = __detach_next(__cache_root_); + } + } + + _LIBCUDACXX_INLINE_VISIBILITY + ~_DetachedTreeCache() { + __t_->destroy(__cache_elem_); + if (__cache_root_) { + while (__cache_root_->__parent_ != nullptr) + __cache_root_ = static_cast<__node_pointer>(__cache_root_->__parent_); + __t_->destroy(__cache_root_); + } + } + + _DetachedTreeCache(_DetachedTreeCache const&) = delete; + _DetachedTreeCache& operator=(_DetachedTreeCache const&) = delete; + + private: + _LIBCUDACXX_INLINE_VISIBILITY + static __node_pointer __detach_from_tree(__tree *__t) _NOEXCEPT; + _LIBCUDACXX_INLINE_VISIBILITY + static __node_pointer __detach_next(__node_pointer) _NOEXCEPT; + + __tree *__t_; + __node_pointer __cache_root_; + __node_pointer __cache_elem_; + }; + + + template friend class _LIBCUDACXX_TEMPLATE_VIS map; + template friend class _LIBCUDACXX_TEMPLATE_VIS multimap; +}; + +template +__tree<_Tp, _Compare, _Allocator>::__tree(const value_compare& __comp) + _NOEXCEPT_( + is_nothrow_default_constructible<__node_allocator>::value && + is_nothrow_copy_constructible::value) + : __pair3_(0, __comp) +{ + __begin_node() = __end_node(); +} + +template +__tree<_Tp, _Compare, _Allocator>::__tree(const allocator_type& __a) + : __begin_node_(__iter_pointer()), + __pair1_(__second_tag(), __node_allocator(__a)), + __pair3_(0) +{ + __begin_node() = __end_node(); +} + +template +__tree<_Tp, _Compare, _Allocator>::__tree(const value_compare& __comp, + const allocator_type& __a) + : __begin_node_(__iter_pointer()), + __pair1_(__second_tag(), __node_allocator(__a)), + __pair3_(0, __comp) +{ + __begin_node() = __end_node(); +} + +// Precondition: size() != 0 +template +typename __tree<_Tp, _Compare, _Allocator>::__node_pointer +__tree<_Tp, _Compare, _Allocator>::_DetachedTreeCache::__detach_from_tree(__tree *__t) _NOEXCEPT +{ + __node_pointer __cache = static_cast<__node_pointer>(__t->__begin_node()); + __t->__begin_node() = __t->__end_node(); + __t->__end_node()->__left_->__parent_ = nullptr; + __t->__end_node()->__left_ = nullptr; + __t->size() = 0; + // __cache->__left_ == nullptr + if (__cache->__right_ != nullptr) + __cache = static_cast<__node_pointer>(__cache->__right_); + // __cache->__left_ == nullptr + // __cache->__right_ == nullptr + return __cache; +} + +// Precondition: __cache != nullptr +// __cache->left_ == nullptr +// __cache->right_ == nullptr +// This is no longer a red-black tree +template +typename __tree<_Tp, _Compare, _Allocator>::__node_pointer +__tree<_Tp, _Compare, _Allocator>::_DetachedTreeCache::__detach_next(__node_pointer __cache) _NOEXCEPT +{ + if (__cache->__parent_ == nullptr) + return nullptr; + if (__tree_is_left_child(static_cast<__node_base_pointer>(__cache))) + { + __cache->__parent_->__left_ = nullptr; + __cache = static_cast<__node_pointer>(__cache->__parent_); + if (__cache->__right_ == nullptr) + return __cache; + return static_cast<__node_pointer>(__tree_leaf(__cache->__right_)); + } + // __cache is right child + __cache->__parent_unsafe()->__right_ = nullptr; + __cache = static_cast<__node_pointer>(__cache->__parent_); + if (__cache->__left_ == nullptr) + return __cache; + return static_cast<__node_pointer>(__tree_leaf(__cache->__left_)); +} + +template +__tree<_Tp, _Compare, _Allocator>& +__tree<_Tp, _Compare, _Allocator>::operator=(const __tree& __t) +{ + if (this != &__t) + { + value_comp() = __t.value_comp(); + __copy_assign_alloc(__t); + __assign_multi(__t.begin(), __t.end()); + } + return *this; +} + +template +template +void +__tree<_Tp, _Compare, _Allocator>::__assign_unique(_ForwardIterator __first, _ForwardIterator __last) +{ + typedef iterator_traits<_ForwardIterator> _ITraits; + typedef typename _ITraits::value_type _ItValueType; + static_assert((is_same<_ItValueType, __container_value_type>::value), + "__assign_unique may only be called with the containers value type"); + static_assert(__is_forward_iterator<_ForwardIterator>::value, + "__assign_unique requires a forward iterator"); + if (size() != 0) + { + _DetachedTreeCache __cache(this); + for (; __cache.__get() != nullptr && __first != __last; ++__first) { + if (__node_assign_unique(*__first, __cache.__get()).second) + __cache.__advance(); + } + } + for (; __first != __last; ++__first) + __insert_unique(*__first); +} + +template +template +void +__tree<_Tp, _Compare, _Allocator>::__assign_multi(_InputIterator __first, _InputIterator __last) +{ + typedef iterator_traits<_InputIterator> _ITraits; + typedef typename _ITraits::value_type _ItValueType; + static_assert((is_same<_ItValueType, __container_value_type>::value || + is_same<_ItValueType, __node_value_type>::value), + "__assign_multi may only be called with the containers value type" + " or the nodes value type"); + if (size() != 0) + { + _DetachedTreeCache __cache(this); + for (; __cache.__get() && __first != __last; ++__first) { + __cache.__get()->__value_ = *__first; + __node_insert_multi(__cache.__get()); + __cache.__advance(); + } + } + for (; __first != __last; ++__first) + __insert_multi(_NodeTypes::__get_value(*__first)); +} + +template +__tree<_Tp, _Compare, _Allocator>::__tree(const __tree& __t) + : __begin_node_(__iter_pointer()), + __pair1_(__second_tag(), __node_traits::select_on_container_copy_construction(__t.__node_alloc())), + __pair3_(0, __t.value_comp()) +{ + __begin_node() = __end_node(); +} + +#ifndef _LIBCUDACXX_CXX03_LANG + +template +__tree<_Tp, _Compare, _Allocator>::__tree(__tree&& __t) + _NOEXCEPT_( + is_nothrow_move_constructible<__node_allocator>::value && + is_nothrow_move_constructible::value) + : __begin_node_(_CUDA_VSTD::move(__t.__begin_node_)), + __pair1_(_CUDA_VSTD::move(__t.__pair1_)), + __pair3_(_CUDA_VSTD::move(__t.__pair3_)) +{ + if (size() == 0) + __begin_node() = __end_node(); + else + { + __end_node()->__left_->__parent_ = static_cast<__parent_pointer>(__end_node()); + __t.__begin_node() = __t.__end_node(); + __t.__end_node()->__left_ = nullptr; + __t.size() = 0; + } +} + +template +__tree<_Tp, _Compare, _Allocator>::__tree(__tree&& __t, const allocator_type& __a) + : __pair1_(__second_tag(), __node_allocator(__a)), + __pair3_(0, _CUDA_VSTD::move(__t.value_comp())) +{ + if (__a == __t.__alloc()) + { + if (__t.size() == 0) + __begin_node() = __end_node(); + else + { + __begin_node() = __t.__begin_node(); + __end_node()->__left_ = __t.__end_node()->__left_; + __end_node()->__left_->__parent_ = static_cast<__parent_pointer>(__end_node()); + size() = __t.size(); + __t.__begin_node() = __t.__end_node(); + __t.__end_node()->__left_ = nullptr; + __t.size() = 0; + } + } + else + { + __begin_node() = __end_node(); + } +} + +template +void +__tree<_Tp, _Compare, _Allocator>::__move_assign(__tree& __t, true_type) + _NOEXCEPT_(is_nothrow_move_assignable::value && + is_nothrow_move_assignable<__node_allocator>::value) +{ + destroy(static_cast<__node_pointer>(__end_node()->__left_)); + __begin_node_ = __t.__begin_node_; + __pair1_.first() = __t.__pair1_.first(); + __move_assign_alloc(__t); + __pair3_ = _CUDA_VSTD::move(__t.__pair3_); + if (size() == 0) + __begin_node() = __end_node(); + else + { + __end_node()->__left_->__parent_ = static_cast<__parent_pointer>(__end_node()); + __t.__begin_node() = __t.__end_node(); + __t.__end_node()->__left_ = nullptr; + __t.size() = 0; + } +} + +template +void +__tree<_Tp, _Compare, _Allocator>::__move_assign(__tree& __t, false_type) +{ + if (__node_alloc() == __t.__node_alloc()) + __move_assign(__t, true_type()); + else + { + value_comp() = _CUDA_VSTD::move(__t.value_comp()); + const_iterator __e = end(); + if (size() != 0) + { + _DetachedTreeCache __cache(this); + while (__cache.__get() != nullptr && __t.size() != 0) { + __cache.__get()->__value_ = _CUDA_VSTD::move(__t.remove(__t.begin())->__value_); + __node_insert_multi(__cache.__get()); + __cache.__advance(); + } + } + while (__t.size() != 0) + __insert_multi(__e, _NodeTypes::__move(__t.remove(__t.begin())->__value_)); + } +} + +template +__tree<_Tp, _Compare, _Allocator>& +__tree<_Tp, _Compare, _Allocator>::operator=(__tree&& __t) + _NOEXCEPT_( + __node_traits::propagate_on_container_move_assignment::value && + is_nothrow_move_assignable::value && + is_nothrow_move_assignable<__node_allocator>::value) + +{ + __move_assign(__t, integral_constant()); + return *this; +} + +#endif // _LIBCUDACXX_CXX03_LANG + +template +__tree<_Tp, _Compare, _Allocator>::~__tree() +{ + static_assert((is_copy_constructible::value), + "Comparator must be copy-constructible."); + destroy(__root()); +} + +template +void +__tree<_Tp, _Compare, _Allocator>::destroy(__node_pointer __nd) _NOEXCEPT +{ + if (__nd != nullptr) + { + destroy(static_cast<__node_pointer>(__nd->__left_)); + destroy(static_cast<__node_pointer>(__nd->__right_)); + __node_allocator& __na = __node_alloc(); + __node_traits::destroy(__na, _NodeTypes::__get_ptr(__nd->__value_)); + __node_traits::deallocate(__na, __nd, 1); + } +} + +template +void +__tree<_Tp, _Compare, _Allocator>::swap(__tree& __t) +#if _LIBCUDACXX_STD_VER <= 11 + _NOEXCEPT_( + __is_nothrow_swappable::value + && (!__node_traits::propagate_on_container_swap::value || + __is_nothrow_swappable<__node_allocator>::value) + ) +#else + _NOEXCEPT_(__is_nothrow_swappable::value) +#endif +{ + using _CUDA_VSTD::swap; + swap(__begin_node_, __t.__begin_node_); + swap(__pair1_.first(), __t.__pair1_.first()); + __swap_allocator(__node_alloc(), __t.__node_alloc()); + __pair3_.swap(__t.__pair3_); + if (size() == 0) + __begin_node() = __end_node(); + else + __end_node()->__left_->__parent_ = static_cast<__parent_pointer>(__end_node()); + if (__t.size() == 0) + __t.__begin_node() = __t.__end_node(); + else + __t.__end_node()->__left_->__parent_ = static_cast<__parent_pointer>(__t.__end_node()); +} + +template +void +__tree<_Tp, _Compare, _Allocator>::clear() _NOEXCEPT +{ + destroy(__root()); + size() = 0; + __begin_node() = __end_node(); + __end_node()->__left_ = nullptr; +} + +// Find lower_bound place to insert +// Set __parent to parent of null leaf +// Return reference to null leaf +template +typename __tree<_Tp, _Compare, _Allocator>::__node_base_pointer& +__tree<_Tp, _Compare, _Allocator>::__find_leaf_low(__parent_pointer& __parent, + const key_type& __v) +{ + __node_pointer __nd = __root(); + if (__nd != nullptr) + { + while (true) + { + if (value_comp()(__nd->__value_, __v)) + { + if (__nd->__right_ != nullptr) + __nd = static_cast<__node_pointer>(__nd->__right_); + else + { + __parent = static_cast<__parent_pointer>(__nd); + return __nd->__right_; + } + } + else + { + if (__nd->__left_ != nullptr) + __nd = static_cast<__node_pointer>(__nd->__left_); + else + { + __parent = static_cast<__parent_pointer>(__nd); + return __parent->__left_; + } + } + } + } + __parent = static_cast<__parent_pointer>(__end_node()); + return __parent->__left_; +} + +// Find upper_bound place to insert +// Set __parent to parent of null leaf +// Return reference to null leaf +template +typename __tree<_Tp, _Compare, _Allocator>::__node_base_pointer& +__tree<_Tp, _Compare, _Allocator>::__find_leaf_high(__parent_pointer& __parent, + const key_type& __v) +{ + __node_pointer __nd = __root(); + if (__nd != nullptr) + { + while (true) + { + if (value_comp()(__v, __nd->__value_)) + { + if (__nd->__left_ != nullptr) + __nd = static_cast<__node_pointer>(__nd->__left_); + else + { + __parent = static_cast<__parent_pointer>(__nd); + return __parent->__left_; + } + } + else + { + if (__nd->__right_ != nullptr) + __nd = static_cast<__node_pointer>(__nd->__right_); + else + { + __parent = static_cast<__parent_pointer>(__nd); + return __nd->__right_; + } + } + } + } + __parent = static_cast<__parent_pointer>(__end_node()); + return __parent->__left_; +} + +// Find leaf place to insert closest to __hint +// First check prior to __hint. +// Next check after __hint. +// Next do O(log N) search. +// Set __parent to parent of null leaf +// Return reference to null leaf +template +typename __tree<_Tp, _Compare, _Allocator>::__node_base_pointer& +__tree<_Tp, _Compare, _Allocator>::__find_leaf(const_iterator __hint, + __parent_pointer& __parent, + const key_type& __v) +{ + if (__hint == end() || !value_comp()(*__hint, __v)) // check before + { + // __v <= *__hint + const_iterator __prior = __hint; + if (__prior == begin() || !value_comp()(__v, *--__prior)) + { + // *prev(__hint) <= __v <= *__hint + if (__hint.__ptr_->__left_ == nullptr) + { + __parent = static_cast<__parent_pointer>(__hint.__ptr_); + return __parent->__left_; + } + else + { + __parent = static_cast<__parent_pointer>(__prior.__ptr_); + return static_cast<__node_base_pointer>(__prior.__ptr_)->__right_; + } + } + // __v < *prev(__hint) + return __find_leaf_high(__parent, __v); + } + // else __v > *__hint + return __find_leaf_low(__parent, __v); +} + +// Find place to insert if __v doesn't exist +// Set __parent to parent of null leaf +// Return reference to null leaf +// If __v exists, set parent to node of __v and return reference to node of __v +template +template +typename __tree<_Tp, _Compare, _Allocator>::__node_base_pointer& +__tree<_Tp, _Compare, _Allocator>::__find_equal(__parent_pointer& __parent, + const _Key& __v) +{ + __node_pointer __nd = __root(); + __node_base_pointer* __nd_ptr = __root_ptr(); + if (__nd != nullptr) + { + while (true) + { + if (value_comp()(__v, __nd->__value_)) + { + if (__nd->__left_ != nullptr) { + __nd_ptr = _CUDA_VSTD::addressof(__nd->__left_); + __nd = static_cast<__node_pointer>(__nd->__left_); + } else { + __parent = static_cast<__parent_pointer>(__nd); + return __parent->__left_; + } + } + else if (value_comp()(__nd->__value_, __v)) + { + if (__nd->__right_ != nullptr) { + __nd_ptr = _CUDA_VSTD::addressof(__nd->__right_); + __nd = static_cast<__node_pointer>(__nd->__right_); + } else { + __parent = static_cast<__parent_pointer>(__nd); + return __nd->__right_; + } + } + else + { + __parent = static_cast<__parent_pointer>(__nd); + return *__nd_ptr; + } + } + } + __parent = static_cast<__parent_pointer>(__end_node()); + return __parent->__left_; +} + +// Find place to insert if __v doesn't exist +// First check prior to __hint. +// Next check after __hint. +// Next do O(log N) search. +// Set __parent to parent of null leaf +// Return reference to null leaf +// If __v exists, set parent to node of __v and return reference to node of __v +template +template +typename __tree<_Tp, _Compare, _Allocator>::__node_base_pointer& +__tree<_Tp, _Compare, _Allocator>::__find_equal(const_iterator __hint, + __parent_pointer& __parent, + __node_base_pointer& __dummy, + const _Key& __v) +{ + if (__hint == end() || value_comp()(__v, *__hint)) // check before + { + // __v < *__hint + const_iterator __prior = __hint; + if (__prior == begin() || value_comp()(*--__prior, __v)) + { + // *prev(__hint) < __v < *__hint + if (__hint.__ptr_->__left_ == nullptr) + { + __parent = static_cast<__parent_pointer>(__hint.__ptr_); + return __parent->__left_; + } + else + { + __parent = static_cast<__parent_pointer>(__prior.__ptr_); + return static_cast<__node_base_pointer>(__prior.__ptr_)->__right_; + } + } + // __v <= *prev(__hint) + return __find_equal(__parent, __v); + } + else if (value_comp()(*__hint, __v)) // check after + { + // *__hint < __v + const_iterator __next = _CUDA_VSTD::next(__hint); + if (__next == end() || value_comp()(__v, *__next)) + { + // *__hint < __v < *_CUDA_VSTD::next(__hint) + if (__hint.__get_np()->__right_ == nullptr) + { + __parent = static_cast<__parent_pointer>(__hint.__ptr_); + return static_cast<__node_base_pointer>(__hint.__ptr_)->__right_; + } + else + { + __parent = static_cast<__parent_pointer>(__next.__ptr_); + return __parent->__left_; + } + } + // *next(__hint) <= __v + return __find_equal(__parent, __v); + } + // else __v == *__hint + __parent = static_cast<__parent_pointer>(__hint.__ptr_); + __dummy = static_cast<__node_base_pointer>(__hint.__ptr_); + return __dummy; +} + +template +void __tree<_Tp, _Compare, _Allocator>::__insert_node_at( + __parent_pointer __parent, __node_base_pointer& __child, + __node_base_pointer __new_node) _NOEXCEPT +{ + __new_node->__left_ = nullptr; + __new_node->__right_ = nullptr; + __new_node->__parent_ = __parent; + // __new_node->__is_black_ is initialized in __tree_balance_after_insert + __child = __new_node; + if (__begin_node()->__left_ != nullptr) + __begin_node() = static_cast<__iter_pointer>(__begin_node()->__left_); + __tree_balance_after_insert(__end_node()->__left_, __child); + ++size(); +} + +#ifndef _LIBCUDACXX_CXX03_LANG +template +template +pair::iterator, bool> +__tree<_Tp, _Compare, _Allocator>::__emplace_unique_key_args(_Key const& __k, _Args&&... __args) +#else +template +template +pair::iterator, bool> +__tree<_Tp, _Compare, _Allocator>::__emplace_unique_key_args(_Key const& __k, _Args& __args) +#endif +{ + __parent_pointer __parent; + __node_base_pointer& __child = __find_equal(__parent, __k); + __node_pointer __r = static_cast<__node_pointer>(__child); + bool __inserted = false; + if (__child == nullptr) + { +#ifndef _LIBCUDACXX_CXX03_LANG + __node_holder __h = __construct_node(_CUDA_VSTD::forward<_Args>(__args)...); +#else + __node_holder __h = __construct_node(__args); +#endif + __insert_node_at(__parent, __child, static_cast<__node_base_pointer>(__h.get())); + __r = __h.release(); + __inserted = true; + } + return pair(iterator(__r), __inserted); +} + + +#ifndef _LIBCUDACXX_CXX03_LANG +template +template +typename __tree<_Tp, _Compare, _Allocator>::iterator +__tree<_Tp, _Compare, _Allocator>::__emplace_hint_unique_key_args( + const_iterator __p, _Key const& __k, _Args&&... __args) +#else +template +template +typename __tree<_Tp, _Compare, _Allocator>::iterator +__tree<_Tp, _Compare, _Allocator>::__emplace_hint_unique_key_args( + const_iterator __p, _Key const& __k, _Args& __args) +#endif +{ + __parent_pointer __parent; + __node_base_pointer __dummy; + __node_base_pointer& __child = __find_equal(__p, __parent, __dummy, __k); + __node_pointer __r = static_cast<__node_pointer>(__child); + if (__child == nullptr) + { +#ifndef _LIBCUDACXX_CXX03_LANG + __node_holder __h = __construct_node(_CUDA_VSTD::forward<_Args>(__args)...); +#else + __node_holder __h = __construct_node(__args); +#endif + __insert_node_at(__parent, __child, static_cast<__node_base_pointer>(__h.get())); + __r = __h.release(); + } + return iterator(__r); +} + + +#ifndef _LIBCUDACXX_CXX03_LANG + +template +template +typename __tree<_Tp, _Compare, _Allocator>::__node_holder +__tree<_Tp, _Compare, _Allocator>::__construct_node(_Args&& ...__args) +{ + static_assert(!__is_tree_value_type<_Args...>::value, + "Cannot construct from __value_type"); + __node_allocator& __na = __node_alloc(); + __node_holder __h(__node_traits::allocate(__na, 1), _Dp(__na)); + __node_traits::construct(__na, _NodeTypes::__get_ptr(__h->__value_), _CUDA_VSTD::forward<_Args>(__args)...); + __h.get_deleter().__value_constructed = true; + return __h; +} + + +template +template +pair::iterator, bool> +__tree<_Tp, _Compare, _Allocator>::__emplace_unique_impl(_Args&&... __args) +{ + __node_holder __h = __construct_node(_CUDA_VSTD::forward<_Args>(__args)...); + __parent_pointer __parent; + __node_base_pointer& __child = __find_equal(__parent, __h->__value_); + __node_pointer __r = static_cast<__node_pointer>(__child); + bool __inserted = false; + if (__child == nullptr) + { + __insert_node_at(__parent, __child, static_cast<__node_base_pointer>(__h.get())); + __r = __h.release(); + __inserted = true; + } + return pair(iterator(__r), __inserted); +} + +template +template +typename __tree<_Tp, _Compare, _Allocator>::iterator +__tree<_Tp, _Compare, _Allocator>::__emplace_hint_unique_impl(const_iterator __p, _Args&&... __args) +{ + __node_holder __h = __construct_node(_CUDA_VSTD::forward<_Args>(__args)...); + __parent_pointer __parent; + __node_base_pointer __dummy; + __node_base_pointer& __child = __find_equal(__p, __parent, __dummy, __h->__value_); + __node_pointer __r = static_cast<__node_pointer>(__child); + if (__child == nullptr) + { + __insert_node_at(__parent, __child, static_cast<__node_base_pointer>(__h.get())); + __r = __h.release(); + } + return iterator(__r); +} + +template +template +typename __tree<_Tp, _Compare, _Allocator>::iterator +__tree<_Tp, _Compare, _Allocator>::__emplace_multi(_Args&&... __args) +{ + __node_holder __h = __construct_node(_CUDA_VSTD::forward<_Args>(__args)...); + __parent_pointer __parent; + __node_base_pointer& __child = __find_leaf_high(__parent, _NodeTypes::__get_key(__h->__value_)); + __insert_node_at(__parent, __child, static_cast<__node_base_pointer>(__h.get())); + return iterator(static_cast<__node_pointer>(__h.release())); +} + +template +template +typename __tree<_Tp, _Compare, _Allocator>::iterator +__tree<_Tp, _Compare, _Allocator>::__emplace_hint_multi(const_iterator __p, + _Args&&... __args) +{ + __node_holder __h = __construct_node(_CUDA_VSTD::forward<_Args>(__args)...); + __parent_pointer __parent; + __node_base_pointer& __child = __find_leaf(__p, __parent, _NodeTypes::__get_key(__h->__value_)); + __insert_node_at(__parent, __child, static_cast<__node_base_pointer>(__h.get())); + return iterator(static_cast<__node_pointer>(__h.release())); +} + + +#else // _LIBCUDACXX_CXX03_LANG + +template +typename __tree<_Tp, _Compare, _Allocator>::__node_holder +__tree<_Tp, _Compare, _Allocator>::__construct_node(const __container_value_type& __v) +{ + __node_allocator& __na = __node_alloc(); + __node_holder __h(__node_traits::allocate(__na, 1), _Dp(__na)); + __node_traits::construct(__na, _NodeTypes::__get_ptr(__h->__value_), __v); + __h.get_deleter().__value_constructed = true; + return _LIBCUDACXX_EXPLICIT_MOVE(__h); // explicitly moved for C++03 +} + +#endif // _LIBCUDACXX_CXX03_LANG + +#ifdef _LIBCUDACXX_CXX03_LANG +template +typename __tree<_Tp, _Compare, _Allocator>::iterator +__tree<_Tp, _Compare, _Allocator>::__insert_multi(const __container_value_type& __v) +{ + __parent_pointer __parent; + __node_base_pointer& __child = __find_leaf_high(__parent, _NodeTypes::__get_key(__v)); + __node_holder __h = __construct_node(__v); + __insert_node_at(__parent, __child, static_cast<__node_base_pointer>(__h.get())); + return iterator(__h.release()); +} + +template +typename __tree<_Tp, _Compare, _Allocator>::iterator +__tree<_Tp, _Compare, _Allocator>::__insert_multi(const_iterator __p, const __container_value_type& __v) +{ + __parent_pointer __parent; + __node_base_pointer& __child = __find_leaf(__p, __parent, _NodeTypes::__get_key(__v)); + __node_holder __h = __construct_node(__v); + __insert_node_at(__parent, __child, static_cast<__node_base_pointer>(__h.get())); + return iterator(__h.release()); +} +#endif + +template +pair::iterator, bool> +__tree<_Tp, _Compare, _Allocator>::__node_assign_unique(const __container_value_type& __v, __node_pointer __nd) +{ + __parent_pointer __parent; + __node_base_pointer& __child = __find_equal(__parent, _NodeTypes::__get_key(__v)); + __node_pointer __r = static_cast<__node_pointer>(__child); + bool __inserted = false; + if (__child == nullptr) + { + __nd->__value_ = __v; + __insert_node_at(__parent, __child, static_cast<__node_base_pointer>(__nd)); + __r = __nd; + __inserted = true; + } + return pair(iterator(__r), __inserted); +} + + +template +typename __tree<_Tp, _Compare, _Allocator>::iterator +__tree<_Tp, _Compare, _Allocator>::__node_insert_multi(__node_pointer __nd) +{ + __parent_pointer __parent; + __node_base_pointer& __child = __find_leaf_high(__parent, _NodeTypes::__get_key(__nd->__value_)); + __insert_node_at(__parent, __child, static_cast<__node_base_pointer>(__nd)); + return iterator(__nd); +} + +template +typename __tree<_Tp, _Compare, _Allocator>::iterator +__tree<_Tp, _Compare, _Allocator>::__node_insert_multi(const_iterator __p, + __node_pointer __nd) +{ + __parent_pointer __parent; + __node_base_pointer& __child = __find_leaf(__p, __parent, _NodeTypes::__get_key(__nd->__value_)); + __insert_node_at(__parent, __child, static_cast<__node_base_pointer>(__nd)); + return iterator(__nd); +} + +template +typename __tree<_Tp, _Compare, _Allocator>::iterator +__tree<_Tp, _Compare, _Allocator>::__remove_node_pointer(__node_pointer __ptr) _NOEXCEPT +{ + iterator __r(__ptr); + ++__r; + if (__begin_node() == __ptr) + __begin_node() = __r.__ptr_; + --size(); + __tree_remove(__end_node()->__left_, + static_cast<__node_base_pointer>(__ptr)); + return __r; +} + +#if _LIBCUDACXX_STD_VER > 14 +template +template +_LIBCUDACXX_INLINE_VISIBILITY +_InsertReturnType +__tree<_Tp, _Compare, _Allocator>::__node_handle_insert_unique( + _NodeHandle&& __nh) +{ + if (__nh.empty()) + return _InsertReturnType{end(), false, _NodeHandle()}; + + __node_pointer __ptr = __nh.__ptr_; + __parent_pointer __parent; + __node_base_pointer& __child = __find_equal(__parent, + __ptr->__value_); + if (__child != nullptr) + return _InsertReturnType{ + iterator(static_cast<__node_pointer>(__child)), + false, _CUDA_VSTD::move(__nh)}; + + __insert_node_at(__parent, __child, + static_cast<__node_base_pointer>(__ptr)); + __nh.__release_ptr(); + return _InsertReturnType{iterator(__ptr), true, _NodeHandle()}; +} + +template +template +_LIBCUDACXX_INLINE_VISIBILITY +typename __tree<_Tp, _Compare, _Allocator>::iterator +__tree<_Tp, _Compare, _Allocator>::__node_handle_insert_unique( + const_iterator __hint, _NodeHandle&& __nh) +{ + if (__nh.empty()) + return end(); + + __node_pointer __ptr = __nh.__ptr_; + __parent_pointer __parent; + __node_base_pointer __dummy; + __node_base_pointer& __child = __find_equal(__hint, __parent, __dummy, + __ptr->__value_); + __node_pointer __r = static_cast<__node_pointer>(__child); + if (__child == nullptr) + { + __insert_node_at(__parent, __child, + static_cast<__node_base_pointer>(__ptr)); + __r = __ptr; + __nh.__release_ptr(); + } + return iterator(__r); +} + +template +template +_LIBCUDACXX_INLINE_VISIBILITY +_NodeHandle +__tree<_Tp, _Compare, _Allocator>::__node_handle_extract(key_type const& __key) +{ + iterator __it = find(__key); + if (__it == end()) + return _NodeHandle(); + return __node_handle_extract<_NodeHandle>(__it); +} + +template +template +_LIBCUDACXX_INLINE_VISIBILITY +_NodeHandle +__tree<_Tp, _Compare, _Allocator>::__node_handle_extract(const_iterator __p) +{ + __node_pointer __np = __p.__get_np(); + __remove_node_pointer(__np); + return _NodeHandle(__np, __alloc()); +} + +template +template +_LIBCUDACXX_INLINE_VISIBILITY +void +__tree<_Tp, _Compare, _Allocator>::__node_handle_merge_unique(_Tree& __source) +{ + static_assert(is_same::value, ""); + + for (typename _Tree::iterator __i = __source.begin(); + __i != __source.end();) + { + __node_pointer __src_ptr = __i.__get_np(); + __parent_pointer __parent; + __node_base_pointer& __child = + __find_equal(__parent, _NodeTypes::__get_key(__src_ptr->__value_)); + ++__i; + if (__child != nullptr) + continue; + __source.__remove_node_pointer(__src_ptr); + __insert_node_at(__parent, __child, + static_cast<__node_base_pointer>(__src_ptr)); + } +} + +template +template +_LIBCUDACXX_INLINE_VISIBILITY +typename __tree<_Tp, _Compare, _Allocator>::iterator +__tree<_Tp, _Compare, _Allocator>::__node_handle_insert_multi(_NodeHandle&& __nh) +{ + if (__nh.empty()) + return end(); + __node_pointer __ptr = __nh.__ptr_; + __parent_pointer __parent; + __node_base_pointer& __child = __find_leaf_high( + __parent, _NodeTypes::__get_key(__ptr->__value_)); + __insert_node_at(__parent, __child, static_cast<__node_base_pointer>(__ptr)); + __nh.__release_ptr(); + return iterator(__ptr); +} + +template +template +_LIBCUDACXX_INLINE_VISIBILITY +typename __tree<_Tp, _Compare, _Allocator>::iterator +__tree<_Tp, _Compare, _Allocator>::__node_handle_insert_multi( + const_iterator __hint, _NodeHandle&& __nh) +{ + if (__nh.empty()) + return end(); + + __node_pointer __ptr = __nh.__ptr_; + __parent_pointer __parent; + __node_base_pointer& __child = __find_leaf(__hint, __parent, + _NodeTypes::__get_key(__ptr->__value_)); + __insert_node_at(__parent, __child, static_cast<__node_base_pointer>(__ptr)); + __nh.__release_ptr(); + return iterator(__ptr); +} + +template +template +_LIBCUDACXX_INLINE_VISIBILITY +void +__tree<_Tp, _Compare, _Allocator>::__node_handle_merge_multi(_Tree& __source) +{ + static_assert(is_same::value, ""); + + for (typename _Tree::iterator __i = __source.begin(); + __i != __source.end();) + { + __node_pointer __src_ptr = __i.__get_np(); + __parent_pointer __parent; + __node_base_pointer& __child = __find_leaf_high( + __parent, _NodeTypes::__get_key(__src_ptr->__value_)); + ++__i; + __source.__remove_node_pointer(__src_ptr); + __insert_node_at(__parent, __child, + static_cast<__node_base_pointer>(__src_ptr)); + } +} + +#endif // _LIBCUDACXX_STD_VER > 14 + +template +typename __tree<_Tp, _Compare, _Allocator>::iterator +__tree<_Tp, _Compare, _Allocator>::erase(const_iterator __p) +{ + __node_pointer __np = __p.__get_np(); + iterator __r = __remove_node_pointer(__np); + __node_allocator& __na = __node_alloc(); + __node_traits::destroy(__na, _NodeTypes::__get_ptr( + const_cast<__node_value_type&>(*__p))); + __node_traits::deallocate(__na, __np, 1); + return __r; +} + +template +typename __tree<_Tp, _Compare, _Allocator>::iterator +__tree<_Tp, _Compare, _Allocator>::erase(const_iterator __f, const_iterator __l) +{ + while (__f != __l) + __f = erase(__f); + return iterator(__l.__ptr_); +} + +template +template +typename __tree<_Tp, _Compare, _Allocator>::size_type +__tree<_Tp, _Compare, _Allocator>::__erase_unique(const _Key& __k) +{ + iterator __i = find(__k); + if (__i == end()) + return 0; + erase(__i); + return 1; +} + +template +template +typename __tree<_Tp, _Compare, _Allocator>::size_type +__tree<_Tp, _Compare, _Allocator>::__erase_multi(const _Key& __k) +{ + pair __p = __equal_range_multi(__k); + size_type __r = 0; + for (; __p.first != __p.second; ++__r) + __p.first = erase(__p.first); + return __r; +} + +template +template +typename __tree<_Tp, _Compare, _Allocator>::iterator +__tree<_Tp, _Compare, _Allocator>::find(const _Key& __v) +{ + iterator __p = __lower_bound(__v, __root(), __end_node()); + if (__p != end() && !value_comp()(__v, *__p)) + return __p; + return end(); +} + +template +template +typename __tree<_Tp, _Compare, _Allocator>::const_iterator +__tree<_Tp, _Compare, _Allocator>::find(const _Key& __v) const +{ + const_iterator __p = __lower_bound(__v, __root(), __end_node()); + if (__p != end() && !value_comp()(__v, *__p)) + return __p; + return end(); +} + +template +template +typename __tree<_Tp, _Compare, _Allocator>::size_type +__tree<_Tp, _Compare, _Allocator>::__count_unique(const _Key& __k) const +{ + __node_pointer __rt = __root(); + while (__rt != nullptr) + { + if (value_comp()(__k, __rt->__value_)) + { + __rt = static_cast<__node_pointer>(__rt->__left_); + } + else if (value_comp()(__rt->__value_, __k)) + __rt = static_cast<__node_pointer>(__rt->__right_); + else + return 1; + } + return 0; +} + +template +template +typename __tree<_Tp, _Compare, _Allocator>::size_type +__tree<_Tp, _Compare, _Allocator>::__count_multi(const _Key& __k) const +{ + __iter_pointer __result = __end_node(); + __node_pointer __rt = __root(); + while (__rt != nullptr) + { + if (value_comp()(__k, __rt->__value_)) + { + __result = static_cast<__iter_pointer>(__rt); + __rt = static_cast<__node_pointer>(__rt->__left_); + } + else if (value_comp()(__rt->__value_, __k)) + __rt = static_cast<__node_pointer>(__rt->__right_); + else + return _CUDA_VSTD::distance( + __lower_bound(__k, static_cast<__node_pointer>(__rt->__left_), static_cast<__iter_pointer>(__rt)), + __upper_bound(__k, static_cast<__node_pointer>(__rt->__right_), __result) + ); + } + return 0; +} + +template +template +typename __tree<_Tp, _Compare, _Allocator>::iterator +__tree<_Tp, _Compare, _Allocator>::__lower_bound(const _Key& __v, + __node_pointer __root, + __iter_pointer __result) +{ + while (__root != nullptr) + { + if (!value_comp()(__root->__value_, __v)) + { + __result = static_cast<__iter_pointer>(__root); + __root = static_cast<__node_pointer>(__root->__left_); + } + else + __root = static_cast<__node_pointer>(__root->__right_); + } + return iterator(__result); +} + +template +template +typename __tree<_Tp, _Compare, _Allocator>::const_iterator +__tree<_Tp, _Compare, _Allocator>::__lower_bound(const _Key& __v, + __node_pointer __root, + __iter_pointer __result) const +{ + while (__root != nullptr) + { + if (!value_comp()(__root->__value_, __v)) + { + __result = static_cast<__iter_pointer>(__root); + __root = static_cast<__node_pointer>(__root->__left_); + } + else + __root = static_cast<__node_pointer>(__root->__right_); + } + return const_iterator(__result); +} + +template +template +typename __tree<_Tp, _Compare, _Allocator>::iterator +__tree<_Tp, _Compare, _Allocator>::__upper_bound(const _Key& __v, + __node_pointer __root, + __iter_pointer __result) +{ + while (__root != nullptr) + { + if (value_comp()(__v, __root->__value_)) + { + __result = static_cast<__iter_pointer>(__root); + __root = static_cast<__node_pointer>(__root->__left_); + } + else + __root = static_cast<__node_pointer>(__root->__right_); + } + return iterator(__result); +} + +template +template +typename __tree<_Tp, _Compare, _Allocator>::const_iterator +__tree<_Tp, _Compare, _Allocator>::__upper_bound(const _Key& __v, + __node_pointer __root, + __iter_pointer __result) const +{ + while (__root != nullptr) + { + if (value_comp()(__v, __root->__value_)) + { + __result = static_cast<__iter_pointer>(__root); + __root = static_cast<__node_pointer>(__root->__left_); + } + else + __root = static_cast<__node_pointer>(__root->__right_); + } + return const_iterator(__result); +} + +template +template +pair::iterator, + typename __tree<_Tp, _Compare, _Allocator>::iterator> +__tree<_Tp, _Compare, _Allocator>::__equal_range_unique(const _Key& __k) +{ + typedef pair _Pp; + __iter_pointer __result = __end_node(); + __node_pointer __rt = __root(); + while (__rt != nullptr) + { + if (value_comp()(__k, __rt->__value_)) + { + __result = static_cast<__iter_pointer>(__rt); + __rt = static_cast<__node_pointer>(__rt->__left_); + } + else if (value_comp()(__rt->__value_, __k)) + __rt = static_cast<__node_pointer>(__rt->__right_); + else + return _Pp(iterator(__rt), + iterator( + __rt->__right_ != nullptr ? + static_cast<__iter_pointer>(__tree_min(__rt->__right_)) + : __result)); + } + return _Pp(iterator(__result), iterator(__result)); +} + +template +template +pair::const_iterator, + typename __tree<_Tp, _Compare, _Allocator>::const_iterator> +__tree<_Tp, _Compare, _Allocator>::__equal_range_unique(const _Key& __k) const +{ + typedef pair _Pp; + __iter_pointer __result = __end_node(); + __node_pointer __rt = __root(); + while (__rt != nullptr) + { + if (value_comp()(__k, __rt->__value_)) + { + __result = static_cast<__iter_pointer>(__rt); + __rt = static_cast<__node_pointer>(__rt->__left_); + } + else if (value_comp()(__rt->__value_, __k)) + __rt = static_cast<__node_pointer>(__rt->__right_); + else + return _Pp(const_iterator(__rt), + const_iterator( + __rt->__right_ != nullptr ? + static_cast<__iter_pointer>(__tree_min(__rt->__right_)) + : __result)); + } + return _Pp(const_iterator(__result), const_iterator(__result)); +} + +template +template +pair::iterator, + typename __tree<_Tp, _Compare, _Allocator>::iterator> +__tree<_Tp, _Compare, _Allocator>::__equal_range_multi(const _Key& __k) +{ + typedef pair _Pp; + __iter_pointer __result = __end_node(); + __node_pointer __rt = __root(); + while (__rt != nullptr) + { + if (value_comp()(__k, __rt->__value_)) + { + __result = static_cast<__iter_pointer>(__rt); + __rt = static_cast<__node_pointer>(__rt->__left_); + } + else if (value_comp()(__rt->__value_, __k)) + __rt = static_cast<__node_pointer>(__rt->__right_); + else + return _Pp(__lower_bound(__k, static_cast<__node_pointer>(__rt->__left_), static_cast<__iter_pointer>(__rt)), + __upper_bound(__k, static_cast<__node_pointer>(__rt->__right_), __result)); + } + return _Pp(iterator(__result), iterator(__result)); +} + +template +template +pair::const_iterator, + typename __tree<_Tp, _Compare, _Allocator>::const_iterator> +__tree<_Tp, _Compare, _Allocator>::__equal_range_multi(const _Key& __k) const +{ + typedef pair _Pp; + __iter_pointer __result = __end_node(); + __node_pointer __rt = __root(); + while (__rt != nullptr) + { + if (value_comp()(__k, __rt->__value_)) + { + __result = static_cast<__iter_pointer>(__rt); + __rt = static_cast<__node_pointer>(__rt->__left_); + } + else if (value_comp()(__rt->__value_, __k)) + __rt = static_cast<__node_pointer>(__rt->__right_); + else + return _Pp(__lower_bound(__k, static_cast<__node_pointer>(__rt->__left_), static_cast<__iter_pointer>(__rt)), + __upper_bound(__k, static_cast<__node_pointer>(__rt->__right_), __result)); + } + return _Pp(const_iterator(__result), const_iterator(__result)); +} + +template +typename __tree<_Tp, _Compare, _Allocator>::__node_holder +__tree<_Tp, _Compare, _Allocator>::remove(const_iterator __p) _NOEXCEPT +{ + __node_pointer __np = __p.__get_np(); + if (__begin_node() == __p.__ptr_) + { + if (__np->__right_ != nullptr) + __begin_node() = static_cast<__iter_pointer>(__np->__right_); + else + __begin_node() = static_cast<__iter_pointer>(__np->__parent_); + } + --size(); + __tree_remove(__end_node()->__left_, + static_cast<__node_base_pointer>(__np)); + return __node_holder(__np, _Dp(__node_alloc(), true)); +} + +template +inline _LIBCUDACXX_INLINE_VISIBILITY +void +swap(__tree<_Tp, _Compare, _Allocator>& __x, + __tree<_Tp, _Compare, _Allocator>& __y) + _NOEXCEPT_(_NOEXCEPT_(__x.swap(__y))) +{ + __x.swap(__y); +} + +_LIBCUDACXX_END_NAMESPACE_STD + +_LIBCUDACXX_POP_MACROS + +#endif // _LIBCUDACXX___TREE diff --git a/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__tuple b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__tuple new file mode 100644 index 0000000000000000000000000000000000000000..357e3156761ee6cfbd11c63393f1a8185b8dbd54 --- /dev/null +++ b/build/testing/cmake/test_install/install_prefix/include/cuda/std/detail/libcxx/include/__tuple @@ -0,0 +1,567 @@ +// -*- C++ -*- +//===----------------------------------------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef _LIBCUDACXX___TUPLE +#define _LIBCUDACXX___TUPLE + +#ifndef __cuda_std__ +#include <__config> +#include +#include +#include <__pragma_push> +#endif //__cuda_std__ + +#if defined(_LIBCUDACXX_USE_PRAGMA_GCC_SYSTEM_HEADER) +#pragma GCC system_header +#endif + +_LIBCUDACXX_BEGIN_NAMESPACE_STD + +template struct _LIBCUDACXX_TEMPLATE_VIS tuple_size; + +#if !defined(_LIBCUDACXX_CXX03_LANG) +template +using __enable_if_tuple_size_imp = _Tp; + +template +struct _LIBCUDACXX_TEMPLATE_VIS tuple_size<__enable_if_tuple_size_imp< + const _Tp, + typename enable_if::value>::type, + integral_constant)>>> + : public integral_constant::value> {}; + +template +struct _LIBCUDACXX_TEMPLATE_VIS tuple_size<__enable_if_tuple_size_imp< + volatile _Tp, + typename enable_if::value>::type, + integral_constant)>>> + : public integral_constant::value> {}; + +template +struct _LIBCUDACXX_TEMPLATE_VIS tuple_size<__enable_if_tuple_size_imp< + const volatile _Tp, + integral_constant)>>> + : public integral_constant::value> {}; + +#else +template struct _LIBCUDACXX_TEMPLATE_VIS tuple_size : public tuple_size<_Tp> {}; +template struct _LIBCUDACXX_TEMPLATE_VIS tuple_size : public tuple_size<_Tp> {}; +template struct _LIBCUDACXX_TEMPLATE_VIS tuple_size : public tuple_size<_Tp> {}; +#endif + +template struct _LIBCUDACXX_TEMPLATE_VIS tuple_element; + +template +struct _LIBCUDACXX_TEMPLATE_VIS tuple_element<_Ip, const _Tp> +{ + typedef _LIBCUDACXX_NODEBUG_TYPE typename add_const::type>::type type; +}; + +template +struct _LIBCUDACXX_TEMPLATE_VIS tuple_element<_Ip, volatile _Tp> +{ + typedef _LIBCUDACXX_NODEBUG_TYPE typename add_volatile::type>::type type; +}; + +template +struct _LIBCUDACXX_TEMPLATE_VIS tuple_element<_Ip, const volatile _Tp> +{ + typedef _LIBCUDACXX_NODEBUG_TYPE typename add_cv::type>::type type; +}; + +template struct __tuple_like : false_type {}; + +template struct __tuple_like : public __tuple_like<_Tp> {}; +template struct __tuple_like : public __tuple_like<_Tp> {}; +template struct __tuple_like : public __tuple_like<_Tp> {}; + +// tuple specializations + +#ifndef _LIBCUDACXX_CXX03_LANG + +template struct __tuple_indices {}; + +template +struct __integer_sequence { + template